Lecture 03, 데이터모델의 구성요소(1)

2023. 6. 25. 13:182023/데이터베이스개론

서울여자대학교 이종태 교수님의 데이터베이스 개론 수업을 듣고 정리한 내용입니다.


  • 데이터 모델
    • 현실 세계의 데이터를 명세하는 고유한 표현 방식이자 데이터 모델링을 위한 도구
    • 데이터 구조와 연산, 제약 조건 3가지 요소로 구성
  • 데이터 모델의 3요소
    • 데이터 구조
      • 데이터를 어떤 형태로 저장하는지 표현하는 추상적 표현
      • 실제 저장 구조가 아닌 개념 상의 저장구조를 직관적으로 표현
    • 연산
      • 개녀적인 데이터 구조 안의 데이터를 어떤 방식으로 처리하는지를 표현
    • 제약조건
      • 데이터 구조 안에 데이터를 저장할 때 구조적 제약 사항과 연산을 적용할 때의 행위적 제약사항을 표현
  • 관계형 데이터 모델
    • 테이블의 형태의 ‘릴레이션’을 통해 데이터를 저장하고 데이터 간의 관련성도 표현
    • 데이터베이스를 논리적 수준에서 이해하고 사용할 수 있도록 함
  • 관계형 데이터 모델의 3요소
    • 데이터를 저장하는 기본 데이터 구조는 릴레이션
    • 리레이션의 데이터를 처리하는 연산은 관계대수 사용
    • 제약 사항을 무결성 제약 조건으로 명세

관계형 데이터베이스

  • 1970년대 IBM 연구소의 코드가 제안한 관계형 데이터 모델에 기반
  • 관계형 데이터 모델
    • 릴레이션으로 불리는 2차원 테이블 형태의 단순 구조에 데이터를 저장하는 방식
    • 테이블 구조는 릴레이션 개념을 직관적으로 쉽게 이해하도록 함
  • 릴레이션
    • 관계형 데이터 모델의 핵심 요소로 특별한 의미를 갖는 테이블
    • 단순 테이블 형태로 구성되며, 테이블 이상의 많은 의미와 제약 사항을 내포, 관련된 여러 릴레이션들로 데이터베이스를 구성
    • column 개수 = 차수
    • 각 column을 어트리뷰트
    • 한 행을 튜플 혹은 레코드
    • 행의 갯수를 카디널리티=n
    • 각 어트리뷰트 메타데이터를 도메인

속성과 튜플, 도메인, 카디널리티, 차수

  • 속성
    • 테이블의 열
    • 데이터를 표현하는 가장 작은 논리적 단위
    • 의미적으로 더이상 분해할 수 없는 원자값만 사용
    • 릴레이션이 표현하는 대상의 주요 특성들을 서로 다른 이름으로 구별하여 표현
  • 튜플
    • 테이블의 각 행
    • 현실 세계의 엔티티를 표현
    • 각 어트리뷰트 값들의 조합으로 구성
  • 도메인
    • 각 속성이 취할 수 있는 모든 값들의 집합을 정의 한 것
    • 데이터 값들의 유형과 크기, 범위를 정의
    • 각 속성끼리 해당 도메인이 일치할 경우만 그 값을 서로 비교하는 것이 의미있음
    • 관계형 데이터 모델은 속성 이름과는 별개로 각 도메인을 고유한 이름으로 정의
    • 어트리뷰트 이름은 보통 각 도메인이 릴레이션에서 담당하는 역할의 이름을 지정
  • 각 릴레이션은 카디널리티와 차수를 통해 그 구성이 정의됨
  • 카디널리티
    • 릴레이션 안의 전체 튜플의 갯수
    • 입력, 수정, 삭제 등을 통해 계속해서 변화함(동적 특성)
  • 차수
    • 릴레이션을 구성하는 전체 속성의 개수
    • 각 튜플이 가지는 속성값의 개수는 릴레이션의 차수와 같음(정적특성)

릴레이션의 구성요소

  • 릴레이션 스키마
    • 특정 릴레이션의 논리적 구조를 뜻함
    • 릴레이션의 이름과 릴레이션 안에 포함된 모든 속성의 이름들로 정의
    • 테이블의 첫번째 행인 헤더 부분에 표현
    • 릴레이션 내포(intension) 또는 릴레이션 내연이라고도 부름
    • 시간이 경과해도 좀처럼 변겨오디지 않는 정적인 특성
  • 학생 릴레이션에 대한 릴레이션 스키마
    • 릴레이션 이름 뒤의 괄호 안에 릴레이션이 포함하는 속성들의 이름을 열거
    • 키 속성은 밑줄 표시
    • 릴레이션 이름(어트리뷰터 이름1, 어트리뷰트 이름2, …, 어트리뷰트 이름 n)
  • 릴레이션 인스턴스
    • 어느 한 특정 시점에 릴레이션에 존재하는 튜플의 집합
    • 보통 테이블의 첫번째 행인 헤더 부분을 제외한 나머지 모든 행들의 집합으로 표현
    • 릴레이션 extension, 릴레이션 확장이라고도 부름
    • 특정 시점에서의 전체 튜플들의 내용 즉 릴레이션의 상태를 의미함
    • 시간에 따라 변하는 동적인 특성
  • 데이터 베이스 스키마
    • 릴레이션 스키마들의 모임으로 정적임
  • 데이터베이스 인스턴스
    • 특정 시점에서의 모든 릴레이션 인스턴스의 모임으로 동적임
  • 튜플의 유일성
    • 릴레이션 안에는 똑같은 튜플이 존재할 수 없음
    • 하나의 릴레이션은 튜플들의 집합 → 모든 튜플들은 서로 달라야 함
    • 모든 튜플은 다른 튜플과 구별되는 유일한 속성값이 있어야 함
    • 집합은 식별할 수 없는 똑같은 원소를 중복해서 포함할 수 없음
  • 튜플의 무순서성
    • 릴레이션의 튜플 사이에 순서는 의미가 없음
    • 집합은 포함한 원소들 사이에 순서가 없음
    • 튜플의 집합인 릴레이션 역시 튜플 사이에 순서를 갖지 않음
    • 순서를 포함하는 경우가 존재할 수 있고, 이는 DBA를 포함한 관리역할 담당자가 강조할 수 있음
  • 속성의 무순서성
    • 릴레이션의 속성 역시 순서는 의미가 없음
    • 릴레이션이 속성의 집합이기 때문에 같은 이유로 순서를 갖지 않음
    • 속성값은 속성의 순서가 아닌 속성 이름에 의해 참조됨
    • 순서를 포함하는 경우가 존재할 수 있고, 이는 DBA를 포함한 관리역할 담당자가 강조할 수 있음
  • 속성의 원자성
    • 릴레이션을 구성하는 모든 속성값은 의미적으로 더이상 분해할 수 없는 하나의 원자 값만을 갖음
    • 각 속성 값으로 의미적으로 더 쪼개서 사용할 수 있는 값이나 여러개의 값이 허용되지 않음
    • 릴레이션은 다중 속성값이나 복합 속성을 허용하지 않음