공부/데이터베이스

[DB] 2. 관계형 모델

knhoo 2024. 9. 28. 18:03
728x90

관계형 데이터베이스

  • 관계형 데이터베이스는 테이블의 집합으로 구성된다.

릴레이션과 튜플

  • 테이블의 각 행은 일련의 값 사이의 관계(relation)을 담고 있다고 볼 수 있다.
  • 관계형 모델에서 릴레이션은 테이블을 의미한다.
  • 튜플(tuple) : 값의 나열 또는 리스트
  • n-tuple : n개의 값을 가진 튜플

튜플의 순서

  • 릴레이션은 튜플의 집합이기 때문에 순서 관계가 정의되지 않는다.
  • 릴레이션에서 튜플이 어떤 순서로 나타나든 상관 없다.
  • 즉, 두 릴레이션의 튜플의 순서가 달라도 같은 릴레이션이다.

릴레이션과 속성

  • 테이블의 열은 속성(attribute)이라고도 한다.
  • 각 속성은 도메인(domain)이라고 하는 허가된 값의 집합을 가진다.

  • 속성 : ID, name,dept_name,salary
  • 슴salary 속성의 도메인은 가능한 모든 salary 값의 집합

도메인의 원자성

  • 모든 릴레이션 r에 대해서, 모든 속성의 도메인은 원자적(atomic)이다.
  • 도메인의 요소(element)는 더 이상 나뉠 수 없는 단위이다.

널 값(null value)

  • null 값은 '알려지지 않은 값' 또는 ' 존재하지 않는 값'을 의미한다.

스키마와 인스턴스

  • 데이터베이스 스키마(database schema)는 데이터베이스의 논리적 설계이다.
    • 어느 한 순간에 데이터베이스에 저장되어 있는 데이터의 스냅샷(snapshot)은 데이터베이스 인스턴스(database instance)라고 한다.
  • 스키마와 인스턴스 개념은 각각의 릴레이션에도 적용 가능하다.
    • 릴레이션 스키마 : instructor(ID,name,dept_name,salary)
    • 릴레이션 인스턴스 :

수퍼 키(super key)

  • 키는 속성의 집합이다.
  • 릴레이션 스키마 R이 속성의 집합이라고 한다면, 키는 릴레이션 스키마 R의 부분 집합이다.
  • K ⊆ R
  • instruction 릴레이션의 스키마 : {ID,name,dept_name,salary}
  • 키 : {ID}
  • 릴레이션 스키마 R의 한 릴레이션 인스턴스 r을 r(R)로 표기할 때,
  • K의 값들로 릴레이션 인스턴스 r(R)의 각각의 튜플을 고유하게 식별하기 충분한 경우, K는 R의 수퍼 키라고 한다.
  • 수퍼 키 : {ID}, {ID,name}

 

후보 키(candidate key)와 주 키(primary key)

  • 최소한의 슈퍼 키 K를 후보 키라고 한다.
  • 예시 : {ID}
  • 후보 키 중 하나가 주 키로 선택된다.
  • 스키마에서는 주 키가 다른 속성보다 앞에 오게 하고, 밑줄을 친다.
    • instructor(ID,name,dept_name,salary)
  • 후보 키가 여러 개일 때, 튜플을 고유하게 식별할 수 있고, 거의 변하지 않는 키가 주 키로 선택된다.

외래 키

  • 외래 키 제약(foreign-key constraint)
    • 한 릴레이션의 값은 다른 릴레이션에 주 키의 값으로 반드시 나타나야 한다.
  • 예시
    • instructor (ID, name, dept_name, salary)
    • department (dept_name, building, budget)
  • 위 두 개의 릴레이션은 공통된 속성 dept_name 를 가진다.
  • 참조하는 릴레이션(referencing relation) : instructor 
  • 참조된 릴레이션 ( referenced relation) : department

스키마 다이어그램

  • 데이터베이스 스키마는 속성 간에 종속성을 가진다.
  • 스키마 다이어그램은 이 관계를 시각적으로 보이는데 효과적이다.
728x90