정보처리기사 실기 Part 11. 응용 SW 기초 기술 (데이터베이스)
Section 1. 데이터베이스 개념
1. 데이터베이스
- " 조직에서 업무 처리를 위해 다수의 사용자들이 공용으로 사용하기 위해 통합 저장된 운영 데이터의 집합을 말함 "
2. 데이터의 종류
① 통합 데이터 (Integrated Data)
② 저장 데이터 (Stored Data)
③ 공용 데이터 (Shared Data)
④ 운영 데이터 (Operational)
3. 데이터 베이스의 특징
① 계속적인 변화 (Continuous Evolution)
② 동시 공유 (Concurrent Sharing)
③ 실시간 접근성 (Real Time Accessibility)
④ 내용에 의한 참조 (Contents Reference)
4. 데이터 베이스 3구성 요소
① 개체 (Entity) - 현실 세계의 대상체
② 속성 (Attribute) - 개체의 특성이나 상태 기술
③ 관계 (Relationship) - 두 개 이상의 개체 사이 또는 속상 간의 상호 연관성
Section 2. DBMS
1. DBMS
- " 데이터의 중복성과 종속성 등의 문제를 최소화하기 위해 사용자가 데이터를 조작 및 제어할 수 있도록 사용자와 데이터베이스 간의 인터페이스 역할을 하는 소프트웨어 "
2. DBMS의 필수 기능
- 정의(DDL), 조작(DML), 제어(DCL)
3. DBMS 장단점
- 장점 - 중복성과 종속성 최소화, 일관성 및 무결성 유지, 데이터 공유
- 단점 - 많은 운영비, 백업과 회복 어려움
4. 무결성 (Integrity)
- " 데이터 값들이 항상 일관성을 갖고 유효성, 정확성, 안정성을 유지할 수 있도록 제약조건을 두는 데이터베이스의 특성 "
Section 3. 스키마 및 설계
1. 스키마 (Schema)
- " 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술 및 정의한 것 "
- 외부 스키마 (External) - 사용자 및 응용프로그램이 접근하는 관점 (서브 스키마)
- 개념 스키마 (Conceptual) - DB의 전체적인 논리적 구조 관점
- 내부 스키마 (Internal) - 물리적 저장 장치 관점
2. DBA
- " 데이터베이스 시스템과 관련된 모든 자원에 대해 기획 및 통제를 하며 전체적인 관리 운영에 책임을 지는 사람이나 집단 "
- 보안, 권한 부여, 유효성 검사, 스키마 정의
3. 설계 과정
- 개념적 설계 -> 논리적 설계 -> 물리적 설계
4. 데이터베이스 모델
- 논리적 설계 단게에서 사용되는 모델
- 관계, 네트워크, 계층, 객체지향 모델
- 데이터 구조, 연산, 제약조건으로 구성
5. 관계 데이터 모델 용어
- 릴레이션, 속성, 튜플, 도메인, 릴레이션 스키마, 릴레이션 인스턴스, 디그리(차수), 카디널리티
6. 릴레이션의 특징
① 튜플은 모두 다르다
② 튜플과 속성에는 순서가 없다
③ 릴레이션의 속성은 원자값으로 구성된다
7. Mapping Rule
- " 개념적 데이터베이스 모델링 결과를 관계형 데이터베이스 이론에 근거하여 변환 하는 것 "
8. 교차 엔티티 (Intersection Entity)
- " N:M (다대다) 관계에서 보다 정확한 상호 참조를 위해서 중간에 존재하는 하나의 릴레이션 "
Section 4. 키와 무결성 제약조건
1. 후보키 (Candidate key)
- " 릴레이션에서 각 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합 "
- " 유일성과 최소성을 모두 만족하는 속성 "
- 유일성 - 각 튜플을 유일하게 식별하는 성질
- 최소성 - 각 튜플을 유일하게 식별할 수 있는 최소 구성의 성질
2. 기본키 (Primary Key)
- 후보키 중에서 튜플을 식별하기 위해 선택된 키
- 기본키 속성 값은 중복될 수 없고 NULL 값이 될 수 없다 (개체 무결성)
3. 대체키 (Alternate Key)
4. 참조키 (Foreign Key)
- " 다른 테이블을 참조하기 위해 사용되는 속성 "
5. 슈퍼키 (Super Key)
- 유일성만을 만족하고 최소성은 만족하지 못하는 속성 "
6. 개체 무결성
- " 기본키 속성은 NULL 값과 중복된 값을 갖으면 안된다 "
7. 참조 무결성
- " 참조하는 테이블에 존재하는 값만 가질 수 있으며 NULL 값이 올 수 있다 "
8. 도메인 무결성
- " 속성값의 범위가 정의된 경우 그 속성값은 정해진 범위 이내의 값으로만 구성되어야 한다 "
Section 5. 관계 연산
1. 관계 대수 (Relational Algebra)
- 절차적 언어
- 순수 관계 연산자 - select(σ), project(π), join(⋈), division(÷)
- 일반 집합 연산자 - 합(∪), 교(∩), 차(-), 카티션 곱(×)
2. 관계 해석 (Relational Calculus)
Section 6. 정규화
1. 이상 (Anomaly)
- " 데이터의 중복과 종속으로 인해 발생되는 문제점 "
- 삽입이상, 삭제이상, 갱신이상
2. 정규화
- " 이상현상을 제거하기 위해서 릴레이션을 여러 개로 분해하는 활동 "
① 1 정규화 - 원자값이 아닌 필드 분해
② 2 정규화 - 부분 함수 종속 제거
③ 3 정규화 - 이행 함수 종속 제거
④ BC/NF 정규화 - 모든 결정자는 후보키
⑤ 4 정규화 - 다치 종속 제거
⑥ 5 정규화 - 조인 종속 제거
Section 7. 트랜잭션
1. 트랜잭션
- " 데이터베이스 데이터를 조작하는 논리적 작업 단위로써 일련의 연산(쿼리문) 집합 "
2. 트랜잭션 성질
① 원자성 (Atomicity) - 트랜잭션 내의 모든 명령은 모두 수행 또는 모두 수행되지 않는다
② 일관성 (Consistency) - 트랜잭션 처리 전과 후에 DB의 일관된 상태는 같아야 한다
③ 격리성 (Isolation) - 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 한다
④ 영속성 (Durability) - 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억되어야 한다
3. 트랜잭션 연산
- COMMIT - " 트랜잭션이 성공적으로 종료된 후 수정된 내용을 지속적으로 유지하기 위한 연산 "
- ROLLBACK - " 트랜잭션이 비정상적으로 종료되거나 이전 상태로 돌리기 위해 취소하는 연산 "
4. 트랜잭션 상태도
① 실행
② 부분 완료
③ 완료
④ 실패
⑤ 철회
5. 회복 (Recovery)
- " 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업 "
6. 로그 (Log)
- " 트랜잭션이 수행되어 변경되는 데이터베이스의 정보를 기록하는 것으로 로그 파일에 저장 "
7. 회복 기법
① 즉시 갱신 기법 - 그때 그때 바로 데이터베이스에 적용, REDO / UNDO 둘 다 수행
② 지연 갱신 기법 - 부분 완료되면 그 때 데이터베이스에 적용, REDO만 실행
③ 검사 시점 기법 - 트랜잭션 중간에 CHECKPOINT 지정
④ 그림자 페이징 - 복사본 이용하여 장애 없을 경우에 원 데이터베이스에 적용
8. 병행 제어
- 로킹 단위 크면 병행성 수준이 낮아지고 단순해짐
- 로킹 단위 작으면 병행성 수준 높아지고 복잡해짐
- 갱신 분실 (Lost Update), 모순성 (Inconsistency), 연쇄 복귀(Cascading Rollback), 오손 판독 등
Section 8. 기타 데이터베이스 용어
1. 객체지향 데이터베이스
- " 멀티미디어 정보를 저장 및 관리하고 이용할 수 있도록 등장한 객체지향 데이터베이스 "
2. 분산 데이터베이스
- " 통신 네트워크를 통해 여러 대의 컴퓨터에 데이터를 분산 시켜 저장 및 관리하는 개념 "
3. 튜닝 (Tuning)
- " 데이터베이스의 성능 향상 및 최적화를 위해 재조정 하는 것 "
4. 데이터 웨어하우스 (Data Warehouse)
- " 대량의 데이터를 공통의 형식으로 변환하여 관리하는 데이터베이스 "
5. 데이터 마트 (Data Mart)
- " 데이터 웨어하우스의 축소판으로 데이터의 한 부분에서의 사용자가 관심을 갖는 데이터만을 담은 작은 규모의 데이터 웨어하우스 "
6. 데이터 마이닝
- " 대량의 데이터 상에서 실제로 존재하지 않는 데이터 정보를 얻어 내기위해 데이터 간의 상관관계를 통계적 분석 및 인공지능 기술을 이용하여 패턴 및 규칙을 찾아내는 기법 "
6. OLAP
- " 사용자가 직접 데이터베이스의 검색과 분석을 통해 문제점이나 해결책을 찾도록 해주는 분석형 애플리케이션 "
- 온라인 검색 지원
7. ODBC
- " 응용 프로그램에서 다양한 DBMS에 접근하여 데이터를 사용할 수 있도록 개발한 표준 개방형 응용 프로그램 인터페이스 규격 "
- 서로 다른 데이터베이스에서 구축된 데이터를 상호 간에 공유 가능