[MySQL] 데이터베이스 모델링 간단한 계념과 간단한 예. 모델링 순서
실제로 데이터베이스 모델링은 엄청 복잡하지만, 아래 영상에서는 간략하게 설명해 주었다. 이를 정리한다.
(아래 영상을 참고)
영상을 간략히 정리.
예전에는 데이터가 별로 없어서 혼자서 해결할 수 있다면, 지금은 무수히도 많은 데이터를 처리해야 함으로 반드시 데이터베이스가 구축이되어야 한다. 여러 사람들의 분업된 데이터를 데이터베이스 서버를 통해 손쉽게 처리할 수 있도록 해야한다.
- 프로젝트(project)란? 현실의 업무를 컴퓨터에서 처리할 수 있도록 옮겨놓는 과정. 대규모 프로그램을 만들기 위한 과정
- 자주 사용되는 모델 : "폭포수모델(waterfall model)", 앞의 단계가 마무리 되어야 넘어가는 모델 *업무분석, 시스템설계* 부분이 제일 중요, 전체 많은 시간할당이 필요, 프로그램 구현은 코딩단계
- 데이터베이스 모델링 이란? 현실에 있는 작업을 PC의 DBMS에 옮기는 과정. (고객 주문관리 등을 PC내의 테이블로 변경하는 과정. 데이터베이스화 작업), 실제 실무자와 함께 작업을 해야 최상의 DB가 구축됨.
- 데이터베이스 모델링 종류? 개념적모델링, 논리적모델링, 물리적모델링 으로 구분
<모델링 테이블이 만들어지는 과정>
* 정리되지 않은 현실의 데이터를 정리해서 테이블로 만들기
1. Raw데이터
(그냥 쇼핑몰 방문 기록) 방문일지 쓰는 것 처럼 작성.
문제점, 방문할때마다 쓰는거기 때문에 구매를 했을 수 있고 안했을 수 있고, 중복된 이름이 발생할 수 있음
2. 물건을 구매하지 않을 사람들을 따로 모아서 제거 (유효한 데이터만 수집)
고객방문기록을 유효한 데이터로 두 테이블로 정리 -> 고객테이블, 구매테이블
3. 고객테이블의 중복된 고객을 정리.
4. 구매테이블의 문제점, 누가? 구매했는지 모름
5. 고객테이블과 구매 테이블의 관계 연결 (PK - FK table)
FK가 있는 테이블을 자식테이블 (Child table), PK가 있는 테이블은 부모테이블 (parent table)
1:N 방식 (PK는 하나, FK는 여러개)
주요키, PK (Primary key) : 오직 1개만 존재 고유한 키
외래키, FK (foreign key) : 두 테이블을 연결시키는 키
FK는 값이 NULL이거나, 부모테이블의 PK와 동일해야 함.
아래 예에서 "김범수"가 청바지 3개 구매건에 대해 조회 할때 순서.
김범수씨 정보확인 -> FK(고객이름)에서 PK(고객이름) 확인 -> 김범수 개인정보 확인
6. 결정한 데이터에 대한 테이블 구조를 정의. 열이름, 데이터 타입, NULL(필수사항) 등 확인
위와 같은 과정을 거쳐 딱 필요한 데이터를 골라서 아래와 같은 Table을 만든다.
그리고나서 이 데이터로 이제 Workbench에서 Database를 구축하는 것이다.