01 논리 데이터 저장소 확인
1. 데이터 모델 ⭐️⭐️⭐️
데이터 모델: 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
데이터 모델 절차
- 개념적 데이터 모델: 개념적 구조를 도출, DB 종류와 관계 없음
- 논리적 데이터 모델: DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스 설계
- 물리적 데이터 모델: DBMS의 특성 및 성능 고려하여 물리적인 스키마 만듦, 객체 생성
2. 논리 데이터 모델 검증 ⭐️⭐️⭐️
논리적 데이터 모델링: 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
논리적 데이터 모델링 종류
- 관계 데이터 모델
- 계층 데이터 모델
- 네트워크 데이터 모델
관계형 데이터 모델: 데이터를 2차원 테이블 형태로 구성한 모델
관계 데이터 모델 구성요소
- 릴레이션(Relation): 테이블
- 튜플(Tuple): 행
- 속성(Attribute): 열
- 카디널리티(Cardinality): 튜플(Row)의 수
- 차수(Degree): 애트리뷰트(Column)의 수
- 스키마(Schema): 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
- 인스턴스(Instance): 실제 저장된 데이터의 집합
관계 대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 ‘절차적 정형 언어’
관계 대수 연산자 종류
- 일반 집합 연산자
- 합집합(Union)
- 교집합(Intersection)
- 차집합(Difference)
- 카티션 프로덕트(Cartesian product)
- 순수 관계 연산자
- 셀렉트(Select)
- 프로덕트(Product)
- 조인(Join)
- 디비전(Division)
관계 해석: 튜플 관계 해석, 도메인 관계 해석을 하는 ‘비절차적 언어’
논리 데이터 모델링 속성
- 개체(Entity)
- 속성(Attributes)
- 관계(Relationship)
개체-관계(E-R) 모델: 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델
정규화: 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상 방지, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해
이상 현상: 데이터의 중복성으로 인해 릴레이션 조작 시 발생하는 비합리적 현상
데이터베이스 정규화 단계
- 1NF: 도메인이 원자값
- 2NF: 부분 함수 종속 제거
- 3NF: 이행 함수 종속 제거
- 보이스-코드 정규형(BCNF): 결정자 후보키가 아닌 함수 종속 제거
- 4NF: 다치(다중값) 종속 제거
- 5NF: 조인 종속 제거
반 정규화: 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
반 정규화 기법
- 테이블
- 병합
- 분할: 수평/수직 분할
- 중복 테이블 추가: 집계/진행/특정 부분 테이블 추가
- 컬럼
- 관계
02 물리 데이터 저장소 설계
1. 물리 데이터 모델 설계 ⭐️⭐️⭐️
물리 데이터 모델링 변환 절차
- 개체를 테이블로 변환
- 속성을 컬럼으로 변환
- UID를 기본키로 변환
- 관계를 외래키로 변환
- 컬럼 유형과 길이 정의
- 반 정규화 수행
2. 물리 데이터 저장소 구성 ⭐️
참조 무결성 제약조건: 두개의 릴레이션이 기본키, 외래키를 통해 참조 관계를 형성할 경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 한다.
- 제한(Restricted): RESTRICT
- 연쇄(Cascade): CASCADE
- 널 값(Nullify): SET NULL
인덱스: 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조
인덱스 컬럼 선정
- 분포도가 좋은 컬럼(10~15%) -> 단독적
- 자주 조합 -> 결합 인덱스
뷰 속성
- REPLACE: 존재하는 경우 재생성
- FORCE: 존재 여부 관계없이 생성
- NOFORCE: 기본 테이블이 존재할 때 생성
- WITH CHECK OPTION: 조건을 만족하는 행만 변경
- WITH READ ONLY: 데이터 조작어 작업 불가
클러스터: 대상이 되는 범위의 요소를 몇 개 모은 단위체
클러스터 적용 기준
- 분포도가 넓을 수록 유리
- 액세스 기법 X, 액세스 효율 향상을 위한 물리적 저장 방법 O
파티션 종류
- 레인지 파티셔닝: 연속적인 숫자, 날짜 기준
- 해시 파티셔닝: 파티션 키의 해시 함수
- 리스트 파티셔닝: 데이터에 대한 명시적 제어가 가능
- 컴포지트 파티셔닝: 2개 이상의 파티셔닝을 결합
파티션의 장점
- 성능 향상: 액세스 범위 줄여 성능 향상
- 가용성 향상: 전체 데이터의 훼손 가능성 감소
- 백업 가능: 분할 영역 독립적 백업, 복구 가능
- 경합 가능: 디스크 스트라이핑으로 입출력 성능 향상
03 데이터베이스 기초 활용하기
1. 데이터베이스 종류 ⭐️⭐️⭐️
데이터베이스: 통합하여 관리되는 데이터의 집합
데이터베이스 특성
- 실시간 접근성
- 계속적인 변화
- 동시 공용
- 내용 참조
데이터베이스 종류
-
파일 시스템: 파일에 이름을 부여하고 저장이나 검색을 위하여 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터 관리 방리 방식
- ISAM(Indexed Sequential Access Method)
- VSAM(Virtual Storage Access Method)
-
관계형 데이터베이스 관리시스템(RDBMS): 관계형 모델을 기반으로 하는 가장 보편화된 데이터베이스 관리 시스템
-
계층형 데이터베이스 관리시스템(HDBMS): 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스
-
네트워크 데이터베이스 관리시스템(NDBMS): 데이터의 구조를 네트워크상의 망상 형태로 표현
DBMS: 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어
DBMS 유형
- 키-값(key-value) DBMS
- 컬럼 기반 데이터 저장(Column Family Data Store) DBMS
- 문서 저장(Document Store) DBMS
- 그래프(Graph) DBMS
DBMS 특징
- 데이터 무결성: 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
- 데이터 일관성: 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
- 데이터 회복성: 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
- 데이터 보안성: 보호되어야 하는 성질
- 데이터 효율성: 요구조건을 만족시켜야 하는 성질
빅데이터: 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB) 크기의 비정형 데이터
빅데이터의 특성
NoSQL: 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS
NoSQL의 특성 (BASE)
- Basically Available
- Soft-State
- Eventually Consistency
NoSQL의 유형
- Key-value Store
- Column Family Data Store
- Document Store
- Graph Store
데이터 마이닝: 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
데이터 마이닝 절차
- 목적 설정
- 데이터 준비
- 가공
- 마이닝 기법 적용
- 정보 검증
데이터 마이닝 주요 기법
- 분류 규칙 (Classification)
- 연관 규칙 (Association)
- 연속 규칙 (Sequence)
- 데이터 군집화 (Clustering)