Post

정보처리기사 실기 :: 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.