목차
1. 데이터베이스 개발의 단계에 대해서 교재 및 다른 정보를 사용하여 설명하시오 (10점)
2. ER 데이터 모델의 요구 사항에 대해서 상세히 설명하시오 (10점)
3. 관계(Relationship)의 종류에 대해 예를 들어 설명하시오 (10점)
4. 약개체(weak entity)란 무엇이며, 약개체 종류에는 어떤 것들이 있는지 예를 들어 설명하시오 (10점)
5. Supertype 과 Subtype 개체에 대해 예를 들어 설명하시오 (10점)
6. 다대다(M:N) 관계를 되도록 피하는게 좋다고 한다. 그럼 다대다(M:N) 관계를 어떤 형태로 변형 할 수 있는지
예를 들어 설명하시오 (10점).
7. 제1정규형, 제2정규형, 제3정규형이무엇인지정의하고, 예를 들어 설명하시오 (10점)
8. 역정규형이 무엇이며, 왜 역정규형을 하는지 설명하시오 (10점).
2. ER 데이터 모델의 요구 사항에 대해서 상세히 설명하시오 (10점)
3. 관계(Relationship)의 종류에 대해 예를 들어 설명하시오 (10점)
4. 약개체(weak entity)란 무엇이며, 약개체 종류에는 어떤 것들이 있는지 예를 들어 설명하시오 (10점)
5. Supertype 과 Subtype 개체에 대해 예를 들어 설명하시오 (10점)
6. 다대다(M:N) 관계를 되도록 피하는게 좋다고 한다. 그럼 다대다(M:N) 관계를 어떤 형태로 변형 할 수 있는지
예를 들어 설명하시오 (10점).
7. 제1정규형, 제2정규형, 제3정규형이무엇인지정의하고, 예를 들어 설명하시오 (10점)
8. 역정규형이 무엇이며, 왜 역정규형을 하는지 설명하시오 (10점).
본문내용
의 요금 고지서를 한꺼번에 납부할 수 있고, 또 하나의 요금 고지서를 여러 번에 걸쳐 납부할 수 있다."
"한명의 학생이 여러개의 개설과목을 수강할 수 있고, 한과목은 여러명의 학생에 의해 수강된다."
7. 제1정규형, 제2정규형, 제3정규형이 무엇인지 정의하고, 예를 들어 설명하시오 (10점)
※ 참고문헌
부산외국어대학교 데이터베이스론 강의교재 참고
2005년도 데이터베이스론 수업 노트 필기
데이터베이스 정규화(영어: Database Normalization)는 논리적 데이터베이스 설계에 있어서 테이블들을 구조화하는 기법 중 하나이다. 어느 테이블이든 어느 정도는 정규화될 수 있는데, 데이터베이스 이론에서는, 테이블의 정규화된 정도를 정규형(영어: normal form)이라는 용어를 써서 표현한다.
요약하면, 주어진 릴레이션의 스키마를 함수적 종속성(X→Y인 경우, Y가 X에 함수적으로 종속된다.)과 기본키(후보키 중에서 각 개체를 구별하기 위해 선택한 KEY)를 기반으로 분석하여 원래의 릴레이션을 분해함으로써 중복과 세가지 갱신이상(수정이상:중복 데이터 중 일부만 수정하여 데이터의 불일치 발생, 삽입이상:불필요한 정보를 함께 저장하지 않고 어떤 정보 저장하는 것이 불가능, 삭제이상:유용한 정보를 함께 삭제하는 것이 불가능)을 최소화 시키는 것으로 정의할 수 있다.
정규형
수행되는 작업
특징
임의의 릴레이션
비정규화된 릴레이션
↓
반복 그룹의 제거
제1정규형
모든 에트리뷰트가 원자값
↓
부분함수 종속성 제거
제2정규형
제1정규형이면서, 키가 아닌 모든 에트리뷰트가 기본키에 완전하게 함수적으로 종속
↓
이행적 종속성 제거
제3정규형
제2정규형이 아니면서 키가 아닌 모든 에트리뷰트가 기본키에 직접 종속
↓
후보키가 아닌 결정자 제거
BCNF
제3정규형이면서 모든 결정자가 후보키
제1정규형 : 릴레이션의 모든 에트리뷰트가 원자값(더이상 쪼갤 수 없는 값)을 가진다. 반복 그룹 에트리뷰트에 나타나는 집합에 속한 각 값마다 하나의 튜플로 표현
학번
이름
과목번호
주소
→
학번
이름
과목번호
주소
1
채영수
MGMT704, MGMT123
신암4동
1
채영수
MGMT704
신암4동
2
박상우
MGMT134
신암5동
1
채영수
MGMT123
신암4동
3
배성준
MGMT234
신암1동
2
박상우
MGMT134
신암5동
4
3
배성준
MGMT234
신암1동
5
제2정규형 : 릴레이션이 제1정규형(반복그룹의 제거)을 만족하면서, 후보키가 아닌 모든 에트리뷰트들이 릴레이션의 기본키에 완전하게 함수적으로 종속한다.
<부산외국어대학교 데이터베이스 강의 자료 참조>
발생 문제
삭제 이상
삽입 이상
갱신 이상
상황 : 학번이 200인 학생이
과목 C123을 취소함
행동 : (200, C123 ) 레코드 삭제
문제점 : 200번 학생이 3학년이라는
정보가 사라짐
왜 이런 문제가 발생하는가?
primary key(학번, 과목번호)에
완전종속이 아니기 때문
상황 : 학번이 600이고 2학년인
학생 정보 추가
행동 : (600, ?) 레코드 삽입
문제점 : 개체 무결성 원칙에 의해 삽입이 불가함
상황 : 학번이 400인 학생의 학년을 3으로 변경
문제점 : 4개의 레코드를 모두 변경해야 함
<부산외국어대학교 데이터베이스 강의 자료 참조>
제3정규형 : 릴레이션이 제2정규형을 만족하면서, 키가 아닌 모든 에트리뷰트가 릴레이션의 기본키에 이행적으로 종속(릴레이션 R에서 기본키를 A라고 하고, 기본키에 속하지 않는 속성을 B라 할 때, A→B, B→C와 같은 함수적 종속성이 존재할 때 A→C를 이행적 종속성이라 한다)하지 않는다.
<부산외국어대학교 데이터베이스 강의 자료 참고 하여 직접작성>
발생 문제
삭제 이상
삽입 이상
갱신 이상
상황 : 학번이 100인 학생 삭제
행동 : (100, 컴퓨터,123-4567)
레코드삭제
문제점 : 컴퓨터과 전화번호가 사라짐
상황 : 학생이 없는 "무역과"와
무역과전화번호 입력
행동 : (?,무역과, 123-2580)
레코드삽입
문제점 : 개체 무결성 원칙에 의해
삽입이 불가함
상황 : 컴퓨터과의 전화번호 변경
문제점 : 3개의 레코드를 모두
변경해야 함
<부산외국어대학교 데이터베이스 강의 자료 참고 하여 직접작성>
8. 역정규형이 무엇이며, 왜 역정규형을 하는지 설명하시오 (10점).
정규화된 릴레이션을 데이터의 접근효율성 및 시스템의 성능향상을 위해 데이터 구조를 조정하는 기법, 정규화된 엔티티 타입, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 데이터 모델을 조정하는 프로세스, 테이블과 속성, 관계에 대해 중복으로 가져가는 방법뿐 아니라. 속성, 관계를 추가하거나 분할할 수 있으며 제거할 수도 있다. 테이블 조인의 최소화도 하나의 원인이 된다.
역정규화를 하는 이유 : 핵심은 Database의 생산성 향상에 있다.
1. 데이터의 중복(컬럼 역정규화)
- 조인프로세스를 줄이기 위해 조인을 해서 다른 테이블에 있는 컬럼의 데이터를 조회하는 경우, 아예 해당컬럼(정규화를 통해 나온 테이블)을 중복함으로 해서 기본적으로 조회를 할 경우 조인을 수행하지 않도록 하는 방법
2. 파생컬럼의 생성
- 기본적으로 테이블에 없는 컬럼을 숫자연산이나, 데이터 조작을 통해 새로운 데이터를 보여줄 경우, 예를 들면 성적테이블에서 등수, 판매테이블에서 판매금액등의 계산을 생각할 수 있다.
3. 테이블의 분리
- 컬럼 수를 기준으로 분리 : 실제 상황에서 가시성을 위해서 처리하는 경우
- 레코드를 기준으로 분리 : 테이블안에서 데이터 검색의 사용빈도기준으로 하는 분리
4. 요약테이블의 생성
- 특정테이블 내에 삽입과 수정, 검색이 빈번히 발생할 경우, CPU의 부담이 커지므로 테이블안의 특정 컬럼반으로 따로 분리하여 관리함(주로 검색용으로 사용)
5. 테이블 통합
- 데이터 중복제거, NULL값의 제거와 같은 필요에 의해 분리된 테이블이 과도한 참조와 과도한 조인의 발생으로 다시 테이블의 통합함
※ 참고문헌
2005년도 데이터베이스론 수업 노트 필기 참조
"한명의 학생이 여러개의 개설과목을 수강할 수 있고, 한과목은 여러명의 학생에 의해 수강된다."
7. 제1정규형, 제2정규형, 제3정규형이 무엇인지 정의하고, 예를 들어 설명하시오 (10점)
※ 참고문헌
부산외국어대학교 데이터베이스론 강의교재 참고
2005년도 데이터베이스론 수업 노트 필기
데이터베이스 정규화(영어: Database Normalization)는 논리적 데이터베이스 설계에 있어서 테이블들을 구조화하는 기법 중 하나이다. 어느 테이블이든 어느 정도는 정규화될 수 있는데, 데이터베이스 이론에서는, 테이블의 정규화된 정도를 정규형(영어: normal form)이라는 용어를 써서 표현한다.
요약하면, 주어진 릴레이션의 스키마를 함수적 종속성(X→Y인 경우, Y가 X에 함수적으로 종속된다.)과 기본키(후보키 중에서 각 개체를 구별하기 위해 선택한 KEY)를 기반으로 분석하여 원래의 릴레이션을 분해함으로써 중복과 세가지 갱신이상(수정이상:중복 데이터 중 일부만 수정하여 데이터의 불일치 발생, 삽입이상:불필요한 정보를 함께 저장하지 않고 어떤 정보 저장하는 것이 불가능, 삭제이상:유용한 정보를 함께 삭제하는 것이 불가능)을 최소화 시키는 것으로 정의할 수 있다.
정규형
수행되는 작업
특징
임의의 릴레이션
비정규화된 릴레이션
↓
반복 그룹의 제거
제1정규형
모든 에트리뷰트가 원자값
↓
부분함수 종속성 제거
제2정규형
제1정규형이면서, 키가 아닌 모든 에트리뷰트가 기본키에 완전하게 함수적으로 종속
↓
이행적 종속성 제거
제3정규형
제2정규형이 아니면서 키가 아닌 모든 에트리뷰트가 기본키에 직접 종속
↓
후보키가 아닌 결정자 제거
BCNF
제3정규형이면서 모든 결정자가 후보키
제1정규형 : 릴레이션의 모든 에트리뷰트가 원자값(더이상 쪼갤 수 없는 값)을 가진다. 반복 그룹 에트리뷰트에 나타나는 집합에 속한 각 값마다 하나의 튜플로 표현
학번
이름
과목번호
주소
→
학번
이름
과목번호
주소
1
채영수
MGMT704, MGMT123
신암4동
1
채영수
MGMT704
신암4동
2
박상우
MGMT134
신암5동
1
채영수
MGMT123
신암4동
3
배성준
MGMT234
신암1동
2
박상우
MGMT134
신암5동
4
3
배성준
MGMT234
신암1동
5
제2정규형 : 릴레이션이 제1정규형(반복그룹의 제거)을 만족하면서, 후보키가 아닌 모든 에트리뷰트들이 릴레이션의 기본키에 완전하게 함수적으로 종속한다.
<부산외국어대학교 데이터베이스 강의 자료 참조>
발생 문제
삭제 이상
삽입 이상
갱신 이상
상황 : 학번이 200인 학생이
과목 C123을 취소함
행동 : (200, C123 ) 레코드 삭제
문제점 : 200번 학생이 3학년이라는
정보가 사라짐
왜 이런 문제가 발생하는가?
primary key(학번, 과목번호)에
완전종속이 아니기 때문
상황 : 학번이 600이고 2학년인
학생 정보 추가
행동 : (600, ?) 레코드 삽입
문제점 : 개체 무결성 원칙에 의해 삽입이 불가함
상황 : 학번이 400인 학생의 학년을 3으로 변경
문제점 : 4개의 레코드를 모두 변경해야 함
<부산외국어대학교 데이터베이스 강의 자료 참조>
제3정규형 : 릴레이션이 제2정규형을 만족하면서, 키가 아닌 모든 에트리뷰트가 릴레이션의 기본키에 이행적으로 종속(릴레이션 R에서 기본키를 A라고 하고, 기본키에 속하지 않는 속성을 B라 할 때, A→B, B→C와 같은 함수적 종속성이 존재할 때 A→C를 이행적 종속성이라 한다)하지 않는다.
<부산외국어대학교 데이터베이스 강의 자료 참고 하여 직접작성>
발생 문제
삭제 이상
삽입 이상
갱신 이상
상황 : 학번이 100인 학생 삭제
행동 : (100, 컴퓨터,123-4567)
레코드삭제
문제점 : 컴퓨터과 전화번호가 사라짐
상황 : 학생이 없는 "무역과"와
무역과전화번호 입력
행동 : (?,무역과, 123-2580)
레코드삽입
문제점 : 개체 무결성 원칙에 의해
삽입이 불가함
상황 : 컴퓨터과의 전화번호 변경
문제점 : 3개의 레코드를 모두
변경해야 함
<부산외국어대학교 데이터베이스 강의 자료 참고 하여 직접작성>
8. 역정규형이 무엇이며, 왜 역정규형을 하는지 설명하시오 (10점).
정규화된 릴레이션을 데이터의 접근효율성 및 시스템의 성능향상을 위해 데이터 구조를 조정하는 기법, 정규화된 엔티티 타입, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 데이터 모델을 조정하는 프로세스, 테이블과 속성, 관계에 대해 중복으로 가져가는 방법뿐 아니라. 속성, 관계를 추가하거나 분할할 수 있으며 제거할 수도 있다. 테이블 조인의 최소화도 하나의 원인이 된다.
역정규화를 하는 이유 : 핵심은 Database의 생산성 향상에 있다.
1. 데이터의 중복(컬럼 역정규화)
- 조인프로세스를 줄이기 위해 조인을 해서 다른 테이블에 있는 컬럼의 데이터를 조회하는 경우, 아예 해당컬럼(정규화를 통해 나온 테이블)을 중복함으로 해서 기본적으로 조회를 할 경우 조인을 수행하지 않도록 하는 방법
2. 파생컬럼의 생성
- 기본적으로 테이블에 없는 컬럼을 숫자연산이나, 데이터 조작을 통해 새로운 데이터를 보여줄 경우, 예를 들면 성적테이블에서 등수, 판매테이블에서 판매금액등의 계산을 생각할 수 있다.
3. 테이블의 분리
- 컬럼 수를 기준으로 분리 : 실제 상황에서 가시성을 위해서 처리하는 경우
- 레코드를 기준으로 분리 : 테이블안에서 데이터 검색의 사용빈도기준으로 하는 분리
4. 요약테이블의 생성
- 특정테이블 내에 삽입과 수정, 검색이 빈번히 발생할 경우, CPU의 부담이 커지므로 테이블안의 특정 컬럼반으로 따로 분리하여 관리함(주로 검색용으로 사용)
5. 테이블 통합
- 데이터 중복제거, NULL값의 제거와 같은 필요에 의해 분리된 테이블이 과도한 참조와 과도한 조인의 발생으로 다시 테이블의 통합함
※ 참고문헌
2005년도 데이터베이스론 수업 노트 필기 참조
소개글