자격증/정보처리기사

정보처리기사 실기 스터디[2022-09-24] - 데이터 입출력 구현

머훈 2022. 9. 24. 22:33

📌 Study

🔸 2022-09-24

[물리 데이터 저장소 설계]

1. 물리 데이터 모델링

  • 개념 : 논리모델을 적용하고자 하는 기술에 맞도록 상세화해가는 과정

 

  • 변환 절차
    1. 개체를 테이블로 변환
    2. 속성을 컬럼으로 변환
    3. UID를 기본키로 변환
    4. 관계를 외래키로 변환
    5. 컬럼 유형과 길이 정의
    6. 반 정규화 수행

 

  • 테이블 조합 : 슈퍼타입 / 서브타입 조합
    • 슈퍼타입 : 모든 서브 타입으로 상속되는 공통 속성
    • 서브타입 : 개체의 전체 집합에서 일부만 모아놓은 부분 속성

 

  • 참조무결성 제약 조건 : 릴레이션 간 참조의 일관성을 보장하기 위한 조건
    • 제한(Restricted) : 참조무결성 위배하는 연산을 거절하는 옵션
    • 연쇄(Cascade) : 참조되는 릴레이션에서 튜플을 삭제하고, 이 튜플을 참조하는 튜플들도 함께 삭제
    • 널 값(Nullify) : 참조되는 릴레이션에서 튜플을 삭제하고, 이 튜플을 참조하는 튜플들의 외래키로 NULL 값을 넣음

 

  • 인덱스 설계
    • 인덱스 분포도 : 10 ~ 15% 이내
    • 분포도 좋은 컬럼은 단독적 생성
    • 자주 조합되는 컬럼은 결합 인덱스
    • 지나치게 많은 인덱스는 오버헤드
    • 수정이 빈번하지 않은 컬럼

 

  • 뷰 설계
    • 뷰 속성
속성 설명
REPLACE 뷰가 이미 존재하는 경우 재생성
FORCE 본 테이블의 존재 여부와 관계없이 뷰 생성
NOFORCE 기본 테이블이 존재할 때 뷰 생성
WITH CHECK OPTION 서브 쿼리 내 조건을 만족하는 행만 변경
WITH READ ONLY 데이터 조작어 작업 불가

 

  • 파티션 설계 : 레해리컴
    • 레인지 파티셔닝 : 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝, 손쉬운 관리 기법, 시간 단축 가능
    • 해시 파티셔닝 : 키의 해시 함수 값에 의한 파티셔닝, 데이터 균등 분할, 범위 없는 데이터
    • 리스트 파티셔닝 : 특정 데이터에 명시적 제어가 가능한 파티셔닝, 분포도가 비슷하고, 많은 SQL 조건
    • 컴포지트 파티셔닝 : 레인지, 해시, 리스트 파티셔닝 중 2개 이상 파티셔닝 결합, 여러 파티션으로 분산
    • 라운드로빈 파티셔닝 : 라운드로빈 분할로 회전하면서 새로운 행이 파티션에 할당

 

  • 파티션 장점 : 성가백합
    • 성능 향상 : 데이터 엑세스 범위 줄여 성능 향상
    • 가용성 향상 : 전체 데이터의 훼손 가능성이 감소 및 데이터 가용성 향상
    • 백업 가능 : 분할 영역을 독립적으로 백업하고 복구가능
    • 경합 감소 : 디스크 스트라이핑으로 입출력 성능 향상, 디스크 컨트롤러에 대한 경합 감소

 

2. 데이터베이스 기초 활용하기

  • 데이터베이스 정의
    • 통합된 데이터 : 자료의 중복을 배제한 데이터의 모임
    • 저장된 데이터 : 저장 매체에 저장된 데이터
    • 운용 데이터 : 조직의 업무를 수행하는데 필요한 데이터
    • 공용 데이터 : 여러 애플리케이션, 시스템들이 공동으로 사용하는 데이터

 

  • 데이터베이스 특성
    • 실시간 접근성 : 쿼리에 대해 실시간 응답이 가능
    • 계속적인 변화 : 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터 유지
    • 동시 공용 : 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야함
    • 내용 참조 : 데이터베이스에 있는 데이터 참조 시 사용자가 요구하는 데이터 내용으로 데아터 찾기

 

  • 데이터베이스 종류
  • 파일 시스템
    • ISAM : 자료 내용은 주 저장부, 자료 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템
    • VSAM : 대형 운영체제에서 사용되는 파일 관리 시스템

 

  • 관계형 데이터베이스 관리시스템(RDBMS`)
    • 가장 보편화된 데이터베이스 관리 시스템
    • 테이블 상하 관계 표시
    • 변화 업무에 유연적, 관리 용이
    • Oracle, SQL Server, MySQL, Maria DB 등

 

  • 계층형 데이터베이스 관리시스템(HDBMS)
    • 데이터를 상하 종속적인 관계로 계층화하여 관리 시스템
    • 데이터 접근 속도 빠름
    • 종속적인 구조 때문에 변화 업무에 대응이 어려움
    • IMS, System2000 등

 

  • 네트워크 데이터베이스 관리시스템(NDBMS)
    • 네트워크상 망상 형태로 표현한 관리 시스템
    • 트리 구조나 계층 데이터베이스보다 유연적이지만, 설계가 복잡
    • IDS, IDMS 등

 

  • DBMS : 데이터 관리의 복잡성 해결 및 데이터 CRUD 등의 기능을 지원하는 소프트웨어

 

  • DBMS 유형
    • 키-값 DBMS : 빅데이터 처리, unique 한 키에 하나 값 형태 (Redis, DynamoDB)
    • 컬럼 기반 데이터 저장 DBMS : 키 안에 여러개의 필드 갖음 (HBase, Cassandra)
    • 문서 저장 DBMS : 값의 데이터 타입이 문서, XML, JSON과 같이 구조화된 데이터 타입, 복잡 계층 구조 표현가능 (MongoDB, Couchbase)
    • 그래프 DBMS : 시멘틱 웹, 온톨로지 분야에서 활용되는 그래프, 노드 간 관계 구조화 저장 (Neo4j, AllegroGraph)

 

  • DBMS 특징
특징 설명
데이터 무결성 부적절 자료 입력되어 서로 다른 데이터 저장되는 것을 허용하지 않음
데이터 일관성 삽입, 삭제, 갱신, 생성 후에도 데이터 변동하지 않음
데이터 회복성 장애가 발생했을 때 특정 상태로 복구되어야 하는 성질
데이터 효율성 응답시간, 저장공간 활용 등 최적화되어 사용자 요구사항 만족
데이터 보안성 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질

 

  • 빅데이터 : 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 대용량 크기의 비정형 데이터

 

  • 빅데이터 특성(3V)
    • 데이터 양(Volumn) : 대규모 데이터
    • 데이터 다양성(Variety) : 정형, 비정형, 반정형 다양한 데이터
    • 데이터 속도(Velocity) : 빠르게 수집하고, 처리되는 데이터

 

  • HDFS : 대용량 데이터 처리하는 하둡 분산 파일 시스템
  • 맵리듀스 : 구글, 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하는 소프트웨어 프레임워크

 

  • NoSQL : 고정된 스키마가 필요하지 않고, 조인연산을 할 수 없으며 수평적 확장이 가능한 DBMS

 

  • NoSQL 특성(BASE)
    • Basically Available : 언제든지 데이터에 접근 가능
    • Soft-state : 노드 상태는 외부 전소오딘 정보를 통해 결정, 특정 시점에서는 데이터 일관성 보장되지 않음
    • Eventually Consistency : 일정 시간 지나면 데이터 일관성 유지

 

  • 데이터 마이닝 : 대규모 데이터를 체계적이고, 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술

 

  • 데이터 마이닝 절차
    1. 목적 설정
    2. 데이터 준비
    3. 가공
    4. 마이닝 기법 적용
    5. 정보 검증

 

  • 데이터 마이닝 주요 기법
    • 분류 규칙(Classification) : 과거 데이터 특성을 찾아 분류 모형 생성, 새로운 레코드 결과 예측 (마케팅, 신용평가)
    • 연관 규칙(Association) : 데이터 안 종속 관계 찾음 (제품 교차 판매, 매장 진열, 사기 적발)
    • 연속 규칙(Sequence) : 연관 규칙에 시간 관련 정보 포함 (A 품목 구매한 회원이 B 품복 구매할 확률)
    • 데이터 군집화(Clustering) : 대상 레코드들의 유사한 특성을 소그룹으로 분할, 정보가 없는 상태에서 데이터 분류 (이벤트 대상, 판촉활동)