Study/정보처리기사

정보처리기사 실기 6강 - 데이터 입출력 구현②

상맹 2021. 9. 25. 15:38
반응형

1. 물리 데이터 모델 설계

 1.1 물리 데이터 모델링 개념

  - 논리모델을 적용하고자 하는 기술에 맞도록 상세화에 가는 과정

 

 1.2 물리 데이터 모델링 변환 절차

순서 절차 변환 방법
1 개체를 테이블로
변환
- 일반적으로 테이블과 개체 명칭을 동일하게 하는 것을 권고
- 개체는 한글명을 사용
- 테이블은 소스 코드의 가독성을 위해 영문명을 사용
2 속성을 컬럼으로
변환
- 개발자와 사용자 간 의사소통을 위해 표준화된 약어를 사용하도록 권고
- SQL 예약어 사용은 피해야 함
- 컬럼명으로 복합단어를 사용할 경우 미리 정의된 표준에 의해 명명
3 UID를 기본키로
변환
- 개체의 UID에 해당하는 모든 속성에 대해 기본키로 선언
- Not Null, Unique 등의 제약조건을 추가로 정의
- 관계에 의한 외래키가 기본키에 포함될 수 있음
4 관계를 외래키로
변환
- 외래키명은 기본키 이름을 그대로 사용하나 다른 의미를 가질 경우 변경 가능
- 순환 관계에서 자신의 기본키는 외래키로 정의
5 컬럼 유형과
길이의 정의
- 적절한 유형을 정의하고, 데이터의 최대 길이를 파악하여 길이를 설정
- 데이터 유형
① CHAR : 최대 2000바이트의 고정길이 문자열 저장 가능
② VARCHAR : 최대 4000바이트의 가변 길이 문자열 저장 가능
③ NUMBER : 38 자릿 수의 숫자 저장 가능
④ DATE : 날짜 값을 저장
⑤ BLOB, CLOB : 바이너리(Binary), 텍스트 데이터 최대 4GB까지 저장
6 반 정규화
수행
- 시스템 성능 향상과 개발 및 운영의 단순화를 위해 데이터 모델을 통합하는 반 정규화를 수행
- 데이터 유형
① 중복 테이블 추가 : 집계 테이블 추가 / 특정 부분만 포함 하는 테이블 추가
② 테이블 조합 : 1:1 관계 테이블 조합 / 1:M 관계 테이블 조합 / 슈퍼타입, 서브타입 테이블 조합
③ 테이블 분할 : 수직 분할 / 수평 분할
④ 테이블 제거 : 테이블 재정의 / 접근하지 않는 테이블 제거
⑤ 컬럼 중복화 : 조인 성능 향상을 위한 중복 허용

2. 데이터 베이스 종류

 2.1 데이터 베이스 개념

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

   - 데이터에 대한 효과적인 관리를 위해 자료의 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장이 중요

  2.1.1. 데이터베이스 정의

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

 2.2. 데이터베이스 특성

특성 설명
실시간 접근성
(Real-Time Accessibility)
쿼리에 대하여 실시간 응답이 가능해야 함
계속적인 변화
(Continuous Evolution)
새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지함
동시 공용
(Concurrent Sharing)
다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 함
내용 참조
(Content Reference)
데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.

 2.3. 데이터베이스 종류

  ① 파일 시스템 개념

   - 파일에 이름을 부여하고 저장이나 검색을 위하여 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터

      베이스 전 단계의 데이터 관리 방식

   - 종류

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

  ② 관계형 데이터베이스 관리 시스템(RDBMS)

   - 관계형 모델을 기반으로 하는 가장 보편화된 데이터베이스 관리시스템

   - 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시하며 상관관계를 정리

   - 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이

   - RDBMS 종류 : Oracle, SQL Server, MySQL, Maria DB 등

 

  ③ 계층형 데이터베이스 관리 시스템(HDBMS)

   - 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스

   - 데이터에 대한 접근 속도가 빠르지만, 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기 쉽지 않다.

   - HDBMS 종류 : IMS, System2000 등

 

  ④ 네트워크 데이터베이스 관리 시스템(NDBMS)

   - 데이터의 구조를 네트워크상의 망상 형태로 표현한 데이터 모델

   - 트리 구조나 계층형 데이터베이스보다는 유연하지만 설계가 복잡한 단점

   - NDBMS 종류 : IDS, IDMS

 

 2.4 데이터베이스 관리 툴

  - DB 관리자(DBA)들이 데이터베이스를 편리하고 쉽게 다룰 수 있도록 도와주는 도구이다.

  - 데이터베이스 관리 툴 기능

기능 설명
데이터베이스 생성, 삭제 CREATE와 DROP 명령을 통해 데이터베이스의 생성 및 삭제 가능
SQL 명령어 작성 및 실행 SELECT, INSERT, DELETE, UPDATE 명령을 통해 데이터를 조회, 입력, 삭제, 수정이 가능
상태 모니터링 받은  데이터양, 보낸 데이터양, 동시 연결 수, 실패한 시도 등의 상태를 표시
사용자 계정 관리 최상위 레벨의 SYS 계정, SYS로 부터 DBA 권한을 받은 SYSTEM 계정, 일반 사용자 계정 등의 관리가 가능
데이터베이
내보내기 / 가져오기
데이터베이스 마법사를 통해 파일 형태로 데이터 내보내기 / 가져오기 가능
환경 설정 버퍼의 크기, 동시 접속 클라이언트 숫자, 스레드 숫자 등의 환경 변수 설정

 3. DBMS 

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

  3.1 DBMS 유형

유형 설명
키-값(Key-Value)
DBMS
- 키 기반 Get / Put / Delete 제공, 메모리 기반에서 성능 우선 시스템 및 빅데이터 처리 기능 DBMS
- Unique 한 키에 하나의 값을 가지고 있는 형태
Ex) Redis, DynamoDB
컬럼 기반 데이터 저장
(Column Family Data Store)
DBMS
- Key 안에 (Column, Value) 조합으로 된 여러 개의 필드를 갖는 DBMS
- 테이블 기반, 조인 미지원, 컬럼 기반으로 구글의 Bigtable 기반으로 구현
Ex) HBase, Cassandra
문서저장 (Document Store)
DBMS
- 값(Value) 의 데이터 타입이 문서(Document)라는 타입을 사용하는 DBMS
- 문서 타입은 XML, JSON과 같이 구조화된 데이터 타입으로, 복잡한 계층 구조 표현 가능
Ex) MongoDB, Couchbase
그래프 (Graph)
DBMS
- 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DBMS
- 노드와 엣지로 특징되는 요소 특화
- 노드 간 관계를 구조화하여 저장
Ex) Neo4j, AllegroGraph

 3.2 DBMS 특징

 ① 데이터 무결성 : 부적절한 자료가 입력되어 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질

 ② 데이터 일관성 : 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정

 ③ 데이터 회복성 : 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질

 ④ 데이터 보안성 : 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질

 ⑤ 데이터 효율성 : 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜야 하는 성질

 

4. 데이터베이스 기술 트렌드

 4.1 빅데이터

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

    비정형 데이터

  - 빅데이터 특성

특성 설명
데이터의 양
(Volume)
- 페타바이트 수준의 대규모 데이터
- 빅데이터 분석 규모에 관련된 특성
- 디지털 정보량이 기하급수적으로 폭증하는 것을 의미
데이터의 다양성
(Variety)
- 정형, 비정형, 반정형의 다양한 데이터
- 빅데이터 자원 유형에 관련된 특성
- 로그, 소셜, 위치 등 데이터 유형이 다양해지는 것을 의미
데이터의 속도
(Velocity)
- 빠르게 증가하고 수집되며, 처리되는 데이터
- 빅데이터 수집, 분석, 활용 속도와 관련된 특성
- 가치 있는 정보 활용을 위해 실시간 분석이 중요해지는 것을 의미

   - 빅데이터 수집, 저장, 처리, 기술

구분 설명
비정형/반정형
데이터수집
내·외부 정제되지 않은 데이터를 확보, 이를 통해 필요 정보를 추출하여 활용하기 위해서 효과적으로 수집 및 전송하는 기술
→ 척와, 플럼, 스크라이브
정형 데이터 수집 내·외부 정제된 대용량 데이터 수집 및 전송 기술
→ ETL, FTP, 스쿱, 하이호
분산데이터 저장/처리 대용량 파일의 효과적인 분산 저장 및 분산 처리 기술
→ HDFS, 맵리듀스
분산데이터 베이스 HDFS의 칼럼 기반 데이터베이스로 실시간 랜덤 조회 및 업데이트가 가능한 기술
→ HBase

   - 빅데이터 분석, 실시간 처리 및 시각화를 위한 주요 기술

구분 설명
빅데이터 분석 빅데이터를 분석하기 위한 데이터의 가공과, 분류 클러스터링, 패턴 분석을 처리하는 기술
빅데이터 실시간 처리 하둡 기반의 실시간 SQL 질의 처리와 요청된 작업을 최적화하기 위한 워크플로우 관리 기술
분산 코디네이션 분산 환경에서 서버들 간에 상호조정이 필요한 다양한 서비스를 분산 및 동시처리 제공 기술
분석 및 시각화 빅데이터 분석 기술을 통해 분석된 데이터의 의미와 가치를 시각적으로 표현하기 위한 기술

 

 4.2 NoSQL

   - 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터저장에 고정된 테이블 스키마가 필요하지 않고

     조인(Join) 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS

   - NoSQL 특성

특성 설명
Basically Avaliable - 언제든지 데이터는 접근할 수 있어야 하는 속성
- 분산 시스템이기 때문에 항상 가용성 중시
Soft-State - 노드의 상태는 내부에 포함된 정보에 의해 결정되는 것이 아니라 외부에서 전송된 정보를 통해
  결정되는 속성
- 특정 시점에서는 데이터의 일관성이 보장되지 않음
Eventually Consistency - 일정 시간이 지나면 데이터의 일관성이 유지되는 속성
- 일관성을 중시하고 지향

   - NoSQL 유형

유형 설명
Key-Value Store - Unique한 Key에 하나의 Value를 가지고 있는 형태
- 키 기반 Get / Put / Delete 제공하는 빅데이터 처리 가능 DB
Ex) Redis, DynamoDB
Column Family
Data Store
- Key 안에 (Column, Value)조합으로 여러개의 필드를 갖는 DB
- 테이블 기반, 조인 미지원, 컬럼 기반, 구글의 Bigtable 기반으로 구현
Ex) HBase, Cassandra
Document Store - Value의 데이터 타입이 Document라는 타입을 사용하는 DB
- Document 타입은 XML, JSON, YAML과 같이 구조화된 데이터 타입으로, 복잡한 계층 구조 표현
Ex) MongoDB, Couchbase
Graph Store - 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DB
Ex) Neo4j, AllegroGraph

 

 4.3 데이터 마이닝(Data Mining)  

  - 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술

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

 

  - 데이터 마이닝 절차

   ① 목적 설정

    - 데이터 마이닝을 통해 얻고자 하는 명확한 목적 설정

    - 목적에 따라 사용할 모델과 필요 데이터 정의

   ② 데이터 준비

    - 사전에 운영 데이터 접근에 따른 부하 고려

    - 필요시 작업 서버에 저장하여 운영에 지장이 없도록 데이터 준비

    - 데이터 정제를 통해 데이터의 품질을 보장하고, 필요시 데이터 추가 등을 통해 충분한 양의 데이터 확보

   ③ 가공

    - 모델링 목적에 따라 목적 변수 정의

    - 필요한 데이터를 데이터 마이닝 소프트웨어에 적용할 수 있는 형식으로 가공 처리

   ④ 마이닝 기법 적용

    - 1단계 명확한 목적에 맞도록 데이터 마이닝 기법을 적요하여 정보 추출

   ⑤ 정보 검증

    - 테스트 데이터와 과거 데이터를 활용하여 최적의 모델 선정

 

  - 데이터 마이닝 주요 기법

주요 기법 설명
분류 규칙
(Classification)
-과거의 데이터로부터 특성을 찾아내어 분류모형을 만들어 이를 토대로 새로운 레코드의 결과 값을 예측
연관 규칙
(Association)
- 데이터 안에 존재하는 항목들 간에 종속관계를 찾아내는 기법
연속 규칙
(Sequence)
- 연관 규칙에 시간 관련된 정보가 포함된 형태의 기법
데이터 군집화
(Clustering)
- 대상 레코드들을 유사한 특성을 지닌 몇 개의 소그룹으로 분할하는 작업으로 작업의 특성이
  분류규칙(Classification)과 유사
- 정보가 없는 상태에서 데이터를 분류하는 기법

  

 

반응형