[Database] Relational Database

2024. 10. 5. 22:02·Database
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
반응형

'Database' 카테고리의 다른 글

[Database] SQL Trigger  (0) 2024.10.05
[Database] Stored Function & Stored Procedure  (2) 2024.10.05
[Database] SQL 고급  (1) 2024.10.05
[Database] SQL 기초  (0) 2024.10.05
[Database] 데이터베이스 기본 개념  (1) 2024.10.05
'Database' 카테고리의 다른 글
  • [Database] Stored Function & Stored Procedure
  • [Database] SQL 고급
  • [Database] SQL 기초
  • [Database] 데이터베이스 기본 개념
mxruhxn
mxruhxn
소소하게 개발 공부 기록하기
    반응형
    250x250
  • mxruhxn
    maruhxn
    mxruhxn
  • 전체
    오늘
    어제
    • 분류 전체보기 (150)
      • Java (21)
      • Spring (4)
      • Database (13)
      • Operating Syste.. (1)
      • Computer Archit.. (0)
      • Network (24)
      • Data Structure (6)
      • Algorithm (11)
      • Data Infra (7)
      • DevOps (12)
      • ETC (27)
      • Project (21)
      • Book (1)
      • Look Back (1)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    mxruhxn
    [Database] Relational Database
    상단으로

    티스토리툴바