※ 본 내용은 Youtube 관계형 데이터베이스을 정리한 내용입니다.

내용

relational data model (관계형 데이터 모델)이란?
domain, attribute, tuple 개념
relation, relational database 개념
relation 특징 소개
null의 의미
key 개념과 종류
constraints 개념과 종류

1. relational data model

set (relataion을 이해하기 위함)

  • 서로 다른 elements를 가지는 collection (=중복되지 않음)
  • 하나의 set(집합)에서 elements의 순서는 중요하지 않음 (e.g {1,3,11,4,7})

수학에서 의미하는 relataion

  • set A에서 1, set B에서 1개의 pair를 구할 때 모든 가지 수를 Cartesian Product A X B라고 함

  • 이게 왜 중요한데?

    여기엔 A, B 이렇게 두개 밖에 없으니 binary relation인데, 이게 Cartesian Product A X B의 부분 집합이 된다. => 수학에서 말하는 relation임!

  • 이걸 확장해서 set이 n개가 있다 라고 하면,

    'n개의 부분집합이다' 라고 해서 n-ary relation -> n개의 Cartesian Product의 부분 집합이 되지.

  • 각각의 list는 튜플로 할 수 있음. Tuple의 의미가 몇개의 relation으로 구성된 lsit의 의미가 있음. 이경우엔 n-Tuple

  • 그래서 결론! 수학에서 relation이란, subset of Cartesian Product, set of tuples로 말할 수 있음

relational data model

  • student relation을 예로 이해해보자!
  • domain 정의
    • student_id : 학번 집합, 7자리 int
    • human_names : 사람이름 집합, str
    • university_grades : 대학교 학년 집합, {1,2,3,4}
    • major_names : 전공 이름 집합
    • phone_numbers : 폰 번호 집합
  • 각 domain이 어떤 역할을 하는지 나타내기 위해서 attribute를 정함(한 relation에서 같은 phone_numbers인데, 학생용/비상용으로 2가지가 존재한다면 역할을 나타내서 차별점을 줘야하니까)
    그렇다면 tuple의 형식은 이렇게 됨.

    하지만 relation을 나타낼 때 이렇게 tuple의 형식보다는 table을 많이 사용함 => relation을 table이라고 함.
    그래서 relational data model에서는 이렇게 나타난다.

relational data model의 개념 설명

  • domain : set of atomic values (더이상 나눠질 수 없는 값의 집합)
  • domain name : domain 이름
  • attribute : domain이 relation에서 맡은 역할 이름
  • tuple : 각 attribute의 값으로 이루어진 리스트. 일부값은 NULL일 수 있음
  • relation : set of tuple
  • relation name : relation의 이름

relation schema

  • relation의 구조를 나타냄
  • relation 이름과 attributes 리스트로 표기됨
  • e.g. STUDENT(id, name, grade, major, phone_num, emer_phone_num)
  • attributes와 관련된 constraints도 포함함

degree(차수) of a relation

  • relation schema에서 attribute의 수
  • e.g. STUDENT(id, name, grade, major, phone_num, emer_phone_num) -> degree 6
profile
차보의 Data Engineer 도전기♥ (근데 기록을 곁들인)

0개의 댓글