데이터 모델
1) 정의
[현인컴추]
현실세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
2) 절차
[개논물]
개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델
논리적 데이터 모델링
1) 정의
[업표형인]
업무의 모습을 모델링 표기법으로 형상화하여 인간이 이해하기 쉽게 표현하는 프로세스
2) 종류
[관계네]
관계 데이터 모델 : 논리적 구조가 2차원 테이블 형태로 구성, 기본키와 외래키로 관계 표현, 1:1, 1:N, N:M 관계 표현
계층 데이터 모델 : 논리적 구조가 트리 형태로 구성, 상하관계 존재, 1:N만 허용
네트워크 데이터 모델 : 논리적 구조가 그래프 형태로 구성, COSDASYL DBTG 모델, N:M 관계 만족
3) 속성
[개속관]
개체 : 사물 또는 사건, 피터 챈 모델에서는 사각형으로 표시, 까마귀발 모델에서는 표 형식으로 표현
속성 : 개체가 가지고 있는 요소 또는 성질, 피터 챈 모델에서는 타원형으로 표시, 까마귀발 모델에서는 표 내부에 표시
관계 : 피터 챈 모델에서는 마름모로 표시, 까마귀발 모델에서는 -(1:1), -<(1:N), >-<(N:M)
4) 개체-관계 모델(E-R 모델)
[현데관인]
현실세계 존재하는 데이터와 그들 간의 관계를 인간이 이해할 수 있는 형태로 명확하게 표현하기 위한 모델
5) ERD
업무 분석 결과로 도출된 개체와 개체 간 관계를 도식화한 다이어그램
관계형 데이터 모델
1) 정의
[데행열2]
데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델, 수학자 Codd 박사가 제안
2) 구성요소
릴레이션, 튜플, 속성, 카디널리티, 차수, 스키마, 인스턴스
3) 관계 대수 정의
[관정유절]
관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
4) 관계 대수 연산자 - 일반 집합 연산자
연산자 | 기호 | 표현 | 설명 |
합집합(Union) | U | R U S | 합병 가능한 두 릴레이션 R과 S의 합집합 |
교집합(Intersection) | ∩ | R ∩ S | R과 S에 속하는 모든 튜플로 결과 릴레이션 구성 |
차집합(Difference) | - | R - S | R에 존재하고 S에 존재하지 않는 튜플로 결과 릴레이션 구성 |
카티션 프로덕트(CARTESIAN Product) | × | R × S | R과 S에 속한 모든 튜플을 연결해 새로운 튜플로 릴레이션 구성 |
5) 관계 대수 연산자 - 순수 관계 연산자
연산자 | 기호 | 표현 | 설명 |
Select | ∂ | ∂(R) | 릴레이션 R에서 조건을 만족하는 튜플 반환 |
Project | ∏ | ∏(R) | 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환 |
Join | ▷◁ | R ▷◁ S | 공통 속성을 이용해 R과 S의 튜플 연결해 만들어진 튜플 반환 |
Division | ÷ | R ÷ S | 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환 |
* 셀렉트와 디비전의 차이는 디비전은 2개의 튜플 비교하는 것이고 셀렉트는 조건에 맞는 하나의 튜플로 판단
6) 관계 해석
[튜도비]
튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
정규화
1) 정의
[관중이일]
관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성을 유지하기 위해 분해하는 과정
2) 이상현상(Anomaly)
[중릴비]
데이터의 중복성으로 인하여 릴레이션 조작시 발생하는 비합리적 현상
[삽삭갱]
삽입 이상, 삭제 이상, 갱신 이상
3) 단계
[원부이/결다조]
1차 정규화 : 원자값으로 구성
2차 정규화 : 부분 함수 종속 제거(완전 함수적 종속 관계)
3차 정규화 : 이행함수 종속 제거
보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거, 모든 결정자가 후보 키이다.
4차 정규화 : 다치 종속 제거
5차 정규화 : 조인 종속 제거
반정규화
1) 정의
[정엔성통]
정규화된 엔터티, 속성, 관계에 대해 성능 향상을 위해 통합, 중복 등을 수행하는 데이터 모델링 기법
2) 기법
테이블 병합, 테이블 분할, 중복 테이블 추가, 중복 컬럼 추가, 중복 관계 추가
물리적 데이터 모델링
1) 정의
[논기상]
논리모델을 적용하고자 하는 기술에 맞도록 상세화하는 과정
2) 테이블 제약조건 설계 - 참조 무결성 제약조건
[릴릴참일]
릴레이션과 릴레이션 사이에 참조 일관성을 보장하기 위한 조건
3) 인덱스 설계
3-1) 정의
[검최데열]
검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조
3-2) 적용기준
인덱스 분포도가 10~15% 이내인 경우
분포도 = (1/(컬럼 값의 종류))*100 = (컬럼 값의 평균 Row 수) / (테이블 총 Row 수) * 100
분포도가 범위 이상이더라도 부분처리를 목적으로 하는 경우 적용
조회 및 출력 조건으로 사용되는 컬럼의 경우 적용
인덱스 자동생성 기본키와 Unique 키의 제약조건을 사용할 경우 적용
분포도가 좋은 컬럼은 단독적으로 생성
자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성
가능한 수정이 빈번하지 않은 컬럼을 선정
3-3) 고려사항
지나치게 많은 인덱스는 오버헤드로 작용
인덱스는 추가 저장 공간이 필요함을 고려
넓은 범위 인덱스 처리 시 오히려 많은 오버헤드 발생
인덱스와 테이블 저장 공간을 적절히 분리될 수 있도록 설계
4) 뷰 설계
뷰 속성 : REPLACE, FORCE, NOFORCE, WITH CHECK OPTION, WITH READ ONLY
뷰 사용에 따라 수행속도에 문제 발생 가능
5) 클러스터 설계
5-1) 적용기준
인덕스 단점을 해결한 기법, 분포도가 넓을수록 유리
엑세스 기법이 아니라 엑세스 효율 향상을 위한 물리적 저장 방법
대량의 범위 자주 엑세스하는 경우 적용
여러 개의 테이블 빈번하게 조인 일으킬 경우 적용
5-2) 고려사항
검색 효율 높여주나 입력, 수정, 삭제 시 부하가 증가함
UNION, DISTINCT, ORDER BY, GROUP BY가 빈번한 컬럼은 고려대상
수정이 자주 발생하지 않는 컬럼은 고려대상
처리범위가 넓어 문제 발생하는 경우는 단일 테이블 클러스터링을 고려
조인이 많아 문제 발생하는 경우는 다중 테이블 클러스터링을 고려
6) 파티션 설계
6-1) 종류
[레해리컴]
레인지 파티셔닝 : 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법, 손쉬운 관리 기법을 제공, 관리 시간 단축 가능
해시 파티셔닝 : 파티션 키의 해시함수 값에 의한 파티셔닝 기법, 균등한 데이터 분할 가능, 질의성능 향상 가능
리스트 파티셔닝 : 특정 파티션에 저장될 데이터에 대한 명시적 제어 가능, 분포도 비슷하고 데이터 많은 SQL에서 컬럼 조건 많은 경우 유용
컴포지트 파티셔닝 : 위 세가지 중 2개 이상을 결합, 큰 파티션에 대한 I/O 요청을 여러 파티션으로 분산 가능
6-2) 장점
[성가백합]
성능 향상, 가용성 향상, 백업 가능, 경합 감소
7) 디스크 구성 설계
정확한 용량 산정하여 디스크 사용 효율 높인다.
업무량 집중되어 있는 디스크 분리하여 설계
입출력 경합 최소화하여 데이터 접근 성능 향상
파티션 수행 테이블은 별도로 분류
데이터베이스
1) 정의
[다사통집]
다수의 인원, 시스템이 사용할 목적으로 통합하여 관리되는 데이터의 집합
[통저운공]
통합된 데이터, 저장된 데이터, 운영 데이터, 공용 데이터
2) 특성
[실계동내]
실시간 접근성, 계속적 변화, 동시 공용, 내용 참조
3) 종류
3-1) 파일시스템
파일에 이름을 부여하고 저장이나 검색을 위해 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 데이터 관리 방식
3-2) 관계형 데이터베이스 관리시스템(RDBMS)
관계형 모델을 기반으로 하는 가장 보편화된 데이터베이스 관리시스템
데이터를 저장하는 테이블의 일부를 다른 테이블과 상하관계로 표시
변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이
종류 : Oracle, SQL Server, MySQL, Maria DB 등
3-3) 계층형 데이터베이스 관리시스템(HDBMS)
데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스 관리시스템
데이터에 대한 접근 속도가 빠르지만, 종속적인 구조로 인하여 변화하는 데이터 구조에 대응이 어렵다.
종류 : IMS, System2000 등
3-4) 네트워크 데이터베이스 관리시스템(NDBMS)
데이터 구조를 네트워크상의 망상 형태로 표현한 데이터베이스 관리시스템
설계의 복잡함이 단점
종류 : IDS, IDMS 등
4) 관리 툴
DBA들이 데이터베이스를 편리하고 쉽게 다룰 수 있도록 도와주는 도구
DBMS
1) 정의
[데복추소]
데이터 관리의 복잡성을 해결하는 동시에 데이터의 추가, 수정 등의 기능을 지원하는 소프트웨어
2) 유형
[키컬문그]
키-값 DBMS, 컬럼 기반 데이터 저장 DBMS, 문서 저장 DBMS, 그래프 DBMS
3) 특징
[무일회보효]
데이터 무결성, 데이터 일관성, 데이터 회복성, 데이터 보안성, 데이터 효율성
빅데이터(Big Data)
1) 정의
[시비페비]
시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB) 크기의 비정형 데이터
2) 특성
데이터 양, 데이터 다양성, 데이터 속도
3) 기술
HDFS : 대용량 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템
맵 리듀스 : 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작
NoSQL
1) 정의
[R스조수]
전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며 수평적으로 확장 가능한 DBMS이다.
2) 특성
[BSE]
Basically Available, Soft-state, Eventually Consistency
3) 유형
[키컬문그]
데이터 마이닝(Data Minnig)
1) 정의
[대데통패]
대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
2) 절차
목적 설정 -> 데이터 준비 -> 가공 -> 마이닝 기법 적용 -> 정보 검증
3) 기법
[분연연데]
분류 규칙 : 과거 데이터로부터 특성을 찾아내어 분류모형을 만들어 이를 토대로 새로운 레코드 결과값 예측
연관 규칙 : 데이터 안에 존재하는 항목들 간의 종속관계를 찾아내는 기법
연속 규칙 : 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
데이터 군집화 : 대상 레코드들을 유사한 특성을 지닌 몇 개의 소그룹으로 분할, 정보가 없는 상태에서 데이터 분류 기법
4) 예시
텍스트 마이닝 : 대량의 텍스트 데이터로부터 패턴 또는 관계를 추출하여 의미 있는 정보를 찾아내는 기법
웹 마이닝 : 웹으로부터 얻어지는 대량의 데이터로부터 의미 있는 정보를 찾아내는 기법
온톨로지(Ontology)
[현개속관컴]
현실세계에 존재하는 모든 개념들과 개념들의 속성, 그리고 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해놓은 지식베이스이다.