2장. 관계 데이터 모델과 제약조건
* 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나
* 관계 데이터 모델이 큰 성공을 거둔 요인
- 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용
- 중첩된 복잡한 구조가 없음
- 집합 위주로 데이터를 처리
- 숙련되지 않은 사용자도 쉽게 이해할 수 있음
- 표준 데이터베이스 응용에 대해 좋은 성능을 보임
2.1 관계 데이터 모델의 개념
* 관계 데이터 모델
- 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성
- 선언적인 질의어를 통한 데이터 접근을 제공
- 응용 프로그램들은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성됨.
- 사용자는 원하는 데이터(what)만 명시하고, 어떻게 이 데이터를 찾을 것인가(how)는 명시할 필요가 없음.
* 기본적인 용어
- 릴레이션(relation) : 2차원의 테이블(스프레드 시트와 유사)
- 레코드(record) : 릴레이션의 각 행
- 튜플(tuple) : 레코드를 좀 더 공식적으로 부르는 용어
- 애프리뷰트(attribute) : 릴레이션에서 이름을 가진 하나의 열
* 도메인(domain)
- 한 애트리뷰트에 나타날 수 있는 값들의 집합
- 각 애트리뷰트의 도메인의 값들은 원자값
- 프로그래밍 언어의 데이터 타입과 유사함
- 동일한 도메인이 여러 애트리뷰트에서 사용될 수 있음
- 복잡 애트리뷰트나 다치 애트리뷰트는 허용되지 않음
- 도메인 정의
* 차수(degree)와 카디날리티(cardinality)
- 차수 : 한 릴레이션에 들어 있는 애트리뷰트들의 수
유효한 릴레이션의 최소 차수는 1
릴레이션의 차수는 자주 바뀌지 않음.
- 카디날리티 : 릴레이션의 튜플 수
유효한 릴레이션은 카디날리티 0을 가질 수 있음.
릴레이션의 카디날리티는 시간이 지남에 따라 계속해서 변함.
'데이터베이스' 카테고리의 다른 글
[데이터베이스] 주키퍼 (zookeeper)란? (1) | 2022.04.20 |
---|---|
[데이터베이스] 아파치 카프카 (Apache Kafka)란? (0) | 2022.04.20 |
[데이터베이스] DBeaver 설치 및 실행 (Windows 10) (0) | 2022.04.18 |
[데이터베이스] 1. 데이터베이스 시스템 (0) | 2021.04.12 |
댓글