데이터 저장소
데이터 모델
현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현.
데이터 모델에 표시해야 할 요소
- 구조(Structure) : 논리적으로 표현할 대상, 데이터 구조 및 정적 성질을 표현
- 연산(Operation) : 실제 데이터를 처리하는 작업에 대한 명세. 데이터베이스를 조작하는 요소. (SELECT, PROJECT, JOIN, DIVISION)
- 제약조건(Constraint) : 실제 데이터의 논리적 제약조건. 데이터 무결성 유지를 위한 DB의 보편적 방법
데이터 모델 절차
요구조건 분석, 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델
- 개념적 설계
- 개념적 데이터 모델 : 트랜잭션 모델링. E-R 다이어그램.
- DB종류와 관계 X
- 논리적 설계
- 논리적 데이터 모델 : 인터페이스 설계. 논리적 스키마 설계.
- 관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델, 객체지향 데이터 모델, 객체-관계 데이터 모델 중 하나 설계
- 정규화
- 물리적 설계
- 물리적 데이터 모델 : 물리적 스키마 만드는 단계.
- 데이터베이스 저장 구조로 변환하는 모델
- 테이블, 인덱스, 뷰, 파티션 등 객체를 생성
- 반정규화
논리 데이터 모델링
- 관계 데이터 모델 : 2차원 테이블 형태. PK와 FK로 관계 표현. 1:1, 1:N, N:M 자유롭게
- 계층 데이터 모델 : 트리 형태. 상하 관계. 1:N만 허용
- 네트워크 데이터 모델 : 그래프 형태. CODASYL DBTG모델. 상하위 레코드 사이에 N:M 관게 만족
관계 데이터 모델
릴레이션(Relation) | 행(Row)와 열(Column)로 구성된 테이블 |
튜플(Tuple) | 행(Row) |
속성(Attribute) | 열(Column) |
카디널리티(Cardinality) | 튜플(ROW)의 수 |
차수(Degree) | 속성(Column)의 수 |
스키마(Schema) | 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적 구조 |
인스턴스(Instance) | 테이블에 실제 저장된 데이터의 집합 |
식별자(Identifier) | 관계형 데이터베이스 각각을 구분할 수 있는 논리적 개념 |
도메인(Domain) | 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합 |
관계 대수 / 관계 해석
관계 대수 : 절차적 언어, 관계 해석: 비절차적 언어(대절해비)
관계 대수 연산자 : 일반 집합 연산자(합교차카), 순수 관계 연산자(셀프조디)
- 셀렉트 : 조건을 만족하는 튜플반환
- 프로젝트 : 주어진 속성들의 값으로만 구성
- 조인 : 공통 속성을 이용해 연결해 만들어진 튜플 반환
- 디비전 : S의 모든 튜플과 관련있는 R의 튜플 반환
관계 해석 : 프레디킷 해석에 기반.
개체-관계 모델(E-R모델)
현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 나타내기 위해 사용되는 모델.
개체 집합 : □, 관계 집합: ◇, 속성 : ○, 다중 값 속성 : ◎, 개체집합-관계집합 연결 : -, 개체집합-속성 연결:-, 관계집합-속성연결: ---
반정규화 : 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법. 비정규화, 역정규화라고도 불림.
물리 데이터 모델
데이터베이스 무결성
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 성질
데이터베이스 무결성 종류
개체 무결성 (Entity Integrity) |
한 엔터티에서 같은 기본키(PK)를 가질 수 없거나, 기본키(PK)의 속성이 NULL을 허용할 수 없음 | 기본키(Prkmary Key) 유니크 인덱스(Unique Index) |
참조 무결성 (Referential Integrity) |
외래키가 참조하는 다른 개체의 기본키에 해당하는 값이 기본키 값이나 NULL이어야 하는 제약조건 | 외래키(Foreign Key) |
속성 무결성 (Attribute Integrity) |
속성의 값은 기본값, NULL여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 하는 제약조건 | 체크(CHECK) NULL/NOT NULL 기본값(DEFAULT) |
사용자 무결성 (User-Defined Integrity) |
사용자의 의미적 요구사항을 준수해야 하는 제약조건 | 트리거(Trigger) 사용자 정의 데이터 타입(User Defined Data Type) |
키 무결성 (Key Integrity) |
한 릴레이션에 같은 키 값을 가진 튜플들을 허용할 수 없는 제약조건 | 유니트(Unique) |
참조 무결성 제약 조건
- 제한(Restricted) : 참조 무결성 원칙을 위배하는 연산을 거절하는 옵션
- 연쇄(Cascade) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제하는 옵션
- 널 값(Nullify) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래 키에 NULL값을 넣는 옵션
- 참조 무결성 제약 조건 SQL 문법(삭제시)
- ALTER TABLE 테이블 ADD
- FOREIGN KEY (외래키)
- REFERENCES 참조테이블(기본키)
- ON DELETE [RESTRICT][CASCADE][SET NULL];
키(Key)
데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성
유일성(Uniqueness) : 식별자에 의해 엔터티 내에 모든 튜플들을 유일하게 구분하는 특성
최소성(Minimality) : 최소한의 속성으로 식별자를 구성하는 특성
키 종류
기본키(Primary Key) | 테이블의 각 튜플들을 고유하게 식별하는 컬럼 |
대체키(Alternate Key) | 후보키 중에서 기본키로 선택되지 않은 키 |
후보키(Candidate Key) | 테이블에서 각 튜플들을 구별하는데 기준이 되는 컬럼. (기본키와 대체키를 합친 키) |
슈퍼키(Super Key) | 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키 |
외래키(Foreign Key) | 한 릴레이션의 컬럼이 다른 릴레이션의 기본키로 이용되는 키 테이블간의 참조 데이터 무결성을 위한 제약조건 |
인덱스(Index)
- 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조.
- 인덱스를 통해 전체 데이터의 검색 없이 필요한 정보에 대해 신속한 조회가 가능함.
파티셔닝(Partitioning)
테이블 또는 인덱스 데이터를 파티션 단위로 나누어 저장하는 기법
파니셔닝 유형
레인지 파티셔닝(Range Partitioning) | 연속적인 숫자나 날짜를 기준으로 파티셔닝 |
해시 파티셔닝(Hash Partitioning) | 파티션 키의 해시 함수 값에 의한 피티셔닝 |
리스트 파티셔닝(List Partitioning) | - 파티션에 저장된 데이터에 대한 명시적 제어가 가능한 파티셔닝. - 분포도가 비슷하고 SQL컬럼의 조건이 많이 들어오는 경우 |
컴포지트 파티셔닝(Composite Partitioning) | 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝 중 두개 이상의 파티셔닝을 결합 |
라운드 로빈(Roung-Robin) | 라운드 로빈으로 회전하면서 새로운 행을 파티셔닝 |
데이터베이스 기초 활용
데이터베이스의 정의
- 통합된 데이터(Integrated Data) : 중복 배제
- 저장된 데이터(Stored Data ): 저장 매체에 저장된 데이터
- 운영 데이터(Operational Data) : 업무를 수행하는데 필요한 데이터
- 공용 데이터(Shared Data) : 공동으로 사용
데이터베이스의 특성
- 실시간 접근성(Real-Time Accessibility) : 실시간 응답이 가능해야 함.
- 연속적인 변화(Continuous Evolution) : 항상 최신의 데이터를 유지.
- 동시 공용(Concurrent Sharing) : 다수의 사용자가 동시에 같은 내용의 데이터 이용 가능.
- 내용 참조(Content Reference) : 사용자가 요구하는 데이터 내용으로 데이터를 찾아야 함.
데이터베이스 저장 기술
1. 데이터 웨어하우스(DW; Data Warehouse)
- 사용자의 의사결정에 도움을 주기 위해 데이터베이스에 축적된 내용을 공통 형식으로 변환해 관리하는 데이터베이스
- 주제 지향적, 통합적, 시계열적, 비휘발적 특징을 가짐.
주제 지향적 (Subject Oriented) |
주제 중심적 |
통합적 (Integrated) |
일관성을 유지하면서 전사적 관점에서 하나로 통합 |
시계열적 (Timevarient) |
시간에 따른 변화를 항상 반영 |
비휘발적 (Non-Volatile) |
적재가 완료되면 읽기 전용의 스냅샷 형태로 존재 |
2. 데이터 마트(DM; Data Mart)
- 소규모 단위 주제의 데이터 웨어하우스
- 데이터 웨어하우스에서 데이터를 꺼내 사용자에게 제공
빅데이터 특성(3V)
- 데이터의 양(Volumn)
- 데이터의 속도(Velocity)
- 데이터의 다양성(Variety)
하둡(Hadoop)
- 오픈소스를 기반으로 한 분산 컴퓨팅 플랫폼
하둡 주요 기술
데이터 수집 | ETL(Extract Transform Load) | 원본 데이터를 추출, 변환, 적재하는 작업 |
플럼(Flume) | 이벤트와 에이전트를 활용 | |
스쿱(Sqoop) | 커넥터 사용, 하둡 파일 시스템으로 데이터를 수집하거나, 하둡 파일 시스템에서 관계형 데이터베이스로 데이터를 보내는 기술 | |
스크래피(Scrapy) | 파이썬 언어 기반의 비정형 데이터 수집 기술 | |
분산 데이터 저장 | HDFS(Hadoop Distributed File System) | 대용향 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템 |
분산 데이터 처리 | 맵 리듀스(Map Reduce) | 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년에 발표한 소프트웨어 프레임워크 |
NoSQL
- 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인(Join)연산을 사용할 수 없으며, 수평적 확장이 가능한 DBMS이다.
NoSQL의 특성
특성 | 설명 |
Basically Available | - 언제든지 데이터는 접근할 수 있어야 한다 - 분산 시스템이기 대문에 항상 가용성 중시 |
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 - XML, JSON, YAML ex. MongoDB, Couchbase |
Graph Store | - 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DB ex. Neo4j, AllegroGraph |
데이터 마이닝
- 대규모로 저장된 데이터에서 통계적 규칙이나 패턴을 찾아내는 기술
- 대규모 데이터에서 의미 있는 패턴을 파악하거나 예측하여 의사결정에 활용하는 기법
데이터마이닝 주요 기법
주요 기법 | 설명 |
분류 규칙(Classification) | - 과거 데이터로부터 특성을 찾아내어 분류 모형을 만들어 이를 토대로 새로운 레코드의 결과 값을 예측하는 기법 ex. 우수 고객의 분류 모형 구축으로 마케팅 활용 |
연관 규칙(Association) | - 데이터 안에 존재하는 항목들 간의 종속관계를 찾아내는 기법 - 제품이나 서비스의 교차판매, 매장 진열, 사기 적발 등 다양한 분야에서 활용 ex. 넥타이 구매고객의 50% 이상이 셔츠를 구매한다는 정보 분석을 통해 매장의 상품 진역 |
연속 규칙(Sequence) | - 연관 규칙에 시간 관련 정보가 포함된 형태의 기법 - 개인별 트랜잭션 이력 데이터를 시계열적으로 분석하여 트랜잭션의 향후 발생 가능성 예측 ex. A 품목을 구매한 회원이 B 품목을 구매할 확률은 75% |
데이터 군집화(Clustering) | - 대상 레코드들의 유사한 특성을 지닌 몇 개의 소그룹으로 분할하는 작업으로 작업의 특성이 분류규칙과 유사 - 정보가 없는 상태에서 데이터를 분류하는 기법 - 분석대상에 결괏값이 없으며, 판촉 활동이나 이벤트 대상을 선정하는 데 활용 ex. 고객의 지역/연령/성별에 따른 차별화 홍보 전략 |
데이터 관련 용어
용어 | 설명 |
텍스트 마이닝(Text Mining) | - 대량의 텍스트 데이터로부터 패턴 또는 관계를 추출하여 의미 있는 정보를 찾아내는 기법 |
웹 마이닝(Web Mining) | - 웹으로부터 얻어지는 방대한 정보로부터 유용한 정보를 찾아내기 위해 분석하는 기법 |
다크 데이터(Dark Data) | - 수집된 후 저장은 되어 있지만, 분석에 활용되지는 않는 다량의 데이터 |
메타 데이터(Meta Data) | - 데이터에 대한 구조적이 데이터로서, 일련의 데이터를 정의하고 설명해 주는 데이터이고, 구축할 정보 자원을 기술하는 데이터 |
디지털 아카이빙(Digital Archiving) | - 지속적으로 보존할 가치를 가진 디지털 객체를 장기간 관리하여 이후의 이용을 보장할 수 있도록 변환, 압축 저장하여 DB화하는 작업 |
마이 데이터(MyData) | - 정보 주체가 기관으로부터 자기 정보를 직접 내려받아 이용하거나 제3자 제공을 허용하는 방식으로 정보 주체 중심의 데이터 활용 체계 - 개인이 정보 관리의 주체가 되어 능동적으로 본인의 정보를 관리하고, 본인의 의지에 따라 신용 및 자산관리 등에 정보를 활용하는 일련의 활동. |
'정보처리기사 공부' 카테고리의 다른 글
<실기> 인터페이스 기능 구현 (1) | 2025.03.17 |
---|---|
<실기> 통합 구현 (1) | 2025.03.17 |
<실기> 서버 프로그램 구현 (1) | 2025.03.13 |
<실기> UI 설계 (0) | 2025.03.12 |
<실기> SQL 응용 (1) | 2025.03.12 |