set : 서로 다른 elements를 가지는 collection (중복x)
-> 하나의 set에서 엘리먼트 순서 중요하지 않음
도메인 : 값들의 집합(더이상 나눌 수 없음)
relation : 튜플의 집합
릴레이션 스키마 : 릴레이션의 구조
--> 릴레이션 이름과 어트리뷰트 리스트로 표기
--> ex) STUDENT(id, name, grade, major)
--> 어트리뷰트와 관련된 constraints도 포함
degree of relation(차수) : relation schama에서 attributes의 수
relational database : relational data model에 기반하여 구조화된 database
-> 여러개의 relation으로 구성
relation 특징들
1) 중복된 tuple 가질 수 없음
2) 튜플을 식별하기 위해 attribute의 부분 집합을 key로 설정한다.
3) 튜플의 순서는 중요하지 않음 -> 릴레이션 정의할때 정의 x -> 순서 정하는건 자유
4) 하나의 링레이션에서 attribute의 이름 중복 x
5) attribute 순서 중요 x
6) attribute의 값은 atomic 해야 함(composite attribute 허용 x)
--> 서울시 강남구 청담동 -> 나눠줘야함
NULL의 의미
1) 값이 존재하지 않는다.
2) 값이 존재하나 아직 그 값이 무엇인지 알지 못한다.
3) 해당 사항과 관련이 없다.
--> 중의적 의미를 가질 수 있어 최대한 쓰지 않는게 좋음
superkey : relation에서 tuple을 unique하게 식별할 수 있는 attributes set
--> 전체 셋포함(모두 속성 가지면 유니크하기 떄문), (이름, 등번호, 팀아이디), (이름, 번호), 번호 등
candidate key : 어느 한 attribute라도 제거하면 유니크하게 식별할 수 없는 슈퍼 키
-> ket or minimal superkey
-> ex) {id}, {team_id, back_number}
primary key : relation에서 튜플을 유니크하게 식별하기 위해 선택된 candidate key
-> 보통 애트리뷰트 키가 적은것을 선택
유니크 키 : 프라이머리 키가 아닌 candidate key (alternate key)
foreign key : 다른 릴레이션의 PK를 참조하는 attributes set
constraints : 릴레이셔널 데이터베이스에서 릴레이션들이 언제나 항상 지켜야 하는 제약사항
1) implicit constraints : relational data model 자체가 가지는 constraints
--> relation은 중복된 tuple을 가질 수 없다
--> relation 내에서는 같은 이름의 attribute를 가질 수 없다.
2) schema-based constraints : 주로 DDL을 통해 스키마에 직접 명시할 수 있는 constraints
--> explit constraints
2-1) domain constraints : attribute의 값은 해당 어트리뷰트에 도메인에 속한 값이어야 한다.
2-2) ket constraints : 서로 다른 tuple은 같은 값의 키를 가질 수 없다
2-3) NULL value constraint : 속성이 NOY NULL로 명시됐다면 NULL을 값으로 가질 수 없다
2-4) entity integrity constraint : primary key는 value에 NULL을 가질 수 없다.
2-5) referential integrity constraint : FK와 PK와 도메인이 같아야 하고 PK에 없는 values를 FK가 값으로 가질 수 없다.