[정보처리기사 실기] 3장 데이터 입출력 구현
정보처리기사 수제비 2022 실기 문제집을 요약하며 공부했습니다! 😁
3-1 논리 데이터 저장소 확인
3-1-1. 데이터 모델
📌 데이터 모델 개념, 표시요소
- 데이터 모델: 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
- 표시요소: 연산(Operation), 구조(Structure), 제약 조건(Constraint)
📌 데이터 모델 절차
- 요구조건 분석: 요구사항 간 상충을 해결하고, 범위를 파악하여 외부 환경과의 상호작용 분석을 통해 데이터에 대한 요구 분석
- 개념적 설계: 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델. 주요 산출물은 개체-관계 다이어그램
- 논리적 설계: 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델. 정규화 수행
- 물리적 설계: 특정 DBMS 특성 및 성능을 고려하여 물리적 스키마를 만드는 단계. 테이블, 인덱스 등 객체 생성 및 반 정규화 수행
3-1-2. 논리 데이터 모델 검증
📌 논리 데이터 모델 종류
- 관계 데이터 모델 : 논리적 구조가 2차원 테이블 형태로 구성된 모델. 기본키(PK)와 이를 참조하는 외래키(FK)로 관계 표현. 1:1, 1:N, N:M 관계를 자유롭게 표현
- 계층 데이터 모델: 논리적 구조가 트리 형태로 구성된 모델. 상하 관계만 존재. 1:N 관계만 허용
- 네트워크 데이터 모델: 논리적 구조가 그래프 형태로 구성된 모델. N:M 관계 만족
📌 관계 데이터 모델
- 행과 열로 구성된 2차원 테이블 형태로 구성
- 구성요소: 릴레이션, 튜플, 속성(열), 카디널리티, 차수, 스키마, 인스턴스
-✏️ 관계대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
- 관계대수 연산자 종류
- 일반 집합 연산자: 합집합, 교집합, 차집합, 카티션 프로덕트(R X S) - R,S의 모든 튜플을 연결
- 순수 관계 연산자: 셀렉트(∂) - R에서 조건을 만족하는 튜플 변환, 프로젝트(π) - 주어진 속성들의 값으로만 구성된 튜플 반환, 조인(▷◁) - 공통 속성으로 만들어진 튜플 반환, 디비전( R ÷ S ) - S의 모든 튜플과 관련있는 R의 튜플 반환
-✏️ 관계해석 : 튜플 관계 해석과 도메인 관계 해석을 하는 비 절차적 언어
📌 논리 데이터 모델 속성
- 개체, 속성, 관계로 구성
- 개체: 마술 또는 사건으로 정의
- 속성: 개체가 가지고 있는 요소 또는 성질
- 관계: 두 개체간의 관계를 정의
📌 개체-관계(E-R) 모델
- 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델
- 개체-관계 다이어그램 기호
- 개체: ㅁ
- 관계: ◇
- 속성: ○
- 다중 값 속성: ◎
- 관계-속성 연결: ㅡ
📌 정규화
- 정규화: 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
- 이상현상(Anomaly): 이상 현상은 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비 합리적인 현상
- 삽입 이상: 정보 저장 시 해당 정보의 불필요한 세부 정보 입력
- 삭제 이상: 정보 삭제 시 원치 않는 다른 정보 같이 삭제
- 갱신 이상: 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으킴
✏️ 정규화 단계
- 1정규형(1NF): 원자값으로 구성
- 2정규형(2NF): 부분 함수 종속 제거(완전 함수적 종속 관계)
- 정규형(3NF): 이행함수 종속 제거
- 보이스-코드 정규형(BCNF): 결정자 후보 키가 아닌 함수 종속 제거
- 4정규형(4NF): 다치(다중 값) 종속 제거
- 정규형(5NF): 조인 종속 제거
📌 반 정규화(De-Normalization)
- 개념: 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법 = 비정규화, 역정규화
- 반 정규화 기법
1. 테이블
- 테이블 병합: 1:1, 1:M 관계를 통합해 조인 횟수를 줄여 성능 향상
- 테이블 분할: 수평 분할, 수직 분할 = 파티셔닝
- 중복 테이블 추가: 집계 테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 데이터 추가
2. 컬럼
- 중복화: 조인 성능 향상을 위한 중복 허용
3. 관계
- 중복 관계 추가: 조인이 가능하지만, 성능 저하를 위해 추가적 관계를 맺는 방법
3-2 물리 데이터 저장소 확인
3-2-1. 물리 데이터 저장소 구성
- 물리 데이터 저장소: 논리 데이터 모델을 적용하고자 하는 기술에 맞도록 상세화해가는 과정
📌 테이블 제약 조건 설계
- 참조 무결성 제약조건
- 제한(Restricted): 참조한 테이블에 있는 외부 키에 없는 것만 삭제 가능
- 연쇄(Cascade): 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제하는 옵션
- 널값(Nullify): 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래키에 NULL값을 넣는 옵션
📌 인덱스 설계
- 인덱스: 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조
✏️ 인덱스 적용 기준: 분포도가 10~15% 이내인 경우
분포도 = (1/(컬럼 값의 종류)) X 100
분포도 = (컬럼 값의 평균 Row 수)/(테이블의 총 Row 수)X100
📌 파티션 설계
- 파티셔닝: 대용량의 테이블을 파티션이라는 보다 작은 논리적인 단위로 나누어 성능 저하 방지 및 관리를 상대적으로 용이하게 하고자 하는 기법
- 레인지 파티셔닝(Range Partitioning): 연속적인 숫자나 날짜를 기준으로 함
- 해시 파티셔닝(Hash Partitioning): 파티션 키의 해시 함수값에 의한 기법
- 리스트 파티셔닝(List Partitioning): 미리 정해진 기준에 따라 데이터를 분할. 데이터에 대한 명시적 제어가 가능한 기법
- 컴포지트 파티셔닝(Composite Partitioning): 2개 이상의 파티셔닝을 결합
- 라운드로빈 파티셔닝(Round-Robin Partitioning): 분할로 회전하면서 새로운 행이 파티션에 할당
3-3 데이터베이스 기초 활용
3-3-1. 데이터베이스 종류
📌 데이터 베이스 개념 및 특성
- 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합이다.
- 데이터베이스 특성: 실시간 접근성, 계속적인 변화, 동시 공용, 내용 참조
- 데이터베이스 종류: 파일 시스템, 관계형 데이터베이스 관리 시스템, 계층형 데이터베이스 관리 시스템, 네트워크 데이터베이스 관리 시스템
📌 DBMS
- DBMS(Database Manangement System): 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어
- ✏️DBMS 유형
- 키-값 DBMS: 키 기반 Get/Put/Delete 제공. 메모리 기반에서 성능 우선 시스템 및 빅데이터 처리 가능 DBMS
- 컬럼 기반 데이터 저장(Column Family Data Store): key안에 (Column, Value) 조합으로 된 여러 필드를 갖는 DBMS
- 문서 저장(Document Store) DBMS: 값(Value)의 데이터 타입이 문서라는 타입을 사용하는 DBMS
- 그래프(Graph) DBMS: 시맨틱웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DBMS
-✏️DBMS 특징: 데이터 무결성, 데이터 일관성, 데이터 회복성, 데이터 보안성, 데이터 효율성
📌 빅데이터
- 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB) 크기의 비정형 데이터
- 빅데이터 특성(3V): 데이터의 양(Volume), 다양성(Variety), 속도(Velocity)
📌 NoSQL
- 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로, 데이터 저장에 고정된 테이블 스키마가 필요하지 않고, 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS
- ✏️특성(BASE): Basically Available(언제든지 접근 가능) , Soft-State(노드 상태는 외부에서 전송된 정보를 통해 결정된다), Eventually Consistency(일정 시간이 지나면 데이터의 일관성이 유지)
-✏️유형: Key-Value Store, Column Family Data Store, Document Store, Graph Store
📌 데이터 마이닝
- 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
- ✏️데이터 마이닝 주요 기법
- 분류 규칙(Classification): 과거 데이터로부터 특성을 찾아내여 분류 모형을 만들어 이를 토대로 새로운 레코드 결과 값 예측
- 연관 규칙(Association): 데이터 안에 존재하는 항목들간의 종속관계를 찾아내는 기법
- 연속 규칙(Sequence): 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
- 데이터 군집화(Clustering): 대상 레코드들을 유사한 특성을 지닌 몇개의 소그룹으로 분할하는 작업