📌 관계 데이터 모델의 개념
✔️ 관계 데이터 모델의 기본 용어
관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장한다.
릴레이션에 관한 용어를 알아보자.
1️⃣ Attribute
- 릴레이션의 열을 속성(Attribute)이라고 한다.
- 각 속성을 서로 다른 이름으로 구분하고 필드에 대응하는 개념이다.
2️⃣ Tuple
- 릴레이션의 행을 튜플이라고 한다.
- 개체에 대한 속성들을 모아둔 것이고 레코드에 대응하는 개념이다.
3️⃣ Domain
- 속성이 가질 수 있는 모든 값의 집합을 말한다. 이 값들은 더 분해될 수 없는 원자 값이다.
- 보통 데이터 타입을 도메인, 변수를 속성으로 이해하면 된다.
4️⃣ Null 값
- 속성 값을 모르거나 적합한 값을 모를 때 사용하는 특별한 값이다.
- 일반적인 프로그래밍과 동일하게 0이나 공백이랑 다르다.
5️⃣ Degree
- 속성의 전체 개수를 차수라고 한다.
- 모든 릴레이션은 최소 1 이상의 차수를 유지해야 하고 잘 변하지 않아 정적이다.
6️⃣ Cardinality
- 튜플의 전체 개수를 카디널리티라고 한다.
- 차수와 반대로 자주 변해 동적이다.
✔️ 릴레이션과 데이터베이스의 구성
관계 데이터 모델에서 릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성된다.
1️⃣ 릴레이션 스키마
릴레이션이름(속성이름1, 속성이름2, ... , 속성이름n)
- 이름과 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조이다.
2️⃣ 릴레이션 인스턴스
- 특정 시점에 존재하는 튜플들의 집합이다.
- 각 속성에 대응하는 실제 값으로 구성이 되어있다.
3️⃣ 데이터베이스 스키마와 데이터베이스 인스턴스
- 데이터베이스는 여러 개의 릴레이션으로 구성이 된다. 따라서 데이터베이스 설계란 필요한 모든 스키마와 인스턴스를 정의한다는 의미이다.
- 데이터베이스 스키마는 릴레이션 스키마의 집합을 의미하고 데이터베이스 인스턴스는 특정 시점의 릴레이션 인스턴스의 집합을 의미한다.
✔️ 릴레이션의 특징
관계 데이터 모델의 릴레이션은 4가지 중요한 특성을 모두 만족해야한다.
1️⃣ 튜플의 유일성
- 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
- 유일함을 확인하는 속성이 key이다.
2️⃣ 튜플의 무순서
- 하나의 릴레이션에서 튜플의 순서는 무의미하다.
- 데이터베이스는 위치가 아닌 내용으로 검색되므로 순서는 중요치 않다.
3️⃣ 속성의 무순서
- 하나의 릴레이션에서 속성의 순서는 무의미하다.
- 속성 값은 위치가 아니라 속성의 이름으로 접근한다. 따라서 이름은 속성의 의미가 명확해야 한다.
4️⃣ 속성의 원자성
- 속성 값으로는 원자 값(더 분해될 수 없는 값)만 사용할 수 있다.
- 즉, 하나의 속성은 여러 개의 값을 가질 수 없다.
✔️ 키의 종류
앞서 말한 튜플들을 유일하게 구별해주는 역할은 속성들의 집합인 키가 담당한다.
여러 속성을 통해서 구분하는 것보다 한 가지 속성만을 이용하는 게 효율적이기 때문이다.
Key는 관계 데이터 모델에서 중요한 제약조건을 정의한다.
1️⃣ 슈퍼키 (Super key)
- 유일성을 만족하는 속성이다.
2️⃣ 후보키 (Candidate key)
- 유일성과 최소성을 만족하는 속성이다.
- 튜플들이 추가되더라도 유일성과 최소성이 유지되어야 한다.
3️⃣ 기본키 (Primary key)
- 여러 후보키 중에서 기본적으로 사용할 키가 기본키이다. 기본키를 선택할 때 고려사항은 다음과 같다.
- Null 값을 가지는 속성은 부적합하다.
- 값이 자주 변경될 수 있는 속성은 부적합하다.
- 기본키는 단순한 후보키가 좋다.
4️⃣ 대체키 (Alternate key)
- 기본키로 선택되지 못한 후보키들이다.
5️⃣ 외래키 (Foreign key)
- 다른 릴레이션의 기본키를 참조하는 키이다.
- 릴레이션 상에서는 키의 이름이 달라도 되지만 도메인은 반드시 같아야 한다.
- 하나의 릴레이션에 여러 외래키가 존재할 수 있다. 또한, 외래키를 기본키로 사용할 수 있고 외래키를 포함하여 기본키를 구성할 수 있다.
- 참조하는 속성이기 때문에 Null 값을 가질 수 있고 중복된 값을 가질 수 있다.
📌 관계 데이터 모델의 제약
관계 데이터 모델의 기본적으로 무결성 제약 조건을 만족해야 한다.
데이터가 결함 없는 상태, 즉 정확하고 유효하게 유지된 상태를 보장해야 한다는 것이다.
이 무결성 제약 조건은 2가지로 구분될 수 있다.
✔️ 개체 무결성 제약조건
개체 무결성 제약조건이란? 기본키의 모든 속성은 NULL 값을 가지면 안 된다는 규칙이다.
기본키를 통해서 튜플의 유일함을 확인하는데 NULL 값은 판단할 수 없기 때문이다.
✔️ 참조 무결성 제약조건
개체 무결성 제약조건이 기본키에 대한 규칙이라면 참조 무결성 제약조건은 외래키에 대한 규칙이다.
참조 무결성 제약조건이란? 외래키는 참조할 수 없는 가질 수 없다는 규칙이다.
참조할 수 없는 값을 가지면 두 릴레이션을 연관할 수 없기 때문에 의미가 사라지기 때문이다.
'개인 공부 > DB (데이터베이스 개론)' 카테고리의 다른 글
데이터베이스 개론 : 관계 데이터 연산 (6장) (0) | 2022.09.07 |
---|---|
데이터베이스 개론 : 데이터베이스 기본 개념 (1장) (0) | 2022.07.19 |
댓글