- 데이터 전환
- ETL(Extraction, Transformation, Load) → 추출, 변환, 적재 과정
- 데이터 이행 또는 데이터 이관
- 데이터 전환 계획서
- 데이터 전환 작업에 필요한 모든 계획을 기록하는 문서
- 주요 항목 : 데이터 전환 개요, 대상 및 범위, 환경 구성 등..
- 데이터 검증
- 데이터 전환 과정이 정상적으로 수행되었는지 여부를 확인하는 과정
- 검증 방법
- 로그 검증, 기본항목 검증, 응용프로그램 검증, 값 검증
- 검증 단계
- 추출, 전화, DB적재, DB적재 후, 전환 완료 후
- 오류데이터 측정 및 정제
- 고품질의 데이터를 운영 및 관리하기 위해 수행
- 데이터 품질 분석 → 오류데이터 측정 → 오류데이터 분석
- 오류 상태
- Open : 오류 보고
- Assigned : 오류 전달
- Fixed : 오류 수정
- Closed : 수정 완료
- Deferred : 수정 연기
- Clarified / Classified : 오류가 아니라고 확인
- 데이터 정제요청서
- 데이터 정제와 관련된 전반적인 내용을 문서로 작성
- 데이터 정제보고서
- 정제된 원천 데이터가 정상적으로 정제되었는지 확인한 결과를 문서로 작성
- 데이터저장소
- 데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것
- 논리 데이터 저장소
- 데이터 간의 연관성, 제약조건을 식별하여 논리적인 구조로 조직화한 것
- 물리 데이터 저장소
- 실제 저장장치에 저장한 것
- 데이터베이스 (Database)
- 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영데이터
- 구분
- 통합된 데이터(Integration Data) : 중복을 배제한 데이터의 모임
- 저장된 데이터(Stored Data) : 저장 매체에 저장된 자료
- 운영 데이터(Operational Data) : 조직의 고유 업무를 수행하는 데 필요한 데이터
- 공용 데이터(Shared Data) : 여러 응용시스템들이 공동으로 소유하고 유지하는 데이터
- DBMS
- 사용자의 요구에 따라 정보를 생성하고, 데이터베이스를 관리해주는 소프트웨어
- 데이터의 종속성과 중복성 문제 해결을 위해 제안
- 필수 기능
- 정의(Definition) : 데이터의 형과 구조에 대한 정의, 제약조건 등을 명시
- 조작(Manipulation) : 검색, 갱신, 삽입, 삭제 등을 위한 수단 제공
- 제어(Control) : 무결성, 보안, 병행제어 등을 제공하는 기능
- 데이터의 독립성
- 논리적 독립성
- 응용프로그램과 데이터베이스를 독립시킴
- 데이터의 논리적 구조를 변경시켜도 응용프로그램은 영향을 받지 않음
- 물리적 독립성
- 물리적 저장장치를 독립시킴
- 디스크를 추가/변경 하더라고 응용프로그램은 영향을 받지 않음
- 논리적 독립성
- 스키마 (Schema)
- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
- 외부 스키마
- 사용자 관점에서 데이터베이스의 논리적인 구조 표현
- 개념 스키마
- 데이터베이스의 전체적인 논리적 구조
- 내부 스키마
- 물리적 저장장치의 관점에서 데이터베이스의 구조
- 레코드 형식, 레코드 순서 등을 나타냄
- 데이터베이스 설계
- 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 일반 사용자들이 사용하게 하는 것
- 고려사항
- 무결성, 일관성, 회복, 보안, 효율성, 확장
- 요구 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현
- 요구 분석
- 데이터베이스의 필요한 용도를 파악
- 요구 조건 명세서 작성
- 개념적 설계 (정보 모델링)
- HW 독립, DB 독립
- 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- E-R 다이어그램으로 작성
- 개념 스키마 설계
- 논리적 설계 (데이터 모델링)
- HW 독립, DB 종속
- 특정 DBMS가 지원하는 논리적 자료 구조로 매핑시키는 과정
- 개념 스키마를 평가 및 정제
- 트랜잭션 인터페이스 설계
- 물리적 설계 (데이터 구조화)
- HW 종속, DB 종속
- 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
- 저장 레코드 형식, 순서 등의 정보를 사용
- 구현
- 논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정
- DDL을 이용
- 요구 분석
- 데이터 모델
- 현실 세계의 정보들을 단순화, 추상화하여 체계적으로 표현한 개념적 모형
- 구성 요소
- 개체 (Entity)
- 데이터베이스에 표현하려는 것으로 개념이나 정보단위 같은 현실 세계의 대상체
- 실세계에 독립적으로 존재하는 유.무형의 정보
- 하나 이상의 관계가 있음
- 속성 (Attribute)
- 데이터베이스를 구성하는 가장 작은 논리적 단위
- 개체의 특성을 기술
- 속성의 수 = Degree 또는 차수
- 개체 구성 방식
- 기본키 속성 : 개체를 유일하게 식별
- 외래키 속성 : 다른 개체와의 관계에 포함
- 일반 속성 : 기본키, 외래키에 포함되지 않은 속성
- 관계 (Relationship)
- 개체와 개체 사이의 논리적인 연결
- 형태
- 일 대 일, 일 대 다, 다 대 다
- 종류
- 종속 관계 (Dependent) : 개체 사이의 주.종 관계를 표현, 식별.비식별 관계
- 중복 관계 (Redundant) : 2번 이상의 종속 관계 발생
- 재귀 관계 (Recursive) : 개체가 자기 자신과 관계를 맺음, 순환 관계라고도 함
- 배타 관계 (Exclusive) : 개체의 특성을 분할하는 관계
- 개체 (Entity)
- 표시할 요소
- 구조 (Structure)
- 데이터의 구조 및 정적 성질 표현
- 연산 (Operation)
- 데이터베이스를 조작하는 기본 도구
- 제약 조건 (Constraint)
- 실제 데이터의 논리적인 제약조건
- 구조 (Structure)
- 종류
- 개념적 데이터 모델
- 현실 세계에 대한 인간의 이해를 돕기 위해 현실세계에 대한 인식을 추상적 개념으로 표현
- 대표적으로 E-R 모델
- 논리적 데이터 모델
- 개념적 구조를 컴퓨터 세계의 환경에 맞게 변환하는 과정
- 물리적 데이터 모델
- 저장되는 방법을 정의
- 개념적 데이터 모델
- 식별자
- 하나의 개체 내에서 인스턴스를 유일하게 구분할 수 있는 구분자
- 인스턴스 : 구체적인 데이터 값을 갖고 있는 것
- 분류
- 대표성 여부 : 주 식별자, 보조 식별자
- 스스로 생성 여부 : 내부 식별자, 외부 식별자
- 단일 속성 여부 : 단일 실별자, 복합 식별자
- 대체 여부 : 원조 식별자, 대리 식별자
- 후보 식별자
- 개체에서 각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성의 집합
- 특징
- 유일성 : 주 식별자에 의해 유일하게 구분되어야 함
- 최소성 : 최소한의 속성으로 구성
- 불변성 : 식별자는 변하지 않아야 함
- 존재성 : 반드시 데이터 값이 존재해야 함
- 하나의 개체 내에서 인스턴스를 유일하게 구분할 수 있는 구분자
- E-R (개체 - 관계) 모델
- 현실세계의 무질서한 데이터를 개념적인 논리 데이터로 표현하기 위한 방법
- Peter Chen이 제안
- 개체 타입과 관계 타입을 이용해 표현
- 데이터는 개체, 관계, 속성으로 묘사
- E-R 다이어그램
- 사각형 → 개체 타입
- 마름모 → 관계 타입
- 타원 → 속성
- 이중 타원 → 다중 속성
- 밑줄 타원 → 기본키 속성
- 복수 타원 → 복합 속성
- ▭-⬦-▭ → 관계
- 선, 링크 → 개체 타입과 속성을 연결
- 관계형 테이터베이스
- 2차원 적인 표를 이용해서 데이터 상호 관계를 정의
- E.F Codd에 의해 제안
- 릴레이션으라는 표로 표현
- 구조
- 튜플 (Tuple)
- 릴레이션을 구성하는 각각의 행
- 속성의 모임으로 구성
- 튜플의 수 = Cardinality 또는 기수 또는 대응수
- 속성 (Attribute)
- 데이터베이스를 구성하는 가장 작은 논리적 단위
- 속성의 수 = Degree 또는 차수
- 도메인 (Domain)
- 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합
- 특징
- 튜플 상이
- 튜플 무순서
- 속성 무순서
- 원자값
- 튜플 (Tuple)
- 키
- 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
- 후보키
- 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
- 유일성과 최소성 모두 만족
- 유일성 : 하나의 튜플만을 유일하게 실별할 수 있어야 함
- 최소성 : 꼭 필요한 최소의 속성으로 구성되어야 함
- 기본키
- 후보키 중에서 특별히 선정된 주키(Main Key)
- NULL 값을 가질 수 없음
- 중복된 값을 가질 수 없음
- 대체키
- 기본키를 제외한 나머지 후보키
- 슈퍼키
- 유일성은 만족하지만 최소성은 만족하지 못하는 키
- 외래키
- 다른 릴레이션의 기본키를 참조하는 속성
- 무결성 (Integrity)
- 데이터베이스제 저장된 값과 현실 세계의 실제값이 일치하는 정확성
- 종류
- 개체 무결성 : 기본키 값은 NULL이거나 중복될 수 없음
- 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함
- 도메인 무결성
- 키 무결성
- 관계 무결성
- NULL 무결성, 고유 무결성, 사용자 정의 무결성
- 무결성 강화
- 애플리케이션 : 무결성 조건을 검증하는 코드를 프로그램에 추가
- 데이터베이스 트리거 : 트리거 이벤트에 무결정 조건을 실행하는 SQL 추가
- 제약 조건 : 제약조건을 설정
- 관계 대수
- 원하는 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적 언어
- 순수 관계 연산자
- Select
- 튜플의 부분 집합을 구하여 새로운 릴레이션을 생성
- 수평 연산
- σ
- Project
- 제시된 속성 값만을 추출하여 새로운 릴레이션 생성
- 수직 연산자
- π
- Join
- 두 개의 릴레이션을 하나로 합침
- 카디션 프로덕트를 수행한 후 Select 한 결과와 같음
- ⨝
- Division
- 튜플에서 하나의 릴레이션이 가진 속성을 제외한 속성만을 구하는 연산
- ÷
- Select
- 일반 집합 연산자
- 합집합, 교집합, 차집합
- 교차곱
- 교차곱 수행 결과는 Degree = 두 릴레이션 Degree의 합, Cardinality = 두 릴레이션 Cardinality의 곱
- 관계 해석
- 관계 데이터의 연산을 표현하는 방법
- 비절차적 특성을 가짐
- 이상 (Anomaly)
- 데이터의 중복으로 인해 문제가 발생하는 현상
- 삽입 이상
- 의도와는 상관없이 원하지않는 값도 삽입해야하는 현상
- 삭제 이상
- 의도와는 상관없이 원하지 않는 값들도 함께 삭제되는 연쇄삭제 현상
- 갱신 이상
- 속성값을 갱신할 때 일부 정보만 갱신되어 정보에 불일치성이 생기는 현상
- 함수적 종속
- X의 값과 상관없이 Y의 값이 오직 하나만 연관되어 있는 현상
- Y는 X에 함수적 종속, X → Y로 표기
- X는 결정자, Y는 종속자
- 정규화 (Normalization)
- 데이터의 중복을 제거하여 이상현상을 최소화 하기 위해 테이블을 무손실 분해하는 과정
- 과정
- 비정규 릴레이션 → 원자값 제거 → 1 정규형
- 1 정규형 → 부분 함수 종속 제거 → 2 정규형
- 2 정규형 → 이행적 함수 종속 제거 → 3 정규형
- 3 정규형 → 결정자이면서 후보키가 아닌 것 제거 → BCNF 정규형
- BCNF 정규형 → 다치 종속 제거 → 4 정규형
- 4 정규형 → 조인 종속 이용 → 5 정규형
- 반정규화 (Denormalization)
- 성능 향상을 위해 정규화된 것을 정규화 이전의 상태로 되돌리는 정규화 원칙을 위배하는 행위
- 방법
- 테이블 통합 : 조인되어 사용되는 경우가 많을 경우 아예 하나의 테이블로 통합
- 테이블 분할
- 수평 분할 : 레코드 기준으로 분할
- 수직 분할 : 속성 기준으로 분할
- 중복 테이블 추가
- 집계 테이블 추가 : 트리거를 설정하여 사용
- 진행 테이블 추가 : 이력 관리 등의 목적
- 특정 부분만을 포함하는 테이블 추가 : 특정 부분만을 사용
- 중복 속성 추가 : 자주 사용하는 하나의 속성을 추가
'정보처리기사_실기' 카테고리의 다른 글
정보처리기사 70 ~ 84 (개발 환경 구축 ~ 패키지 소프트웨어) (0) | 2022.06.23 |
---|---|
정보처리기사 64 ~ 69 (통합 구현 ~ 연계 테스트) (0) | 2022.06.23 |
정보처리기사 47 ~ 63 (시스템 카탈로그 ~ 정렬) (0) | 2022.06.21 |
정보처리기사 20 ~ 30 (소프트웨어 개발 방법론 ~ 개발 프레임워크) (0) | 2022.06.18 |
정보처리기사 1~19 (소프트웨어 생명주기 ~ 다이어그램) (0) | 2022.06.17 |