실제로 데이터베이스 모델링은 엄청 복잡하지만, 아래 영상에서는 간략하게 설명해 주었다. 이를 정리한다.
(아래 영상을 참고)
https://youtu.be/JfROL0b_bTo
영상을 간략히 정리.
예전에는 데이터가 별로 없어서 혼자서 해결할 수 있다면, 지금은 무수히도 많은 데이터를 처리해야 함으로 반드시 데이터베이스가 구축이되어야 한다. 여러 사람들의 분업된 데이터를 데이터베이스 서버를 통해 손쉽게 처리할 수 있도록 해야한다.
- 프로젝트(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를 구축하는 것이다.