고관계형 데이터베이스의 구조
관계형 데이터베이스의 개요
- 개체(Entity)나 관계(Relationship)를 릴레이션(Relation)이라는 표로 표현
- 릴레이션에는 개체 릴레이션, 관계 릴레이션이 있음
- 장점 : 간결하고 타 DB로의 변환이 용이
- 단점 : 성능 다소 저하
관계형 데이터베이스의 Relation 구조
릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성
튜플(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 는 두 릴레이션에 모두 존재하는 튜플) |
- |R∩S| ≤ 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
'자격증 > IT' 카테고리의 다른 글
정보처리산업기사(필기) - 전자계산기 구조 : 프로세서 1 (중앙처리장치) (0) | 2021.04.01 |
---|---|
정보처리산업기사(필기) 정리 - 데이터베이스 : 자료 구조의 기본 (0) | 2021.03.31 |
정보처리산업기사(필기) - 데이터베이스 : 관계 데이터베이스 모델과 언어 2 (0) | 2021.03.23 |
정보처리산업기사(필기) - 데이터베이스 : 데이터 모델링 및 설계 (0) | 2021.03.15 |
정보처리산업기사(필기) - 데이터베이스 : 데이터베이스의 개념 (0) | 2021.03.11 |