728x90
데이터 입출력 구현
데이터 모델
- 복잡한 데이터 구조를 단순화, 추상화하여 체계적으로 표현한 개념적 모형
- 표시 요소
- 구조: 개념적 스키마 구성(ERD)
- 연산: 데이터 처리 방법
- 제약조건: 데이터의 논리적 제약조건
- 데이터 모델 절차
- 요구조건 분석
- 개념적 설계(개념적 데이터 모델): 트랜잭션을 모델링, ERD가 주요 산출물
- 논리적 설계(논리적 데이터 모델): 트랜잭션의 인터페이스 설계, 논리적 스키마 설계(정규화 수행)
- 물리적 설계(물리적 데이터 모델): 반정규화 수행
논리 데이터 모델
- 개념 모델로부터 업무 영역이 업무 데이터 및 규칙을 구체적으로 표현한 모델
- 개체, 속성, 관계
논리 데이터 모델링 종류
1. 관계 데이터 모델
- 구성
- 릴레이션, 튜플, 속성, 카디널리티, 차수, 스키마, 인스턴스
- 관계 대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
- 일반 집합 연산자: 합집합, 교집합, 차집합, 카티션 프로덕트
- 순수 관계 연산자: 셀렉트, 프로젝트, 조인, 디비전
- 관계 해석: 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
2. 계층 데이터 모델
- 논리적 구조가 트리 형태, 상하관계 존재, 1:N 관계만 허용
3. 네트워크 데이터 모델
- 그래프 형태, N:M 관계 만족
정규화
- 데이터의 중복성을 제거해 이상현상을 방지하고 무손실 분해하는 과정
- 이상현상
- 삽입 이상: 불필요한 데이터가 함께 삽입되는 현상
- 삭제 이상: 연쇄 삭제 현상으로 인해 정보 손실
- 갱신 이상: 일부 정보만 갱신되어 정보에 모순이 생기는 현상
- 함수 종속
- Full Functional Dependency(완전 함수 종속): 종속자가 기본키에만 종속
- Partial Functional Dependency(부분 함수 종속): 기본키를 구성하는 속성 중 일부만 종속되는 경우
- Transitive Functional Dependency(이행 함수 종속)
- 정규화 과정
비정규 Relation ↓ 도메인이 원자값 제1정규형 ↓ 부분 함수적 종속제거 제2정규형 ↓ 이행적 함수 종속 제거 제3정규형 ↓ 결정자이면서 후보키가 아닌 것 제거 BCNF ↓ 다치 종속 제거 제4정규형 ↓ 조인 종속성 이용 제5정규형
반정규화
- 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
- 테이블 병합, 테이블 분할, 테이블 추가
- 컬럼 중복화
- 중복 관계 추가
데이터베이스 이중화
- 장애에 대비하여 동일한 데이터베이스를 중복하여 관리하는 방식
- 장애나 재해 발생 시 빠른 서비스 재개(고가용성)
- 이중화 분류
- Eager 기법: 트랜잭션 발생 시 즉시 반영
- Lazy 기법: 트랜잭션 완료 후 반영
데이터베이스 백업
- 전체 백업
- 증분 백업: 변경/추가된 데이터만 백업
- 차등 백업: 모든 변경/추가된 데이터를 백업
- 합성 백업: 전체 백업본과 여러 개의 증분 백업을 합하여 새로운 전체 백업을 만드는 작업
RTO / RPO
- 복구 시간 목표(RTO)
- 서비스를 사용할 수 없는 상태로 허용되는 시간
- 복구 시점 목표(RPO)
- 마지막 백업 이후 허용되는 최대 데이터 손실 시간
데이터베이스 암호화
- API 방식: 애플리케이션에서 수행
- Plug-in 방식: DB 서버에 제품 설치 후 수행
- TDE 방식: DBMS 내부의 기본 모듈로 수행
물리 데이터 모델
- 파티셔닝: 데이터베이스의 특정 부분을 여러 섹션으로 분할하는 방법
- 클러스터: 자주 사용되는 테이블의 데이터를 디스크 상 동일한 위치에 저장
- 인덱스: 테이블 검색 속도 향상을 위한 저장 공간 활용 자료구조
- 뷰: 기본 테이블에서 유도된 이름이 있는 가상 테이블
시스템 카탈로그
- 데이터베이스의 모든 데이터 개체들에 대한 정보를 저장한 시스템 테이블
- 데이터 사전(Data Dictionary)이라고도 한다
관계 데이터 릴레이션 구조
- 릴레이션
- 릴레이션 스키마: 릴레이션의 논리적 구조
- 릴레이션 인스턴스: 스키마에 실제로 저장된 데이터의 집합
- 속성(Attribute): 릴레이션의 열, 개체의 특성
- 튜플: 릴레이션의 행, 속성들의 모임
- 도메인: 속성이 가질 수 있는 값의 범위
- 차수(Degree): 속성의 총 개수
- 카디널리티: 튜플의 총 개수
속성
- 정보의 최소 단위
- 속성의 분류
- 기본속성: 업무로부터 추출한 모든 속성
- 설계속성: 코드성 데이터
- 파생속성: 다른 속성에 영향을 받아 발생하는 속성
키(KEY)
- 튜플을 식별하고 구별하는 데 사용되는 컬럼
- 키의 종류
- 슈퍼키(유일성)
- 후보키(최소성)
- 기본키
- 대체키
무결성 제약조건
- 개체 무결성
- NULL 불가, 중복 불가
- 참조 무결성
- 외래키는 NULL이거나 참조 릴레이션의 기본키와 일치해야 함
- Restrict(제한), Cascade(연쇄삭제)
- 도메인 무결성
- 속성 값은 정의된 도메인에 속해야 한다.
접근 통제 기술(AC, Access Control)
- MAC(Mandatory; 강제적) : 주체와 객체의 등급을 비교 후 시스템이 접근 권한 부여(규칙 기반 접근 통제)
- DAC(Discretionary; 임의적) : 사용자의 신원/신분에 따라 접근 권한 부여, 데이터 소유자가 접근 통제 권한 지정/제어( 신분 기반 접근 통제)
- RBAC(Role Based) : 사용자의 역할에 따라 접근 권한 부여 (중앙관리자가 지정)
CRUD
- 해당 업무에 어떤 데이터가 존재하는지 무엇이 영향을 받는지 분석
- Create, Read, Update, Delete
옵티마이저
- SQL문에 대한 최적의 실행 방법을 결정
- 옵티마이저 구분
- 규칙기반 옵티마이저: 우선순위
- 비용기반 옵티마이저
튜닝
- SQL문을 최적화하여 시스템의 처리량과 응답 속도를 개선하는 작업
분산 DB
- 여러 곳에 분산된 데이터베이스를 하나의 논리적인 시스템처럼 사용할 수 있는 데이터베이스
- 분산 DB 구성요소
- 분산 처리기
- 분산 데이터베이스
- 통신 네트워크
투명성 조건
- 위치 투명성: 실제 위치를 모르고 액세스 가능
- 분할 투명성: 여러 단편으로 분할
- 지역사상 투명성: 각 지역시스템 이름과 무관하게 사용
- 중복 투명성: 데이터의 중복을 사용자에게 숨김
- 병행 투명성: 다수의 트랜잭션들이 동시에 실행되어도 영향을 주지 않음
- 장애 투명성: 다양한 장애에도 트랜잭션 처리
- 투명성: 나는 몰라도 됨
CAP 이론
- 일관성(C) 가용성(A) 분단 허용성(P)
트랜잭션
- 하나의 논리적 기능을 수행하는 작업 단위
- 트랜잭션의 성질(ACID)
- 원자성(Atomicity): 모두 반영되거나 아니면 전혀 반영되지 않아야 한다
- 일관성(Consistency): 트랜잭션의 완료 후에는 데이터베이스가 일관된 상태를 유지해야 한다
- 독립성, 고립성(Isolation) 격리성: 동시에 실행되는 여러 트랜잭션들은 서로 간섭할 수 없다.
- 영속성, 지속성(Durability): 결과는 시스템에 고장이 발생해도 영구적으로 반영되어야 한다.
트랜잭션 상태
- 활동(Action): 트랜잭션이 실행중인 상태
- 실패(Failed): 트랜잭션 실행에 오류가 발생하여 중단된 상태
- 철회(Aborted): 트랜잭션이 비정상적으로 종료되어 Rollback연산을 수행한 상태
- 부분 완료(Partially Commited): 트랜잭션이 모두 성공적으로 실행한 후 Commit 연산이 실행되기 직전의 상태
- 완료(Committed): 트랜잭션을 성공적으로 실행 후 Commit연산을 실행한 후의 상태
절차형 SQL
- 저장 프로시저
- 트리거: 이벤트에 반응해 자동으로 실행
- 사용자 정의 함수
병행제어
- 여러 트랜잭션이 동시에 실행되면서도 데이터베이스의 일관성을 유지하는 기법
- 병행제어를 하지 않았을 때의 문제점
- 갱신 분실: 갱신 결과의 일부가 없어지는 현상
- 비완료 의존성: A 수행 실패 후 회복 전에, B가 실패한 갱신 결과를 참조하는 현상
- 모순성: 갱신 분실과 비슷하지만, 여러 데이터를 가져올 때 발생하는 문제
- 연쇄 복귀: A에 문제가 생겨 Rollback하는 경우 B도 함께 Rollback되는 현상
회복 기법
- 로그 기반 회복 기법:
- 지연 갱신: 커밋 발생 전까진 DB에 기록 X, REDO
- 즉시 갱신: 변경내용을 즉시 DB에 기록, REDO + UNDO
- 검사점 회복 기법
- 그림자 페이징 회복 기법
- 미디어 회복 기법
- ARIES 회복 기법
병행제어 기법 종류
- 로킹 기법: 일관성과 무결성을 유지하기 위한 트랜잭션의 순차적 진행을 보장 (병행 수행 트랜잭션들 간 동일 데이터 접근 차단)
- 낙관적 검증 : 일단 트랜잭션을 수행하고, 트랜잭션 종료 시 검증을 수행
- 타임 스탬프 기법: 타임 스탬프를 부여해 부여된 시간에 따라 트랜잭션 수행
- 다중버전 동시성 제어(MVCC) : 타임스탬프를 비교해 직렬가능성이 보장되는 적절한 버전을 선택해 접근하도록 함
하둡 주요 기술
- 데이터 수집
- ETL(Extract, Transform, Load): 데이터를 추출(Extraction), 변환(Transformation), 적재(Loading) 하는 과정
- 플럼
- 스쿱
- 스크래파이
- ETL(Extract, Transform, Load): 데이터를 추출(Extraction), 변환(Transformation), 적재(Loading) 하는 과정
- 분산 데이터 저장
- HDFS: 대용량 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템
- 분산 데이터 처리
- 맵 리듀스: 구글에서 대용량 데이터처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년에 발표한 소프트웨어프레임워크
728x90
'자격증' 카테고리의 다른 글
[정보처리기사] 실기 용어 정리 응용 SW 기초기술(운영체제) (1) | 2024.04.25 |
---|---|
[정보처리기사] 실기 용어 정리 애플리케이션 테스트 관리 (0) | 2024.04.24 |
[정보처리기사] 실기 기출문제(2023) 풀이 C언어 (4) | 2024.04.22 |
[정보처리기사] 실기 기출문제(2023-2020) 풀이 Python (2) | 2024.04.22 |
[자격증] SQLD 1과목 이론 요점 정리(데이터 모델링의이해, 데이터 모델과 SQL, 2024년 개정 ver) (1) | 2024.02.19 |