💽 DataBase
관계 데이터 모델
관계 데이터 모델의 개념
개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델
- 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장
관계 데이터 모델의 기본 용어
- 릴레이션(Relation)
- 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것
- 파일 관리 시스템 관점에서 파일(File)에 대응
- 속성(Attribute)
- 릴레이션의 열
- 파일 관리 시스템 관점에서 필드(Field)에 대응
- 튜플(Tuple)
- 릴레이션의 행
- 파일 관리 시스템 관점에서 레코드(Record)에 대응
- 도메인(Domain)
- 하나의 속성이 가질 수 있는 모든 값의 집합
- 속성 값을 입력 및 수정할 때 적합성의 판단 기준이 됨
- 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의
- Null
- 속성 값을 아직 모르거나 해당되는 값이 없음을 표현
- 차수(Degree)
- 하나의 릴레이션에서 속성의 전체 개수
- Cardinality
- 하나의 릴레이션에서 튜플의 전체 개수
릴레이션의 구성
- 릴레이션 스키마(Relation Schema)
- 릴레이션의 논리적 구조
- 릴레이션의 이름과 릴레이션에 포함된 모든 속성 이름으로 정의
- ex) 고객(고객 아이디, 고객 이름, 나이, 등급, 직업, 적립금
- 릴레이션 내포(Relation Intension)라고도 함
- 정적인 특징
- 릴레이션 인스턴스(Relation Instance)
- 어느 한 시점에 릴레이션이 존재하는 튜플들의 집합
- 릴레이션 외연(Relation Extension)이라고도 함
- 동적인 특징
데이터 베이스의 구성
- 데이터 베이스 스키마(Database Schema)
- 데이터 베이스의 전체 구조
- 데이터 베이스를 구성하는 릴레이션 스키마의 모음
- 데이터 베이스 인스턴스(Database Instance)
- 데이터 베이스를 구성하는 릴레이션 인스턴스의 모음
릴레이션의 특성
- 튜플의 유일성
- 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
- 튜플의 무순서
- 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
- 속성의 무순서
- 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
- 속성의 원자성
- 속성 값으로 원자 값만 사용할 수 있다.
릴레이션에는 다중 값 속성을 가질 수 없다.
Key
릴레이션에서 튜플을 유일하게 구별하는 속성 또는 속성들의 집합
Key의 특성
- 유일성(Uniqueness)
- 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야 함
- 최소성(Minimality)
- 꼭 필요한 최소한의 속성들로만 키를 구성
Key의 종류
Key의 관계
- Super Key
- 유일성을 만족하는 속성 또는 속성들의 집합
- ex) 고객 아이디, (고객 아이디, 고객 이름), (고객 이름, 주소) 등
- Candidate Key
- 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
- ex) 고객 아이디, (고객 이름, 주소) 등
- Primary Key(기본 키)
- Candidate Key 중에서 기본적으로 사용하기 위해 선택한 키
- Null을 가질 수 있는 속성이 포함된 Candidate Key는 부적합
- 값이 자주 변경될 수 있는 속성이 포함된 Candidate Key는 부적합
- 단순한 Candidate Key를 선택
- ex) 고객 릴레이션의 Primary Key: 고객 아이디
- Alternate Key(대체 키)
- Primary Key로 선택되지 못한 Candidate Key
- ex) (고객 이름, 주소)
- Foreign Key(외래 키)
- 다른 릴레이션의 Primary Key를 참조하는 속성 또는 속성들의 집합
- 릴레이션 간의 관계를 표현
- 참조하는 릴레이션: Foreign Key를 가진 릴레이션(주문 릴레이션)
- 참조되는 릴레이셔니 Foreign Key가 참조하는 Primary Key를 가진 릴레이션(고객 릴레이션)
- 역할
- 릴레이션 사이에 관계를 맺어 서로 다른 릴레이션 간의 튜플을 연결할 수 있음
- Foreign Key 속성과 그것이 참조하는 Primary Key 속성의 이름은 달라도 Ok
- But, 도메인은 같아야 함
- 하나의 릴레이션에 Foreign Key가 여러 개 존재할 수 있음
- Foreign Key를 Primary Key로 사용할 수 있다.
- 같은 릴레이션의 Primary Key를 참조하는 Foreign Key도 정의할 수 있다.
- Foreign Key의 속성은 Null이 가능
관계 데이터 모델의 제약
무결성 제약 조건(Integrity Constraint)
- 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙
- 무결성: 데이터에 결함이 없는 상태, 즉 정확하고 유효하게 유지하는 것
개체 무결성 제약 조건(Entity Integrity Constraint)
Primary Key를 구성하는 모든 속성은 Null이 불가
참조 무결성 제약 조건(Referential Integrity Constraint)
Foreign Key는 참조할 수 없는 가질 수 없다.
- Foreign Key이 Null이라 해서 참조 무결성 제약 조건을 위반한 것은 아니다.