인류는 기존 폴더를 사용한 데이터 정리과정에서 어려움을 느끼고 DB라는 새로운 DATA처리 방식을 만들어냈다. 이러한 DB는 DATA를 처리하는 방식에 따라 속도도 다르고, 역할도 다르다. 이러한 DB를 설계하기 위해선 데이터모델링을 하는 과정이 반드시 필요하다.
데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다.
앞서 데이터 모델랑을 하는 과정 속 3번에서 ERD를 작성한다.
Entity Relationship Diagram의 약자로 데이터 베이스 구조를 한 눈에 알아보기 위해 그려놓는 다이어그램이다.
우선 쇼핑몰에 관한 ERD를 설계해보자.
우선 상품을 판매할 때 사용하는 데이터를 예시를 들어 EXCEL에 적어보았다. 중복되는 데이터는 정규화 과정을 통해 처리한다. 정규화 참고
정리된 데이터를 KEY VALUE의 형식으로 ERDCLOUD란 사이트에서 구현해보자.
노란색 KEY모양은 PK(Primary Key)를 의미하며, 분홍색은 FK(Foreign Key)이다.
PK는 기본키로서 해당 테이블을 구분할 수 있는 key이다. fk는 외래키로 다른 테이블을 참조할 때 사용한다.
그럼 필요한 관계에 따라 연결을 해보자.
그런데 자세히 보면 화살표마다 모양이 다르다. 필요한 관계에 따라 다른 관계 화살표를 사용했기 때문이다.
만약 쇼핑몰을 설계한다고 가정하면 회원에 대한 처리는 필수이다. 이때 회원은 고유의 아이디를 통해 자신만의 프로필을 만들어낼 수 있는데 이때의 관계는 1:1이다. 왜냐하면 회원 한 명이 여러개의 프로필을 가질 수 없으며 프로필은 하나의 아이디만을 가르키기 때문이다.
그럼 만약 하나의 개체가 여러가지 개체를 포함한다면?
예를 들어 어떠한 상품에 대한 상품평에 대해 생각해보자. 한 가지 상품에 대한 여러 명의 평가가 가능하기 때문에 상품과 상품평의 관계는 1:n이다.
마지막으로 n:m의 관계에 대해 생각해보자. 우리가 만약 스마트폰을 판매한다고 가정했을 때 samsung, 샤오미, 애플, lg(지금은 안 하지만..)와 같은 여러 제조업체가 존재한다. 그런데 이러한 업체에서는 대부분 스마트폰만 판매하는 것이 아닌 다른 여러가지 제품들도 판매한다. 즉, 두 엔티티가 다대다 관계에 놓여있는 것이다. 제품 - 제조업체
필자는 쇼핑몰에 대해 설계했으므로 상품과 주문의 관계를 n:m 관계로 놓았다. 여러가지 상품을 한 번에 주문할 수 있고, 주문을 할 때 여러 상품을 주문할 수 있기 때문이다.
직접 ERD를 설계해보았지만 DB에 직접적으로 적용할 생각을 하니 두렵다..ㅋㅋ