데이터베이스

이연희·2022년 7월 1일
0

Database

목록 보기
5/8

데이터베이스

구조

  1. 스키마(schema)
    데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
  2. 인스턴스(instance)
    스키마에 따라 데이터베이스에 실제로 저장된 값
  • 스키마의 예
    고객번호(INT)|이름(CHAR(10))|나이(INT)|주소(CHAR(20))

외부 단계

  • 데이터베이스를 개별 사용자 관점에서 이해하고 표현하는 단계
  • 데이터베이스 하나에 외부 스키마가 여러 개 존재할 수 있음

개념 단계

  • 조직 전체 관점
  • 하나의 개념 스키마

내부 단계

  • 저장 장치 관점
  • 하나의 내부 스키마
  • 물리적 저장 구조 정의

데이터베이스 구조의 사상 또는 매핑

데이터 독립성(data independency)

  • 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성
  • 논리적 데이터 독립성:
    • 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않음. 관련된 외부/개념 사상만 정확하게 수정하면 됨
  • 물리적 데이터 독립성:
    • 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않음. 관련된 개념/내부 사상만 정확하게 수정하면 됨

데이터 언어

데이터 정의어(DDL; Data Definition Language)

  • 스키마를 정의하거나 수정 또는 삭제하기 위해 사용

데이터 조작어(DML; Data Manipulation Language)

  • 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 요구하기 위해 사용

데이터 제어어(DCL; Data Control Language)

  • 내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용
  • 사용 목적
    • 무결성: 정확하고 유효한 데이터만 유지
    • 보안: 허가받지 않은 사용자의 데이터 접근 차단. 허가된 사용자에 권한 부여
    • 회복: 장애가 발생해도 데이터 일관성 유지
    • 동시성 제어: 동시 공유 지원

데이터 모델링

개체-관계 모델(E-R model; Entity-Relationship model)

  • 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현
  • 핵심 요소: 개체, 속성, 관계

개체-관계 다이어그램(E-R diagram)

개체(entity)

  • 중요 데이터를 가지고 있는 사람이나 사물, 개념, 사건 등
  • 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있음
  • 서점에 필요한 개체: 고객, 책
  • 파일 구조의 레코드와 대응 됨
  • E-R 다이어그램에서 사각형으로 표현 됨

속성(attribute)

  • 개체나 관계가 가지고 있는 고유의 특성
  • 의미 있는 데이터의 가장 작은 논리적 단위
  • 파일 구조의 필드(field)와 대응됨

키 속성(key attribute)

  • 각 객체의 인스턴스를 식별하는 데 사용되는 속성
  • 모든 개체 인스턴스의 키 속성 값이 다름
  • 둘 이상의 속성들로 구성되기도 함
  • E-R 다이어그램에서 밑줄로 표현

관계(relationship)

  • 개체와 개체가 맺고 있는 의미 있는 연관성
  • 개체 집합들 사이의 대응 관계, 즉 매핑(mapping)을 의미
  • 예) 고객 개체와 책 개체의 구매 관계
    • 고객은 책을 구매한다.
  • E-R 다이어그램에서 마름모로 표현

관계 데이터 모델

용어

릴레이션(relation)

  • 하나의 개체에 대한 데이터를 2차원 테이블의 구조로 저장한 것
  • 파일 관리 시스템에서 파일(file)에 대응

속성(attribute)

  • 릴레이션의 열, 애트리뷰트
  • 파일 관리 시스템에서 필드(field)에 대응

튜플(tuple)

  • 릴레이션의 행
  • 파일 관리 시스템에서 레코드(record)에 대응

도메인(domain)

  • 하나의 속성이 가질 수 있는 모든 값의 집합
  • 속성의 특성을 고려한 데이터 타입(INT, CHAR)으로 정의

차수(degree)

  • 하나의 릴레이션에서 속성의 전체 개수
  • 속성 개수(고객 아이디, 번호, 등급 등)

카디널리티(cardinality)

  • 하나의 릴레이션에서 튜플의 전체 개수
  • 실제 인스턴스 값의 개수

릴레이션의 구성

  • 릴레이션 스키마(relation schema)
    • 릴레이션의 논리적 구조
  • 릴레이션의 인스턴스(relation instance)
    • 어느 한 시점에 릴레이션에 존재하는 튜플의 집합

구성

  • 데이터베이스 스키마
    • 데이터베이스를 구성하는 릴레이션 스키마의 모음
  • 데이터베이스 인스턴스
    • 데이터베이스를 구성하는 릴레이션 인스턴스 모음

릴레이션의 특성

튜플의 유일성

하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.

튜플의 무순서

하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.

속성의 무순서

하나의 릴레이션에서 속성 사이의 순서는 무의미하다

속성의 원자성

속성 값으로 원자 값만 사용할 수 있다.

키(key)

  • 릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합

키의 특성

  • 유일성(uniqueness)
  • 최소성(minimality)

슈퍼키(super key)

  • 유일성을 만족하는 속성 또는 속성들의 집합
  • 고객아이디, (고객아이디, 고객이름), (고객이름, 주소)

후보키(candidate key)

  • 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
  • 고객아이디, (고객이름, 주소)

기본키(primary key)

  • 후보키 중에서 기본적으로 사용하기 위해 선택한 키
  • 고객아이디

대체키(alternate key)

  • 기본키로 선택되지 못한 후보키
  • (고객이름, 주소)

키의 종류

외래키(foreign key)

  • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
  • 고객 릴레이션과 주문 릴레이션이 관계를 맺어 주문 릴레이션의 튜플과 연관성 있는 고객 릴레이션의 튜플을 연결할 수 있음

무결성 제약조건(integrity constraint)

개체 무결성 제약조건

기본키를 구성하는 모든 속성은 널 값을 가질 수 없다.

참조 무결성 제약조건

외래키는 참조할 수 없는 값을 가질 수 없다.
외래키 속성이 널 값을 가진다고 해서 참조 무결성 제약조건을 위반한 것은 아니다.

관계 데이터 모델링

논리적 설계

  • E-R 다이어그램을 릴레이션 스키마로 변환하는 규칙
    • rule1: 모든 개체는 릴레이션으로 변환한다.
    • rule2: 다대다(n:m) 관계는 릴레이션으로 변환한다.
    • rule3: 일대다(1:n) 관계는 외래키로 표현한다.
    • rule4: 일대일(1:1) 관계는 외래키로 표현한다.
    • rule5: 다중 값 속성은 릴레이션으로 변환한다.

rule2

rule3

rule4

rule5

정규화

정규화의 개념과 이상 현상

이상현상(anomaly)

불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용

  • 삽입 이상: 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제
  • 갱신 이상: 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제
  • 삭제 이상: 튜플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제

정규화

  • 이상 현상이 발생하지 않도록 릴레이션을 관련 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정
  • 함수적 종속성을 판단하여 정규화를 수행함

함수적 종속성(FD; Functional Dependency)

  • 속성들 간의 관련성
  • 함수 종속성을 이용하여, 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해하여 이상 현상이 발생하지 않는 바람직한 릴레이션으로 만들어 나가는 과정

함수 종속

"X가 Y를 함수적으로 결정한다."

함수 종속 관계 판단 시 유의사항

  • 속성 값은 계속 변할 수 있기 떄문에 현재 릴레이션에 포함된 속성 값으로 판단하면 안됨. 속성 자체의 특성과 의미를 기반으로 함수 종속성을 판단해야 함
  • 일반적으로 기본키와 후보키는 릴레이션의 다른 모든 속성들을 함수적으로 결정함
  • 기본키나 후보키가 아니어도 다른 속성 값을 유일하게 결정하는 속성은 함수 종속 관계에서 결정자가 될 수 있음

완전 함수 종속(FFD; Full Functional Dependency)

  • 릴레이션에서 속성 집합 Y가 속성 집합 X에 함수적으로 종속되어 있지만 속성 집합 X의 전체가 아닌 일부분에는 종속되지 않음을 의미
  • 일반적으로 함수종속은 완전 함수 종속을 의미함
  • 예) 당첨여부는 {고객아이디, 이벤트번호}에 완전 함수 종속됨

부분 함수 종속(PFD; Partial Functional Dependency)

  • 릴레이션에서 속성 집합 Y가 속성 집합 X의 전체가 아닌 일부분에도 함수적으로 종속됨을 의미
  • ) 고객이름은 {고객아이디, 이벤트번호}에 부분 함수 종속됨

이행적 함수 종속(transitive FD)

  • 릴레이션을 구성하는 세 개의 속성 집합 X, Y, Z에 대해 함수 종속 관계 X->Y와 Y->Z가 존재하면 논리적으로 X->Z가 성립되는데 이를 Z가 X에 이행적 함수 종속되었다고 함

정규형(NF; Normal Form)의 유형

제1 정규형

  • 릴레이션의 모든 속성의 도메인이 원자값으로만 구성되어 있으면 제1 정규형에 속한다.

제2 정규형

  • 릴레이션이 제1 정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제2 정규형을 만족함
  • 이상 현상 발생

제3 정규형

  • 릴레이션이 제2 정규형에 속하고 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속이 되지 않으면 제3 정규형에 속한다.

출처: kocw 데이터베이스의 원리와 응용 - 한양대학교 백현미

profile
공부기록

0개의 댓글