티스토리 뷰
[한빛아카데미] 오라클로 배우는 데이터베이스 개론과 실습 책으로 학습한 내용을 정리한 것입니다.
* 관계 데이터 모델
- 1970년대 IBM연구소에서 근무하던 수학자 E. F. Codd박사가 제안
- 수학의 집합이론에 근거하고 있어 타 모델에 비해 튼튼한 이론적인 토대를 가지고 있음
- 관계 데이터 모델이 적용된 SQL언어는 비절차적인 언어로 원하는 데이터를 쉽게 표현하는 장점이 있음
* 릴레이션(Relation)
- 행과 열로 구성된 테이블을 말함
[릴레이션과 관련된 한글 용어]
용어 | 한글 용어 | 비고 |
relation | 릴레이션, 테이블 | '관계'라고 하지 않음 |
relational data model | 관계 데이터 모델 | |
relational database | 관계 데이터베이스 | |
relational algebra | 관계대수 | |
relationship | 관계 |
* 릴레이션 스키마와 인스턴스
- 스키마(Schema) : 관계 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지 기본적인 구조 정의
- 인스턴스(Instance) : 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합을 의미
- 릴레이션 스키마 : 릴레이션에 어떤 정보가 담길지를 정의함
1) 속성(Attribute) : 릴레이션 스키마의 열
2) 도메인(Domain) : 속성이 가질 수 있는 값의 집합
3) 차수(Degree) : 속성의 개수
- 릴레이션 인스턴스 : 릴레이션 스키마에 실제로 저장된 데이터의 집합
1) 투플(Tuple) : 릴레이션의 행
2) 카디날리티(Cardinality) : 투플의 수
* 릴레이션의 특징
- 속성은 단일 값을 가짐
- 속성은 서로 다른 이름을 가짐
- 한 속성의 값은 모두 같은 도메인 값을 가짐
- 속성의 순서는 상관 없음
- 릴레이션 내의 중복된 투플은 허용하지 않음
- 투플의 순서는 상관 없음
* 관계 데이터 모델
- 데이터를 2차원 테이블 형태인 릴레이션으로 표현하며 릴레이션에 대한 제약조건(Constraints)과 관계 연산을 위한 관계대수(Relational Algebra)를 정의함
- 관계 데이터베이스 시스템 : 컴퓨터 시스템에 구현한 것으로, 관계 데이터 모델에 기초하여 SQL을 기반으로 구현됨
* 데이터베이스 키(Key)
1) 키(Key) : 릴레이션에서 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합, 투플들을 구분할 수 있어야 함(중복X)
2) 슈퍼키(Super Key) : 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합
3) 후보키(Candidate Key) : 투플을 유일하게 식별할 수 있는 속성의 최소 집합
4) 복합키(Composite Key) : 두 개 이상의 속성으로 이루어진 키
5) 기본키(PK, Primary Key) : 여러 후보키 중 하나를 선정하여 대표로 삼는 키
6) 대리키(Surrogate Key) : 기본키가 보안을 요하거나, 여러 개의 속성으로 구성되어 복잡하거나, 마땅한 기본키가 없을 때는 일련번호 같은 가상의 속성을 만들어 기본키를 삼는 키
7) 대체키(Altermate Key) : 기본키로 선정되지 않은 후보키
8) 외래키(FK, Foreign Key) : 다른 릴레이션의 기본키를 참조하는 속성
* 외래키의 특징
- 관계 데이터 모델의 릴레이션 간의 관계를 표현함
- 다른 릴레이션의 기본키를 참조하는 속성
- 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션의 도메인은 서로 같아야 함
- 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경됨
- NULL값과 중복 값 등이 허용됨
- 자기 자신의 기본키를 참조하는 외래키도 가능함
- 외래키가 기본키의 일부가 될 수 있음
* 무결성 제약조건
- 데이터 무결성(Integrity) : 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것
- 도메인 무결성 제약조건(Domain Integrity Constraint) : 릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만 가져야 한다는 조건
- 개체 무결성 제약조건(Entity Integrity Constraint) : 릴레이션은 기본키를 지정하고 그에 따른 무결성 원칙으로 기본키는 NULL값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건
- 참조 무결성 제약조건(Referential Integrity Constraint) : 릴레이션 간의 참조 관계를 선언하는 제약조건
구분 | 도메인 | 키 | |
도메인 무결성 제약조건 | 개체 무결성 제약조건 | 참조 무결성 제약조건 | |
제약 대상 | 속성 | 투플 | 속성과 투플 |
같은 용어 | 도메인 제약 (Domain Constraint) |
기본키 제약 (Primary Key Constraint) |
외래키 제약 (Foreign Key Constraint) |
해당되는 키 | - | 기본키 | 외래키 |
NULL 값 허용 여부 | 허용 | 불가 | 허용 |
릴레이션 내 제약조건의 개수 | 속성의 개수와 동일 | 1개 | 0~여러개 |
기타 | - 투플 삽입/수정 시 제약사항 우선 확인 | - 투플 삽입/수정 시 제약사항 우선 확인 | - 투플 삽입/수정 시 제약사항 우선 확인 - 부모 릴레이션의 투플 수정/삭제 시 제약사항 우선 확인 |
* 참조 무결성 제약조건의 옵션(부모 릴레이션에서 투플을 삭제할 경우)
명령어 | 의미 |
RESTRICTED | 자식 릴레이션에서 참조하고 있을 경우 부모 릴레이션의 삭제 작업을 거부함 |
CASCADE | 자식 릴레이션의 관련 투플을 같이 삭제함 |
DEFAULT | 자식 릴레이션의 관련 투플을 미리 설정해둔 값으로 변경함 |
NULL | 자식 릴레이션의 관련 투플을 NULL값으로 설정함(NULL값을 허가한 경우) |
'개인공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터베이스 프로그래밍 (0) | 2023.12.04 |
---|---|
[데이터베이스] SQL 고급 (0) | 2023.12.04 |
[데이터베이스] SQL 기초 (0) | 2023.12.04 |
[데이터베이스] 관계대수(Relational Algebra) (0) | 2023.12.04 |
[데이터베이스] 데이터베이스 시스템(Database System) (0) | 2023.12.04 |