Q1. DBMS 사용 이전의 데이터 관리 방식으로 운영체제의 지원으로 여러 파일에 나누어 데이터를 영구 저장하고 운영하는 시스템을 무엇이라고 하는가?
A1. 파일 처리 시스템
Q2. 다음 중 파일 처리 방식의 데이터 관리가 갖는 문제점으로 볼 수 없는 것은?
A2. 데이터의 독립
파일 처리 시스템(file processing system)
- 데이터베이스 개발되기 전에 데이터 관리에 사용
- 업무 별 애플리케이션이 개별 데이터를 데이터 파일에 저장, 관리하는 시스템
- 발생 가능한 문제
- 데이터 종속의 문제 (저장된 데이터가 특정 H/W에서 또는 사용자 및 S/W만 사용될 수 있도록 제한되는 문제.)
- 데이터 중복의 문제
- 무결성 훼손의 문제
- 동시 접근의 문제
Q3. DBMS가 데이터베이스 자체 뿐만 아니라 데이터에 대한 정의나 설명에 대한 것까지 포함하고 있는 특성을 무엇이라 하는가?
A3. 자기 기술성
데이터베이스의 특징
- 데이터베이스 시스템의 자기 기술성
- 데이터와 데이터의 정의 및 설명(메타데이터)을 포함
- 프로그램과 데이터의 격리 및 추상화
- 사용자에게 데이터에 대한 개념적인 표현을 제공하여 접근성 향상
- 다중 뷰 제공
- 각 사용자가 관심을 갖는 데이터베이스의 일부만을 표현할 수 있는 기능 제공
- 데이터 공유와 다수 사용자 트랜잭션 처리
- 다수의 데이터 조작 요청을 동시성 제어 기능을 통해 데이터의 일관성을 보관하면서 동시에 작업을 수행
Q4. 데이터베이스 언어의 한 영역으로 데이터베이스에 의해 구조화된 데이터에 사용자가 접근 및 사용할 수 있도록 지원하는 언어를 무엇이라고 하는가?
A4. 데이터 조작 언어
데이터 정의 언어(DDL: Data Definition Language)
데이터 조작 언어(DML: Data Manipulation Language)
Q5. DBMS를 외부, 개념, 내부 스키마로 분리하고 각 단계 간 사상을 통해 구조화하는 방식을 무엇이라고 하는가?
A5. 3단계 구조
Q6. 클라이언트와 서버 사이에 데이터에 접근하는데 사용되는 비즈니스 규칙을 저장한 중간 계층을 삽입하여 운용하는 데이터베이스 시스템 아키텍처는?
A6. 3계층 클라이언트-서버 구조
분산 시스템 방식 (<->중앙집중식 방식)
- 클라이언트 장치의 성능 향상으로 자체적인 처리 능력 보유
- 클라이언트-서버 데이터베이스 시스템
- 애플리케이션 프로그램의 부하를 분산
- 소프트웨어의 유지보수 비용을 절감 및 이식성 증가.
Q7. 다음 중 데이터베이스 모델링 단계가 순서대로 나열된 것은?
A7. 요구분석 - 개념 - 논리 - 물리
DB모델링 단계
Q8.사용자 요구사항 분석 과정에서 데이터베이스를 구축하기 위한 목표와 조서 범위를 결정하고 필요한 자료를 수집하는 등을 수행하는 세부 단계는
A8. 사용자 요구사항 도출
사용자 요구사항 분석 과정
1. 요구사항 도출 (자료조사)
- 구축대상, 프로젝트 목표, 범위를 기준으로 조사범위를 결정
- 업무관계자 인터뷰
- 외부자료 수집 및 분석
2. 요구사항 분석 (자료조사 기반 분석)
- 도출된 요구사항의 명확성, 완전성, 모호성 검증
- 불완전한 부분이 존재할 경우 요구사항 도출단계 재수행
- 요구사항을 분류하여 통합 또는 분리
3. 요구사항 기록 (분석한거 기록)
- 요구사항 목록 정리 및 관리자의 승은
- 정리된 요구사항을 형식에 맞춰 문서화
- 프로젝트 종료 때까지 반영 여부 지속적 관리
Q9. ER모델의 구성요소 중 실세계에 존재하는 다른 모든 객체와 구별되는 유,무형의 대상의 모임을 무엇이라고 하는가?
A9. 개체집합
개체집합
- 개체(entity)
- 실세계에 존재하는 다른 객체와 구별되는 유무형의 사물
- 개체를 설명하는 여러 속성들로 구성
- 개체집합(entity set)
- 같은 속성을 공유하는 개체들의 모임
Q10. 다음은 무엇에 대한 설명인가?
개체 집합의 각 개체마다 서로 다른 값을 갖는 속성을 뜻한다. 즉, 어떤 개체의 이 값은 각각의 개체들을 서로 구별하는데 사용되는 개체 집합에서 유일한 값이다
A10. 키 속성
키(KEY) 속성 (밑줄을 그어 표현)
각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합
- 개체를 찾는 역할, 관계 집합의 특정 관계를 찾는 역할.
Q11. 다음 요구사항에 대한 ER 모델링한 결과로 올바르게 표현된 학생 개체는?
학생은 이름, 학번, 학과명, 주소로 구성된다. 학번은 입학년도, 학과코드 및 일련번호로 이루어지고, 학과명은 학과 코드를 통해 알 수 있다.
A11.
학과명은 학과 코드를 통해 알 수 있으므로, 다른 속성의 값으로부터 값이 유추될 수 있는 유도 속성이다. 유도 속성은 괄호()를 통해 표현할 수 있다.
<요구사항>
전산화 시스템을 도입하는 A은행에서는 고객은 이름, 고객번호, 주소, 전화번호, 신용도 값으로 구성된다. 각각의 고객은 고객번호로 구분되며, 한 고객에 대해 여러 전화번호를 기록할 수 있다. 고객이 소유하는 계좌는 계좌번호와 잔액으로 구성된다. 한 고객은 여러 개의 계좌를 소유할 수 있으며, 반면 한 계좌는 단 한 명의 고객에만 소유된다. 계좌를 소유하지 않는 고객은 있지만, 모든 계좌는 반드시 고객에게 소유된다.
Q12-1. 요구사항에 대한 ER모델링 결과 고객 객체 집합을 올바르게 표현한 것은?
A12-1.
고객번호: 키 속성
전화번호: 다중값
다중값속성: 하나의 개체에 대해 여러 개의 값을 갖는 속성. {}로 표현한다.
Q12-2. 고객과 계좌 개체 집합 사이의 소유 관계 집합에 대해 사상수를 올바르게 표현한 것은? (단, 개체 집합은 개체 집합 이름만 표현한다.)
A12-2.
=> 사상수(하나의 개체가 다른 집합과 맺을 수 있는 개체 집합의 수)에 관한 질문. 화살표를 통해 표현한다. 1:N의 관계로, 화살표가 1인 고객쪽을 향해야 한다.
=> 참가 제약조건에 관한 요구사항. 부분적 참가는 단일선으로, 전체적참가는 이중선으로 표현한다.
Q13. 아래의 릴레이션에서 빈칸에 들어가야 하는 용어로 올바르지 않은 것은?
A13.
1. 스키마
2. 차수 필드, 컬럼.
3. 레코드
4. 인스턴스
차수는 뭘까? 차수는 하나의 릴레이션에 존재하는 컬럼들의 갯수. 여기서는 7이 된다.
Q14. 다음은 릴레이션의 어떤 특징에 대한 설명인가?
한 릴레이션을 구성하는 컬럼 사이에는 순서가 없고 이름과 값의 쌍으로 구성된다.
A14. 컬럼의 무순서성
릴레이션의 특징
- 레코드의 유일성: 중복된 레코드 존재 불가
- 레코드의 무순서성: 레코드 순서는 의미가 없음.
- 컬럼의 무순서성: 컬럼은 순서가 없고, 이름과 값의 쌍
- 컬럼값의 원자성: 모든 값들은 나눌 수 없는, 단 하나의 의미.
Q15. 다음은 무엇에 대한 설명인가?
두 개의 릴레이션 사이의 명시되는 제약조건으로 한 릴레이션에 있는 레코드가 다른 릴레이션에 있는 레코드를 참조하려면 반드시 존재하는 릴레이션만 참조해야 하는 제약조건을 명시한다.
관계형 모델의 제약조건
1. 영역 제약 조건 : 컬럼에 정의된 영역(DOMAIN)에 속한 값으로만 컬럼값이 결정
2. 키 제약조건: 키는 레코드를 고유하게 구별하는 값으로 구성
3. 개체 무결성 제약조건: 어떤 기본키 값도 널이 될 수 없음.
4. 참조 무결성 제약조건: 반드시 존재하는 레코드의 기본키만 참조 가능.
**Q16. 다음의 ER다이어그램을 관계형 모델로 올바르게 변환한 것은?
A16.
일대다 혹은 다대일 관계를 관계형 모델로 변환 시, '일'쪽의 기본키를 '다'쪽의 릴레이션에서 외래키로 참조해야 한다.
Q17. 아래의 스키마를 참조하여 다음 물음에 답하시오.
Q17-1. 강좌명이 '요가'인 강좌의 강좌번호, 강좌명, 강사번호를 출력하시오."에 대한 관계대수 연산식으로 올바른 것은?
A17-1.
셀렉트 연산: σ조건(릴레이션)
Q17-2. "'홍길동'강사의 종목을 출력하시오."에 대한 관계 대수 연산식은?
A17-2.
프로젝트 연산으로 종목만 추출{ 셀렉트 홍길동 [ 조인(강사*종목) ] }
Q18. 테이블 스키마 정의, 테이블 삭제 테이블 스키마 변경 및 제약조건을 명시하는 기능을 하는 SQL 언어 영역을 무엇이라고 하는가?
A18. 데이터 "정의" 언어(DDL)
Q19. 다음 중 데이터베이스 언어의 영역이 나머지 셋과 다른 SQL명령어는 무엇인가?
1 SELECT
2 UPDATE
3 INSERT
4 DROP
=> 데이터 정의어
Q20. 다음 중 테이블의 컬럼을 삭제하는데 사용하는 SQL 명령어는?
A20. ALTER
ALTER : 새로운 컬럼을 추가, 삭제 및 수정하는 등의 테이블 구조를 변경
UPDATE: 테이블에서 조건을 만족하는 특정 레코드의 컬럼값을 수정.
DROP: 존재하는 테이블을 스키마에서 삭제.
DELETE: 테이블에서 조건을 만족하는 특정 레코드를 삭제.
Q21. "교수의 교수번호, 소속학과, 교수이름, 입사일을 입사일의 내림차순으로 정렬하여 출력하시오."를 수행하기 위한 SQL문은?
A21.
Q22. 다음 중 정규화에 대한 설명으로 올바르지 않은 것은?
A22. 릴레이션 간 공통부분을 도출하고 유사 릴레이션을 통합하여 스키마의 구조를 간략화한다.
정규화는 통합하지 않는다. 정규화는 분리한다. 통합은 역정규화의 과정
Q23. 다음은 무엇에 대한 설명인가?
이것은 릴레이션 인스턴스를 분석하여 속성들 간의 연관관계를 푠혀나 것으로, 주어진 릴레이션 인스턴스에서 서로 다른 두 레코드와 속성 집합 X와 Y에 대해, 두 레코드의 X속성값이 같을 때, Y의 속성값이 같으면 성립하는 특성을 말한다.
A23. 함수적 종속성
Q24. 아래의 도크관리 릴레이션에 포함된 함수적 종속성이라고 할 수 없는 것은?
A24. 출항시간 -> 목적 (출항시각 같은게 있는데 목적이 다름. 종속관계 아님!)
같을때 같은게 한개라도 있으면 함수적 종속성이 성립하는 것!
같을때 같으면 되니까, 같은게 없으면, 같든지 말든지 상관없이 무조건 함수적 종속성이 성립하는 것!
Q25. 제약조건이 강한 순으로 정규형간의 관계가 올바른 것은?
A25. 제1정규형 < 제2정규형 < 제3정규형 < 제4정규형 < 제5정규형
Q26. 다음 릴레이션의 정규형은 무엇인가?
A26. 제2정규형
제 2정규형: 모든 일반속성이 기본키에 완전히 종속되어야 한다.
=>성립
제3정규형: 이행적 종속성이 없어야 한다.
=> 불성립. 따라서 제2정규형까지만 성립되어 있음. 따라서 답은 제2정규형!