2022 정보처리기사 실기 Chapter 03 데이터 입출력 구현
01 논리데이터 저장소 확인
▶ 데이터 모델
현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
▶ 데이터 모델 절차
=> 요개논물; 요구사항 분석 -> 개념 데이터 모델 -> 논리 데이터 모델 -> 물리 데이터 모델
▶ 논리적 데이터 모델 종류
- 관계 데이터 모델: 테이블
- 계층 데이터 모델: 트리
- 네트워크 데이터 모델: 그래프, 망
▶ 관계 데이터 모델
데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델
- 관계 데이터 모델의 구성요소
- 릴레이션(Relation): 행과 열로 구성된 테이블
- 튜플(Tuple): 릴레이션의 행(Row)에 해당하는 요소
- 속성(Attribute): 릴레이션의 열(Column)에 해당하는 요소
- 카디널리티(Cardinality): 행(Row)의 수
- 차수(Degree): 애프리뷰터(Attribute)의 수
- 스키마(Schema): 데이터베이스의 구조와 제약조건 등의 정보를 담고 있는기본적인 구조
- 인스턴스(Instance): 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합
- 관계 데이터 모델의 표현
- 데이터 간의 관계를 기본 키와 이를 참조하는 외래 키로 표현
- 테이블 간의 관계를 1:1, 1:M, M:N 관계로 목적에 맞게 표현
▶ 관계 대수
원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
- 일반 집합 연산자: 합교차카 => 합집합, 교집합, 차집합, 카티션 프로덕트
- 순수 관계 연산자: 셀프조디 => 셀렉트, 프로젝트, 조인, 디비전
▶ 관계 해석
튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어/프레디킷 해석에 기반한 언어, 비절차적 언어
▶ 논리 데이터 모델링 속성
=> 개속관
- 개체(Entity): 사물 또는 사건으로 정의, 사각형으로 표시
- 속성(Attribute): 개체가 가지고 있는 요소 또는 성질, 타원형으로 표시
- 관계(Relationship): 두 개체(Entity)간의 관계 정의, 마름모로 표시
▶ 개체-관계(E-R) 모델
현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델
▶ 정규화
=> 중복성 제거, 이상 현상 방지, 일관성과 정확성 유지, 무손실 분해
데이터의 중복성을 제거해 이상현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
▶ 정규화 단계
=> 원부이결다조
- 1NF: 원자화
- 원자값으로 구성, 반복 속성/중복 제거 필요
- 2NF: 부분 함수 종속 제거
- 주식별자 아닌 속성을 분리한다.
- 3NF: 이행 함수 종속 제거
- 속성에 종속적인 속성을 분리한다.
- BCNF: 결정자 함수 종속 제거
- 모든 결정자가 후보 키가 되도록 하여 결정자 함수 종속성을 제거하는 단계
- 4NF 다치 종속 제거
- 다치(다중 값) 종속 제거, 특정 속성값에 따라 선택적인 속성을 분리한다.
- 5NF: 조인 종속 제거
- 조인 종속을 제거한다.
▶ 이상 현상(Anomaly)
데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상
- 삽삭갱 => 삽입 이상, 삭제 이상, 갱신 이상
▶ 반 정규화(De-Normalization)
=> 성능 향상, 개발 운영의 단순화, 데이터의 통합, 중복, 분리
정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 과정
=> 테병분중 컬중 관중
- 테이블
- 테이블 병합, 테이블 분할(수평 분할, 수직 분할), 중복 테이블 추가(집계테이블 추가, 진행 테이블 추가, 특정부분만을 포함하는 테이블 추가)
- 컬럼
- 컬럼 중복화
- 관계
- 중복 관계추가
02 물리 데이터 저장소 설계
▶ 물리 데이터 모델링 변환 절차
논리 데이터 저장소-> 물리 데이터 저장소 변환
1. 개체를 테이블로 변환
2. 속성을 컬럼으로 변환
3. UID를 기본키로 변환
4. 관계를 외래키로 변환
5. 컬럼 유형과 길이 정의
6. 반 정규화 수행
*물리 데이터 모델은 구축하려는 업무 시스템의 논리 데이터 모델을 DB의 적절한 구성요소 매핑 여부와 성능 향상을 위한 반 정규화가 수행되었는지가 중요한 포인트이다.
▶ 참조무결성 제약조건
(물리 데이터 저장소 구성에서 참조무결성에 대한 내용 잘 확인하기@!)
참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 한다.
- 제한(RESTRICT), 연쇄(CASCADE), 널값(SET NULL)
▶ 파티션(Partition)의 종류
=> 레해리컴라 (파티셔닝은 단답형, 약술형으로 출제되기 좋은 개념, 설명할 수 있을 정도로 알기)
- 레인지(Range) 파티셔닝(=범위 파티셔닝): 연속적인 숫자나 날짜 기준
- 해시(Hash) 파티셔닝: 파티션 키의 해시 함수 값에 의한 파티셔닝 기법
- 리스트(List) 파티셔닝: 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능
- 컴포지트(Composite) 파티셔닝(=조합 파티셔닝): 레인지, 해시, 리스트 중 2개 이상의 파티셔닝 결합/범위분할에 이후 해시 함수를 적용하여 재분할하는 파티셔닝 기법
- 라운드 로빈 파티셔닝: 라운드로빈 분할로 회전하면서 새로운 행이 파티션에 할당하는 방식
▶ 파티션의 장점
=> 성가백합(성가대가 백합꽃을 들고 노래를 한다.)
- 성능 향상: 데이터 액세스 범위를 줄여 성능 향상
- 가용성 향상: 전체 데이터의 훼손 가능성이 감소 및 데이터 가용성 향상
- 백업 가능: 분할 영역을 독립적으로 백업하고 복구가능
- 경합감소: 디스크 스트라이핑으로 입출력 성능을 향상
03 데이터베이스 기초 활용하기
▶ 데이터베이스의 정의
다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하겨 관리되는 데이터의 집합
- 통합된 데이터: 자료의 중복을 배제한 데이터의 모임
- 저장된 데이터: 저장 매체에 저장된 데이터
- 운영 데이터: 조직의 업무를 수행하는데 필요한 데이터
- 공용 데이터: 여러 어플리케이션, 시스템들이 공동으로 사용하는 데이터
▶ 데이터베이스 특성
실시간 접근성, 계속적인 변화, 동시 공용, 내용 참조
▶ DBMS, NoSQL 유형
DBMS는 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어이다. (DBMS에 나오는 모든 내용들이 중요하다. 모든 내용이 출제되다고 생각하고 봐야함!)
* DBMS의 특성
데이터 무결성, 데이터 일관성, 데이터 회복성, 데이터 보안성, 데이터 효율성
- DBMS의 유형 => 키컬도그
- Key-Value(키-값) DBMS: Unique한 Key에 하나의 Value를 가지고 있는 형태/Key기반 Get/Put/Delete 메서드를 제공하고, 메모리 기반에서 성능을 우선하는 시스템이며, 빅데이터 처리 가능한 DBMS
- Column Family Data Store DBMS: Key 안에 (Column, Value) 조합으로 된 여러 개의 필드를 갖는 DBMS
- Document Store DBMS: Value의 데이터 타입이 Document라는 타입을 사용하는 DBMS
- Graph DBMS: 시멘틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DBMS
▶ 빅데이터
시스템, 서비스 , 조직 등에서 주어진 비용, 시간 내에 처리가 가능한 데이터 범위를 넘어서는 수십 페타바이트 크기의 비정형 데이터
* 빅데이터 분산 데이터 저장/처리 => HDFS(Hadoop Distributed File System), 맵 리듀스
* HDFS: 대용량 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템
* 맵 리듀스(Map Reduce): 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅 처리하기 위한 목적으로 제작해 2004년에 발표한 소프트웨어 프레임워크
▶ NoSQL
* 최근 빅데이터 활성화와 함께 부각되고 있음@!
전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인(Join)연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS이다.
▶ NoSQL의 특성(BASE)
- Basically Available: 언제든지 데이터는 접근할 수 있어야하는 속성/분산 시스템이기 때문에 항상 가용성 중시
- Soft-State: 노드의 상태는 외부에서 전송된 정보를 통해 결정되는 속성
- Eventually Consistency: 일정 시간이 지나면 데이터의 일관성이 유지
▶ 시맨틱 웹(Semantic Web)
기계가 이해할 수 있는 온톨로지 형태로 표현하고 자동화된 기계가 처리하도록 하는 지능협 웹
▶ 온톨로지(Ontology)
실세계에 존재하는 모든 개념들과 개념들의 속성, 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스
▶ 데이터 마이닝(Data Minning)
대규모로 저장된 데이터 안에 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
▶ 데이터 마이닝의 주요 기법
=> 분연 연데
- 분류 규칙: 과거 데이터로부터 특성을 찾아내어 분류모형을 만들어 결과 값 예측
- 연관 규칙: 데이터 안에 존재하는 항목들 간의 종속 관계를 찾아내는 기법
- 연속 규칙: 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
- 데이터 군집화: 대상 레코드들을 유사한 특성을 지는 몇 개의 소그룹으로 분할하는 작업