먼지 쌓인 키보드
[정보처리기사 필기] 데이터베이스 정리 본문
===========데이터베이스===========
· 데이터베이스의 정의(*중요*)
(통합된, 저장된, 운영, 공용 데이터)
- 통합된 데이터(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) : 논리적인 제약조건 표시
· 선택정렬
- 전체 자료 중 작은 키 값을 찾아 선택 위치의 자료와 교환하여 정렬하는 방식
삽입정렬
k번째 원소를 1부터 k-1까지와 비교해 적절한 위치에 끼워넣고 그 뒤의 자료를 한 칸씩 뒤로 밀어내는 방식
버블정렬
1번째와 2번째 원소를 비교하여 정렬하고, 2번째와 3번째, ..., n-1번째와 n번째를 정렬한 뒤
다시 처음으로 돌아가 이번에는 n-2번째와 n-1번째까지, ...해서 최대 번 정렬한다
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) )
'공부 관련 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 1~5과목 이것만은 외우고 시험가자 (0) | 2019.02.26 |
---|---|
[정보처리기사 필기] 데이터 통신 정리 (0) | 2019.02.26 |
[정보처리기사 필기] 소프트웨어공학 정리 (0) | 2019.02.26 |
[정보처리기사 필기] 운영체제 정리 (0) | 2019.02.26 |
[정보처리기사 필기] 전자 계산기 정리 (0) | 2019.02.26 |