[DB] 데이터베이스 개념

2022. 3. 18. 13:26

 

 

기본용어

  • 속성
    • 릴레이션의 열을 의미.
    • 릴레이션 : 파일, 속성 : 파일의 필드
    • 더는 분해할 수 없는 원자 값만 사용
    • ex) 고객 릴레이션 → 고객아이디, 고객이름, 나이, 등급, 직업, 적립금
  • 튜플
    • 릴레이션의 행을 의미.
    • 고객 개체의 인스턴스
    • ex) 고객 릴레이션에서 튜플은 고객 1명에 대한 실제 속성 값 6개
  • 도메인
    • 속성 하나가 가질 수 있는 모든 값의 집합
    • 특정 속성이 가질 수 있는 모든 원자 값의 모임
    • 속성의 특성을 고려한 데이터 타입으로 정의, 즉 도메인을 데이터 타입이라고 이해하기
    • ex) 고객이름 속성의 도메인 : CHAR(20), 나이 속성의 도메인 : (INT)
  • 널 값 (Null)
    • 특정 튜플 속성 값 모르거나 적합한 값이 없는 경우
    • 숫자 0, 공백 값과는 다른 개념
    • ex) 고객이 아직 직업을 입력하지 않음, 새로 가입한 고객의 등급이 아직 결정되지 않음
  • 차수
    • 하나의 릴레이션에서 속성의 전체 개수, 즉 열의 개수
    • 모든 릴레이션은 최소 1 이상의 차수를 유지해야하므로 정적인 특징
    • ex) 고객 릴레이션에서 차수는 6
  • 카디널리티 (Cardinality)
    • 하나의 릴레이션에서 튜플의 전체 개수, 즉 행의 개수
    • 튜플이 없는 릴레이션이 있을 수도 있음. 항상 변하므로 동적인 특징

 

릴레이션 (Relation)

  • 릴레이션 스키마 (Relation Schema)
    • 릴레이션 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조
    • 릴레이션의 이름, 속성들을 한 눈에 파악하기 쉬움
    • 자주 변하지 않는다는 정적인 특징
  • 릴레이션 인스턴스 (Relation Instance)
    • 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합
    • 튜플의 삽입, 삭제, 수정이 자주 발생한다는 동적인 특징
  • 데이터베이스 스키마 & 데이터베이스 인스턴스
    • 데이터베이스 스키마 : 데이터베이스의 전체 구조. 릴레이션의 스키마를 모아놓은 것.
    • 데이터베이스 인스턴스 : 데이터베이스에 저장된 데이터 내용의 전체 집합.
  • 릴레이션의 특징
    • 튜플의 유일성
      • 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다
      • 키(key) : 튜플을 유일하게 구분하기 위해 선정되는 속성(들)의 모임
    • 튜플의 무순서
      • 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다
      • 순서와 상관없이 튜플 내용이 같으면 동일한 릴레이션
      • DB는 위치가 아닌 내용으로 검색됨. 따라서 순서 중요 X
    • 속성의 무순서
      • 하나의 릴레이션에서 속성 사이의 순서는 무의미하다
    • 속성의 원자성
      • 속성 값으로 원자 값만 사용할 수 있다
      • 하나의 속성은 다중값(여러 개의 값)을 가질 수 없다
      • ex) 고객 릴레이션 → 직업 속성에서 2개의 값(회사원, 학생)을 가질 수 없음. but 분리해서 쓸 수 있긴 함.

 

키의 종류

  • 슈퍼키 (super key)
    • 유일성의 특성을 만족하는 속성(들)의 집합
    • 하나의 릴레이션에서 키로 지정된 속성 값은 튜플마다 달라야한다
    • ex) 고객 릴레이션 → 고객아이디, (고객아이디, 고객이름) 속성 집합
  • 후보키 (candidate key)
    • 유일성과 최소성을 만족하는 속성(들)의 집합
    • 슈퍼키 중에서 최소성을 만족하는 것이 후보키
    • 새로운 튜플이 삽입되거나 기존 튜플의 속성 값이 바뀌어도 유지되어야 함
  • 기본키 (primary key)
    • 여러 후보키 중에서 기본적으로 사용할 키를 선택한 것
    • 후보키가 1개 존재할 경우 해당 후보키는 자연스럽게 기본키가 됨
    • 속성 이름에 밑줄 그어 표시
    • 기본키 선택할 때 고려할 점
      • 널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합
      • 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합
      • 단순한 후보키를 기본키로 선택
  • 대체키 (alternate key)
    • 기본키로 선택되지 못한 후보키들
  • 외래키 (foreign key)
    • 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
    • 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합

BELATED ARTICLES

more