* 개인적으로 정리한 내용으로 참고용으로만 봐주세요 :)
데이터 입·출력 구현
1. 자료 구조
- 선형구조(Linear Structure)
-
① 배열(Array)
: 동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖고 있는 집합
- 정적인 자료 구조, 기억장소의 추가가 어렵고 데이터 삭제 시 메모리의 낭비가 발생
- 첨자를 이용하여 데이터에 접근
- 반복적인 데이터 처리 작업에 적합
- 동일한 이름의 벼누를 사용하여 처리가 간편 -
② 선형리스트(Linear List)
연속 리스트(Contiguous List) : 배열과 같이 연속되는 기억장소에 저장되는 자료 구조
- 이용 효율은 밀도가 1로서 가장 좋음. 삽입, 삭제 시 자료의 이동이 필요연결 리스트(Linked List) : 임의의 기억공간에 기억, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료구조
- 노드의 삽입, 삭제 작업이 용이
- 링크(포인터) 부분이 필요하기 대문에 기억 공간의 이용이 비효율
- 포인터를 찾는 시간이 필요하기 때문에 접근 속도 느림
- 중간 노드 연결이 끊어지면 그 다음 노드 찾기 힘듦 -
③ 스택(Stack) : 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조
- 후입선출(LIFO: Last In First Out) 방식 >> 가장 나중에 삽입된 자료가 가장 먼저 삭제
- 기억 공간이 꽉 차있는 상태에서 데이터가 삽입되면 오버플로우(Overflow), 더 이상 삭제할 데이터가 없는 상태에서 삭제하면 언더플로우(Underflow) 발생 -
④ 큐(Queue) : 한쪽에서는 삽입 작업, 다른 한쪽에서는 삭제 작입이 이루어지는 자료 구조
- 선입선출(FIFO: First In First Out) 방식 >> 가장 먼저 삽입된 자료가 가장 먼저 삭제
- 시작과 끝을 표시하는 두 개의 포인터 -
⑤ 데크(Deque) : 맨 앞이나 뒤로 자료를 저장하거나 꺼낼 수 있는 자료구조
- 비선형구조(Non-Linear Structure)
-
① 트리(Tree)
: 노드(Node))와 가지(Branch))를 이용하여 사이클을 이루지 않도록 구성한 그래프의 특수한 형태
- 하나의 기억 공간을 노드(Node)라 하고, 노드와 노드를 연결하는 선을 링크(Link)라 함
- 노드(Node) : 트리의 기본 요소
- 근 노드(Root Node) : 트리의 맨 위에 있는 노드
- 단말 노드(Terminal Node) : 자식이 하나도 없는 노드
- 디그리(Degree) : 각 노드에서 뻗어나온 가지의 수
- 트리의 디그리 : 노드들의 디그리 중에서 가장 많은 수 -
② 그래프(Graph)
2. 스키마 Schema
1) 정의
- 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세
2) 특징
- 시간에 따라 불변인 특성
- 데이터 사전(Data Dictionary)에 저장되며, 다른 이름으로 메타데이터라고 함
- 데이터의 구조적 틍성을 의미, 인스턴스에 의해 규정
3) 사용자 관점에 따라 분류
외부 스키마(External Schema) = 사용자 뷰(View)
- 사용자, 응용 프로그래머가 각 개인의 입장에서 필요하는 데이터베이스의 논리적 구조를 정의
- 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있으며,
하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공유할 수 있음
개념 스키마(Conceptual Schema) = 전체적인 뷰(View)
- 데이터베이스의 전체적인 논리적 구조,
모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 DB로 하나만 존재
-데이터베이스 관리자(DBA)에 의해서 구성
내부 스키마(Internal Schema) = 저장 스키마(Storage Schema)
물리적 저장장치의 입장에서 본 데이터베이스 구조, 물리적인 저장장치와 밀접한 계층
3. 데이터저장소
데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것을 의미
- 논리 데이터 저장소 : 데이터 및 데이터 간의 연관성, 제약조건을 식별하여 논리적인 구조로 조직화
- 물리 데이터 저장소 : 논리 데이터저장소에 정리된 데이터와 구조들을 하드웨어적인 저장장치에 저장한 것
4. 데이터베이스
1) 정의
특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임
2) 다음과 같이 정의
통합된 데이터(Integrated Data) : 중복을 배제한 데이터 모임
저장된 데이터(Stored Data) : 컴퓨터가 접근 가능한 저장매체에 저장된 데이터
운영 데이터(Operational Data) : 조직의 업무를 수행하는데 반드시 필요한 자료
공용 데이터(Shared Data) : 응용 시스템들이 공동으로 소유, 유지하는 데이터
3) 특징
- 실시간 접근성
- 계속적인 진화
- 동시 공유
- 내용에 의한 참조
- 데이터의 논리적/물리적 독립성
5. DBMS(DataBase Management System; 데이터베이스 관리 시스템)
1) 정의
사용자와 데이터베이스 사이에서 사용자 요구에 따라 정보 생성, 데이터베이스 관리해주는 소프트웨어
데이터의 종속성과 중복성의 문제를 해결, 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리
2) 필수 기능
- 정의(Definition) :저장될 데이터의 형(Type)나 구조 정의, 제약 조건 등을 명시
- 조작(Manipulation) : 데이터 검색, 갱신, 삽입, 삭제 등 처리하기 위해 인터페이스 수단을 제공
- 제어(Control) : 무결성 유지, 보안유지, 권한을 검사, 정확성 유지, 병행 제어 가능해야함
3) 장´단점
데이터의 논리적, 물리적 독립성 보장
데이터의 중복을 피해 기억 공간 절약
저장된 자료를 공동으로 이용가능
데이터의 실시간 처리가 가능
전문가가 부족
시스템이 복잡
전산화 비용이 증가
대용량 디스크로의 집중적인 접근으로 과부화가 발생
6. 데이터베이스 설계
데이터베이스 스키마를 개발하는 과정
첫 번째, 요구 조건 분석 : 수집, 요구 조건 명세 작성
두 번째, 개념적 설계
- 개념 스키마 모델링
- 트랜잭션 모델링
- 독립적인 개념 스키마를 설계
세 번째, 논리적 설계
- 물리적 저장 장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환
- 논리적 스키마 설계
- 트랜잭션의 인터페이스 설계
- 관계형 데이터베이스라면 테이블을 설계하는 단계
네 번째, 물리적 설계
- 물리적 구조의 데이터로 변환
- 파일의 저장 구조 및 엑세스 경로를 결정
- 저장 레코드의 형식, 순서, 접근 경로 등 컴퓨터에 저장되는 방법을 묘사
다섯 번째, 데이터베이스 구현
- 데이터베이스 스키마를 파일로 생성
- DBMS의 DDL을 이용하여 구축
7. 데이터모델
현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화 하여 체계적으로 표현한 개념적 모형
1) 데이터 모델 구성 요소
① 개체(Entitiy) : 개념이나 정보 단위 같은 현실 세계의 대상체
② 속성(Attribute) : 데이터의 가장 작은 논리적 단위
③ 관계(Relationship) : 개체 간의 관계, 속성 간의 논리적인 연결
- 관계의 형태 : 일 대 일(1:1), 일 대 다(1:N), 다 대 다(N:M)
- 관계의 종류
종속 관계(Dependent Relationship) : 식별관계 비식별 관계
중복 관계(Redundant Reationship) : 2번 이상의 종속관계 발생
재귀 관계(Recursive Relationship) : 자기 자신과 관계를 갖는것
배타 관계(Rxclusive Relationship) : 배타 AND관계, 배타 OR관계로 구분
2) 데이터 모델 종류
①개념적 데이터 모델 : 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 속성들로 기술된 개체타입, 개체 타입들 간의 관계를 이용하여 표현
- E-R모델이 대표적
② 논리적 데이터 모델 : 개념적 구조를 컴퓨터 세계의 환경에 맞도록 변환하는 과정
- 데이터타입, 데이터 타입들 간의 관계를 이용하여 표현
- 데이터 간의 관계에 따라 관계모델, 계층모델, 네트워크 모델
③ 물리적 데이터 모델
3) 데이터 모델에 표시할 요소
① 구조(Structure) : 데이터 구조 및 정적 성질을 표현
② 연산(Operation) : 데이터베이스를 조작하는 기본 도구
③ 제약 조건(Constraint) : 실제 데이터의 논리적인 제약 조건
8. 식별자(Idntifier)
하나의 개체 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 구분자, 모든 개체는 한 개 이상의 식별자를 반드시 가져야 한다.
9. E-R(Entity Relationship, 개체-관계) 모델
개념적 데이터 모델의 가장 대표적인 모델, 현실 세계의 데이터를 개념적인 논리 데이터로 표현하기 위한 방법으로 사용
피터 첸 표기법(Peter Chen Notation)
10. 관계형 데이터 모델(Relational Data Model)
- 가장 널리 사용되는 데이터 모델, 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 DB구조
- 개체(Entity), 관계(Relationship)를 모두 릴레이션(Relation)이라는 표(Table)로 표현
- 간결하고 보기 편리하며, 다른 데이터베이스로 변환이 용이
- 성능이 다소 떨어진다.
1) 구조
- 튜플(Tuple) : 릴레이션을 구성하는 각각의 행
- 카디널리티(Cardinality) : 튜플의 수
- 속성(Attribute) : 데이터베이스를 구성하는 가장 작은 논리적 단위
- 디그리(Degree) : 속성의 수
- 도메인(Domain) : 하나의 Attribute가 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합
2) 릴레이션의 특징
- 릴레이션에 포함되는 튜플들은 모두 유일
- 튜플 사이에는 순서가 없음.
- 튜플의 삽입, 삭제 등 작업으로 릴레이션은 시간에 따라 변함
- 속성들 간의 순서는 중요하지 않음
- 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장
11. 키(Key)
후보키(Candidate Key)
속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 집합, 유일성(Unique) 만족 / 최소성(Minimality) 만족
기본키(Primary Key)
후보키 중에서 특별히 선정된 주키(Main Key), 중복된 값, NULL값을 가질 수 없음. 유일성(Unique) 만족 / 최소성(Minimality) 만족
대체키(Alternate Key)
후보키가 둘 이상일 때 기본키를 제외한 나머지 유일성(Unique) 만족 / 최소성(Minimality) 만족
슈퍼키(Super Key)
속성들의 집합으로 구성된 키, 유일성(Unique)만족 / 최소성(Minimality)는 만족하지 못함
외래키(Foreign Key)
다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합, 참조(Reference)관계를 표현하는 중요한 도구, NULL값을 가질 수 없음
12. 무결성(Integrity)
데이터베이스에 저장된 데이터 값과 실제 값이 일치하는 명확성
- 개체 무결성(Entity Integrity)
테이블의 기본키를 구성하는 어떤 속성도 NULL값, 중복값을 가질 수 없는 규정
- 도메인 무결성(Domain Integrity)
속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
- 참조 무결성(Referential Integrity)
외래키 값은 NULL or 참조 릴레이션의 기본키 값과 동일해야함
13. 관계대수 및 관계해석
관계대수(Relational Algebra)
- 순수 관계 연산자
SELECT
조건을 만족하는 튜플의 부분집합으로 새로운 릴레이션을 생성
σ 조건 (릴레이션) ; ex) σAvg>90(성적) => 성적 릴레이션에서 Avg가 90점 이상인 튜플들을 추출하라
PROJECT
제시된 속성값만을 추출하여 새로운 릴레이션을 생성, 중복이 제거됨
π 속성리스트 (릴레이션) ; ex) πName,Avg(성적) => 성적 릴레이션에서 Name과 Avg속성을 추출하라
JOIN
공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 생성
자연 조인(Natural Join) : 중복된 속성을 제거하여 같은 속성을 한번만 표기하는 방법, 두 릴레이션의 속성명과 도메인이 동일 해야함 릴레이션R▷◁속석 릴레이션S
릴레이션R ▷◁키속성r=키속성s 릴레이션S ; ex) 성적 ▷◁No=No 학적부 => 성적 릴레이션과 학적부 릴레이션을 No속성을 기준으로 합쳐라
DIVISION
두 개의 릴레이션에서 R의 속성이 S의 속성값을 모두 가진 튜플에서 S가진 속성을 제외한 나머지 속성만을 구하는 연산
릴레이션R[속성R ÷ 속성s]릴레이션S ex) 구입자[구입품코드÷생산품코드]생산품 => 구입자 릴레이션에서 구입품코드 속성을 제외하고 나머지 속성을 추출함
- 일반 집합 연산자
합집합(UNION) : ∪ / 중복되는 튜플은 제거
교집합(INTERSECTION) : ∩
차집합(DIFFERENCE) : -
교차곱(CARTESIAN PRODUCT) : X
관계해석(Relational Calculus)
- 코드(E. F. Codd)가 수학의 Predicate Calculus(술어 해석)을 기반을 두고 관계 데이터베이스를 위해 제안
- 원하는 정보를 정의하는 비절차적 특성을 가진다.
- 튜플 관계해석, 도메인 관계해석
- 질의어로 표현한다.
- 관계대수로 표현한 식은 관계해석으로 표현 할 수 있음
14. 이상(Anomaly)
테이블의 속성들이 종속으로 인해 데이터의 중복(Redundancy)이 발생하고 이로 인해 테이블 조삭 시 문제가 발생하는 현상
- 삽입 이상(Insertion Anomaly) : 데이터를 삽입할 때 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
- 삭제 이상(Deletion Anomaly) : 튜플을 삭제할 때 상관없는 값들도 함께 삭제되어 연쇄 삭제가 발생하는 현상
- 갱신 이상(Update Anomaly) : 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성(Inconsistency)이 생기는 현상
15. 함수적 종속(Functional Dependency)
테이블 R에서 X,Y를 속성 집합의 부분집합이라 할 때, 속성 X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을때 Y는 X에 함수적 종속이라고 한다.
X → Y, X를 결정자(Determinant) Y를 종속자(Dependent)라 한다.
- 완전 함수적 종속(Full Functional Dependency) : X → Y이면서 속성 X의 어떠한 진부분집합인 Z에도 함수적 종속이 아닐 때 속성 Y는 X에 완전 함수적 종속이라고 함
- 부분 함수적 종속(Partial Functional Dependency) : X → Y이면서 속성 X의 임의의 진부분집합에 대해 함수적 종속일 때, 속성 Y는 X에 부분 함수적 종속이라고 함
* 완전 함수적 종속은 어떤 속성이 기본키에 대해 완전히 종속적일 때, 부분 함수적 종속은 기본키의 일부인 속성에 대해 결정될 때
16. 정규화(Normalization)
테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정, 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이다.
비정규 릴레이션
↓ 도메인이 원자값
1NF : 제 1정규형 (모든 속성의 도메인(Domain)이 원자 값(Atomic Value))
↓ 부분적 함수 종속 제거
2NF : 제 2정규형 (제 1정규형 만족, 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족)
↓ 이행적 함수 종속 제거
3NF : 제 3정규형 (제 2정규형 만족, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속 만족하지 않음)
↓ 결정자이면서 후보키가 아닌 것 제거
BCNF : (Boyce-Codd Normal Form) (모든 결정자가 후보키)
↓ 다치 종속
4NF : 제 4정규형 (다중 값 종속(다치 종속)이 존재할 때, R의 모든 속성이 A에 함수적 종속 관계를 만족
↓ 조인 종속성 이용
5NF : 제 5정규형 (조인 종속이 R의 후보키를 통해서만 성립)
*이행적 함수적 종속 : A → B 이고 B → C 일 때, A → C를 만족하는 관계
*다치 종속 A →→ B : A,B,C 속성을 가진 릴레이션 R에서 복합 속성(A,C)에 해당하는 B값의 지합이 A 값에만 종속 되고 C 값에는 무관한 경우 B는 A에 다치종속
*조인 종속 : 테이블 R과 R의 프로젝션들을 모두 조인한 결과가 동일한 경우
17. 반정규화(Denormalization)
정규화된 데이터 모델을 통합, 중복, 분리 하는 과정
의도적으로 정규화 원칙을 위배하는 행위
시스템의 성능이 향상, 효율성이 증가
- 테이블 통합
두 개의 테이블이 JOIN되는 경우가 많을 경우 수행
- 데이터 검색이 간편
- 레코드 증가로 인해 처리량 증가, 입력/수정/삭제 규칙이 복잡
- Not Null, Default, Check 제약조건(Constraint)을 설계하기 어려움
- 테이블 분할
테이블을 수직, 수평으로 분할
기본키의 유일성을 관리하기 어려움, 수행 속도가 느려질 수 있음
- 수평 분할(Horizontal Partitioning)
레코드(Record)를 기준으로 테이블 분할, 사용빈도에 따라 분할
- 수직 분할(Vertical Partitioning)
속성이 너무 ㅁ낳을 경우 속성을 기준으로 테이블 분할
갱신이 자주 일어나는 속성, 자주 조회되는 속성, 보안을 적용해야 하는 속성들을 수직 분할,
- 중복 테이블 추가
정규화로 인해 수행속도가 느려지는 경우
많은 범위의 데이터를 자주 처리
특정 범위의 데이터만 자주 처리
처리 범위를 줄이진 않고는 수행 속도를 개선할 수 없는 경우
- 중복 속성 추가
조회하는 경로를 압축하기 위해
조인이 자주 발생하는 속성
접근 경로가 복잡한 속성
기본키의 형태가 적절하지 않거나 여러 개의 속성으로 구성된 경우
18. 시스템 카탈로그(System Catalog)
시스템 그 자체에 관련이 있는 객체에 관한 정보를 포함하는 시스템 데이터베이스
DBMS에서 지원하는 모든 테이블 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블
카탈로그들이 생성되면 데이터사전(Data Cictionary)에 저장 되어 카탈로그를 데이터 사전이라도 함
- 시스템 카탈로그 저장 정보
저장된 정보를 메타 데이터(Meta-Data)라고 함
메타 데이터의 유형 : 데이터베이스 객체 정보, 사용자 정보, 테이블의 무결성 제약 조건 정보, 함수, 프로시저, 트리거 등에 대한 정보
- 시스템 카탈로그 특징
일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있음
INSERT, DELETE, UPDATE문으로 카탈로그를 갱신하는 것은 허용 안됨
DBMS가 스스로 생성하고 유지
* Data Directory : 데이터 사전에 수록된 데이터를 실제로 접근하는 데 필요한 정보를 관리 유지하는 시스템, 시스템만 접근 할 수 있음
19. 논리 데이터 모델 > 물리 데이터 모델로 변환
- 테이블 Table : 데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트
- 로우(Row) : 튜플 Tuple, 인스턴스라고도 함
- 칼럼(Column) : 속성 항목에 대한 값을 저장
- 기본키(Primary Key) : 후보키 중 주키(Main Key), 특정 튜플을 유일하게 구별할 수 있는 속성
- 외래키(Foreign Key) : 기본키를 참조하는 속성들의 집합
- 변환 규칙
- 슈퍼타입/서브타입을 테이블로 변환 : 논리데이터 모델에서 이용되는 슈퍼타입/서브타입을 물리 데이터 모델 설계 시 테이블로 변환
- 슈퍼타입 기준 테이블 변환
서브타입을 슈퍼타입에 통합하여 하나의 테이블로 만드는 것
데이터의 엑세스가 상대적으로 용이, SQL 문장 구성이 단순, 수행속도가 빠름, 뷰를 이용하여 각각의 서브타입만 엑세스 / 수정 가능
칼럼의 증가로 디스크 저장 공간이 증가, 인덱스 크기의 증가로 인덱스의 효율이 떨어짐
- 서브타입 기준 테이블 변환
슈퍼타입 속성들을 각각의 서브타입에 추가하여 개별적인 테이블을 만듦
서브타입의 유형을 구분할 필요없음, 테이블당 크기가 감소하여 전체 테이블 스캔시 유리
수행 속도가 감소, SQL의 통합이 어려움, 뷰는 조회만 가능, UID(Unique Identifier)의 유지관리가 어려움
- 속성을 칼럼으로 변환 : 논리 데이터 모델에서 정의한 속성을 물리 데이터 모델의 칼럼으로 변환
Primary UID → 기본키
Secondary(Alternate) UID → 유니크키
20. 인덱스
데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
- 레코드가 저종된 물리적 구조에 접근하는 방법을 제공
- 삽입과 삭제가 수시로 일어나는 경우 인덱스의 개수를 최소로 하는 것이 효율적
모든 기본키에 대해서 자동적으로 기본 인덱스 생성
- 기본 인덱스 : 기본키를 위한 인덱스, 관계형 DBMS에서는 모든 기본키에 대해서 자동적으로 기본 인덱스를 생성
- 보조 인덱스 : 기본 인덱스가 아닌 인덱스>
- 클러스터드 인덱스(Clustered Index) : 레코드의 물리적 순서가 인덱스 엔트리 순서와 일차하게 유지하는 인덱스
- 넌클러스터드 인덱스(Non-Clustered Index) : 덱스의 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 인덱스
종류
- 트리 기반 인덱스 : 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것
B 트리 인덱스 : 루트는 단말 노드가 아닐 때, 적어도 2개의 서브트리를 가짐, 모든 단만 노드는 같은 레벨
B+ 트리 인덱스 : B 트리의 변형, 인덱스 세트(단말 노드가 아닌 노드로 구성)와 순차 세트(단말 노드로만 구성)로 구분된다
- 비트맵 인덱스 : 인덱스 Column의 데이터를 Bit 값인 0 or 1로 변환하여 인덱스 키로 사용하는 방법
- 도메인 인덱스 : 개발자가 필요한 인덱스를 직접 만들어 사용하는 인덱스
21. 트랜잭션(Transaction)
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작접의 단위, 모두 수행되어야할 일련의 연산들
트랙잭션의 특성
-Atomicity(원자성) : 트랙잭션의 연산은 DB에 모두 반영되든지 전혀 반영되지 않지 않도록 복구(Rollack)
Consistency(일관성) : 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전,후 상태가 같아야 함
Isolation(독립성) : 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조 할 수 없음
Durability(영속성) : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
22. 뷰(View)
사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 기본 테이블로부터 도된 가상테이블
저장장치 내에 물리적으로 존재하지 않음
조인문의 사용 최소화로 사용상의 편의성을 최대화
뷰의 특성
- 기본 테이블과 같은 형태의 구조
- 데이터의 논리적 독립성을 제공
- 관리가 용이, 명령문이 간단
- 데이터를 안전하게 보호하는 효율적인 기법
- 기본키를 포함한 속성 집합으로 뷰를 구성할 경무만 삽입, 삭제, 갱신 연산이 가능
- 다른 뷰의 정의에 기초가 될 수 있음
- 기초가 되는 테이블, 뷰의 삭제시 정의된 다른 뷰도 자동 삭제
23. 클러스터(Cluster)
동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
클러스터링키로 지정된 Column 값의 순서대로 저장되고 여러 개의 테이블이 하나의 클러스터에 저장됨
클러스터의 특성
- 데이터 조회 속도 향상, 데이터 입력 / 수정 / 삭제에 대한 성능은 저하
- 데이터의 분포도가 넓을수록 유리
- 데이터 분포도가 넓은 테이블을 클러스터링 하면 저장 공간을 절약
- 파티셔닝된 테이블에는 클러스터링을 할 수 없음
- 클러스터드 인덱스를 생성하면 접근 성능이 향상
- 분포도가 넓은 테이블, 대량의 범위를 자주 조회, 입력 / 수정/ 삭제가 적은 테이블, 자주 조인되어 사용되는 테이블
24. 파티션(Partition)
대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
성능 저하 방지, 데이터 관리도 쉬움
테이블이나 인덱스를 파티셔닝하면 파티션키 또는 인덱스키에 따라 물리적으로 별도의 공간에 데이터가 저장됨
장 단점
파티션별로 데이터가 분산되어 저장되므로 디스크의 성능 향상
파티션별로 데이터가 백업 및 복구를 수행하므로 속도가 빠름
데이터 가용성이 향상
시스템 장애 시 데이터 손상 정도를 최소화
비용이 증가
용랑이 작은 테이블에 수행하면 성능 저하
종류
범위 분할(Range Partitioning) : 지정한 열의 값을 기준으로 분할
해시 분할(Hash Partitioning) : 해시 함수를 적용한 결과 값에 따라 데이터를 분할, 데이터를 고르게 분산할 때 유용
조합 분할(Composite Partitioning) : 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용
인덱스 파티션
Local Partitioned Index : 테이블 파티션과 인덱스 파티션이 1:1 대응
Global Prtitioned Index : 테이블 파티션과 인덱스 파티션이 독립적으로 구성
25. 보안(Security) / 암호화(Encryption)
보안 목표 : 데이터베이스의 권한이 없는 사용자가 엑세스하는 것을 금지
암호화 기법
개인키 암호 방식(Private Key Encryption) = 비밀키 암호 방식
동일한 키로 데이터를 암호화, 복호화
단일키 암호화 기법, DES기법
공개키 암호 방식(Public Key Encryption)
암호화 → 공개키 Public Key사용, 사용자
복호화 → 비밀키 Secret Key, 관리자
비대칭 암호 방식, RSA기법
26. 고급 데이터베이스
1) 분산 데이터베이스(Distributed Database)
논리적으로 하나의 시스템에 속하지만, 물리적으로는 여러 개의 컴퓨터 사이트에 분산되어있는 데이터베이스
분산 데이터베이스 시스템의 구성요소
분산 처리기 : 자체적 처리능력을 가짐, 지리적으로 분산되어있는 컴퓨터 시스템.
분산 데이터베이스 : 지리적으로 분산되어있는 데이터베이스를 해당 지역의 특성에 맞게 데이터베이스가 구성
통신 네트워크 : 분산 처리기들을 통신망으로 연결해 하나의 시스템처럼 작동할 수 있는 통신 네트워크
목표
위치 투명성(Location Transparency) : 엑세스하려는 DB의 실제 위치를 알 필요없음.
중복 투명성(Replication Transparency) : 동일한 데이터가 여러 곳에 중복되어도 사용자는 하나의 데이터만 존재하는 것처럼 사용
병행 투명성(Concurrency Transparency) : 다수의 트랜잭션들이 동시에 수행되어도 영향을 받지 않음
장애 투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 트랜잭션은 정확하게 처리
*투명성 : 사실의 존재 여부를 염두에 두지 않아도 되는 성질
2) 멀티미디어 데이터베이스(Multimedia Database)
텍스트, 그래픽, 정지화상, 동영상, 음성 등이 복합적으로 구성된 데이터베이스
3) 주기억장치 데이터베이스(Main Memory Database
데이터베이스 전체를 주기억장치에 상주시킨 후 데이터베이스 연산을 수행하는 시스템, 디스크 입출력이 발생하지 않음
4) 데이터 웨어하우스(Data Warehouse)
다량의 데이터를 효과적으로 분석하여 정보화 하고, 이를 계층의 사용자가 효율적으로 사용하도록 한 데이터베이스
다양한 원본 DB로부터 정제되어 추출된 데이터만을 저장하고 필요한 인덱스를 생성
5) 데이터 마이닝(Data Mining)
Data Warehouse에 저장된 데이터 집합에서 유용하고 가능성 있는 정보를 발견하기 위한 기법
6) OLAP(Online Analytical Processing)
다차원으로 이루어진 데이터로부터, 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식
Data Warehouse의 데이터를 전략적인 정보로 변환하는 역할
중간 매개체 없이 이용자들이 직접 컴퓨터를 이용해 데이터에 접근하는데 있어서 필수적인 시스템
6) OLTP(Online Transaction Processing)
온라인 업무 처리 형태의 하나. 네트워크 상에서 다수의 유저가 DB의 데이터를 갱신/검색하는 등의 트랜잭션을 처리하는 방식
OLTP 시스템은 일반적으로 빠른 응답 시간을 요구 하며, 개개의 레코드를 효율적으로 조회하고 수정할 수 있도록 정규화되어 있음.
'ㅁㅁㅇㅊ's Life > Certification' 카테고리의 다른 글
제 52회 SQLD 취득 후기 (1) | 2024.06.09 |
---|---|
2020 정보처리기사 2회 실기대비 정리 - 화면 설계 (0) | 2020.06.23 |
2020 정보처리기사 실기 정리 - 서버 프로그램 구현 (0) | 2020.06.21 |
2020 정보처리기사 실기 정리 - 통합 구현 (0) | 2020.06.20 |
2020 정보처리기사 필기 준비과정과 후기 (0) | 2020.06.07 |