Post

[정보처리기사] 데이터 입·출력 구현 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)라고 함

트리 관련 용어

image

  • 노드(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 운행법의 방문 순서 image ※ 서브트리를 하나의 노드로 생각할 수 있도록 그림과 같이 서브트리 단위로 묶음. 다른 운행법 모두 공통으로 사용
    1. Preorder는 Root → Left → Right이므로 A13
    2. 1은 B2E이므로 AB2E3
    3. 2는 DHI이므로 ABDHIE3
    4. 3은 CFG이므로 ABDHIECFG

Inorder 운행법

  • 이진트리를 Left → Root → Right 순으로 운행하며 노드들을 찾아가는 방법
  • Inorder 운행법의 방문 순서 image
    1. Inorder는 Left → Root → Right이므로 1A3
    2. 1은 2BE이므로 2BEA3
    3. 2는 HDI이므로 HDIBEA3
    4. 3은 FCG이므로 HDIBEAFCG

Postfix로 표기된 수식을 Infix로 바꾸기

  • Postfix는 Infix 표기법에서 연산자를 해당 피연산자 두 개의 뒤로 이동한 것이므로 연산자를 다시 해당 피연산자 두 개의 가운데로 옮기면 됨 image
    1. 먼저 인접한 피연산자 두 개와 오른쪽의 연산자를 괄호로 묶음 -> ((A ( B C - ) / )( D ( E F + ) * ) + )
    2. 연산자를 해당 피연사자의 가운데로 이동시킴 -> ((A / (B - C)) + (D * (E + F)))
    3. 필요 없는 괄호를 제거 -> 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.