4장 데이터 모델링
MySQL은 RDBMS(관계형 데이터베이스 매니저먼트 시스템)
4.1 프로젝트 진행 단계
프로젝트란 현실세계의 업무를 컴퓨터 시스템으로 옮겨놓는 일련의 과정
몇몇 뛰어난 프로그래머에게 의존하는 형태를 취해왔다. -> 실패가 많아짐
이러한 문제점을 해결하기 위해서 ‘소프트웨어 개발 방법론’이 나타났다.
ex) 소프트웨어 공학 , 가장 오래되고 전통적으로 사용되는 것은 폭포수 모델
폭포수 모델
프로젝트 계획 -> 업무분석 -> 시스템 설계 -> 프로그램 구현 -> 테스트 -> 유지보수
4.2 데이터베이스 모델링
4.2.1 데이터베이스 모델링의 개념
업무 분석, 시스템 설계에서 데이터베이스 설계, 모델링이 필요하다.
현실세계에 있는 상품이나 고객, 직원을 넣을 수는 없으니 특징들을 추출해서 테이블을 만 드는 과정.
데이터베이스 모델링은 3단계로 구성되어있는데 개념적 모델링, 논리적 모델링 ,물리적 모 델링
실습1
우리는 지금 새로운 쇼핑몰을 오픈했다.
고객 방문 기록 (엑셀로 작성되어있다 생각)
고객이름 출생년도 주소 연락처 구매한 물건 단가(천 원) 수량
김태훈 1995 서울 010-6233 여기 비여있ㅇㅓ! ->only 구경
김태훈 1995 서울 010-6233 운동화 2 3 ->한번 더 방문
L 자로 만듬
1. 고객테이블과 구매 테이블 두 개로 만들어버림 공간을 아끼기 위해
고객 테이블 : 이름, 년생, 주소, 전번
구매 테이블 : 구매한 물건, 단가, 수량
2. 고객테이블에서 중복된 이름을 압축.
3. PK를 지정해줌(여기에서는 이름으로 해줌 안되지만)
4. 구매테이블 누가 샀는지 알 수가 없네! 고객이름을 붙여버림. 고객이름이 중복이 안되는 PK로설정 해놨으니 고객이름으로 붙이장-> 외래키 조건인가봄
구매테이블에서는 동일한 김태훈이 여러명 나옴 .
5. 고객테이블을 부모로, 구매 테이블을 자식으로 관계를 설정.
6. 고객테이블(고객이름-기본키) 1:N 구매테이블(고객이름-외래키) 관계 생김
한 고객이 여러 개를 구매함.
물리적 모델링을 설정
테이블이름 |
열 이름 |
데이터형식 |
Null허용 |
기타 |
고객테이블 (userTBL) |
고객이름(userNAme) |
문자(최대3글자) |
x |
PK |
|
출생년도(birthYear) |
숫자(정수) |
x |
|
|
주소(addr) |
문자(최대2글자) |
x |
|
|
연락처(mobile) |
문자(최대12글자) |
o |
|
구매테이블 (buyTBL) |
고객이름(userName) |
문자(최대 3글자) |
x |
FK |
|
구매한 물건(prdName) |
문자 최대 (3글자) |
x |
|
|
단가(price) |
숫자(정수) |
x |
|
|
수량(amount) |
숫자(정수) |
x |
|
데이터형식을 어떻게 할건지~
4장 데이터베이스 모델링 2
mysql workbench에서 모델링 툴을 제공
먼저 테이블을 만든 후에 옆에 있는 관계 표시를 선택하여 1:n, n:m, 1:1을 표현하면됨
모델링 그림그린 것을 DB로 넣을 수 있고 만들어진 shopdp를 er 다이어그램으로도 표현할 수 있음,
'2019백업' 카테고리의 다른 글
Chapter3_1정리(Day 7일차) (0) | 2018.05.23 |
---|---|
mysql고급문법 (0) | 2018.05.15 |
5장 SQL의 기본 (0) | 2018.05.14 |
데이터분석 4장 핵심 (0) | 2018.05.12 |
3장 (0) | 2018.05.10 |