먼지 쌓인 키보드

[정보처리기사 필기] 데이터베이스 정리 본문

정보처리기사

[정보처리기사 필기] 데이터베이스 정리

Under_Desk 2019. 2. 26. 13:39
반응형

===========데이터베이스===========

· 데이터베이스의 정의(*중요*)

(통합된, 저장된, 운영, 공용 데이터)

- 통합된 데이터(Integrated Date)

: 자료의 중복을 배제한 데이터의 모임

- 저장된 데이터(Stored Date)

: 접근할 수 있는 저장 매체에 저장된 자료

- 운영 데이터(Operational Date)

: 존재 가치가 확실하고 반드시 필요한 자료

- 공용 데이터(Shared Date)

: 여러 응용 시스템들이 공동으로 소유하고 유지

 

· 데이터베이스의 특징(*중요*)

1. 실시간 접근성 2. 계속적인 변화

3. 동시 공용 4. 내용에 의한 참조

 

· 정규화(*중요*)

- 함수적 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정

- 데이터베이스의 개념적 설계 단계와 논리적 설계 단계사이에서 수행

 

· 정규화의 목적*(중요)

- 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능

- 효과적인 검색 알고리즘 생성

- 중복을 배제, 삽입, 삭제, 갱인 이상 방지

- 데이터 삽입 시 재구성 할 필요성을 줄임

 

· 두부이겨다조 = 도부이겨다조(*중요*)

( 도메인의 원자값 , 부분적 함수 종속 제거,

이행적 함수 종속 제거, 결정자이면서 후보키가 아닌 것 제거, 다치 종속 제거, 조인 종속성 이용)

비정규 릴레이션 -> 1NF -> 2NF -> 3NF ->

BCNF -> 4NF -> 5NF

(*중요*) 2NF->3NF

(A->B, B->C일 때 A->C인 관계를 제거하는 단계)

 

· 데이터베이스 설계 순서(*중요*)

- 요구 분석 -> 개념적 설계(conceptual) -> 논리적 설계(Logical) -> 물리적 설계(Physical) -> 구현

 

물리적 설계(

 

· 물리적 설계 시 고려사항(*중요*)

- 인덱스의 구조

- 레코드 크기

- 레코드 개수

- 트랜잭션의 갱신과 참조 성향

- 성능향상을 위한 개념 스키마의 변경 여부 검토

- 빈번한 질의와 트랜잭션들의 수행속도를 높이기 위한 고려

- 파일 크기의 변화 가능성

 

· 순차 파일(*중요*)

- 대화식 처리보다 일괄 처리에 적합

- 어떤 형태의 입출력 매체에서도 처리 가능

- 레코드 사이에 빈공간 존재하지 않아

기억장치의 효율적인 이용이 가능

 

순차파일(*중요*)

-레코드의 논리적 순서에 따라 연속도니 물리적 저장 공간에 기록하는 파일 구조

-저장 매체의 효율이 높음, 다음 레코드에 대한 접근 속도 빠르지만 검색효율 낮음

-자기테이프 사용

 

· 색인 순차 파일

- 순차적처리와 직접 처리가 모두 가능

- 레코드 삽입, 삭제, 갱신에 용이

- 인덱스를 저장하기 위한 공간과

오버플로우 처리를 위한 별도의 공간이 필요

- 인덱스를 이용하여 레코드에 접근해

처리속도가 랜덤 편성 파일보다 느리다

 

· 색인 순차 파일의 구조

- 기본구역(Prime Area) : 각 레코드는 킷값순

- 색인구역(Index Area) (*중요*): 색인이 기록되는 부분 -> 트랙 색인, 실린더 색인, 마스터 색인

- 오버플로 구역(Overflow Area) : 기본 구역에 빈 공간이 없을 때 대비하여 예비적으로 확보

->실린더 오버플로, 독립 오버플로

 

색인(인덱스) 영역(*중요*)

-트랙: 기본 데이터 영역의 각 트랙을 검색

-실린더: 레코드가 기록된 실린더의 정보가 저장

-마스터: 일정한 크기의 블록으로 블록화 하여 처리

 

-이진검색 알고리즘(*중요*)

탐색효율 좋고, 탐색 시간이 적게 소요

검색할 데이터가 정렬되어 있음

비교 횟수를 거듭할 때마다 검색 대상이 되는 데이터 수가 절반으로 줄음

 

· 트랜잭션 특성(*중요*)

원자성(atomicity)

all or Nothing

고립성(isolation)

실행 중 다른 트랜잭션x

일관성(consistency)

시스템 고정 요소

수행 전 후 같다

지속성(durability)

결과 영구적으로 기억

 

· 트리 inorder : left -> root -> right (중위)

트리 postorder : left -> right-> root (후위)

트리 preorder : root -> left -> right

 

· 데이터베이스 구성 요소 3가지(*중요*)

1. 구조(Structure) : 개체들간의 관계 표시

2. 연산(Operation)(*중요*) : 실제 데이터를 처리하는 방법 표시( 데이터베이스를 조작하는 기본 도구 )

3. 제약조건(Constraint) : 논리적인 제약조건 표시

 


· 선택정렬

- 전체 자료 중 작은 키 값을 찾아 선택 위치의 자료와 교환하여 정렬하는 방식

파일:external/upload.wikimedia.org/Selection_sort_animation.gif






삽입정렬


파일:external/upload.wikimedia.org/Insertion-sort-example-300px.gif

k번째 원소를 1부터 k-1까지와 비교해 적절한 위치에 끼워넣고 그 뒤의 자료를 한 칸씩 뒤로 밀어내는 방식



버블정렬

파일:external/upload.wikimedia.org/Bubble_sort_animation.gif


1번째와 2번째 원소를 비교하여 정렬하고, 2번째와 3번째, ..., n-1번째와 n번째를 정렬한 뒤

다시 처음으로 돌아가 이번에는 n-2번째와 n-1번째까지, ...해서 최대 \displaystyle \frac{n(n-1)}{2}번 정렬한다

1
2
3
4
5
6
7
8
9
10
11
void Bubble_Sort(int len)
{
     for(int i=0; i<len; i++)
          for (int j = 0; j < len - i - 1; j++)
               if (a[j] > a[j+1])
               {
                    int t = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = t;
               }
}
cs



 

· 데이터베이스 언어(캐드 시듀)

- DDL (데이터 정의어, Data Definition L.)

정의하거나 변경 또는 삭제할 때 사용

명령어 : CREATE, ALTER, DROP

- DML(*중요*)

(데이터 조작어, Data manipulation L.)

질의어 통해 저장된 데이터 실질적으로 처리

사용자와 관리 시스템간의 인터페이스 제공

명령어(*중요*): SELECT,INSERT,DELETE,UPDATE

 

- DCL (데이터 제어어, Data control L.)

데이터의 보안, 무결성, 회복, 병행수행제어 정의

관리자가 데이터 관리를 목적으로 사용

명령어 : COMMIT(완료), ROLLBACK(복구), GRANT

(권한 부여), REVOKE(권한 취소)

 

· 무결성의 종류**************************

- 개체 무결성 : 기본키를 구성하는 속성은 NULL이나 중복 값을 가질 수 없음

- 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일

- 널 무결성 : 속성(애트리뷰트) 값이 NULL(X)

- 고유 무결성 : 각 튜플이 갖는 값들이 서로 달라야 함

- 도메인 무결성 : 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이여야 함

- 키 무결성 : 하나의 릴레이션에 적어도 하나의 키

- 관계 무결성 : 관계에 대한 적절성

 

· : 관계 해석 모든 것에 대하여(for all)"

 

· having -> group by

 

 

· 관계대수(*중요*)는 원하는 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적인 언어, 연산

관계해석(*중요*)

-원하는 정보가 무엇이라는 것만 정의하는 비절차적인 언어 ,정의

-프레디킷 해석에 기반

-튜플 관계해석과 도메인 관계해석이있음

 

 

 

· 관계대수 연산자의 특징 (*중요*)

-Seclect : 조건에 맞는 튜플을 구하는

수평적 연산 (시그마 б)

-Project : 리스트로 주어진 속성만 구하는

수직적 연산 (파이)

-Join : 공통 속성을 중심으로 릴레이션 병합

-Divison : 같은 튜플들 중에서 비교 속성을

제외한 속성만 구하는 연산(R÷S)

 

· 관계형 데이터베이스 구조 (*중요*)

- 개체 : 디비에서표현하려는현실세계의대상체

- 릴레이션 : 테이블 전체

- 인스턴스 : 데이터 값

- 튜플 : = 기수 (Cardinality) (*중요*)

- 애트리 뷰트(속성) : = 차수 (degree) (*중요*)

- 도메인 : 원자값들의 집합,속성이가진

 

· 스키마의 3계층 (*중요*)

1. 외부스키마 (서브스키마, 사용자 뷰, External)

- 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 DB논리적 구조를 정의, 여러개 존재

2. 개념스키마 (전체적인 뷰, Conceptual)

- 모든 응용 시스템과 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의, 한 개만 존재

0

3. 내부스키마 (저장 스키마, Internal)

- 물리적 구조(*중요*)

 

· 로킹(*중요*)

하나의 트랜잭션이 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스 할 수 없음.

로킹 단위- 관리 쉬움, 병행수준

로킹 단위- 관리 어려움, 병행수준

 

· 분산 데이터베이스 시스템

- 점진적인 시스템 용량의 확장이 가능

- 융통성이 높음

- 신뢰성과 가용성이 높음

- 소프트웨어 개발 비용이 많이

 

· 릴레이션 관련 용어

- 개체 타입(Entity Type) : 속성들로만 기술 된 개체의 정의

- 개체 어커런스(Occurence) : 개체를 구성하고 있는 각 속성들이 값을 가져 하나의 개체를 나타내는 것, =튜플

- 튜플(Tuple) : 릴레이션의 행, 속성의 모임, 레코드와 같은 의미, 카디널리티=튜플의 수=기수=대응 수

- 속성(Attribute) : 가장 작은 논리적 단위, 개체의 특성을 기술, 디그리=속성의 수=차수(노드들의 차수 중 가장 큰값)

- 도메인(Domain) : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합, 값의 합법 여부를 시스템이 검사하는 데에 이용

 

· 릴레이션의 특징(*중요*)

- 튜플들은 모두 상이

- 퓨플들 사이에는 순서가 없다.

- 속성들 간의 순서는 중요하지 않다.

- 속성의 명칭은 유일, 값은 동일 할 수 있다.

- 속성들의 부분집합을 키로 설정

- 속성은 더 이상 쪼갤 수 없는 원자값만 저장

 

· (*중요*)

- 뷰는 가상테이블이라 물리적으로 존재하지 않음

- 삽입, 갱신, 삭제 연산에는 제약이 따름

- 뷰 위에 또 다른 뷰 정의 가능

- 기본 테이블이 삭제되면 뷰도 자동적 삭제

- 데이터의 논리적 독립성이 어느정도 보장

- 관리가 용이, 명령문이 간단

- 데이터를 안전하게 보호

 

 

· 시스템 카탈로그(System Catalog, 목록)(*중요*)

- DBMS가 스스로 생성하고 유지, 사용자는 질의어를 이용해 내용을 검색할 순 있지만 갱신 X

- 저장된 정보를 메타 데이터라고 한다.

- 좁은 의미에서 자료 사전이라고도 한다.

- 데이터 베이스에 포함되는 모든 데이터 객체에 대한 정의나 명세서에 관한 정보 유지

- 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스

*************************************

· 터미널 노드(*중요*) = 자식이 하나도 없는 노드

- 트리 차수 = 노드가 가진 자식 노드의 최대수

-노드 차수 = 노드의 부속 트리의 개수

 

· 자료구조의 분류(*중요*)

- 선형 구조 : 스택, , 데크, 연결 리스트

- 비선형 구조 : 트리, 그래프

 

· 트랜잭션(*중요*) :

-데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야할 일련의 연산, commit 되거나 Rollback, 일반적으로 회복의 단위

-Recovery(*중요*) : 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구하는 작업

 

· 물리적설계시 고려사항

- 반응시간, 공간 활용도, 트랜잭션 처리량

 

· DROP 옵션

- RESTRICT 옵션은 다른곳에서 참조하고

있으면 삭제를 취소하라는 명령,

- CASCADE 옵션은 참조하고 있는 다른 뷰나

제약 사항까지 모두 삭제하라는 옵션

 

· Anomaly(이상) : 데이터 중복으로 인해 릴레이션 조작시 예상하지 못한 곤란한 현상 발생

삽입, 삭제, 갱신 이상이 있다.

 

· 해시테이블(*중요*)

-버킷 : 하나의 주소를 갖는 파일의 한 구역을 의미하며, 버킷의 크기는 같은 주소에 포함될 수 있는 레코드 수 의미

-슬롯 : 1개의 레코드를 저장할 수 있는 공간

n개의 슬롯이 모여 하나의 버킷

-collision(충돌) : 서로 다른 2개 이상 레코드가

같은 주소를 갖는 현상

-Synonym(*중요*) : 해싱에서 동일한 홈 주소로 인해, 충돌이 일어난 레코드의 집합

-Overflow : 홈 주소의 버킷내에 저장 할 기억

공간이 없는 상태

 

 

· 해싱 함수(Hashing Function)(*중요*)

(제산법, 제곱법, 숫자분석법, 대수적코딩법)

- 제산법 : h(K)(홈 주소) = K(레코드 키) mod Q(가장 작은 소수)

- 제곱법 : K 값 제곱하여 홈 주소

- 기수(Radix) 변환법 : 키 숫자의 진수를 다른 진수로 변환, 크기 넘은 건 버림

- 대수적 코딩법 : 각 자리의 비트 수를 한 다항식의 계수로 간주, 정의된 다항식으로 나눔

- 계수 분리법(숫자 분석법) : 순자의 분포를 분석, 비료적 고른 자리 필요한 만큼

- 무작위법 : 난수 발생 홈 주소

 

 

 

· 키의 종류(*중요*)

-후보키(Candidate key) : 튜플을 유일하게 식별하기위해 사용하는 속성들의 부분집합, 기본키로 사용할 수 있는

-기본키(Primary key) : 후보키 중에 선택된 주키

-대체키(Alternate key) : 후보키가 둘 이상일 때 기본키 제외한 나머지 후보키

-슈퍼키(Super key) : 튜플이 발생하지 않는 키를 구성할 때 속성의 집합으로 구성하는 것, 유일성을 만족하지만 최소성은 만족시키지 못함

-외래키(Foreign key) : 릴레이션 r2의 기본키와 같은 r1릴레이션의 속성을 외래키

(참조되는 릴레이션의 기본 키와 대응되어 릴레이션간의 참조관계를 표현하는데 사용되는 도구)

 

 

 

 

 

· 병행제어 기법의 종류**********************

- 로킹 기법

- 타임 스탬프 순서 기법

- 최적 병행수행 기법(검증 기법, 확인 기법, 낙관적 기법)

- 다중 버전 기법

 

· DBMS기능(*중요*)

(정의, 조작, 제어)

-정의 : 데이터베이스에 저장될 데이터 형과 구조에 대한 정의, 이용방식, 제약 조건등을 명시

-조작 : 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 데이터 접근 수단을 정함

-제어 : 데이터의 정확성과 안전성을 유지하기 위한 무결성, 보안 및 권한검사, 병행수행제어기능

 

· 버블정렬(*중요*) : 주어진 파일에서 인접한 두 개의 레코드 키 값을 비교하여 정렬

 

· 이행적 함수 종속(*중요*)

: A->B, B->C이면 A->C

 

· E-R 다이어 그램

: 개체, : 속성, : 관계

 

· 삽입 정렬: 두 번째 자료부터 시작하여 그 앞 자료와 비교하여 정렬

 

 

CODASYL DBTG 모델

-레코드 처리를 위한 코볼 언어 확장을 개발하는 네트워크 데이터베이스 언어

 

 

SQL 질의 관계 대수식(*중요*)

-SELECT A1 FROM R1 WHERE P

A1 σP(R1) σP

σP -> σP(R1) -> A1( σP(R1) )

반응형
Comments