[정보처리기사] 데이터 입·출력 구현 2
데이터 입·출력 구현 2
뷰(View)
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블
- 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제됨
- 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용함
파티션의 종류
범위 분할 (Range Partitioning) | 지정한 열의 값을 기준으로 분할함 |
---|---|
해시 분할 (Hash Partitioning) |
|
조합 분할 (Composite Partitioning) |
|
분산 데이터베이스의 목표
- 위치 투명성(Location Transparency) : 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있음
- 중복 투명성(Replication Transparency) : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행함
- 병행 투명성(Concurrency Transparency) : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
- 장애 투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리함
RTO/RPO
RTO(Recovery Time Objective, 목표 복구 시간) | 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간을 의미함 |
---|---|
RPO(Recovery Point Objective, 목표 복구 시점) | 비상사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점을 의미함 |
암호화(Encryption)
- 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것
- 암호화(Encryption) 과정 : 암호화되지 않은 평문을 암호문으로 바꾸는 과정
- 복호화(Decryption) 과정 : 암호문을 원래의 평문으로 바꾸는 과정
- 암호화 기법
- 개인키 암호 방식(Private Key Encryption)
- 공개키 암호 방식(Public Key Encryption)
임의 접근통제(DAC; Discretionary Access Control)
- 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
- 데이터 소유자가 접근통제 권한을 지정하고 제어
- 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수 있음
강제 접근통제(MAC; Mandatory Access Control)
- 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
- 시스템이 접근통제 권한을 지정
- 데이터베이스 객체별로 보안 등급을 부여할 수 있음
- 사용자별로 인가 등급을 부여할 수 있음
DAS(Direct Attached Storage)
- 서버와 저장장치를 전용 케이블로 직접 연결하는 방식
- 일반 가정에서 컴퓨터에 외장하드를 연결하는 것이 여기에 해당됨
- 직접 연결 방식이므로 다른 서버에서 접근할 수 없고 파일을 공유할 수 없음
SAN(Storage Area Networ)
- DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식으로, 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식
- 파이버 채널(Fibre Channel, 광 채널) 스위치를 이용하여 네트워크를 구성
- 파이버 채널 스위치는 서버와 저장장치를 광케이블로 연결하므로 처리 속도가 빠름
- 서버들이 저장장치 및 파일을 공유할 수 있음
스택(Stack)
- 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조
- 후입선출(LIFO; Last In First Out) 방식으로 자료를 처리
- 저장할 기억 공간이 없는 상태에서 데이터가 삽입되면 오버플로(Overflow)가 발생
- 삭제할 데이터가 없는 상태에서 데이터를 삭제하면 언더플로(Underflow)가 발생
방향/무방향 그래프의 최대 간선 수
- 방향 그래프의 최대 간선 수 : n(n-1)
- 무방향 그래프에서 최대 간선 수 : n(n-1)/2
트리(Tree)
- 정점(Node, 노드)과 선분(Branch, 가지)을 이용하여 사이클을 이루지 않도록 구성한 그래프(Graph)의 특수한 형태
- 하나의 기억 공간을 노드(Node)라고 하며, 노드와 노드를 연결하는 선을 링크(Link)라고 함
트리 관련 용어
- 노드(Node) : 트리의 기본 요소로서 자료 항목과 다른 항목에 대한 가지(Branch)를 합친 것
- 근 노드(Root Node) : 트리의 맨 위에 있는 노드
- 디그리(Degree, 차수) : 각 노드에서 뻗어나온 가지의 수
- 단말 노드(Terminal Node) = 잎 노드(Leaf Node) : 자식이 하나도 없는 노드, 즉 Degree가 0인 노드
- Level : 근 노드의 Level을 1로 가정한 후 어떤 Level이 L이면 자식 노드는 L+1
- 깊이(Depth, Height) : Tree에서 노드가 가질 수 있는 최대의 레벨
- 숲(Forest) : 여러 개의 트리가 모여 있는 것
- 트리의 디그리 : 노드들의 디그리 중에서 가장 많은 수
Preorder 운행법
- 이진 트리를 Root → Left → Right 순으로 운행하며 노드들을 찾아가는 방법
- Preorder 운행법의 방문 순서
※ 서브트리를 하나의 노드로 생각할 수 있도록 그림과 같이 서브트리 단위로 묶음. 다른 운행법 모두 공통으로 사용
- Preorder는 Root → Left → Right이므로 A13
- 1은 B2E이므로 AB2E3
- 2는 DHI이므로 ABDHIE3
- 3은 CFG이므로 ABDHIECFG
Inorder 운행법
- 이진트리를 Left → Root → Right 순으로 운행하며 노드들을 찾아가는 방법
- Inorder 운행법의 방문 순서
- Inorder는 Left → Root → Right이므로 1A3
- 1은 2BE이므로 2BEA3
- 2는 HDI이므로 HDIBEA3
- 3은 FCG이므로 HDIBEAFCG
Postfix로 표기된 수식을 Infix로 바꾸기
- Postfix는 Infix 표기법에서 연산자를 해당 피연산자 두 개의 뒤로 이동한 것이므로 연산자를 다시 해당 피연산자 두 개의 가운데로 옮기면 됨
- 먼저 인접한 피연산자 두 개와 오른쪽의 연산자를 괄호로 묶음 -> ((A ( B C - ) / )( D ( E F + ) * ) + )
- 연산자를 해당 피연사자의 가운데로 이동시킴 -> ((A / (B - C)) + (D * (E + F)))
- 필요 없는 괄호를 제거 -> A / (B - C) + D * (E + F)
삽입 정렬(Insertion Sort)
- 가장 간단한 정렬 방식으로, 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬하는 방식
- 평균과 최악 모두 수행 시간 복잡도는 𝑂(𝑛2)
선택 정렬(Selection Sort)
- n개의 레코드 중에서 최소값을 찾아 첫 번째 레코드 위치에 놓고, 나머지 (n-1)개 중에서 다시 최소값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복하여 정렬하는 방식
- 평균과 최악 모두 수행 시간 복잡도는 O(n2)
버블 정렬(Bubble Sort)
- 주어진 파일에서 인접한 두 개의 레코드 키 값을 비교하여 그 크기에 따라 레코드 위치를 서로 교환하는 정렬 방식
- 평균과 최악 모두 수행 시간 복잡도는 O(n2)
퀵 정렬(Quick Sort)
- 키를 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽 서브 파일에 분해시키는 과정을 반복하는 정렬 방식
- 레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬
- 평균 수행 시간 복잡도는 O(nlog2n)이고, 최악의 수행 시간 복잡도는 O(n2)
힙 정렬(Heap Sort)
- 전이진 트리를 이용한 정렬 방식
- 구성된 전이진 트리(Complete Binary Tree)를 Heap Tree로 변환하여 정렬
- 평균과 최악 모두 시간 복잡도는 O(nlog2n)
2-Way 합병 정렬(Merge Sort)
- 이미 정렬되어 있는 두 개의 파일을 한 개의 파일로 합병하는 정렬 방식
- 평균과 최악 모두 시간 복잡도는 O(nlog2n)
This post is licensed under CC BY 4.0 by the author.