[kupica v1.1.0] 정규화와 post 테이블 분리
v1.0.3 ERD |
정규화 |
현재 Kupica 서비스는 게시글 당 하나의 사진만 등록할 수 있습니다. 따라서
후보키로는 post_id, source, cached_image_url, download_key가 있습니다. 이 중에서 post의 유일한 식별을 의도한 속성인 post_id를 기본키로 채택하였습니다.
제 1 정규화를 따졌을 때
속성명이 중복되지도 않고 모든 튜플들의 속성값에는 atomic한 단일값들이 들어가게 되어있습니다.
제 1 정규화에는 문제가 없어 2 정규화로 넘어가겠습니다.
제 2 정규화를 따졌을 때
후보키가 non prime atrributes인 pasword, caption, earsed_flag, created_date_time, updated_date_time을 partial functional dependency를 가지지 않게 해야하는데 현재 후보키들 중엔 composite key가 없고 속성들 중 한 가지 값을 반드시 가지는 경우가 없기에 제 2 정규화에도 문제가 없어 제 3 정규화로 넘어가겠습니다.
제 3 정규화를 따졌을 때
transitive FD X-> Y, Y->Z, X->Z, (Y,Z not subset of any key)
기본키가 어느 non prime attribute Y를 결정할 때 Y가 non prime attribute Z를 결정하지 못하게 해야합니다.
non prime attribute 중엔 기본적으로 중복이 일어날 수 있어 서로를 결정하기가 힘듭니다.
따라서 제 3 정규화 또한 문제가 없습니다.
BCFN을 따졌을 때
Functional Dependency에서 결정자는 후보키가 되어야합니다.
그리고 그러한 부분도 찾아낼 수 없습니다.
현재 Kupica의 테이블은 너무나 단순하고 이미지를 한 장만 등록할 수 있게하여 정규화의 필요를 느끼지 못합니다.
그러나 이후 늘어날 이미지 등록량과 post와 image는 명백히 다른 구분되었음하는 논리적 판단 때문에
이 둘을 별개의 테이블로 분리하고자 합니다.
post 테이블 분리 (post, image) |
긴 글 읽어주셔서 감사합니다.
부족한 점이 있다면 부디 알려주시면 감사하겠습니다.