개발공부/정보처리기사

[정보처리기사 실기] 3장 데이터 입출력 구현

햄❤️ 2023. 4. 14. 23:15
728x90

 

정보처리기사 수제비 2022 실기 문제집을 요약하며 공부했습니다! 😁 

 

3-1 논리 데이터 저장소 확인

 

3-1-1. 데이터 모델

📌  데이터 모델 개념, 표시요소

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

- 표시요소: 연산(Operation), 구조(Structure), 제약 조건(Constraint)

 

📌  데이터 모델 절차

  1.  요구조건 분석: 요구사항 간 상충을 해결하고, 범위를 파악하여 외부 환경과의 상호작용 분석을 통해 데이터에 대한 요구 분석
  2. 개념적 설계: 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델. 주요 산출물은 개체-관계 다이어그램
  3. 논리적 설계: 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델. 정규화 수행
  4. 물리적 설계: 특정 DBMS 특성 및 성능을 고려하여 물리적 스키마를 만드는 단계. 테이블, 인덱스 등 객체 생성 및 반 정규화 수행

 

3-1-2. 논리 데이터 모델 검증

📌  논리 데이터 모델 종류

  1. 관계 데이터 모델 : 논리적 구조가 2차원 테이블 형태로 구성된 모델. 기본키(PK)와 이를 참조하는 외래키(FK)로 관계 표현. 1:1, 1:N, N:M 관계를 자유롭게 표현
  2. 계층 데이터 모델: 논리적 구조가 트리 형태로 구성된 모델. 상하 관계만 존재. 1:N 관계만 허용
  3. 네트워크 데이터 모델: 논리적 구조가 그래프 형태로 구성된 모델. 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): 대상 레코드들을 유사한 특성을 지닌 몇개의 소그룹으로 분할하는 작업
728x90