ERD란 무엇일까?
ERD ( Entity Relationship Diagram )
데이터베이스를 구축할 때, 가장 기초적인 뼈대 역할이며, 테이블간의 관계들을 설명해주는 다이어그램이다.
이를 통해 DB의 구조를 한 눈에 파악할 수 있다.
한 때 ICT 멘토링에 참여하면서 백엔드 팀원들이 작성한 ERD를 예시로 첨부 해보았다.
(이 때 당시엔 ERD가 뭔지 몰랐는데 이제서야 알게 되었다.)
시스템의 요구 사항을 기반으로 ERD를 작성하고, 이 ERD를 기반으로 데이터베이스를 구축한다.
구축하고 난 이후에도 디버깅이나 비즈니스 프로세스를 재설계 할 때에도 중요한 설계도가 되어준다.
단, 비정형 데이터는 충분히 표현할 수는 없다.
정규화란?
관계형 데이터베이스를 설계할 때, 중복을 최소화하도록 구조화시키는 작업을 정규화라고 한다.
정규화는 데이터베이스의 이상 현상을 해소하는 것에 목적을 가진다.
이 때, 이상 현상이란 테이블 내에서 갱신, 삽입 삭제 시 의도치 않은 부작용이 생길 수 있는 현상을 말한다.
해당 교수가 맡은 강의가 없으면 교육 코드가 NULL이므로, NULL 비허용 컬럼에 추가할 수 없다.
Giddens 교수가 ENG-206 수업을 중단하여 해당 수업 코드를 삭제하면, 그의 교수 정보 전체가 삭제되는 경우
위와 같은 문제들을 해결하기 위한 정규화에는 정규화된 정도에 따라 제1정규형, 제2정규형, 제3정규형, 보이스/코드 정규형이 있고, 고급 정규형인 제4, 제5 정규형이 있다.
정규형의 원칙
제 1 정규형
릴레이션의 속하는 속성의 값이 모두 원자 값(atomic value)으로만 구성되어야 한다.
즉, 한개의 기본 키에 대해 두개 이상의 값을 가지는 반복 집합이 있어선 안된다.
하나의 칸엔 하나의 데이터만 보관한다
위와 같이 하나의 컬럼에 두개 이상의 값이 들어있는 경우, 아래와 같이 분리해준다.
제 2 정규형
제 1 정규형이면서, 기본키가 아닌 모든 속성이 기본 키에 완전 함수 종족인 정규형을 말한다.
현재 테이블의 주제와 관련없는 컬럼을 다른 테이블로 빼는 작업
아 이게 아닌데... 모르겠다 일단 패스