3단원 데이터 입출력 구현
- 데이터 모델
- 데이터 모델은 현실세계의 정보를 인간과 컴퓨터가 이해할수 있도록 추상화 하여 표현한 모델
- 데이터 모델 표시 요소
- 연산 : 데이터 베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
- 구조 : 논리적으로 표현될 대상으로서이 개체 타입과 개체 타입관의 관계
- 제약조건 : 데이터베이스에 저장될수잇는 실제 데이터의 논리적인 제약조건
- 데이터 모델 절차(요개논문)
- 요구사항 분석 : 요구사항간 상충을 해결하고 범위를 파악하여 외부 환경관의 상호 작용 분석을 통해 데이터에 대한 요구 분석
- 개념적 설계 : 사용자 요구에 대한 트랜잭션을 모델링하는 단계
- 논리적 설계 : 트랜잭션의 인터페이스를 설계하는단계, 논리적 스키마를 설계하는단계
- 물리적설계 : DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계
- 논리 데이터 모델 검증
- 개념 : 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
- 종류
- 관계 데이터 모델 : 2차원 테이블 형태로 구성된모델,1:1,1:N,N:M 관계를 자유롭게 표현
- 계층 데이터 모델 : 논리적 구조가 트리 형태로 구성된 모델, 상하관계 존재, 1:N만 허용
- 네트워크 데이터 모델 : 그래프 형태로 구성된 모델,CODASYL DBTG 모델,N:M관게
- 관계 데이터 모델
- 개념 : 행과 열로 구성된 2차원 테이블 형태로 구성한 모델
- 구성요소
- 릴레이션(Relation) : 행 과 열로 구성된 테이블
- 튜블(Tuple) : 릴레이션이 행에 해당되는 요소
- 속성(Attribute) : 릴레이션의 열에 해당하는 요소
- 카디널리티(Cardinality) : 튜플의 슈
- 차수(Degree) : 애트리뷰트의 슈
- 스키마(Schema) : 구조,제약조건등의 정보를 담고있는 기존적인 구조
- 인스턴스(Instance) : 실제 저장된 데이터의 집합
- 관계 대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
- 연산자의 종류
- 일반 집합 연산자(합교차카)
- 합집합 : 합병 가능한 두릴레이션 R과 S의 합집합
- 교집합 : 릴ㄹ레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성
- 차집합 : R에 존재하고 S에 미존재하는 튜플로 결과 릴레이션 구성
- 카티션 프로덕트 : R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성
- 순수 관계 연산자(셀프조디)
- 셀렉트 : 릴레이션 R에서 조건을 만족하는 튜플 반환
- 프로젝트 : 릴레이션R에서 주어진 속성들의 값으로만 구성된 튜플 반환
- 조인 : 공통속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환
- 디비전 : 릴레이션S의 모든 튜플과 관련있는 R의 튜플반환
- 관계 해석
- 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어(개속관)
- 개체 : 관리할 대상이 되는 실체
- 속성 : 관리할 정보의 구체적 항목
- 관계 : 개체간의 대응관계
- 개체
- 사물또는 사건으로 정의되며 개체라고도 한다
- 속성
- 속성은 개체가 가지고있는 요소 또는 성질
- 관계
- 두 개체 간의 관계를 정의
- 개체관게(ER)모델
- 현실 세계에 존재하는 데이터와 그들간의 관게를 사람이 이해할수있느 형태로 명확하게 표현하기 위해서 가장 널리 사용되고있는 모델
- 정규화
- 데이터의 중복성을 제거하여 이상현상을 방지하고 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
- 이상현상(Anomaly)
- 데이터의 중복성으로 인해 릴레이션을 조작할때 발생하는 비합리적인 현상
- 삽입이상 : 정보 저장시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
- 삭제 이상 : 정보 삭제시 원치 않는 다른 정보가 같이 삭제되는 경우
- 갱신 이상 : 중복 데이터중에서 특정부분만 수정되어 중복값이 모순을 일으키는 경우
- 정규화단계(원부이 결다조)
- 제1저규형 : 원자값으로 구성
- 제2정규형 : 부분함수 종속 제거(완전함수적종속관계)
- 제3정규형 : 이행함수 종속 제거
- 보이스코드 정규형 : 결정자가 후보키가 아닌 함수 종속제거
- 제4정규형 : 다치(다중값)종속제거
- 제5정규형 : 조인종속제거
- 반정규화
- 정규화된 엔터티,속성,관게에 대해 성능 향상과 개발 운영의 단순화를 위해 중복,통합,분리 등을 수행하는 데이터 모델링의 기법
- 기법
- 테이블
- 테이블병합 : 1:1 관계,1:M관게를 통합하여 조인 횟수를 줄여 성능을 향상
- 테이블분활 : 수직 또는 수평으로 분할하는것으로 파티셔닝이라고함
- 중복테이블 추가 : 대량의 데이터들에 대한 집계함수를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복테이블을 추가
- 컬럼
- 컬럼 중복화 : 조인 성능 향상을 위한 중복허용
- 관계
- 중복관계 추가 : 성능 저하를 에방하기 위해 추가적 관계를 맺는 방법
- 물리 데이터 모델 설계
- 논리 모델을 적용하고자 하는 기술에 맞도록 상세화해 가는 과정
- 물리 데이터 저장소 구성
- 참조 무결성 제약 조건
- 두개의 릴레이션이 기본키,외래키를 통해 참조 관계를 형성할경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로존재해야한다
- 제한(Restricted) : 참조 무결성 원칙을 위배하는 연산을 거절하는 옵션
- 연쇄(Cascade) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플도 함께 삭제하는 옵션
- 널값(Nullify) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래키에 NULL값을 넣는 옵션
- 인덱스 설계
- 개념 : 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조, 전체 데이터 검색 없이 필요한 정보에 대해 신속장 조회가 가능
- 인덱스 적용 기준
- 인덱스 분포도가 10~15% 이내인 경우 아래 수식을 사용
- 분포도 = (1 / (컬럼 값의 종류)) * 100
- 분포도 = (컬럼 값의 평균 row수) / (테이블의 총rowtn) * 100
- 인덱스 컬럼 선정
- 분포도가 좋은 컬럼은 단독적으로 생성
- 뷰 설계
- 속성
- REPLACE : 뷰가 이미 존재하는 경우 재생성
- FORCE : 본 테이블의 존재 여부에 관계없이 뷰생성
- NOFORCE : 기본 테이블이 존재할때 뷰생성
- WITH CHECK OPTION : 서브 쿼리 내이 조건을 만족하는 행만 변경
- WITH READ ONLY : 데이터 조작어 작업불가
- 고려사항
- 뷰 사용에 따라 수행속도에 문제가 발생할수있다
- 클러스터(Cluster) 설계
- 대상이 되는 범위의 요소를 몇개 모은 단위체
- 적용 기준
- 인덱스의 단점을 해결한 기법, 분포도가 넓을수록 오히려 유리하다, 엑세스 효율 향상을 위한 물리적 저장 방법
- 고려사항
- 검색 효율은 높여주나 입력,수정,삭제 시는 부하가 증가
- 파티션 설계
- 종류(레해리컴라
- 레인지 파티셔닝
- 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법
- 손쉬운 관리 기법을 제공하여 관리 시간의 단축이 가능
- 해시 파티셔닝
- 파티션의 키의 해시 함수 값에 의한 파티셔닝 기법
- 균등한 데이터분할이 가능, 질의 성능이 향상
- 리스트 파티셔닝
- 특정 파티션에 젖아될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법
- 컴포지트 파티셔닝
- 레인지,해시,리스트 중 2개 의상의 파티셔닝을 결합하는 파티셔닝
- 라운드 로빈 파티셔닝
- 라운드 로빈 분할로 회전하면서 새로운 행이 파티션에 할당하는 방식
- 파티션의 장점
- 성능향상 : 데이터 엑세스 범이를 줄여 성능향상
- 가용성 향상 : 전체 데이터의 훼손 가능성이 감소 및 데이터 가용형 향상
- 백업 가능 : 분할 영역을 독립적으로 백업하고 복구가능
- 경합 감소 : 디스크 스트라이핑으로 입출력 성능을 향상
- 데이터베이스 종류
- 개념 : 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터 집합
- 정의
- 통합된 데이터 : 자료의 중복을 배제한 데이터의 모임
- 저장된 데이터 : 저장매체에 저장된 데이터
- 운영 데이터 : 조직의 업무를 수행하는데 필요한 데이터
- 공용 데이터 : 여러 애플리케이션,시스템들이 공동으로 사용하는 데이터
- 특성
- 실시간 접근성 : 쿼리에 대하여 실시간 응답이 가능해야함
- 계속적인변화 : 새로운데이터의 삽입,삭제,갱신으로 항상 최신의 데이터를 유지
- 동시 공용 : 다수의 사용자가 동시에 같은 내용의 데이터를 이용할수 있어야함
- 내용 참조 : 데이터베이스에 있는 데이터를 참조할때 데이터 레코드의 주소나 위체 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 찾는다
- 종류
- 파일시스템
- ISAM : 자료 내용은 주저장부, 자료의 색인은 자료가 기록된 위치와 함께 색인부에 기록
- VSAM : 대형 운영체제에서 사용되는 파일 관리 시스템
- 관계형 데이터베이스시스템(RDBMS)
- 관계형 모델을 기반으로 하는 가장 보편화된 데이터베이스 관리 시스템
- 계층형 데이터베이스 관리 시스템(HDBMS)
- 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스
- 접근속도가빠르지만 종속적인 구조로 인하여 변화하는 데이터구조에 유연하게 대응하기가 쉽지 않다
- 네트워크 데이터베이스 시스템(NDBMS)
- 네트워크상의 망상 형태로 표현한 데이터 모델
- DBMS
- 개념 : 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경,검색, 삭제 및 백업, 복구,보안등의 기능을 지원하는 소프트웨어
- 유형
- 키값DBMS : 키 기반 GET/Put/DELETE 제공
- 컬럼 기반 데이터 저장 : key안에 조합으로 된 여러개의 필드를 갖는 DBMS
- 문서 저장 DBMS : 값의 데이터 타입이 문서라는 타입을 사용하는 DBMS
- 그래프 DBMS : 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DBMS
- 특징
- 무결성 : 동일한 내용에 대하여 서로 다른 데이터가 저장되는것을 허용하지 않는 성질
- 일관성 : 삽입,삭제,갱신,생성 후에도 저장된 데이터가 변함없이 일정
- 회복성 : 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
- 보안성 : 불법적인 노출,변경,손실로부터 보호되어야 하는 성질
- 효율성 : 사용자,소프트웨어,시스템등의 요구조건을 만족시켜야 하는 성질
- 빅데이터
- 시스템,서비스,조직 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트 크기의 비정형 데이터
- 특성
- 데이터의 양
- 데이터의 다양성
- 데이터의 속도
- 수집,저장,처리 기술
- 비정형/반정형 데이터 수집
- 정형 데이터 수집
- 분산 데이터 저장/처리
- 분산데이터베이스
- 주요기술
- 빅데이터 분석,빅데이터 실시간 처리,분산 코디네이션,분석 및 시각화
- NoSQL
- 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어, 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용하수 없으며, 수평적으로 확장이 가능한 DBMS
- 특성
- Basically Available : 언제든지 데이터는 접근할 수 있어야하는 속성
- Soft-state : 노드의 상태는 내부에 포함된 정보에 의해 결정 되는 것이 아니라 외부에서 전송된 정보를 통해결정되는 속성
- Eventually Consistency : 일정 시간이 지나면 데이터의 일관성이 유지되는 속성
- 유형
- Key-value store : unqiue한 key에 하나의 value를 가지고 있는 형태
- Column Family Data Store : key안에 조합으로 된 여러개의 필드를 갖는 DB
- Document Store : value 의 데이터 타입이 Document라는 타입을 사용하는 DB
- Grpach Store : 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DB
- 데이터 마이닝
- 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
- 주요 기법
- 분류 규칙(Classification) : 과거 데이터로부터 특성을 찾아내어 분류모형을 만들어 이를 토대로 새로운 레코드의 결과 값을 예측하는 기법
- 연관규칙(Association) : 데이터안에 존재하는 항목들 간의 종속관계를 찾아내는 기법
- 연속규칙(Sequence) : 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
- 데이터 군집화(Clustering) : 데이터 레코드들을 유사한 특성을 지닌 몇개의 소그룹으로 분할하는 작업으로 작업의 특성이 분류규칙과 유사