이안의 평일코딩

정보처리기사 실기 요약 정리 - 2. 데이터 입출력 구현 본문

Certificate/정보처리기사 실기

정보처리기사 실기 요약 정리 - 2. 데이터 입출력 구현

이안92 2020. 10. 29. 14:05
반응형

이 글은 수제비 정보처리기사 실기 책을 요약정리한 것으로 저작권은 건기원에 있습니다.

2. 데이터 입출력 구현

1) 논리 데이터 저장소 확인

논리 데이터 모델링

=> 데이터 베이스 설계 프로세스의 기초 설계 단계로 비지니스 정보의 구조와 규칙을 명확하게 표현할 수 있는 기법

 

논리 데이터 모델링 특징 (정포완독: 정말 포기했는데 완독했다)

=> 정규화, 포용성, 완전성, 독립성

 

논리 데이터 모델링 속성 (개속관: 개속 관계를 유지하다)

=> 개념, 속성, 관계

 

개체-관계(E-R) 모델

현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델

 

개체-관계(E-R) 다이어그램 기호

=> 개체(사각형), 관계(마름모), 속성(타원), 다중 값 속성(이중타원), 관계-속성 연결(선)

 

정규화(Normalization)

=> 관계형 데이터베이스의 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스

 

이상 현상(Anomaly) (삽삭갱: 삽살개)

삽입이상 : 정보 저장 시 해당 정보의 불필요한 세부 정보를 입력해야 하는 경우

삭제이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우

갱신이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

 

데이터베이스 정규화 단계 (원부이 결다조)

1정규형(1NF) : 원자값으로 구성

2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 관계)

3정규형(3NF) : 이행함수 종속 제거

보이스-코드 정규형(BCNF) : 결정자 함수이면서 후보키가 아닌 것 제거

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

5정규형(5NF) : 조인 종속성 제거

 

BCNF(보이스-코드 정규형)

모든 결정자가 후보키가 되도록하여 결정자 함수 종속성을 제거하는 단계

 


 

2) 물리 데이터 저장소 설계

Row 행 튜플

 Column 열 애트리뷰트

 

물리 데이터 모델링

=> 논리모델을 적용하고자 하는 기술에 맞도록 상세화해 가는 과정

 

물리 데이터 모델링 변환 절차

개체를 테이블로 변환 -> 속성을 컬럼으로 변환 -> UID를 기본키로 변환 -> 관계를 외래키로 변환 -> 컬럼 유형과 길이 정의 -> 반 정규화 수행

 

반 정규화

=> 시스템 성능 향상과 개발 및 운영의 단순화를 위해서 데이터 모델을 통합하는 데이터베이스 성능향상 기법

 

인덱스

=> 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터구조

 

분포도 

=> 특정 컬럼의 데이터가 테이블에 평균적으로 분포되어 있는 정도

 

뷰 속성

=> REPLACE, FORCE, NOFORCE, WITH CHECK OPTION, WITH READ ONLY

 

파티션의 종류 (레헤리컴)

=> 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝, 컴포지트 파티셔닝

 

파티션의 장점 (성가백합: 성가대가 백합꽃을 들고 노래한다)

=> 성능 향상, 가용성 향상, 백업 가능, 경합 감소

 


 

3) 데이터 조작 프로시저 작성

프로시저

=> SQL를 이용해 생성된 데이터를 조작하는 프로그램

 

PL/SQL

=> 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작언어로 SQL과 함께 효과적으로 DB에 접근할 수 있는 방법을 제공하는 프로그래밍 언어

 

데이터 저장소의 연결 절차

드라이버 로딩 -> 데이터베이스 연결 -> 쿼리 전달 -> 결과 수신

 

프로시저 문법

CREATE : 객체를 생성하는 데이터 정의 명령

REPLACE : 뷰가 ㅇ미 존재하는 경우 재생성하는 역할

CONSTRAINT : 테이블에 올바른 데이터만 입력 받고 잘못된 데이터는 들어오지 못하도록 컬럼마다 정하는 규칙

BEGIN : END와 함께 처리 단위별로 묶어주는 역할을 하도록 컬럼마다 정하는 규칙

ALTER ~ MODIFY : 데이터 저장소의 속성을 변경하는 수정 문법

 

JDBC(Java DataBase Connectivity)

=> 데이터베이스에 연결 및 작업을 하기 위한 자바 표준 인터페이스

 

DBMS_OUTPUT 패키지

=> 메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 인터페이스를 제공하는 패키지

 

SET SERVEROUTPUT ON

=> PL/SQL의 처리결과를 화면에 출력하기 위한 SQL 명령어

 

SHOW ERRORS

=> PL/SQL문 작성 후 마지막에 추가해주면 처리결과에 대한 오류내용을 출력

 


 

4) 데이터 조작 프로시저 최적화

옵티마이저

=> SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해 주는 DBMS 내부의 핵심엔진

 

옵티마이저 유형

=> 규칙기반 옵티마이저(RBO:Rule Based Optimizer), 비용기반 옵티마이저(CBO:Cost Based Optimizer)

 

힌트

=> 옵티마이저가 비정상적인 실행계획을 수립 시 힌트로서 액세스 경로 및 조인 순서를 제어, 실행계획을 변경

 

옵티마이저의 힌트

/*+RULE*/ : 규칙 기반 접근 방식을 사용하도록 지정

/*+CHOOSE*/ : 오라클 옵티마이저 디폴트 값에 따름

/*+INDEX(테이블명 인덱스명)*/ : 지정된 인덱스를 강제적으로 쓰게끔 지정

/*+USE_HASH(테이블명)*/ : 지정된 테이블들의 조인이 Hash-Join형식으로 일어나도록 유도

/*+USE_MERGE(테이블명)*/ : 지정된 테이블들의 조인이 Sort-Merge형식으로 일어나도록 유도

/*+USE_NL(테이블명)*/ : 지정된 테이블들의 조인이 Nested-Loop형식으로 일어나도록 유도

 

실행계획(Excecution Plan)

=> 옵티마이저가 생성한 SQL 처리 경로

 

 

반응형
Comments