배꼽파지 않도록 잘 개발해요

방송대 데이터베이스시스템 - 8강. 연습문제 풀이 1 (1-7강) 본문

방송대 컴퓨터과학과/데이터베이스시스템

방송대 데이터베이스시스템 - 8강. 연습문제 풀이 1 (1-7강)

꼽파 2023. 5. 28. 11:40


문제 1번

DBMS 사용 이전의 데이터 관리 방식으로 운영체제의 지원으로 여러 파일에 나누어 데이터를 영구 저장하고 운영하는 시스템을 무엇이라고 하는가? [1강]

 

① 데이터베이스 시스템
② 문서 관리 시스템
③ 파일 처리 시스템
④ 분산 파일 시스템


문제 2번

다음 중 파일 처리 방식의 데이터 관리가 갖는 문제점으로 볼 수 없는 것은? [1강]


① 데이터의 독립
② 데이터의 확장
③ 데이터의 무결성 훼손
④ 동시 접근 이상


파일 처리 시스템(file processing system)

• 데이터베이스가 개발되기 전에 데이터 관리에 사용

• 업무별 애플리케이션이 개별 데이터파일에 저장·관리하는 시스템

ex. 수강 업무 ←→ 수강 파일, 성적 업무  ←→ 성적 파일, 학적 업무 ←→ 학적 파일

• 발생 가능한 문제

데이터 종속의 문제 : 저장된 데이터가 특정 H/W에서 또는 사용자 및 S/W만 사용될 수 있도록 제한되는 문제

데이터 중복의 문제 : 하나의 사항에 대한 데이터가 여러 파일에 중복되어 저장되는 문제 (일관성, 보안성, 경제성의 훼손)

무결성 훼손의 문제  : 데이터의 정확성이 보장되지 않고, 데이터의 값과 값에 대한 제약조건을 만족하지 않는 문제

동시 접근 이상 : 동일 데이터에 다수 사용자의 접근 허용 시 일관성이 훼손되는 문제


문제 3번

DBMS가 데이터베이스 자체 뿐만 아니라 데이터에 대한 정의나 설명에 대한 것까지 포함하고 있는 특성을 무엇이라 하는가? [1강]


프로그램 및 데이터의 추상화
자기 기술성
데이터 공유와 일관성
데이터의 안전성


데이터베이스의 특징

자기 기술성
(self-describing)
- 데이터와 데이터의 정의 및 설명(메타데이터)을 포함
- 메타데이터 : 데이터베이스에 속하는 각 파일의 구조, 각 데이터 항목의 타입과 저장 형식, 데이터의 다양한 제약조건 등
프로그램과 데이터의 독립성 및 추상화 - 프로그램-데이터 독립성(program-data independency) : 프로그램은 DBMS에 필요 데이터를 데이터의 의미만으로 요청할 수 있도록 데이터의 사용과 데이터 관리가 분리되는 특성
- 데이터 추상화(data abstraction) : 사용자에게 데이터에 대한 개념적인 표현을 제공하여 접근성을 향상
다중 뷰(view) 제공 - 각 사용자가 관심을 갖는 데이터베이스의 일부만을 표현할 수 있는 기능 제공
데이터 공유와 다수 사용자 트랜잭션 처리 - 단일 논리적인 작업을 수행하는 일련의 데이터베이스 명령 집합인 트랜잭션(transaction)과 동시성 제어(concurrency control)
- 다수의 데이터 조작 요청을 동시성 제어 기능을 통해 데이터의 일관성을 보장하면서 동시에 작업을 수행

문제 4번

데이터베이스 언어의 한 영역으로 데이터베이스에 의해 구조화된 데이터에 사용자가 접근 및 사용할 수 있도록 지원하는 언어를 무엇이라고 하는가? [1강, 4강]

 

① 데이터 조작 언어
② 데이터 제어 언어
③ 데이터 기술 언어
④ 데이터 정의 언어


데이터 정의 언어(DDL: Data Definition Language)

- 데이터베이스 내의 객체를 생성 및 삭제하고 그 구조를 조작하는 명령어의 집합

- 데이터가 준수해야 하는 제약조건을 기술

CREATE, ALTER, DROP문 등

 

데이터 조작 언어(DML: Data Manipulation Language)

- DDL에 의해 정의된 테이블에 데이터를 조작하는 명령어의 집합

- 사용자가 접근 및 사용할 수 있도록 지원하는 언어

- 데이터에 대한 CRUD(생성, 검색, 삭제, 수정) 명령을 포함

INSERT, UPDATE, DELETE, SELECT 문 등

 

데이터 제어 언어(DCL: Data Control Language)

- DBMS의 동작 설정 및 DBMS 접근에 대한 사용자의 권한을 관리하는 명령어의 집합

- 주로 데이터베이스 관리자(DBA)가 사용함.

GRANT, REVOKE, BEGIN 등


문제 5번

DBMS를 외부 , 개념 , 내부 스키마로 분리하고 각 단계 간 사상을 통해 구조화하는 방식을 무엇이라고 하는가? [1강]

① 3단계 구조
② 다계층 구조
③ 연속 구조
④ 단일 구조


모놀리스 방식 (X) → 3단계 구조 (O)

 

모놀리스 방식

- 소프트웨어 개발 아키텍처에서 사용되는 하나의 큰 애플리케이션으로 구성된 접근 방식

- 모놀리스는 전통적인 방식으로, 애플리케이션의 모든 구성 요소가 단일한 코드 베이스에 포함되어 있음.

- 데이터베이스, 사용자 인터페이스, 비즈니스 로직 등 모든 기능이 하나의 단일 애플리케이션으로 통합됨.

 

모놀리스 방식의 문제점

애플리케이션의 크기가 커지면 개발과 유지보수가 어려워짐.

새로운 기능 추가나 변경이 전체 애플리케이션에 영향을 미치는 경우가 많음.

확장성이 제한되어 대량의 트래픽 처리 등 고성능 요구 사항을 충족시키기 어려울 수 있음.

 

DBSM은 데이터 독립성과 데이터 추상화 확보를 위해 3단계 구조로 구성됨.

- 내부 단계 : 가장 낮은 추상화 단계로 내부 스키마에 의해 기술됨.

- 개념 단계 : 데이터베이스의 전체 구조를 추상화하는 단계로 개념 스키마를 통해 기술됨.

- 외부 단계 : 추상화의 최상위 단계로, 외부스키마(뷰)에 의해 기술됨.


문제 6번

클라이언트와 서버 사이에 데이터에 접근하는데 사용되는 비즈니스 규칙을 저장한 중간 계층을 삽입하여 운용하는 데이터베이스 시스템 아키텍처는? [1강]

① 2계층 클라이언트-서버 구조
② 3계층 클라이언트-서버 구조
③ 4계층 클라이언트-서버 구조
④ 중앙집중식 구조


중앙집중식 방식 : 단일 서버가 다수의 클라이언트 장치를 대신하여 작동
분산 시스템 방식 : 클라이언트-서버 데이터베이스 시스템, 자체적인 처리 능력 보유
· 2계층 클라이언트-서버 구조 : 클라이언트, 서버
· 3계층 클라이언트-서버 구조

- 클라이언트, 애플리케이션 서버, 데이터베이스 서버
- 클라이언트는 사용자 인터페이스를 담당
- 애플리케이션 서버가 DB 서버에 저장된 데이터 접근에 사용되는 비즈니스 규칙을 저장, 데이터 처리를 담당함


문제 7번

다음 중 데이터베이스 모델링 단계가 순서대로 나열된 것은? [2강]
개념 - 요구분석 - 논리 - 물리
개념 - 논리 - 물리 - 요구 분석
③ 요구 분석 - 개념 - 논리 - 물리
④ 요구 분석 - 물리 - 논리 - 개념


개념적
데이터
모델링
데이터에 초점을 맞추어 개별적 데이터의 특징을 분리
요구사항의 해석 오류를 방지
를 위해 추상화 기법을 사용

추상화 기법 : 실세계의 데이터들을 개념적으로 일반화시켜 데이터 타입, 속성, 관계, 제약조건들을 이끌어 내는 과정
개체와 개체 간의 관계를 통해 표현하는 ER 모델이 대표적임.
논리적
데이터
모델링
특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
일반적으로 관계형 모델을 사용함.
→ 데이터 정의 언어(DDL)로 기술된 개념 스키마 생성
물리적
데이터
모델링
논리적 데이터 모델을 특정 DBMS에 최적화된 물리적 구조로 변환하는 과정
데이터베이스 파일의 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을 결정하는 과정
→ 내부 스키마 생성

문제 8번

사용자 요구사항 분석 과정에서 데이터베이스를 구축하기 위한 목표와 조사 범위를 결정하고 필요한 자료를 수집하는 등을 수행하는 세부단계는? [2강]
물리적 데이터 모델링
사용자 요구사항 도출
사용자 요구사항 분석
사용자 요구사항 기록


사용자 요구사항 분석

[ 제안요청서(RFP) ] → 요구사항 도출 → [ 요구사항 명세서 ] → 요구사항 분석 → [ 요구사항 정의서 ] → 요구사항 기록

요구사항 도출 - 구축대상, 프로젝트 목표, 범위를 기준으로 조사범위를 결정
- 업무 관계자 인터뷰
외부자료 수집 및 분석
요구사항 분석 - 도출된 요구사항의 명확성, 완전성, 모호성 검증
- 불완전한 부분이 존재할 경우 요구사항 도출단계 재수행
요구사항을 분류하여 통합 또는 분리
요구사항 기록 - 요구사항 목록 정의 및 관리자 승인
- 정리된 요구사항을 형식에 맞춰 문서화
- 프로젝트 종료 때까지 반영 여부 지속적 관리

문제 9번

ER모델의 구성요소 중 실세계에 존재하는 다른 모든 객체와 구별되는 유ㆍ무형의 대상의 모임을 무엇이라고 하는가? [2강]
관계 집합
속성
개체
개체 집합


 개체(entity) : 실세계에 존재하는 다른 객체와 구별되는 유무형의 사물로, 개체를 설명하는 여러 속성들로 구성됨.

 개체 집합(entity set) : 같은 속성을 공유하는 개체들의 모임

관계 집합(relation set) : 개체 집합 간의 전체적 연결 관계

• 속성(attribute) : 개체 집합에 속한 개체를 구체적으로 설명하는 특성


문제 10번

다음은 무엇에 대한 설명인가? [2강]

개체 집합의 각 개체마다 서로 다른 값을 갖는 속성을 뜻한다 .
즉 , 어떤 개체의 이 값은 각각의 개체들을 서로 구별하는 데 사용되는 개체 집합에서 유일한 값이다. 

널 속성
유도 속성
키 속성
참가 제약조건


참가 제약조건 : 관계에 참여하는 개체 집합의 범위, 전체적 참가, 부분적 참가
• 키 속성 : 각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합
• 널(null) 속성 : 해당 속성에 대한 값이 없음을 의미함.
• 유도 속성(derived attribute)
- 다른 속성의 값으로부터 값이 유추될 수 있는 속성
- 괄호 '( )'를 사용하여 표현함.
ex. 나이 - 생일에서 연산할 수 있는 정보


문제 11번

다음 요구사항에 대한 ER 모델링한 결과로 올바르게 표현된 학생 개체는? [2강]

학생은 이름 , 학번 , 학과명 , 주소로 구성된다 .
학번은 입학년도 , 학과코드 및 일련번호로 이루어지고, 학과명은 학과코드를 통해 알 수 있다.


이름, 학번, 학과명, 주소 → 컬럼 4개

학번은 입학년도 , 학과코드 및 일련번호로 이루어지고, → 학번이 복합속성이므로 나머지 것은 들여쓰기됨.

학과명(유도속성)은 학과코드(저장속성)를 통해 알 수 있다. → 학과명이 유도속성이므로 '학과명()'


문제 12번

다음 요구사항을 참조하여 물음에 답하시오.

전산화 시스템을 도입하는 A 은행에서는 고객은 이름, 고객번호, 주소, 전화번호, 신용도 값으로 구성된다. 각각의 고객은 고객번호로 구분되며 한 고객에 대해 여러 전화번호를 기록할 수 있다. 고객이 소유하는 계좌는 계좌번호와 잔액으로 구성된다. 한 고객은 여러 개의 계좌를 소유할 수 있으며 반면 한 계좌는 단 한 명의 고객에만 소유된다. 계좌를 소유하지 않는 고객은 있지만 모든 계좌는 반드시 고객에게 소유된다.

 

위 요구사항에 대한 ER 모델링 결과 고객 개체 집합을 올바르게 표현한 것은?  [2강]


고객과 계좌 개체 집합 사이의 소유 관계 집합에 대해 사상수를 올바르게 표현한 것은?  [2강]

단, 개체집합은 개체 집합 이름만 표현한다.


고객은 이름, 고객번호, 주소, 전화번호, 신용도 값으로 구성된다. 
→ 컬럼 5개

각각의 고객은 고객번호로 구분되며 
→ 고객번호가 키 속성, 고객(일)과 전화번호(다)의 사상수는 일대다

→ 고객 쪽에 화살표 O, 전화번호 쪽은 화살표 X

 

한 고객에 대해 여러 전화번호를 기록할 수 있다. 

→ 전화번호는 여러 개의 값을 가질 수 있어서 다중값 속성

{전화번호}


고객이 소유하는 계좌는 계좌번호와 잔액으로 구성된다. 
→ 계좌는 복합속성이므로 계좌번호, 잔액은 들여쓰기

한 고객은 여러 개의 계좌를 소유할 수 있으며 반면 한 계좌는 단 한 명의 고객에만 소유된다. 
→ 고객(일)과 계좌(다)의 사상수는 일대다

→ 고객 쪽에 화살표 O, 계좌 쪽은 화살표 X

계좌를 소유하지 않는 고객은 있지만 모든 계좌는 반드시 고객에게 소유된다.
→ 고객은 계좌에 부분참가(실선), 계좌는 고객에 전체참가(이중실선)


문제 13번

아래의 릴레이션에서 빈칸에 들어가야 하는 용어로 올바르지 않는 것은? [3강]

 스키마
② 차수
 레코드
인스턴스


① 스키마 : 컬럼, 각 컬럼의 순서 및 도메인, 릴레이션의 이름
② 속성, 컬럼, 필드 : 컬럼에 해당하는 값의 집합
③ 레코드, 행, 투플 : 각 컬럼의 순서에 맞게 나열된 값의 집합 
④ 인스턴스 : 특정 시점에서의 릴레이션 스키마에 맞춰서 레코드가 들어간 상태 (시간에 따라 변함)


문제 14번

다음은 릴레이션의 어떤 특징에 대한 설명인가? [3강]

한 릴레이션을 구성하는 컬럼 사이에는 순서가 없고 이름과 값의 쌍으로 구성된다.

① 레코드의 유일성
② 레코드의 무순서성
③ 컬럼의 무순서성
컬럼값의 원자성


릴레이션의 특징

: 레코드의 유일성, 레코드의 무순서성, 컬럼의 무순서성, 컬럼값의 원자성

레코드의 유일성 하나의 릴레이션에는 중복되는 레코드가 존재할 수 없음.
하나의 키 값으로 하나의 레코드를 유일하게 식별함.
레코드의 무순서성 한 릴레이션에 포함된 레코드는 순서가 정해져 있지 않음.
컬럼의 무순서성 한 릴레이션을 구성하는 컬럼 사이에는 순서가 없으며, 이름과 값의 쌍으로 구성됨.
컬럼값의 원자성 컬럼은 여러 의미를 갖는 값으로 분해가 불가능하며 원자적(atomic)임.

문제 15번

다음은 무엇에 대한 설명인가? [3강]

두 개의 릴레이션 사이에 명시되는 제약조건으로 한 릴레이션에 있는 레코드가 다른 릴레이션에 있는 레코드를 참조하려면 반드시 존재하는 릴레이션만 참조해야하는 제약조건을 명시한다.

① 영역 제약조건
② 키 제약조건
 개체 무결성 제약조건
 참조 무결성 제약조건


관계형 모델의 제약조건

: 영역 제약조건, 키 제약조건, 참조 무결성 조건, 개체 무결성 제약조건

영역 제약 조건
(domain constraints)
컬럼에 정의된 영역(domain)에 속한 값으로만 컬럼값이 결정, 원자적(atomic)이여야 함.
ex. 전화번호에는 문자가 들어갈 수 없다, 학과에 컴퓨터과학과(O), 컴퓨터과학과/생활과학과(X)
키 제약 조건
(key constraints)
키는 레코드를 고유하게 구별하는 값으로 구성
적어도 하나의 키가 모든 레코드를 고유하게 식별할 수 있어야 함
개체 무결성 제약조건
(entity integrity constraints)
어떠한 기본키 값도 널(null)이 될 수 없음
참조 무결성 제약조건
(referential integrity constraints)
외래키가 반드시 존재하는 레코드의 기본키만 참조 가능

문제 16번

다음의 ER 다이어그램을 관계형 모델로 올바르게 변환한 것은? [3강] 


고객이 일, 계좌가 다인 관계
한 명의 고객은 여러 개의 계좌 개설 가능
하나의 계좌는 반드시 한 명의 고객에게 의해 개설됨.

일대일 관계 : 외래키가 어디에 있어도 상관없음.
일대다 관계 : '다'쪽에 외래키를 만들어 '일'쪽의 기본키와 연결
→ 고객(일)의 PK와 계좌(다)의 FK가 '고객번호'임.

다대다 관계 : 새로운 릴레이션 생성하여 각각 FK로 연결함.


문제 17번

아래의 스키마를 참조하여 다음 물음에 답하시오.  [3강]

“강좌명이 '요가’인 강좌의 강좌번호, 강좌명, 강사번호를 출력하시오"에 대한 관계 대수 연산식으로 올바른 것은?


강좌가 릴레이션 → (강좌)

강좌명이 '요가'인 → 조건에 맞는 레코드를 출력하므로 셀렉트 연산

※ 프로젝트 연산자는 특정 컬럼만 출력하는 것임

셀렉트 연산 주어진 릴레이션에서 조건을 만족하는 레코드를 갖는 릴레이션을 생성
프로젝트 연산 기술된 컬럼만 갖는 릴레이션으로 재구성
<컬럼리스트> : A₁, A₂, ..., Aₙ와 같이 R 에 존재하는 컬럼을 콤마로 분리하여 기술

 

“‘ 홍길동' 강사의 종목을 출력하시오'에 대한 관계 대수 연산식은?"


1
강사 → 강사 릴레이션
종목 → 종목 릴레이션

서로 다른 릴레이션에 있는 것을 출력해야하니까 조인 연산자로 결합을 해야함.

두 릴레이션을 강사번호가 같은 것끼리 조인연산 시행
2
'이름이 홍길동'인 조건에 맞는 레코드를 출력
셀렉트 연산
3
홍길동 강사와 종목의 컬럼이 모두 나열되는데,
(조인 후 컬럼 5개)
'종목' 속성(컬럼)만 출력해야 하므로
프로젝트 연산

문제 18번

테이블 스키마 정의, 테이블 삭제, 테이블 스키마 변경 및 제약조건을 명시하는 기능을 하는 SQL 언어 영역을 무엇이라고 하는가? [1강, 4강]

① 데이터 제어 언어
② 트랜잭션 제어 언어
③ 데이터 조작 언어
④ 데이터 정의 언어


데이터 정의 언어(DDL)

데이터베이스 객체를 생성, 삭제 또는 구조를 수정하는 명령어의 집합

데이터베이스 객체의 종류

· 데이터 저장 - 테이블, 인덱스, 뷰

· 데이터 조작 - 트리거, 프로시저, 함수 등

데이터 정의 명렁어의 종류

· CREATE : 객체 생성

· ALTER : 객체 수정

· DROP : 객체 삭제


문제 19번

다음 중 데이터베이스 언어의 영역이 나머지 셋과 다른 SQL 명령어는 무엇인가? [4강]

① SELECT
② UPDATE 
③ INSERT
④ DROP


①, ②, ③ → DML(데이터 조작 언어: INSERT, UPDATE, DELETE, SELECT)
④ →  DDL (데이터 정의 언어: CREATE, ALTER, DROP)


문제 20번

다음 중 테이블의 컬럼을 삭제하는 데 사용하는 SQL 명령어는? [5강]

① ALTER
② UPDATE 
③ DROP
④ DELETE


ALTER : 스키마, 테이블 수정

ALTER 문은 데이터베이스 테이블의 구조를 변경하는 데 사용되는 SQL 명령어

ALTER 문을 사용하여 컬럼을 추가, 수정, 삭제

컬럼을 삭제하기 위해서는 ALTER TABLE 문을 사용하고, 해당 컬럼의 이름과 함께 DROP COLUMN 절


UPDATE : 테이블에서 조건을 만족하는 특정 레코드의 컬럼값을 수정
DROP : 스키마, 테이블, 인덱스, 프로시저, 뷰 삭제
DELETE : 테이블에 조건을 만족하는 특정 레코드를 삭제


문제 21번

“교수의 교수번호 , 소속학과 , 교수이름, 입사일을 입사일의 내림차순으로 정렬하여 출력하시오 를 수행하기 위한 SQL 문은? [5강]

 

 SELECT 교수번호 , 소속학과 , 교수이름 , 입사일 FROM 교수 ORDER BY 입사일 DESC
SELECT 교수번호 , 소속학과 , 교수이름 , 입사일 FROM 교수 ORDER BY 입사일 ASC
SELECT 교수번호 , 소속학과 , 교수이름 , 입사일 FROM 교수 ORDER BY 입사일
SELECT 교수번호 , 소속학과 , 교수이름 , 입사일 FROM 교수 GROUP BY 입사일


ASC : 오름차순 (ORDER BY 컬럼만 쓰면 자동으로 오름차순)

DESC : 내림차순


문제 22번

다음 중 정규화에 대한 설명으로 올바르지 않은 것은? [7강]

데이터가 삽입될 떄 릴레이션 재구성의 필요성을 줄인다.
데이터의 중복을 제거하여 릴레이션의 효율성을 향상시킨다.
삽입, 갱신 , 삭제 이상 (anomaly) 현상을 제거한다.
릴레이션 간 공통부분을 도출하고 유사 릴레이션을 통합하여 스키마의 구조를 간략화 한다.


역정규화에 가까움.

 

정규화(Normalization)

특정 정규형의 조건을 만족하도록 릴레이션과 속성을 재구성하는 과정

정규화는 정규형을 만들어내기 위한 것

· 데이터베이스 내 모든 릴레이션을 효과적으로 표현

· 보다 간단한 관계 연산에 기초하여 검색 알고리즘을 효과적으로 작성할 수 있도록 지원

· 바람직하지 않은 삽입, 수정, 삭제 등의 이상 발생 방지

· 새로운 형태의 데이터가 삽입될 때 릴레이션 재구성의 필요성을 축소


문제 23번

다음은 무엇에 대한 설명인가? [7강]

이것은 릴레이션 인스턴스를 분석하여 속성들 간의 연관관계를 표현한 것으로 주어진 릴레이션 인스턴스에서 서로 다른 두 레코드와 속성 집합 X 와 Y 에 대해 두 레코드의 X 속성값이 같을 때 Y 의 속성값이 같으면 성립하는 특성을 말한다.

함수적 종속성

함수적 독립성

다중치 종속성

조인 종속성


함수적 종속성 기준으로 구조화 → 제2정규형. 제3정규형, BC정규형

다중치 종속성 기준으로 구조화 → 제4정규형 

 조인 종속성에 기반하여 구조화 → 제5정규형


문제 24번

아래의 도크관리 릴레이션에 포함된 함수적 종속성이라고 할 수 없는 것은? [7강]

 목적 → 담당도선사
{도크번호 , 입항시간} → 목적
 {도크번호 , 입항시간→ 출항시간
출항시간 → 목적


함수적 종속성 판별 기준 : 같을 때 같아야 함!

출상시간의 레코드 중 12:45로 같은 속성값의 레코드끼리 비교했을 때 담당도선사의 속성값이 '현동석', '오인영'으로 다름.


문제 25번

제약조건이 강한 순으로 정규형 간의 관계가 올바른 것은? [7강]

 

 제 5 정규형 < 제 4 정규형 < 제 3 정규형 < 제 2 정규형 < BC 정규형
BC 정규형 < 제 5 정규형 < 제 4 정규형 < 제 3 정규형 < 제 2 정규형
제 1 정규형 < 제 2 정규형 < 제 3 정규형 < 제 4 정규형 < 제 5 정규형
BC정규형 < 제 1 정규형 < 제 3 정규형 < 제 4 정규형 < 제 5 정규형


 제 1 정규형 < 제 2 정규형 < 제 3 정규형 < BC정규형 < 제 4 정규형 < 제 5 정규형

 

제1정규형 : 모든 속성이 원자값을 가짐 (원자성 유지)
제2정규형 : 기본키가 아닌 속성들이 기본키에 대해 완전 종속임(기본키에 대한 부분적 종속 제거)
제3정규형 : 기본키가 아닌 속성들이 어떤 키에도 이행적으로 종속하지 않음(이행적 종속 제거)
• BC정규형(보이스-코드) : X → A 형태의 모든 함수적 종속성에 대해 X(결정자)가 R의 수퍼키이면 만족


문제 26번

다음 릴레이션의 정규형은 무엇인가? [7강]

① 제2정규형
BC정규형
③ 제3정규형
 제5정규형


5정규형은 수업시간에 다루지 않았으니 PASS

낮은 단계의 정규형부터 하나씩 따져보면 됨.

 

2정규형 : 기본키가 부분 종속을 하지 않아야 함. (기본키에서 나가는 화살표가 부분 X, 기본키 전체 O)

도크번호에서만, 입항시간에서만 나가는 화살표 없음.

기본키인 {도크번호, 입항시간}에 부분 종속이 없음.

→ 2정규형 만족 O

 

3정규형 : 이행적 종속이 없어야 함. (A → B, B → C이면 A → C)

{도크번호, 입항시간} → 목적 → 담당도사

→ 3정규형 만족 X

 

BC정규형 : 결정자는 수퍼키만

→ 목적이 결정자인데, 수퍼키가 아님.

→ BC정규형 만족 X

 

728x90