본문 바로가기
공부/정보처리기사

[7] 물리 데이터 저장소 설계, 데이터베이스, 데이터 마이닝

by Lagooni 2021. 10. 1.

물리 데이터 모델링: 논리모델을 적용하고자 하는 기술에 맞도록 상세화해 가는 과정이다.

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

  1. 개체를 테이블로 변환: 일반적으로 테이블과 개체 명칭을 동일하게 하는 것을 권고
  2. 속성을 컬럼으로 변환: 개발자와 사용자 간 의사소통을 위해 표준화된 약어를 사용하도록 권고
  3. UID를 기본키로 변환: 개체의 UID에 해당하는 모든 속성에 대해 기본키로 선언
  4. 관계를 외래키로 변환: 외래키 명은 기본키 이름을 그대로 사용하나 다른 의미를 가질 경우 변경 가능
  5. 컬럼 유형과 길이 정의: 적절한 유형을 정의하고, 데이터의 최대 길이를 파악하여 길이를 설정
  6. 반 정규화 수행: 시스템 성능 향상과 개발 및 운영의 단순화를 위해 데이터 모델을 통합하는 반 정규화를 수행

참조무결성 제약조건

  • 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건이다
  • 두 개의 릴레이션이 기본키, 외래키를 통해 참조 관계를 형성할 경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 한다.
  • 제한(Restricted)
    • 참조무결성 원칙을 위배하는 연산을 거절하는 옵션이다.
  • 연쇄(Cascade)
    • 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제하는 옵션이다.
  • 널 값(Nullify)
    • 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래 키에 NULL값을 넣는 옵션이다.
  • 참조무결성 제약조건 SQL문법
    • ALTER TABLE 테이블 ADD
      FOREIGN KEY (외래키)
      REFERENCES 참조테이블(기본키)
      ON DELETE [ RESTRICT | CASCADE | SET NULL ];

인덱스 설계: 인덱스 적용 기준, 컬럼 선정 등을 고려하여 설계한다

인덱스: 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터구조이다; 인덱스를 통해 전체 데이터의 검색 없이 필요한 정보에 대해 신속한 조회가 가능하다.

뷰(View)설계: 뷰의 속성 및 고려 사항을 참고하여 설계한다.

뷰 속성

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

※DDL(데이터 정의어; Data Definition Language): 데이터를 정의하는 언어로서 테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어들로 특정 구조를 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조와 관련된 명령어들을 데이터 정의어라고 부른다.

※DML(데이터 조작어; Data Manipulation Language): 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어이다.(SELECT, INSERT, DELETE, UPDATE가 있다.)

파티션(Partition)의 종류 (레/해/리/컴)

  • 레인지 파티셔닝(Range Partitioning)
    • 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법이다.
    • 손쉬운 관리 기법을 제공하여 관리 시간의 단축이 가능하다.
  • 해시(Hash Partitioning)
    • 파티션 키의 해시 함수 값에 의한 파티셔닝 기법이다.
    • 균등한 데이터 분할이 가능하고 질의 성능이 향상 가능하다.
  • 리스트 파티셔닝(List Partitioning)
    • 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법이다.
    • 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용하다.
  • 컴포지트 파티셔닝(Composite Partitioning)
    • 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝 중 2개 이상의 파티셔닝을 결합하는 파티셔닝 기법이다.
    • 큰 파티션에 대한 I/O요청을 여러 파티션으로 분산할 수 있다.

파티셔닝의 장점: 성능 향상, 가용성 향상, 백업 가능, 경합 감소


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

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

데이터베이스는 통합된 데이터, 저장된 데이터, 운영 데이터, 공용 데이터이다.

데이터베이스 정의

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

데이터베이스 특성

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

데이터베이스 종류

  1. 파일 시스템(File System)개념: 파일에 이름을 부여하고 저장이나 검색을 위하여 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 데이터 관리 방식이다
    • 파일시스템 종류
      • ISAM(Indexed Sequential Access Method): 자료 내용은 주 저장부, 자료의 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템
      • VSAM(Virtual Storage Access Method): 대형 운영체제에서 사용되는 파일 관리 시스템
  2. 관계형 데이터베이스 관리시스템(RDBMS: Realtional Database Management System)
    • 관계형 모델을 기반으로 하는 가장 보편화된 데이터베이스 관리시스템이다
    • 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시하며 상관관계를 정의한다.
    • 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이하다.
    • (Oracle, SQL Server. MySQL, Maria DB등이 있다.)
  3. 계층형 데이터베이스 관리시스템(HDBMS: Hierarchical Database Management System)
    • 계층형 DBMS는 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스이다.
    • 데이터에 대한 접근 속도가 빠르지만 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않다
    • (IMS; information Management System, System2000등이 있다)
  4. 네트워크 데이터베이스 관리시스템(NDBMS: Network Database Management System)
    • 네트워크 DBMS는 데이터의 구조를 네트워크상의 망상 형태로 표현한 데이터 모델이다
    • 트리구조나 계층형 데이터베이스보다는 유연하지만 설계가 복잡한 단점이 있다.
    • (IDS; Integrated Data Store, IDMS; Integrated Database Management System)등이 있다.

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

DBMS유형 (키/컬/도/그)

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

DBMS특징

  • 데이터 무결성: 부적절한 자료가 입력되어 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
  • 데이터 일관성: 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
  • 데이터 회복성: 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
  • 데이터 보안성: 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
  • 데이터 효율성: 응답시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜야 하는 성질

상용 DBMS: 상용 데이터베이스 관리시스템은 특정 회사에서 유료로 판매하는 시스템이다; 유지보수와 지원이 원활하다.

오픈 소스 기반 DBMS: 오픈 소스 기반 데이터베이스 시스템은 오픈소스 라이선스 정책을 준용하는 범위 내에서 사용이 자유롭다.

빅데이터(Big Data): 빅데이터는 시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB) 크기의 비정형 데이터이다.

빅데이터의 특성

  • 데이터의 양(Volume)
    • 페타바이트 수준의 대규모 데이터
    • 빅데이터 분석 규모에 관련된 특성
    • 디지털 정보량이 기하급수적으로 폭증하는 것을 의미
  • 데이터의 다양성(Variety)
    • 정형, 비정형, 반정형의 다양한 데이터
    • 빅데이터 자원 유형에 관련된 특성
  • 데이터의 속도(Velocity)
    • 빠르게 증가하고 수집되어 처리되는 데이터
    • 빅데이터 수집, 분석 활용 속도와 관련된 특성

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

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

빅데이터 분석: 빅데이터를 분석하기 위한 데이터의 가공과 분류, 클러스터링, 패턴 분석을 처리하는 기술

빅데이터 실시간 처리: 하둡 기반의 실시간 SQL질의 처리와 요청된 작업을 최적화하기 위한 워크플로운 관리 기술

분산 코디네이션: 분산 환경에서 서버들 간에 상호조정이 필요한 다양한 서비스를 분산 및 동시처리 제공 기술

분석 및 시각화: 빅데이터 분석 기술을 통해 분석된 데이터의 의미와 가치를 시각적으로 표현하기 위한 기술

NoSQL(Not Only SQL): 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며 수평적으로 확장이 가능한 DBMS이다.

NoSQL의 특성

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

데이터 마이닝(Data Mining): 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술이다; 대규모 데이터에서 의미있는 패턴을 파악하거나 예측하여 의사결정에 활용하는 방법이다.

데이터 마이닝 절차

단계 절차 설명
1단계 목적 설정 데이터 마이닝을 통해 얻고자 하는 명확한 목적 설정
2단계 데이터 준비 데이터 정제를 통해 데이터의 품질을 보장하고, 필요시 데이터 추가 등을 통해 충분한 양의 데이터 확보
3단계 가공 모델링 목적에 따라 목적 변수 정의
필요한 데이터를 데이터 마이닝 소프트웨어에 적용할 수 있는 형식으로 가공처리
4단계 마이닝 기법 적용 1단계의 명확한 목적에 맞도록 데이터 마이닝 기법을 적용하여 정보 추출
5단계 정보 검증 데이터 마이닝으로 추출된 정보 검증
테스트 데이터와 과거 데이터를 활용하여 최적의 모델 선정

데이터 마이닝 주요 기법 (분/연/연/데)

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

온톨로지(Ontology): 실세계에 존재하는 모든 개념과 개념들의 속성, 그리고 개념 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술한 지식베이스이다.

텍스트 마이닝(Text Mining): 대량의 텍스트로부터 패턴 또는 관계를 추출하여 의미있는 정보를 찾아내는 기법이다.

댓글