Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

삼류 개발자의 애로사항

정규화에 대해서 본문

개발 개념 정리

정규화에 대해서

Yangban2olsida 2021. 9. 1. 01:01

학원에서 배웠지만, 돌이켜보니까 제 1 정규화 개념만 알고 있고,

잘못알고 있는 사실들이 있어서 다시 정리한다.

 

1. 정규화란?

사전적 정의는 중복 데이터를 만들지 않고, 데이터의 일관성을 유지 하는 작업을 뜻하며,

쉽게 말하자면, 칼럼 최소 단위의 테이블로 나누는 과정이라고 할 수 있겠다.

 

정규화를 진행하면서 칼럼이 늘어나기도 하며, 테이블 또한 자주 생성한다

 

위 예시와 같이, 정규화를 거친 표의 데이터는 종합하는 데에 있어서는 보기 좋지는 않다.

(오른쪽 표의 짱구 특기가 2개였기에 한 눈에 보이지만, 5개였다면? 10개 였다면?)

 

하지만, 데이터 하나 하나를 뜯어서 볼때는 확실히 그 내용이 간단해져서 보기 좋아진다는 장점이 생긴다.

때문에 정규화를 하는 목적이란,

불필요한 데이터 중복을 피하여, 데이터의 내용을 명확하고 간결하게, 논리적으로 저장 하기 위함에 있다고 생각한다.

 

** 추가적으로, 갑자기 생각난 것이 있다. 대학생 전산 시스템을 예로 들자면,  학생 기본 정보를 보여주는 페이지가 있고,

학생의 강의 평점/ 등급을 볼수 있는 페이지가 따로 있던 것으로 기억한다.

추측하건데, 학생 기본 정보 테이블과 학생 과목 테이블을 따로 정규화 시켜, 각각의 페이지에서는 정규화된 각 테이블들을 바로 긁어와 화면에 띄워주는 것이 아닐까 생각된다. 이게 사실이라면, 페이지에서 DB정보를 갖고와 화면에 띄우는 로딩시간을 크게 단축시킬 수 있는 장점도 있다고 할 수 있겠다. (어디까지나 추측)

 

2. 새롭게 깨달은 사실

어디 글에선가 정규화가 데이터의 용량을 줄여준다는 문구를 본적이 있었다.

처음에는 테이블의 양과 칼럼의 양이 늘어가는데 어떻게 데이터 용량이 줄어드는지

이해가 되지 않았었으나, 정리를 하다보니 깨달을 수 있었다. 

 

실제, 개발할 페이지는 모든 테이블을 가져오는 경우는 드물기 때문에, 정규화를 마친 테이블을 가져와서 뿌려주는 것이 대부분이 었던 것으로 기억한다. 그러므로 실제로 존재하는 테이블의 데이터양은 많아 지겠지만, 불러올 테이블의 데이터양은 적어진다고 할 수 있으리라 생각된다.

 

다음에는 정규화의 용도와 어떻게 쓰이는지에 대해서 정리할 생각이다.

'개발 개념 정리' 카테고리의 다른 글

라이브러리 VS 프레임워크  (0) 2023.08.24
형상 관리 주요 개념  (0) 2022.01.19
형상 관리  (0) 2022.01.19
헷갈리는 DB 용어  (0) 2021.09.02
오라클(Oracle) 자료형  (0) 2021.08.23