기록공간

2장. 데이터 입출력 구현 본문

자격증공부/정보처리기사_실기

2장. 데이터 입출력 구현

입코딩 2020. 11. 21. 00:02
반응형

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

논리 데이터 모델 검증

1. 논리 데이터 모델링 개념

 

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

 

 

2. 논리 데이터 모델링 특성 (정포완독)

 

- 규화 : 모든 데이터를 정규화(Normalization)하여 모델링 

- 용성 : 모든 엔티티 타입, 속성, 관계, 프로세스 등을 포함

- 전성 : 모든 규칙과 관계를 완전하고 정확하게 표현

- 립성 : 성은, 제약사항에 독립적인 모델, 특정 DBMS로부터 독립적인 성질

 

 

3. 논리 데이터 모델링 속성 (개속관)

 

- 체(Entity) : 관리할 대상이 되는 실체

- 성(Attributes) : 관리할 정보의 구체적 항목

- 계(Relationship) : 개체 간의 대응 관계

 

 

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

 

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

■ 요구사항으로 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델이다.

 

 

5. 정규화

 

정규화 개념

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

 

이상 현상 (삽삭갱)

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

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

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

 

정규화의 단계 (원부이 결다조)

    - 제 1 정규형 (자화)

    - 제 2 정규형 (분함수 종속 제거)

    - 제 3 정규형 (행함수 종속 제거)

    - 보이스코드 정규형 (정자 함수 종속 제거)

    - 제 4 정규형 (치 종속성 제거)

    - 제 5 정규형 (인 종속성 제거)

 

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

물리 데이터 모델 설계

1. 물리 데이터 모델링 개념

 

■ 물리 데이터 모델링은 논리모델적용하고자 하는 기술에 맞도록 상세화해가는 과정이다.

 

 

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

  1. 개체를 테이블로 변환

  2. 속성을 컬럼으로 변환

  3. UID를 기본키로 변환

  4. 관계를 외래키로 변환

  5. 컬럼 유형과 길이 정의

  6. 반 정규화 수행

 

물리 데이터 저장소 구성

1. 테이블 제약조건(Constraint) 설계

 

■ 제한(Restricted)

    참조 무결성 원칙을 위배하는 연산을 거절하는 옵션

 

■ 연쇄(Cascade)

    튜플을 삭제하면서, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 삭제하는 옵션

 

■ 널 값(Nullify)

    튜플을 삭제하면서, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들의 외래키에 NULL 값을 넣는 옵      션

 

 

2. 인덱스(Index) 설계

 

■ 인덱스 개념

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

 

■ 인덱스 적용 기준

    - 인덱스 분포도가 10 ~ 15% 이내인 경우

    - 조회 및 출력 조건으로 사용되는 컬럼인 경우

 

■ 인덱스 컬럼 선정

    - 분포도가 좋은 컬럼은 단독적으로 생성

    - 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성

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

 

■ 설계 시 고려 사항

    - 지나치게 많은 인덱스는 오버헤드로 작용

    - 인덱스로 인한 추가적인 저장공간이 필요함을 고려

    - 너무 넓은 범위를 인덱스 처리 시 많은 오버헤드 발생 가능성

 

 

3. 뷰(View) 설계

 

■ 뷰 속성

    - REPLACE : 뷰가 존재하는 경우 재생성

    - FORCE : 본 테이블의 존재 여부 관계없이 뷰 생성

    - NOFORCE : 기본 테이블이 존재할때 뷰 생성

    - WITH CHECK OPTION : 서브 쿼리 내의 조건을 만족하는 행만 변경

    - WITH READ ONLY : 데이터 조작어(DML) 작업 불가

 

 

4. 클러스터(Cluster) 설계

 

■ 적용 기준

    - 인덱스의 단점을 해결한 기법, 분포도가 넓을수록 오히려 더 유리

    - 액세스 효율 향상을 위한 물리적 저장 방법

    - 대량의 범위를 자주 액세스하는 경우 적용

 

■ 설계 시 고려 사항

    - 검색 효율은 높여주지만 입력, 수정, 삭제 시 부하가 증가

    - UNION, DISTINCT, ORDER BY, GROUP BY가 빈번한 컬럼은 검토 대상

    - 수정이 자주 발생하지 않는 컬럼은 검토 대상

    - 처리 범위가 넓어 문제가 발생하는 경우는 단일 테이블 클러스터링을 고려

    - 조인이 많아 문제가 발생하는 경우는 다중 테이블 클러스터링을 고려 

 

 

5. 파티션(Partition) 설계

 

■ 파티션의 종류 (레해리컴)

    - 인지 파티셔닝 : 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법

    - 시 파티셔닝 : 해시 함수 값에 의한 파티셔닝 기법

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

    - 포지트 파티셔닝 : 범위분할 + 해시분할

 

■ 파티션의 장점 (성가백합)

    - 능 향상 : 데이터 액세스 범위를 줄여 성능 향상

    - 용성 향상 : 전체 데이터 훼손 가능성 감소, 가용성 향상

    - 업 가능 : 분할 영역을 독립적으로 백업하고 복구가능

    - 감소 : 디스크 스트라이핑(병렬처리)으로 입출력 성능 향상

 

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

데이터 조작 프로시저 개발

1. 프로시저(Procedure)의 개념

 

SQL을 이요해 생성된 데이터를 조작하는 프로그램이다. 데이터베이스 내부에 저장되고 일정한 조건이 되면 자동으로 수행된다. (저장된 프로시저, 저장된 함수, 저장된 패키지, 트리거)

 

 

2. PL/SQL 개념

 

■ 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작 언어이다. Oracle 기반 모든 프로시저 작성에 사용되며 표준 SQL의 확장 기능이 우수하다.

 

데이터 조작 프로시저 테스트

1. PL/SQL 테스트

 

■ DBMS_OUTPUT 패키지 활용

    메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 인터페이스 패키지 DBMS_OUTPUT을        코드에 포함시킨다.

 

■ DBMS_OUTPUT 패키지 설명

    - DBMS_OUTPUT.DISABLE : 메시지 버퍼 내용 삭제

    - DBMS_OUTPUT.ENABLE : 메시지 버퍼 내용 할당 

    - DBMS_OUTPUT.PUT : 하나의 라인을 여러번에 걸쳐 저장

    - DBMS_OUTPUT.PUT_LINE : PUT과 동일하나, 퍼버에 저장되는 메시지의 마지막 라인 끝에 EOL 문자          추가

    - DBMS_OUTPUT.GET_LINE : 한 번 호출될 때마다 하나의 라인만을 읽어옴

    - DBMS_OUTPUT.GET_LINES : 지정된 라인을 모두 읽어들임

 

■ DBMS_OUTPUT 패키지 실행 방법

    PL/SQL의 처리결과를 화면에 출력하기 위한 SERVEROUTPUT을 ON 시키고, 실행하고자 하는 PL/SQL        블록 또는 저장 객체 명을 호출한다.

    (SET SERVEROUTPUT ON)

 

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

데이터 조작 프로시저 성능개선

1. 옵티마이저 통계 확인

 

■ 옵티마이저(Optimizer)의 개념

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

    옵티마이저가 생성한 SQL 처리 경로를 실행계획이라 부른다.

 

■ 옵티마이저의 유형

    - RBO(Rule Based Optimizer) = 규칙기반 옵티마이저

      통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저

      (원하는 처리경로로 유도 용이)

    - CBO(Cost Based Optimizer) = 비용기반 옵티마이저

      통계 정보로부터 모든 접근 경로를 고려한 질의실행 계획을 선택하는 옵티마이저

      (성능보장 가능)

 

■ 힌트 사용

    SQL 성능 개선의 핵심 부분으로 옵티마이저 실행 계획을 원하는 대로 변경할 수 있게 한다.

   

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

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

    - /* + INDEX(테이블명 인덱스명) */ : 지정된 인덱스를 강제적으로 사용하도록 지정

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

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

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

반응형

'자격증공부 > 정보처리기사_실기' 카테고리의 다른 글

6장. 화면 설계  (0) 2020.11.22
5장. 인터페이스 구현  (0) 2020.11.22
4장. 서버 프로그램 구현  (0) 2020.11.21
3장. 통합 구현  (0) 2020.11.21
1장. 요구사항 확인  (0) 2020.11.09
Comments