포스트

02. Relation Data Model-Summary

02. Relation Data Model-Summary

Relation Data Model

summary

릴레이션(Relation)

  • 관계 데이터 모델의 핵심적인 개념으로 행과 열로 구성된 테이블

릴레이션 스키마(Relation Schema)

  • 관계 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의

속성(attribute) : 릴레이션 스키마의 열
도메인(domain) : 속성이 가질 수 있는 값의 집합
차수(degree) : 속성의 개수

릴레이션 인스턴스(Relation Instance)

  • 릴레이션 스키마에 실제로 저장되는 데이터의 집합

튜플(tuple) : 릴레이션의 행
카디날리티(cardinality) : 튜플의 수

릴레이션 구조와 관련된 용어

릴레이션 용어같은 의미로 통용되는 용어파일 시스템 용어
릴레이션(relation)테이블(table)파일(file)
스키마(schema)내포(intension)헤더(header)
인스턴스(instance)외연(extension)데이터(data)
튜플(tuple)행(row)레코드(record)
속성(attribute)열(column)필드(field)

릴레이션의 특징

1. 속성은 단일 값을 가짐

  • 각 속성의 값은 도메인에 정의된 값만 가지며 그 값은 모두 단일 값이어야 함

2. 속성은 서로 다른 이름을 가짐

  • 속성은 한 릴레이션에서 서로 다른 이름을 가져야 함

3. 한 속성의 값은 모두 같은 도메인 값을 가짐

  • 한 속성에 속한 열은 모두 그 속성에서 정의한 도메인 값만 가질 수 있음

4. 속성의 순서는 상관없음

  • 속성의 순서가 달라도 릴레이션 스키마는 같음

5. 릴레이션 내의 중복된 튜플은 허용하지 않음

  • 하나의 릴레이션 인스턴스 내에서는 서로 중복된 값을 가질 수 없음
  • 즉, 모든 튜플은 서로 값이 달라야 함

6. 튜플의 순서는 상관없음

  • 튜플의 순서가 달라도 같은 릴레이션
  • 관계 데이터 모델의 튜플은 실제 값을 가지고 있으며 이 값은 시간이 지남에 따라 데이터의 삭제, 수정, 삽입에 따라 순서가 바뀔 수 있음

키(Key)

1. 슈퍼키(super key)

  • 튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합

2. 후보키(candidate key)

  • 튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합으로, 속성의 최소 집합

3. 기본키(primary key, PK)

  • 여러 후보키 중 하나를 선정하여 대표로 삼은 키

기본키 제약조건

  1. 릴레이션 내 튜플을 식별할 수 있는 고유한 값을 가져야 함
  2. NULL 값은 허용하지 않음
  3. 키 값의 변동이 일어나지 않아야 함
  4. 최대한 적은 수의 속성을 가진 것이어야 함
  5. 향후 키를 사용하는 데 있어서 문제 발생 소지가 없어야 함

4. 대리키(surrogate key) & 인조키(artificial key)

  • 일련번호 같은 가상의 속성을 만들어 기본키로 삼은 것

5. 대체키(alternate key)

  • 기본키로 선정되지 않은 후보키

6. 외래키(foreign key, FK)

  • 다른 릴레이션의 기본키를 참조하는 속성

외래키의 특징

  1. 관계 데이터 모델에서 릴레이션 간의 관계를 표현
  2. 다른 릴레이션의 기본키를 참조하는 속성
  3. 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션의 도메인은 서로 같아야 함
  4. 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경
  5. NULL 값과 중복값 등이 허용
  6. 자기 자신의 기본키를 참조하는 외래키도 가능
  7. 외래키는 기본키의 일부가 될 수 있음

무결성(integrity)

  • 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것

일관성과 정확성을 잃어버린 데이터베이스는 정보 가치가 훼손되며 지속적인 무결성을 유지하기 위해 튜플의 삽입, 삭제, 수정 시 데이터의 제약조건 준수 여부를 확인해야 함

무결성 제약조건

1. 도메인 무결성 제약조건(domain integrity constraint)

  • 도메인 제약(domain constraint)
  • 모든 튜플은 릴레이션 스키마에 정의된 각 속성의 도메인에 지정된 값만 가져야 함

2. 개체 무결성 제약조건(entity integrity constraint)

  • 기본키 제약(primary key constraint)
  • 릴레이션은 기본키를 지정하고 그에 따른 무결성 원칙(기본키는 NULL 값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 함)을 지켜야 한다는 조건

3. 참조 무결성 제약조건(referential integrity constraint)

  • 외래키 제약(foreign key constraint)
  • 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 속성의 도메인이 동일해야 하며, 자식 릴레이션의 값 변경 시 부모 릴레이션의 값에 제약을 받음

부모 릴레이션 : 참조되는(제공하는) 릴레이션
자식 릴레이션 : 참조하는(제공받는) 릴레이션

옵션(부모 릴레이션에서 튜플을 삭제할 경우)

  • RESTRICTED : 자식 릴레이션에서 참조하고 있으면 부모 릴레이션의 삭제 작업을 거부
  • CASCADE : 자식 릴레이션의 관련 튜플을 같이 삭제
  • DEFAULT : 자식 릴레이션의 관련 튜플을 미리 설정해둔 값으로 변경
  • NULL : 자식 릴레이션의 관련 튜플을 NULL 값으로 설정(NULL 값을 허가한 경우)
구분도메인
 도메일 무결성 제약조건개체 무결성 제약조건참조 무결성 제약조건
제약 대상속성튜플속성과 튜플
같은 용어도메인 제약
(domain constraint)
기본키 제약
(primary key constraint)
외래키 제약
(foreign key constraint)
해당되는 키-기본키외래키
NULL 값허용불가허용
릴레이션 내 제약조건의 개수속성의 개수와 동일1개0~여러개
ETC<li>튜플 삽입/수정 시 제약사항 우선 확인</li><li>튜플 삽입/수정 시 제약사항 우선 확인</li><li>튜플 삽입/수정 시 제약사항 우선 확인</li><li>부모 릴레이션의 튜플 수정/삭제 시 제약사항 우선 확인</li>

+ 유일성(고유성) 제약조건(unique constraint)

  • 속성의 모든 값은 서로 같은 값이 없어야 함
  • 릴레이션 내의 각 튜플을 유일하게 식별할 수 있는 속성들의 집합
  • 기본키 제약과 달리 NULL 값을 허용

관계대수(Relational algebra)

  • 릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을 기술하는 언어
  • 절차적 언어로, 하나 이상의 릴레이션에 연산을 수행하여 결과 릴레이션이 나오기까지의 절차를 확인하는 방법을 제공

관계대수 연산자

순수 관계연산(relational operations)

  • 관계 데이터 모델을 위해 고안
  • selection, projection, join, division, rename

일반 집합연산(set operations)

  • 수학의 집합이론에서 차용
  • 합집합(union), 교집합(intersection), 차집합(difference), 카티션 프로덕트(cartesian product)

단항 연산자(unary operator) : 연산자 중 피연산자의 개수가 한 개인 연산자
이항 연산자(binary operator) : 연산자 중 피연산자의 개수가 두 개인 연산자
관계대수 연산자 타입 : 기본 연산자 다섯 개와 기본 연산자로부터 유도할 수 있는 유도 연산자로 구분

연산자 타입대상연산자 이름기호설명
기본단항selectionσ릴레이션에서 조건에 만족하는 튜플을 추출
기본단항projectionπ릴레이션의 속성을 추출
추가단항renameρ릴레이션이나 속성의 이름을 변경
유도이항division÷부모 릴레이션에 포함된 튜플의 값을 모두 가진 튜플을 분자 릴레이션에서 추출
기본이항union두 릴레이션을 합하여 하나로 반환
기본이항differenceR1엔 속하고 R2에는 속하지 않는 튜플을 반환
유도이항intersection합병가능한 두 릴레이션의 공통 튜플을 반환
기본이항cartesian productX두 릴레이션을 수평적 연산으로 하나로 합쳐 반환
유도이항조인  
  동등두 릴레이션의 공통 속성을 기준으로 속성값이 같은 튜플을 수평적으로 결합(= 연산자 사용)
  세타⋈θ동등조인에서 비교연산자 사용
  자연⋈N동등조인에서 중복 속성을 제거
  세미(left)자연조인 후 오른쪽 속성을 제거
  세미(right)자연조인 후 왼쪽 속성을 제거
  외부(left)자연조인 후 각각 방향의 모든 값을 결과로 추출
조인이 실패(또는 값이 없을 때) 값을 NULL로 채움
  외부(right)​⟖
  외부(full)

관계대수 기본 논리 기호

연산의미예시
AND (그리고)σ_age > 25 ∧ gender = ‘Male’(Customer)
OR (또는)σ_id > 2 ∨ age = 31(Customer)
¬NOT (부정)σ_¬(gender = ‘Female’)(Customer)

관계대수식(relational algebra expression)

  • 대상이 되는 릴레이션과 연산자로 구성
  • 적용 순서는 수학의 연산과 동일

단항 연산자 : 연산자<조건> (R)

  • σ <A=3 or A=7> (R)

이항 연산자 : (R1) 연산자<조건> (R2)

  • (R1) ⋈ <R1.A=R2.A> (R2)
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.