230918 TIL #193 정처기 실기 - #5 데이터 입출력 구현 - 3

김춘복·2023년 9월 18일
0

TIL : Today I Learned

목록 보기
193/550

Today I Learned

오늘은 정처기 실기 내용 중 데이터 입출력 구현 남은 파트를 다 공부했다.


데이터 입출력 구현 - 3

하나 이상의 기본테이블로 부터 유도된 이름을 가진 가상 테이블. 논리적 독립성을 가진다.
정의된 기본테이블이 제거되면 뷰도 자동적으로 제거.
뷰를 정의할땐 CREATE문, 제거할때는 DROP문을 쓴다.

파티션의 종류

물리 데이터 저장소의 파티션 설계에서 사용되는 파티션 유형

  • 범위분할 : 지정한 열의 값을 기준으로 분할(월별,일별..)
  • 해시분할 : 해시 함수를 적용한 결과 값에 따라 데이터를 분할. 데이터 분산에 유용.
  • 조합분할 : 범위분할한 다음 해시분할. 범위분할한 파티션이 너무 클때 유용

분산 데이터베이스의 목표

분산 데이터베이스 : 논리적으로는 하나의 시스템이지만 물리적으로는 여러 사이트에 분산된 DB.

  • 위치 투명성 : 엑세스할 때 실제 위치는 알 필요 없이 DB의 논리적 명칭만으로 엑세스 가능
  • 중복 투명성 : 동일 데이터가 여러곳에 중복되어도 유저는 하나의 데이터만 존재하는 것 처럼 사용하고 시스템이 자동으로 수행.
  • 병행 투명성 : 다수의 트랜잭션이 동시에 실현되도 그 트랜잭션의 결과는 영향받지 않음
  • 장애 투명성 : 장애가 발생해도 트랜잭션은 정확하게 처리함

RTO/RPO - A

  • RTO : Recovery Time Objective. 목표 복구 시간. 업무중단시점~복구되어 가동될 때 까지 소요 시간
  • RPO : Recovery Point Objective. 목표 복구 시점. 데이터 복구할 수 있는 기준점.

암호화

데이터 송신시 지정된 수신자 외에는 내용을 알 수 없도록 평문을 암호문으로 변환하는 것.
암호화 - 복호화
개인키암호방식과 공개키암호방식이 있다.


접근 통제(AC)

데이터가 저장된 객체와 사용하려는 주체 사이의 정보 흐름을 제한하는 것

임의접근통제(DAC) - A

데이터에 접근하는 사용자의 신원(Identify)에 따라 접근 권한을 부여하는 방식
데이터 소유자가 접근 통제 권한을 지정하고 제어한다.

강제접근통제(MAC)

주체와 객체의 등급을 비교해 접근 권한을 부여하는 방식.
시스템이 접근 통제 권한을 지정. 보안등급(Label)으로 접근 결정
객체별로 보안등급을 부여할 수 있고, 사용자별로 인가 등급을 부여할 수 있다.

역할기반접근통제(RBAC)

사용자의 역할(Role)에 따라 접근 권한을 부여
중앙관리자가 접근 통제 권한을 지정
다중프로그래밍 환경에 최적화된 방식


서버와 저장장치 연결 방법

DAS

Direct Attached Storage. 서버(호스트)와 저장장치를 전용 케이블로 직접 연결하는 방식
다른 서버에서 접근할 수 없고 파일 공유 불가능

NAS

Network Attached Storage. 서버와 저장장치를 네트워크를 통해 연결하는 방식
별도의 파일 관리 기능이 있는 Nas Storage가 내장된 저장장치를 직접 관리
Ethernet 스위치를 통해 다른 서버에서도 스토리지에 접근할 수 있어 파일 공유가 가능하다.

SAN

Storage Area Network. DAS와 NAS의 장점을 혼합한 방식
서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식
파이버채널(광채널) 스위치를 이용해 네트워크를 구성
처리 속도가 빠르고 파일 공유가 가능하다.


자료구조

  • 선형 자료구조 : 배열, 리스트, 스택, 큐, 데크
  • 비선형 자료구조 : 트리, 그래프

스택

LIFO 후입선출. 한쪽 끝으로만 자료의 삽입과 삭제가 이루어지는 자료구조.
공간이 없을때 삽입하면 Overflow, 꺼낼게 없는데 꺼내면 Underflow가 발생

FIFO 선입선출. 한쪽에서 삽입, 다른 쪽에서는 삭제가 이루어지는 자료구조.
시작을 표시하는 front 포인터와 끝을 표시하는 rear 포인터가 있다.

그래프의 최대 간선 수

  • 방향 그래프의 최대 간선 수 :n(n-1) n은 정점의 개수.
  • 무방향 그래프의 최대 간선 수 : n(n-1)/2

트리

정점(Vertex, =Node)과 간선(Branch, =Link)를 이용해 사이클이 이루어 지지 않도록 구성한 특수한 그래프.
계층 형식의 비선형 구조.

  • 루트노드(근노드) : 맨 위의 노드
  • 차수(Degree) : 각 노드의 간선 수.
  • 단말노드 = 리프노드 : 차수가 0인, 자식이 없는 마지막 노드
  • 레벨 : 루트노드가 1이고 한차수씩 내려올수록 레벨 1씩 증가
  • 깊이(Depth) : 트리에서 가질 수 있는 최대 레벨.
  • 트리의 차수(Degree) : 노드들의 차수 중 max값

트리 운행법

이진 트리를 순회하며 노드들을 방문하는 순서
Preorder(전위순회) :ROOT -> Left -> Right
Inorder(중위순회) : Left -> Root -> Right
Postorder(후위순회) : Left -> Right -> Root

  • Postfit(후위식) : 연산자를 피연산자뒤로 이동한 것. 해당 피연산자들 사이에 두면 우리가 아는 중위식이 된다.

정렬(Sort)

버블정렬(Bubble Sort)

인접한 두개의 레코드를 비교해 위치를 교환하는 방식
시간복잡도는 평균과 최악 모두 O(n^2)

선택정렬(Selection Sort)

최소값을 찾아 맨앞의 값을 뒤의 값들과 비교&교환. 그 다음 최소값을 찾아 앞쪽부분에 계속 쌓아나가는 방식
앞의 값 하나를 뒤의 값과 다 비교하면서 최소를 찾아 교환하는 것
시간복잡도는 평균과 최악 모두 O(n^2)

삽입정렬(Insertion Sort)

이미 순서화된 앞쪽에 새로운 뒤쪽의 레코드를 순서에 맞게 삽입시켜 정렬하는 방식
뒤의 값 하나를 앞쪽에 순서에 맞게 넣는 것
시간복잡도는 평균과 최악 모두 O(n^2)

퀵정렬(Quick Sort)

키(피벗)를 기준으로 작은 값은 왼쪽에, 큰 값은 오른쪽으로 교환해 정렬 하는 방식
하나의 파일을 부분적으로 나누어 가면서 정렬하는 방법이다.
시간복잡도는 평균 O(n log n), 최악O(n^2)

힙정렬(Heap Sort)

완전이진트리를 이용한 정렬 방식. 힙트리를 만들어 가장 큰 키를 맨 뒤부터 쌓는다.
시간복잡도는 최악과 평균 모두 O(n log n)

병합(합병)정렬(Merge Sort)

파일을 다 분해해 다시 합쳐가면서 정렬
시간복잡도는 평균과 최악 모두 O(n log n)

profile
Backend Dev / Data Engineer

0개의 댓글