티스토리 뷰

728x90
반응형

논리 데이터 저장소 확인

데이터모델

: 현실세계 정보를 인간, 컴이 이해할 수 있도록 추상화하여 표현한 모델.

데이터모델에 표시해야할 요소에는 논리적데이터구조, 연산, 제약조건이 있음.

데이터모델 절차: 개념적데이터모델-> 논리적 데이터모델-> 물리적 데이터 모델

 

1) 개념적 데이터 모델

: 현실세계 정보를 인간, 컴이 이해할 수 있도록 추상화하여 표현한 모델.

: 트랜잭션 모델링, View 통합방법 및 Attribute 합성고려.

: 개념적 데이터모델은 DB종류와 관계없음.

: 주요산출물=개체관계다이어그램(ERD)

 

2) 논리적 데이터 모델

모델링 표기법으로 형상화해 사람이 이해하기 쉽게 만듦

: 개념모델로부터 업무데이터 및 규칙을 구체적으로 표현.

종류: 관계데이터모델, 계층 데이터모델, 네트워크데이터모델, 객체지향데이터모델, 객체-관계 데이터 모델.

: 목표 DBMS에 맞는 스키마설계, 트잭 인터페이스 설계

: 정규화 수행. 논리적 데이터베이스 구조로 매핑

: 스키마의 평가 및 정제

 

논리데이터 모델링 속성

구조 설명
개체(entity) 관리할 대상이 되는 실체.
피터 챈 모델에서는 개체를 사각형()으로, 까마귀발 모델에서는 표형식으로 표시.
속성
(attributes)
관리할 정보의 구체적 항목
개체가 가진 요소, 성질.
피터챈에서는 타원형(), 까마귀발에서는 표내부에 속성을 표시.
단수형으로 명명, 개체명을 사용하지 않음. Null 여부를 고려해 작성함.
관계
(relationship)
개체 간의 대응 관계
피터챈에서는 마름모로, 까마귀에서는 선으로 표시한다
: 1:1
-<: 1:m관계
>-<: n:m관계

개체-관계(E-R) 모델

: 현실세계 데이터와 그 관계를 사람이 이해하게 표현

구성요소 기호
개체 사각형
관계 마름모
속성 타원
다중값속성 이중타원
관계-속성 연결

정규화(Normalization)

관계형 데이터모델에서 데이터중복성을 제거, 이상현상 방지하고 데이터 일관성, 정확성 유지하기 위해 무손실 분해하는 과정.

1) 1정규형(1NF): 원자값으로 구성

(ex. 이메일주소를 2개가진 사람-> row 2개로 나눔)

 

2) 2정규형(2NF): 부분함수 종속제거(완전함수적종속관계)

==> 주식별자 아닌 속성을 분리함.

(ex. 홍길동-수영-70000-> 운동테이블, 고객테이블로)

 

3) 3정규형(3NF): 이행함수 종속제거. 속성중에 종속적인 속성을 분리한다.

A->B이고, B->C이면서 A->C 관계가 같이 있는 경우를 이행함수 종속관계라고 함.

 

4) 보이스-코드 정규형(BCNF): 결정자 후보 키가 아닌 함수 종속 제거. 결정자 함수 종속, 모든 결정자가 후보키임.

 

5) 4정규형(4NF): 다치(다중 값) 종속 제거. 특정 속성값에 따라 선택적인 속성을 분리함.

 

6) 5정규형(5NF): 조인 종속 제거

: 4차 정규화 테이블에 대해 조인연산 수행시 발생하는 조인 종속 관계를 제거.

 

 

반 정규화(De-Normalization) = 비정규화 = 역정규화

: 정규화된 엔터티, 속성, 관계에 대해 성능향상, 운영단순화, 관리효율증가 위해 중복, 통합, 분리를 수행.

: 단점: 데이터 일관성, 정합성 저하, 유지비용 별도 발생해 성능에 나쁜 영향을 미칠 수 있음.

반정규화 절차

1) 대상조사: 범위처리 빈도수, 대량범위 처리, 통계성 프로세스, 테이블 조인 수를 고려.

2) 다른방법 유도: 뷰 테이블, 클러스터링, 인덱스의 조정, 어플리케이션 변경 등을 유도함

3) 반 정규화 적용

반정규화 기법

구분 수행방법 설명
테이블 테이블병합 1:1, 1:M관계 통해 조인횟수를 줄임.
슈퍼/서브타입 테이블 통합
테이블분할 =파티셔닝
중복테이블추가 집계함수(Group by, sum) 등으로 실시간 통계 계산하는 경우 효과적 수행위해 별도 테이블 두거나 중복테이블 추가.
컬럼 컬럼중복화 조인성능향상을 위한 중복허용
관계 중복관계추가 데이터를 처리위한 여러 경로를 거쳐 조인이 가능하나, 성능저하를 예방하기 위해 추가적 관계를 맺음.

 

이상현상(anomaly)

: 데이터 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상. 삽입이상, 삭제이상, 갱신이상이 있음.

1) 삽입이상: 저장시 불필요한 세부정보를 입력해야함

2) 삭제이상: 삭제치 원치않는 다른정보가 같이삭제됨

3) 갱신이상: 중복데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

 

 

관계데이터모델

: 논리적구조가 2차원 테이블형태. PK, FK

: 1:1, 1:N, N:M 관계 자유롭게 표현.

: 수학자 E.F.Codd 박사가 제안한 모델.

구성요소 설명
릴레이션 (row), (column)로 구성된 테이블
튜플 릴레이션의 행
속성 릴레이션의 열
카디널리티 튜플(row)의 수
차수(degree) 애트리뷰트(column)의 수
스키마 DB구조, 제약조건 등 정보를 담고있는 기본적 구조
인스턴스 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

: 데이터간의 관계를 PKPK로 표현함.

: 테이블간 관계를 1:1, 1:N, N:M 관계로 목적에 맞게 표현한다.

 

 

관계대수

: 관계형 DB에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형언어

1) 일반 집합 연산자

: 수학 집합개념을 릴레이션에 적용한 연산자

연산자 기호 표현
합집합Union RS
교집합
intersection
RS
차집합 difference RS
카티션 프로덕트
cartesian product
× R×S

2) 순수 관계 연산자

연산자 기호 표현
select б조건(R)
project л속성리스트(R)
join RS
division R÷S S의 모든 튜플과 관련있는 R의 튜플 반환

관계해석

: 튜플 관계해석과 도메인 관계 해석을 하는 비절차적언어

프레디킷해석(predicate calculus)에 기반한 언어, 비절차적언어(원하는 정보가 무엇이라는 것만 선언).

 

계층데이터모델

: 논리적구조가 트리형태. 상하관계존재(부모-자식).

: 1:N관계만 허용

 

네트워크데이터모델

: 그래프형태. CODASYL DBTG 모델이라고도함.

: 상위, 하위 레코드 사이 다대다(N:M) 관계를 만족함.

 

 

3) 물리적 데이터 모델

: 논리데이터모델을 특정 DBMS 특성/성능 고려해 물리적 스키마를 만듦.

: 테이블, 인덱스, , 파티션 등 객체를 생성

: 응답시간, 저장공간 효율화, 트랜잭션 처리 고려해 설계

: 성능측면에서 반 정규화를 수행

: 레코드 집중의 분석 및 설계

: 저장 레코드 양식 설계

: 접근경로(access path) 설계

 

물리 데이터 모델 설계

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

DDL을 이용해 데이터 모델을 정의.

물리 데이터 모델링 변환절차(논리->물리)

순서 절차 변환방법
1 개체를 테이블로 변환
2 속성을 컬럼으로 변환
3 UID를 기본키로 변환 개체의 UID에 해당하는모든 속성에 대해 기본키로 선언
제약조건 정의.
관계에 의한 외래키가 기본키에 포함될 수 있음.
4 관계를 외래키로 변환
5 컬럼 유형과 길이정의 CHAR: 최대 2000byte
VARCHAR2: 최대 4000byte
NUMBER: 38자릿수
BLOB, CLOB: binary, text data 최대 4GB
6 반 정규화 수행

슈퍼타입: 모든서브타입으로 상속되는 공통 속성

서브타입: 개체 전체집합에서 일부분만 모은 부분속성

 

 

물리 데이터 저장소 설계

: 물리데이터 저장소 구성을 위해 DBMS 선정한 이후 활동.

 

1) 테이블 제약조건(constraint) 설계

- 참조무결성 제약조건

: 릴레이션-릴레이션 사이 참조 일관성 보장위한 조건. 두 릴레이션이 PK, FK 통한 참조관계인 경우, 참조하는 FK값은 항상 참조되는 릴레이션의 PK로 존재해야함.

ex) ALTER TABLE 테이블 ADD FOREIGN KEY (FK) REFERENCES 참조테이블(PK) ON DELETE [ RESTRICT | CASCADE | SET NULL ];

(1) 제한(restricted)

: 참조무결성 원칙을 위배하는 연산을 거절하는 옵션

(2) 연쇄(cascade)

: 참조되는 릴레이션에서 같이 삭제됨

(3) 널값(Nullify)

: 참조되는 릴레이션에 삭제된 것에 NULL값을 넣음.

만약 Not null일 경우 삭제연산을 거절함.

 

2) 인덱스 설계

: 인덱스 적용 기준, 컬럼 선정 등을 고려해 설계.

 

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

인덱스 적용 기준: 인덱스 분포도가 10~15% 이내인 경우 아래 수식을 참고함.

분포도= (1/(컬럼 값 종류))*100

분포도= (컬럼 값 평균 row )/(테이블 총 row)*100

분포도: 특정 컬럼 데이터가 테이블에 평균적으로 분포되어있는 정도.

: 분포도가 범위 이상이여도 부분처리를 목적으로 하는 경우 적용함.

:조회 및 출력조건으로 사용되는 컬럼인 경우 적용.

: 인덱스 자동생성 기본키와 unique 키의 제약조건을 사용할 경우 적용.

 

-인덱스 컬럼 선정

: 분포도가 좋은 컬럼은 단독으로 생성.

: 자주 조합되어 사요되는 컬럼은 결합 인덱스로 생성

: 결합인덱스는 구성되는 컬럼 순서 선정(사용빈도, 유일성, 정렬 등)에 유의

: 가능한 수정이 빈번하지 않은 컬럼을 선정.

 

-인덱스 컬럼 설계시 고려 사항

: 지나치게 많은 인덱스는 overhead로 작용함.

: 인덱스는 추가적인 저장공간이 필요함.

: 넓은 범위를 인덱스처리시 오히려 많은 overhead.

: 인덱스와 테이블 저장공간을 분리하도록 설계.

 

 

 

3) 뷰 설계

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

 

- 뷰 설계시 고려사항

: 뷰 사용에 따라 수행속도에 문제가 발생할 수 있음.

: 뷰의 조건은 최적의 액세스 경로를 사용할 수 있도록함.

 

 

4) 클러스터 설계

 

-클러스터 적용 기준

: 인덱스단점 해결기법. 분포도가 넓을수록 유리함.

: 액세스 기법이 아닌, 액세스 효율향상을 위한 물리적 저장방법.

: 분포도 넓은 테이블의 클러스터링은 저장공간 절약가능.

: 대량범위를 자주 액세스하는 경우 적용함.

: 여러 개의 테이블이 빈번하게 조인을 일으킬 때 활용.

 

-클러스터 고려사항

: 검색 효율은 높여주나, 입력, 수정, 삭제시는 부하증가.

: UNION, DISTINCT, ORDER BY, CROUP BY가 빈번한 컬럼. 수정이 자주 발생하지 않는 컬럼이면 검토대상임.

: 처리 범위가 넓어 문제가 발생하는 경우 단일 테이블 클러스터링을 고려한다.

: 조인이 많아 문제가 발생되는 경우 다중 테이블 클러스터링을 고려한다.

 

 

5) 파티션(Partition) 설계

(1) 레인지 파티셔닝 ex) 날짜별

: 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법.

: 손쉬운 관리 기법을 제공하여 관리 시간의 단축이 가능.

(2) 해시 파티셔닝 ex) 해시함수값별

: 파티션 키의 해시함수 값에 의한 파티셔닝 기법

: 균등한 데이터 분할이 가능하고 질의 성능이 향상가능.

: 파티션을 위한 범위가 없는 데이터에 적합.

(3) 리스트 파티셔닝 ex)주소별

: 특정 파티션에 저장될 데이터에대한 명시적 제어가 가능한 파티셔닝 기법

: 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용함.

(4) 컴포지트 파티셔닝 ex) 주소+가입월일별

: 레인지/해시/리스트 파티셔닝 중 2개이상을 결합.

: 큰 파티션에 대한 I/O 요청을 여러 파티션으로 분산할 수 있음.

 

-파티션 장점

1) 성능향상: 데이터액세스 범위를 줄여 성능향상

2) 가용성향상: 전체 데이터의 훼손가능성 감소

3) 백업가능: 분할영역을 독립적으로 백업하고 복구가능

4) 경합감소: 디스크 스트라이핑(데이터를 1개 이상의 디스크 드라이브에 저장해 드라이브를 병렬로 사용)으로 입출력성능 향상, 디스크 컨트롤러에 대한 경합의 감소

 

-디스크 구성 설계

: 정확한 용량 산정해 디스크 사용의 효율을 높임.

: 업무량이 집중된 디스크를 분리하여 설계

: 입출력 경합을 최소화하여 데이터의 접근 성능을 향상

: 디스크 구성에 따라 테이블스페이스 개수와 사이즈 등을 결정함

: 파티션 수행 테이블은 별도로 분류함.

 

 

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

데이터베이스: 통합하여 관리되는 데이터의 집합. 데이터 효과적 관리 위해 자료 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장이 중요.

정의 설명
통합된 데이터(integrated data) 자료의 중복을 배제한 데이터의 모임
저장된 데이터 저장매체에 저장된 데이터
운영 데이터 조직업무수행 데이터
공용데이터 여러 시스템이 공용사용

 

데이터베이스의 특성

특성 설명
실시간 접근성(real-time accessibility) 쿼리에 대해 실시간 응답이 가능해야함.
계속적인 변화(continuous evolution) 새 데이터의 insert, delete, update로 최신의 데이터 유지
동시 공용(concurrent sharing) 다수 사용자가 동시 같은 데이터를 이용가능
내용 참조(content reference) 데이터 참조시 레코드 주소/위치가 아닌, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.

 

 

데이터베이스 종류

1) 파일시스템

: 파일에 이름부여, 파일을 어디에 위치시켜야하는지 등을 정의, 관리하는 DB 전단계의 데이터 관리 시스템.

(1) ISAM: indexed sequential access method. 자료 내용은 주 저장부, 자료색인은 자료기록된 위치와 함께 색인부에 기록되는 시스템.

(2) VSAM: virtual storage access method. 대형 os에서 사용되는 파일 관리 시스템.

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

: 데이터를 저장하는 테이블의 일부를 타테이블과 상하관계로 표시하며 상관관계를 정리함.

: Oracle, MySQL, Maria DB, SQL Server .

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

: 데이터를 상하 종속적 관계로 계층화해 관리

: 데이터 접근속도 빠르나, 종속적 구조로 인해 변화하는 데이터 구조에 유연하게 대응하기 쉽지 않음.

: IMS, System2000 등이 있음.

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

: 트리나 계층형 데이터베이스보다는 유연하나 설계복잡

: IDS, IDMS 등이 있음.

 

 

 

-DBMS

: 데이터 관리 복잡성을 해결, 데이터 추가, 변경, 검색,삭제, 백업, 복구 보안 기능 지원하는 SW

: 관리하는 데이터의 형태, 관리방식에 따라 관계형 데이터베이스, 문서 저장시스템, 그래프 데이터베이스, Key-Value 스토어 등으로 구분됨.

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

 

DBMS 특징

특징 설명
데이터 무결성 부적절한 자료가 입력되어 동일한 내용에 대해 서로 다른 데이터가 저장되는 것을 허용치 않음
데이터 일관성 삽입/삭제 등 후에도 데이터 일정
데이터 회복성 장애발생 시 특정상태로 복구
데이터 보안성 불법적 노출, 변경, 손실 보호
데이터 효율성 응답시간, 저장공간 활용 등 최적화

 

- 상용 DBMS 및 오픈소스 기반 DBMS

1) 상용 DBMS: 특정회사에서 유료로 판매. 유지보수와 지원이 원활

2) 오픈소스 DBMS: 오픈소스 라이선스 정책을 준용하는 범위 내에서 사용이 자유로움.

 

-데이터베이스 기술 트랜드

1) 빅데이터

: 주어진 비용, 시간 내에 처리가능한 데이터 범위를 넘어서는 수십 페타바이트 크기의 비정형데이터.

: 데이터의 양: PB수준의 대규모데이터. 디지털 정보량이 기하급수적으로 폭증

: 데이터의 다양성: 정형, 비정형, 반정형의 다양한 데이터

: 데이터속도: 빠르게 증가하고 수집되며, 처리되는 데이터. 가치있는 정보 활용을 위해 실시간 분석이 중요해지는 것을 의미.

 

 

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

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

HDFS: 대용량 데이터의 집합을 처리하는 응용프로그램에 적합하도록 설계된 하둡 분산 파일시스템.

맵리듀스: 구글에서 대용량 데이터처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작.

빅데이터 분석: 빅데이터를 분석하기 위한 데이터의 가공, 분류, 클러스터링, 패턴분석을 처리하는 기술, 데이터 가공 솔루션: 피그, 하이브.

데이터마이닝 솔루션: 머하웃

빅데이터 실시간 처리: 하둡 기반의 실시간 SQL 질의 처리와 요청된 작업을 최적화하기 위한 워크플로우 관리 기술. 실시간 SQL 질의를 위한 대표적인 솔루션은 임팔라가 있고, 워크플로우 관리를 위한 대표적 솔루션은 우지가 있음.

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

분석 및 시각화: ex) R

 

2) NoSQL(Not only SQL)

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

특성 설명
basically available 언제든 데이터 접근 가능
분선시스템이기에 항상 가용성 중시
soft-state 노드 상태는 내부 포함된 정보에 의해 결정되는 것이 아니라 외부에서 전송된 정보를 통해 결정됨.
특정 시점에서는 데이터의 일관성이 보장되지 않음
eventually consistency 일정시간이 지나면 데이터의 일관성이 유지됨.
일관성을 중시하고 지향.

NoSQL의 유형

: Key-Value Store, Coumn Family Data Store, Document Store, Graph Store

 

3) 데이터마이닝

: 대규모로 저장된 데이터 안에서 체계적, 자동적으로 통계적 규칙이나 의미있는 패턴을 찾아내는 기술.

단계 설명
1단계:목적설정 목적에 따라 사용할 모델과 필요데이터 정의
2단계:데이터준비 사전에 운영데이터 접근에 따른 부하 고려.
필요시 작업 서버에 저장하여 운영에 지장이 없도록 데이터 준비
데이터 정제를 통해 데이터의 품질을 보장하고, 필요시 데이터 추가등을 통해 충분한 양의 데이터 확보
3단계:가공 모델링 목적에 따라 목적 변수 정의
필요한 데이터를 데이터 마이닝 소프트웨어에 적용할 수 있는 형식으로 가공 처리
4단계:마이닝기법적용 1단계 목적에 맞게 정보추출
5단계:정보검증 추출된 정보 검증. 테스트 데이터와 과거데이터 활용해 최적의 모델 선정.
데이터 마이닝 결과의 업무 적용 보고서 작성 및 활용

데이터 마이닝 주요 기법

: 데이터 마이닝은 텍스트마이닝, 웹마이닝과 함께 다양한 분야에서 활용됨.

주요기법 설명
분류규칙(classification) 과거데이터로부터 특성을 찾아내어 분류모형을 만들어 새로운 레코드의 결과값 예측. 마케팅, 고객 신용평가 모형에 활용
연관규칙(association) 종속관계를 찾아내는 기법. 제품이나 서비스의 교차판매, 매장진열 등 다양한 분야에서 활용 (ex. 넥타이 구매고객은 셔츠도 같이 구매한다)
연속규칙(sequence) 연관규칙에 시간관련 정보가 포함된 형태의 기법
개인별 트랜잭션 이력 데이터를 시계열적으로 분석해 향후 발생 가능성 예측
ex) A구매한사람이 B구매할 확률
데이터군집화(clustering) 분류규칙과 유사.
정보가 없는 상태에서 데이터를 분류.
분석대상에 결괏값이 없으며, 판촉활동, 이벤트대상을 선정하는데 활용

 

 

728x90
반응형
댓글