-
릴레이션 특성, 제약조건Database 2021. 3. 29. 11:51
릴레이션의 특성
1) 투플의 유일성(uniqueness of tuples)
릴레이션 = 투플들의 집합(set)
2) 투플의 무순서성(no ordering of tuples): 행의 순서 관계 없음
릴레이션: 추상적 개념 <= 투플들의 집합
테이블 : 구체적 개념
3) 애트리뷰트의 무순서성(no ordering of attributes): 열의 순서 관계 없음
릴레이션 스키마 -> 애트리뷰트들의 "집합"
투플: <attribute : value> 쌍의 집합
4) 애트리뷰트의 원자성(atomicity)
- 애트리뷰트 값은 원자 값(atomic value)
- 논리적으로 분해 불가능
- 정규화 릴레이션(normalized relation)
- 애트리뷰트 값으로 원자 값만 허용되는 릴레이션
- 비정규화 릴레이션은 분해(decomposition)를 통해 정규화
동등한 의미를 유지
- 널 값(null value)도 원자 값으로 취급
- unknown, inapplicable
- 도메인
- 단순 도메인(원자값)
- 복합 도메인(composite domain): 값을 하나의 단위로 취급
릴레이션의 정규화
(a) 여러개의 composite value가 한 셀에 있다. -> 원자적이지 않다. 비정규 릴레이션
(b) 한 셀에 하나의 값을 가진다. -> 원자적이다. 정규 릴레이션
관계 데이터베이스 개념
- 관계 데이터베이스
- 테이블들의 집합
- 데이터베이스를 시간에 따라 그 내용이 변할 수 있는 테이블 형태로 표현
- 관계 데이터베이스 스키마(relational database schema)
- ={릴레이션 스키마} + {무결성 제약조건}
- 관계 데이터 모델 ↔ 프로그래밍 시스템
- 릴레이션↔파일
- 투플↔레코드(레코드 어커런스)
- 애트리뷰트↔필드(필드 타입)
- Notes: 관계 데이터베이스라고 할 때 데이터가 물리적 테이블 형태로 저장된다는 것을 의미하지는 않음
대학 관계 데이터베이스
유일성: unique한 key값으로 설정한다.
무순서성: 100,200,300의 학번을 섞어도 릴레이션은 같다.
cardinality: 튜플의 수
degree: 속성의 수
데이터베이스 키(Key)
- 키
- 각 투플을 유일하게 식별할 수 있는 애트리뷰트 집합(set of attributes)
- +minimality
- 후보 키(candidate key)
- 릴레이션 R(A1,A2,...An)에 대한 애트리뷰트 집합, K({Ai,Aj,...,Ak})로서 다음 두 성질을 만족
- 유일성: 각 투플에 대해 K({Ai,Aj,...,Ak})의 값(<Vi,Vj,...,Vk>)은 유일
- 최소성(miniality): K는 각 투플을 유일하게 식별하는데 필요한 애트리뷰트만 포함
- 릴레이션 R(A1,A2,...An)에 대한 애트리뷰트 집합, K({Ai,Aj,...,Ak})로서 다음 두 성질을 만족
- 슈퍼 키(super key)
- 유일성은 만족하지만 최소성은 만족하지 않는 애트리뷰트의 집합
- 기본 키(primary key)
- 후보 키(candidate key) 중에서 지정된 하나의 키 //대통령
- 데이터베이스 설계자가 지정
- 각 투플에 대한 기본 키 값은 항상 유효한 값이어야 함
- null값이 허용되지 않음
- 후보 키(candidate key) 중에서 지정된 하나의 키 //대통령
- 대체 키(alternate key)
- 후보키 중에서 기본 키를 제외한 나머지 후보 키
- 외래 키(foreign key) // 망명한 왕족
- 릴레이션 R의 애트리뷰트 집합 FK가 릴레이션 S의 기본키일 때 이 FK는 R의 외래 키이다.
- (FK의 도메인) = (S의 기본 키의 도메인)
- FK의 값은 S에 존재하는 값이거나 null
- R과 S가 같은 릴레이션일 수도 있음
- R을 참조 릴레이션(referencing relation), S를 피참조 릴레이션(referenced relation)이라 함
- 릴레이션 R은 FK를 통해 릴레이션 S를 참조
- R≠S인 경우
- R=S인 경우
ex) 위 학생 테이블의 예시에서:
학번 이름 모두 unique하고 minimal하다면
후보키= 학번, 이름
학번키를 기본키로 정했다면
대체키, 후보키 = 이름
특정키에 사족을 갖다붙이면 super key가 된다.
외래키: 등록 table에서 학번 속성은 minimality, uniqueness 아무것도 만족시키지 못한다. 하지만 학생 table에서 기본키로 쓰인다. --> 등록 테이블에서 학번은 외래키다.무결성 제약(Integrity Constraints)
- 개체 무결성(entity integrity)
- 기본 키 값은 언제 어느 때고 null 값을 가질 수 없다.
- Notes: null 값
- 정보 부재를 명시적으로 표현하는 특수한 데이터 값
- 알려지지 않은 값(unknown value)
- 해당 없음(inapplicable)
- 정보 부재를 명시적으로 표현하는 특수한 데이터 값
- 참조 무결성(referectial integrity)
- 외래 키 값은 반드시 피참조 릴레이션의 기본 키 값이거나 null이다.
- 이 무결성 제약조건은 데이터베이스 상태(database state)가 항상 만족시켜야 될 제약조건임
무결성 제약조건
- 구조적 제약조건 constructural constraints
- 개체 무결성: PK는 null값을 가질 수 없다. 학생의 학번 null이 되면 안된다.
- 참조 무결성: FK값은 PK값을 가져야 한다.
- 의미적 semantic constraints
- 도메인 무결성: '학생'은 1-4의 값
- 함수종속 FD: 학번->이름. ex) 100->나수영
- 다치종속 MVD - 하나의 속성을 알면 여러 값을 알 수 있다.
무결성 제약 2 (Integrity Constraints)
- 데이터베이스 상태(Database state)
- 어느 한 시점에 데이터베이스에 저장되어 있는 모든 데이터 값(투플)
- 데이터베이스 인스턴스(database instance)
- 데이터베이스 스키마에 포함되어 있는 모든 릴레이션들의 인스턴스 집합
- 데이터베이스 상태의 계속적인 변화
- 삽입, 삭제, 변경 연산
- DBMS는 데이터베이스 상태의 변화에도 항상 무결성 제약을 만족시키도록 해야 함
'Database' 카테고리의 다른 글
관계 대수의 일반 집합 연산 (0) 2021.03.30 관계 데이터베이스 (0) 2021.03.23 DBMS(2) (0) 2021.03.23 Database system (0) 2021.03.16 데이터 독립성, DBMS의 발전과정 (0) 2021.03.15 - 애트리뷰트 값은 원자 값(atomic value)