제 1 정규화 원칙 : atomic columns 각각 column의 값은 하나만을 가져야 한다. 영상 실습에서 tag column에 여러 값이 존재한다. topic - tag 는 M : N 의 관계를 가진다. 따라서, 중간에서 연결을 해줄 새로운 테이블이 필요하다. topic 테이블에서 tag Column을 분리해 새로운 테이블 tag를 만든다. topic 테이블의 PK와 tag테이블의 PK를 두 column으로 가지는 테이블 topic_tag_relation 을 생성한다. 이후 PK, FK 를 연결하면 atomic columns를 만족하는 제 1 정규형이 된다.
Normalization(정규화) 정제되지 않은 데이터(표를) 정제된 데이터(표)로 변환하는 방법이다. UNF : 정규화가 일어나지 않은 데이터(표) 1NF : 첫번째로 정규화된 데이터(표) 각각의 Column이 atomic 한 상황 2NF, 3NF, 4NF, … , 6NF 이 존재한다. 3NF 까지가 실제로 많이 쓰이고 이후는 학구형으로 쓰인다. 이후 강의에서 3NF까지 자세히 알아본다고 한다.
author - topic의 관계에서 author는 한명이 여러 topic에 관여할 수 있다. topic 또한 하나에 여러 author가 존재할 수 있다. 즉 N : M 의 관계이다. topic 테이블에 author 컬럼을 추가하면 한 튜플에 여러 값이 들어갈 수 있다. author의 테이블의 경우에도 마찬가지. 따라서, 중재 테이블이 필요하다. write 라는 중재 테이블을 추가했다. author_id와 topic_id 컬럼으로 이루어져 있고, 각각의 저저가 어떤 글을 작성했는지 내용을 채운다. author로 구분하고, 같은 author도 작성한 topic으로 구분되어 1개씩의 값을 가지는 튜플들이 생성된다.
author - comment, comment - topic 의 관계에서 연결을 만들기 위해 새로운 컬럼을 추가했다. comment 테이블에 author_id, topic_id을 추가했다. 즉 2개의 foreign key를 가지게 되었다. 1 : N 관계는 누가 Primary Key 인지 정하지 않아도 돼 쉽다.
실습 진행 (1:1 관계 추가를 위해 새로운 테이블(휴면)을 추가했다.) PK와 FK를 연결지어 관계를 만든다. 먼저, Cardinality(몇 대 몇 인지)를 따져본다. 1 : 1 의 상황에서 어떤 테이블이 FK를 가지게 되는가? 의존 관계를 따진다. 혼자여도 상관없는 테이블 : 부모 테이블, 의존하는 테이블 : 자식 테이블 자식 테이블이 부모 테이블을 참조, FK 연결가능(자식 테이블에 존재)
논리적 데이터 모델링 개념적 데이터 모델링에서 뽑아낸 개념을 관계형데이터베이스 패러다임에 어울리게 데이터 형식을 정리하는 것 특성이나 성능을 신경 쓰지 않는다. Mapping Rule ER 다이어그램에서 받은 데이터 형식을 관계형데이터베이스 형식으로 전환할 때 사용하는 방법 ER 다이어그램 → 관계형 데이터베이스 Entity → Table Attribute → Column Relation → PK,FK
ER 다이어그램에서의 표현을 설명했다.(영상 참고) 글 - 댓글의 개념 글은 댓글이 여러개 존재할 수 있다. 글은 댓글이 없을 수도 있다. 댓글은 글이 꼭 있어야 한다. 저자 - 의 개념 저자는 글이 여러개일 수 있다. 저자는 글을 쓰지 않을 수 있다. 글은 저자가 꼭 있어야 한다.