Relational Database[Database]

SnowCat·2023년 7월 11일
0

CS - Database

목록 보기
2/10
post-thumbnail

relation

  • 데이터의 항목을 나타내는 각각의 집합들을 domain이라고 함
    학생 데이터가 있다고 하면 전화번호, 이름, 전공등의 속성값을 각각 domain이라 하고, 각각의 domain들의 집합의 이름을 domain이라 함
  • 각 domain들에서 값을 하나씩 골라 튜플을 생성할 수 있는데, 이 튜플들의 집합을 relation이라고 할 수 있음
  • 전화번호는 집전화, 휴대폰으로 나눌 수 있듯이 같은 domain이더라도 여러번 사용할 수 있는데, 이를 구분하기 위해서 각각에 attribution이라 부르는 이름을 붙임
  • relation data model에서는 이를 집합보다는 테이블로 많이 표기를 하게 됨
  • relation이 여러개 모여 구조화된 database는 relation database라 함

relation schema

  • relation의 구조를 나타낼 때 relation schema를 사용함
  • relation schema는 relation의 이름과 attribute 리스트로 표기됨
    ex) STUDENT(id, name, grade, major ...)
  • relation schema에는 암묵적으로 제약사항도 포함됨
  • relation 하나가 가지는 attribute 개수는 degree로 부름
    ex) STUDENT(id, name, grade, major)에서 degree는 4
    • relation database에서는 여러개의 relation과 제약 조건이 모여 relation database schema를 이룸

relation의 특징

  • 튜플을 사용하기 때문에 모든값이 같은 튜플을 가질 수 없음
  • 튜플을 식별하기 위해 attribute의 부분집합을 key로 설정함
  • 튜플의 순서를 정렬할 수 있는 방법은 여러가지가 있음
  • 하나의 튜플에서 attribute는 중복되지 않고, 순서는 중요하지 않음
  • attribute의 값은 더이상 쪼개저야 하지 않아야 하며, 여러개의 값을 동시에 가져서는 안됨
    ex1) address가 서울특별시 강남구 청담동 101동 204호라 하면 값이 composite하기 떄문에 본 주소와 세부주소로 분리해주어야 함
    ex2) major 값이 컴공, 디자인이라면 값이 여러개이기 때문에 여러개의 attribute (main major, submaor...)을 사용해 분리해야함

superkey

  • relation에서 튜플을 unique하게 식별할수있는 attributes set을 superkey라고 함
    ex) STUDENT(id, name, grade, major, phonenumber)에서 id 단독으로도, phonenumber 단독으로도, 또는 다른 값을 조합해서도 superkey가 될 수 있음
  • superkey에서 한 값이라도 제거하면 unique한 키를 얻을 수 없는 superkey를 candidate key라고 함
  • candidate key에서 튜플을 unique하게 식별하기 위해 선택된 키를 primary key, 나머지 candidate keys를 alternate key라 부름
  • 다른 relation의 primary key를 참조하는 attributes set은 foreign key라고 부름

constraints

  • relation database에서 relations이 언제나 지켜줘야 하는 제약 사항을 constraints라 부름
  • relation data model 자체의 특성으로 인해 지켜야 하는 제약사항을 implict constraints라 하고, 이는 relation의 특징을 공유함
  • schema에 직접 명시하는 제약사항은 schema-based constraints라 함
    • domain constraints는 attribute의 값이 해당 domain에 속한 value여야 한다는 제약사항을 의미함
    • key constrints는 다른 튜플이 다른 키를 가질 수 없음을 의미함
    • Null value constraint는 NOT NULL이 설정된 부분에 NULL이 들어갈 수 없음을 의미함
    • entity integrity constraint는 primary key값으로 NULL을 가질 수 없음을 의미함
    • referential integrity constraint는 foregin key와 primary key는 도메인이 같아야 하며, primary key에 없는 값을 foregin key가 값으로 가질 수 없다는 것을 의미함

출처:
https://www.youtube.com/watch?v=gjcbqZjlXjM&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=2

profile
냐아아아아아아아아앙

0개의 댓글