31. 데이터 전환
데이터 전환
- 운영 중인 기존 정보 시스템이 축적되어 있는 데이터를 추출하여 새로 개발할 정보 시스템에서 운영할 수 있도록 변환한 후, 적재하는 일련의 과정
- ETL, 즉 추출, 변환, 적재 과정이라고 한다.
- 데이터 이행, 데이터 이관이라고도 한다.
데이터 전환 계획서
- 데이터 전환이 필요한 대상을 분석하여 데이터 전환 작업에 필요한 모든 계획을 기록하는 문서이다.
- 주요 항목
- 개요
- 대상 및 범위
- 환경 구성
- 조직 및 역할
- 일정
- 방안
- 정비 방안
- 비상 계획
- 데이터 복구 대책
문제
- 데이터 전환
- 데이터 전환 계획서
32. 데이터 검증
데이터 검증
- 원천 시스템의 데이터를 목적 시스템의 데이터로 전환하는 과정이 정상적으로 수행되었는지 여부를 확인하는 과정
- 검증방법과 검증 단계에 따라 분류 가능
검증 방법에 따른 분류
- 로그 검증 : 데이터 전환 과정에서 작성하는 추출, 전환, 적재 로그를 검증
- 기본 항목 검증 : 로그 검증 외에 별도로 요청된 항목에 대해 검증
- 응용 프로그램 검증 : 응용프로그램을 통한 데이터 전환의 정합성 검증
- 응용 데이터 검증 : 사전에 정의된 업무 규칙을 기준으로 데이터 전환의 정합성 검증
- 값 검증 : 숫자 항목의 합계 검증, 코드 데이터의 범위 검증, 속성 변경에 따른 값 검증 수행
검증 단계에 따른 분류
- 추출 : 원천 시스템 데이터에 대한 정확성 확인
- 전환 : 매핑 정의서에 정의된 내용이 정확히 반영되었는지 확인, 매핑 정의서 오류 여부 확인
- DB 적재 : SAM 파일을 적재하는 과정에서 발생할 수 있는 오류나 데이터 누락 여부 등 확인
- DB 적재 후 : 적재 완료 후 정합성 확인
- 전환 완료 후 : 데이터 전환 완료 후 추가 검증 과정을 통해 데이터 전환의 정합성 검증
문제
- 데이터 검증
- 기본 항목 검증, 응용 데이터 검증
33. 오류 데이터 측정 및 정제
오류 데이터 측정 및 정제
- 고품질의 데이터를 운영 및 관리하기 위해 수행
- 데이터 품질 분석 → 오류 데이터 측정 → 오류 데이터 정제 순으로 진행
- 데이터 품질 분석 : 오류 데이터를 찾기 위해 원천 및 목적 시스템 데이터의 정합성 여부를 확인하는 작업
- 오류 데이터 측정 : 데이터 품질 분석을 기반으로 정상 데이터와 오류 데이터의 수를 측정하여 오류 관리 목록을 작성
- 오류 데이터 정제 : 오류 관리 목록의 각 항목을 분석하여 원천 데이터를 정제하거나 전환 프로그램을 수정
오류 상태
- Open : 오류가 보고만 되고 분석되지 않은 상태
- Assigned : 오류의 영향 분석 및 수정을 위해 개발자에게 오류를 전달한 상태
- Fixed : 개발자가 오류를 수정한 상태
- Closed : 수정된 오류에 대해 테스트를 다시 했을 때 오류가 발견되지 않은 상태
- Defferred : 오류 수정을 연기한 상태
- Classified : 보고된 오류를 관련자들이 확인했을 때 오류가 아니라고 확인된 상태
데이터 정제 요청서
- 원천 데이터의 정제와 전환 프로그램의 수정을 위해 요청사항 및 조치사항 등 데이터 정제와 관련된 전반적인 내용을 문서로 작성한 것
- 오류 관리 목록을 기반으로 데이터 정제 요건 목록을 작성하고 이 목록의 항목별로 데이터 정제요청서를 작성한다.
데이터 정제 보고서
- 데이터 정제 요청서를 통해 정제된 원천 데이터가 정상적으로 정제되었는지 확인한 결과를 문서로 작성한 것
- 정제 요청 데이터와 정제된 데이터 항목을 눈으로 직접 비교하여 확인한다.
문제
- 데이터 품질 분석 → 오류 데이터 측정 → 오류 데이터 정제
- Open, Fixed, Deferred
34. 데이터베이스 개요 ⭐
데이터저장소
- 데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것을 의미
- 논리 데이터저장소 : 데이터 및 데이터 간의 연관성, 제약조건을 식별하여 논리적인 구조로 조직화한 것
- 물리 데이터저장소 : 논리 데이터저장소를 소프트웨어가 운용될 환경의 물리적 특성을 고려하여 실제 저장장치에 저장한 것
데이터베이스
- 여러 사람에 의해 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리될 수 있도록 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터이다.
- 데이터베이스는 다음과 같이 구분하여 정의할 수 있다.
- 통합된 데이터 : 자료의 중복을 배제한 데이터의 모임
- 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
- 운영 데이터 : 조직의 고유한 업무를 수행하는 데 반드시 필요한 자료
- 공용 데이터 : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료
DBMS ⭐
- 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
- 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템
- DBMS의 필수 기능 3가지
- 정의 기능 : 데이터의 형과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능
- 조작 기능 : 데이터 검색, 갱신, 삽입, 삭제 등을 위해 인터페이스 수단을 제공하는 기능
- 제어 기능 : 데이터의 무결성, 보안, 권한 검사, 병행 제어를 제공하는 기능
데이터의 독립성
- 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 영향받지 않는다.
- 물리적 독립성 : 응용 프로그램과 보조기억장치 같은 물리적 장치를 독립시킴으로써 디스크를 추가/변경하더라도 응용 프로그램은 영향받지 않는다.
스키마
- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
- 외부 스키마
- 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
- 개념 스키마
- 데이터베이스의 전체적인 논리적 구조
- 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로, 하나만 존재한다.
- 내부 스키마
- 물리적 저장장치의 입장에서 본 데이터베이스 구조
- 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
문제
- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
- 내부 스키마
- 논리적 독립성
- 제어 기능
35. 데이터베이스 설계 ⭐
데이터베이스 설계
- 사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것
데이터베이스 설계 시 고려사항
- 무결성 : 삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건을 항상 만족해야 함
- 일관성 : 데이터베이스에 저장된 데이터들 사이나 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 함
- 회복 : 시스템에 장애가 발생했을 때 장애 발생 직전의 상태로 복구할 수 있어야 함
- 보안 : 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 함
- 효율성 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 함
- 데이터베이스 확장 : 데이터베이스 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가할 수 있어야 함
데이터베이스 설계 순서 ⭐ 개논물
- 요구 조건 분석 : 요구 명세서 작성
- 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R 모델
- 논리적 설계 : 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계
- 물리적 설계 : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환
- 구현 : 목표 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성
요구 조건 분석
- 데이터베이스를 사용할 사람들로부터 필요한 용도를 파악하는 것
- 사용자에 따른 수행 업무와 필요한 데이터의 종류, 용도, 처리 형태, 흐름, 제약 조건 등을 수집
- 수집된 정보를 바탕으로 요구 조건 명세 작성
개념적 설계
- 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 개념 스키마 모델링과 트랜잭션 모델링을 병행하여 수행한다.
- 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성한다.
- DBMS에 독립적인 개념 스키마를 설계한다.
논리적 설계
- 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
- 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계
- 트랜잭션의 인터페이스 설계
물리적 설계
- 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
- 데이터베이스 파일의 저장 구조 및 액세스 경로 결정
- 저장 레코드의 형식, 순서, 접근 경로, 조회 집중 레코드 등의 정보를 사용해 데이터가 컴퓨터에 저장되는 방법을 묘사
데이터베이스 구현
- 논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 셍성하는 과정
- 사용하려는 특정 DBMS의 DDL 을 이용해 데이터베이스 스키마를 기술한 후 컴파일하여 빈 데이터베이스 파일을 생성
- 응용 프로그램을 위한 트랜잭션 작성
- 데이터베이스 접근을 위한 응용 프로그램 작성
문제
- 개 → 논 → 물
- 논리적
- 물리적
36. 데이터 모델의 개념
- 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화해 체계적으로 표현한 개념적 모형
- 구성 요소 : 개체, 속성, 관계
- 종류 : 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델
- 표시할 요소 : 구조, 연산, 제약 조건
개념적 데이터 모델
- 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
논리적 데이터 모델
- 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정
표시할 요소
- 구조 : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
- 연산 : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
- 제약 조건 : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
37. 데이터 모델의 구성 요소
개체
- 데이터베이스에 표현하려는 것으로, 사람이 생각하는 개념이나 정보단위같은 현실 세계의 대상체
속성
- 데이터베이스를 구성하는 가장 작은 논리적 단위
속성에 따른 분류
속성의 개체 구성 방식에 따른 분류
관계
- 개체와 개체 사이의 논리적인 연결
- 개체 간의 관계와 속성 간의 관계
관계의 형태
관계의 종류
38. 식별자
식별자
- 하나의 개체 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 구분자
식별자의 분류
- 대표성 여부
- 스스로 생성 여부
- 단일 속성 여부
- 대체 여부
후보 식별자
- 개체에서 각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성 집합
주 식별자의 특징
39. E-R(개체-관계) 모델 ⭐
E-R 다이어그램
- 사각형 : 개체 타입
- 마름모 : 관계 타입
- 타원형 : 속성
- 이중 타원 : 다중값 속성
- 밑줄 타원 : 기본키 속성
- 복수 타원 : 복합 속성
- 관계 : 개체 간 관계에 대한 대응수를 선 위에 기술
- 선, 링크 : 개체 타입과 속성을 연결
40. 관계형 데이터베이스의 구조 / 관계형 데이터 모델 ⭐
관계형 데이터베이스
- 2차원적인 표를 이용해서 데이터 상호 관계를 정의하는 데이터베이스
릴레이션 구조
- 데이터들을 표의 형태로 표현한 것으로, 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성
튜플
속성
- 데이터베이스를 구성하는 가장 작은 논리적 단위
도메인
- 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합
릴레이션의 특징
- 릴레이션에 포함된 튜플은 모두 상이하다.
- 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
- 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
- 속성들 간의 순서는 중요하지 않다.
- 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 같을 수 있다.
- 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키로 설정한다.
- 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장한다.
관계형 데이터 모델
- 2차원적인 표를 이용해 데이터 상호 관계를 정의하는 DB 구조를 말한다.
41. 관계형 데이터베이스의 제약 조건 - key ⭐
키
데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서데로 정렬할 때 기준이 되는 속성
후보키
- 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
기본키
대체키
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
슈퍼키
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
외래키
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
42. 관계형 데이터베이스의 제약 조건 - 무결성 ⭐
무결성
- 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성
무결성의 종류
- 개체 무결성
- 참조 무결성
- 도메인 무결성
- 사용자 정의 무결성
- NULL 무결성
- 고유 무결성
- 키 무결성
- 관계 무결성
데이터 무결성 강화
- 애플리케이션, 데이터베이스 트리거, 제약 조건을 이용해 강화할 수 있다.
43. 관계대수 및 관계해석 ⭐
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적인 언어
순수 관계 연산자
- select
- project
- join
- division
일반 집합 연산자
- 수학적 집합 이론에서 사용하는 연산자
- 합집합
- 교집합
- 차집합
- 교차곱
관계해석
44. 이상 / 함수적 종속
이상
- 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상
- 삽입 이상, 삭제 이상, 갱신 이상
함수적 종속
- 어떤 테이블 R의 속성 집합의 부분집합인 X와 Y가 있을 때, X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속 또는 X가 Y를 함수적으로 결정한다고 하고, X → Y로 표기한다.
45. 정규화
- 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용해 테이블을 무손실 분해하는 과정
정규화 과정
- 제1 정규형 : 테이블에 속한 모든 속성의 도메인이 원자 값만으로 되어있는 정규형. 즉 테이블의 모든 속성 값이 원자값만으로 되어 있는 정규형
- 제2 정규형 : 기본키가 아닌 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형
- 제3정규형 : 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형
- BCNF : 테이블 R에서 모든 결정자가 후보키인 정규형
- 제4정규형 : 테이블 R에 다중 값 종속이 존재할 경우 테이블의 모든 속성이 함수적 종속 관계를 만족하는 정규형
- 제5정규형 : 모든 조인 종속이 테이블의 후보키를 통해서만 성립되는 정규형
46. 반정규화 ⭐
반정규화
- 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
테이블 통합
- 두 개의 테이블이 조인되어 사용되는 경우가 많을 경우 성능 향상을 위해 아예 하나의 테이블로 만들어 사용하는 것
테이블 분할
중복 테이블 추가
- 작업의 효율성을 향상시키기 위해 테이블 추가
- 집계 테이블 추가
- 진행 테이블 추가
- 특정 부분만을 포함하는 테이블 추가
중복 속성 추가
- 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가
47. 시스템 카탈로그
시스템 카탈로그
- 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
메타 데이터
데이터 디렉터리
- 데이터 사전에 수록된 데이터에 접근하는 데 필요한 정보를 관리 유지하는 시스템
48. 데이터베이스 저장 공간 설계
- 테이블
- 데이터베이스의 가장 기본적인 객체
- 로우, 컬럼으로 구성되어 있음
- 데이터베이스의 모든 데이터는 테이블에 저장됨
- 컬럼
- 테이블의 열을 구성하는 요소
- 데이터 타입, 길이 등으로 정의됨
- 테이블스페이스
- 테이블이 저장되는 논리적인 영역
- 한 개의 테이블스페이스에 한 개 이상의 테이블을 저장할 수 있음
테이블 종류
- 일반 테이블
- 대부분의 DBMS에서 표준 테이블로 사용되는 테이블 형태
- 클러스터드 인덱스 테이블
- 기본키나 인덱스키의 순서에 따라 데이터가 저장되는 테이블
- 일반적인 인덱스를 사용하는 테이블에 비해 접근 경로가 단축됨
- 파티셔닝 테이블
- 대용량의 테이블을 작은 논리적 단위인 파티션으로 나눈 테이블
- 외부 테이블
- 데이터베이스에서 일반 테이블처럼 이용할 수 있는 외부 파일
- 데이터베이스 내에 객체로 존재
- 임시 테이블
- 트랜잭션이나 세션별로 데이터를 저장하고 처리할 수 있는 테이블
- 임시 테이블에 저장된 데이터는 트랜잭션이 종료되면 삭제된다.
49. 트랜잭션 분석 / CRUD 분석 ⭐
트랜잭션
- 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
- 한꺼번에 모두 수행되어야 할 일련의 연산
- 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위로 사용된다.
- 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위로 사용된다.
트랜잭션
- Atomicity, 원자성 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 아니면 전혀 반영되지 않도록 복구되어야 한다.
- Consistency, 일관성 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
- Isolation, 독립성, 격리성, 순차성 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음
- Durability, 영속성, 지속성 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
CRUD 분석
- 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것
- 많은 트랜잭션이 몰리는 테이블을 파악할 수 있으므로 디스크 구성 시 유용한 자료로 활용할 수 있다.
- CRUD 매트릭스
- 2차원 형태의 표로서, 행에는 프로세스를, 열에는 테이블을, 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하여 프로세스와 데이터 간의 관계를 분석하는 분석표이다.
- CRUD 매트릭스를 통해 트랜잭션이 테이블에 수행하는 작업을 검증한다.
- 각 셀에는 Create, Read, Update, Delete의 앞 글자가 들어가며, 복수의 변화를 줄 때는 C > D > U > R의 우선순위를 적용해 한 가지만 적지만, 활용 목적에 따라 모두 기록할 수 있다.
- CRUD 중 어느 것도 적히지 않은 행이나 열, C나 R이 없는 열을 확인하여 불필요하거나 누락된 테이블 또는 프로세스를 찾는다.
트랜잭션 분석
- 테이블에 발생하는 트랜잭션의 양을 분석하여 테이블에 저장되는 데이터의 양을 유추하고 이를 근거로 DB의 용량 산정 및 구조의 최적화를 목적으로 한다.
- 업무 개발 담당자가 수행한다.
- 프로세스가 과도하게 접근하는 테이블을 확인할 수 있으며, 이러한 집중 접근 테이블을 여러 디스크에 분산 배치함으로써 디스크 입출력 향상을 통한 성능 향상을 가져올 수 있다.
- 트랜잭션 분석서
- 단위 프로세스와 CRUD 매트릭스를 이용하여 작성한다.
- 구성 요소 : 단위 프로세스, CRUD 연산, 테이블명, 컬럼명, 테이블 참조 횟수, 트랜잭션 수, 발생 주기 등
50. 인덱스
인덱스
- 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조이다.
- 인덱스는 레코드가 저장된 물리적 구조에 접근하는 방법을 제공한다.
- 인덱스를 통해서 파일의 레코드에 빠르게 액세스할 수 있다.
- 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적이다.
인덱스의 종류
- 트리 기반 인덱스
- 비트맵 인덱스
- 함수 기반 인덱스
- 비트맵 조인 인덱스
- 도메인 인덱스
클러스터드 / 넌클러스터드 인덱스
- 클러스터드 인덱스
- 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
- 넌클러스터드 인덱스
- 인덱스의 키 값만 정려로디어 있고 실제 데이터는 정렬되지 않는 방식
51. 뷰 / 클러스터
뷰
- 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블
- 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP 문을 사용한다.
뷰의 장단점
- 장점
- 논리적 데이터 독립성을 제공함
- 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해 줌
- 사용자의 데이터 관리를 간단하게 해줌
- 접근 제어를 통한 자동 보안이 제공됨
- 단점
- 독립적인 인덱스를 가질 수 없음
- 뷰로 정의를 변경할 수 없음
- 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름
클러스터
- 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
- 처리 범위가 넓은 경우에는 단일 테이블 클러스터링을, 조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용한다.
52. 파티션
- 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
장단점
파티션의 종류
- 범위 분할 : 일별, 월별, 분기별 등 지정한 열의 값을 기준으로 분할
- 해시 분할 : 해시 함수를 적용한 결과 값에 따라 데이터를 분할. 데이터를 고르게 분산할 때 유용
- 조합 분할 : 범위분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
53. 분산 데이터베이스 설계 ⭐
분산 데이터베이스의 목표(투명성)
- 위치 투명성 : 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있다.
- 중복 투명성 : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.
- 병행 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.
- 장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리한다.
54. 데이터베이스 이중화 / 서버 클러스터링
데이터베이스 이중화의 분류
- Eager 기법 : 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법
- Lazy 기법 : 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법. 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주됨
클러스터링
- 고가용성 클러스터링 : 하나의 서버에 장애가 발생하면 다른 노드(서버)가 받아 처리하여 서비스 중단을 방지하는 방식. 일반적으로 언급되는 클러스터링이 고가용성 클러스터링
- 병렬 처리 클러스터링 : 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리하는 방식
RTO / RPO
- RTO : 목표 복구 시간. 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간을 의미
- RPO : 목표 복구 시점. 비상사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점을 의미
55. 데이터베이스 보안
접근통제 3요소
- 접근통제 정책 : 어떤 주체가 언제, 어디서, 어떤 객체에게, 어떤 행위에 대한 허용 여부를 정의하는 것으로, 신분 기반 정책, 규칙 기반 정책, 역할 기반 정책이 있다.
- 접근통제 매커니즘 : 정의된 접근통제 정책을 구현하는 기술적인 방법으로, 접근통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화 등이 있다.
- 접근통제 보안모델 : 보안 정책을 구현하기 위한 정형화된 모델로, 기밀성 모델, 무결성 모델, 접근통제 모델이 있다.
접근통제 기술
- 임의 접근통제 (DAC)
- 데이터에 접근하는 사용자의 신원에 따라 접근 권한 부여
- 데이터 소유자가 접근통제 권한을 지정하고 제어
- 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수도 있음
- 강제 접근통제 ( MAC )
- 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
- 시스템이 접근통제 권한을 지정
- 데이터베이스 객체별로 보안 등급 부여 가능
- 사용자별로 인가 등급 부여 가능
- 역할 기반 접근통제 (RBAC)
- 사용자의 역할에 따라 접근 권한을 부여하는 방식
- 중앙관리자가 접근통제 권한을 지정
- 임의 접근통제와 강제 접근통제의 단점을 보완
- 다중 프로그래밍 환경에 최적화된 방식
접근통제 보안 모델
- 기밀성 모델
- 군사적인 목적으로 개발된 최초의 수학적 모델
- 기밀성 보장이 최우선
- 군대 시스템 등 특수 환경에서 주로 사용됨
- 무결성 모델
- 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델
- 접근통제 모델
- 접근통제 매커니즘을 보안 모델로 발전시킨 것
- 대표적으로 접근통제 행렬이 있음
- 접근통제 행렬 : 임의적인 접근통제를 관리하기 위한 보안 모델로, 행은 주체, 열은 객체 즉 행과 열로 주체와 객체의 권한 유형을 나타냄
56. 데이터베이스 백업
로그 파일
- 로그 파일은 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일이다.
- 로그 파일을 기반으로 데이터베이스를 과거 상태로 복귀시키거나 현재 상태로 재생시켜 데이터베이스 상태를 일관성 있게 유지할 수 있다.
UNDO / REDO
- 데이터베이스 버퍼의 내용을 동기/비동기적으로 갱신한 경우의 복구 알고리즘
- 데이터베이스 기록 전에 트랜잭션이 완료될 수 있으므로 완료된 트랜잭션이 데이터베이스에 기록되지 못했다면 다시 실행해야 한다.
57. 스토리지
스토리지의 종류 세 가지
DAS
- 하드디스크와 같은 데이터 저장장치를 호스트 버스 어댑터에 직접 연결하는 방식
- 저장장치와 호스트 기기 사이에 네트워크 디바이스 없이 직접 연결하는 방식으로 구성
58. 논리 데이터 모델의 변환
엔티티 테이블 변환 규칙
- 엔티티 → 테이블
- 속성 → 컬럼
- 주 식별자 → 기본키
- 외부 식별자 → 외래키
- 관계 → 관계
59. 물리 데이터 모델 품질 검토
물리 데이터 모델 품질 기준
- 정확성 : 데이터 모델이 요구사항이나 업무 규칙, 표기법에 따라 정확하게 표현되었음
- 완전성 : 데이터 모델이 데이터 모델의 구성 요소를 누락 없이 정의하고 요구사항이나 업무 영역을 누락 없이 반영하였음
- 준거성 : 데이터 모델이 데이터 표준, 표준화 규칙, 법적 요건 등을 정확하게 준수하였음
- 최신성 : 데이터 모델이 최근의 이슈나 현행 시스템을 반영하고 있음
- 일관성 : 데이터 모델이 표현상의 일관성을 유지하고 있음
- 활용성 : 작성된 모델과 설명을 사용자가 충분히 이해할 수 있고, 업무 변화에 따른 데이터 구조의 변경이 최소화될 수 있도록 설계되었음
60. 자료 구조
배열
- 크기와 형이 동일한 자료들이 순서대로 나열된 자료의 집합
방향 / 무방향 그래프의 최대 간선 수
- 방향 그래프의 최대 간선 수 : n * ( n - 1 )
- 무방향 그래프에서 최대 간선 수 : n * (n - 1) / 2
선형 리스트
- 연속 리스트
- 배열과 같이 연속되는 기억장소에 저장되는 자료 구조
- 기억장소를 연속적으로 배정받기 때문에 중간에 데이터를 삽입하기 위해서는 연속된 빈 공간이 있어야 하며, 삽입 삭제 시 자료의 이동이 필요
- 연결 리스트
- 자료들을 반드시 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조
- 노드의 삽입 삭제 작업이 용이하지만, 연결을 위해 포인터를 사용하기 때문에 기억 공간의 이용 효율과 접근 속도가 좋지 않다.
61. 트리 ⭐
- 근 노드 : 트리의 맨 위에 있는 노드
- 디그리 : 각 노드에서 뻗어나온 가지의 수
- 단말 노드 : 자식이 하나도 없는 노드, 즉 Degree가 0인 노드
- 비단말 노드 : 자식이 하나라도 있는 노드, 즉 Degree가 0이 아닌 노드
- 조상 노드 : 임의의 노드에서 근 노드에 이르는 경로상에 있는 노드들
- 자식 노드 : 어떤 노드에 연결된 다음 레벨의 노드들
- 부모 노드 : 어떤 노드에 연결된 이전 레벨의 노드들
- 형제 노드 : 동일한 부모를 갖는 노드들
- 트리의 디그리 : 노드들의 디그리 중에서 가장 많은 수
62. 이진 트리 ⭐
Prefix로 바꾸기
- 연산 우선순위에 따라 괄호로 묶는다
- 연산자를 해당 괄호의 앞으로 옮긴다
- 괄호를 제거한다
Postfix로 바꾸기
- 연산 우선순위에 따라 괄호로 묶는다
- 연산자를 해당 괄호의 뒤로 옮긴다
- 괄호를 제거한다
63. 정렬 ⭐
선택 정렬
n개의 레코드 중에서 최소값을 찾아 첫 번째 레코드 위치에 놓고, 나머지 n-1개 중에서 다시 최소값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복
삽입 정렬
이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬하는 방식
퀵 정렬
키를 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽 서브 파일에 분해시키는 과정을 반복하는 정렬 방식
버블 정렬
인접한 두 개의 레코드 키 값을 비교하여 크기에 따라 레코드 위치를 서로 교환하는 정렬 방식. On**2