이 강의에서는 ERDs에 대한 조금 더 자세한 내용이 나온다.
(자세하지만 별로 자세하지 않음)
Entity란
- Some thing in the environment
- Represented by a rectangle in " Entity Relationship Diagrams" (ERDs)
- Most entitied become a tabel in a database
Attributs란
- Attributes decribe prperties of an instance of an entity
- Attributes become columns in a database table
Identifiers란 (Key)
- Every instance of an entity must be uniquely identified
- Student number
- Tax file number
- An identifier/Key can be a single attribute or several attributes
- In watson, a leading asterisk denotes an identifier, but its much more common to underline the key and that's what we will do in this subject.
그리고 Foreign Key 이외에 Referential Integrity를 설명해 준다.
: A foreign key must either be null or it must refer to a primary key that already exist.
쉽게 아래의 그림을 통해 이해해 보자.


이 전 강의에서 배운 Symbol 들의 의미와 쓰임을 보다 쉽게 이해할 수 있다.
(기억 안 난다면 참고 2024.03.04 - [UTS study sum] - DATABASE #2강 _ The Single Entity)
그렇다면 아래의 그림에서 문제점이 무엇인지 파악해 보자.

-> Symbol을 봤을 때는 분명 하나의 키를 가지고 있어야 하지만
Stock 시트에서 보면 Nation 시트에서의 키들과 일치하는 게 없고 각각의 언더라인 PK가 없는 듯하다.
(? 그렇다면 symbol을 O로 바꾸면 문제가 없다는 건가..?)
-> 그건 아닌 듯 *로 외래키를 표시해 줬는데 해당 외래키가 Nation에서 PK로 존재하지 않는다.
여러 개의 PK를 가질 수 있는 이유

위의 그림에서 CIA_Language가 Country와 Language를 PK로 가지고 있다.

결과가 이런 식으로 나올 수 있기 때문에, 당연하게도 여기서 ex) Canda / English / 73% 와 같은
새로운 표가 또 나올 수는 없다. 이미 Canada / English / 59% 가 존재하기 때문에.
PK를 1개 이상 가질 수 있고 가져야 더 안전하고 정확한 값을 확보하는 듯하다.
Citation database : one to many relationships

위처럼 각각의 하나의 칼럼이 여러 개의 Key를 포함하여 Ref 해줄 수 있다.
이 수업에서는 아래와 같은 Many to Many relationships은 제외하라고 말하고 있다.

왜냐하면 Book과 Author로 예를 들면 하나의 작가가 너무 많은 책을 쓸 수 있고 책 또한
많은 작가를 포함할 수 있다.

이러면 너무나 복잡해지고 null 값이 너무 많아진다.
그래서 아래와 같은 방법으로 데이터를 조합해서 쓰는 것을 추천한다.

결론적으로 Many to Many -> a pair of 1 to Manys 방법으로
1 - to -Many를 여러 개 붙여서 쓰자.

Self Reference
하나의 셀이 자기 자신의 데이터를 셀프로 ref 하는 경우도 있다.

위 이미지에서 CIA_Neighbour은 Country A와 B를 스스로 Ref 한다.
해당 셀을 자세히 보면 아래와 같은 구조를 띄고 있다.

이런 경우 스스로 참조가 되어 사용 가능하다.
다만 이런 경우 하나 이상의 항목은 Null이 되어야 한다.
아래 쉬운 예시를 통해서 설명해 보자.

위처럼 모두 Staff라는 셀이 포함되어 있지만 StaffNo 666은 Boss 항목이 Null로 되어있다.
그 말은 즉슨 666이 Boss라는 의미이다.
또한 12345가 Boss에 StaffNo를 포함하고 있다.
이런 식의 스스로 참조하는 방법은 Self Ref라고 한다.

위와 같은 모양으로 Self-REf ERD를 만들 수 있다.
다시 1주 차로 돌아가 보면 Girl과 Boy 테이블을 따로 나눠놓고 같이 온 사람을 Join 하는 게
아주 비효율적이었다는 걸 알 수 있다.
해당 시트를 조금 더 보기 좋게 바꾼다면.

하나의 시트에 Info를 다 몰아넣고 또 하나의 시트에 그들의 관계를 포함해 주면 더 나은 모습을 보여준다.
라고 강의에서 말해준다.
(근데 그냥 1번 시트에 항목을 하나 더 만들어서 self - ref로 Adam / 0414 1236 / 5 이런 식으로 셀프 참조가 더 나은 거 아닌가..?)
굳이 시트를 하나 더 만들어야 하는 이유는 아직 잘 모르겠다...
'UTS study' 카테고리의 다른 글
| DATABASE # (0) | 2024.03.10 |
|---|---|
| DATABASE #2강 _ The Single Entity (0) | 2024.03.04 |
| DATABASE 수업 #0 _ PSQL 커맨드 모음 (0) | 2024.03.03 |
| DATABASE 수업 # 1강_ 기초 PSQL 문법 정리 (0) | 2024.03.03 |