문제지(B형)와 동일한지를 체크하기 위해 1번 문제만 표시하였고

자세한 정답풀이보다는 최대한 쉽게 이해할 수 있게 설명하였습니다.

 

 

1. 물리적 저장 장치의 입장에서 본 데이터베이스 구조로서 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타내는 스키마는?

가. Relational schema 나. External schema

다. Conceptual schema라. Internal schema

3단계 스키마 (단골 출제)

- 외부스키마: 사용자나 응용프로그래머가 접근할 수 있는 데이터베이스 구조

- 내부스키마: 물리적 저장장치의 관점에서 본 데이터 베이스 구조

- 개념스키마: 범 기관적 입장에서 본 데이터베이스 정의, 통합 데이터 구조,

보안정책, 무결성 규칙을 명세

 

 

아래 그림처럼 물리적 저장장치 (예를 들어 하드디스크) 입장에서 내부 레코드의 물리적 순서를 나타내는 것이기 때문에 Internal schema로 생각하면 이해하기 쉽습니다.

 

 

 

 

 

 

2. 스키마 (단골 출제)

데이터베이스의 구조와 제약조건을 설명하는 메타 데이터의의 집합이고

데이터 개체, 속성, 관계, 제약조건을 정의합니다.

 

데이터베이스의 구조(개체, 속성, 관계)에 대한 정의와 이에 대한 제약조건 등을 기술한 것으로 데이터 사전에 저장

 

 

 

 

3. 인서션 (insertion, 삽입)정렬 기법에서 오름차순 정렬

 

문제: 5, 4, 3, 2, 1

1회전: 4, 5, 3, 2, 1

(2번째의 4가 앞에서부터 비교하게 되는데 5보다 작기 때문에 맨 앞에 간다.)

2회전: 3, 4, 5, 2, 1

(3번째의 3이 앞에서부터 비교하게 되는데 4보다 작기 때문에 맨 앞에 간다.)

3회전: 2, 3, 4, 5, 1

(4번째의 2이 앞에서부터 비교하게 되는데 3보다 작기 때문에 맨 앞에 간다.)

4회전: 1, 2, 3, 4, 5

(5번째의 1이 앞에서부터 비교하게 되는데 2보다 작기 때문에 맨 앞에 간다.)

 

 

 

 

 

4. 물리적 설계 (가끔)

 

개념적 설계

- 개념스키마 모델링: 데이터의 조작과 표현을 중심으로 한 데이터 중심 설계

- 트랜잭션 모델링: 응용을 위한 데이터 처리에 주안점을 둔 처리중심 설계

 

논리적 설계

- 개념적 설계에서 만들어진 정보구조로부터 특정목표 DBMS가 처리할 수 있는 스키마를 생성

 

물리적 설계

- 논리적 데이터 베이스 구조로부터 구현 가능한 물리적 데이터베이스를 설계

- 고려사항: 응답시간, 저장공간의 효율화, 트랜잭션 처리

 

 

 

 

5. 정규화 (가끔)

 

5번 문제는 보기만 잘 읽으면 쉬운 문제입니다.

다. 삽입 이상, 삭제 이상, 갱신 이상의 발생을 도모한다 => 해결해야 합니다.

 

어떠한 릴레이션이라도 데이터 베이스 내에서 표현 가능하게 만들고,

데이터 삽입 시 릴레이션을 재구성할 필요성을 줄이고,

효과적인 검색 알고리즘을 생성할 수 있어야 한다

 

 

 

 

6. 정규화 과정 (3NF와 BCNF 는 자주 나오네요)

 

1NF: 모든 도메인이 원자 값으로 된 릴레이션

2NF: 1NF 이면서, 키에 속하지 않는 모든 애트리뷰트(속성)들이 기본 키에 함수 종속

3NF: 2NF 이면서, 키가 아닌 모든 속성들은 기본 키에 이행적으로 함수 종속되지 않음

BCNF: 3NF 이면서, 릴레이션 R의 모든 결정자가 후보 키임 (즉 후보키가 아닌 것을 제거)

 

 

 

 

7. 릴레이션 특징 (가끔)

 

- 모든 튜플은 서로 다른 값을 가진다.

- 속성은 순서가 의미가 없습니다. (주소, 이름, 나이, 성별 등 순서가 의미가 있나요?)

- DB에서는 순서가 중요치 않습니다. (정렬 기준에 따라 수시로 변경됩니다.)

- 모든 속성을 여러 개를 가질 수 있습니다.

 

 

 

 

 

8. 순차파일 (아주 가끔)

 

순차 파일은 일(검색, 갱신 등)을 순서대로 하는 것을 말합니다. 마지막 파일을 접근하려면 앞의 파일을 다 거친 후 액세스가 가능하게 됩니다. 많은 시간이 소요되며 파일 탐색에 매우 비효율적입니다.

 

그림을 보면 6번 파일을 접근하려면 1~5번까지 다 지나간 후 6번을 수행해야 합니다. 파일이 100만개가 있다면, 마지막 파일 액세스 하는데 하루 종일 걸릴 겁니다.

 

탐색 방법의 종류

- 순차탐색

- 이진 탐색

- 피보나치 탐색

- 보간 탐색

- 블록 탐색

- 트리 탐색

 

 

 

 

 

 

9. 스택 (Stack) ( 가끔)

 

스택은 입구를 하나 가지고 있는 가상의 장치입니다.

(눈에 보이지는 않고 프로그램으로 구성됩니다.)

 

먼저 들어간 데이터가 나중에 나오고 (FILO), 나중에 들어간 데이터가 먼저 나옵니다.(LIFO)

아래 그림에서 83을 넣게 되면, 83이 가장 나중에 들어갔는데 가장 먼저 나옵니다.

마지막에 넣은 데이터의 위치만 알면 됩니다. (Stack Pointer 라고 합니다.)

FIFO => First In Last Out

 

 

 

참고로 큐(Queue) 라는 놈이 있는데 이 놈은 먼저 들어간 데이터가 먼저 나옵니다.(FIFO)

아래 그림에서 46, 125, 8, 22, 17 순으로 들어갔고, 나오는 순서도 동일합니다.

 

데이터가 마지막으로 들어온 위치(Tail)와 나간 위치(Head)를 모두 알아야 합니다.

 

 

 

 

10. 논리적 데이터 모델 (처음 출제?)

 

관계 데이터 모델

- 관계 스키마

 

네트워크 데이터 모델

- CODASYL DBTG (Conference on Data Systems Language, Data Base Task Group)에서 데이터 모델을 공식적으로 정의

 

계층 데이터 모델

- 계층 데이터 구조

 

 

+ Recent posts