자격증/정보처리기사

데이터베이스 구축(2)

짱뚱짱 2025. 7. 21. 10:51

순수 관계 연산자 - Select

  • 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산이다.
  • 기호 : 시그마(σ)

순수 관계 연산자 - Project

  • 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산이다.
  • 기호 : 파이(π)

순수 관계 연산자 - Join

  • 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산이다.
  • 기호 : ⨝

순수 관계 연산자 - Division

  • X⊃Y인 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산이다.
  • 기호 : ÷

일반 집합 연산자 - 교차곱(CARTESIAN PRODUCT)

  • 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산이다.
  • 교차곱의 디그리는 두 릴레이션의 디그리를 더한 것과 같다.
  • 교차곱의 카디널리티는 두 릴레이션의 카디널리티를 곱한 것과 같다.

관계해석

  • 관계 데이터 모델의 제안자인 코드(Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안했다.
  • 주요 기호

 

정규화(Normalization)

  • 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정이다.
  • 논리적 설계 단계에서 수행한다.
  • 데이터 중복을 배제하여 이상(Anomaly)의 발생 방지한다.
  • 자료 저장 공간의 최소화가 가능하다.

이상(Anomaly)

  • 정규화를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생하는 것을 의미한다.
  • 종류 : 삽입 이상, 삭제 이상, 갱신 이상

정규화 과정

 

함수적 종속(Functional Dependency)

  • 데이터들이 어떤 기준값에 의해 종속되는 것을 의미한다.
  • '학번'에 따라 '이름'이 결정될 때 '이름'을 '학번'에 함수 종속적이라고 하며 '학번→이름'과 같이 쓴다.

이행적 종속 관계

A → B이고 B → C일 때 A → C를 만족하는 관계를 의미한다.

반정규화(Denormalization)

  • 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위이다.
  • 방법 : 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가 등

시스템 카탈로그(System Catalog)

  • 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
  • 사용자가 시스템 카탈로그 내용을 검색할 수는 있지만 갱신할 수는 없다.

트랜잭션(Transaction) 정의

  • 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
  • 한꺼번에 모두 수행되어야 할 일련의 연산

트랜잭션의 상태

  • 활동(Active) : 트랜잭션이 실행 중인 상태
  • 실패(Failed) : 트랜잭션 실행 중 오류가 발생하여 중단된 상태
  • 철회(Aborted) : 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
  • 부분 완료(Partially Committed) : 트랜잭션의 마지막 연산까지 완료했지만, Commit 연산이 실행되기 직전의 상태
  • 완료(Committed) : 트랜잭션이 성공적으로 종료되어 Commit 연산까지 수행한 상태

트랜잭션의 특성

  • ​Atomicity(원자성) : 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함
  • Consistency(일관성) : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
  • Isolation(독립성) : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음
  • Durability(영속성) : 성공적으로 완료된 트랜잭션의 결과는 시스템에 고장나더라도 영구적으로 반영되어야 함

인덱스(Index)

  • 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터>쌍으로 구성되는 데이터 구조이다.
  • 데이터 정의어(DDL)을 이용하여 사용자가 생성, 변경, 제거할 수 있다.

뷰(View)

  • 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.
  • 뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다.
  • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따른다.
  • 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용한다.
  • 독립적인 인덱스를 가질 수 없다.

 

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

데이터베이스 구축(4)  (0) 2025.08.19
데이터베이스 구축(3)  (0) 2025.08.06
데이터베이스 구축(1)  (0) 2025.07.14
소프트웨어 개발(4)  (0) 2025.06.24
소프트웨어 개발(3)  (0) 2025.06.09