5장. 논리적 데이터베이스 모델링 1. 관계형 모델의 개념 2. Mapping Rule 3. 정규화 1-1 부모 테이블과 자식 테이블 1-2 기본키(Primary Key)와 포린키(Foreign Key) 1-3 식별 관계화 비식별 관계 2. Mapping Rule 2-1. Mapping Rule 이란? 3. 정규화 3-1. 제 1 정규화 3-2. 제 2 정규화 3-3. 제 3 정규화 3-4. 정규화 정리
5장. 논리적 데이터베이스 모델링 1. 관계형 모델의 개념 1-1 부모 테이블과 자식 테이블 1-1 부모 테이블과 자식 테이블 : 관계를 맺고있는 두 테이블중에 반드시 하나는 부모 테이블이고 반드시 하나는 자식 테이블이다. 1-1-1. 선별 요령 1) 주체 관계를 파악한다. 2) 부모 테이블의 데이터가 먼저 정의되어야 한다. 1-2 기본키(Primary Key)와 포린키(Foreign Key) : 부모 테이블의 기본키가 자식 테이블에 포린키로 전이되어진다. 1-3 식별 관계와 비식별 관계 1-3-1. 식별관계 : 부모 테이블의 기본키가 자식 테이블에 기본키 혹은 기본키 그룹의 구성원으로 전이되어진다.
: 부모 테이블의 기본키가 자식 테이블에 일반 속성(Attribute) 그룹의 구성원으로 전이되어진다. 1-3-1. 비식별관계 : 부모 테이블의 기본키가 자식 테이블에 일반 속성(Attribute) 그룹의 구성원으로 전이되어진다. 상 품 회 원 상품코드 회원코드 상품명(AK) 규격 측정단위 이름 주민번호(AK) 전화번호 주문 상세 주 문 주문번호(FK) 상품코드(FK) 주문번호 회원코드(FK) 주문일자 주문총금액 수량 단가 금액
2. Mapping Rule 1-1 Mapping Rule이란? : 개념적 데이터베이스 모델링에서 얻어진 E-R Diagram을 관계형 데이터베이스 이론에 입각해서 데이터베이스 스키마로 변환하는 과정이다. 1단계) 단순 엔티티 == > 테이블로 2단계) 속성 == > 컬럼으로 3단계) 식별자 == > 기본키로 4단계) 관계 == > 포린키로
3. 정규화 : 정규화를 하는 이유는 데이터의 중복을 방지하고 보다 효율적으로 데 이터를 저장하기 위함이며 속성들을 본래의 테이블에 정확히 위치시 키고자 함이다. 3-1. 제 1 정규화 : 반복되는 속성이나 Group 속성 제거하고 새로운 실체를 추가한 뒤 기존의 실체와 1 : N의 관계를 형성한다. 테이블 명 : 회원 컬럼 명 회원번호 이름 주소 핸드폰번호 주민번호 자격증 취득일 키 형태 PK 견본 데 이 터 1 홍길동 서울시 면목 8동 (111)111-1111 111111-1111111 운전면허1종 19980203 MCSE 19990603 정보처리기사 20000502
테이블 명 : 회원 컬럼 명 회원번호 이름 주소 핸드 폰 번호 주민번호 키 형태 PK 견본 데 이 터 1 홍길동 서울시 면목 8동 (111)111-1111 111111-1111111 테이블 명 : 자격증 컬럼 명 자격증ID 회원번호 자격증 취득일 키 형태 PK FK 견본 데 이 터 1 운전면허1종 19980203 2 MCSE 19990603 3 정보처리기사 20000502
테이블 명 : 과정 테이블 명 : 과정 컬럼 명 과정코드 과정명 교육내용 교육기간 강의 시간 수강료 교재1 교재2 … 키 형태 PK 테이블 명 : 과정 과정코드 과정 명 교육내용 교육기간 강의 시간 수강료 교재1 교재2 교재3 교재4 교재5 PK A0001 웹프로그래밍 웹 구현에 필 요한 기본 구현 로직과 프 5개월 8시간 1800000 SQL Sever Html활용 ASP기초 JSP활용 실무구축 A0002 웹마스터 웹 사이트를 구축할 수 있 4개월 4시간 700000 Windows 2000 SQL Server NULL A0003 ASP프로그래밍 ASP를 활용한 웹 사이트 구 3개월 1400000 Html기초 ASP활용 J0001 JAVA프로그래밍 Java프로그래머가 되기 위 9개월 2000000 JAVAR기초 JSP
테이블 명 : 과정 컬럼 명 과정코드 과정명 교육내용 교육기간 강의 시간 수강료 키 형태 PK 견본 데 이 터 A0001 웹프로그래밍 웹 구현에 필 요한 기본 구현 로직과 프 5개월 8시간 1800000 A0002 웹마스터 웹 사이트를 구축할 수 있 4개월 4시간 700000 A0003 ASP프로그래밍 ASP를 활용한 웹 사이트 구 3개월 1400000 J0001 JAVA프로그래밍 Java프로그래머가 되기 위 9개월 2000000 테이블 명 : 교재명 컬럼 명 교재번호 교재명 과정코드 키 형태 PK FK 견본 데 이 터 1 SQL Sever A0001 2 Html활용 3 ASP기초 4 JSP활용 … 9 JAVAR기초 J0001 10 JSP
3-2. 제 2 정규화 : 복합키( Composit Primary Key )로 구성된 경우 해당 테이블 안의 3-2. 제 2 정규화 : 복합키( Composit Primary Key )로 구성된 경우 해당 테이블 안의 모든 컬럼들은 복합키 전체에 의존적이어야 한다. 만일 복합키 일부에 의존적인 컬럼이 존재한다면 제거해야 한다. 복합키가 아닌 경우 제2정규화의 대상이 되지 않는다. 학생 동아리 학번 동아리코드 이름 주민번호 전화번호 : 동아리명 설립취지 설립일자 동아리등록 동아리코드(FK) 학번(FK) 등록일자 등록사유
3-3. 제 3 정규화 : 제 3 정규화는 한 테이블 안의 모든 키가 아닌 컬럼들은 기본키 (Primary Key)에 의존해야 한다. 만일 키가 아닌 컬럼에 종속되 는 속성이 존재한다면 이를 제거해야 한다. 사원 사원 사원번호 사원번호 이름 주민번호 전화번호 핸드폰번호 우편번호 시도명 구군명 읍면동명 나머지/번지명 입사일 이름 주민번호 전화번호 핸드폰번호 우편번호 주소 입사일
사원 우편번호 사원번호 우편번호 이름 시도명 주민번호 구군명 전화번호 읍면동명 핸드폰번호 나머지/번지범위 우편번호(FK) 나머지/번지명 입사일 시도명 구군명 읍면동명 나머지/번지범위
3-4. 정규화 정리 1차 정규화 : 반복되는 속성이나 Group 속성 제거하고 새로운 실체를 추가 3-4. 정규화 정리 1차 정규화 : 반복되는 속성이나 Group 속성 제거하고 새로운 실체를 추가 한 뒤 기존의 실체와 1 : N의 관계를 형성한다. 주문ID 주문일 회원ID 회원명 회원등급 상품ID 단위 수량 단가 2301 940614 101 홍길동 일반 H360 NET 20 25600 J142 PAKET 320 654000 K101 3-PACK 16 32500 2302 940615 107 송종국 우수 A101 6-PACK 8 24200 2303 940616 110 박찬호 4011 10 65100 4301 COVER 12900
=>주문 테이블 =>주문상세테이블 주문ID 주문일 회원ID 회원명 회원등급 PK 2301 940614 101 홍길동 일반 2302 940615 107 송종국 우수 2303 940616 110 박찬호 =>주문 테이블 주문ID 상품ID 단위 수량 단가 PK,FK PK 2301 H360 NET 20 25600 J142 PAKET 320 654000 K101 3-PACK 16 32500 2302 A101 6-PACK 8 24200 2303 4011 10 65100 4301 COVER 12900 =>주문상세테이블 2차 정규화 : 복합키( Composit Primary Key )로 구성된 경우 해당 테이블 안의 모든 컬럼들은 복합키 전체에 의존적이어야 한다.
=>상품테이블 =>주문상세 테이블 상품ID 단위 단가 PK H360 NET 25600 J142 PAKET 654000 K101 3-PACK 32500 A101 6-PACK 24200 4011 65100 4301 COVER 12900 =>상품테이블 주문ID 상품ID 수량 PK,FK 2301 H360 20 J142 320 K101 16 2302 A101 8 2303 4011 10 4301 =>주문상세 테이블
=>주문 테이블 =>회원테이블 =>주문 테이블 3차 정규화 : 한 테이블 안의 모든 키가 아닌 컬럼들은 기본키 (Primary Key)에 의존해야 한다. 만일 키가 아닌 컬럼에 종속되는 속성이 존재한다면 이를 제거해야 한다. =>주문 테이블 주문ID 주문일 회원ID 회원명 회원등급 PK 2301 940614 101 홍길동 일반 2302 940615 107 송종국 우수 2303 940616 110 박찬호 =>회원테이블 =>주문 테이블 회원ID 회원명 회원등급 PK 101 홍길동 일반 107 송종국 우수 110 박찬호 주문ID 주문일 회원ID PK FK 2301 940614 101 2302 940615 107 2303 940616 110