Database

[Database] Relational Database

mxruhxn 2024. 10. 5. 22:02
728x90
반응형

Relational Data Model(관계 데이터 모델)

Relational Data Model 주요 개념

  • relation: 행과 열로 구성된 테이블
  • domain: 값들의 집합
  • attribute: 세로 값으로 열(Column)이라고도 함
  • tuple: 가로 값으로, 행(Rolw)이라고도 함. 일부는 NULL일 수 있다
  • cardinality: tuple의 수
  • degeree: attribute의 수
  • instance: 정의된 스키마에 따라 테이블에 실제 저장된 데이터의 집합
  • schema: relation이 어떻게 구성되는지, 어떤 정보를 담고 있는지에 대한 기보넞ㄱ인 구조를 정의

relation의 특징

    • relation은 중복된 tuple을 가질 수 없다 → 각 행은 중복될 수 없음
  • relation의 tuple을 식별하기 위해서 attributes의 부분 집합을 key로 설정한다. → PK
  • relation에서 tuple의 순서는 중요하지 않다.
    • tuple을 정렬하는 방법은 여러가지가 있을 수 있다는 것.
  • 하나의 relation에서 attribute의 이름은 중복되면 안된다. → Column Name은 독립적
  • 하나의 tuple에서 attribute의 순서는 중요하지 않다.
  • attribute는 atomic 해야 한다.(composite or multivalued attribute 허용 안됨)
    • composite attribute: e.g) address: 서울특별시 강남구 청담동
    • multivalued attribute: e.g) major: 컴공, 디자인

Keys

키(Key)

  • 특정 튜플을 식별할 때 사용하는 속성 혹은 속성의 집합
  • 키가 되는 속성(혹은 속성의 집합)은 값이 반드시 달라서 튜플들을 구별할 수 있어야 함
  • 키는 릴레이션 간의 관계를 맺는 데도 사용됨키의 종류
  • super key
    • relation에서 tuples를 unique하게 식별할 수 있는 attributes set
    • super key는 여러가지가 될 수 있음.
  • candidate key
    • 어느 한 attribute라도 제거하면 unique하게 tuples를 식별할 수 없는 super key
    • key or minimal super key
  • primary key
    • relation에서 tuples를 unique하게 식별하기 위해 선택된 candidate key
    • 보통 candidate key 중 attribute의 수가 적은 쪽을 선택함.
  • unique key
    • primary key가 아닌 candidate keys
    • alternate key
  • foreign key
    • 다른 relation의 PK를 참조하는 attributes set

PK 선정 시 고려사항

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

Constraints

관계형 데이터베이스의 relations들이 데이터의 일관성과 정확성을 언제나 항상 지키는 것을 말함

Implicit constraints

  • 관계형 데이터 모델 자체가 가지는 constraints
  • relation은 중복되는 tuple을 가질 수 없다.
  • relation 내에서 같은 이름의 attribute를 가질 수 없다

Explicit constraints(= Schema-based constraints)

  • 주로 DDL을 통해 schema에 직접 명시할 수 잇는 constraints
  • 종류
    • Domain constraint
      • relation 내의 tuple들이 각 속성의 domain에 지정된 값만을 가져야 한다
      • 데이터 Type, NULL 여부, 기본 값, 체크(Check) 등을 사용하여 지정할 수 있다.
    • Primary key constraint
      • relation은 기본키를 지정하고 그에 따른 무결성 원칙 즉, NULL 값을 가져서는 안되며 relation 내에 오직 하나의 값만 존재해야 한다
    • Foreign key constraint
      • relation 간의 참조 관계를 선언하는 제약 조건
      • 자식 relation의 외래키는 부모 relation의 기본키와 domain이 동이래야 하며, PK에 없는 값을 FK가 값으로 가질 수 없다
      • 자식 relation의 값이 변경될 때, 부모 relation의 제약을 받는다.
728x90
반응형