# CHAPTER 4 데이터베이스의 기본

금성·2022년 12월 7일
0

CS 전공지식 노트

목록 보기
11/19

SECTION 4.2 - 데이터베이스의 기본

DB 단계에서는 크게 Meta-Data 와 Stored Database로 데이터를 나눌수 있음

.1 Meta-Data 와 Stored Database

'속성정보'라고도 불리는 메타 데이터는 '데이터에 관한 구조화된 데이터', '다른데이터를 설명해 주는 데이터' 라고 함

필드를 생성할때 우리가 저장하고자 하는 데이터는 Stored Database이고
필드 타입(int, char, varchar...)은 Meta-Data 라고 말할 수 있음

.2 관련 용어

  • 릴레이션 ( Relation = Table)

    릴레이션 데이터 모델을 표현할 때 위쪽과 같은 방식은 잘 사용하지 않고 아래 테이블 형식으로 표현하는 것이 더 좋음
    그래서 릴레이션은 테이블 이라고 인식되는것

튜플(행)들의 집합

  • 각 릴레이션은 오직 하나의 레코드 타입만 포함 (행 이니까)
  • 한 애트리뷰트 내의 값들은 모두 같은 유형
  • 각 애트리뷰트(열)들의 순서는 중요하지 않음 : 집합은 순서는 의미가 없음.
  • 동일한 투플이 두 개 이상 존재하지 않음 -> 키가 존재함
  • 한 튜플의 각 애트리뷰트는 원자값(리스트)을 가짐.
  • 튜플들의 순서는 중요하지 않음.
  • 각 애트리뷰트의 이름은 한 릴레이션 내에서만 고유하면 됨.
  • 릴레이션 스키마 ( Relation Schema ) - 내포

    릴레이션의 이름과 릴레이션의 속성들의 집합

  • 릴레이션 인스턴스 ( Relation Instance ) - 외연

    릴레이션에 어느 시점에 들어 있는 튜플들의 집합

  • 튜플 ( Tuple = Record )

    각 속성값으로 이루어진 리스트. 일부는 NULL 가능 ( 테이블에서 행을 의미 )

    • 튜플은 릴레이션에서 같은 값을 가질수 없음.
    • 튜플의 수는 카디날리티( Cardinality ) 라고 한다.
  • 카디날리티 ( Cardinality )

    릴레이션의 튜플의 갯수

    • 유효한 릴레이션은 카디날리티 0을 가질 수 있음
    • 릴레이션의 카디날리티는 시간에 따라 계속 변함

  • 속성 ( Attribute = Field )

    도메인에 대한 역할을 부여 ( 테이블에서 열을 의미 )

    • 같은 말로는 칼럼 ( Column )
    • 속성( Attribute )의 수는 디그리( degree )라고 함.
  • 도메인 ( domain )

    한 속성 ( Attribute )에 나타날 수 있는 쪼개질 수 없는 값들의 집합

    • 동일한 도메인이 여러 속성 ( Attribute )에 사용될 수 있음
    • 속성과 도메인을 잠깐만 짚고 넘어가보면

      위쪽 그림과 같이 phone_numbsers 라는 도메인은 여러개가 있을수 있지만 그중 하나는 연락처의 역할을하고 나머지는 비상연락처의 역할을 하게된다. 이러한 역할을 부여해 주는것이 속성 ( Attribute )

  • 차수

    한 릴레이션에 들어있는 속성들의 수

    • 유효한 릴레이션의 최소 차수는 1
    • 릴레이션의 차수는 자주 바뀌지 않음
  • 정리


    (관련 용어 출처)

.3 관계

1:1 , 1:N은 다들 익히 잘알고 있을테니 N:M에 관해 알아보자

현실에서는 N:M 관계라는게 존재하지만 DB에서는 N:M이 존재하지 않는다. 강의를 예로 들어보자

학원 강의에는 수학,과학,영어..등이 있고 학생은 그 강의를 수강할 수 있는 학생은 A, B, C 누구든 될 수 있다. 반대로 학원에는 여러명의 학생이 수강할수 있으므로 N:M이라고 생각할 수 있는 것이다. 하지만 이를 DB에서 구현하게 되면 N:M처럼 보이게끔 구현을 하게 된다.

즉, 서로가 서로를 1:N, 1:M 관계로 갖고 있기 때문에 서로의 PK를 자신의 FK 칼럼으로 가지고 있으면 된다.

.4 키( key )

먼저 키에 대해 알아보기 전에 최소성유일성을 알아보자.

  • 유일성

    하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질

  • 최소성

    키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성
    ex) 주민번호만으로 튜플을 유일하게 식별 가능

여러가지 키가 존재 하지만 그중 가장 중요한 PK와 FK에 대해서 알아보자.

  • 기본키 PK ( Primary Key )

    후보키들 중에서 선택된키. NULL값이 들어갈수 없으며, 기본키로 선택된 속성은 동일한 값이 들어갈 수 없음

    • 후보키 중에서 선택한 주키로 최소성유일성을 만족
    • Null값을 가질 수 없음 ( 개체 무결성 첫번째 조건 )
    • 동일한 값이 중복 저장될 수 없음 ( 개체 무결성 두번째 조건 )
  • 외래키 FK ( Foreign Key )

    어떤 테이블 (Relation)간의 기본 키(PK)를 참조하는 속성 -> 테이블들 간의 관계를 나타내기 위해 사용

  • 그외 키

    • 슈퍼 키 ( Super Key )

      • 유일성을 만족하는 키
        ex) { 학번 + 이름 }, { 주민등록번호 + 학번 }
    • 복합 키 ( Composite key )

      • 2개 이상의 속성을 사용한 키
    • 후보 키 ( Candidate key )

      • 유일성과 최소성을 만족하는 키
        -> 기본키가 될 수 있는 후보이기 때문에 후보키라고 불림
    • 대체 키 ( Surrogate key )

      후보 키들 중에 기본키로 선택되지 않은 키.
      -> PK가 사라졌을경우 PK대체 가능

  • 정리

    유일성과 최소성에 대해 알고있으면 key에 대한 이해가 훨씬 쉬워질 것이라 생각 한다.

    (키 출처)

profile
내일부터 공부 해야지

0개의 댓글