AD

전수진 공부 프로젝트 트게더를 만들어보자 - DB(Table 정규화)

모데충
2022-09-02 16:26:07 199 5 2

안녕하세요. 엄청 오랜만에 글을 씁니다. 앞으로 1~2개의 글만 더 쓰면은 DB도 마무리가 되고 실제로 보고 즐길 수 있는 실 트게더 개발로 넘어가게 됩니다. 


오늘 내용은 어떤 DB의 기능이 아니라 DBA가 DB를 작업할때 반드시 참고해야 하는 정규화에 대해서 알아보겠습니다.


정규화에 대한 설명:https://mangkyu.tistory.com/110


정규화의 목적은 쉽게 설명하면은 데이터의 효율적인 관리입니다. 예시를 한번 들어보겠습니다.

ec879a59fbe152fdb493093768dc39ae.png

LOL DB에 이름이 Game History인 테이블이 있다고 가정을 해봅시다. 그러면 매 판마다 이렇게 게임을 하고 난 후에 전적이 기록이 될텐데 실제 운영되는 DB의 데이터는 한두건이 아니라 적게는 수만건에서 많게는 그 이상의 데이터가 테이블에 기록이 되있을 것입니다.


그렇다고 한다면은 효율적인 테이블 관리를 위해서는 어떻게 해야 할까요? 가장 먼저 우리가 생각할 수 있는 방법은 불필요한 데이터를 줄여 나가는 것입니다. 그러면은 Game History테이블에서 불필요한 데이터가 무엇이 있을까요? 아마도 GAME,NO,NAME컬럼일 것입니다. 왜 필요없는지 한번 하나씩 따져보도록 하겠습니다.


GAME 컬럼 : 롤 게임 내에서 관리하는 테이블인데 굳이 GAME이라는 컬럼을 만들어서 LOL이라는 불필요한 데이터를 이중으로 저장할 필요가 있을까요? 혹자는 말할 수도 있습니다. "요즘은 TFT도 롤 내에서 할 수 있는데요?"라고 한다면은 해당 컬럼은 가치가 있는 컬럼이니 삭제할 필요가 없어 보일 수도 있습니다. 하지만 해당 테이블의 나머지 컬럼을 본다면은 KDA 컬럼이 있는 것으로 보아서 TFT의 데이터를 저장하는 테이블은 아닌듯 하니 삭제하는것이 맞을듯 합니다.


NO 컬럼 : 게임이력에 대한 정보만 있으면 될듯 한데 굳이 몇번째인지를 나타내는 번호는 필요가  없습니다. 따라서 해당 컬럼은 지워줘도 됩니다.


NAME컬럼 : 닉네임 컬럼은 굳이 게임 이력을 관리하는 테이블에는 필요가 없을듯 합니다. 왜냐하면 게임 이력을 가져오고 싶다면 닉네임이 아닌 ID로 데이터를 가져와야 할 것입니다. 닉네임은 언제든지 바뀌는 데이터니 Key값으로의 가치는 없습니다.


따라서 해당 테이블을 정규화 한다면 아래와 같이 나올 것입니다.


560b4d67df3c7d4f2ca34e2771b2f2ee.png


자 이런식으로 중복되거나,혹은 불필요한 부분들을 최소화 시키는 작업을 정규화 라고 합니다.

이 외에도 추가적인 정규화 내용들이 있지만 심도 있는 내용은 구글에 검색해보시거나 제가 첨부한 링크에서 확인해 보시면 될듯 합니다. 이 정규화를 얼마나 잘 하는지에 따라서 서버의 속도가 천차만별로 달라지게 되며 본인의 몸값을 결정할 수 있는 기술입니다.


오늘 내용은 여기까지 입니다. 다음 시간에는 아마 마지막?이 될 수도 있는 테이블간 Join에 대해서 알아보도록 하겠습니다. 

항상 감사드립니다.

후원댓글 2
댓글 2개  
이전 댓글 더 보기
이 글에 댓글을 달 권한이 없습니다. 로그인해 보세요.
잡담신고팬아트건의함게임추천이벤트순클립전수진 공부 프로젝트음식을 올려보아요마지막 클립 불태우기
2
전수진 공부 프로젝트
에펙 뉴비 순당무님을 위한 팁글 모음.link [1]
쥐펄
07-29
4
전수진 공부 프로젝트
초전도체 논문 [2]
서카포노예제발
07-29
6
04-06
3
03-30
15
전수진 공부 프로젝트
순손실 방지 프로젝트 - 1.다시보기 자동저장하기 [17]
모데충
03-29
4
전수진 공부 프로젝트
심심해서 쓰는 인터넷 신청부터 점검까지 [3]
모데충
03-23
0
전수진 공부 프로젝트
녹화에 음악 안남게 하기 [3]
모데충
12-20
11
전수진 공부 프로젝트
씹덕일러를 그려보자 (2) - 김욾 선화, 밑색 칠하기 [6]
미노일세
11-15
7
11-07
16
전수진 공부 프로젝트
걸게이머 결승에 관하여(뇌피셜) [8]
모데충
11-03
7
전수진 공부 프로젝트
망 사용료 논쟁에 대해서 알아보자(초스압 주의) [7]
모데충
09-30
8
전수진 공부 프로젝트
연애 잘하는 법,권태기와 식은 마음의 구분 [3]
boysick12
09-25
2
전수진 공부 프로젝트
트게더를 만들어보자 - 다음 과정 의견수렴 [3]
모데충
09-17
2
09-10
5
전수진 공부 프로젝트
발?성법 [1]
라ㅡ떼
09-10
3
전수진 공부 프로젝트
트게더를 만들어보자 - DB(Table Join) [마감] [15]
모데충
09-05
»
전수진 공부 프로젝트
트게더를 만들어보자 - DB(Table 정규화) [2]
모데충
09-02
2
전수진 공부 프로젝트
방장 공부하자 (서버, 서버의 기본 3)
라ㅡ떼
09-01
3
전수진 공부 프로젝트
방장 공부하자 (서버, 서버의 기본 2)
라ㅡ떼
08-28
5
전수진 공부 프로젝트
방장 공부하자 (서버, 서버의 기본 1) [2]
라ㅡ떼
08-26
3
전수진 공부 프로젝트
트게더를 만들어보자 - DB(Table 제약 조건)
모데충
08-23
3
전수진 공부 프로젝트
트게더를 만들어보자 - DB(CRUD 조건문) [마감] [8]
모데충
08-19
3
전수진 공부 프로젝트
트게더를 만들어보자 - DB(DataGrip 설치) - [마감] [15]
모데충
08-17
9
08-16
인기글 글 쓰기