1. 관계 데이터 모델
1.1 관계 데이터 모델이란
관계 데이터 모델은 DB를 2차원 테이블인 '릴레이션의 집합'으로 모델링하는 논리적인 데이터 구조이다.
특징
- 개체와 관계가 모두 2차원 테이블(릴레이션)로 표현된다.
- ER 모델을 관계 데이터 모델로 변형하는 것이 매우 쉽다.
테이블 : 릴레이션을 표현하는 구체적인 방법. 중복되는 행을 허용
릴레이션 : 추상적인 개념. 하나의 릴레이션은 여러 형태의 테이블로 표현됨. 중복되는 행 허용하지 않음.
1.2 주요 용어들
1.3 릴레이션의 개념
릴레이션 : 행(Row)와 열(Column)로 구성된 2차원 구조. 각 행은 튜플이고 각 열은 속성이다. 릴레이션 스키마와 릴레이션 인스턴스가 합쳐진 개념이다.
릴레이션 스키마 : 릴레이션을 구성하는 속성들의 집합. 릴레이션 내포(Intension) 또는 릴레이션 스킴(Scheme)이라고도 한다. "릴레이션 이름+속성 이름"으로 표현한다. 릴레이션의 정적인 성질로 시간이 지나도 자주 변경되지 않는다. 릴레이션 타입과 같은 의미이다.
릴레이션 인스턴스 : 릴레이션을 구성하는 튜플들의 집합. 릴레이션의 외포(Extension)라고도 한다. 릴레이션의 내용, 즉 어느 한 시점에 릴레이션 R이 포함하고 있는 튜플들의 집합이다. 릴레이션의 동적인 성질로 삽입, 삭제, 갱신으로 시간에 따라 변경된다. 릴레이션의 값을 의미한다.
릴레이션의 수학적 정의 : 릴레이션R은 모든 도메인의 카티션 프로덕트(Cartesian Product)의 부분집합. *카티션 프로덕트 : 조합 가능한 모든 조합을 구하는 연산자
릴레이션의 개념적 정의 : 릴레이션 스키마 + 릴레이션 인스턴스
1.4 릴레이션의 특성
릴레이션의 특성 : 튜플의 유일성, 튜플의 무순서성, 속성의 무순서성, 속성의 유일성, 속성의 원자성
튜플의 유일성 : 하나의 릴레이션에 포함된 튜플은 각기 달라야한다. 따라서 릴레이션은 중복된 유플이 존재하지 않는 튜플들의 집합(Set)이다. 릴레이션에는 항상 튜플을 유일하게 식별할 수 있는 키(Key)가 존재해야 한다.
튜플의 무순서성 : 하나의 릴레이션에서 튜플들의 순서는 의미가 없다. 따라서 순서만 다른 튜플들로 구성된 릴레이션은 다른 릴레이션이 될 수 없다.
속성의 무순서성 : 하나의 릴레이션에서 속성들의 순서는 의미가 없다. 속성은 순서가 아니라 '이름(사번, 부서번호 등)'에 의해서 참조된다.
속성의 유일성 : 하나의 릴레이션에 같은 이름을 갖는 속성이 존재할 수 없다.
속성의 원자성 : 모든 속성은 원자 값(Atomic Value)를 가져야 한다. 속성 값은 논리적으로 더 이상 분리될 수 없으며 여러 개의 값을 갖는 속성은 직접 표현할 수 없다. NULL도 원자 값으로 간주한다.
2. 키(Key)와 무결성 제약조건
2.1 관계 DB
관계 DB 구성 : 릴레이션들의 집합으로 구성. 시간에 따라 내용이 변할 수 있는 테이블 형태로 DB를 표현
관계 DB 스키마 : 릴레이션 스키마 + 무결성 제약조건 *무결성 제약 조건 : 데이터의 정확성과 일관성 유지를 위해 만족시켜야 하는 조건
>> 따라서 관계 DB를 정의하기 위해서는 릴레이션 스키마 뿐만 아니라 무결성 제약조건도 정의해야 한다.
2.2 키(Key)
키(Key) : 릴레이션을 구성하는 튜플들을 유일(Unique)하게 식별할 수 있는 속성, 또는 속성들의 집합이다.
후보키(Candidate Key)
- 후보키란, 릴레이션 R(A1 ,A2, ,An )의 전체 속성 집합 A의 부분 집합이면서, 유일성 (Uniqueness)과 최소성(Minimality)을 만족하는 속성 집합이다. => K ( { A1, A2, An ] )
- 유일성(Uniqueness) : 각 튜플을 유일하게 식별할 수 있는 성질
- 최소성(Minimality) : 유일성을 만족하기위해 필요한 최소 속성만 포함. ( 한 속성을 제거에도 유일성을 만족한다면, 최소성을 만족하지 않는 것이다)
외래키(Foreign Key)
- 릴레이션 R의 어떤 속성집합 FK가 또 다른 릴레이션 S의 기본 키일 때, FK를 R의 외래키라고 한다.
- 외래키의 도메인은 릴레이션 S의 기본키의 도메인과 같다.
- 외래키의 값은 릴레이션 S에 존자하는 값이거나 널 값을 가질 수 있다.
- 하나 이상의 테이블을 연결해서 사용할 때 필요하다.
- R과 S가 동일한 릴레이션일 수 있다.
- 외래키의 종류 - 다른 닐레이션의 기본키를 참조하는 외래키, 동일한 릴레이션의 기본키를 참조하는 외래키, 기본키의 구성요소가 된느 외래키
2.3 무결성 제약조건
무결성 제약조건 : DB에 저장된 데이터의 정확성과 일관성 유지를 위해 DB가 항상 만족해야 하는 조건이다. DB를 설계할 때 무결성 제약조건을 고려해야 한다. 사용자에 의한 DB 갱신이 DB의 일관성을 깨지 않도록 보장하고, DB의 상태가 현실 세계에서 허용되는 상태만 나타낼 수 있도록 보장한다.
무결성 제약조건
- 개체 무결성(Entity Integrity) : 기본키는 튜플들을 유일하게 식별해야 하므로 널 값을 가질 수 없다.
- 참조 무결성(Referential Integrity) : 외래키는 반드시 피참조 릴레이션의 기본키 값이나 널 값을 가져야 한다.
- 도메인 무결성(Domain Integrity) : 특정 속성은 반드시 미리 정해진 범위의 값을 가져야 한다.
무결성 제약조건 정의 방법
- 묵시적 정의 : 릴레이션을 정의할 때 기본키와 외래키를 정의하면 개체 무결성과 참조 무결성이 묵시적으로 정의된다.
- 명시적 정의 : 개체 무결성과 참조 무결성 이외에, 데이터의 정확성과 일관성 유지를 위해서 특정 속성이 만족해야 하는 의미 무결성 제약조건은 명시적으로 정의해야 한다
e-koreatech 데이터베이스 강의 https://www.e-koreatech.ac.kr
'공부 > 데이터베이스' 카테고리의 다른 글
05. ER 모델 개요 (0) | 2017.11.22 |
---|---|
04. 데이터 모델링 개요 (0) | 2017.11.21 |
03. DB 시스템의 개요 (0) | 2017.11.20 |
02. DBMS 개요 (0) | 2017.11.15 |
01. 데이터베이스 개요 (0) | 2017.11.14 |