무료 동영상 강의 https://youtu.be/z4mY2bhOvxk
우리가 SQL로 다루는 데이터는 관계형 데이터다. 여기서 관계(Relation)란 데이터를 행(Row)과 열(Column)로 조직화한 구조를 의미한다. 즉, 테이블이다. 테이블은 관계형 데이터 모델 개념으로 설계된다. 관계형 데이터 모델 이론은 데이터 활용에 있어 중요한 요소다. SQL로 데이터를 활용할 수 있지만, 그 전에 제대로 된 테이블 구조에 데이터가 저장되어 있어야 한다. 테이블 구조에 따라 SQL 작성 방법이 달라진다. 테이블 구조에 문제가 있으면 정확한 데이터 추출이 불가능할 수도 있다. 필요 이상으로 테이블이 복잡하게 설계되었다면 SQL 작성도 매우 복잡해질 수 있다. SQL에 대한 공부가 어느 정도 마무리되었다면, 관계형 데이터 모델 공부에 시간을 투자해보기 바란다. 제대로 데이터를 쌓아야, 제대로 데이터를 활용할 수 있다. SQL만 공부한 사람과 SQL과 데이터 모델링을 모두 공부한 사람 간의 데이터 활용 능력은 시간이 갈수록 큰 차이가 날 수 있다.
관계형 데이터 모델링 관련해서는 서점에 가서 본인에게 잘 읽히는 책을 직접 찾는 것을 권장한다. 가능하면 쉬운 용어로 이해가 어렵지 않은 내용의 책으로 시작하는 것을 추천한다.
테이블 설계 과정
테이블 설계 과정을 아주 간단하게 살펴보고 넘어가도록 하자. 관계형 데이터 모델은 개념 설계, 논리 설계, 물리 설계의 세 단계로 이루어진다.
최근에는 실제 프로젝트에서 논리 설계와 물리 설계를 정확히 분리해서 진행하는 경우는 드물다. 다양한 이유로 논리 설계와 물리 설계가 동시에 이루어지는 경우가 많다. 프로세스상 나누어 놓아도 실제로는 거의 동시에 이루어지기도 한다. 논리 설계와 물리 설계를 동시에 진행하는 방법론이 맞다, 틀리다로 잘라 말하기는 어렵다. 중요한 것은 정해진 자원과 시간내에서 최대의 효율적인 방법을 찾아야 하며, 이후에도 이 모델이 잘 사용되도록 고민하는 것이다.
관계 데이터를 설계하는 과정에서 중요한 개념 중 하나로 정규화(Normaliztion)가 있다. 개념 설계부터 물리 설계까지 항상 정규화를 유념해서 설계를 진행하게 된다. 여기서 정규화까지 설명할 수는 없다. 매우 중요한 내용이지만, 간단하게 설명할 수 있는 부분이 아니기 때문이다.
관계형 데이터 모델 기법을 이용해 테이블을 설계할 때는 ERD(Entity-Relation-Diagram) 툴을 사용한다. 대표적인 툴로 ERWIN이 있으며, 우리나라에서는 DA#도 많이 사용된다. 안타깝게도 유료툴이다. 개인 연습용으로 ERD를 그려보고 싶다면 ERD-CLOUD와 같은 웹상의 무료 플랫폼도 있으니 참고하기 바란다.
설계와 실제 테이블