정보처리기사 실기 :: 2장 데이터 입출력 구현
정보처리기사 실기 :: 2장 데이터 입출력 구현
2장 데이터 모델링 절차
개념적 데이터 모델링 -> 논리적 데이터 모델링 -> 물리적 데이터 모델링
1) 논리 데이터 모델링
- 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현
- 특징: 정규화, 완전성, 독립성, 포용성
- 속성: 개체, 속성, 관계
2) 정규화
- 관계형 데이터베이스 설계시 중복을 최소화하여 데이터를 구조화하는 과정
- 데이터 중복 최소화 + 데이터 구조화
*이상현상: 데이터의 중복성으로 인해 테이블을 조작할 때 발생하는 비합리적인 현상
- 삽입이상: 정보 저장시 불필요한 세부사항을 입력해야 하는 경우
- 삭제이상: 삭제시 원치않는 정보까지 삭제되는 경우
- 갱신이상: 중복 데이터에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
*정규화 단계 (원부이결다조)
- 1NF: 테이블 내의 속성 값은 원자 값을 가져야 한다.
- 2NF: 부분 함수 종속성을 제거해야 한다.
- 3NF: 이행 함수 종속성을 제거해야 한다.
- BCNF: 결정자 함수의 종속성을 제거하고 모든 결정자가 후보키 집합에 속한 정규형
- 4NF: 다중 값 속성을 제거해야 한다.
- 5NF: 조인 종속성을 제거해야 한다.
3) 물리 데이터 모델링
- 논리 데이터 모델을 DBMS 특성 및 성능을 고려하여 구체화시킨 모델
모델링 절차
(1) 개체 -> 테이블
(2) 속성 -> Column
(3) UID -> PK
(4) 관계 -> 외래키
(5) Column 길이 및 유형 정의
(6) 반정규화: 시스템의 성능 향상을 위해 수행되는 의도적인 정규화 원칙을 위배하는 행위
*참조 무결성 제약 조건: 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건
*인덱스
- 검색 연산의 최적화를 위해 키값과 포인터의 쌍으로 구성되는 데이터 구조
- 분포도가 좋은 컬럼은 단독으로 생성
- 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성
- 지나치게 많은 인덱스는 오버헤드 발생 가능
*뷰
- 사용자에게 허용된 정보만 보여주기 위해 하나 이상의 테이블로부터 유도된 논리적인 가상 테이블
- 속성: REPLACE, FORCE, NOFORCE
- 논리적인 독립성을 제공하고 접근 제어를 통한 자동 보안 기능 제공
*클러스터
- 데이터 접근 효율을 높이기 위해 동일한 성격의 데이털르 같은 데이터 블럭에 저장하는 물리적 저장 방법
- 조회 속도는 향상시키지만 삽입, 삭제, 수정의 기능은 저하
- 종류: 단일 테이블 클러스트링, 다중 테이블 클러스트링
*파티셔닝
- 대용량의 테이블을 작은 논리적인 단위인 파티션으로 나누는 것
- 레인지 파티셔닝: 연속되는 숫자나 날짜 기준으로 파티셔닝
- 해시 파티셔닝: 파티션 키의 해시 함수 값으로 파티셔닝
- 리스트 파티셔닝: 데이터에 대한 명시적 제어가 가능한 파티셔닝
- 컴포지트 파티셔닝: 범위 분할 이후 해시 함수를 적용하는 파티셔닝
- 장점: 성능 향상, 가용성 향상, 백업 기능
4) 데이터 조작 프로시저
- 저장된 프로시저, 저장된 함수, 저장된 패키지, 트리거
- 프로시저: SQL을 이용해 생성된 데이터를 조작하는 프로그램
- PL/SQL: 표준 SQL을 기반으로 Oracle에서 개발한 데이터 조작 언어
- JDBC: 자바에서 DB를 사용할 수 있도록 연결해주는 인터페이스
- 프로시저 생성 SQL문
1
2
3
CREATE OR REPLACE
(name IN VARCHAR)
IS BEGIN
- DBMS_OUTPUT: 메시지를 버퍼에 저장하고 버퍼로부터 읽어오기 위한 인터페이스 패키지
- SEVENOUTPUT ON: PL/SQL 처리 결과를 출력
- SHOW ERRORS: PL/SQL 오류 발생 출력
*APM(Application Performance Monitoring): 안정적인 시스템 운영을 위한 성능 모니터링 도구
5) 데이터 조작 프로시저 최적화
- 옵티마이저: SQL을 가장 빠르고 효율적으로 수행할 수 있는 최적의 경로 생성
- RBO: 규칙 기반 옵티마이저
- CBO: 비용 기반 옵티마이저
This post is licensed under CC BY 4.0 by the author.