일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 컨디션 변수
- 프로그래머스
- 파일시스템 구현
- DirectX12
- 병행성 관련 오류
- 타입 객체
- 디자인패턴
- 락
- 영속성
- 쓰레드
- 그리디알고리즘
- 동적계획법
- 운영체제
- 자료구조
- 멀티쓰레드
- 렌더링 파이프라인
- directx
- 그리디 알고리즘
- 멀티프로세서
- DirectX 12
- 알고리즘
- 스케줄링
- 백준
- codility
- 병행성
- Direct12
- 다이나믹 프로그래밍
- OS
- I/O장치
- 다이나믹프로그래밍
- Today
- Total
기록공간
2장. 데이터 입출력 구현 본문
#1 논리 데이터 저장소 확인
논리 데이터 모델 검증
1. 논리 데이터 모델링 개념
■ 데이터베이스 설계 프로세스의 기초 설계 단계로 비즈니스 정보의 구조와 규칙을 명확하게 표현할 수 있는 기법이다.
2. 논리 데이터 모델링 특성 (정포완독)
- 정규화 : 모든 데이터를 정규화(Normalization)하여 모델링
- 포용성 : 모든 엔티티 타입, 속성, 관계, 프로세스 등을 포함
- 완전성 : 모든 규칙과 관계를 완전하고 정확하게 표현
- 독립성 : 성은, 제약사항에 독립적인 모델, 특정 DBMS로부터 독립적인 성질
3. 논리 데이터 모델링 속성 (개속관)
- 개체(Entity) : 관리할 대상이 되는 실체
- 속성(Attributes) : 관리할 정보의 구체적 항목
- 관계(Relationship) : 개체 간의 대응 관계
4. 개체-관계(E-R) 모델
■ 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해 가장 널리 사용되고 있는 모델이다.
■ 요구사항으로 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델이다.
5. 정규화
■ 정규화 개념
관계형 데이터베이스의 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스이다.
■ 이상 현상 (삽삭갱)
- 삽입이상 : 정보 저장시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
- 삭제이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
- 갱신이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
■ 정규화의 단계 (원부이 결다조)
- 제 1 정규형 (원자화)
- 제 2 정규형 (부분함수 종속 제거)
- 제 3 정규형 (이행함수 종속 제거)
- 보이스코드 정규형 (결정자 함수 종속 제거)
- 제 4 정규형 (다치 종속성 제거)
- 제 5 정규형 (조인 종속성 제거)
#2 물리 데이터 저장소 설계
물리 데이터 모델 설계
1. 물리 데이터 모델링 개념
■ 물리 데이터 모델링은 논리모델을 적용하고자 하는 기술에 맞도록 상세화해가는 과정이다.
2. 물리 데이터 모델링 변환 절차
-
개체를 테이블로 변환
-
속성을 컬럼으로 변환
-
UID를 기본키로 변환
-
관계를 외래키로 변환
-
컬럼 유형과 길이 정의
-
반 정규화 수행
물리 데이터 저장소 구성
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 |