Relation 개념
수학적 정의
Relation은 Cartesian Product의 부분집합
집합
- 회원명 = {'송중기', '서현', '송혜교', '보아' }
- 주소 = {'서울강남', '서울용산', '서울구로', '경기용인'}
Relation
- {('송중기','서울강남'),('서현','서울용산'),('송혜교','서울구로'),('보아','경기용인)}
개념적 정의
Relation schema
- 릴레이션의 이름과 애트리뷰트 이름들
- 릴레이션을 위한 틀(framework)
- 표기법(relation이름(attribute1, attribute2,...attribute N)
- 기본 키 attribute에는 밑줄 표시
- 정적 성질
- 내포라고 함
Relation instance
- 어느 시점에 relation에 들어 있는 튜플들의 집합
- 삽입, 삭제, 갱신으로 시간의 흐름에 따라 계속 변함(동적 성질)
- 일반적으로 릴레이션에는 현재의 인스턴스만 저장
- 외연(extension)이라고 함
Relation 특성
튜플의 유일성
동일한 튜플이 두 개 이상 존재하지 않음 -> 키가 존재함
튜플의 무순서성
- 튜플들의 순서는 중요하지 않음
- 튜플들의 순서가 달라도 동일한 릴레이션
Attribute의 무순서성
순서가 중요하지 않음
Attribute의 원자성
한 튜플의 각 Attribute는 원자값을 가짐
기타
- 각 Relation은 하나의 레코드 타입만 포함
- 한 Attribute 내의 값들은 모두 같은 유형
- 각 Attirubte의 이름은 한 Relation 내에서만 고유
Relation의 키
키의 정의
각 튜플을 고유하게 식별할 수 있는 하나 이상의 Attribute들의 집합
키의 유형
- 슈퍼 키(super key)
- 후보 키(candidate key)
- 기본 키(primary key)
- 대체 키(alternate key)
슈퍼 키
- 한 Relation 내의 특정 튜플을 고유하게 식별하는 하나의 속성 또는 속성들의 집합으로서 유일성을 만족
- 튜플들을 고유하게 식별하는데 꼭 필요하지 않은 Attribute들을 포함할 수 있음(최소성 만족하지 않음)
후보 키
- 각 튜플을 고유하게 식별하는 최소한의 속성들의 모임
- 유일성(unigueness)과 최소성(minimality)을 만족
- 모든 릴레이션에는 최소한 한 개 이상의 후보 키가 있음
기본 키(Primary Key)
- 후보 키 중 릴레이션에서 사용하려고 선정한 키
- 신용카드 회사 고객 Relation에서 신용카드번호와 주민등록번호가 후보키가 될 수 있음, 이중에서 신용카드번호를 기본키로 선정
- 자연스러운 기본 키를 찾을 수 없는 경우에는 레코드 번호와 같이 인위적인 키 속성을 릴레이션에 추가할 수 있음
대체 키
- 기본 키가 아닌 후보키
- 신용카드 회사의 고객 Relation에서 신용카드 번호를 기본 키로 선정하면 주민등록번호는 대체 키
반응형
외래 키(foreign key)
- 특정 Relation의 기본 키를 참조하는 속성
- 관계 데이터베이스에서 Relation간의 관계를 나타내기 위해서 사용
- 외래 키 속성은 피참조되는 Relation의 기본 키 속성과 동일한 도메인을 가져야 함
- 외래 키 값은 피참조되는 Relation의 기본 키에 존재하는 값이거나 Null 값을 가짐
- 자신이 속한 Relation에서 기본 키의 구성요소가 될 수 있음
관계 데이터 모델에서의 키
무결성 제약
데이터 무결성(data integrity)
- 데이터의 정확성 또는 유효성을 의미
- 일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적 또는 명시적으로 정의함
- 무결성 제약조건은 데이터베이스 상태가 만족시켜야 하는 조건
- 데이터베이스가 갱신될 때 DBMS가 자동적으로 무결성 조건을 검사하므로 응용 프로그램들은 무결성 조건을 검사할 필요가 없음
개체 무결성 제약조건(entity integrity constraint)
- Relation에서 기본 키 속성은 Null값을 가질 수 없음
- Null 값 : 정보 부재를 명시적으로 표현하는 특수한 데이터 값으로 1. 알려지지 않은 값, 또는 해당없음
참조 무결성 제약조건(referential integrity constraint)
- 릴레이션은 참조할 수 없는 외래 키 값을 갖지 않는다. (NULL 값은 허용)
- 릴레이션 사이의 관계들이 다른 릴레이션의 기본키를 참조하는 것을 기반으로 표현되기 때문에 외래 키의 개념이 중요
참조 무결성 제약조건(referential integrity constraint)
- Relation R2의 외래 키가 Relation R1의 기본 키를 참조할 때 참조
- 무결성 제약조건은 아래의 두 조건 중 하나가 성립되면 만족됨
- 외래 키의 값은 R1의 어떤 튜플의 기본 키 값과 같다
- 외래 키는 널값을 가진다
제약 조건의 유지
삽입
참조되는 부서 Relation에 새로운 튜플이 삽입되면 참조, 무결성 제약 조건은 위배되지 않음
참조하는 Relation에 새로운 튜플을 삽입할 때는 참조 무결성 제약조건을 위배할 수 있음
삭제
- 참조되는 Relation에서 튜플이 삭제되면 참조 무결성 제약조건을 위배하는 경우가 생기거나, 생기지 않을 수 있음
- 예1 : 부서 Relation에서 네 번째 튜플인 (4, 홍보, 8)를 삭제하더라도 참조 무결성 제약조건을 위배하지 않음
- 예2 : 부서 Relation에서 세 번째 튜플인 (3, 개발, 9)를 삭제하면 무결성 제약조건을 위배하게 됨
참조 무결성 유지를 위한 DBMS 옵션
제한(restricted)
위배를 야기한 연산을 단순히 거절
연쇄(cascade)
참조되는 Relation에서 튜플을 삭제하고, 참조하는 Relation에서 이 튜플을 참조하는 튜플들도 함께 삭제
NO ACTION(=resticted)
참조 무결성 제약 조건을 위배한 연산 거절
학습정리
Relation 개념
수학적, 개념적 정의
Relation 특성
- 튜플과 Attribute는 무순서
- 튜플은 유일하고 Attribute 값은 원자값
Relation 키
슈퍼키, 후보키 : 유일성과 최소성을 만족하는 Attribute의 집합
기본키 : 후보키 중 사용하려고 선정한 키
외래키 : 특정 Relation의 기본키를 참조하는 키(속성)
무결성 제약
개체 무결성 제약
참조 무결성 제약
반응형
'23년 이전 글 > 데이터베이스' 카테고리의 다른 글
관계 연산자, 조인 (0) | 2022.07.27 |
---|---|
관계 데이터 연산(select, project, 집합 연산) (0) | 2022.07.26 |
데이터베이스 시스템, 데이터 모델 (0) | 2022.07.23 |
데이터베이스 시스템 구성 요소 (0) | 2022.07.23 |
데이터베이스 관리 시스템 (0) | 2022.07.06 |