물리 데이터 모델링: 논리모델을 적용하고자 하는 기술에 맞도록 상세화해 가는 과정이다.
물리 데이터 모델링 변환 절차
- 개체를 테이블로 변환: 일반적으로 테이블과 개체 명칭을 동일하게 하는 것을 권고
- 속성을 컬럼으로 변환: 개발자와 사용자 간 의사소통을 위해 표준화된 약어를 사용하도록 권고
- UID를 기본키로 변환: 개체의 UID에 해당하는 모든 속성에 대해 기본키로 선언
- 관계를 외래키로 변환: 외래키 명은 기본키 이름을 그대로 사용하나 다른 의미를 가질 경우 변경 가능
- 컬럼 유형과 길이 정의: 적절한 유형을 정의하고, 데이터의 최대 길이를 파악하여 길이를 설정
- 반 정규화 수행: 시스템 성능 향상과 개발 및 운영의 단순화를 위해 데이터 모델을 통합하는 반 정규화를 수행
참조무결성 제약조건
- 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건이다
- 두 개의 릴레이션이 기본키, 외래키를 통해 참조 관계를 형성할 경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 한다.
- 제한(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): 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.
데이터베이스 종류
- 파일 시스템(File System)개념: 파일에 이름을 부여하고 저장이나 검색을 위하여 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 데이터 관리 방식이다
- 파일시스템 종류
- ISAM(Indexed Sequential Access Method): 자료 내용은 주 저장부, 자료의 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템
- VSAM(Virtual Storage Access Method): 대형 운영체제에서 사용되는 파일 관리 시스템
- 파일시스템 종류
- 관계형 데이터베이스 관리시스템(RDBMS: Realtional Database Management System)
- 관계형 모델을 기반으로 하는 가장 보편화된 데이터베이스 관리시스템이다
- 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시하며 상관관계를 정의한다.
- 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이하다.
- (Oracle, SQL Server. MySQL, Maria DB등이 있다.)
- 계층형 데이터베이스 관리시스템(HDBMS: Hierarchical Database Management System)
- 계층형 DBMS는 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스이다.
- 데이터에 대한 접근 속도가 빠르지만 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않다
- (IMS; information Management System, System2000등이 있다)
- 네트워크 데이터베이스 관리시스템(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): 대량의 텍스트로부터 패턴 또는 관계를 추출하여 의미있는 정보를 찾아내는 기법이다.
'공부 > 정보처리기사' 카테고리의 다른 글
[9] 인터페이스 구현 (0) | 2021.10.04 |
---|---|
[8] 연계 데이터 구성, 연계 메커니즘, EAI / ESB (0) | 2021.10.03 |
[6] 데이터 입출력 구현(논리 데이터 저장소) (0) | 2021.09.29 |
[5] UI 설계 (0) | 2021.09.28 |
[4] UI 요구사항 확인 (0) | 2021.09.28 |
댓글