RamaFam
[ 정보처리기사 - 필기 요점 ] 1. 데이터베이스 본문
데이터베이스 요점 정리
■ 데이터베이스의 특징
① 실시간 접근 ② 계속적인 변화(동적 데이터) ③ 동시 공유 ④ 내용에 의한 참조
■ DBMS의 장점
① 중복을 최소화한다. ② 데이터를 공유할 수 있다. ③ 일관성 유지 ④ 무결성 유지 ⑤ 보안 유지 ⑥ 표준화가 가능
■ 스키마(Schema)
1) 외부스키마(External Schema) : 사용자나 응용프로그래머가 접근할 수 있는 데이터베이스를 정의한다.
2) 개념스키마(Conceptual schema)
-범기관적 입장에서 본 데이터베이스의 정의
-모든 응용에 대한 전체적으로 통합된 데이터 구조
-단순히 스키마라고도 한다.
-접근 권한, 보안 정책, 무결성 규칙을 명세한다.
3) 내부스키마(Internal Schema) : 물리적 저장 장치의 관점
■ DBMS의 필수 기능
1) 정의 기능: 응용 프로그램과 데이터베이스 사이의 인터페이스
2) 조작 기능: 사용자와 데이터베이스 사이의 인터페이스
3) 제어 기능(Control Facility): 데이터의 정확성과 안전성을 유지
① 무결성 유지 ② 보안유지, 권한 검사 ③ 병행 수행 제어
■ 데이터베이스 관리자(DBA)
-정의어(DDL)와 제어어(DCL)를 통해 데이터베이스에 접근
① 데이터베이스 설계와 운영 ② 스키마 정의 ③ 저장 구조와 접근 방법 선정 ④ 보안 검사, 권한부여
⑤ 데이터 사전의 유지 관리 ⑥ 무결성 유지 ⑦ 행정 및 사용자 불평 해결 ⑧ 시스템 감시
⑨ 예비(Backup), 회복(Recovery) 절차를 수립
(※ 응용프로그램에 관한 사항이 나오면 DBA의 기능이 아니다.)
■ 데이터 디렉토리
-데이터베이스에 수록된 데이터를 실제로 접근하는데 필요한 정보를 수록한다.
-시스템만이 사용할 수 있다.
■ 데이터 모델의 구성요소
① 데이터의 구조 ② 연산 ③ 제약 조건
■ 사상의 원소수
① 1 : 1(일대일) ② 1 : n(일대다) ③ n : m(다대다)
■ 개체-관계 모델(E-R Model) -E-R모델의 그래픽 표현
① 개체타입(Entity Type) : 사각형
② 속성(Attribute) : 타원
③ 관계타입(Relationship) : 다이아몬드
④ 연결 : 선
⑤ 레이블 : 사상 원소수 표현
■ 논리적 데이터 모델
1) 관계 데이터 모델(Relationship Data Model)
-릴레이션, 테이블의 집합으로 표현
2) 네트워크 데이터 모델
-데이터 구조가 그래프 형태
-사이클을 허용하는 구조
-오너(Owner)
-멤버(Member) 관계
3) 계층적 데이터 모델(Hierarchical Data Model)
-데이터 구조가 트리 형태
-사이클이 없는 구조 -부모-자식 관계
■ 논리적 데이터모델에서 m:n의 직접 표현을 제공하지 않는다. (두 레코드 사이의 1 : N 구조로 표현)
■ 관계 데이터 구조
1) 릴레이션(Relation) = 릴레이션 스키마 + 릴레이션 인스턴스
2) 속성(Attribute) : 테이블의 각 열(col)을 의미
3) 투플(Tuple) : 테이블에서 행(레코드)을 지칭
4) 도메인(Domain) : 애트리뷰트가 취할수 있는 값들의 집합, 애트 리뷰트 값의 합법성을 검사할 수 있다.
5) 차수(Degree) : 한 릴레이션에서 애트리뷰트의 개수
6) 카디널리티(Cardinality) : 한 릴레이션에서 튜플의 개수
■ 외래키(Foreign Key)
-릴레이션 R1에 속한 애트리뷰트가 참조 릴레이션 R2의 기본키 인 경우
-외래키와 참조 릴레이션의 기본키의 도메인은 동일하다.
■ 무결헝 제약조건
1) 개체 무결성 : 기본키 값은 ‘NULL'이 될 수 없다.
2) 참조 무결성 : 외래키 값은 ‘NULL'이거나 참조 릴레이션에 있 는 기본키 값과 같아야 한다.
(※ 릴레이션은 참조할 수 없는 외래키값은 가질 수 없다.)
■ 관계 대수
1) 합집합, 교집합, 차집합 연산이 가능하려면 차수와 도메인이 같 아야 한다.
2) 순수 관계 연산자
① 실렉트(Select, σ) : 조건을 만족하는 수평적 부분집합
② 프로젝트(Project, π) : 조건을 만족하는 수직적 부분집합
③ 조인(Join, ⋈) ④ 디비젼(Division, ÷)
■ 관계 해석(Relational Calculus)
-프레디키티 해석(Prediacate Calculus)으로 질의어를 표현한다.
-원하는 릴레이션을 정의하는 방법을 제공하며 비절차적인 언어 이다.
-튜플 관계 해석과 도메인 관계 해석의 두 종류가 있다.
-관계해석과 관계대수는 기능과 능력면에서 동등하다.
- 2
■ SQL 정의어
① CREAT문 ② ALTER문 ③ DROP문
■ 삭제시 옵션
① Restricted : 삭제시 요소가 참조되고 있는 중이면 하나도 삭제되지 않는다.
② Cascade : 삭제할 요소가 참조되고 있는 중이면 같이 삭제된다.
■ SQL 조작어 : SQL의 데이터 조작문은 Select, Insert, Delete, Update 등 네가지 유형이 있다.
■ 뷰의 특성
-하나 이상의 기존 테이블로부터 유도되어 만들어진 가상 테이블 이다.
-뷰 위에 또 다른 뷰를 정의할 수 있다.
-뷰에 대한 검색 연산은 기본 테이블과 동일
-삽입, 갱신, 삭제 연산에는 제약이 따름
-뷰는 CREAT VIEW 명령을 사용하여 정의
-뷰를 제거할 때는 DROP문을 사용한다.
■ 뷰의 장점
① 논리적 독립성 제공
② 데이터 접근 제어로 보안 제공
③ 사용자의 데이터 관리를 간단하게 함
④ 여러 사용자의 상이한 응용이나 요구를 지원
■ 뷰의 단점
-그 정의를 변경할 수 없음. 즉 ALTER문 사용불가
■ 시스템 카탈로그(System Catalog)
-데이터 사전(Data Dictionary)
-시스템이 필요로 하는 스키마 및 여러 가지 객체에 관한 정보를 포함하고 있다.
-객체들로는 기본 테이블, 뷰, 인덱스, 데이터베이스, 응용계획, 패 키지, 접근 권한 등의 정보를 저장
-시스템 카탈로그에 저장되는 내용을 메타데이타라고 한다.
-일반 사용자도 시스템 테이블의 내용을 검색할 수 있다.
-카탈로그의 정보를 UPDATE, DELETE, INSERT문으로 직접 갱신 하는 것은 불가능
-시스템 카탈로그는 DBMS가 스스로 생성하고 유지하는 데이터베 이스 내의 특별한 테이블이다.
-사용자가 SQL문을 실행하면 시스템이 자동적으로 관련 카탈로그 테이블을 갱신
■ 데이터베이스 단계 요구조건분석
-개념적설계
-논리적설계
-물리적설계
-데이터베이스구현
■ 정규화(Normalization)
① 제1정규형 : 모든 도메인이 원자값만으로 된 릴레이션
② 제2정규형 : 1NF이고 키에 속하지 않는 모든 애트리뷰트들이 기본키에 완전 함수 종속
③ 제3정규형 : 2NF이고 키가 아닌 모든 애트리뷰트들은 기본키 에 이행적 함수 종속되지 않음.
④ BCNF(Boyce/Code NF) : 릴레이션의 R은 모든 결정자가 후보 키를 통해서 성립하면 릴레이션 R은 BCNF이다.
⑤ 제4정규형 : 릴레이션 R에서 MVD R.A ↠ R.B가 존재할 때 R이 모든 애트리뷰트들이 A에 함수 종속이면 R은 4NF
⑥ 제5정규형 : 릴레이션 R에 존재하는 모든 조인종속이 R의 후 보키를 통해 성립하면, R은 5NF
■ 트랜잭션(Transaction)
-한꺼번에 모두 수행되어야할 일련의 데이터베이스 연산들
-작업의 논리적 단위(LUW: Logical Unit of Work)
-병행 제어 및 회복 작업의 단위
■ 트랜잭션의 ACID 성질
① 원자성(Atomicity) : 트랜잭션 내의 모든 연산은 반드시 한꺼번 에 완료되거나, 한꺼번에 취소되어야 함.
② 일관성(Consistency) : 트랜잭션이 성공적으로 완료하면 일관성 있는 데이터베이스 상태로 변환
③ 격리성(Isolation) : 트랜잭션이 실행 중에 있는 연산의 중간 결과는 다른 트랜잭션이 접근 못함
④ 영속성(Durality) : 성공적으로 완료한 트랜잭션의 결과는 영속적
■ 병행 제어를 안할때의 문제점
-갱신 분실(Lost Update)
-모순성(Inconsistency) = 불일치 분석 문제
-연쇄 복귀(Cascading Rollback) = 비완료 의존성 문제
■ 비대칭적 암호 시스템
-암호키(공개키), 해독키(비밀)로 유지
-암호키를 이용하여 해독키의 유도가 불가능하다.
-키분배가 용이하다.
① 공개키 시스템(Public Key System) ② RSA
■ 분산 데이터베이스 시스템의 장점
① 지역 자치성 ② 점진적인 시스템 용량 확장 ③ 신뢰성 및 가용성 ④ 효율성 및 융통성
■ 분산 데이터베이스 시스템의 단점
① 소프트웨어 개발 비용 증가 ② 오류의 잠재적 증대
■ 자료구조
1) 선형구조: 배열, 스택, 큐, 데크, 연결리스트
2) 비선형구조: 트리, 그래프
■ 스택(Stack)
-TOP이라고 불리우는 한쪽끝에서 삽입과 삭제가 모두 이루어지는 순서리스트
-인터럽트 처리, 수식의 계산, 서브루틴의 복귀번지 저장등에 이용
■ 큐(Queue)
-한쪽 끝에서 삽입만, 다른 한쪽 끝에서는 삭제만 수행
-운영체제의 작업 스케줄링, 일괄처리, 스풀(Spool) 운영에 이용
- 3
■ 스레디트 이진트리(Threaded Binary Tree)
-이진 트리 운행의 단점을 없애기 위해 스택을 사용하지 않고, 널 링크에 다음 노드를 가리키는 포인터를 저장하여 트리를 순회할 수 있도록 고안한 이진 트리를 스레디트 이진 트리라한다.
■ 내부 정렬 종류 : 주기억 공간 내에서 정렬
① 삽입 정렬(Insert Sort) ② 셀 정렬(Shell Sort)
③ 선택 정렬(Selection Sort) ④ 퀵 정렬(Quick Sort) ⑤ 히프 정렬(Heap Sort) ⑥ 기수 정렬(Radix Sort)
⑦ 버블 정렬(Bubble Sort) : 인접한 레코드 2개의 키를 비교해 서 그 크기에 따라 레코드의 위치를 상호 교환한다.
■ 외부 정렬: 보조기억 공간을 이용하여 정렬
① Balanced merge sort ② Polyphase merge sort ③ Cascade merge sort ④ Oscillating merge sort
■ B-트리
-인덱스를 조직하는 방법
-루트와 리프(leaf)를 제외한 모든 노드는 반(1/2)이상 차 있어야 한다.
-루트는 리프가 아닌 이상 적어도 두 개의 서브트리를 갖는다.
-모든 리프 노드는 같은 레벨에 있다.
-한 노드 안에 있는 킷값들은 오름차순을 유지
■ 트라이(Trie)
-키 탐색을 위해 킷값을 직접 표현하지 않고 키를 구성하는 문자 나 숫자의 순서로 킷값을 표현한 자료 구조이다.
-트라이의 차수는 킷값을 표현하기 위해 사용하는 문자의 수에 의해 결정된다.
-트라이의 크기는 나타내려고 하는 킷값의 기수와 키 필드 길이 에 의해 결정된다.
-노드의 삽입 및 삭제시 노드의 분열과 병합이 없다.
■ 인덱스 순차 파일(Indexed Sequential File)
-순차처리와 직접처리가 모두 가능하다.
-실제 데이터 치리외에 인덱스를 처리하는 추가적인 시간이 소모 되므로 파일처리 속도가 느리다.
1) 정적(Static) 인덱스 방법
- ISAM 파일
-기본 구역, 인덱스 구역, 오버플로 구역으로 구성
-인덱스 구역은 마스터 색인, 실린더 색인, 트랙 색인으로 구성
2) 동적(Dynamic) 인덱스 방법
- VSAM 파일
-기본 구역과 오버플로 구역을 구분하지 않는다.
■ 다단계 인덱스를 사용하는 목적은 탐색수를 줄이기 위함이다.
■ 해싱(hashing)
해싱(hashing)은 레코드 키 값을 어떤 해싱 함수에 의해 주소로 변환시켜 해당 주소 위치에 레코드를 저장하는 방식으로 키 변환 값이 같은 경우 오버플로우 문제가 발생하지만 검색할 때 찾고자 하는 레코드의 키 값을 주소 변환에 의해 해당 위치를 검색하므로 조사 횟수가 상당히 작은 방식의 검색입니다.
- 해싱 탐색 주요 특성
① 해싱함수는 특정 데이터가 저장된 기억장소의 주소를 관리하기 위한 사상테이블(Mapping Table)을 정의하기 위한 함수이다.
② 빠르다는 장점 때문에 운영체제 및 직접접근파일을 구성하는 데 사용된다.
③ 사상 테이블의 용량부족으로 인한 Overflow가 발생할 수 있다.
④ 동일한 주소를 만들어 내는 두 개 이상의 키 값인 Synonym에 의해 충돌(Collision)이 발생 할 수 있다.
'공부 > 정보처리기사' 카테고리의 다른 글
[ 정보처리기사 - 필기 요점 ] 5. 데이터 통신 (0) | 2019.03.29 |
---|---|
[ 정보처리기사 - 필기 요점 ] 4. 소프트웨어 공학 (0) | 2019.03.29 |
[ 정보처리기사 - 필기 요점 ] 3. 운영체제 (0) | 2019.03.29 |
[ 정보처리기사 - 필기 요점 ] 2. 전자계산기 구조 (0) | 2019.03.29 |