200 likes | 515 Views
산업공학전산실무 09. 테이블 설계 검증 동아대학교 산업경영공학과 김 준 우. 일반적인 데이터베이스 설계 절차. 데이터베이스 설계 개요. 논리 모델링 개념 DBMS 에 등록할 테이블 구조 ( 스키마 ) 도출 주요 수행 작업 1) Mapping rule : 초기 스키마 도출 2) 정규화 : 스키마 오류 검증 및 수정 정규화 (normalization) 개념 스키마의 이상 현상 제거 올바른 스키마 도출 주요 특징 기존 테이블 분리하여 작은 테이블 생성
E N D
산업공학전산실무 09. 테이블 설계 검증 동아대학교 산업경영공학과 김 준 우
일반적인 데이터베이스 설계 절차 데이터베이스 설계 개요
논리 모델링 개념 DBMS에 등록할 테이블 구조 (스키마) 도출 주요 수행 작업 1) Mapping rule : 초기스키마 도출 2)정규화 : 스키마 오류 검증 및 수정 정규화 (normalization) 개념 스키마의 이상 현상제거 올바른 스키마 도출 주요 특징 기존 테이블 분리하여 작은 테이블 생성 한 개 테이블에 한 개 주제 관련 자료만 기록되도록 설계 정규화 개요
이상 현상 데이터 작업 시 발생하는 오류 1) 삭제 (delete) 이상 2) 삽입 (insert) 이상 3) 갱신 (update) 이상 여러 개 주제 한 테이블에서 관리하여 발생 예) 프로야구 선수 데이터 세 가지 이상 현상 모두 발생 정규화 개요
이상 현상 삭제 이상 레코드 삭제 시, 남겨야 할 자료까지 함께 소실 예) ‘정근우’선수 레코드 삭제 SK구단의 연고, 홈구장 정보도 소실 삽입 이상 필요한 내용 기록이 곤란한 현상 예) ‘한화’구단 ‘대전’연고, ‘한밭’홈 등록 선수 없이 등록 불가 정규화 개요 값 목록 발생도 일종의 삽입 이상
이상 현상 갱신 이상 한 가지 정보 변경 시, 이를 여러 번에 걸쳐 반영해야 하는 현상 예) ‘홍성흔’선수 소속 ‘두산’으로 변경 연고, 홈까지 수정 필요 예) ‘두산’구단이 연고를 수원으로 이전 여러 선수 정보 모두 수정 정규화 개요
종속 관계 두 개 필드 값들 사이 연관성 현재 스키마 이상 현상 발생 가능성평가에 활용 올바른 종속 관계 기본 키 값 결정 나머지 필드 값 한 개씩 결정되어야 함 올바른 종속 관계 갖는 스키마는 이상 현상없음 예) 올바르지 못한 종속 관계 1) 값 목록 : 기본 키 값 하나에 대해 나머지 필드 값 여러 개인 경우 2) 이행 종속 : 기본 키 아닌 필드끼리 종속관계 존재 3) (참조) 부분 종속 : 복합키 중 일부에만 종속 종속 관계 학생
잘못된 종속 관계 1) 값 목록의 발생 예) 프로야구 선수 최근 (2012, 2013) 연도별 성적 데이터 주의) 필요 항목을 개별 필드로 모두 나누는 것 곤란 종속 관계 현재 스키마로 이후 시즌 데이터 기록 불가
잘못된 종속 관계 2) 이행 종속의 발생 예) 프로야구 선수 데이터 (한해 성적) 소속, 연고, 홈 필드 사이 종속 관계 존재 종속 관계
정규형 (normal form) 바람직한 스키마 형태 올바른 종속 관계, 이상 현상 없음 정규형 종류 1종 정규형 : 값 목록 발생하지 않는 경우 2종 정규형 : 1종 정규형 + 부분 종속 발생하지 않는 경우 3종 정규형 : 1, 2종 정규형 + 이행 종속 발생하지 않는 경우 기타 : 4, 5종, 보이스코드 정규형 등 정규화 테이블 스키마 정규형으로 만드는 작업 1종 정규형부터 순서대로 진행 일반적으로 3종까지 고려 (본 과목에서는 1, 3종 두 가지만 고려) 정규형
제 1 정규화 값 목록발생하는 경우, 이를 제거하기 위해 스키마 수정 1종 정규형 스키마 얻어짐 제 1 정규화 방법 목록 발생 필드 또는 필드 그룹을 별도 테이블로 분해 원래 테이블과 1 대 다 관계 형성 (원래 테이블이 1) 예) 프로야구 선수 연도별 성적 관리 제 1 정규화 선수 값 목록 발생하는 필드 그룹
제 1 정규화 제 1 정규화 방법 예) 프로야구 선수 연도별 성적 관리 제 1 정규화 선수 성적 분해 선수 필요 시, 신규 테이블에 적절한 기본 키 부여 성적 선수 원래 테이블을 1, 신규 테이블 N으로 1 대 다 관계 형성 성적 외래 키 부여
제 1 정규화 제 1 정규화 결과 관찰 예) 프로야구 선수 연도별 성적 관리 제 1 정규화 선수 성적 선수
제 1 정규화 기타) 개념 모델링에서 올바른 개체 및 관계 도출 시, 1종 정규형 얻어짐 예) 프로야구 선수의 연도별 성적 ‘선수’는 ‘성적’을 기록 (별도 개체 추출) 적절한 관계 설정 Mapping 규칙에 의해 올바른 스키마 얻어짐 제 1 정규화 선수ID 이 름 성적ID 출장경기 선수ID 이 름 포지션 선수 기록 성적 선수 연도 타율 포지션 연도 타율 출장경기 올바른 ERD (별도 개체 서로 분리됨) 잘못된 ERD (여러 개체 한 곳에 뭉쳐짐)
제 3 정규화 이행 종속을 제거하기 위한 스키마 수정 이행 종속 : 기본 키 아닌 필드 간 종속 관계 제 1, 제 2 정규화 작업 이후 수행 본 과목에서는 제 2정규화 생략 제 3 정규화 방법 이행 종속 발생 필드 그룹을 별도 테이블로 분해 원래 테이블과 적절한 관계 형성 예) 프로야구 선수 데이터 (한 해 성적만 관리) 제 3 정규화 선수 이행종속 발생하는 필드 그룹
제 3 정규화 제 3 정규화 방법 예) 프로야구 선수 데이터 (한 해 성적만 관리하는 것으로 가정) 제 3 정규화 선수 팀 분해 선수 필요 시 신규 테이블에 적절한 기본 키부여 팀 선수 적절한 관계 표현 (선수 N, 팀 1이 적절) 팀 외래 키 부여
제 3 정규화 제 3 정규화 결과 관찰 예) 프로야구 선수 데이터 (한 해 성적만 관리) 제 3정규형 스키마 얻어짐, 이상 현상 방지됨 제 3 정규화 선수 팀
제 3 정규화 기타 개념 모델링에서 올바른 개체 및 관계 도출 시, 3종 정규형 얻어짐 예) 프로야구 선수 데이터 (한 해 성적만 관리) 선수 개체와 팀 개체 별도 추출 필요 적절한 관계 설정 Mapping 규칙에 의해 올바른 스키마 도출됨 제 3 정규화 이 름 팀ID 팀명 선수ID 포지션 선수, 팀을 한 개체 표현 시 잘못된 스키마 얻어짐 선수 소속 팀 출장경기 장타율 홈 연고 타율 출루율 올바른 ERD (별도 개체 서로 분리됨)
정규화 수행 단계 1) Mapping 규칙으로 얻은 스키마 검증 레코드 몇 개 입력해보고 값 목록, 이행 종속 발생 여부 관찰 2) 이상 현상 발생 시 정규화 수행 값 목록 발생 시 : 제 1정규화 이행 종속 발생 시 : 제 3정규화 3) 최종 테이블 스키마 도출 원래 스키마가 분해되어 작은 테이블로 쪼개짐 정규형 테이블 스키마 올바른 테이블 스키마 서로 다른 개체 서로 다른 테이블로 표현 여러 대상 정보 한 테이블에 포함 시 이상 발생 정규화 정리