데이터 모델링
- 모델링 : 현실에서 사용하는 복잡한 데이터를 어떻게 컴퓨터의 DBMS에 옮겨 놓을지 결정하는 과정.
- 지반 설계
- 변환할 수 있는 대상 : 실체가 있는 대상 뿐만 아니라, 행동도 변환할 수 있다.
예) 올리브영 > 직원에게 상품 문의 > 구입
-직원 R, 고객 R, 상품 R, 매장 정보R, 구입 R
-상품 R : 상품 번호, 이름 , 제조일자, 회사, 가격 .....
예)사람의 신분을 증명하는 신분증
---> 어떤 정보? 이름 주민번호 주소 등등.......
모델링은 정답이 없다. 단 효율적이지 않은 모델링은.....
- 프로젝트 진행에서 데이터 모델링은 요구사항을 분석하고 정리하는것 부터 시작된다.
아주 잘못된 예 ) 회원가입 시 , 아이디, 비번, 이름 등 정보 받는다
- 요구사항을 수집하고, 분석한 결과를 가지고, 핵심 개념을 추출한다.
- 핵심 개념 :
개체
- 개체와 개체 간 관게를 정의한다.
- E-R다이어그램을 작성한다.
Ex) 올리브영에서 상품을 구매한다.
개체 : 고객, 상품
관계 : 구매

개념적 모델링: 개체와 개체들 간의 관계에서 ER다이어그램을 만드는 과정
논리적 모델링: ER다이어그램을 사용하여 관계 스키마 모델을 만드는 과정
물리적 모델링: 관계 스키마 모델의 물리적 구조를 정의하고 구현하는 과정
데이터 모델의 구성 요소
1. 개체(Entity)
- 사람이 생각하는 개념, 정보와 같은 현실 세계 대상
- 개체 타입과 개체 : 홍길동 이길동 삼길동
- 길동이라는 개체 타입에 속해 있는 개체다
2. 속성(Attribute)
3. 관계(Relation)
- 개체와 개체가 맺고 있는 의미 있는 연관성
- ex ) 고객은 상품을 구매한다.
- 관계의 종류( 1:1 , 1:n, n:m)
- 관계를 어떻게 맺어줄까?? >>>KEY라는 것을 설정해서 관계를 맺어준다.(KEY는 추후 공부)
4. 데이터 베이스의 구성
- 스키마
- 인스턴스
- 식별자 (key)
- 18명 이름이 홍길동 일때 어떻게 구분을 할까? 식별자!
- ex)1000번 훈련병 홍길동, 1001번 훈련병 홍길동, 1002번 훈련병 홍길동
- 릴레이션(테이블)의 특징
- 릴레이션은 중복된 튜플을 가질 수 없다.
- 릴레이션의 튜플을 식별하기 위해
KEY를 설정해서 유니크하게 식별한다.
- 릴레이션 에서 튜플의 순서는 중요하지 않다.
- 하나의 릴레이션에서 Attribute(속성)의 이름은 중복되면 안된다.
- Attribute의 값 (지정된 값)은 ATOMIC(더이상 나눠질 수 없어야함)해야 한다.
-> ex) 전공(major)이라는 Attribute에 컴퓨터공학과와 경영학과를 동시에 저장할 수 없음
- NULL의 의미?
- 값이 존재하지 않는다
- 값이 존재하지 않는데 아직은 모른다