[DATABASE] 데이터베이스 개론_CH5

bin1225·2024년 10월 20일
0

DATABASE

목록 보기
10/19
post-thumbnail

데이터베이스 개론2판(김연희)를 읽고 복습목적으로 내용을 정리한 글입니다.

1. 관계 데이터 모델의 개념

논리형 데이터 모델 중 가장 많이 사용되는 모델이 관계 데이터 모델이다.
관계 데이터 모델에 따라 제작된 데이터베이스를 관계 데이터베이스(relational database)라고 한다.

1.1 기본 용어

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

즉, 릴레이션을 하나의 개체로 파악한다.

1.1.1 속성(attribute)

  • 릴레이션의 열
  • 개체가 가지는 속성값들

1.1.2 투플(tuple)

  • 릴레이션의 행, 한 개체의 인스턴스

1.1.3 도메인(domain)

  • 속성 하나가 가질 수 있는 모든 값의 집합
    • 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의한다.
  • 도메인을 정의해두면 데이터를 입력, 수정, 비교할 때 도메인을 참고하여 적합성을 판단할 수 있다.

1.1.4 널 값(NULL)

  • 투플의 속성값을 모르거나 적절한 값이 없는 경우 사용
  • 0이나 공백과는 다르다.

1.1.5 차수(degree)

  • 속성 전체의 개수
  • 일반적으로 자주 변하지 않는다.

1.1.6 카디널리티(cardinality)

  • 투플의 전체 개수
  • 계속 변경된다.

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

릴레이션은 릴레이션 스키마(relation schema)릴레이션 인스턴스(relation instance)로 구성된다.

1.2.1 릴레이션 스키마(relation schema)

  • 릴레이션 이름 + 릴레이션에 포함된 속성의 모든 이름 으로 정의하는 논리적 구조
      릴레이션이름(속성이름1, 속성이름2, ..., 속성이름n)
  • 릴레이션의 전체 구조를 쉽게 파악할 수 있다.

1.2.2 릴레이션 인스턴스(relation instance)

  • 어느 한 순간에 릴레이션에 존재하는 투플들의 집합
  • 릴레이션 스키마에서 정의한 속성에 대응하는 실제 값들로 구성된다.

1.2.3 데이터베이스 스키마와 데이터베이스 인스턴스

  • 데이터베이스 스키마는 데이터베이스의 전체 구조를 의미한다.
    • 데이터베이스를 구성하는 릴레이션의 스키마를 모아둔 것.
  • 데이터베이스 인스턴스는 어느 한 순간에 데이터베이스에 저장된 데이터 내용의 전체 집합

1.3 릴레이션의 특성

릴레이션은 만족해야하는 4가지 특성이 있다.

1.3.1 투플의 유일성

  • 하나의 투플에는 동일한 투플이 존재할 수 없다.

    • 모든 투플에는 다른투플과 구별되는 유일한 특성이 있어야 한다.
  • 관계 투플에서는 하나 또는 여러개의 속성을 미리 선정해두고, 이 값을 투플마다 다르게 하여 유일성을 보장한다. 이러한 값을 키(key)라고 부른다.

1.3.3 투플의 무순서

  • 하나의 릴레이션에서 투플 사이의 순서는 무의미하다.

1.3.3 속성의 무순서

  • 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.

속성의 원자성

  • 모든 속성 값은 더는 분해할 수 없는 하나의 값, 즉 원자 값만 가질 수 있다.

    • 다중속성이 존재하지 않는다.
  • 관계 데이터 모델은 다중속성이라는 복잡한 개념을 배제하고 릴레이션을 단순한 구조로 정의한다.


1.4 키의 종류

투플의 유일성을 보장하는 속성, 또는 속성들의 집합을 키(key)라고 한다.

관계 데이터 모델에서는 키를 5가지로 구분한다.

1.4.1 슈퍼키(super key)

슈퍼키는 유일성의 특성을 만족하는 속성 또는 속성들의 집합이다.

1.4.2 후보키(candidate key)

유일성과 더불어 최소성을 만족하는 속성 또는 속성들의 집합이다.

  • 최소성이란 유일성을 만족시킬 수 있는 최소한의 속성들로만 구성되있음을 의미한다.

    • 하나의 속성으로 구성된 키는 당연히 최소성을 만족한다.
  • 유일성과 최소성은 투플이 삽입되거나 투플의 속성이 변경되어도 유지되어야 한다.

  • 후보키 선정시 릴레이션 인스턴스만 보고 판단하면 안된다. 현실 세계를 파악하고 속성의 본질을 생각하여 선정한다.

1.4.3 기본키(primary key)

여러 후보키 중 기본적으로 사용하는 키이다.
후보키가 여러가지인 경우 데이터베이스 사용환경을 고려하여 적합한 키를 선택한다.

널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
  • 기본키는 투플간 구분 뿐만 아니라, 릴레이션에서 원하는 투플을 찾기 위한 기본접근 방법을 제공한다.
  • 널값을 가지는 속성이 포함된 경우 다른 투플들과 구별하여 접근하기 어렵다.
값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
  • 기본키로 사용되는 속성은 유일성을 만족한다.
  • 값이 변경될 때마다 해당 값이 적절한 값인지 판단하는 과정이 필요하다.
단순한 후보키를 기본키로 선택한다.
  • 구성하는 속성의 개수가 적고, 도메인이 단순한 키값이 컴퓨터가 처리하기 쉽다.

1.4.4 대체키(alternate key)

  • 기본키로 선택되지 못 한 후보키들이다.

1.4.5 외래키(foreign key)

  • 다른 릴레이션의 기본키로 구성된 속성, 속성 집합이다.

  • 다른 릴레이션과의 관계를 표현하기 위한 목적으로 사용된다.

  • 하나의 릴레이션에는 외래키가 여러개 존재할 수 있고, 외래키를 기본키로 사용할 수도 있다.

  • 외래키는 기본키가 아니기 때문에 중복되거나 NULL값을 가질 수 있다.


2. 관계 데이터 모델의 제약

관계 데이터 모델은 데이터의 무결성(integrity constraint)을 보장한다.
무결성이란 데이터에 결함이 없는 상태, 즉 데이터가 정확하고 유효하게 유지된 상태를 의미한다.

이를 위한 무결성 제약조건이 존재하고, 이를 만족해야한다.
무결성 제약조건에는 개체 무결성 제약조건참조 무결성 제약조건이 있다.

2.1 개체 무결성 제약 조건

기본키를 구성하는 모든 속성은 널 값을 가지면 안 된다는 규칙이다.
  • 기본키의 목적은 다른 투플과 구분하고 각 투플에 쉽게 접근하기 위함이다.
  • 기본키가 널 값이 되면 투플의 유일성을 상실하여 기본키의 본래 목적을 상실한다

개체 무결성 제약 조건을 만족하기 위해 데이터베이스 관리 시스템은 투플의 기본키에 대한 생성 및 변경 사항 발생시 조건을 만족하는지 확인하는 작업을 수행한다.

2.2 참조 무결성 제약조건

외래키는 참조할 수 없는 값을 가질 수 없다는 규칙이다.
  • 외래키의 목적은 릴레이션간의 참조 관계를 정의하기 위한 목적이다.

  • 외래키로 다른 릴레이션의 투플을 참조할 수 없다면, 외래키 본래의 의미가 없어진다.

  • 외래키가 NULL값을 가진다고 참조 무결성 제약조건을 위반하는 것은 아니다.

    • 아직 모를 뿐 존재하지 않는다는 것을 의미하지는 않기 때문이다.

Reference : IT CookBook, 데이터베이스 개론(2판): 기초 개념부터 빅데이터까지_김연희

0개의 댓글