Etc/📃 Certification

[정보처리기사] 3과목 1장 - 논리 데이터베이스 설계

posted by sangmin

3과목 - 데이터베이스 구축

1장. 논리 데이터베이스 설계


70. 데이터베이스 설계

데이터베이스 설계 시 고려사항

  • 무결성 : 삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건을 항상 만족해야함
  • 일관성 : 저장된 데이터들 사이나, 특정 질의에 대한 응답이 변함없이 일정해야함
  • 회복 : 시스템 장애 발생 시 장애 발생 직전 상태로 복구할 수 있어야함
  • 보안 : 불법적인 데이터의 노출 또는 손실로부터 보호할 수 있어야함
  • 효율성 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야함
  • 데이터베이스 확장 : 지속적으로 데이터를 추가할 수 있어야함

데이터베이스 설계 순서

  1. 요구 조건 분석
  2. 개념적 설계
  3. 논리적 설계
  4. 물리적 설계
  5. 구현

요구 조건 분석

  • 데이터베이스를 사용할 사람들로부터 필요한 용도를 파악하는 것
  • 요구 조건 명세 작성

개념적 설계 (정보 모델링, 개념화)

  • 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
  • 개념 스키마 모델링과 트랜잭션 모델링 병행 수행
  • 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램 으로 작성

논리적 설계 (데이터 모델링)

  • 개념 세계의 데이터를 논리적 구조의 데이터로 모델화
  • 개념 스키마를 평가 및 정제하고, DBMS에 종속적인 논리적 스키마를 설계
  • 트랜잭션의 인터페이스를 설계

물리적 설계 (데이터 구조화)

  • 논리적 구조로 표현된 데이터를 물리적 저장장치에 저장할 수 데이터로 변환하는 과정
  • 데이터베이스 파일의 저장 구조 및 액세스 경로 설정

데이터베이스 구현

  • 논리적 설계 단계와 물리적 설계 단계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정

71. 데이터 모델의 개념

데이터 모델의 정의

  • 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적 모형
  • 데이터베이스 설계 과정에서 데이터 스키마를 논리적으로 표현하기 위해 사용되는 지능적 도구

데이터 모델의 구성 요소

  • 개체 (Entity) : 데이터베이스에 표현하려는 것으로, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
  • 속성 (Attribute) : 데이터 필드에 해당하는 것으로, 데이터의 가장 작은 논리적 단위
  • 관계 (Relationship) : 개체 간의 관계 또는 속성 간의 논리적인 연결

개념적 데이터 모델

  • 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
  • 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계 표현
  • ex) E-R 모델

논리적 데이터 모델 (= 데이터 모델)

  • 개념적 구조를 컴퓨터 세계의 환경에 맞도록 변환하는 과정
  • 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계 표현
  • 특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용
  • ex) 관계 모델, 계층 모델, 네트워크 모델

데이터 모델에 표시할 요소

  • 구조 (Structure) : 논리적으로 표현된 개체 타입들 간의 관계
  • 연산 (Operation) : 실제 데이터를 처리하는 작업에 대한 명세
  • 제약 조건 (Constraint) : 실제 데이터의 논리적인 제약 조건

72. 데이터 모델의 구성 요소 - 개체 (Entity)

개체의 정의 및 특징

  • 개체는 실세계에 독립적으로 존재하는 유형, 무형의 정보로 서로 연관된 몇 개의 속성으로 구성
  • 영속적으로 존재하는 개체의 집합이며, 독립적으로 존재하거나 그 자체로서도 구별 가능
  • 유일한 식별자에 의해 식별 가능
  • 다른 개체와 하나 이상의 관계가 있음

개체명 지정 방법

  • 일반적으로 해당 업무에서 사용하는 용어로 지정
  • 약어 사용은 되도록 제한하고, 가능하면 단수 명사 사용
  • 모든 개체명은 유일해야함

73. 데이터 모델의 구성 요소 - 속성 (Attribute)

속성의 정의 및 특징

  • 속성은 데이터베이스를 구성하는 가장 작은 논리적 단위
  • 개체를 구성하고, 개체의 특성을 기술함
  • 속성의 수는 디그리 (Degree) 또는 차수

속성의 종류

  • 속성의 특성에 따른 분류
    • 기본 속성 (Basic Attribute)
      • 업무 분석을 통해 정의한 속성으로 가장 많고 일반적
      • ex) 자동차명, 제조일, 연비
    • 설계 속성 (Designed Attribute)
      • 원래 업무상 존재하지 않고 설계 과정에서 도출해내는 속성
      • 업무를 규칙화하려고 속성을 새로 만들거나 변형하여 정의
      • ex) 자동차코드 (A01-세단 / A02-SUV / A03-트럭)
    • 파생 속성 (Derived Attribute)
      • 다른 속성으로부터 계산이나 변형 등의 영향을 받아 발생하는 속성
      • ex) 총판매수량, 총판매금액
  • 개체 구성 방식에 따른 분류
    • 기본키 속성 (Primary Key Attribute)
      • 개체를 식별할 수 있는 속성
    • 외래키 속성 (Foreign Key Attribute)
      • 다른 개체와의 관계에서 포함된 속성
    • 일반 속성
      • 개체에 포함되어 있고 기본키, 외래키에 포함되지 않은 속성

속성명 지정 원칙

  • 어떠한 환경에서든 사용자 인터페이스에 나타나기 때문에 정확하고 혼란이 없도록 지정
  • 서술형으로 지정하지 않고, 가급적 약어 사용은 제한
  • 개체명은 속성명으로 사용할 수 없음
  • 개체에서 유일하게 식별 가능하도록 지정

74. 데이터 모델의 구성 요소 - 관계 (Relationship)

관계의 정의

  • 관계는 개체와 개체 사이의 논리적인 연결을 의미

관계의 형태

  • 일 대 일 (1:1) : 집합 A의 각 원소가 집합 B의 원소 한 개와 대응
  • 일 대 다 (1:N) : 집합 A의 각 원소는 집합 B의 원소 여러 개와 대응하지만, B의 각 원소는 A의 원소 한 개와 대응
  • 다 대 다 (N:M) : 집합 A의 각 원소는 집합 B의 원소 여러 개와 대응하고, B의 각 원소도 A의 원소 여러 개와 대응

관계의 종류

  • 종속 관계 (Dependent Relationship)
    • 두 개체 사이 주종 관계를 표현한 것으로, 식별 관계와 비식별 관계가 있음
    • 식별 관계
      • A 개체의 기본키가 B 개체의 외래키이면서 동시에 기본키가 되는 관계
      • B 개체의 존재 여부가 A 개체의 존재 여부에 의존적인 경우
    • 비식별 관계
      • A 개체의 기본키가 B 개체의 비기본키 영역에서 외래키가 되는 관계
      • B 개체의 존재 여부는 A 개체의 존재 여부와 관계없음
  • 중복 관계 (Redundant Relationship)
    • 두 개체 사이 2번 이상의 종속 관계가 발생하는 관계
  • 재귀 관계 (Recursive Relationship)
    • 개체가 자기 자신과 관계를 갖는 것
  • 배타 관계 (Exclusive Relationship)
    • 개체 속성이나 구분자를 기준으로 개체의 특성을 분할하는 관계
    • 배타 AND 관계
      • 하위 개체들 중 하나의 개체만 선택 가능
    • 배타 OR 관계
      • 하위 개체들 중 하나 이상의 개체 선택 가능

75. 식별자 (Identifier)

식별자의 정의 및 분류

  • 식별자는 하나의 개체 내에서 각 인스턴스를 유일하게 구분할 수 있는 구분자
  • 모든 개체는 한 개 이상의 식별자를 반드시 가져야함
  • 분류
    • 대표성 여부 : 주 식별자 / 보조 식별자
    • 스스로 생성 여부 : 내부 식별자 / 외부 식별자
    • 단일 속성 여부 : 단일 식별자 / 복합 식별자
    • 대체 여부 : 원조 식별자 / 대리 식별자

주 식별자 / 보조 식별자

  • 주 식별자는 개체를 대표하는 유일한 식별자
  • 보조 식별자는 주 식별자를 대신하여 개체를 식별할 수 있는 속성
  • 물리적 테이블에서 주 식별자는 기본키, 보고 식별자는 유니크 인덱스로 사용
  • 주 식별자의 특징
    • 유일성 / 최소성 / 불변성 / 존재성

내부 식별자 / 외부 식별자

  • 내부 식별자는 개체 내에서 스스로 만들어지는 식별자
  • 외부 식별자는 다른 개체와의 관계에 의해 식별자를 가져와 사용하는 식별자

단일 식별자 / 복합 식별자

  • 단일 식별자는 주 식별자가 한 가지 속성으로만 구성된 식별자
  • 복합 식별자는 주 식별자가 두 개 이상의 속성으로 구성된 식별자

원조 식별자 / 대리 식별자

  • 원조 식별자는 업무에 의해 만들어지는 원래의 식별자
  • 대리 식별자는 주 식별자의 속성이 두 개 이상인 경우 속성들을 하나의 속성으로 묶어 사용하는 식별자

후보 식별자

  • 개체에서 각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성의 집합
  • 조건
    1. 각 인스턴스를 유일하게 식별할 수 있어야함
    2. 속성들을 직접 식별할 수 있어야함
    3. 널 값 불가능

76. E-R (개체-관계) 모델

E-R (Entity-Relationship, 개체-관계) 모델의 개요

  • E-R 모델은 개념적 데이터 모델의 가장 대표적인 것
  • 개체 타입과 이들 간의 관계 타입으로 현실 세계를 개념적으로 표현
  • E-R 다이어그램으로 표현하며, 1:1, 1:N 등의 관계 유형을 제한업이 나타낼 수 있음

E-R 다이어그램

  • E-R 모델의 기본 아이디어를 이해하기 쉽게 시각적으로 표현한 그림
  • E-R 다이어그램 표기법
    • 피터 첸 표기법
    • 정보 공학 표기법
    • 바커 표기법

피터 첸 표기법 (Peter Chen Notation)

image

정보 공학 표기법 (Information Engineering Notation)

  • 개체는 사각형 박스로 표시하고 개체명은 박스 바깥쪽 위에 표시

바커 표기법 (Barker Notation)

  • 속성은 반드시 값이 저장되어야 하는 경우 * (Mandatory)를 표시하고, 그 외에는 ○ (Optional)을 표시
image

77. 관계형 데이터 모델

관게형 데이터 모델 (Relational Data Model)의 개요

  • 2차원적인 테이블을 이용해 데이터 상호 관계를 정의하는 DB 구조
  • 기본키와 이를 참조하는 외래키로 데이터 간의 관계 표현
  • 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델

78. 관계형 데이터베이스의 구조

관계형 데이터베이스의 구조

  • 릴레이션은 개체를 표현하는 개체 릴레이션, 관계를 나타내는 관계 릴레이션으로 구분
  • 장점 : 간결하고 보기 편리하며 다른 데이터베이스로의 변환 용이
  • 단점 : 다소 떨어지는 성능

관계형 데이터베이스의 Relation 구조

  • 릴레이션은 데이터들을 표 형태로 표현한 것으로 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성
  • 튜플 (Tuple)
    • 릴레이션을 구성하는 각각의 행
    • 속성의 모임으로 구성
    • 튜플의 수를 카디널리티 (Cardinality) 또는 기수라고 함
  • 속성 (Attribute)
    • 데이터베이스를 구성하는 가장 작은 논리적 단위
    • 개체의 특성을 기술하며, 속성의 수를 디그리 (Degree) 또는 차수라고 함
  • 도메인 (Domain)
    • 하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합

릴레이션의 특징

  • 한 릴레이션에는 똑같은 튜플이 포함될 수 업음
  • 한 릴레이션에 포함된 튜플 사이에는 순서가 업음
  • 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변함
  • 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 Key 로 설정

79. 관계형 데이터베이스의 제약 조건 - 키 (Key)

키 (Key)의 개념 및 종류

  • 키는 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 속성
  • 키의 종류
    • 후보키 / 기본키 / 대체키 / 슈퍼키 / 외래키

후보키 (Candidate Key)

  • 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 (= 기본키로 사용할 수 있는 속성들)
  • 모든 릴레이션에는 반드시 하나 이상의 후보키 존재
  • 후보키는 모든 튜플에 대해 유일성과 최소성 만족
    • 유일성 : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야함
    • 최소성 : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성으로만 구성되어야함

기본키 (Primary Key)

  • 후보키 중에서 특별히 선정된 Main Key
  • 기본키는 후보키의 성질을 가짐 (유일성과 최소성 만족)
  • 기본키는 NULL 불가능

대체키 (Alternate Key)

  • 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키

슈퍼키 (Super Key)

  • 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
  • 유일성은 만족시키지만, 최소성은 만족시키지 못함

외래키 (Foreign Key)

  • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
  • 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없음

80. 관계형 데이터베이스의 제약 조건 - 무결성

무결성 (Integrity)의 개념 및 종류

  • 무결성이란 데이터베이스에 저장된 값과 현실 세계의 실제값이 일치하는 정확성을 의미
  • 무결성 제약 조건 : 데이터 정확성을 보장하기 위해 부정확한 자료가 DB 내 저장되는 것을 방지
  • 무결성 종류
    • 개체 무결성
    • 도메인 무결성
    • 참조 무결성
    • 사용자 정의 무결성

개체 무결성 (Entity Integrity, 실체 무결성)

  • 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질 수 없음

도메인 무결성 (Domain Integrity, 영역 무결성)

  • 주어진 속성 값이 정의된 도메인에 속한 값이어야함

참조 무결성 (Referential Integrity)

  • 외래키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야함

사용자 정의 무결성

  • 속성 값들이 사용자가 정의한 제약 조건에 만족해야함

데이터 무결성 강화

  • 프로그램이 완성되고 데이터가 저장된 상태에서 무결성을 정의할 경우 많은 비용이 발생하기 때문에 데이터베이스 구축 과정에서 정의
  • 데이터 무결성 강화 방법
    • 애플리케이션
      • 데이터 생성, 수정, 삭제 시 무결성 검증하는 코드를 프로그램 내에 추가
      • 장점 : 사용자 정의 같은 복잡한 무결성 조건 구현 가능
      • 단점 : 소스 코드에 분산되어 있어 관리가 힘듦
    • 데이터베이스 트리거
      • 트리거 이벤트에 무결성 조건을 실행하는 절차형 SQL 추가
      • 장점 : 통합 관리 가능, 복잡한 요구 조건의 구현 가능
      • 단점 : 운영 중 변경이 어려움
    • 제약 조건
      • 데이터베이스에 제약 조건을 설정하여 무결성 유지
      • 장점 : 통합 관리 가능, 변경이 용이하고 오류 데이터 발생 방지
      • 단점 : 복잡한 제약 조건의 구현과 예외적인 처리 불가능

81. 관계대수 및 관계해석

관계대수의 개요

  • 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적인 언어
  • 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어
  • 순수 관계 연산자 : Select / Project / Join / Division
  • 일반 집합 연산자 : UNION / INTERSECTION / DIFFERENCE / CARTESIAN PRODUCT

Select

  • 릴레이션에 존재하는 튜플 중 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산
  • 표기 형식 : σ<조건></조건>(R)

Project

  • 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산 (중복 제거)
  • 표기 형식 : π<속성리스트></속성리스트>(R)

Join

  • 공통 속성을 중심으로 두 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산
  • Join 결과로 만들어진 릴레이션의 차수 = 조인된 두 릴레이션의 차수를 합한 것
  • Join 결과는 Cartesian Product를 수행한 다음 Select한 것과 같음
  • 표기 형식 : R⋈키속성r=키속성sS

Division

  • X⊃Y인 두 개의 릴레이션이 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
  • 표기 형식 : R[속성r÷속성s]S

일반 집합 연산자

  • 수학적 집합 이론에서 사용하는 연산자와 같음
  • 합집합 (UNION)
    • 두 릴레이션에 존재하는 튜플의 합집합 (중복 제거)
    • |R∪S| ≤ |R| + |S|
  • 교집합 (INTERSECTION)
    • 두 릴레이션에 존재하는 튜플의 교집합
    • |R∩S| ≤ MIN{|R|, |S|}
  • 차집합 (DIFFERENCE)
    • 두 릴레이션에 존재하는 튜플의 차집합
    • |R-S| ≤ |R|
  • 교차곱 (CARTESIAN PRODUCT)
    • 두 릴레이션에 있는 튜플들의 순서쌍
    • |R×S| ≤ |R| × |S|

관계해석 (Relational Calculus)

  • 관계 데이터의 연산을 표현하는 방법
  • 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성

82. 정규화 (Normalization)

정규화의 개요

  • 정규화란 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정
  • 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정
  • 정규형 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어남
  • 데이터베이스의 논리적 설계 단계에서 수행
  • 정규화된 데이터 모델은 일관성, 정확성, 단순성, 비중복성, 안정성 등을 보장
  • 정규화 수준이 높을수록 데이터 정확성이 높아지지만 물리적 접근이 복잡하고 너무 많은 조인으로 조회 성능 저하

정규화의 목적

  • 데이터 구조의 안정성 및 무결성 유지
  • 효과적인 검색 알고리즘 생성 가능
  • 데이터 중복을 배제하여 이상 발생 방지 및 자료 저장 공간 최소화
  • 데이터 모형의 단순화가 가능하고, 자료 검색과 추출의 효율성 추구

이상 (Anomaly)의 개념 및 종류

  • 이상이란 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생하는 것
  • 이상 종류
    • 삽입 이상 (Insertion Anomaly)
      • 데이터 삽입 시 원하지 않는 값들도 함께 삽입되는 현상
    • 삭제 이상 (Deletion Anomaly)
      • 한 튜플을 삭제할 때 의도하지 않은 값들고 함께 삭제되는 현상
    • 갱신 이상 (Update Anomaly)
      • 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

정규화의 원칙

  • 정보의 무손실 표현 : 하나의 스키마를 다른 스키마로 변환할 때 정보의 손실이 있어서는 안됨
  • 분리의 원칙 : 하나의 독립된 관계성은 하나의 독립된 릴레이션으로 분리시켜 표현
  • 데이터 중복성이 감소되어야함

정규화 과정

  • 1NF (제1정규형)
    • 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있는 정규형
  • 2NF (제2정규형)
    • 릴레이션이 1NF이고, 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형
  • 3NF (제3정규형)
    • 릴레이션이 2NF이고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않는 정규형
  • BCNF (Boyce-Codd 정규형)
    • 릴레이션에서 결정자가 모두 후보키인 정규형
    • 제약조건
      • 키가 아닌 모든 속성은 각 키에 대해 완전 종속
      • 키가 아닌 모든 속성은 그 자신이 부분적으로 들어가 있지 않은 모든 키에 대해 완전 조속
      • 어떤 속성도 키가 아닌 속성에 대해서는 완전 종속할 수 없음
  • 4NF (제4정규형)
    • 릴레이션에 다치 종속 A ↠ B가 성립하는 경우 릴레이션의 모든 속성이 A에 함수적 조속 관계를 만족하는 정규형
  • 5NF (제5정규형, PJ/NF)
    • 릴레이션의 모든 조인 종속이 후보키를 통해서만 성립되는 정규형
image

83. 반정규화 (Denormalization)

반정규화의 개념

  • 반정규화는 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위
  • 시스템 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성 저하
  • 반정규화 방법
    • 테이블 통합
    • 테이블 분할
    • 중복 테이블 추가
    • 중복 속성 추가

테이블 통합

  • 두 개의 테이블이 조인되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행
  • 데이터 검색은 간편하지만 레코드 증가로 인해 처리량 증가

테이블 분할

  • 테이블을 수직 또는 수평으로 분할하는 것
  • 수평 분할 (Horizontal Partitioning)
    • 레코드(행)를 기준으로 분할
    • 레코드별로 사용 빈도의 차이가 큰 경우 사용 빈도에 따라 테이블 분할
  • 수직 분할 (Horizontal Partitioning)
    • 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블 분할
    1. 갱신 위주의 속성 분할
    2. 자주 조회되는 속성 분할
    3. 크기가 큰 속성 분할
    4. 보안을 적용해야 하는 속성 분할
    • 고려 사항
      • 기본키의 유일성 관리가 어려워짐
      • 분할된 테이블로 인해 수행 속도가 느려질 수 있음

중복 테이블 추가

  • 여러 테이블에서 데이터를 추출해서 사용하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 수행
  • 중복 테이블을 추가하는 경우
    • 정규화로 인해 수행 속도가 느려지는 경우
    • 많은 범위의 데이터를 자주 처리해야 하는 경우
    • 특정 범위의 데이터만 자주 처리해야 하는 경우
    • 처리 범위를 줄이지 않고는 수행 속도를 개선할 수 없는 경우

중복 속성 추가

  • 조인해서 데이터를 처리할 때 데이터 조회 경로를 단축하기 위해 자주 사용하는 속성을 추가하는 것
  • 데이터 무결성 확보가 어렵고, 추가적인 디스크 공간 추가 필요

84. 시스템 카탈로그

시스템 카탈로그 (System Catalog)의 의미

  • 시스템 그 자체에 관련 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
  • 카탈로그들이 생성되면 데이터 사전 (Data Dictionary)에 저장됨

시스템 카탈로그 저장 정보

  • 메타 데이터 : 시스템 카탈로그에 저장된 정보
  • 메타 데이터의 유형
    • 데이터베이스 객체 정보 : 테이블, 인덱스, 뷰 등의 구조 및 통계 정보
    • 사용자 정보 : 아이디, 패스워드, 접근 권한 등
    • 테이블의 무결성 제약 조건 정보 : 기본키, 외래키, NULL 값 허용 여부 등
    • 함수, 프로시저, 트리거 등에 대한 정보

카탈로그의 특징

  • 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용 검색 가능
  • INSERT, DELETE, UPDATE문으로 카탈로그 갱신하는 것은 허용하지 않음
  • 카탈로그는 DBMS가 스스로 생성하고 유지

카탈로그/데이터 사전을 참조하기 위한 DBMS 내의 모듈 시스템

  • 데이터 정의어 번역기 (DDL Compiler)
    • DDL을 메타 데이터를 갖는 테이블로 변환하여 데이터 사전에 저장
  • 데이터 조작어 번역기 (DML Compiler)
    • DML문을 주 언어로 표현한 프로시저 호출로 변환하여 질의 처리기와 상호 통신
  • Data Directory
    • 데이터 사전에 수록된 데이터를 실제 접근하는 데 필요한 정보를 관리 유지하는 시스템
    • 시스템 카탈로그는 사용자와 시스템 모두 접근할 수 있지만 데이터 디렉터리는 시스템만 접근 가능
  • 질의 최적화기
    • 사용자 요구를 효율적인 형태로 변환하고 질의를 처리하는 좋은 전략 모색
  • 트랜잭션 처리기
    • 트랜잭션 문제를 해결하여 각 사용자가 데이터베이스 자원을 배타적으로 이용할 수 있도록 함

참고

 

시나공 정보처리기사 필기

2020년 정보처리기사 NCS기반 전면 개편!정보처리기사 시험은 NCS 학습 모듈 중 정보통신 분야의 ‘정보기술’ 분류에 포함된 ‘정보기술개발’과 ‘정보기술운영’에 속한 125개의 학습 모듈을

book.naver.com