데이터 전환
- 운영중인 기존 정보시스템에 축적되어 있는 데이터를 추출하여, 새로 개발할 정보 시스템에서 운영할 수 있도록 변환한 후 적재하는 일련의 과정을 말한다.
데이터 검증
- 원천 시스템의 데이터를 목적시스템의 데이터로 전환하는 과정이 정상적으로 수행하였는지 여부를 확인하는 과정
오류 데이터 측정 및 정제
- 데이터 품질 분석 -> 오류 데이터 측정 -> 오류 데이터 정제 순으로 진행
데이터베이스
- 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 항상 사용할 수 있도록 하는 운영 데이터
- 데이터베이스의 정의
- 통합된 데이터 : 자료의 중복을 배제한 데이터의 모임
- 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
- 운영 데이터 : 조직의 고유한 업무를 수행하는데 반드시 필요한 자료
- 공용 데이터 : 여러 응용 시스템들이 공용으로 소유하고 유지하는 자료
DBMS
- 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어이다.
- DBMS의 필수 기능 3가지
- 정의 기능
- 조작 기능
- 제어 기능
스키마
- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
- 외부 스키마 : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
- 개념 스키마 : 데이터베이스의 전체적인 논리적 구조, 하나만 존재함
- 내부 스키마 : 물리적 저장장치의 입장에서 본 데이터베이스 구조
데이터베이스 설계 순서
- 요구 조건 분석
- 개념적 설계
- 논리적 설계
- 물리적 설계
- 구현
데이터베이스 설계 순서 - 개념적 설계
- 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 개념 스키마 모델링과 트랜잭션 모델링을 병행 수행
- 요구 조건 명세를 E-R 다이어그램으로 작성
데이터베이스 설계 순서 - 논리적 설계
- 현실 세계에서 발생하는 자료를 특정 DBMS가 지원하는 논리적 자료구조로 변환(MAPPING)시키는 과정
- 트랜잭션 인터페이스 설계
- 정규화를 통해 스키마 평가 및 정제
데이터베이스 설계 순서 - 물리적 설계
- 논리적 설계에서 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
데이터 모델
- 현실세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
- 데이터 모델에 표시할 요소
- 구조 : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
- 연산 : 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
- 제약 조건 : 저장될 수 있는 실제 데이터의 논리적인 제약 조건
개체
- 데이터베이스에 표현하려는 것, 개념이나 정보 단위 같은 현실 세계의 대상체
관계
- 개체와 개체 사이의 논리적인 연결
- 관계의 형태
- 일 대 일
- 일 대 다
- 다 대 다
E-R 모델
- 현실 세계의 무질서한 데이터를 개념적인 논리 데이터로 표현하기 위한 방법
- 피터첸에 의해 제안
E-R 다이어그램
관계형 데이터베이스의 릴레이션 구조
- 속성 : 컬럼 수, 디그리, 차수, 데이터 필드
- 튜플 : 로우(행) 수, 카디널리티
- 릴레이션 : 테이블
- 릴레이션 스키마 : 구조(헤더)
- 릴레이션 인스턴스 : 실제 값
- 도메인 : 컬럼 별 실제 값
튜플
- 릴레이션을 구성하는 각각의 행
속성
- 데이터베이스를 구성하는 가장 작은 논리적 단위
도메인
- 하나의 애트리뷰트(속성)가 취할 수 있는 같은 타입의 원자(ATOMIC) 값들의 집합
후보키(CANDIDATE KEY)
- 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
- 유일성 : 하나의 키 값으로 하나의 튜플만을 식별할 수 있어야함
- 최소성 : 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 필요한 속성으로 구성되어야함
기본키(PRIMARY KEY)
- 후보키 중에서 특별히 선정된 주키(MAIN KEY)이다.
- 중복된 값 가질 수 없다
- NULL값 가질 수 없다
대체키(ALTERNATE KEY)
- 후보키가 둘 이상일 때 기본 키를 제외한 나머지 후보키
- 대체키 = 보조키
슈퍼키
- 릴레이션 내에 있는 속성들의 집합으로 구성된 키
- 유일성만 만족, 최소성 만족 X
외래키
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
무결성
- 데이터베이스에 저장된 데이터 값과 현실 세계의 실제값이 일치하는 정확성을 의미
- 개체 무결성 : 기본 테이블의 기본키를 구성하는 어떤 속성도 NULL, 중복값을 가질 수 없다는 규정
- 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본값과 동일해야함. 참조할 수 없는 외래키 값을 가질 수 없다는 규정
관계 대수
- 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
순수 관계 연산자 - SELECT
- 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산
- 기호 : σ
순수 관계 연산자 - PROJECT
- 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만 추출하여 새로운 릴레이션을 만드는 연산(수직 연산자)
- 기호 : π
순수 관계 연산자 - JOIN
- 공통 속성을 중심으로 두개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산
- JOIN의 연산은 CARTESIAN PRODCUT(교차곱)을 수행한 다음 SELECT를 수행한 것과 같다.
- 기호 : ⋈
순수 관계 연산자 - DIVISION
- X⊃Y인 두개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외하는 속성만을 구하는 연산이다.
- 기호 : ÷
일반 집합 연산자 - 합집합(UNION)
- 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산
- 기호 : ∪
일반 집합 연산자 - 교집합(INTERSECTION)
- 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
- 기호 : ∩
일반 집합 연산자 - 차집합(DIFFERENCE)
- 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
- 기호 : -
일반 집합 연산자 - 교차곱(CARTISIAN PRODUCT)
- 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
- 기호 : X
관계해석
- 관게 데이터의 연산을 표현하는 방법
- 코드가 수학자의 술어해석에 기반을 두고 관계 데이터베이스를 위해 제안
이상
- 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 않게 발생하는 곤란한 현상
- 삽입 이상
- 테이블에 데이터를 삽입 시 의도와는 상관없이 원하지 않는 값들로 인해 삽입 불가
- 삭제 이상
- 테이블에 데이터를 삭제할 때 의도와는 상관없는 값들이 합께 삭제되는, 즉 연쇄삭제가 일어나는 현상
- 갱신 이상
- 데이터에서 데이터를 갱신할 때, 일부 튜플의 정보만 갱신되어 정보의 불일치성이 나타나는 현상
함수적 종속
어떤 테이블 R에서 X와 Y를 각각 R의 속성 집합의 부분집합이라 하자. 속성 X의 값 각각에 대해 시간과 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속 또는 X가 Y를 함수적으로 결정한다고 보고, X -> Y로 표기한다.
완전 함수적 종속
- 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서, 속성 집합 X의 어떠한 진부분 집합 Z에도 함수적 종속이 아닐 때 속성 Y는 집합 X에 완전 함수적 종속이라고 한다.
부분 함수적 종속
- 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 함수정 종속이면서, 속성 집합 X의 임의의 진부분 집합에 대해 함수적 종속일 때, 속성 Y는 속성 집합 X에 부분 함수적 종속이라고 한다.
정규화
- 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정이다.
- 목적은 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생을 줄이는 것이다.
정규화 과정 - 제 1정규형
- 제 1정규형은 테이블 R에 속한 모든 속성의 도메인이 원자값만으로 되어있는 정규형이다. 즉 테이블의 모든 속성 값이 원자 값으로만 되어있는 정규형이다.
- 도메인이 원자값
정규화 과정 - 제 2정규형
- 테이블 R이 제 1정규형이고, 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족시키는 정규형이다.
- 부분적 함수 종속 제거
정규화 과정 - 제 3정규형
- 테이블 R이 제 2정규형이고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형이다.
- 이행적 함수 종속성 제거
정규화 과정 - BCNF
- 테이블 R에서 모든 결정자가 후보키인 정규형이다.
- 일반적으로 제 3정규형에 후보키가 여러개 존재하고, 이러한 후보키들이 서로 중첩되어 나타나는 경우 적용 가능하다
- 결정자이면서 후보키가 아닌 것 제거
정규화 과정 - 제 4정규형
- 테이블 R에 다중값 종속 A->->B가 존재할 경우 R의 모든 속성 A에 함수적 종속 관계를 만족하는 정규형이다.(다치 종속 제거)
정규화 과정 - 제 5정규형
- 제 5정규형은 테이블 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형이다.
- 조인 종속성 이용
반정규화(DENORMALIZATION)
- 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
- 시스템 성능 향상 및 개발 운영 편의성을 위해
중복 테이블 추가
- 작업의 효율성 향상을 위해 테이블 추가
- 집계 테이블 추가
- 진행 테이블 추가(이력관리 목적)
- 특정 부분만을 포함하는 테이블 추가
시스템 카탈로그
- 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
트랜잭션
- 논리적 기능을 수행하기 위한 작업의 단위 도는 한꺼번에 모두 수행되어야하는 일련의 연산들을 의미
트랜잭션의 특성
- 원자성
트랜잭션의 연산은 데이터베이스에 모두 반영 되도록 완료 되든지, 아니면 전혀 반영되지 않아야한다. - 일관성
트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다. - 독립성
둘 이상의 트랜잭션이 동시에 병행 실행 되는 경우, 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다. - 지속성
성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야함
CRUD 분석
- 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것
- CREATE(생성), 읽기(READ), 갱신(UPDATE), 삭제(DELETE)
인덱스
- 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
- 인덱스를 통해서 파일의 레코드에 빠르게 접근할 수 있다.
클러스터드/넌클러스터드 인덱스
클러스터드 인덱스
- 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
- 실제 데이터가 순서대로 저장되어 있어 인덱스를 검색하지 않아도 원하는 데이터를 빠르게 찾을 수 있다.
넌클러스터드 인덱스
- 인덱스의 키값만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식
- 데이터 삽입, 삭제 발생 시 순서를 유지하기 위해 데이터를 재정렬해야한다.
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 실기 대비 요약 정리 - 서버 프로그램 구현1 (0) | 2023.04.02 |
---|---|
[정보처리기사] 실기 대비 요약 정리 - 통합구현 (0) | 2023.04.01 |
[정보처리기사] 실기 대비 요약 정리 - 데이터 입출력 구현2 (0) | 2023.04.01 |
[정보처리기사] 실기 대비 요약 정리 - 요구사항 확인2 (0) | 2023.04.01 |
[정보처리기사] 실기 대비 요약 정리 - 요구사항 확인1 (0) | 2023.03.29 |