-
Relational Model과 Key의 종류CS 지식/데이터베이스(Database) 2023. 4. 17. 16:51
Relational Model
Relational Model(관계형 모델)은 관계 정보를 기준으로 데이터의 구조를 표현하는 방식을 말한다.
대개 Database에서는
- Schema : data의 구조
- instance : data들이 들어가 있는 지금 그 상태
를 말한다.
variable로 따지면 Schema는 variable의 'type'을, instance는 variable의 'value'를 가리키는 느낌이다.
- R : relational schema = attriabute들의 집합 = (A1, A2, A3,... An)
(A들은 attribute들을 지칭한다.)
- r : relation variable
보통 r(R)로 표현을 하는데, relation(variable) on the relation schema R의 의미를 갖는다.
* relation은 set으로 tuple들의 순서는 관계없고, 중복도 허용하지 않는다.
Key의 종류
1. Super key
- unique 한 tuple을 identify할 수 있을 때
- 꼭 minimal한 조합이 아니어도 된다.
- ex) (학번, 이름, 주소) 의 조합 은 한 학생을 unique 하게 identify 할 수 있다.
학번만 있어도 한 학생을 unique 하게 identify 할 수 있어서 (학번, 이름, 주소) 조합은
minimal 한 구성으로 이루어진 조합은 아니지만 R의 super key라고 할 수 있다.
2. Candidate key
- Super key 중에서도 minimal 한 구성으로 이루어진 조합을 의미한다.
- unique 한 tuple로 identify + minimal 한 구성을 모두 만족해야 한다.
- 보통 이야기 하는 key를 의미
- 여러 개 존재 가능하다.
- ex) (학번) / (이름, 주소) / (주민번호)
3. Primary key
- Candidate key 중에서 DBA(table의 owner)가 table을 대표하는 key로 지정한 것을 말한다.
- null 값을 허용하지 않고 모두 그 자체로 unique 한 값을 갖는다.
- ex) (course_id, section_id, semester, year)와 같이 필요하면 여러 개의 attribute들로 구성될 수 있다.
4. Foreign key
- 같은 / 다른 table 끼리 연결할 때 사용
- ex) account table의 branch-name attribute가 branch table의 branch-name attribute를 참조하는 상황)
-> account table의 branch-name : Foreign Key
-> branch table의 branch-name : Primary Key
정확히는, Foreign key는 같은 / 다른 table의 Primary key를 참조함.
이 경우에 branch-name이 branch table의 Primary key라서 table끼리의 참조에서 활용되는 것.
'CS 지식 > 데이터베이스(Database)' 카테고리의 다른 글
statement vs prepared statement vs callable statement interface (0) 2023.05.04 Transaction Isolation Level(트랜잭션 격리 수준) (0) 2023.04.25 Transaction (0) 2023.04.25 SQL vs NoSQL (0) 2023.04.21 SQL - injection (2) 2023.04.19