34. 자료 구조
1) 자료 구조
정렬(오름차순, 내림차순), 검색, 인덱스(독립적인 저장 공간을 보유한, 순서 데이터), 파일 편성 등은 자료 구조를 활용한 것
2) 선형 자료 구조
선형 리스트
배열처럼 연속된 기억 장소에 저장되는 리스트로 가장 간단한 데이터 구조 중 하나
데이터 항목을 추가/삭제하는 것이 불편함 (도중에 끼워넣거나 빼면 앞으로 당겨야 함)
연결 리스트
노드의 포인터 부분을 서로 연결 시킨 리스트로 연속적인 기억 공간이 없어도 저장 가능
노드의 삽입/삭제가 용이하며 포인터를 위한 추가 공간이 필요해 기억 공간이 많이 소요된다.
스택
선형 리스트 한쪽 끝에서만 자료의 삽입/삭제가 이뤄짐
LIFO 방식 (삽입된 자료 위치에 따라 top과 bottom이 있다.)
스택 가드(메모리 상 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장하고, 그 값이 변경될 때 오버플로우 상태로 가정해 프로그램을 중단하는 기술)
0-주소 인스트럭션에 쓰임
큐
선형 리스트의 한쪽 끝에서 삽입, 다른 끝에서 제거가 이뤄짐
FIFO 방식
덱
자료의 삽입과 삭제가 리스트의 양끝에서 이뤄짐 (두 개의 포인터를 사용)
스택과 큐를 복합한 형태
입력 제한 데크를 scroll, 출력 제한 데크를 shelf라고 함
35. 비선형 구조
1) 트리
그래프의 특수한 형태로 노드와 가지를 이용해 사이클을 이루지 않도록 구성한 자료 구조
뿌리 노드, 레벨, 조상 노드, 부모 노드, 자식 노드, 형제 노드
깊이, 차수(뿌리 개수), 단말 노드, 트리의 차수 등등등...
이진 트리
차수가 2 이하인 노드들로 구성된 트리
이 트리의 레벨 k에서 최대 노드의 수는 2^k-1
정이진 트리(모두 2개씩), 전이진 트리(정이진 트리에서 한쪽 방향 노드가 아예 없음), 사향 이진 트리(근노드로부터 한쪽으로 기울어짐)
전위 운행: 뿌리 => 왼 => 오
중위 운행: 왼 => 뿌리 => 오
후위 운행: 왼 => 오른 => 뿌리
2) 그래프
정점과 간선의 집합으로 이뤄진 자료 구조 (표현 방법: 인접 행렬)
방향 그래프, 무방향 그래프, 완전 그래프 등등등...
n개의 노드로 구성된 무방향 그래프의 최대 간선의 수는 n(n-1)/2
전위 표기법: 연산자 => 피연산자 => 피연산자 (+AB)
중위 표기법: 피연산자 => 연산자 => 피연산자 (A+B)
후위 표기법: 피연산자 => 피연산자 => 연산자 (AB+)
인접 행렬
방향 그래프에서 ViVj 관계를 나타내는 행렬의 원소를 Aij라 할 때 방향 간선이 있으면 1, 없으면 0으로 나타냄
무방향 그래프에서 ViVj가 서로 인접하면 1, 인접하지 않으면 0으로 나타냄
36. 정렬
1) 정렬
정렬 알고리즘 선택 시 고려 사항
데이터의 양, 초기 데이터의 배열 상태, 키 값들의 분포 상태, 사용 컴퓨터의 특성 등
종류: 내부 정렬(주기억 장치에서), 외부 정렬(보조 기억 장치에서)
2) 내부 정렬
삽입 정렬
정렬된 파일에 새로운 하나의 레코드를 순서에 따라 삽입시켜 정렬
버블 정렬
인접한 데이터를 비교하면서 그 크기에 따라 데이터의 위치를 바꿔 정렬
선택 정렬
n개의 레코드 중 최소/최대값을 찾아 1st 레코드 위치에 놓고 나머지 중에서 최소/최대 값을 찾아 2nd 레코드 위치에 놓는 것을 반복해 정렬
최대/최소/평균 시간 복잡도 O(n^2)
병합 정렬
두 개의 키들을 한 쌍으로 해 각 쌍에 대해 순서 정렬
순서대로 정렬된 각 쌍의 키들을 합병해 하나의 정렬된 서브 리스트로 만듬
퀵 정렬
하나의 파일을 부분적으로 나눠가며 정렬
키를 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽에 모이도록 서로 교환하는 부분 교환 정렬법
최대/최소/평균 시간 복잡도 O(n^2)
힙 정렬
전이진 트리를 이용해 정렬
정해진 입력 레코드들로 힙을 구성, 가장 큰 키값을 갖는 루트 노드를 제거하는 과정을 반복
입력 자료의 레코드를 완전 이진 트리로 구성
37. 검색과 해싱
1) 검색
검색: 기억 공간 내 기억된 자료 중 주어진 조건을 만족하는 자료를 찾는 것
검색의 종류
이분 검색: 전제 조건으로 자료가 순차적으로 정렬되어야 함. 탐색 시간이 적게 듦
선형 검색: 순차 검색. 1번 레코드부터 순차적으로 찾음. 다소 비효율적
피보나치 검색: 이분 검색과 유사. 비교 대상 기준을 피보나치 수열로 결정
블록 검색: 전체 레코드를 일정 블록으로 분리한 뒤 순서대로 비교
이진 트리 검색: 레코드를 2진 트리로 구성해 검색하는 방식 (근노드 지정 후 근노드보다 작으면 왼쪽, 크면 오른쪽)
2) 해싱
해싱 함수를 이용해 레코드키에 대한 해시 테이블 내의 홈 주소를 계산해 주어진 레코드에 접근하는 방식
직접 접근 파일을 구성할 때 사용됨
속도는 가장 빠르지만 충돌 현상 시 오버플로 부담, 많은 기억 공간 필요
해싱 함수의 종류
제산 방법: 해싱 함수 기법에서 키값을 양의 정수인 소수로 나눠 나머지를 홈 주소로 취함
중간 제곱 방법: 레코드 키값을 제곱하고 그 중간 부분의 값을 주소로 계산함
중첩 방법: 해싱 함수 중 주어진 키를 여러 부분으로 나누고 각 부분의 값을 더하거나 논리합 연산으로 나온 결과를 주소로 취함(폴딩법)
기수 변환 방법: 해싱 함수 기법 중 어떤 진법으로 표현된 레코드 키값을 다른 진법으로 간주해 키값을 변환해서 홈 주소로 취함
계수 분석 방법: 주어진 모든 키값에서 그 키를 구성하는 자릿수들의 분포를 조사해 비교적 고른 분포를 보이는 자릿수들을 택함
오버플로 해결 방법
선형 개방 주소법: 선형 검색 방식. 충돌이 일어나면 버킷들을 차례로 하나씩 검사해 최초로 나온 빈 버켓에 데이터를 저장
폐쇄 주소 방법: 버킷 내 연결리스트를 할당해 데이터를 삽입하다가 충돌 발생 시 리스트로 데이터를 연결함 (=해시 체이닝)
재해싱: 충돌 시 새로운 해시 함수를 적용해 새로운 홈 주소를 계산
3) 해싱 관련 용어
동의어: 해싱에서 동일한 홈 주소로 인해 충돌이 일어난 레코드들의 집합
슬롯: 한 개의 레코드를 저장할 수 있는 공간. n개의 슬롯이 모여 하나의 버킷이 됨
충돌: 레코드를 삽입할 때 2개의 상이한 레코드가 똑같은 버킷으로 해싱되는 것. (충돌 발생 시 항상 오버플로우 발생)
버킷이 여러 개의 슬롯으로 구성될 때는 충돌이 발생해도 오버플로우가 안 일어날 수도 있음
38. 인덱스 구조와 파일 편성
1) 인덱스
인덱스로 레코드에 빠르게 접근할 수 있음
DB의 물리적 구조와 밀접한 관계가 있음
레코드의 삽입/삭제가 자주 발생한다면 인덱스 개수를 최소화하는 것이 효율적
2) 인덱스 구성 방법
B 트리
근 노드와 단말 노드를 제외한 모든 노드가 최소 m/2, 최대 m개의 서브 트리를 갖는 구조
한 노드에 있는 키값은 '오름차순' 유지
근노드로부터 탐색, 추가, 삭제 이뤄짐
B+ 트리 (현재 이 방식)
B 트리의 추가, 삭제 시 발생하는 노드의 분열과 합병 연산 과정을 줄이는 구조
가장 널리 사용되는 인덱스 구조
레코드 삽입, 삭제 시에도 성능 보장
트라이 색인
키 탐색을 위해 키를 구성하는 문자나 숫자 자체의 순서로 키값 구성
삽입, 삭제 시 노드의 분열/병합 X
분자의 함수로 트라이 차수의 키값 표현
3) 파일 편성 방법
파일 어떻게 저장할 건지
순차 파일
입력된 순서에 따라 물리적으로 연속된 위치에 순차적 기록
처리 속도 빠르고 빈 공간이 없어 효율적인 기억장치 이용 가능
대신 검색 효율이 낮고 일괄 처리에 적합. 어떤 형태의 I/O 매체에서도 처리 가능
색인 순차 파일
기본 영역: 데이터 레코드 지정하는 부분
색인 영역(기본 영역에 인덱스가 저장되는 부분): 트랙 인덱스, 실린더 인덱스, 마스터 인덱스
오버플로 영역: 색인 영역이 꽉 찼을 때 블록을 할당 받아 연결시키는 부분. 실린더 / 독립 2가지 부분으로 구성
VSAM 파일
동적 인덱스 방법을 이용한 색인 순차 파일
기본 영역과 오버플로 영역을 구분하지 않음
레코드 삭제 시 해당 공간 재사용 불가
레코드 저장은 제어 구간에서 이뤄짐 (제어 구간 단위별 그룹을 제어 영역이라고 함)
제어 영역에 대한 인덱스 저장은 순차 세트, 순차 세트의 상위 인덱스, 인덱스 세트 등이 있음
직접 파일
해싱 함수를 계산해 물리적 주소에 직접 접근하는 방식
레코드를 임의 물리적 기억 공간에 기록함
속도가 빠르고 랜덤 처리에 효율적. 대신 기억 공간 효율이 떨어짐
역파일
특정 파일을 여러 개의 색인으로 만들고 항목별 특성에 맞게 작업하도록 구성
레코드를 빨리 검색하기 위해 별도 인덱스 파일을 만들어 둠
인덱스 파일에는 키 필드의 값과 그 키값을 가지는 레코드에 대한 포인터가 저장됨
검색 속도가 빠르고 질의응답 시간이 줄어들며 처리가 비교적 쉬움
4) 정적 인덱싱과 동적 인덱싱
정적 인덱싱 - 색인 순차 파일이 대표적
레코드가 삽입, 삭제 되면 인덱스 내용은 변하지만 인덱스 구조는 변하지 않는 구조
인덱스와 데이터 부분을 별개의 파일로 구성
동적 인덱싱 - 가상 기억 접근 방식이 대표적
데이터 파일에 레코드가 삽입되면서 삽입될 레코드를 위해 미리 빈 공간을 준비하는 방법
레코드가 블록에 가득 차면 동적으로 분열됨
39. 데이터베이스의 개념과
1) 자료 처리
데이터: 현실 세계로부터 단순한 관찰이나 측정을 통해 수집된 사실, 값
정보: 자료를 처리해 얻은 결과. 의사 결정을 하기 위한 값
데이터베이스 정의
통합된 데이터, 저장된 데이터, 운영된 데이터, 공용하는 데이터
데이터베이스의 특성
실시간 접근성: 수시적, 비정형적 질의에 대해 실시간 처리로 응답
내용에 의한 참조: 주소나 위치가 아닌 내용을 참조
동시 공유
계속적 변화
DB 구성요소
DBMS, 스키마, DB 언어, DB 사용자
DBMS: 종속성, 중복성의 문제를 해결하기 위해 제안된 시스템. DB 관련 모든 책임
응용 프로그램과 데이터의 중재자. 모든 응용 프로그램들이 DB를 공유할 수 있도록 관리
DBMS의 특징
정의 기능: DB 구조 정의 & 데이터의 논리적-물리적 변환이 가능하도록 두 구조 사이의 매핑 명시
조작 기능: DB에 접근해 데이터의 검색, 삽입 등 연산 작업을 하기 위해 유저와 DB 사이 인터페이스 수단 제공
제어 기능: DB에 접근하는 작업 수행 후 무결성 유지되도록 제어. 보안 및 권한 검사. 정확성 유지를 위해 병행 제어
DBMS 장단점
데이터 웨어하우스
데이터를 모아놓은 하나의 서버
자료 분석하는 기능: OLAP
OLAP의 연산 종류: roll up, drill down, dicing, slicing
40. 데이터베이스의 구성, 모델
1) 데이터베이스의 구성
스키마: DB의 구조(개체, 속성, 관계)에 대한 정의
스키마 3종
외부 스키마: 사용자나 응용 프로그래머가 접근할 수 있는 정의를 기술
개념 스키마: DB 전체를 정의한 것 (범기관적 입장에서 DB 정의)**
내부 스키마: 데이터의 실제 저장 방법을 기술 (실제 DB에 저장될 레코드의 형식 정의, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄 - 물리적)
데이터베이스 언어
데이터 정의어(DDL): 스키마를 정의, 변경하며 삭제하는 기능으로 논리적 데이터 구조와 물리적 데이터 구조 간의 사상 정의다. 번역한 결과가 데이터 사전에 저장된다.
데이터 조작어(DML): 사용자와 DB 관리 시스템 간의 인터페이스를 제공한다. 데이터의 검색/삽입/삭제/변경을 수행함
데이터 제어어(DCI): 불법 사용자로부터 데이터를 보호한다. 무결성을 유지한다. 데이터 회복 및 병행 제어 수행함
데이터베이스 유저
1. DB 관리자(DBA): DB 구축, 관리, 행정적 책임 등등등...
2. 응용 프로그래머: DBA가 설계한 DB 기반 소프트웨어 개발 툴로 소프트웨어 작성. 개발 언어 사용
3. 일반 사용자: 응용 프로그램, 질의어 등으로 DB에 직접 접근해 자원 사용
2) 데이터베이스 모델의 종류
데이터 모델의 개념
현실 세계를 DB로 표현하는 중간 과정
데이터 모델의 구성 요소
데이터 구조
연산
제약 조건
개념적 모델로 도식화 후 논리적 모델로 변환함
관계+객제지향형 = ORDB
개념적 모델
대표적인 개념적 데이터 모델: E-R 모델 (Entity-Relationship)
관계 타입으로 표현
논리적 모델
관계형 데이터 모델: DB를 테이블 집합으로 표현
계층형 데이터 모델: DB를 트리 구조로 표현
네트워크형 데이터 모델: DB를 그래프 구조로 표현 (CODASYL DBTG 모델)
41. 관계형 데이터베이스 모델
1) 관계형 데이터베이스 모델의 개요
속성 === 필드
튜플 === 레코드
튜플의 카디널리티: 튜플의 수 (행의 개수)
차수(degree): 속성의 수
도메인: 하나의 속성이 가질 수 있는 원자값들의 집합
튜플은 유일해야 함 (서로 다른 값을 가짐)
튜플은 무순서성을 가짐
슈퍼 키 (유일성은 만족시키지만 최소성은 만족 X. 둘다 만족시키는 것은 후보 키)
외래 키 (외부 테이블에 연결할 수 있는 키)
개체 무결성: 기본키에 해당되는 내용, 기본키 값은 널이나 중복 값이면 안됨
참조 무결성: 외래키에 해당되는 내용 (참조할 수 없는 값은 가질 수 없음)
도메인 무결성: 릴레이션 중 하나의 속성은 반드시 원자값이어야 함을 보장
42. 데이터베이스 설계와 정규화
1) 데이터베이스 설계 단계
요구단계 분석, 개념적 설계, 논리적 설계, 물리적 설계
2) 데이터베이스 정규화
정규화: 종속성 이론을 이용해 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개 바람직한 스키마로 만드는 과정
좋은 데이터베이스 스키마를 생성하고 불필요한 데이터 중복을 방지, 정보 검색을 용이하게 함
정규화의 목적: 데이터 구조의 안정화, 중복 데이터 최소화, 수정 및 삭제 시 이상현상 최소화, 테이블 불일치 위험 간소화
이상 현상
릴레이션 조작 시 데이터들이 불필요하게 중복돼 예기치 않게 발생하는 곤란한 현상
삽입 이상, 삭제 이상, 갱신 이상 등
3) 함수적 종속
개체 내 존재하는 속성 간의 관계를 종속적인 관계로 정리하는 방법
데이터 속성들의 의미와 속성 간 상호관계로부터 도출되는 제약 조건
기준 값을 결정자, 종속되는 값을 종속자라고 함
속성 Y는 속성 X에 함수적 종속이라 하고 표현은 X(결) -> Y(종)로 함.
완전 함수적 종속
이행 함수적 종속
43. 정규화
1) 정규화 과정
1차 정규형
어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어있는 릴레이션 (하나의 항목에는 중복된 값이 입력될 수 없음)
하나의 속성만 있어야 하고 반복되는 속성은 별도 테이블로 분리
2차 정규형
1정규형을 만족하고 함수적 종속을 제거함
기본키가 아닌 속성 모두가 기본키에 완전 함수 종속이 되도록 별도 테이블로 분리
3차 정규형
1, 2 정규형 만족하고 이행적 함수 종속을 제거
BCNF(보이스/코드) 정규형 (= 강한 3차 정규형 = 모든 결정자가 후보키일 때)
1, 2, 3 정규형을 만족하고, 결정자가 후보키가 아닌 함수 종속이 제거되면 보이스/코드 정규형에 속함
후보키를 여러 개 가지고 있는 릴레이션에서 발생할 수 있는 이상 현상을 해결하기 위해 좀 더 강력한 제약 조건 적용
3 정규형에 해당하지만 3 정규형에 속하는 모든 릴레이션이 보이스/코드 정규형에 속하지는 않음
4 정규형 (1, 2, 3, BCNF를 만족하고 다치 종속을 제거)
5 정규형 (1, 2, 3, BCNF, 4 정규형을 만족하고 후보키를 통하지 않은 조인 종속을 제거)
2) 반정규화
정규화로 정합성과 데이터 무결성이 보장되지만 조회 성능이 떨어질 수 있음 (테이블 수 증가)
시스템 성능 향상 및 개발, 운영 단순화를 위한 데이터 모델링
반정규화 기법: 테이블/컬럼/관계 반정규화
테이블 반정규화 기법: 테이블 병합/분할/추가
테이블 추가 반정규화 유형: 중복/집계/진행/부분 테이블 추가
44. 관계 대수와 연산자
1) 관계 대수와 관계 해석
관계 대수: 원하는 정보와 그 정보를 어떻게 유도하는가 기술하는 절차적 방법
관계 해석: 원하는 정보가 무엇이라는 것만 정의하는 비절차적 방법
2) 순수 관계 연산자
선택: 수평적 연산이라고도 함. 시그마
추출: 수직적
3) 집합 연산자
유니온, 인터섹션, 디퍼런스, 카디션 프로덕트
45. SQL, DDL, DCL, View
1) SQL, DDL
SQL: 관계형 데이터베이스의 표준 질의어
종류: DDL, DML, DCL
DDL: DB 정의/변경/삭제에 쓰이는 언어로 번역한 결과가 데이터 사전에 저장됨 (병행 수행)
CREATE(정의), ALTER(테이블 정의 변경 - 필드 추가, 삭제, 갱신 등), DROP(스키마, 도메인, 테이블, 뷰 삭제)
CREATE문 문법 구조
ALTER문 문법 구조
DROP문 문법 구조
cascade: 참조중인 것도 삭제
restrict: 참조중인건 삭제 안되도록 제한
2) DCL
DCL의 기능
데이터 제어 정의 및 기술에 사용되는 언어
데이터 보호, 무결성 유지, 데이터 복구 및 병행 제어
종류
COMMIT: 완료
ROLLBACK: 원상 복귀
GRANT: DB 사용자에게 권한 부여
REVOKE: DB 사용자로부터 사용 권한 취소
뷰
접근이 허용된 자료만 제한적으로 보여주는 가상 테이블
생성 시 CREATE문, 검색 시 SELECT문, 정의 변경 시 DROP문 (가상 테이블이라 ALTER문 X)
뷰를 이용한 또 다른 뷰 생성 가능
하나의 뷰 제거 시 그 뷰를 기초로 정의한 다른 뷰도 삭제됨
뷰에 대한 조작에서 삽입, 갱신, 삭제 연산은 제약이 따름
뷰가 정의된 기본 테이블 제거 시 뷰도 자동 제거
장점: 논리적 데이터 독립성, 사용자 데이터 관리 편의성, 접근 제어로 보안
단점: ALTER문으로 뷰 정의 변경 불가능, 삽입/갱신/삭제 연산 시 제약
시스템 카탈로그
46. 데이터베이스 조작어
1) DML
데이터 검색/삽입/삭제 시 사용되는 언어
3) NoSQL
SQL만 사용하지 않는 DBMS
비관계형
4) 그룹 함수, 하위 질의
데이터 검색/삽입/삭제 시 사용되는 언어
HAVING절로 조회 검색 시 GROUP BY에 의해 선택된 그룹의 탐색 조건 지정 가능, 그룹 함수와 함께 사용 가능
5) INSERT, UPDATE, DELETE
INSERT문 - INTO
UPDATE문 - SET
DELETE문 - FROM
47. 트랜잭션, 병행 제어
1) 트랜잭션
데이터베이스에서 일어난 연산의 집합
하나의 논리적 기능을 수행하는 직업 단위
특성
원자성: 완전히 수행 완료된 게 아니면 수행되면 안됨 / 커밋, 롤백으로 적용 또는 취소가 한꺼번에 / 중간에 취소가 되어야 함
일관성: 결과가 일관적이어야 함
격리성: 다른 트랜잭션의 간섭을 받으면 안됨
영속성: 완료 결과는 DB에 영구히 기억됨
CRUD Matrix
프로세스와 테이블 간의 매트릭스를 만들어 트랜잭션을 분석하는 도구
즉각 갱신법
데이터 갱신하면 트랜잭션이 완료되기 전 실제 DB에 반영되는 방법
회복 잡얼을 위해 갱신 내용을 별도 log로 기록해야 하며 redo, undo 모두 사용 가능
트랜잭션의 연산
commit: 성공 종료
rollback: 실패
recovery: 장애로 손상된 DB 복구
2) 병행 제어
동시에 수행되는 트랜잭션들을 일관성 있게 처리하려고 제어하는 것
DB의 공유, 일관성, 시스템 활용도 최대화 + 응답 시간 최소화
문제점: 갱신 분실, 비완료 의존성, 모순성, 연쇄 복귀
로킹(내가 작업중이면 다른쪽에서 작업 X)
최적 병행 수행
타임 스탬프(동시성 제어를 위해 직렬화 기법으로 트랜잭션 간 순서를 미리 정함)
다중 버전 기법 등
로킹
단위가 커지면 로크 수가 적어 관리가 쉽지만 병행성 수준은 낮아짐
단위가 작아지면 로크 수가 많아 관리하기 어렵지만 병행성 수준은 높아짐
로킹의 대상이 되는 객체의 크기를 로킹 단위라고 함
2단계 로킹
직렬성(트랜잭션 순서대로 처리)은 보장하나 교착상태 예방 불가능
확장/축소 2단계
각 트랜잭션의 로크 요청과 해제 요청을 2단계로 실시함
48. 보안, 분산 데이터베이스
1) 보안
보안: 권한 없는 사용자로부터 DB 보호
2) 암호화 기법
비밀키(대칭키) 암호화 기법
암호화 키 == 복호화 키 같음
노출되면 안됨
속도 빠름
공개키(비대칭키) 암호화 기법
암호화 키 != 복호화 키
노출되어도 상관 없음
대신 속도 느림
3) 권한 부여 기법
GRANT: DB 사용자에게 사용 권한 부여
GRANT 권한 ON 데이터 객체 TO 사용자 [WITH GRANT OPTION]
부여 가능한 권한: Update, Delete, Insert
REVOKE: 사용 권한 취소
REVOTE [GRANT OPTION FOR] 권한 ON 데이터 객체 FROM 사용자 [CASCADE]
cascade: 권한 받은 사용자가 다른 사용자에게 부여한 권한도 연쇄 취소
부여 가능한 권한: Update, Delete, Insert, Select
트리거: 연쇄 반응을 의미 (일정 작업 수행 시 부수적으로 같이 처리)
4) 분산 데이터베이스
나눠서 저장하자
목표
위치 투명성: 하드웨어와 소프트웨어의 물리적 위치 알바 아님
중복 투명성: 부가적인 복사 자유로움
병행 투명성: 자원을 자동으로 공유함
장애 투명성: 유저는 어디서 장애가 일어났는지 모름
시스템 구성 요소
분산 처리기
분산 데이터베이스
통신 네트워크
장단점 생각해보기
지역 자치성: DB 중앙 관리자 외 각 지역에 담당 관리자 있음
병렬 처리: 하나 이상의 처리를 분산되어 있는 DB에 분산 처리해 처리 속도를 높임
출처: https://www.youtube.com/watch?v=KLj1U03HCNI&list=PL6i7rGeEmTvqEjTJF3PJR4a1N9KTPpfw0&index=5
'✏️ 정보처리기사' 카테고리의 다른 글
[정보처리기사: 필기] 4. 프로그래밍 언어 활용 (0) | 2024.02.11 |
---|---|
[정보처리기사: 필기] 3. 데이터베이스 구축 문제 풀이 (0) | 2024.02.09 |
[정보처리기사: 필기] 2. 소프트웨어 개발 문제 풀이 (0) | 2024.01.26 |
[정보처리기사: 필기] 2. 소프트웨어 개발 (1) | 2024.01.26 |
[정보처리기사: 필기] 1. 소프트웨어 설계 문제 풀이 (2) (2) | 2024.01.25 |