정보관리 기술사 공부

주요 토픽 정리 511~540 [DS, DB]

장술사 2023. 7. 27. 09:14
반응형

 

토픽 키워드 두음신공 주요 내용
No Plugin
서버 기반, 웹 표준, HTML5
 
(정의) 2018년11월 행정안전부에서 공공 웹사이트 플로그인 제거 가이드라인 배포 (2020년 완료)
(방안 : 인증측면, 서비스 활용 측면 / 서버 기반!! 웹표준!! HTML5!!)
. 인증측면 : 본인 인증(휴대폰/신용카드 이용, 브라우저 인증서 이용(HTML5 로컬 스토리지), 디지털 원패스), 전자 결제(간편카드결제, 계좌간편결제), PC 및 공인인증서(플로그인 선택 설치, 웹표준 기반, 가상키패드, SSL 적용)
. 서비스 활용 측면 : 전자문서 조회(웹표준, 서버 기반 PDF 변환), 출력물 위변조(서버 기반 위변조 방지 기술), 멀티미디어(웹표준 HTML5)
2019년 가트너 10대 전략 기술 트랜드
  IDM공, 자증인/트에몰/체스/윤양
(Intelligent) 자율 사물(로봇/드론/자율주행차, 자동화 초월 AI 활용 고급 행동), 증강 분석(자동화된 통찰력), 인공지능 주도 개발(AI 모델 개발 툴)
(Digital) 디지털 트윈, 자율권을 가진 에지(에지 컴퓨팅), 몰입 경험(AR/VR/MR)
(Mesh) 블록체인, 스마트 공간(인간과 기술간 몰입/상호작용 강화)
(공통) 디지털 윤리와 개인정보보호(트롤리 딜레마), 양자 컴퓨팅(큐비트)
챗봇
검색기반/대화생성 모델, 세종 말뭉치
 
(정의) Chatting+Robot, 음성/문자를 통한 인간과의 대화를 통해 특정한 작업을 수행하도록 구현된 어플리케이션 서비스
(유형) 검색기반 모델(미리 저장/정의), 대화생성 모델(인공지능 이용)
(구성도) 메신저/채널(Open API, 하이브리드 앱) - 대회분석기(자연어 처리, 패턴 인식) - 인공지능/학습(텍스트 마이닝, 상황인식 컴퓨팅, 시맨틱 웹, AI 플랫폼(Tensorflow, Caffe))
(한국어 챗봇) 문제점 : 해외 대비 미흡, 기초 기술 부족 / 개선 : 제도 개선(규제 완화, 지원 정책), 통합 데이터 플랫폼 구축, 국어정보화 개선(2차 세종 말뭉치 구축(2억→150억, 2018~2022)
재난통신 TETRA, iDEN 재생보상운
(정의) 재난 발생 시 공공의 안전 확보와 재난 극복을 위해 사용되는 통신
(요구사항) 재난 대응성, 생존 신뢰성, 보안성, 상호운용성, 운영 효율성
(후보기술 → 국내는 PS-LTE망으로 구축 ~2020)
. TETRA TRS(ESTI, 유럽 중심, 대중적, 신뢰성, 보안성, 낮은 속도), iDEN TRS(모토로라, 빠른 속도, 암호화 기능 없음)
* TRS : Trunked Radio System, 주파수 공용 통신
PLC(Power Line Communication) 전력선 통신 모커라
(정의) 전력선 통신, 전력선을 매개체로 저주파 전력신호에( 60MHz ) 고주파 통신신호를(수십MHz~수백KHz, 음성/데이터) 실어 통신하는 기술
(구성요소) PLC Modem, PLC Coupler, PLC Router
홈네트워크 HAVi, UPnP, Jini 편안즐윤, 하우지
(정의) 가정 내의 가전기기 및 시스템을 연결하여 이들 간 및 외부 인터넷망과 통신이 가능하게 하는 소규모 네트워크
(특징) 편리한/안전한/즐거운/윤택한 가정
(미들웨어) HAVi(AV기기간, 디지털 TV, 인터넷 TV, IEEE 1394 기반), UPnP(HTTP 사용, PC, 지능형 가전제품, IP), Jini(Java 기반, 가전제품, IP)
* HAVi (Home Audio/Video interoperability), UPnP(Universal Plug and Play), Jini(Java intelligent network infra-structure)
OSGi(Open Service Gateway initiative) 미들웨어 프레임워크 자번프, 번서라모잌시
(정의) 다양한 미들웨어의 통합 상호운영 환경 제공하는 미들웨어 프레임워크
(구성요소) 자바 인터페이스, 번들(기능적 배포 단위), 프레임워크(번들 실행환경)
(프레임워크) Bundle, Service, Life Cycle, Module, Execution Environment, Security
망중립성   비상접, 권투차차관상합정
(정의) 모든 네트워크 사업자는 모든 콘텐츠를 동등하게 취급하고 어떠한 차별도 하지 않아야 한다는 개념
(3 원칙) 비차별성, 상호접속, 접근성
(방통위 망중립성 가이드라인)
. 이용자 권리, 트래픽 관리 투명성, 차단금지, 차별금지, 관리형 서비스 제공, 상호 협력, 합리적 트래픽관리, 정책자문기구 구성
(주요 동향) 국내 : 망중립성 강화 정책, 규정 및 가이드라인 / 해외 : 미국 망중립성 원칙 폐기(2018.6), 주마다 다른 정책
* 5G 시대에 맞는 망중립성 원칙을 재정립할 필요가 있음
* 제로 레이팅 : 특정 인터넷 서비스 이용 시 발생하는 데이터 요금을 콘텐츠 제공자가 부담하는 방식
Optimizer(DB 질의 최적화기)
QEP, RBO, CBO
 
(정의) SQL문을 최소 비용으로 처리하는 실행계획(QEP, Query Excution Plan)을 결정(수립)하는 DBMS의 핵심 엔진
(목표) 전체 처리속도 최적화(All rows 방식), 최초 응답속도 최적화(First rows)
(영향을 미치는 요소) SQL 형태, 연산자 형태, 힌트 사용, 분산 DB, 인덱스
(구성요소) Query Transformer(질의변환기), Estimator(비용산정기, 선택도(Where)/분포도/카디널리티), Plan Generator(QEP생성기)
(종류)
. RBO(Rule Based Optimizer)
- 통계정보 없음, 규칙 기반, 우선순위 부여, 예측 가능, Index 정보 활용, 사후 규칙 변경 어려움
- ROWID(직접 접근), Random Access(Index이용), Sequential Scan(Full Table Scan이용)
. CBO(Cost Based Optimizer)
- 통계정보(Dictionary) 기반 모든 Access Path 고려하여 실행계획 수립, 비용 기반, 통계정보 관리(정기적 갱신), 제어 어려움
- 거의 대부분 RDBMS에서 CBO 채택, 오라클도 10g부터 RBO 지원 중단
Join
Nested-Loop, Sort-Merge, Hash
 
(정의) 두 테이블의 데이터를 연결하는 대표적인 방법, Optimizer가 어떤 조인 방법을 선택하냐에 따라 수행 속도에 미치는 영향이 큼, 결과집합은 동일
(종류)
. Nested-Loop : 먼저 선행테이블의 처리범위를 하나씩 액세스하면서 그 추출된 값으로 연결할 테이블을 조인하는 방식, 가장 일반적, 소량 업무 처리에 가장 적합, 조인 컬럼에 인덱스가 있는 경우, 조인 순서가 성능에 영향
. Sort-Merge : 양쪽 테이블의 처리범위를 각자 액세스하여 정렬한 결과를 차례로 scan하면서 조건에 따라 merge해 가는 방식, 대용량의 경우 유리, 조인 컬럼에 인덱스가 없는 경우, 정렬할 행의 수가 성능에 영향
. Hash : 해시 값을 이용하여 테이블을 조인하는 방식, 먼저 작은 테이블로 해시 테이블 구성, 후행 테이블 해시값과 비교하여 조인, 값이 다양하지 않을 때 유리, 동등(=) 조인인 경우 가능
데이터 무결성   개참속사키
(정의) 데이터의 정확성(중복 누락 없음)과 일관성(원인과 결과 의미의 연속성)을 유지하기 위한 데이터베이스의 개념
(무결성 종류와 제약조건)
. 개체 무결성(Entity) : 기본키는 반드시 값을 가짐, 유일성, 최소한의 집합 / Primary key
. 참조 무결성(Referential) : 외래키 속성은 참조할 수 없는 값을 가질 수 없음 / Foreign Key
. 속성 무결성(Domain) : 칼럼은 지정된 데이터 형식을 반드시 만족 / Character, Date
. 사용자 정의 무결성 : 모든 데이터는 업무 규칙 준수 / Trigger
. 키 무결성(Key Integrity) : 한 릴레이션에 같은 키 값을 가진 튜플들은 허용 안됨 / Primary Key, Unique index
트랜잭션 ACID, 활동/부분완료/완료/실패/철회 원일고지
(정의) 데이터 무결성이 보장되는 상태에서 한 번에 수행되어야 할 업무처리의 단위(Logical unit of work)
(특징 / 주요기능)
. 원자성(Atomicity) : 트랜잭션 처리가 완전히 끝나지 않은 경우 완료 불가, All or Nothing / 회복성 보장, 커밋, 롤백
. 일관성(Consistency) : 트랜잭션 실행 성공 후 항상 모순 없이 일관된 데이터 상태 유지 / 무결성 제약조건, 동시성 제어
. 고립성(Isolation) : 트랜잭션 실행 중의 중간 연산 결과를 다른 트랙잭션이 접근 불가 / Isolation Level, Locking
. 지속성(Durability) : 트랜잭션 처리 결과는 영구적으로 보장 / 회복기법
(상태전이)
. 활동(Active, 실행 중), 부분완료(Partially Committed, 마지막 명령문 실행 직후), 완료(Commited, 커밋 수행), 실패(Failed, 더이상 진행 불가), 철회(Aborted, 롤백 수행)
(철회된 트랜잭션의 연산) HW/SW 오류→재실행(Restart), 내부 논리 오류→폐기(Kill)
동시성 제어 직렬성 보장, 2PL, TS Ordering, 낙관적 검증 갱현모연
(목적) 트랜잭션 직렬성 보장, 데이터의 무결성 및 일관성 보장
(동시성 제어가 되지 않을 경우 문제점: 갱현모연)
. 갱신손실(Lost Update, 동시 갱신, 종료 이전 갱신), 현황파악오류(Dirty Read, 중간 결과 참조), 모순성(Inconsistency, 중첩 갱신), 연쇄복귀(Cascading Rollback, 하나의 트랜잭션 취소에 의한 영향)
(방법)
. Locking : 자원 상호배제(공유 Lock : Read 가능, 전용 Lock : Read/Write 불가)
. 2PL(2 phase locking) : lock과 unlock이 구분되어 수행, 확장 단계(Lock)→차단 단계→수축 단계(Unlock), (문) 교착상태, 대기시간
. TimeStamp Ordering : 트랜잭션 식별자인 타임 스탬프(시스템 시간 or Counter)로 사전에 순서 선택, (문) 연쇄복귀
. MVCC (Multi Version Concurrency Contro, 다중버전 동시성 제어)
. 낙관적 검증(Validation) : 트랜잭션 종료 시 일괄 검사, RVE(Read(메모리(버퍼)에서 수행)→Validation(직렬화 검증)→Execution(디스크에 반영)), (문) 복귀 시 자원 낭비
MVCC(Multi Version Concurrency Control)
Timestamp, CR Copy, Undo 영역
 
(정의) 트랜잭션 TS와 데이터 여러 버전의 TS를 비교하여 직렬성이 보장되는 버전을 선택하여 접근하는 기법
(원리)
. 이전 데이터 값 저장, 데이터 변경 시 Undo 영역 저장(CR Copy 생성), SCN값 기준 Rollback Segment/Undo 영역 기반 동시성 관리
(이슈) 많은 저장 공간, Snapshot too old 에러(제어 수준에 따라 Undo 영역이 지워지는 현상) → Undo 크기 조절, 불필요 Commit 줄임, 수행시간 긴 트랜잭션 조정
* CR Copy : Consistent Read, 시작 시점의 일관성 있는 버전 / SCN : System Change Number
회복기법
즉시/지연갱신, 검사점, 그림자 페이징
 
(기법)
. (로그기반) 즉시갱신 기법 : 갱신 - 갱신 결과 즉시 DB반영, 로그 기록 / 회복 - 로그 참조하여 undo
. (로그기반) 지연갱신 기법 : 갱신 - 부분종료 시 DB 반영 / 회복 - 트랜잭션 종료 상태이면 Redo, 미종료 상태면 로그 폐기
. Check point(검사점) 회복 기법 : 검사점을 로그파일에 기록하고, 장애 발생 시 검사점 참고하여 Redo와 Undo 대상 판별
. 그림자 페이징 기법 : 트랜잭션 시작 시 현재 페이지 테이블(주기억장치)과 동일한 그림자 페이지 테이블(하드디스크) 생성, 트랜잭션 완료 시 현재 페이지 테이블의 내용을 그림자 페이지 테이블로 저장, 미완료 시 폐기
Isolation Level 일관성 없는 데이터 허용 수준, 공유 Lock UCReSe
(정의) 트랜잭션에서 일관성 없는 데이터를 허용하는 수준(얼마나 locking 할 것인가), 낮은 단계의 고립화 수준에서 Dirty Read, Phantom Read 등 발생 가능
(Level 유형, 레벨 0~3)
. 레벨 0 : Read Uncommitted Isolation : Locking 안함, Dirty Read
. 레벨 1 : Read Committed Isolation : 공유 Lock 설정 후 완료 시 바로 해제, commited 데이터만 읽음(default), Non-Repeatable Read
. 레벨 2 : Repeatable Read Isolation : 공유 Lock 설정 후 트랜잭션 끝까지 유지, Phantom Read
. 레벨 3 : Serializable Isolation : 범위에 대한 공유 Lock
* Dirty Read : 변경 후 아직 commit 되지 않은 값을 읽고, Rollback된 후의 값을 다시 읽어 최종 결과 값이 상이한 현상
* Non-Repeatable Read : Read 트랜잭션 작업 중간, Write 트랜잭션이 Update/Commit하여 초기 읽은 data를 다시 읽을 수 없는 현상
* Phantom Read : 한 트랜잭션 내 같은 쿼리를 두 번 수행 시, 첫 쿼리에 없던 레코드(유령, Phantom)가 두 번째 쿼리에서 발생하는 현상
* 공유 Lock : 잠금한 트랜잭션과 다른 트랜잭션 모두 읽기만 가능, * 전용 Lock : 잠금한 트랜잭션은 읽기/쓰기 가능, 다른 트랜잭션은 모두 불가
Phantom Conflict
팬텀 투플, Locking 확대, 인덱스 Locking
 
(정의) 두 개 이상의 트랜잭션이 팬텀 투플에 의해 트랜잭션이 충돌되어 일관성 및 무결성이 보장되지 않는 현상
(해결방법) Locking 단위 확대 : 투플→릴레이션, 인덱스 Locking
* Phantom Tuple : 실제 DB에 저장되어 있는 투플(Tuple)이 아닌 DB에 삽입되려고하는 가상의 투플
2PC(Phase Commit)
Global Coodinator, Local node
 
(정의) 분산 DB환경에서 트랜잭션의 원자성 보장을 위한 Commit/Rollback 메커니즘
(구성요소)
. 조정자(Global Coordinator) : 참여자 목록 가짐, Global Commit 시작
. 지역노드(Local node) : 지역 트랜잭션 수행 서버
. CPS(Commit Point SiteS) : 분산 트랜잭션에 관여한 노드, Commit에 관련된 원격 site(들)
(단계) Prepare 단계(prepare 메시지 교환) → Commit 단계(commit 또는 rollback 명령/수행)
*3PC : canCommit?(미리 확인) → preCommit → doCommit
인덱스 보조 데이터 구조, 레코드 값/레코드 주소 비리비함(X)
(정의) DB 검색 속도 개선을 위해 별도로 구조화한 보조 데이터 구조, <레코드 값, 레코드 주소(포인터)>
(특징) 검색/조회 성능 향상, 수정/삭제 속도 저하 가능, 별도 테이블, Hash/B/B+/B*-Tree 등 알고리즘 활용
(구조) B-Tree, Reverse Key, Bitmap, Function(함수)
(적용 기준) 테이블 행의 수가 많을 경우, WHERE문에 해당 컬럼이 많이 사용, JOIN에 자주 사용되는 컬럼
(선정 기준) 기본키는 자동 생성됨, 외래키는 무조건 선정, 자주 사용하는 SQL 분석, 분포도 10~15%정도의 컬럼
해싱
키의 해시값 주소에 정보 저장
 
(정의) 빠른 자료검색을 위해 키값의 해시값 주소에 해당 정보를 저장하여 직접 접근하는 방법(고속성, 사상함수, 단방향성)
(구성요소) 해싱함수, 해시테이블, 버킷, 슬롯, 동거자
(함수 기법) 중간 제곱 함수, 중첩법(여러 개의 동일한 길이로 나누고, 더하거나 XOR), 숫자 추출법, 진법 변환 함수
(문제점) 충돌, 오버플로우
(오버플로우 해결) 동거자 체인, 이중해싱, 독립 오버플로우 구역, 버킷 주소법, 선형조사
(충돌 해결)
. 개방 주소법 : 비어있는 버킷 찾기, 선형 조사법(차례대로 빈 곳), 이차 조사법(특정한 수만큼 떨어진 곳), 이중 해싱
. 폐쇄 주소법(체인법) : 링그드 리스트로 관리, 합병 체인법(빈 버킷에 넣고, 위치를 포인팅), 분리 체인법(리스트 연결)
데이터 모델링   개논물
(정의) 현실세계의 업무 프로세스를 추상화하여 데이터베이스의 데이터로 표현하기 위한 설계과정
(단계)
. 요구사항 분석 : 조직의 업무 및 기능 수행을 위한 데이터 요구사항 정의 및 분석
. 개념 모델링 : 핵심 엔티티 추출, , ERD 작성(관계 도출), 전체 데이터 모델 골격 생성
. 논리 모델링 : 관계에 대한 구조 설계, 스키마 설계, 식별자 확정, 정규화 수행
. 물리 모델링 : 데이터베이스 스키마 실제 구축, 사용할 DBMS 선정, 비정규화
. 데이터베이스 구현 : 데이터베이스 구현 및 응용 연계
데이터 독립성 구조적 독립성 외개내
(정의) 하위 단계의 데이터 구조 변경이 상위 단계에 영향을 미치지 않는 속성, DB 구조/데이터 변화가 응용프로그램에 영향을 미치지 않는 것, 응용프로그램이 데이터에 종속되지 않는 것을 의미
(3단계 스키마 구조, ANSI/SPARC) 외부 단계 / 개념적 단계 / 내부적 단계
(데이터 독립성 기대효과)
. 관리자 측면 : 응용프로그램 영향 없이 데이터의 물리적 구조 및 논리적 구조 변경 가능
. 설계자 측면 : 응용프로그램 변화 없이 개념 스키마 변경 가능
. 사용자 측면 : 사용자가 의식하지 못하게 DB 변경 가능, 사용자에게 투명성 제공
상관 모델링
데이터 모델 검증
 
(정의) 데이터/프로세스 모델링간 상관 관계를 정의함으로써 정확한 데이터 모델이 도출되었는지 검증하는 작업, CRUD 매트릭스 사용
CRUD 매트릭스
프로세스와 데이터 간 의존성
 
(정의) 시스템 개발 시 프로세스와 데이터 사이의 의존성을 나타내기 위한 매트릭스
(데이터 모델 검증) CRUD 한번 이상?, C 한번 이상?, R 한번 이상?
(프로세스 모델 검증) 하나 이상의 엔티티에 표기됨?? 두 개 이상의 프로세스가 하나의 엔티티 생성?
Anomaly(이상)
삽입, 삭제, 갱신 이상
 
(정의) 데이터의 중복과 함수 종속성으로 인해 릴레이션 조작 시(삽입, 삭제, 수정) 발생하는 비합리적 현상
(유형) 삽입이상(원하지 않는 값도), 삭제이상(의도하지 않는 값도), 갱신이상(한 릴레이션의 속성 변경 시 중복된 데이터와의 불일치 현상)
정규화(Normalization) 중복 최소화  
(정의) 관계형 데이터베이스 설계 시 중복을 최소화하도록 데이터를 구조화 하는 작업
(목표) 이상이 있는 관계를 재구성하여 작고 잘 조직된 관계를 생성하는 것
(유형) 1NF(중복 제거), 2NF(부분함수 종속 제거), 3NF(이행항수 종속 제거), BCNF(결정자면서 후보키 아닌 것 제거), 4NF(다치 종속 제거), 5NF(조인종속 제거)
* NF : Normal Form, * BCNF : Boyce-Codd
암스트롱 공리 함수종속성 추론 규칙 반첨이분결의
(정의) 릴레이션 R에 대해 X, Y, Z 애트리뷰트 집합이 주어졌을 경우, 여러 함수종속성을 유도하는 추론 규칙
(추론 규칙)
. 반사 규칙 : Y ⊆ X이면, X → Y / 첨가 규칙 : X → Y이면, XZ → YZ / 이행 규칙 : X → Y이고 Y → Z이면, X → Z
. 분해 규칙 : X → YZ이면, X → Y이고 X → Z / 결합 규칙 : X → Y이고 X → Z이면, X → YZ / 의사이행성 규칙 : X → Y이고 WY → Z이면, WX → Z
(함수의 폐포(Closure), F+)
. F로 부터 추론 가능한 모든 함수적 종속성의 집합
반정규화
성능 향상 목적, 테이블/컬럼/관계 반정규화
 
(정의) 정규화된 데이터 모델에 대해 시스템의 성능향상과 개발/운영의 단순화를 위해 데이터 모델을 통합하는 프로세스, 적정 수준의 정규화 이후 질의 성능 향상을 위해 일부 데이터에 중복을 허용하는 역정규화
(절차) 반정규화 대상 조사→다른 방법 검토(뷰 테이블, 클러스터링, 인덱스 조정)→반정규화 적용(테이블, 속성, 관계)
(방법)
. 테이블 반정규화 : 테이블 병합(조인 과다), 테이블 분할(특성 속성들 자주 접근, 수직/수평분할), 테이블 추가(통계 테이블)
. 컬럼(속성) 반정규화 : 중복 컬럼 추가(다른 테이블 컬럼 자주 이용), 파생 컬럼 추가(사전 연산 결과 컬럼)
. 관계 반정규화 : 조회 관계 단순화를 위해 추가 관계 생성
데이터 키(식별자) 유일성/최소성/대표성 슈후기대외
(정의) 릴레이션에서 튜플을 유일하게 식별할 수 있는 속성의 집합
(특징) 유일성, 최소성, 불변성, 존재성(반드시 값 존재)
(유형) 슈퍼키(유일 식별,하나 또는 그 이상), 후보키(유일성,최소성), 기본키(후보키 중 선택), 대체키(기본키 제외한 후보키), 외래키(연관 관계의 다른 테이블의 기본키를 참조하는 키), 복합키(하나의 속성으로 기본키가 될 수 없는 경우, 두개 이상 묶음), 대리 식별자(식별자가 너무 길 경우 인위적으로 만든 식별자, 인공키)
(도출 과정) 결정자 도출→(유일성)슈퍼키 선정→(최소성)후보키 선정→(대표성)기본키 선정
(식별 관계, 비식별 관계)
. 식별 관계 : 부모 주식별자가 자식 주식별자로 상속, 강한 연결관계, 실선 표기 - 주식별자 속성 증가 문제
. 비식별 관계 : 부모 속성은 받았으나 자식 일반 속성으로 사용, 약한 연결관계, 점선 표기 - 조인 지속 사용 문제
키의 제약
본질적 제약, 내재적 제약
 
(데이터 모델링의 무결성을 위한 키의 제약)
. 본질적 제약 : 데이터 모델의 구조적인 특성으로 인한 제약
. 내재적 제약 : 데이터의 의미를 정확히 표현하고 오류를 방지
. 명시적 제약 : 프로그램에서 처리하고나 사용자의 수작업으로 생성
반응형