정보처리기사 실기 공부 day3, 데이터 입출력 구현
중요한 것 정리
데이터 모델, 논리 데이터(관계형 데이터 모델, 개체-관계 모델, 정규화, 반정규화), 데이터베이스, DBMS, 기술 트렌드(빅데이터, NoSQL, 데이터 마이닝)
데이터 모델
데이터 모델(Data Model) 개념
현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화한 모델
절차
개념적 데이터 모델 → 논리적 데이터 모델 → 물리적 데이터 모델
개념적 데이터 모델
- 현실 세계에 대한 인식을 추상적, 개념적으로 표현해 개념적 구조를 뽑아내는 데이터 모델
- 특정한 데이터베이스 종류와 관계 없음.
- 개체관계 다이어그램(ERD, Entity Relationship Diagram) : 엔티티 간의 관계 도식화한
논리적 데이터 모델
- 사람이 이해하기 쉽도록 모델링 표기법으로 형상화한 데이터 모델
- 목표 DBMS에 맞는 스키마 설계. 트랜잭션 인터페이스 설계.
- 정규화(Normalization) : 데이터 중복성 제거, 이상 현상 방지, 일관성과 정확성 유지, 무손실 분해
물리적 데이터 모델
- 특정 DBMS의 특성을 고려해 논리적 데이터 모델을 물리적인 스키마로 만드는 데이터 모델
- 논리 → 물리 (데이터 구조화), 객체 생성함.
- 응답 시간, 저장 공간 효율성, 트랙잭션 처리 등 고려
- 반 정규화(De-Normalization) : 시스템의 편의, 효율성을 극대화하기 위해 정규화된 데이터 모델을 분해
- 레코드 집중의 분석 및 설계, 저장 레코드 양식 설계, 접근 경로 설계
구성 요소
연산, 구조, 제약조건
- 개체 데이터 모델에서는 연산을 이용하여 실제 데이터를 처리하는 작업에 대한 명세를 나타내는데, 논리 데이터 모델에서는 구조를 어떻게 나타낼 지 표현한다.
- 제약조건은 데이터 무결성 유지를 위한 DB의 보편적 방법으로, 릴레이션의 특정 칼럼에 설정하는 제약을 의미하며, 개체 무결성과 참조 무결성 등이 있다.
논리 데이터 모델 검증
논리 데이터 모델링
개념
개념 모델을 구체화해 표현한 것. 모델링 표기법으로 업무의 모습을 형상화.
종류
관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델
관계 데이터 모델
- 논리 구조가 2차원 테이블 형태인 모델
- 기본 키(Primary Key)와 이를 참조하는 외래 키(Foreign Key)로 관계를 표현한다.
- 1:1, 1:N, N:M 등
계층 데이터 모델
- 논리 구조가 트리 형태인 모델
- 트리 형태이므로 상하 관계가 있음(부모-자식)
- 1:N
네트워크 데이터 모델
- 논리 구조가 그래프 형태인 모델
- N:M
속성
개체(Entity), 속성(Attribute), 관계(Relationship)
개체-관계(E-R) 모델
개념
현실 세계에 존재하는 데이터와 그 간의 관계를 사람이 이해할 수 있도록 표현하는 모델
논리 데이터 모델링 단계에서 활용하는 모델이며 ‘개체, 속성, 관계’를 통해 기술한다.
기호
개체 - 사각형, 관계 - 마름모, 속성 - 타원, 연결 - 선, 다중 값 속성 - 이중 타원
관계형 데이터 모델
개념
논리 구조가 2차원 테이블 형태(행, 열로 구성)인 데이터 모델. 수학자 E.F.Codd 박사에 의해 제안.
구성
릴레이션(테이블), 튜플(Tuple, 행), 속성(Attribute, 열), 카디널리티(Cardinality, 튜플 개수), 차수(Degree, 속성 개수), 스키마(Schema, DB 구조), 인스턴스(Instance)
표현
기본 키와 그를 참조하는 외래 키로 구성하며, 관계에 따라 1:1, 1:N, N:M 으로 표현.
관계 대수
개념
관계형 데이터베이스에서 관계로 표현된 데이터를 처리하기 위한 연산의 집합.
종류
- 일반 집합 연산자 : 수학의 집합 개념 적용
- 합집합(Union) : ∪, 두 릴레이션의 합집합
- 교집합(Intersection) : ∩, 두 릴레이션의 교집합
- 차집합(Difference) : -, 두 릴레이션의 차집합
- 카티션 프로덕트(CARTESIAN Product) : ×, 두 릴레이션의 모든 튜플 결합해 새로운 릴레이션 구성
- 순수 관계 연산자 : 관계 데이터베이스에 적용하도록 새로 만든 연산자
- 셀렉트(Select) : σ, 조건을 만족하는 튜플 반환(행)
- 프로젝트(Project) : π, 조건을 만족하는 속성 반환(열)
- 조인(Join) : ⋈, 공통 속성으로 두 릴레이션의 튜플을 합쳐 나온 튜플 반환
- 디비전(Division) : ÷, 뒤에 오는 릴레이션의 모든 튜플과 관련된 앞 릴레이션의 튜플 반환
관계 해석
개념
무슨 정보를 원하는지에 대해서만 서술하는 비절차적 언어.
정규화(Normalization)
개념
관계형 데이터 모델에서 데이터의 중복을 제거해 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정.
이상 현상(Anomaly)
삽입, 삭제, 갱신 이상.
릴레이션을 조작할 때 데이터의 중복성으로 발생하는 이상 현상.
삽입 - 정보 저장시 불필요한 세부정보 입력해야 함, 삭제 - 정보 삭제시 다른 정보도 삭제됨, 갱신 - 중복된 정보 중 특정한 것만 수정되어 모순을 일으킴
단계
두(도)부이걸다조
- 1정규형(1NF) : 도메인(원자값)으로 구성
- 2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 관계)
- 3정규형(3NF) : 이행함수 종속 제거
- 보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거(모든 결정자가 후보 키)
- 4정규형(4NF) : 다치(다중 값) 종속 제거
- 5정규형(5NF) : 조인 종속 제거
반 정규화(De-Normalization)
개념
성능 향상과 최적화, 단순화를 위해 정규화가 된 개체, 속성, 관계에 대해 정규화를 분해(중복, 통합, 분리 등)하는 과정.
특징
데이터의 일관성과 무결성 < DB의 성능 향상과 관리 효율성 증가
기법
테이블
- 테이블 병합 : 조인 횟수를 줄여 성능 향상(슈퍼타입, 서브타입)
- 테이블 분할 : 수평 또는 수직으로 분할, 파티셔닝이라고도 함
- 중복 테이블 추가 : 집계 테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가
컬럼
- 컬럼 중복화 : 조인 성능 향상을 위해 중복 허용
관계
- 중복 관계 추가 : 조인으로 인한 성능 저하를 예방하기 위해 관계를 추가하는 것
데이터베이스
정의
통합된 데이터(Integrated Data), 저장된 데이터(Stored Data), 운영 데이터(Operational Data), 공용 데이터(Shared Data)
특성
- 실시간 접근성(Real-Time Accessibility) - 실시간 응답
- 계속적인 변화(Continuous Evolution) - 삽입, 삭제, 갱신으로 최신 데이터 유지
- 동시 공용(Concurrent Sharing) - 다수가 동시에 접근 가능
- 내용 참조(Content Reference) - 내용으로 데이터 찾을 수 있어야 함
종류
- 파일 시스템(File System)
- 파일 위치, 이름 등을 부여하여 관리
- ISAM, VSAM
- 관계형 데이터베이스 시스템(RDBMS, Relational Database Management System)
- 관계형 모델을 기반. 가장 보편적. 유지 관리 용이
- Oracle, SQL Server, MySQL, Maria DB
- 계층형 데이터베이스 관리 시스템(HDBMS)
- 상하 종속적 관계로 계층화해 관리. 속도 빠르지만 유연성 떨어짐
- IMS, System 2000
- 네트워크 데이터베이스 관리 시스템(NDBMS)
- 망형으로 표현한 모델. 복잡.
- IDS, IDMS
DBMS(Database Management System)
개념
데이터 추가, 변경, 검색, 삭제, 복구, 보안 등의 기능을 제공하는 소프트웨어
유형
- 키-값(Key-Value)
- 빅데이터 처리 가능. 키 기반. 키 하나에 값 하나
- Redis, DynamoDB
- 칼럼 기반 데이터 저장(Column Family Data Store)
- 키 안에 (칼럼, 값) 조합으로 된 여러개 필드 있음.
- HBase, Cassandra
- 문서 저장(Document Store)
- 값을 문서 타입으로 사용. XML, JSON과 같은 구조화된 데이터 타입
- MongoDB, Couchbase
- 그래프(Graph)
- 시멘틱 웹, 온톨로지에 활용. 노드와 엣지. 노드 간 관계 구조화.
- Neo4j, AllegroGraph
특징
무일회보효
- 데이터 무결성 : 동일한 내용에 서로 다른 데이터 저장되지 않도록 방지
- 데이터 일관성 : 삽입, 삭제, 갱신, 생성 후에도 데이터 변함 없음
- 데이터 회복성 : 장애 발생시 특정 상태로 복구됨
- 데이터 보안성 : 불법 노출, 변경, 손실로부터 보호됨
- 데이터 효율성 : 최적화된 시간, 공간으로 사용자, 시스템 요구조건을 맞춤
데이터베이스 기술 트렌드
빅데이터
개념
수십 페타바이트(PB) 크기의, 주어진 비용과 시간 내에 처리가 어려운 범위의 비정형 데이터.
특성
3V(양-Volume, 다양성-Variety, 속도-Velocity)
수집, 저장, 처리기술
- 비정형/반정형 데이터 수집 - 정제되지 않은 데이터 수집, 전송
- 척와(Chukwa), 플럼(Flume), 스크라이브(Scribe)
- 정형 데이터 수집 - 정제된 데이터 수집, 전송
- ETL, FTP, 스쿱(Sqoop), 하이호(Hiho)
- 분산데이터 저장/처리 - 대용량 분산 저장/처리 기술
- HDFS(Hadoop Distributed File System), 맵 리듀스
- 분산데이터베이스 - HDFS 기반 데이터베이스
- HBase
NoSQL(Not Only SQL)
개념
전통적인 RDBMS와 다른 것을 지칭하는 것으로, 정보 저장에 있어 고정된 테이블 스키마가 필요 없고, 조인 연산을 하지 못하며, 수평적으로 확장이 가능하다.
특성
BASE
- Basically Available : 언제든 접근(가용성)
- Soft-State : 노드의 상태 외부에서 전송된 정보에 의해 결정
- Eventually Consistency : 일관성 유지
유형
DBMS 유형과 동일하게 분류.
데이터 마이닝(Data Mining)
개념
대규모로 저장된 데이터 안에서 통계나 패턴을 자동적이고 체계적으로 찾아내는 기술.
이를 통해 의미 있는 패턴을 찾아내거나 예측해 의사결정 과정에 활용.
절차
목적 설정 → 데이터 준비 → 가공 → 마이닝 기법 적용 → 정보 검증
주요 기법
분류 규칙(Classification), 연관 규칙(Association), 연속 규칙(Sequence), 데이터 군집화(Clustering)
참고
수제비 2021 정보처리기사 실기
댓글남기기