정보처리기사 실기 공부 - 데이터 입출력 구현 보완

2020. 10. 12. 12:04컴퓨터언어

728x90
반응형

 

데이터 모델

현실세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형

 

개념 모델링

요구사항을 보다 쉽게 이해할 수 있도록 현실 세계의 상황을 단순화하여 개념적으로 표현한 모델을 만드는 과정

 

개념적 데이터 모델

현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정

 

논리적 데이터 모델

개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정

 

물리적 데이터 모델

실제 컴퓨터에 데이터가 저장되는 방법을 정의하는 물리 데이터베이스 설계 과정

 

논리적 데이터 모델의 품질 검증

논리 데이터 모델이 기업에 적합한지 확인하게 위해 개체/속성/관계/식별자 품질 검증 항목을 구성

 

데이터 모델에 표시할 요소

구조 : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현함

연산 : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구

제약조건: 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

 

이상 현상

테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상

 

함수적 종속

어떤 테이블 R의 속성 부분집합 X, Y가 있을 때, 속성 X의 값 각각에 대해 시간에 관계없이 항상 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속 또는 X가 Y를 함수적으로 결정한다고 하며, X->Y로 표기한다.

 

정규화

테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정

 

비정규 릴레이션 -> 제1정규형 : 도메인이 원자값

제1정규형 -> 제2정규형 : 부분 함수적 종속 제거

제2정규형 -> 제3정규형 : 이행적 함수 종속 제거

제3정규형 -> BCNF : 결정자이면서 후보키가 아닌 것 제거

제3정규형 -> 제4정규형 : 다치 종속 제거

제4정규형 -> 제5정규형 : 조인 종속성 이용

 

반정규화

시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위

 

테이블 통합

두 개의 테이블이 조인되는 경우가 많아 하나로 합쳐 사용하는 것이 성능 향상에 도움이 되는 경우 수행

검색의 효율성은 향상되지만 레코드 증가로 연산량이 증가됨

테이블 통합으로 인해 삽입/삭제/갱신 규칙이 복잡해짐

Not Null, Check, Default 등 제약조건의 설계가 어려워짐

 

테이블 분할

속성이 너무 많은 경우 수직분할, 튜플의 사용빈도 차이가 큰 경우 사용빈도에 따라 수평분할

갱신 위주의 속성 분할 : 갱신 중에는 레코드 잠금으로 인해 다른 작업을 수행할 수 없으므로 갱신이 자주 일어나는 속성을 기준으로 분할

자주 조회되는 속성 분할 : 자주 조회되는 속성이 극히 일부일 경우 자주 사용되는 속성들을 수직 분할

크기가 큰 속성 분할 : 이미지나 2GB 이상 저장될 수 있는 텍스트 형식 등으로 된 속성들을 수직 분할

보안을 적용해야 하는 속성 분할 : 특정 속성에 대해 보안을 적용할 수 없으므로 보안을 적용해야 하는 속성들을 수직 분할

 

중복 테이블 추가

여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 할 경우

중복 테이블 추가 방법 : 집계 테이블의 추가, 진행 테이블의 추가, 특정 부분만을 포함하는 테이블의 추가

 

중복 속성 추가

조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가하는 것

 

인덱스

데이터 레코드를 빠르게 접근하기 위해 <키값, 포인터> 쌍으로 구성되는 데이터 구조

 

인덱스 대상 테이블 선정 기준

특정 범위나 특정 순서로 데이터 조회가 필요한 테이블, 다른 테이블과 순차적 조인이 발생되는 테이블, MULTI BLOCK READ 수에 따라 판단, 랜덤 액세스가 빈번한 테이블

 

인덱스 대상 컬럼 선정 기준

인덱스 컬럼의 분포도가 10~15% 이내인 컬럼 또는 15% 이상이어도 부분 처리를 목적으로 하는 컬럼

*분포도 : (컬럼값의 평균 Row 수 / 테이블의 총 Row 수) X 100

가능한 한 수정이 빈번하지 않은 컬럼

ORDER BY, GROUP BY, UNION이 빈번한 컬럼

 

트랜잭션

데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들

원자성 : 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 아니면 전혀 반영되지 않도록 복구되어야 함

일관성 : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함

독립성 : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음

지속성 : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

 

사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블

장점 : 데이터의 논리적 독립성 제공, 접근 제어를 통한 자동 보안 제공, 사용자들의 상이한 요구를 동시에 지원, 사용자의 데이터 관리를 간단하게 해줌

단점 : 독립적인 인덱스를 가질 수 없음, 뷰를 구성하는 항목에 대한 삽입/삭제/갱신 연산에 제약이 있음, 뷰의 정의를 변경할 수 없음

 

클러스터

데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법

 

파티션

대용량의 테이블이나 인덱스를 작은 논리적 단위로 나누는 것

 

데이터베이스 용량 설계

데이터가 저장될 공간을 정의하는 것

데이터 접근성을 향상시키는 설계 방법 : 테이블의 테이블스페이스와 인덱스의 테이블스페이스를 분리하여 구성, 테이블스페이스와 임시 테이블스페이스를 분리하여 구성, 테이블을 마스터 테이블과 트랜잭션 테이블로 분류

728x90
반응형