정보처리기사 실기 - 데이터 입출력
데이터 입출력
데이터 모델
: 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
데이터 모델 절차
- 요구사항 분석 -> 개념적 -> 논리적(정규화) -> 물리적(반정규화)
논리 데이터
논리 데이터 모델 종류
- 관계 데이터 모델
- 논리적 구조가 2차원 테이블 형태, 기본키와 이를 참조하는 외래키로 표현
- 1:1, 1:N, N:M
- 계층 데이터 모델
- 논리적 구조가 트리 형태, 상하 관계 존재(부모-자식)
- 1:N 만 허용
- 네트워크 데이터 모델
- 논리적 구조가 그래프 형태, CODASYL DBTG 모델이라고 불림
- 상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족하는 구조
논리 데이터 모델링 속성
- 개체(entity), 속성(attribute), 관계(relationship)
관계 데이터 모델
- 튜플(tuple), 행(row), 카디널리티(cardinality)
- 속성(attribute), 열(column), 차수(degree)
관계 대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
- 일반 집합 연산자
- 합집합(∪), 교집합(∩), 차집합(─), 카티션 프로덕트(X)
- 순수 관계 연산자 :
- 셀렉트(σ) : R에서 조건을 만족하는
- 프로젝트(π) : R에서 주어진 속성들의 값으로만 구성된
- 조인(⋈) : 공통 속성을 이용
- 디비전(÷) : 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환
- 일반 집합 연산자
관계 해석
- 튜플 관계 해석과 도메인 관계해석을 하는 비절차적 언어
개체-관계(E-R) 모델
- 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해 사용되는 모델
- 개체 : □
- 관계 : ◇
- 속성 : ○
- 다중 값 속성 : ◉
- 관계-속성 : ─
물리 데이터
물리 데이터 모델링
: 논리모델을 적용하고자 하는 기술에 맞도록 상세화해가는 과정
참조무결성 제약조건
- 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야한다.
- 제한(RESTRICT), 연쇄(CASCADE), 널 값(SET NULL)
인덱스
- 전체 데이터 검색 없이 필요한 정보에 대해 신속한 조회 가능
뷰
- 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로 구성된 가상 테이블
클러스터
- 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
파티션(Partition)의 종류
- 레인지(Range) 파티셔닝 : 연속적인 숫자나 날짜 기준
- 해시(Hash) 파티셔닝 : 파티션 키의 해시 함수 값
- 리스트(List) 파티셔닝 : 특정 파티션에 저장 될 데이터에 대한 명시적 제어 가능
- 컴포지트(Composite) 파티셔닝 : 레인지, 해시, 리스트 중 2개 이상의 파티셔닝 결합
- 라운드-로빈 파티셔닝 : 행의 고른 분포, 회전하며 새로운 행에 할당
데이터베이스
데이터베이스 정의
- 통합된 데이터 : 자료의 중복을 배제한 데이터의 모임
- 저장된 데이터 : 저장 매체에 저장된 데이터
- 운영 데이터 : 조직의 업무를 수행하는 데 필요한 데이터
- 공용 데이터 : 여러 애플리케이션, 시스템들이 공동으로 사용하는 데이터
데이터베이스 특성
- 실시간 접근성, 계속적인 변화, 동시 공용, 내용 참조
데이터베이스 특징
- 통합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터의 모임
- 저장된 데이터(Stored Data) : 저장 매체에 저장된 데이터
- 운영 데이터(Operational Data) : 조직의 업무를 수행하는 데 필요한 데이터
- 공용 데이터(Integrated Data) : 여러 애플리케이션, 시스템들이 공동으로 사용하는 데이터
DBMS
- Database Management system
- 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구 보안 등의 기능을 지원하는 SW
DBMS 유형
- 키-값 DBMS
- 컬럼 기반 데이터 저장(Column Family Data Store)
- 문서 저장(Document Store)
- 그래프(Graph Store) : 시맨틱 웹과 온톨로지 분야
빅데이터
- 시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리가 가능한 수십 페타바이트 크기의 비정형 데이터
- 척와(Chukwa)
- 비정형 데이터 수집기술
- 분산된 각 서버에서 에이전트를 실행하고, 컬렉터(Collector)가 에이전트로부터 데이터를 받아 HDFS에 저장하는 기술
- 스쿱(Sqoop)
- 피그(Pig)
- 대용량 데이터 집합을 분석하기 위한 플랫폼으로 하둡을 이용하여 맵리듀스를 사용하기 위한 높은 수준의 스크립트 언어인 피그 라틴이라는 자체 언어를 제공하는 기술
- 하이브(Hive)
- 람다(Lambda) 아키텍처
- 데이터 분석 요청 시 모든 데이터를 대상으로 기능을 수행할 수 있도록 배치 레이어, 스피드 레이어, 서빙 레이어로 구성된 아키텍처
- 카파(Kappa) 아키텍처
- 중복 기능을 제공하는 배치 레이어를 제거하고 모든 계산을 스피드 레이어에서 스트림으로 처리하는 아키텍처
NoSQL
- 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어, 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS
NoSQL의 특성(BASE)
- Basically Available : 언제든지 데이터는 접근할 수 있어야 하는 속성
- Soft-State : 노드의 상태는 외부에서 전송된 정보를 통해 결정되는 속성
- Eventually Consistency : 일정 시간이 지나면 데이터의 일관성이 유지
NoSQL 유형
- Key-Value Store
- Column Family Data Store
- Document Store
- Graph Store
시맨틱 웹(Semantic Web)
- 기계가 이해할 수 있는 온톨로지 형태로 표현하고 자동화된 기계가 처리하도록 하는 지능형 웹
온톨로지(Ontology)
- 실세계에 존재하는 모든 개념들과 개념들의 속성, 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스
데이터 마이닝(Data Minning)
- 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
데이터 마이닝 주요기법
- 분류 규칙(Classification) : 과거 데이터로부터 특성을 찾아내어 분류모형을 만들어 결과 값 예측
- 연관 규칙(Association) : 데이터 안에 존재하는 항목들 간의 종속관계를 찾아내는 기법
- 연속 규칙(Sequence) : 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
- 데이터 군집화(Clustering) : 대상 레코드들을 유사한 특성을 지는 몇 개의 소그룹으로 분할하는 작업
기타
데이터웨어하우스 (Data Warehouse)
- 데이터 웨어하우스는 급증하는 다량의 데이터를 효과적으로 분석하여
- 정보화 하고 이를 여러 계층의 사용자들이 효율적으로 사용할 수 있도록 한 데이터베이스
데이터 웨어하우스의 장단점
- 장점 : 높은 투자 수익, 경쟁 우위 ,생산성 향상
- 단점 : 역할 설정을 못하면 업무의 지장 , 과도한 자원 , 유지보수가 어렵다.
데이터 마트 (Data Mart)
- 소규모 단일 주제의 데이터 웨어하우스, 특정 사용자
데이터 마이닝 (Data Mining)
- 데이터 웨어하우스에 저장된 데이터 집합에서 사용자 요구에 따라 정보를 발견하기 위한 기법
OLAP(Online Analytical processing)
- 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정 활용
- 데이터 웨어하우스나 데이터 마트 시스템 상호 연관
OLAP 연산
- Roll-up : 계층 구조에 따라 단계적으로 요약된 형태의 데이터로 접근 기능
- Drill-down: 계층 구조에 따라 단계적으로 구체적인 내용의 상세 데이터로 접근 가능
- Pivoting : 보고서 행 , 열 페이지 차원을 바꾸어 볼 수 있는 기능
- Slicing/Dicing: 다차원 데이터 항목들을 다양한 각도에서 조회 , 비교
OLAP 종류
- ROLAP : 관계형 데이터 베이스와 관계형 질의어를 사용하여 다차원 데어터를 저장 , 분석
- MOLAP : 다차원 데이터 저장위해 다차원 데이터베이스 이용 , 큐브캐시 이용
- HOLAP : ROLAP + MOLAP 특성
OLTP (Online Transaction Processing)
- 이용자가 실시간으로 데이터베이스를 갱신하거나 검핵할때 단위작업을 처리하는 방식
- 빠른 응답 시간 요구 . 각각 레코드를 효율적으로 조회하고 수정할 수 있도록 정규화
ODBC (open Data Base Connectivity)
- 프로그램과 DB 종류에 관계없이 DB 접근 가능하도록 MS 가 만든 응용프로그램 표준
역정규화 기법
- 중복테이블 추가 기법
- 집계 테이블 추가
- 진행 테이블 추가
- 특정 부분만을 포함하는 테이블 추가
관계형 데이터모델 구성요소
- 릴레이션(Relation) : 행과 열로 구성된 테이블
- 튜플(Tuple) : 릴레이션의 행에 해당하는 요소
- 속성(Attribute) : 릴레이션의 열에 해당하는 요소
- 카디널리티(Cardinality) : 튜플의 수
- 차수(Degree) : 애트리뷰트의 수
물리적 조인
- 중첩 반복 조인(Nested-Loop Join)
- 선행 테이블의 처리 범위를 하나씩 액세스하면서 추출된 값으로 연결할 테이블을 조인하는 방식
- 정렬 합병 조인(Sort-Merge Join)
- 조인의 대상 범위가 넚은 경우 발생하는 임의의 접근(Random Access)을 줄이기 위한 경우나 연결고리에 마땅한 인덱스가 존재하지 않은 경우 해결하기 위한 조인 방식으로 양쪽 테이블의 정렬한 결과를 차례로 검색하면서 연결고리 형태로 합병하는 방식의 물리적 조인
- 해시 조인
데이터베이스 고립화 수준
- Read Uncommitted
- 한 트랜잭션에서 연산 중인 데이터를 다른 트랜잭션이 읽는 것을 허용하고 연산(갱신) 중인 데이터에 대한 연산은 불허
- Read Committed
- 한 트랜잭션에서 연산을 수행할 때, 연산이 완료될 때까지 데이터에 대한 읽기를 제한하고 연산이 완료되어 커밋된 데이터는 다른 트랜잭션이 읽는 것을 허용
- Repeatable Read
- 선행 트랜잭션이 특정 데이터를 읽을 때, 트랜잭션 종료 시까지 해당 데이터에 대한 갱신/삭제를 제한
- Serializable Read
- 선행 트랜잭션이 특정 데이터 영역을 순차적으로 읽을 때, 해당 데이터 영역 전체에 대한 접근을 제한
데이터베이스 무결성 종류
- 개체 무결성 : 기본 키, 유니크 인덱스
- 참조 무결성 : 외래 키
- 속성 무결성 : 체크(CHECK) NULL / NOT NULL 기본값(DEFAULT)
- 사용자 무결성 : 트리거(Trigger), 사용자 정의 데이터 타입
- 키 무결성 : 유니크(Unique)
종속성
- 함수 종속성
- 다치 종속성 : 릴레이션 내의 두 애트리뷰트 집합 사이 성립하는 제약조건 중의 하나로 함수 종속과 달리 어떠한 조건을 만족하는 튜플이 릴레이션 안에 있을 것을 요구
이상 현상, 정규화
이상 현상(Anomaly)
: 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상
- 삽입이상 : 정보 저장 시 해당 정보의 불필요한 세부 정보를 입력해야 하는 경우
- 삭제이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
- 갱신이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
정규화(Nomalization) (원부이결다조)
: 데이터의 중복성을 제거해 이상현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
- 1NF : 도메인이 원자값
- 2NF : 부분함수 종속 제거
- 3NF : 이행함수 종속 제거( A→ B , B→C 이면 A→C)
- BCNF : 결정자 후보 키가 아닌 함수 종속 제거
- 4NF : 다치(다중 값) 종속 제거
- 5NF : 조인 종속 제거
예제 출처 : IT 위키
반 정규화(De-Normalization, 역정규화)
: 정규화 된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 과정
비정규화는 아예 정규화를 수행하지 않은 모델을 지칭할 때 사용
역정규화 기법
- 중복 테이블 추가 기법
- 집계 테이블 추가 : 집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거를 설정하여 사용하는 것으로, 트리거의 오버헤드에 유의 필요
- 진행 테이블 추가 : 이력 관리 등의 목적으로 추가하는 테이블로, 적절한 데이터양의 유지와 활용도를 높이기 위해 기본 키를 적절히 설정
- 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블을 생성
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.