정규화(2)
-
[반정규화] 테이블 분할의 단점 (Feat. 정규화vs반정규화)
👍 테이블 분할이란? 정규화 != 테이블분할(반정규화의 방법 중 하나) 데이터의 무결성을 확보하기 위해서는 정규화를 실시하는 것이 일반적이지만, 오히려 정규화 때문에 쪼개진 테이블이 서로 연산하기 위해 트랜잭션이 증가하여 비용이 높게 청구된다면, 무결성을 포기하는 대신 반정규화를 실시하게 된다. 그런데 여기서 혼동의 우려가 있는데, 정규화도 테이블을 쪼개는 과정이지만, 반정규화에도 "테이블 분할"이라는 방식이 존재한다는 것이다. 그래서 차이점을 정확히 알아야 한다. "정규화"로서의 테이블 쪼개기와 "반정규화의 테이블 분할"로서의 테이블 쪼개기는 각각 유형이 따로 정해져 있다. 정규화로서의 테이블 쪼개기는 테이블이 원자성을 보유하거나, 부분함수종속성/이행함수종속성을 탈피하도록 각각의 단계에 맞추어 테이블을..
2020.08.03 -
[정규화] 효율적인 데이터베이스 스키마 구축 2
2020/06/16 - [컴퓨터언어/Database] - [정규화] 효율적인 데이터베이스 스키마 구축 [정규화] 효율적인 데이터베이스 스키마 구축 "효율적"인 데이터베이스가 무엇일까? 개념적 설계를 통해 이라는 개체에 필요할 만한 속성을 이것저것 넣었다고 해보자. 학번, 이름, 주민번호, 성별, 주소, 학과, 동아리, 학점, ...... 너무 an-onymous.tistory.com 이전 글에서 정규화는 개념적 설계로 나온 ER 다이어그램을 보편적인 "관계형 테이블"로 대응시킴과 동시에, 효율적인 데이터베이스를 만들기 위한 "논리적 설계" 과정이라고 하였다. 만약 정규화 없이 단순히 개념적 설계만을 가지고 데이터베이스화 한다면 삽입/삭제/갱신 이상이 발생할 것이기 때문이다. 정규화의 목적을 다시 한번 정..
2020.06.17