Notice
Recent Posts
Recent Comments
Link
«   2026/03   »
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
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Joon's Space

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

정보처리기사

2. 데이터 입출력 구현

Happy Joon 2022. 10. 11. 14:31

이상현상(Anomaly)

정규화를 거치지 않으면 데이터베이스의 데이터들이 불필요하게 중복되어 릴레이션 조작 시 문제가 발생하는 현상.

종류

  • 삽입 이상 - 테이블에 데이터를 삽입할 때, 의도와는 관계없이 원하지 않는 값들로 인해 삽입할 수 없는 현상
  • 수정(갱신) 이상 - 테이블에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상
  • 삭제 이상 - 테이블에서 한 튜플을 삭제할 때, 의도와는 관계없이 값들도 함께 삭제되면 연쇄삭제가 일어나는 현상

정규화(Normalization)

데이터베이스 이상현상의 원인이 되는 데이터 중복성을 제거하여 데이터의 무결성을 보존하는 기법

유형

  • 제1정규화(1NF) - 릴레이션 R의 모든속성 값이 원자값을 가지는 릴레이션
  • 제2정규화(2NF) - 릴레이션 R이 제1정규형이고 기본키가 아닌 속성이 기본키에 완전 함수 종속일 때
  • 제3정규화(3NF) - 릴레이션 R이 제2정규형이고 기본키가 아닌 속성이 기본키에 비이행적으로 종속할 때(직접종속)
  • 보이스/코드정규화(BCNF) - 릴레이션 R에서 함수 종속성 X → Y가 성립할 때 모든 결정자 X가 후보키 일 때
  • 제4정규화(4NF) - 릴레이션 R에서 MVD A → B가 존재할 때 R의 모든 속성들이 A에 함수종속이면 R은 4NF

함수종속성(Functional Dependency)

하나의 릴레이션을 구성하는 속성들의 부분 집합을 X와 Y라고 할 때, 어느 시점에서든 릴레이션 내의 모든 튜플을 대상으로 한 X 값에 대한 Y값이 항상 하나면 “X가 Y를 함수적으로 결정한다.”

X → Y로 표기하고, Y 는 X 에 종속된다고 함 (X 결정자, Y 종속자)

유형

  • 완전 함수 종속 - 일반속성이 식별자 전부에 종속
  • 부분 함수 종속 - 일반속성이 식별자 일부에 종속, 제 2정규화 필요
  • 이행 함수 종속 - 일반속성간 함수적 종속, 제 3정규화 필요
  • 결정자 함수종속 - 결정자가 후보키가 아닌 경우 존재, 후보키에 종속자 존재, BCNF 정규화 필요

CRUD Matrix

프로세스와 엔티티의 상관관계를 이용하여 구축된 엔티티 관계도를 검증하는 도구

점검 기준

  • 모든 엔티티에 CRUD가 한번 이상 표기되어야함
  • 모든 엔티티에 C가 한번 이상 존재해야함
  • 모든 엔티티에 R이 한번 이상 존재해야함
  • 모든 단위 프로세스가 하나 이상의 엔티티에 표기되어야함

데이터 베이스

  • 특징
  1. 유일성 - 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야함

기본키, 후보키, 슈퍼키

  1. 최소성 - 속성의 집합인 키가 릴레이션의 모든 튜플을 유일하게 식별하기 위해 꼭 필요한 속성들로 구성된 것을 의미

기본키, 후보키

  • 종류
  1. 후보키 - 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별할 수 있는 하나 또는 몇 개의 속성의 집합
  2. 릴레이션의 유일한 식별자
  3. 대체키 - 후보키가 둘 이상 되는 경우에 기본키로 선택되지 못한 후보키들
  4. 슈퍼키 - 유일성만 있고 최소성이 없는 속성의 집합
  5. 외래키 - 한 테이블의 키 중 다른 테이블의 튜플을 식별할 수 있는 키

클러스터

어떤 정해진 속성 값을 기준으로, 동일한 값을 가진 하나 이상의 테이블의 튜플을 같은 장소에 저장하는 물리적인 기법

디스크로 부터 데이터를 읽어오는 시간을 줄이기 위해서 조인이나 자주 사용되는 테이블의 데이터를 디스크의 같은 위치에 저장시키는 방법

파티셔닝(Partitioning)

대용량의 테이블이나 인덱스의 유지보수 관리가 쉬운 단위로 분리하는 방법

인덱스(Index)

검색 연산의 최적화를 위해 데이터베이스 내의 튜플들에 대한 정보를 구성하는 데이터 구조

인덱스 생성구문

CREATE [UNIQUE] INDEX <index_name> ON <table_name> (<column(s)>);

뷰(View)

사용자에게 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 테이블로 부터 유도된 이름을 가지는 가상테이블

뷰 생성구문

CREATE VIEW <View_Name> AS <뷰를 통해 보여줄 데이터 조회용(SELECT) 쿼리문>  

뷰 삭제구문

DROP VIEW <View_Name> {RESTRICT | CASCADE};

RESTRICT : 뷰를 다른 곳에서 참조하고 있으면 삭제가 취소

CASCADE : 뷰를 참조하는 다른 뷰나 제약조건까지 모두 삭제

슈퍼/서브타입 관계

여러 엔티티에서 공통 속성이 존재할 경우 속성들을 하나로 묶어 통합하는 데이터 모델링 기법

분산 데이터베이스

  • 하나의 데이터베이스 관리 시스템(DBMS)이 여러 CPU에 연결 된 저장장치들을 제어하는 형태의 데이터베이스이다.
  • 논리적으로 같은 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임이다.
  • 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스이다.

특징

분할 투명성(단편화), 위치 투명성, 지역사상 투명성, 중복 투명성, 장애 투명성, 병행 투명성

테이블 크기 계산공식

테이블 크기 = (초기건수 x Row 길이 + 발생건수 x Row 길이 x 보존기간) / 1024

반정규화(Denormalization, 비정규화)

정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 성능개선을 위해서 의도적으로 정규화 원칙을 위배하는 행위.

Stored Procedure 구성

  • DECLARE - 프로시저의 명칭, 변수와 인수, 데이터 타입을 정의하는 선언부
  • BEGIN/END - 프로시저의 시작과 종료를 표현하는 필수 요소이며 프로시저 내부에서 Block을 구분하는 데 사용
  • CONTROL - 순차실행, 조건분기, 반복수행 등 SQL 문장의 수행 순서를 조정하는데 사용
  • SQL - DQL(SELECT), DML(INSERT, UPDATE, DELETE)을 사용하고, 경우에 따라 DDL 문을 사용
  • EXCEPTION - BEGIN ~ END 절에서 실행되는 SQL문이 실행될 때 예외 또는 오류가 발생하는 경우 예외 처리 방법을 정의
  • TRANSACTION - 프로시저에서 수행된 DML 수행 내역의 DBMS의 적용 또는 취소 여부를 결정하는 처리부(COMMIT / ROLLBACK)

실행

EXECUTE or EXEC 을 사용

삭제

DROP PROCEDURE procedure_name

옵티마이저

SQL의 문법적 오류를 확인하고 통계정보를 활용한 비용을 분석하여 최적의 SQL 실행계획을 수립하는 DBMS 핵심엔진.

힌트

옵티마이저가 항상 최적화된 실행계획을 수립하는 것이 아니므로 사용자가 의도하는 방향으로 수동으로 제어하는 도구

반응형

'정보처리기사' 카테고리의 다른 글

7. SQL 응용  (0) 2022.10.14
6. 애플리케이션 테스트 관리  (1) 2022.10.13
5. 화면 설계  (1) 2022.10.13
3. 통합 구현  (0) 2022.10.12
1. 요구사항 확인  (2) 2022.10.07