정보처리기사 데이터베이스 정리
데이터베이스
특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임.
- 통합 데이터(Integrated) : 검색의 효율성을 위해 중복이 최소화된 데이터의 모임
- 저장 데이터(Stored) : 컴퓨터가 접근 가능한 저장 매체에 저장된 데이터
- 운영 데이터(Operational) : 조직의 목적을 위해 존재 가치가 확실하고 반드시 필요한 데이터
- 공유 데이터(Shared) : 여러 응용 프로그램들이 공동을 사용하는 데이터
데이터베이스 특징
- 실시간 접근성(Real Time Accessibility) : 사용자의 질의에 대하여 즉시 처리하여 응답하는 특징
- 계속적인 진화(Continuous Evolution) : 삽입, 삭제, 갱신을 통하여 항상 최근의 정확한 데이터를 동적으로 유지하는 특징
- 동시 공유(Concurrent Sharing) : 여러 사용자가 동시에 원하는 데이터를 공용할 수 있는 데이터
- 내용에 의한 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조할 때 튜플(Tuple)의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용에 따라 참조하는 특징
- 데이터의 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 변경되지 않는 특성
- 데이터의 물리적 독립성 : 응용 프로그램과 보조기억장치와 같은 물리적 장치를 독립시킴으로써, 데이터베이스 관리 시스템의 성능 향상을 위해 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만 변경될 수 있는 특징
튜플(Tuple) : 릴레이션을 구성하는 각각의 행을 의미.
응용 프로그램 : 조직이나 기업체에서 특정 부서에 정보를 제공하기 위해서 데이터베이스에 접근하여 운영되는 하나의 프로그램.
데이터 언어
데이터베이스를 구축하고 이용하기 위한 데이터베이스 관리 시스템과의 통신 수단.
DDL(데이터 정의어)
데이터베이스의 구조, 데이터 형식, 접근 방식 등 데이터베이스를 구축하거나 변경할 목적으로 사용하는 언어
- DDL 컴파일러가 컴파일한 후 데이터 사전에 저장
DDL 기능
- 데이터베이스 놀리적, 물리적 구조를 정의 및 변경
- 스키마에 사용되는 제약조건을 정의
- 데이터의 물리적 순서를 규정
DML(데이터 조작어)
데이터 처리를 위하여 응용 프로그램과 데이터베이스 관리 시스템 간의 인터페이스를 위한 언어.
- 데이터 처리를 위한 연산의 집합으로 데이터의 검색, 삽입, 삭제, 갱신, 연산 등
- 절차적 데이터 조작어와 비절차적 데이터 조작어로 나뉨
DCL(데이터 제어어)
보안 및 권한 제어, 무결성, 회복, 병행 제어를 위한 언어.
DCL 기능
- 데이터 보안 : 권한이 없는 접근으로부터 데이터베이스를 보호
- 데이터 무결성 : 의미적인 측면에서 데이터가 정확하고 완전함을 의미. 사용자가 무결성 제약 조건을 정의하면 데이터베이스 관리 시스템은 데이터를 삽입, 삭제, 갱신, 할 때마다 제약 조건을 자동적으로 검사
- 데이터 회복 : 시스템 오류 등으로부터 데이터베이스를 회복
- 병행 제어 : 여러 사용자가 동시에 데이터베이스를 공유할 수 있도록 함
DBA
DDL과 DCL을 통해 데이터베이스를 정의하고 제어하는 사람 또는 그룹.
데이터베이스를 설계, 관리, 운용 및 통제하며, 효율성과 경제적인 효용성을 높이기 위해 시스템을 감시하고 성능을 분석.
데이터 관리자(Data Administrator)
하나의 기업 또는 조직 내에서 데이터에 대한 정의, 체계화, 감독 및 보안 업무를 담당할 뿐만 아니라 기업 또는 조직 전반에 걸쳐 존재하는 데이터에 대한 관리를 총괄하고 정보 활용에 대한 중앙 집중적인 계획 수립 및 통제를 수행.
데이터 설계자(Data Architect)
기업의 업무 수행에 필요한 데이터의 구조를 체계적으로 정의하는 사람을 의미.
응용 프로그래머(Application Programmer)
호스트 프로그래밍 언어에 DML을 삽입하여 데이터베이스에 접근하는 사람.
일반 사용자(End User)
질의어를 통해 데이터베이스 관리 시스템에 접근하는 사람.
DBMS
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어.
DBMS의 기능
- 정의 기능(Definition) : 데이터의 타입과 구조, 데이터가 데이터베이스에 저장될 때의 제약 조건 등을 명시하는 기능을 제공
- 조작 기능(Manipulation) : 체계적 데이터 처리를 위해 데이터 접근 기능(검색, 삽입, 삭제, 갱신 등)을 명시하는 기능을 제공
- 제어 기능(Control) : 데이터의 정확성과 안전성을 유지하기 위해 무결성, 보안 및 권한 검사, 병행 제어 등을 명시하는 기능을 제공
DBMS의 장점 : 논리적, 물리적 독립성 보장, 중복 피함, 공동으로 이용, 통합하여 관리, 표준화, 일관성 유지, 무결성 유지, 보안을 유지, 실시간 처리, 최신의 데이터 유지
DBMS의 단점 : 전문가 부족, 디스크 과부하, 전산화 비용 증가, 백업과 회복이 어렵, 시스템 복잡
DSMS(데이터 스트림 관리 시스템)
무선센서 네트워크나 인터넷 같은 통신상에서 발생하는 대량의 스트림 데이터를 처리하고 관리하는 시스템.
스키마
데이터베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 의미.
스키마 특징 : 데이터의 구조적 특성을 의미, 데이터 사전에 저장, 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해 만듬, 시간에 따라 불변인 특성, 데이터의 논리적 단위에 명칭을 부여하고 그 의미를 기술
데이터 사전(Data Dictionary)
: 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지·관리하는 시스템. 시스템 카탈로그.
메타데이터
: '데이터에 관한 데이터', 즉 실제 저장되는 데이터는 아니지만, 저장되는 데이터와 직접 혹은 간접적으로 관계가 있는 정보를 제공하는 데이터.
MARC(Machine Readable Cataloging)
: 목록 레코드를 식별하여 축적·유통할 수 있도록 코드화한 메타데이터.
DC(Dublin Core)
: 네트워크 환경에서 각종 전자 정보를 기술하는 메타데이터.
ONIX(ONline Information eXchange)
: 유통에 관한 통계와 체계적인 정보를 취급함으로써 정상적인 유통 및 관리를 위한 메타데이터.
MODS(Metadata Object Description Schema)
: 디지털 도서관인 범용 서지 정보 표준 메타데이터로서 MARC, DC, ONIX 등을 절충하여 상호운용성과 정밀성을 모두 만족시킴.
MDR(Meta Data Registry)
: 메타데이터의 등록과 인증을 통하여 메타데이터를 유지·관리하며, 메타데이터의 명세를 공유하는 레지스트리.
상호운용성 : 서로 다른 메타데이터를 사용하는 시스템들이 각각의 메타데이터를 이해할 수 있는 기능 또는 메타데이터 스키마에 상이한 어휘로 규정된 기술 요소들의 의미를 이해할 수 있는 기능.
스키마 3계층
- 외부 스키마 : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것. 서브스키마
- 개념 스키마 : 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 명세로서 하나만 존재
- 내부 스키마 : 데이터베이스의 물리적 구조를 정의한 것
데이터베이스 설계
데이터베이스의 구조, 즉 데이터베이스 스키마를 개발하는 과정.
데이터베이스 설계 순서
요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 데이터베이스 구현
ER 모델
몇 가지 도형들을 이용해 현실 세계를 표현.
개체(Entity) : 현실 세계의 객체로서 유형 또는 무형의 정보 대상으로 존재하며 서로 구별될 수 있는 것
관계(Relationship) : 2개 이상의 개체 사이에 존재하는 연관성
1 : 1 관계 : 관계에 참여하고 있는 두 개체 타입이 모두 하나씩의 개체 어커런스를 갖는 관계
어커런스 : 테이블에 들어 있는 레코드
1 : N 관계 : 관계에 참여하고 있는 개체 타입 중 한 개체 타입은 여러 개의 개체 어커런스를 가질 수 있고, 다른 한 개체 타입은 하나의 개체 어커런스를 갖는 타입
N : M 관계 : 관계에 참여하고 있는 두 개체 타입 모두 여러 개의 개체 어커런스를 가질 수 있는 관계
속성(Attribute) : 개체의 특성이나 상태를 기술한 것
도메인 : 속성이 가질 수 있는 모든 가능한 값들의 집합
릴레이션 : 관계형 데이터모델에서 데이터를 원자 값으로 갖는 이차원의 테이블
매핑 룰(Mapping Rule) : 개념적 데이터 모델인 ER 모델을 논리적 데이터 모델인 릴레이션 스키마로 변환하는 것
식별 관계 : 개체 A, B 사이의 관계에서 A 개체의 기본키가 B 개체의 외래키이면서 동시에 기본키가 되는 관계. 실선
비식별 관계 : 개체 A, B 사이의 관계에서 A 개체의 기본키가 B 개체의 비기본키 영역에서 외래키가 되는 관계. 점선
키
슈퍼키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키. 유일성 만족
후보키 : 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합. 유일성과 최소성 모두 만족
기본키 : 후보키 중에서 특별히 선정된 키로 중복된 값을 가질 수 없다. NULL 값도 안됨.
대체키 : 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미
외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
무결성
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미.
무결성 제약 조건
: 데이터베이스에 저장된 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건
NULL 무결성
: 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정
고유(UNION) 무결성
: 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성 값들이 서로 달라야 한다는 규정
도메인 무결성
: 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정
키 무결성
: 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정
관계 무결성
: 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정
참조 무결성
: 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다는 규정
개체 무결성
: 기본 릴레이션의 기본키를 구성하는 어떤 속성도 NULL 일 수 없다는 규정
관계대수
관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어.
순수 관계 연산자
- SELECT : 릴레이션에 존재하는 튜플들 중에서 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션 만듬. 수평연산. 시그마(σ)
- PROJECT : 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만듬. 중복 제거. 수직 연산. 파이(π)
- JOIN : 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만듬. ⋈
- DIVISION : 두 릴레이션 X와 Y에 대해 Y⊆X이고 X-Y=Z라고 하면, X와 Z, Y는 동일한 표현
일반 집합 연산자 : 수학적 집합 이론에서 사용하는 연산자로서 릴레이션 연산에도 그대로 적용
관계해석
관계 데이터의 연산을 표현하는 방법. 원하는 정보를 정의할 때는 계산 수식 사용. 비절차적 특성.
DDL
스키마, 도메인, 테이블, 뷰, 인덱스를 정의하거나 변경 또는 제거할 때 사용하는 언어.
- CREATE : 스키마, 도메인, 테이블, 뷰, 인덱스를 정의
- ALTER : 테이블에 대한 정의를 변경
- DROP : 스키마, 도메인, 테이블, 뷰, 트리거, 인덱스를 제거
Primary Key : 기본키로 사용할 속성 또는 속성의 집합을 지정
Unique : 대체키로 사용할 속성 또는 속성의 집합을 지정하는 것
Foreign Key ~ References ~ : 외래키 송성과 참조 테이블에 관한 정보를 지정
Cascade : 참조 테이블의 튜플이 삭제되면 기본 테이블의 관련 튜플도 모두 삭제되고, 속성이 변경되면 관련 튜플의 속성 값도 모두 변경
Set Null : 참조 테이블에 변화가 있으면 기본 테이블의 관련 튜플의 속성 값을 null로 변경
Set Default : 참조 테이블에 변화가 있으면 기본 테이블의 관련 튜플의 속성 값을 기본값으로 변경
Constraint : 제약 조건의 이름을 지정
Check : 속성 값에 대한 제약 조건을 지정
뷰(VIEW)
: 하나 이상의 기본 테이블로부터 유도되는 이름을 갖는 가상 테이블
인덱스
: 검색을 빠르게 하기 위해 만든 보조적인 데이터 구조
클러스터(Cluster)
: 지정된 키에 따라 튜플들을 그룹으로 지정하기 위해 사용
트리커
: 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트(event)가 발생할 때 마다 자동적으로 수행되는 사용자 정의 프로시저
DML
: 데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 관리하는데 사용되는 언어
DCL
: 데이터의 보안, 무결성, 회복, 별행 제어 등을 정의하는 데 사용하는 언어
COMMIT : 트랜잭션의 모든 변경 내용들을 영구적으로 데이터베이스에 반영하는 명령어
ROLLBACK : 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어
GRANT : 권한 부여를 위한 명령어
REVOKE : 권한 취소를 위한 명령어
뷰(VIEW) : 하나 이상의 기본 테이블에서 유도되는 가상테이블
내장(Embedded) SQL
데이터베이스 내의 데이터를 정의하거나 접근하는 SQL문을 응용 프로그램 내에 내포하여 프로그램이 실행될 때 함께 실행하도록 호스트 프로그램 언어에 삽입한 SQL.
커서(Cursor) : 내장 SQL문의 실행 결과로 반환된 복수 개의 튜플들을 접근할 수 있도록 해주는 개념
커서 명령어
- DECLARE : 커서를 정의하는 등 커서에 관련된 선언하는 명령어
- OPEN : 커서가 질의 결과의 첫 번째 튜플을 가리키도록 설정하는 명령어
- FETCH : 질의 결과에 대한 튜플들 중 현재의 다음 튜플로 커서를 이동시키는 명령어
- CLOSE : 질의 실행 결과에 대한 처리 종료 시 커서를 닫기 위해 사용하는 명령어
이상(Anomaly)
테이블에서 일부 속성들이 종속으로 인해 데이터의 중복이 발생하고, 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상.
이상의 종류
- 삽입 이상(Insertion) : 테이블에 데이터를 삽입할 때 의도와는 상관없는 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
- 삭제 이상(Deletion) : 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 즉 연쇄 삭제가 발생하는 현상
- 갱신 이상(Update) : 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상
함수적 종속(Functional Dependency)
어떤 테이블 R에서 X와 Y를 각각 R의 속성 집합의 부분 집합이라 할 때, 속성 X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속이라 함(X -> Y).
- 데이터의 의미를 표현한 것. 현실 세계를 표현 하는 제약 조건이 되는 동시에 데이터베이스에서 항상 유지되어야 할 조건
완전 함수적 종속
: 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서 속성 집합 X의 어떠한 진부분 집합 Z(즉, Z⊂X)에도 함수적 종속이 아닐 때 속성 Y는 속성 집합 X에 완전 함수적 종속
부분 함수적 종속
: 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서 속성 집합 X의 임의의 진부분 집합에 대해 함수적 종속 일 때, 속성 Y는 속성 집합 X에 부분 함수적 종속
정규화
테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정. 이상의 발생을 줄이는 것
제 1정규형 : 테이블 R에 속한 모든 속성의 도메인이 원자 값만으로 되어 잇는 정규형(도메인 원자값)
제 2정규형 : 테이블 R이 제 1정규형이고, 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형(부분 함수적 종속 제거)
제 3정규형 : 테이블 R이 제 2정규형이고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형(이행적 함수 종속 제거)
이행적 함수적 종속 ; A -> B이고 B -> C일 때, A -> C를 만족하는 관계
BCNF : 테이블 R에서 모든 결정자가 후보키인 정규형(결정자이면서 후보키가 아닌 것 제거)
제 4정규형 : 테이블 R에 다중 값 종속 A↠B가 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형(다치 종속 제거)
제 5정규형 : 테이블 R의 모든 조인종속이 R의 후보키를 통해서만 성립되는 정규형(조인 속성 제거)
역정규화(Denormalization)
정규화로 인해 여러 개로 분해된 릴레이션들에서 우너하는 정보를 얻기 위해서는 조인을 사용하여 다시 연결. 지나치게 자주 조인을 사용하면 응답 속도가 떨어지므로 정규화에 위배되지만 성능 향상을 위해 다시 테이블을 합치는 것.
시스템 카탈로그
DBA의 도구. 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정의나 명세에 대한 정보가 수록되어 있는 시스템 테이블(=데이터 사전).
인덱스
데이터 레코드(튜플)에 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
클러스터 인덱스 : 레코드의 물리적 순서가 인덱스의 엔트리 순서와 일치하게 유지되도록 구성되는 인덱스
트랜잭션(Transaction)
데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서의 작업의 단위. DBMS에서 회복 및 병행 수행 시 처리되는 작업의 논리적 단위.
COMMIT : 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산
ROLLBACK : 하나의 트랜잭션 처리가 비정상으로 종료되어 데이터베이스의 일관성이 깨졌을 때 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산
트랜잭션의 특성
- 원자성(Atomicity) ; 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.
- 일관성(Consistency) ; 트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
- 독립성(Isolation) ; 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전에는 갱신중인 데이터를 다른 트랜잭션들이 접근하지 못하도록 해야 한다.
- 영속성(Durability) ; 트랜잭션의 샐행이 성공적으로 실행 완료된 후에는 시스템에 오류가 발생하더라도 트랜잭션에 의해 변경된 내용은 계속 보존되어야 한다.
회복(Recovery)
트랜잭션들을 실행하는 도중 장애가 발생하여 데이터베이스가 손상되었을 경우 손상되기 이전의 정상 상태로 복수하는 작업.
장애의 유형
- 실행 장애 : 사용자의 실수, 무결성 규정 위반 등으로 질의 실행이 실패하는 현상
- 트랜잭션 장애 : 트랜잭션 내부에서 입력 데이터 오류, 불명확한 데이터, 시스템 자원 요구의 과다 등 비정상적인 상황으로 인하여 트랜잭션 실행이 중지되는 현상
- 시스템 장애 : 데이터베이스에는 손상을 입히지 않으나 하드웨어 오동작, 장전, 소프트웨어(운영체제나 DBMS 등) 오류, 교착 상태 등에 의해 실행중인 모든 트랜잭션들이 더 이상 실행을 계속할 수 없는 현상
- 미디어 장애 : 저장 장치인 디스크 블록의 손상이나 디스크 헤드의 충돌 등에 의해 데이터베이스의 일부 또는 전부가 물리적으로 손상되는 현상
Redo ; 로그를 이용하여 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경
Undo ; 로그를 이용하여 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경
병행 제어(Concurrency Control)
다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술.
인터리빙 : 트랜잭션들이 번갈아 가며 조금씩 자신이 처리해야 할 일을 처리하는 것
병행 제어의 목적 : 데이터베이스의 공유를 최대화, 시스템의 활용도를 최대화, 사용자에 대한 응답 시간을 최소화, 단위 시간당 트랜잭션 처리 건수를 최대화, 데이터베이스의 일관성을 유지
병행 제어의 필요성
- 갱신 분실(Lost Update) : 2개 이상의 트랜잭션이 같은 데이터를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상
- 모순성(Inconsistency) : 복수의 사용자가 동시에 같은 데이터를 갱신할 때 데이터베이스 내의 데이터들이 상호 일치하지 않아 모순된 결과가 발행하는 현상
- 연쇄 복귀(Cascading Rollback) : 병행 수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 Rollback되는 경우 다른 트랜잭션들도 함께 Rollback되는 현상
잠금(Lock)
데이터베이스 관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것을 의미
잠금 단위 : 병행 제어에서 한 번에 잠금할 수 있는 단위로 데이터베이스, 테이블, 레코드, 필드 등이 사용될 수 있다.
- 잠금 단위가 크면 잠금 수가 작아 관리하기 쉽지만 공유성 수준이 낮아짐.
- 잠금 단위가 작으면 잠금 수가 많아 관리하기 복잡하지만 공유성 수준이 높아짐.
트랜잭션 스케줄 : 트랜잭션의 연산들이 인터리빙하게 실행되는 것이 허용될 때 트랜잭션들의 개개 연산들이 실행되는 순서를 의미한다.
타임 스탬프(Time Stamp) : 시스템이 각 트랜잭션을 실행할 때 부여하는 값
보안(Security)
데이터베이스 일부분 또는 전체에 대하여 권한이 없는 사용자가 접근을 수행하는 것을 금지하기 위해 사용하는 기술. 또한 불법적인 데이터 폭로나 변경 또는 파괴로부터 데이터베이스를 보호하는 것
암호화 기법
- 개인키 암호화 ; 동일한 키로 데이터를 암호화하고 복호화 한다. DES(Data Encryption Standard)
- 공개키 암호화 ; 데이터를 암호화할 때 사용하는 공개키는 데이터베이스 사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관리한다.
튜닝(Tuning)
데이터베이스 응용 프로그램, 데이터베이스 자체, 운영체제 등의 조정을 통하여 DBMS 성능을 향상시키는 작업. 최적화.
인덱스 튜닝
- 클러스터드 인덱스(Clustered) ; 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식. 한 개의 릴레이션에 하나의 인덱스만 생성
- 넌클러스터드 인덱스(Non-Clustered) ; 인덱스의 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 방식. 한 개의 릴레이션에 여러 개의 인덱스를 만들 수 있음
선택성(Selectivity) : 인덱스를 설계할 때는 선택성이 좋도록 설정해야 하는데, 선택성은 인덱스의 키 값당 행의 개수를 기준으로 산정
객체 지향 데이터베이스
실세계에 존재하는 객체를 표현하고 관리하는 데이터베이스 기술
객체 지향 데이터베이스 구성
객체와 객체 식별자 :
- 객체는 실세계 환경에서 존재하는 개체를 추상적으로 표현한 것.
- 객체 식별자는 많은 수의 객체들을 유일하게 식별하기 위해 시스템에 의해 생성되는 값으로 변경할 수 없다.
속성과 메소드 :
- 속성은 객체를 기술하는데 사용되며, 유일한 이름과 데이터 타입을 가짐.
- 메소드는 객체에 수행될 연산, 즉 객체의 속성 값에 대한 변경이나 검색을 기술한 것. 메소드를 실행하기 위해서 해당 객체에 메시지(Message)를 보내야 함.
클래스와 인스턴스 :
- 클래스는 공통적인 특성을 소유한 객체들을 그룹화 및 추상화한 것. 즉, 동일한 속성과 메소드를 갖는 객체들의 집합을 말함.
- 인스턴스는 클래스를 이용하여 생성한 하나의 객체를 의미. 클래스에 속한 각각의 객체는 그 클래스의 인스턴스가 됨.
상속 : 클래스 계층 구조를 형성하는 서브클래스와 슈퍼클래스간에 존재하는 계승의 개념.
슈퍼클래스 : 특정 클래스의 상위(부모) 클래스
서브클래스 : 특정 클래스의 하위(자식) 클래스
오버로딩과 오버라이딩 :
- 오버로딩은 하나의 메소드 이름으로 다른 파라미터를 지정하여 사용하는 기법.
- 오버라이딩은 슈퍼 클래스에 있는 메소드를 서브 클래스에서 상속 받아 다른 기능을 수행하는 메소드로 재정의하는 기법.
분산 데이터베이스
논리적으로는 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스
분산 데이터베이스 시스템의 구성 요소 ; 분산 처리기, 분산 데이터베이스, 통신 네트워크
분산 데이터베이스의 목표
- 위치 투명성 : 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근할 수 있다.
- 중복 투명성 : 동일한 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용할 수 있고, 시스템은 자동으로 여러 데이터에 대한 작업을 수행
- 병행 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않는다.
- 장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행
멀티미디어 데이터베이스
;텍스트, 그래픽, 정지 화상, 동영상, 음성 등이 복합적으로 구성된 데이터베이스.
멀티미디어 데이트베이스 구축 방법
- 파일 기반 기법 : VOD(Video On Demand)
- 관계형 데이터베이스 기반 기법 : 텍스트 저장(CLOB), 이미지+비디오+오디오 이용(BLOB)
- 객체 지향 데이터베이스 기반 기법 : 미디어별로 별도의 클래스 정의
- 객체 관계형 데이터베이스 기반 기법
주기억장치 데이터베이스
데이터베이스 전체를 주기억장치에 상주시킨 후 데이터베이스 연산을 수행하는 시스템. 디스크 입·출력이 발생하지 않음.
데이터 웨어하우스(Data Warehouse)
급증하는 다량의 데이터를 효과적으로 분석하여 정보화하고 이를 여러 계층의 사용자들이 효율적으로 사용할 수 있도록 한 데이터베이스.
데이터 마트(Data Mart)
전사적으로 구축된 데이터 웨어하우스로부터 특정 주제나 부서 중심으로 구축된 소규모 단일 주제의 데이터 웨어하우스.
데이터 마이닝(Data Mining)
데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법.
데이터 마이닝의 기법
- 연관 : 대용량의 트랜잭션 데이터로부터 A이면 B이다 연관 관계를 발견
- 연속 : 개인별 트랜잭션 이력 데이터를 시계열적으로 분석 후 향후 발생 가능성 예측
- 분류 : 다른 그룹과의 차별적인 특성 도출
- 클러스터링 : 상호 간에 유사한 특성을 갖는 데이터들을 집단화
- 특성화 : 데이터 집합의 일반적인 특성을 분석, 데이터의 요약 과정을 통해 특성 발견
- 패턴 분석 : 데이터베이스 내의 명시된 패턴을 찾는 방법
- 경향 분석 : 시계열 데이터들이 시간 축으로 변화하는 전개 과정을 특성화하여 동적으로 변화하는 데이터를 분석하는 방법
OLAP(OnLine Analytical Processing)
다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식
OLAP 연산
- Roll-up : 분석할 항목에 대해 한 차원의 계층 구조를 따라 단계적으로 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근하는 기능
- Drill-down : 분석할 항목에 대해 한 차원의 계층 구조를 따라 단계적으로 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는 기능
- Drill-through : 데이터 웨어하우스나 OLTP에 존재하는 상세 데이터에 접근하는 기능
- Drill-across : 다른 데이터 큐브의 데이터에 접근하는 기능
- Pivoting : 보고서의 행, 열, 페이지 차원을 바꾸어 볼 수 있는 기능
- Slicing : 다차원 데이터 항목들을 다양한 각도에서 조회하고 자유롭게 비교하는 기능
- Dicing : Slicing을 더 세분화하는 기능
OLAP 종류 :
ROLAP(Relational-OLAP)
: 관계형 데이터베이스와 관계형 질의어를 사용하여 다차원 데이터를 저장하고 분석함
MOLAP(Multi-dimension OLAP)
: 다차원 데이터를 저장하기 위해 특수한 구조의 다차원 데이터베이스를 사용하고 데이터 검색 속도를 향상시키기 위해 큐브 캐시라고 하는 주기억 장치 속에 데이터큐브(Data Cube)를 보관함
데이터큐브(Data Cube) : 특정 목적의 OLAP에서 사용하기 위한 큐브형태의 다차원 논리적구조. 하나의 데이터 웨어하우스에 있는 데이터로부터 여러 개의 데이터 큐브를 생성
HOLAP(Hybrid OLAP)
: ROLAP와 MOLAP의 특성을 모두 가지고 있으며, 빠른 검색이 필요한 경우에는 요약을 메모리에 저장하고 기본 데이터나 다른 요약들을 관계형 데이터베이스에 저장함
OLTP(OnLine Transaction Processing)
: 온라인 업무 처리 형태의 하나로 네트워크상의 여러 이용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 검색하는 등의 단위 작업을 처리하는 방식
ODBC(Open DataBase Connectivity)
: 프로그램과 데이터베이스의 종류에 관계없이 자유롭게 데이터베이스에 접근하여 사용할 수 있도록 Microsoft사가 만든 응용 프로그램의 표준 인터페이스(API)