기타/정보처리기사실기

[정보처리기사 실기 / 내용정리] 03. 데이터 입출력 구현

rinix_x 2022. 4. 13. 17:23
반응형
정보처리기사 실기 03. 데이터 입출력 구현
반응형
데이터 모델의 개념

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

* 데이터 모델 절차 : 요구사항 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계

* 모델 구성 요소 : 개체, 속성, 관계

 - 개체(Entity) : 데이터베이스에 표현하려는 것으로, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체

 - 속성(Attribute) : 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다.

 - 관계(Relationship) : 개체 간의 관계 또는 속성 간의 논리적인 연결을 의미한다.

 

* 관계 대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는 가를 기술하는 절차적 정형 언어

* 관계 해석 : 튜플 관계 해석과 도메인 해석을 하는 비절차적 언어

 

* 개념적 데이터 모델 : 추상적 개념으로 표현하는 과정

 - 대표적 모델 : E-R 모델

* 논리적 데이터 모델 : 컴퓨터 세계의 환경에 맞도록 변환하는 과정

 - 관계 모델(테이블 형태, 1:1, 1:N, N:M), 계층 모델(트리 형태[상하관계], 1:N), 네트워크 모델(그래프 형태, N:M)

 

* 모델에 표시할 요소 : 구조, 연산, 제약조건

 

이상/함수적 종속/ 정규화

* 이상 : 데이터 중복으로 인해 문제가 발생하는 현상

 - 삽입 이상 : 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상

 - 삭제 이상 : 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상

 - 갱신 이상 : 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상

 

* 함수적 종속 : X의 속성 값이 항상 속성 Y의 값이 오직 하나만 연관되어있을 때 X->Y로 표기

( X 가 결정자, Y 가 종속자 ) EX) 학번 -> 이름

 

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

 - 목적 : 중복을 제거하여 이상의 발생 가능성을 줄이는 것.

 

* 정규화 과정 

 - 제1 정규형 (1NF) : 도메인이 원자 값으로 구성 ( 반복되는 정보를 하나의 열이 되도록 나눔.... )

 - 제2 정규형 (2NF) : 부분적 함수 종속 제거 (기본키를 기준으로 분류)

 - 제3 정규형 (3NF) : 이행적 함수 종속 제거 (외래 키를 기본키로 분류)

 - 보이스-코드 정규형(BCNF) : 결정자이면서 후보 키가 아닌 것 제거 (키가 아닌 것을 기준으로 분류)

 - 제4 정규형 (4NF) : 다치 종속 (다중 값 종속 제거) 

 - 제5 정규형 (5NF) : 조인 종속성 이용

 

* 반 정규화 (De-Nomalization) : 정규화된 개체, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법 ( 시스템의 성능 향상을 위해 수행되는 의도적인 정규화 원칙을 위배하는 행위)

 

논리 데이터의 물리 데이터 모델로 변환

* 테이블 : 데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트

 - 로우(Row) : 튜플, 인스턴스, 어커런스

 - 컬럼(Column) : 각 속성 항목에 대한 값을 저장

 - 기본키(Primary Key) : 특정 튜플을 유일하게 구별할 수 있는 속성

 - 외래 키(Foreign Key) : 다른 관계가 기본키를 참조하는 속성 또는 속성들의 집합

 

* 엔티티를 테이블로 변환

 - 엔티티 - > 테이블

 - 속성 -> 컬럼

 - 주 식별자 -> 기본키

 - 외부 식별자 -> 외래 키

 - 관계 -> 관계

 

* 참조 무결성 제약 조건 : 릴레이션과 릴레이션 사이에 대한 참조의 일관성을 보장하기 위한 조건

 - 제한(Restricted) : 다른 테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션

 - 연쇄(Cascade) : 참조하는 테이블까지 연쇄적으로 제거하는 옵션

 - 널값(SetNull) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 튜플들의 외래 값에 NULL값을 넣는 옵션, 

 

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

 - 클러스터드 인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식

 - 넌 클러스터드 인덱스 : 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 방식

* 뷰(View) : 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블

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

* 파티션(Partition) : 대용량의 테이블을 작은 논리적인 단위인 파티션으로 나누는 것

 - 범위 분할 : 지정한 열의 값을 기준으로 분할

 - 해시 분할 : 해시 함수를 적용한 결과 값에 따라 데이터를 분할

 - 리스트 분할 : 특정 파티션에 저장될 데이터에 대한 명시적 제어가 가능한 분할 기법

 - 조합 분할 : 범위, 해시, 리스트 분할 중 2개 이상의 파티션을 결합하는 방식, 파티션이 클 때 사용

 - 장점 : 성능 향상, 가용성 향상, 백업 가능, 경합 감소

 

반응형