관계형 데이터베이스 - 관계형 모델의 기본 개념과 용어 정의

full_accel·2020년 12월 20일
0

Database 101

목록 보기
1/2
post-thumbnail

관계형 모델에 대한 이론적인 정의


  • 함수 종속(Functional Dependency)에 의해 정규화(Normalization)된 모델

관계형 모델의 용어 정의


릴레이션

  • 릴레이션(Relation): 관계형 모델에서 기초가 되는 개념
  • 릴레이션은 가로와 세로로 이루어진 테이블(표) 형태의 2차원 데이터
  • 머리(Head) 부분인 애트리뷰트와 몸통(Body) 부분인 튜플로 구분
  • 릴레이션에는 이름이 존재하며 2차원의 테이블 형태로 데이터(Value, 애트리뷰트 값)가 관리된다.
  • 각 열을 튜플(Tuple)이라 하며 각 행을 애트리뷰트(Attribute)라고 한다.
  • 애트리뷰트 중에서 튜플을 유일하게 식별할 수 있는 애트리뷰트가 식별자(Identifier)
  • 이름, 주소와 같은 애트리뷰트의 이름을 내포(Intension 또는 Head)라고 하며 '1234', '홍길동' 같은 실제 데이터를 외포(Extension 또는 Body)라고 한다.
  • 릴레이션의 이름과 내포를 스키마(Schema)라고도 한다.
  • 릴레이션의 튜플의 개수를 카디널러티(Cardinality)라고 한다.
  • 애트리뷰트의 개수를 차수(Degree)라고 한다.
  • 차수가 1개 이상이고 카디널리티가 0개 이상이면 유효한 릴레이션이다.
  • 튜플은 흔히 레코드(Record), 로우(Row), 인스턴스(Instance)라고도 부른다.
  • 애트리뷰트는 컬럼(Column), 필드(Field)라고 부른다.

엔터티(Entity)[7장에서 정의됨]

  • 엔터티에 대한 정의(엔터티가 무엇인지를 정의하는 것은 쉽고도 어렵다. )
    1. 간단하게 설명하면 필요에 의해 관리하고자 하는 데이터의 집합
    2. 업무를 수행하는 데 필요한 데이터를 특성이 유사한 것끼리 모아 놓은 독립적인 집합
    3. 특성이 유사한 것끼리 모았다는 것은 함수 종속을 의미 하므로 업무에서 관리하고자 하는 데이터(속성)를 함수 종속(Functional Dependency)에 의해 도출한 결과 집합이 엔터티라고 정의할 수 있다.
    4. 엔터티는 "사람(Person), 장소(Place), 사물(Object), 사전(Event), 개념(Concept) 등을 표현한 집합이다."라는 정의는 가장 일반적인 엔터티에 대한 정의

관계형 모델의 특징


왜 관계형 데이터베이스라고 하나?

  • 관계형 데이터베이스(Relational Database)의 Relational은 데이터 모델의 관계(Relationship) 때문에 붙여진 이름이 아니라 릴레이션(Relation) 때문에 붙여진 이름

관계형 모델의 특징

  • 관계형 데이터베이스에는 2차원 테이블 형태의 여러 릴레이션들이 존재하고 릴레이션에는 식별자가 존재
  • 식별자 중에는 외래 식별자가(Foreign Key)가 존재해 주 식별자와 조인을 통해 릴레이션 사이의 연관 관계를 관리
  • 조인을 통해서 데이터를 얻을 수 있으므로 데이터 중복이 최소화되는데, 데이터를 중복해서 저장하지 않도록 설계하는 것이 관계형 데이터베이스 설계의 핵심

관계형 데이터베이스의 단점

  • 데티어 구조를 효율적으로 설계하기 어렵다는 것이 관계형 데이터베이스의 단점

관계형 모델이 지켜야할 제약


  • 일반적으로 다음과 같은 제약(Constraints)을 만족하지 않으면 관계형 모델이 아니다.
    • 릴레이션에서 각 튜플은 유일해야 한다.(가장 기본적인 제약)
    • ★ 한 릴레이션에는 하나의 데이터 주제만이 포함된어야 한다.
    • 식별자의 값이 같은 튜플이 존재해서는 안 된다. → 엔터티 무결성(Entity Integrity)
    • 애트리뷰트에는 유일한 값이 사용되어야 한다.(다중 값이나 복합 값이 존재해서는 안 된다.)
      • 위의 그림에서 두 번째 튜플의 취미 애트리뷰트 값은 다중 값이므로 제약 위반
    • 전체 모델에서 릴레이션의 이름은 유일해야 한다.
    • 릴레이션 내에서 애트리뷰트의 이름도 유일해야 한다.
      • 가능하다면 전체 릴레이션에서 애트리뷰트의 이름이 유일한 것이 좋다.
    • 릴레이션 내에서 튜플의 차례는 중요하지 않다.(가장 나중에 입력된 튜플이 제일 처음에 있어도 된다.)
    • 릴레이션에는 튜플이 존재하지 않을 수도 있다.
    • 애트리뷰트의 순서도 중요하지 않다.
    • 모든 릴레이션은 함수 종속 규칙을 따라야 한다.
    • 릴레이션이 정규화(Normalization)되지 않으면 관계형 모델이라 할 수 없다.
    • 정규화된 릴레이션 사이에는 외래 식별자(Foreign Identifier)를 통해서 연관 관계가 성립
profile
스스로 배운 것이 오래 간다.

0개의 댓글