본문 바로가기
개인 공부/DB (데이터베이스 개론)

데이터베이스 개론 : 관계 데이터 모델 (5장)

by 희조당 2022. 9. 7.
728x90

📌 관계 데이터 모델의 개념

✔️ 관계 데이터 모델의 기본 용어

관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장한다.

릴레이션에 관한 용어를 알아보자.

1️⃣ Attribute

  • 릴레이션의 열을 속성(Attribute)이라고 한다.
  • 각 속성을 서로 다른 이름으로 구분하고 필드에 대응하는 개념이다.

2️⃣ Tuple

  • 릴레이션의 행을 튜플이라고 한다.
  • 개체에 대한 속성들을 모아둔 것이고 레코드에 대응하는 개념이다.

3️⃣ Domain

  • 속성이 가질 수 있는 모든 값의 집합을 말한다. 이 값들은 더 분해될 수 없는 원자 값이다.
  • 보통 데이터 타입을 도메인, 변수를 속성으로 이해하면 된다.

4️⃣ Null 값

  • 속성 값을 모르거나 적합한 값을 모를 때 사용하는 특별한 값이다.
  • 일반적인 프로그래밍과 동일하게 0이나 공백이랑 다르다.

5️⃣ Degree

  • 속성의 전체 개수를 차수라고 한다.
  • 모든 릴레이션은 최소 1 이상의 차수를 유지해야 하고 잘 변하지 않아 정적이다.

6️⃣ Cardinality

  • 튜플의 전체 개수를 카디널리티라고 한다.
  • 차수와 반대로 자주 변해 동적이다.

✔️ 릴레이션과 데이터베이스의 구성

관계 데이터 모델에서 릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성된다.

Schema & Instance

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 값은 판단할 수 없기 때문이다.

✔️ 참조 무결성 제약조건

개체 무결성 제약조건이 기본키에 대한 규칙이라면 참조 무결성 제약조건은 외래키에 대한 규칙이다.

참조 무결성 제약조건이란? 외래키는 참조할 수 없는 가질 수 없다는 규칙이다.

참조할 수 없는 값을 가지면 두 릴레이션을 연관할 수 없기 때문에 의미가 사라지기 때문이다.

 

댓글