1. 관계 데이터 모델
- 관계 데이터베이스의 기반
- 수학의 릴레이션과 집합 이론에 기초한다
- 테이블 : Relation
- 테이블의 열 : attribute
- 테이블의 행 : tuple
애트리뷰트와 도메인
- 도메인 : 애트리뷰트가 취할 수 있는 값들의 집합 (학년 : {1,2,3,4} / {x | 1<=x<=4})
1. 단순 도메인 : 단순 애트리뷰트 : 원자 값
2. 복합 도메인 : 복합 애트리뷰트 : 복합 값 (연, 월, 일 => 날짜 : <연,월,일>)
- 애트리뷰트 : 도메인의 역할 이름 / 한 릴레이션 내에서 애트리뷰트 이름들은 모두 달라야 한다.
애트리뷰트 이름과 도메인 이름은 같을 수도 있다. (역할 이름을 도메인 이름으로 지정)
2. 릴레이션의 개념
DCL : Declare (선언)
릴레이션 스키마 : 릴레이션 내포(relation intension) / 릴레이션 스킴(relation scheme) 릴레이션 타입..
- 한 릴레이션의 논리적 구조를 정의
- 정의 자체이므로 시간에 따라 변하지 않는 정적인 성질
릴레이션 인스턴스 : 릴레이션 외연 (relation extension), 릴레이션 값(보통 릴레이)
- 어느 한 시점에서 릴레이션의 내용(상태), 즉 투플 전체
- 삽입, 삭제, 갱신으로 시간에 따라 내용이 변하는 동적 성질
관계 데이터 모델은 DB를 구성하는 개체나 관계를 모두 릴레이션이란 한가지 방법으로 표현한다.
1. 개체 릴레이션 : entity를 표현하는 릴레이션
2. 관계 릴레이션 : relationship을 표현하는 릴레이션
릴레이션 R:
수학적 정의
- 릴레이션 R : 카티션 프로덕트의 부분집합
- 릴레이션 R의 정의에서 사용된 도메인(애트리뷰트)의 개수 : 릴레이션의 차수(n)
- 릴레이션에 포함되어있는 튜플의 수 : 카디널리티(cardinality)
- cardinality는 시간에 따라 변하지만, 차수는 그대로 유지된다.
3. 릴레이션의 특성
1. 튜플의 유일성 :
- 릴레이션 = 튜플의 집합("set") : 따라서 두개의 똑같은 튜플은 한 릴레이션에 포함될 수 없다.
2. 튜플의 무순서성 :
- 릴레이션 : 튜플들의 집합이기 때문에 하나의 릴레이션을 순서만 바꾼다고 해도 같은 릴레이션이다.
- 테이블 : 릴레이션을 외부로 기술하는 하나의 구체적 표현
3. 애트리뷰트의 무순서성 :
- 릴레이션 스키마 => 애트리뷰트들의 집합("set") 따라서 순서가 없다.
- 튜플 : <attribute : value> 쌍의 집합
4. 애트리뷰트의 원자성 :
- 애트리뷰트 값은 원자값 : 논리적으로 더 이상 분해 불가능한 처리상의 단위 값(unit value)
- 정규화 릴레이션 :
1. 애트리뷰트 값으로 원자 값만 허용되는 릴레이션 (반복 그룹(값의 집합)을 허용하지 않는다.)
2. 비정규화 릴레이션은 분해를 통해 정규화
3. 동등한 의미를 유지
- 널값(Null value)도 원자 값으로 취급 : unknown, inapplicable
- 도메인 :
1. 단순 도메인 :
2. 복합 도메인 : 의미상 값을 하나의 단위로 취급
정규화 : 비정규화 릴레이션을 분해를 통해 원자 값을 갖는 애트리뷰트들로 만드는 것.
관계 데이터 모델에서 정규화 릴레이션만 취급하는 이유 : 구조적으로 간단하고 조작이 간단해서 데이터의 관리가 용이하다.
4. 관계 데이터베이스 개념
1. 관계 데이터베이스 :
- 테이블들의 집합 / 관계 데이터베이스 스키마에 정의된 릴레이션 인스턴스들의 집합
- 데이터베이스를 시간에 따라 그 내용(상태)이 변할 수 있는 테이블 형태로 표현
2. 관계 데이터베이스 스키마 = {릴레이션 스키마} + {무결성 제약조건}
3. 관계 데이터 모델 <=> 프로그래밍 시스템
- 릴레이션 <=> 파일
- 튜플 <=> 레코드 (레코드 어커런스)
- 애트리뷰트 <=> 필드(필드 타입)
※관계 데이터베이스라고 할 때, 데이터가 물리적 테이블 형태로 저장된다는 것을 의미하지 않음
5. 데이터베이스 키
- 키 : 각 튜플을 유일하게 식별할 수 있는 애트리뷰트 집합
1. 후보키 : 릴레이션 R(A1,A2,A3,...,An)에 대한 애트리뷰트 집합, K({ Ai,Aj,Ak,...,Ah})로서 다음의 두 성질을 만족
- 유일성 : 각 튜플에 대해 K의 값(<vi,vj,...,vk>)은 유일
- 최소성 : K는 각 튜플을 유일하게 식별하는데 꼭 필요한 애트리뷰트만 포함 (학번 / 주민 번호)
2. 슈퍼키 : 유일성은 만족하지만 최소성은 만족하지 않는 애트리뷰트의 집합
3. 기본키 : 후보키 중에서 DBA가 지정한 하나의 키
- 각 튜플에 대한 기본 키 값들은 항상 유효한 값이어야 한다.(NULL값이 허용되지 않음)
4. 대체키 : 후보 키 중에서 기본키를 제외한 나머지 후보 키
5. 외래키 : 릴레이션 R의 애트리뷰트 집합 FK가 릴레이션 S의 기본 키일 때, 이 FK는 R의 외래 키이다.
- FK의 도메인 = S의 기본키의 도메인
- FK의 값은 S에 존재하는 값이거나 NULL
- R과 S가 같은 릴레이션일 수도 있음
- R을 참조 릴레이션, S를 피참조 릴레이션이라고 한다. (릴레이션 R은 FK를 통해 릴레이션 S를 참조)
- R != S 인 경우
- R == S 인 경우
6. 무결성 제약
1. 개체 무결성 : 기본키 값은 언제 어느때고 NULL 값을 가질 수 없다.
2. 참조 무결성 : 외래 키 값은 반드시 피 참조 릴레이션의 기본키 값이거나 NULL이다.
- null 값 : 정보 부재를 명시적으로 표현하는 특수한 데이터 값
1. 알려지지 않은 값 (unknown value)
2. 해당 없음 (inapplicable)
- 이 무결성 제약조건은 데이터베이스 상태가 항상 만족시켜야 될 제약조건이다.
데이터베이스 상태- 어느 한 시점에 데이터베이스에 저장되어 있는 모든 데이터 값(튜플)- 데이터베이스 인스턴스-- 데이터베이스 스키마에 포함되어있는 모든 릴레이션들의 인스턴스 집합- 데이터베이스 상태의 계속적인 변화-- 삽입, 삭제, 변경 연산
- DBMS는 데이터베이스 상태의 변화에도 항상 무결성 제약을 만족시키도록 해야한다.
'Study > 데이터베이스' 카테고리의 다른 글
데이터베이스 6. SQL (0) | 2023.10.22 |
---|---|
데이터베이스 5. 관계대수와 관계해석 (0) | 2023.10.22 |
데이터베이스 3. 데이터베이스 시스템의 구성 (0) | 2023.10.15 |
데이터베이스 2. 데이터베이스 관리 시스템과 구성 (0) | 2023.10.15 |
데이터베이스 1. 데이타베이스 환경 (0) | 2023.09.18 |