반응형

고관계형 데이터베이스의 구조

관계형 데이터베이스의 개요

  • 개체(Entity)나 관계(Relationship)를 릴레이션(Relation)이라는 표로 표현
  • 릴레이션에는 개체 릴레이션, 관계 릴레이션이 있음
  • 장점 : 간결하고 타 DB로의 변환이 용이
  • 단점 : 성능 다소 저하

관계형 데이터베이스의 Relation 구조

릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성

 e.g. 릴레이션

튜플(Tuple)

  • 릴레이션의 각 행
  • 속성의 모임으로 구성
  • 파일 구조에서의 레코드에 해당
  • 튜플의 수를 카디널리티(Cardinality) 혹은 기수, 대응수라고 함

속성(Attribute)

  • 데이터베이스를 구성하는 가장 작은 논리적 단위
  • 파일 구조에서의 데이터 항목 또는 데이터 필드에 해당
  • 개체의 특성을 기술
  • 속서으이 수를 디그리(Degree) 혹은 차수라고 함

도메인(Domain)

  • 하나의 속성이 취할 수 있는 같은 원자(Atomic)들의 집합
  • 속성 값의 합법 여부 검사에도 이용

릴레이션의 특징

  • 한 릴레이션의 튜플은 모두 다름
  • 한 릴레이션의 튜플 사이 순서는 없음
  • 튜플의 삽입 삭제 등으로 릴레이션은 변함
  • 릴레시면 스키마 속성 간 순서 중요하지 않음
  • 속성의 명칭은 유일해야하나, 값은 동일할 수 있음
  • 릴레이션 속성들의 부분집합을 키(Key)로 설정
  • 속성의 값은 더 쪼갤 수 없는 원자값만을 저장

관계형 데이터베이스의 제약 조건

- 정확성을 위해 키를 이용하여 입력 데이터 제한

키(Key)의 개념 및 종류

튜플을 찾거나 정렬할 때, 튜플의 기준이 되는 애트리뷰트(속성)

후보키(Candidate Key)

  • 기본키로 사용할 수 있는 속성
  • 릴레이션에는 반드시 하나 이상 존재
  • 릴레이션의 튜플에 대해 유일성과 최소성 만족
    - 유일성 (Unique) : 하나의 키 값으로 하나의 튜플 식별
    - 최소성 (Minimality) : 식별에 꼭 필요한 속성으로 구성

기본키(Primary Key)

  • 후보키 중 선택한 키
  • 릴레이션에서 튜플을 구별하는 속성
  • Null값을 못가짐
  • 동일한 값 중복저장 불가

대체키(Alternate Key)

  • 후보키가 둘 이상일 때 기본키를 제외한 후보키
  • 보조키라고도 함

슈퍼키(Super Key)

  • 릴레이션 내 속성의 집합으로 구성된 키
  • 유일성을 만족하나, 최소성은 만족 못함

외래키(Foreign Key)

  • 관계를 맺는 릴레이션 R1,R2에서 R1이 참조하는 'R2의 기본키와 같은 속성'
  • 릴레이션 간 참조관계 표현
  • 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 삽입불가

무결성

개체 무결성

기본키를 구성하는 속성은 널(NULL) 값이나 중복값 불가능

참조 무결성

  • 외래키 값은 NULL이거나 참조한 릴레이션의 기본키 값들과 값아야함. 즉 참조할 수 없는 값은 외래키 값을 가질 수 없음
  • 외래키와 참조 테이블의 기본키는 도메인과 속성 개수가 같아야 함

관계대수 및 관계해석

관계대수의 개요

  • 관계형 데이터베이스에서 정보 검색 방법을 기술하는 절차적 언어
  • 연산자와 연산규칙을 제공, 피연산자가 릴레이션이고, 결과도 릴레이션
  • 연산의 순서 명시
  • 순수 관계 연산자 : Select Project, Join, Division
  • 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)

순수 관계 연산자

Select

  • 선택 조건을 만족하는 튜플의 부분집합으로 새 릴레이션 반환
  • 릴레이션의 행(가로)에 해당하는 튜플을 구하므로 수평 연산이라고도 함
  • 표기 형식 : 시그마. [σ<조건>(R)]

Project

  • 속성 List에 제시된 Attribute만을 추출
  • 릴레이션의 열(세로)에 해당하는 속성을 추출하므로 수직 연산이라고도 함
  • 표기형식 : 파이. [π <속성리스트> (R)]

Join

  • 공통 속성을 중심으로 두 릴레이션을 합쳐 새 릴레이션을 만드는 연산
  • 표기 형식 : R ⋈ 키속성r=키속성s S 
    (키속성r은 릴레이션 R의 속성, 키속성s는 릴레이션 S의 속성)

Division

  • X ⊃ Y 인 두 릴레이션 R(X), S(Y)에서 R의 속성이 S의 속성값은 모두 가질 때, S의 속성을 제외한 속상을 구하는 연산
  • 표기 형식 : R [속성r ÷ 속성s] S

일반 집합 연산자

- 수학적 집합에서 사용하는 연산을 릴레이션 연산에 적용

  • 합집합, 교집합, 차집합은 합병 조건이가능
  • 합병 조건 : 두 릴레이션 간 속성 수가 같고, 속성이 가질 수 있는 도메인의 범위가 같음
  • 합병 가능 릴레이션 R, S이 있을 때, 연산의 특징
연산자 기능 및 수학적 표현 카디널리티
합집합
UNION
- 두 릴레이션 튜플의 합집합 (중복 튜플 제거)

- R ∪ S = { t | t ∈ R ∨ t ∈ S }
(t 는 두 릴레이션에 모두 존재하는 튜플)
- |R∪S| ≤ |R| + |S|

- 두 릴레이션 카디널리티 합보다 작거나 같음
교집합
INTERSECTION
- 두 릴레이션 튜플의 교집합

- R S = { t | t ∈ R  t  S }
(t 는 두 릴레이션에 모두 존재하는 튜플)
- |RS| ≤ MIN{|R|, |S|}

- 카디널리티가 적은 릴레이션의 카디널리티보다 작거나 같음
차집합
DIFFERENCE
-
- 두 릴레이션 튜플의 차집합

- R -
 S = { t | t ∈ R  t  S }
(t 는 릴레이션 R에는 존재하고 S에 없는 튜플)
- |R-S| ≤ |R|

- 릴레이션 R의 카디널리티보다 작거나 같음
교차곱
CARTESIAN
PRODUCT
×
- 두 릴레이션 튜플의 순서쌍

- R × S = { r * s | r ∈ R  s  S }
(r은 R에 존재하는 튜플, s는 S에 존재하는 튜플)
- |R×S| = |R| ×|S|

- 두 릴레이션의카디널리티 곱

관계해석

  • 관계 데이터의 연산 표현법, 정보 정의를 위해 계산 수식 사용
  • 정보가 무엇이냐만 정의하는 비절차적 특성
  • 튜플 관계해석과 도메인 관계해석
  • 관계해석과 관계대수는 DB 처리 기능면에서 동등, 관계대수식을 관계해석으로 표현가능
  • 질의어 표현

정규화

정규화의 개요

  • 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개 고치는 과정
  • 릴레이션 마다 종속성이 표현되도록 분해
  • 정규형의 차수가 높아질수록 제약조건 증가
  • 논리적 설계 단계에서 수행
  • 논리적 처리 및 품질에 영향

정규화의 목적

  • 데이터 구조 안정성
  • 릴레이션을 데이터베이스 내에서 표현 가능
  • 효과적 검색 알고리즘 생성
  • 중복 배제를 통한 삽입,삭제,갱신 이상 발생 방지
  • 데이터 삽입시 릴레이션 재구성 필요 감축

Anomaly(이상)의 개념 및 종류

- 데이터 중복과 릴레이션 조작 이상

  • 삽입 이상(Insertion Anomaly) : 삽입의도와 별개로 원하지 않은 값의 삽입 현상
  • 삭제 이상(Deletion Anomaly) : 삭제 의도와는 상관없는 값도 삭제되는 연쇄 삭제 현상
  • 갱신 이상(Update Anomaly) : 속성값 갱신 시 일부 튜플의 정보만 갱신되어 정보에 모순이 발생하는 현상

정규화의 원칙

  • 스키마 변환 시 정보의 무손실 표현
  • 독립된 관계성은 독립된 릴레이션으로 분리
  • 데이터 중복성 감소

정규화 과정

1NF(제1정규형)

  • 릴레이션의 모든 도메인이 원자값(Atomic Value)으로 구성
  • 릴레이션의 모든 속성이 단순 영역에서 정의

2NF(제2정규형)

릴레이션 R이 1NF, 모든 속성이 기본키에 대해 완전 함수적 종속관계 만족

 

함수적 종속 관계 : 릴레이션(학번, 이름, 과목명)에서 '학번'이 결정되면  항상 같은 '이름'이 대응

완전 함수적 종속 관계 : 속성 A가 다른 속성들의 집합 B전체에 대해 함수적 종속이지만, B의 진부분 집합에 대해서는 종속이 아님. ; 릴레이션 (학번, 과목명, 성적)에서 '성적'이 (학번, 과목명)에는 함수 종속이나 '학번'이나 '과목명'에는 아님.

3NF(제3정규형)

릴레이션 R이 2NF, 키가 아닌 모든 속성이 기본키에 대해 이행적 종속관계 (A→B 이고 B→C일 때, A→C인 관계)를이루지 않도록 제한

- 종속성을 보존하며 설계를 얻을 수 있음

BCNF(Boyce-Codd 정규형)

  • 릴레이션 R의 결정자가 모두 후보키  (결정자 : '학번'에 따라 '이름'이 결정될 때, '학번' : 결정자, '이름' : 종속자)
  • 3NF에서 후보키가 많고 서로 중첩되는 경우 적용
  • 모든 경우가 종속성을 보존하진 않음
  • 제약 조건
    - 모든 속성은 각 키에 대해 종속
    - 모든 속성은 자신이 들어가지 않은 모든 키에 대해 완전 종속
    - 키가 아닌 속성에 대해 완전 종속 불가

4NF(제4정규형)

릴레이션 R에 A-≫B가 성립할 때, R의 모든 속성이 A에 함수적 종속 (A-B : 다치 종속)

5NF(제5정규형)

릴레이션 R의 모든 조인 종속성(JD)의 만족이 R의 후보키를 통해만 만족 될 경우

정규화 과정 정리

비정규 릴레이션 →(도메인이 원자값) 1NF →(부분적 함수 종속 제거) 2NF →(이행적 함수 종속제거) 3NF →(결정자이면서 후보키가 아닌 것 제거) BCNF →(다치 종속) 4NF →(조인 종속성 이용) 5NF

반응형

+ Recent posts