메뉴 건너뛰기

bysql.net

2_연습문제

2011.09.08 11:46

suspace 조회 수:7107

 

 

1. 데이터 모델을 다음과 같이 만들었는데 {학번, 과목번호} 결정자이면서 PK이고 {성적, 지도교수명, 학과명} 가 종속자이다.

    속성중 과목번호가 결정자이고 {지도교수명, 학과명} 이 과목번호에만 함수종속성을 가진다면 이는 몇 차 정규형에 속하고

    몇 차 정규화의 대상인가?

 

 

    1) 1차정규형 - 2차정규화대상

    2) 2차정규형 - 3차정규화대상

    3) 3차정규형 - 보이스코드 정규화대상

    4) 보이스코드 정규형 - 4차정규화대상

 

해설 )

비정규형 ---> 제 1 정규형  :  도메인이 원자값

제 1 정규형 ---> 제 2 정규형 : 부분적 함수종속 제거

제 2 정규형 ---> 제 3 정규형 : 이행적 함수종속 제거

제 3 정규형 ---> 보이스코드 정규형(BCNF) : 결정자이면서 후보키가 아닌 것 제거

보이스코드 정규형(BCNF) ---> 제 4 정규형 : 다치종속 제거

제 4 정규형 ---> 제 5 정규형 : 조인종속성 제거

 

 

 

2. 다음 모델에서 배송 엔터티에서 고객의 정보를 찾을 때 성능향상과 SQL 문장을 단순화하게 할 수 있도록 가장 적절한 반정규화 방법은 무엇인가?

(전제사항 : 주문목록 엔터티에서는 고객의 주식별자를 상속받기를 원하지 않음, 배송 엔터티에서는 고객 엔터티의 모든 속성을 참조하기를 원함)

 

 

    1) 고객의 모든 정보를 모두 배송 엔터티의 속성으로 반정규화

    2) 배송과 고객의 엔터티를 통합하는 반정규화

    3) 배송 엔터티와 주문+목록 엔터티관계를 식별자관계로 수정

    4) 고객과 배송 엔터티의 관계를 추가(1:M관계)하는 관계반정규화

 

 

해설 ) 

고객 엔터티의 모든 속성을 참조하기 원할 때 가장 효율성이 좋은 반정규화 기법은 관계를 중복하는(관계의 반정규화)방법을 적용


 

 

3. 다음 중 설계단계에서 데이터 모델의 성능을 고려하는 절차와 방법에 포함되지 않는 것은?

    1) 데이터 모델링을 할 때 분석단계에서부터 반정규화를 수행한다.

    2) 데이터베이스 용량산정을 수행한다.

    3) 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.

    4) 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행한다.  

 

해설 )   데이터 모델링 단계에서 성능을 고려할 수 잇는 방안

- 데이터 모델링을 할 때 정규화

- 데이터베이스 용량 산정

- 데이터베이스에 발생되는 트랜잭션의 유형 파악

- 용량과 트랜잭션의 유형에 따라 반정규화

- 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정

- 성능관점에서 데이터 모델 검증

 

 

 

 

4. 다음 슈퍼타입/서브타입 모델에서 설계단계에서 변환할 수 있는 테이블의 형태가 아닌 것은?

 

 

    1) 전체가 하나의 테이블인 부동산관계자로 통합하는 All in One 타입

    2) 슈퍼타입(부동산관계자)과 서브타입(부동산전세자, 부동산소유자)을 슈퍼+서브타입인 부동산전세자, 부동산소유자 2개 테이블로 만든 타입

    3) 슈퍼타입(부동산관계자)과 서브타입(부동산전세자, 부동산소유자)을 모두 1:1 관계로 해체하여 개별로 테이블을 만드는 타입

    4) 부동산관계자의 일부 속성은 부동산전세자에게, 일부속성은 부동산소유자에게 할당하여 배치하는 수평분할 타입

 

해설 )   성능을 고려한 슈퍼타입과 서브타입의 모델 변환 방법 3가지

1:1타입,   슈퍼+서브타입,   All in One 타입  


 

 

 

5. 다음 중 분산 데이터베이스의 투명성에 속하지 않는 것은?

    1) 분할 투명성

    2) 병렬 투명성

    3) 중복 투명성

    4) 병행 투명성

 

해설 )

6가지 투명성 : 분할투명성,   위치투명성,   지역투명성,   중복(복제)투명성,   병행투명성,   장애투명성