1. 요구사항 수집 및 분석
2. 개념 데이터 모델링
3. 논리 데이터 모델링
4. 물리 데이터 모델링
4.5 정규화
5. 데이터베이스 구축(구현)
: 요구 분석 기반 > 수집한 데이터 > 분석 > 저장 구조 > 도식화 > 산출물(ERD)
: 데이터를 저장하기 위한 데이터 구조를 설계 하는 작업
: ERD 만드는 작업
: 개념 > 간단한 표현의 설계도 > 테이블 이름 + 속성 + 관계 정도만 기술
: 논리 > 관계형 데이터베이스 기본 설정 > 속성(자료형,길이) + 도메인 정의 + 키...
: 물리 > 물리적 식별자 + 실제 DBMS에 맞는 세부 설정
: 엔터티(테이블) 간의 관계를 표현한 그림
: 데이터베이스 모델링 기법 중 하나
: 손, 오피스, 전문툴(eXERD, ER-Win, 온라인 툴...)
: 다른 Entity와 분류(구분)될 수 있고, 다른 Entity에 대해 정해진 관계를 맺을 수 있는 데이터 단위
: 릴레이션 = 엔터티 = 레코드 / 자바의 인스턴스 = 객체 > 집합(=테이블,/클래스)
a. 학생 정보 관리
b. 강의실 정보 관리
: 엔터티를 구성하는 요소
: 속성의 집합 = 엔터티
: 컬럼
: 하나의 엔터티안에 있는 속성이 다른 엔터티의 속성과 연관
: 엔터티와 엔터티 간의 관계
: 하나의 엔터티 내의 속성간의 관계
: 학생(아이디, 학생명, 나이...)
: 피터첸 or IE
1. 1:1
2. 1:N
3. N:N
[비디오 대여점] > 모델링 산출물
1. ERD 작성(개념 모델링)
2. 논리 다이어그램
3. 물리 다이어그램
1. ERD 작성(개념 모델링)
2. 논리 다이어그램
: 개발자가 보기 편하게
3. 물리 다이어그램
: 실제 개발 용
: 자료의 손실이나, 불필요한 정보를 없애고, 데이터의 일관성을 유지하며,
데이터 종속성을 최소화해주기 위해 ERD를 수정하는 작업
: 우리가 만든 ERD > 비정형 상태, 비정규화 상태 > 정규화 상태
: 제 1 정규화 > 제 2 정규화 > 제 3 정규화 등...
제 1 정규화, 1NF
: 모든 컬럼(속성)은 원자값을 가진다.
: 여러개로 분리 가능한 값을 1개의 컬럼안에 넣지 말 것!
: 1개 테이블 > (정규화) > 2개 이상의 테이블
제 2 정규화, 2NF
: 기본 키가 아닌 모든 컬럼은 완전 함수 종속이어야 한다.
: 부분 함수 종속 발견!! > 부분 함수 종속 제거!!
: 복합키를 가지는 테이블에서 발견된다.
: 1개 테이블 > (정규화) > 2개 이상의 테이블
제 3 정규화, 3NF
: 기본 키가 아닌 모든 컬럼은 완전 함수 종속이어야 한다.
: 이행 함수 종속 발견 !! > 이행 함수 종속 제거!!
: 1개 테이블 > (정규화) > 2개 이상의 테이블
1. 삽입 이상
: 특정 테이블에 데이터를 삽입 할 때 원하지 않는 데이터까지 같이 넣어야 하는 상황
2. 갱신 이상
: 동일한 데이터가 2개 이상의 테이블에 동시에 저장되는 현상
3. 삭제 이상
: 특정 테이블에서 데이터를 삭제할 때 원하지 않는 데이터까지 같이 삭제해야 하는 현상
: 하나의 테이블내에서 컬럼끼리의 관계 표현
: 정규화는 '부분 함수 종속'이나 '이행 함수 종속'을 모두 없애고,
모든 컬럼의 관계를 '완전 함수 종속'으로 만드는 작업이다.