[자격증][정처기] 3과목 데이터베이스 구축 - 1

6 minute read

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

70 데이터 베이스 설계

  • 데이터베이스 설계 순서
    1. 요구 조건 분석 : 요구 조건 명세서 작성
    2. 개념적 설계 : 개념 스키마, 트랜잭션 모델링, ER 모델
    3. 논리적 설계 : 논리 스키마 설계,트랜잭션 인터페이스 설계
      • 관계형 DB라면 테이블을 설계하는 단계
      • 결과적으로 데이터베이스 스키마가 도출된다.
    4. 물리적 설계 : 물리적 구조의 데이터로 변환
      • 저장구조 및 액세스 경로를 결정하는 단계
    5. 구현 : DDL로 데이터베이스 생성, 트랜잭션 생성

71 데이터 모델의 개념

  • 데이터 모델 : 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표혆나 개념적 모형
  • 정보 모델링 : 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하는 과정
  • 구성요소 : 개체, 속성, 관계
  • 표시할 요소 : 구조, 연산, 제약 조건 (S.O.C)

72 데이터 모델의 구성 요소 - 개체

  • 실세계에 독립적으로 존재하는 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성된다.
  • 파일의 레코드에 대응하는 것으로 어떤 정보를 제공하는 역할을 수행한다.

73 데이터 모델의 구성 요소 - 속성

  • 기본속성 : 업무 분석을 통해 정의한 속성
  • 설계속성 : 업무상에 존재하지 않고 설계 과정에서 도출해내는 속성
  • 파상속성 : 다른 속성으로부터 계산이나 변형 등의 영향을 받아 발생하는 속성.되도록 적은 수를 유지

74 데이터 모델의 구성요소 - 관계

  • 종속 관계 : 두 개체 사이의 주종관계. 식별 관계와 비식별 관계가 있다.
    1. 식별 관계(Identifying -) : 객체 A의 PK가 B의 FK이면서 PK이다.
    2. 비식별 관계 : 객체 A의 PK가 B의 FK이면서 NON-PK이다. B 개체의 존재 여부가 A 객체의 존재 여부에 의존적이지 않다.
  • 중복 관계 : 두 개체 사이에 2번 이상의 종속 관계가 발생
  • 재귀 관계 : 개체가 자기 자신과 관계
  • 배타 관계 : 배타 AND 관계와 배타 OR 관계가 있다.
    1. 배타 AND 관계 : 하위 개체들 중 속성이나 구분자 조건에 따라 한개의 개체만 선택 가능
    2. 배타 OR 관계 : 하나 이상의 개체를 선택할 수 있음

75 식별자(논리 데이터 모델링 단계. Key는 물리 데이터 모델린 단계에서 사용.)

  • 특징 : 유일성(각 인스턴스를 구분할 수 있음). 최소성. 불변성(지정되면 변하지 않음). 존재정(not-null)
  • 대표성 여부 : 주 식별자, 보조 식별자. PK와 Non-PK.
  • 스스로 생성 여부 : 내부 식별자, 외부 식별자 Non-FK와 FK.
  • 단일 속성 여부 : 단일 식별자, 복합 식별자(다중 식별자 아님!) PK가 1개 속성으로 구성, PK가 다수로 구성
  • 대체 여부 : 원조 식별자, 대리 식별자. 복합 식별자를 대신하는 하나의 식별자를 만들어서 단일 식별자로 사용하는 경우.
  • 후보 식별자 : PK는 아니지만 유일성을 만족하는 경우. 후보키의 논리 데이터 모델링 버전.

76 E-R 모델

  • 피터 첸 표기법 1 : N
    • 객체A - 1 - 관계 - N - 객체B
  • 정보 공학 표기법(IE) 크로우풋
  • 바커 표기법 #기본키 * 낫널 o널가능
  • 321페이지 7번 문제 보기
  • ER모델에서 관계는 속성들에 대한 관계 표현이 아닌, 개체들에 대한 관계 표현이다.

77 관계형 데이터 모델

  • 324페이지 3번 문제 보기
  • 관계 모델의 릴레이션으로 표현할 때, 1 : N의 경우에 N쪽에 1의 pk를 fk로 추가한다.
    • 학과 - (1,1) - 소속하다 - (1,N) - 대학
    • 학과(~학과코드~, 학과이름, 단과대학명(FK))
    • 대학(~단과대학명~, 학장이름)

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

  • 튜플의 수 = Cardinality = 기수 = 대응수
  • 속성의 수 = Degree = 차수
  • 특징
    1. 한 릴레이션에서 똑같은 튜플이 포함될 수 없으므로 각 튜플은 모두 상이하다.
    2. 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
    3. 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 한다.
    4. 속성을 구하는 값은 동일한 값이 있을 수 있다.
    5. 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장한다.

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

  • 후보키 : 유일성과 최소성 만족
  • 기본키 : 후보키 중에서 선정된 주키
  • 대체키 : 후보키 중에서 선정되지 않은 키
  • 슈퍼키 : 유일성은 만족, 최소성은 불만족
  • 외래키 : 다른 R의 기본키와 대응되는 참조 관계

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

  • 개체 무결성 : 기본키를 구성하는 어떤 속성도 Null값, 중복값을 가지지 않음
  • 도메인 무결정 : 속성 값이 정의된 도메인에 속한 값

    (X) 도메인 무결성 규칙은 주어진 튜플의 값이 그 튜플이 정의된 도메인에 속한 값이어야 한다는 것을 규정하는 것이다.

  • 참조 무결정 : 외래키 값은 Null이거나 참조 R의 기본키 값과 동일해야 한다.
  • 사용자 정의 무결성

81 관계대수 및 관계해석

  • 관계대수 : DB에서 원하는 정보와 그 정보를 검색하기 위한 유도 방법을 기술하는 절차적인 언어
    • 릴레이션을 처리하기 위해 연산자와 연산 규칙을 제공하는 언어
    • 피연산자가 릴레이션, 결과도 릴레이션
    • 순수 관계 연산자 : Select, Project, Join, Division
    • 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)
  • Select : Sigma_{조건}(R). 행, 가로, 튜플을 구하는 수평 연산
  • Project : Pi_{속성리스트}(R). 열, 세로, 속성을 구하는 수직 연산
  • Join : R 리본기호_{키속성r=키속성s}S. Cartesian Product 후 Select 수행.
  • Division : R[속성r 나누기 속성s]S. X ⊃ Y인 두 릴레이션 R(X),S(Y)에 대해서, R의 속성이 S의 속성값을 모두 가진 튜플을 구하고, 여기서 S가 가진 속성을 제외한 속성만 구한다.
  • 카티션 프로덕트 :
    1. 두 테이블의 차수는 더하고
    2. 두 테이블의 카디널리티는 곱한다.
    3. 두 릴레이션의 공통 튜블 수와 관계가 없다. 그저 두 카디널리티를 곱하는 연산이다.
  • 관계해석 : 관계 데이터연산을 표현하는 방법으로 원하는 정보를 정의할 때 계산 수식을 사용함.
    1. F.Codd가 수학의 Redicate Caculus(술어 해석)에 기반을 두고 DB를 위해 제안.
    2. 원하는 정보가 무엇이지만 정의하는 비절차적 특성
    3. 튜플 관계해석과 도메인 관계해석이 있다.
    4. RDB를 처리하는 기능과 능력은 관계대수와 같다.
    5. 관계 대수와 관계해석 각각으로 표현한 식은 서로 호환된다.
    6. 질의어로 표현한다.

82 정규화

  • Anomaly의 종류 : 삽입 이상(원하지 않는 값이 함께 삽입됨), 삭제 이상(원하지 않는 값이 함께 삭제됨), 갱신 이상(일부 튜플의 정보만 갱신되어 정보에 모순이 생김)
  • (X) 데이터의 종속으로 인해 발생하는 이상 현상에는 삭제이상, 삽입이상, 갱신이상이 있다.

    이상Anomaly는 데이터의 종속이 아닌 속성(필드) 간의 종속,데이터의(튜플)의 중복)으로 인해서 발생한다.

  • 튜플 중에서 일부 속성을 갱신하으로써 정보의 모순성이 발생하는 현상이 갱신 이상이다.
  • 정규화 과정 : 도부이결다조 -> 두부이걸다줘?
    1. 도메인이 원자값으로만 구성
    2. 부분적 함수 종속성 제거(key의 부분집합에 대해서는 FD가 성립하지 않음)
    3. 이행적 함수 종속성 제거(A->B & B->C일 때 A->C가 만족하지 않음)
    4. 결정자이면서 후보키가 아닌 것 제거(최소성을 만족하지 못하는 키를 제거)
    5. 다치 종속 성립
    6. 조인 종속성이 후보키만을 통해서 성립
  • 1NF : 모든 도메인이 원자값으로 구성
  • 2NF : 1NF + 모든 속성이 PK에 대해서 완전 함수적 종속을 만족
  • 3NF : 2NF + 기본 키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않는다.
    1. 모든 이행 종속을 제거하지 못하는 경우는 정보의 중복에 대한 문제가 존재한다.
  • BCNF : 모든 결정자가 후보키(유일성,최소성)인 정규형이다.
    1. 후보키가 여러개 존재하고 서로 중첩되는 경우에 적용한다.
    2. 강한 제3정규형
    3. 복합 속성을 허용한다.
    4. 키가 아닌 모든 속성은 각 키에 대해서 완전 종속
    5. 키가 아닌 모든 속성은 자신이 포함되지 않은 모든 키에 대해 완전 종속
    6. 모든 속성은 키가 아닌 속성에 대해서 완전 종속할 수 없다.

83 반정규환(Denormalization)

  • 비정규화가 아님
  • 성능 향상, 편의성을 위해 정규화된 데이터 모델을 통합,중복,분리하는 과정
  • 의도적으로 정규화 원칙을 위배하는 행위
  • 성능+단순화 v.s. 일관성+무결성의 상충
  • 테이블 통합 : 조인되는 경우 하나의 테이블로 합침(1:1, 1:N, 슈퍼/서브타입 가능. N:M 통합 불가능)
  • 수평 테이블 분할 : Record를 기준으로 테이블 분할
  • 수직 테이블 분할 : 속성을 기준으로 테이블 분할
  • 중복 테이블 추가
    1. 트리거 : DB 시스템에서 데이터의 입력,갱신,삭제 등의 이벤트가 발생할 때마다 자동적으로 수행되는 절차형 SQL
    2. 집계 테이블의 추가 : 집계 데이터를 위한 테이블을 생성. 각 원본 테이블에 트리거를 설정
    3. 진행 테이블의 추가 : 변경 전의 속성 값을 저장하기 위한 테이블 추가(이력 관리)
    4. 처리 범위를 줄이지 않고는 수행 속도를 개선할 수 없는 경우에 적용한다.
  • 중복 속성 추가 : join을 하지 않고 사용할 수 있도록 자주 사용하는 속성을 하나 더 추가
  • 기본키의 유일성 관리가 어려워지는 경우는 테이블 분할의 경우이다.

84 시스템 카탈로그

  • = 데이터 사전
  • 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 DB
  • 시스템 카탈로그에 저장된 정보를 메타 데이터라고 한다.
    1. 데이터베이스 객체 정보(테이블, 인덱스, 뷰)
    2. 사용자 정보(아이디,패스워드, 접근 권한)
    3. 테이블의 무결성 제약 조건 정보(기본키, 왜래키, NULL값 허용 여부)
    4. 함수, 프로시저, 트리거 등에 대한 정보
  • INSERT, DELETE, UPDATE 불가능. DBMS가 스스로 생성하고 유지한다.
  • 갱신 : 사용자가 SQL 문을 실행하면 자동으로 갱신된다
  • 카탈로그/데이터 사전을 참조하기 위한 DBMS 내의 모듈 시스템
    1. 데이터 정의어 번역기(DDL Compiler) : DDL메타 데이터 테이블로 변환하여 데이터 사전에 저장시킨다.
    2. 데이터 조작어 번역기(DML Complier) : 응용 프로그램에 삽입된 DML문을 주 언어로 표현한 프로시저 호출로 변환하여 질의 처리기와 상호 통신한다.
    3. Data Directory(데이터 사전이 아님)
      • 데이터 사전에 수록된 데이터에 접근하는데 필요한 정보를 관리 유지
      • 시스템 카탈로그는 사용자와 시스템 모두 접근 가능
      • 테이더 디렉터리는 시스템만 접근 가능
    4. 질의 최적화기 : 사용자의 요구를 효율적인 형태로 번환
    5. 트랜잭션 처리기 : 복수 사용자에게서 평행적으로 요청되는 트랜잭션 critical section 문제를 해결

Tags:

Categories:

Updated: