본문 바로가기

정보처리기사

데이터 입출력 구현

1. 논리 데이터 저장소 확인

 

 

(1) 데이터 모델(Data Model)

- 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델

- 구성요소: 연산, 구조, 제약 조건

- DB 설계 절차: 요구사항 분석, 개념적 설계, 논리적 설계, 물리적 설계, 구현

- 데이터 모델링 절차: 요구사항 분석, 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델 (요개논물)

- 개념적 데이터 모델: 사용자 요구에 대한 트랜잭션을 모델링 단계

- 개체관계 다이어그램(ERD; Entity Relationship Diagram): 각 업무 분석에서 도출된 엔터티 간 관계를 이해하기 쉽게 도식화한 다이어그램

- 논리적 데이터 모델: 트랜잭션의 인터페이스 설계, DBMS에 맞는 논리적 스키마 설계, 관계형 데이터베이스에서는 테이블 설계 단계

- 정규화: 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정

- 물리적 데이터 모델: 논리 데이터 모델을 특정 DBMS 특성 및 성능을 고려하여 물리적 스키마 설계, 접근 경로(Acecess Path) 설계

- 반 정규화: 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

 

 

(2) 논리 데이터 모델 검증

- 논리적 데이터 모델링 종류: 관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델(CODASYL DBTG)

- 관계 데이터 모델 구성요소: 릴레이션, 튜플, 속성(Attribute), 카디널리티, 차수(D, 스키마, 인스턴스

- 스키마: 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조

- 인스턴스:: 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

- 관계대수(Relational Algebra): 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어 (대절해비)

- 일반 집합 연산자: 합집합(), 교집합(), 차집합(), 카티션 프로덕트(×) (합교차카)

- 순수 관계 연산자: 셀렉트(σ), 프로젝트(π), 조인(⨝), 디비전(÷) (셀프조디)

- 관계해석(Relational Calculus): 튜플 관계 해석과 도메인 관계 해석을 하며 원하는 정보가 무엇이라는 것만 선언하는 비절차적 언어

- 논리 데이터 모델링 속성: 개체(□), 속성(○), 관계() (계속관)

- 개체-관계(E-R) 모델: 개체(□), 관계(◇), 속성(○), 다중 값 속성(◎), 개체 집합-관계 집합 연결(−), 개체 집합-속성 연결(−), 관계 집합-속성 연결(점선)

 

 

(3) 정규화(Normalization)

- 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정

- 이상 현상(Anomaly): 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상

- 데이터베이스 이상 현상: 삽입, 삭제, 갱신 이상 (삽삭갱)

- 데이터베이스 정규화 단계 (원부이 결다조)

- 1정규형(1NF) 원자값으로 구성

- 2정규형(2NF) 부분 함수 종속 제거(완전 함수적 종속 관계)

- 3정규형(3NF) 이행함수 종속 제거

- 보이스-코드 정규형(BCNF) 결정자 후보 키가 아닌 함수 종속 제거

- 4정규형(4NF) 다치(다중 값) 종속 제거

- 5정규형(5NF) 조인 종속 제거

- 함수 종속: X→Y 관계일 때 X는 결정자(Determinant), Y는 종속자(Dependent)

- 부분 함수 종속(Partial Functional Dependency)

- 완전 함수 종속(Full Functional Dependency)

- 이행 함수 종속(Transitive Functional Dependency): X→Y 이고, Y→Z 이면 X→Z 성립

 

 

(4) 반 정규화(De-Normalization)

- 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

- 데이터의 일관성과 무결성, 데이터베이스의 성능과 단순화 중 우선순위 비교하여 조정하는 과정

- 기법: 테이블 병합, 분할, 중복, 컬럼 중복, 관계 중복

 

 

2. 물리 데이터 저장소 설계

 

 

(1) 물리 데이터 모델링

- 논리 데이터 저장소에서 물리 데이터 저장소 모델로 변환

- 절차: 개체를 테이블로 변환, 속성을 컬럼으로 변환, UID를 기본키로 변환, 관계를 외래키로 변환, 컬럼 유형과 길이 정의, 반 정규화 수행

- 데이터베이스 무결성(Database Integrity): 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 성질

- 데이터베이스 무결성 종류: 개체 무결성, 참조 무결성, 속성 무결성, 사용자 정의 무결성, 키 무결성 (개참속사키)

- 개체 무결성: 한 엔터티에서 같은 기본키(PK)를 가질 수 없거나, 기본키(PK)의 속성이 NULL을 허용할 수 없는 제약조건

- 참조 무결성: 외래키가 참조하는 다른 개체의 기본키에 해당하는 값이 기본키값이나 NULL이어야 하는 제약조건

- 참조 무결성 유지 위한 DBMS 옵션: 제한(RESTRICT), 연쇄(CASCADE), 널 값(SET NULL)

- 키(Key): 데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성

- 키 특성: 유일성, 최소성

- 키 종류: 기본키, 대체키, 후보키, 슈퍼키, 외래키

- 후보키: 유일성과 최소성을 모두 만족하는 키

- 슈퍼키: 유일성은 만족하지만, 최소성은 만족하지 못하는 키

- 외래키: 한 릴레이션의 컬럼이 다른 릴레이션의 기본키로 이용되는 키, 테이블 간 참조 데이터 무결성을 위한 제약조건

- 인덱스(Index): 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터구조

- 파티셔닝(Partitioning) 유형: 테이블 또는 인덱스 데이터를 파티션 단위로 나누어 저장하는 기법 (레해리컴라)

- 레인지 파티셔닝: 연속적인 숫자나 날짜를 기준으로 하는 기법

- 해시 파티셔닝: 파티션 키의 해시 함수 값에 의한 기법

- 리스트 파티셔닝: 특정 파티션에 저장될 때 데이터에 대한 명시적 제어가 가능한 기법

- 컴포지트 파티셔닝: 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝 중 2개 이상의 파티셔닝을 결합하는 기법

- 라운드로빈: 라운드로빈으로 회전하면서 새로운 행을 파티션에 할당하는 기법

- 파티션 장점: 성능 향상, 가용성 향상, 백업 가능, 경합 감소 (성가백합)

 

 

3. 데이터베이스 기초 활용

 

 

(1) 데이터베이스(Database)

- 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합

- 정의: 통합된 데이터, 저장된 데이터, 운영 데이터, 공용 데이터

- 특성: 실시간 접근성, 계속적인 변화, 동시 공용, 내용 참조

- 종류: 파일 시스템, 관계형 DBMS, 계층형 DBMS, 네트워크 DBMS

 

 

(2) DBMS(Database Management System)

- 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어

- 유형: 키-값(Key-Value Store), 컬럼 기반 데이터 저장(Column Family Data Store), 문서 저장(Document Store), 그래프(Graph) DBMS (키컬도그)

- 특징: 데이터 무결성, 데이터 일관성, 데이터 회복성, 데이터 보안성, 데이터 효율성

 

 

(3) 데이터베이스 기술 트랜드

- 빅데이터: 시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타파이트(PB) 크기의 비정형 데이터

- 빅데이터 특성: 데이터의 양(Volume), 데이터의 다양성(Variety), 데이터의 속도(Velocity)

- HDFS(Hadoop Distributed File System): 대용량 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템

- 맵 리듀스: 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작한 소프트웨어 프레임워크

- NoSQL(Not Only SQL): 전통적 RDBM와 다른 DBMS 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS

- NoSQL 특성(BASE): Basically Available, Soft-State, Eventually Consistency

- NoSQL 유형: Key-Value Store, Column Family Data Store, Document Store, Graph Store (키컬도그)

- 온톨로지: 실세계에 존재하는 모든 개념들과 개념들의 속성 그리고 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스

- 데이터 마이닝(Data Mining): 대규모 데이터에서 의미 있는 패턴을 파악하거나 예측하여 의사결정에 활용하는 기법

- 데이터 마이닝 주요기법: 분류 규칙, 연관 규칙, 연속 규칙, 데이터 군집화 (분연 연데)

 

 

 

'정보처리기사' 카테고리의 다른 글

인터페이스 구현  (0) 2023.04.07
통합 구현  (0) 2023.04.06
화면 설계  (0) 2023.04.03
요구사항 확인  (0) 2023.03.30
2023년 1회 정보처리기사 필기 합격  (0) 2023.03.21