View

Section 70. 데이터베이스 설계

1. 데이터베이스 설계란?

사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 특정 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것

 

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

무결성/ 일관성/ 회복성/ 보안성/ 효율성/ 확장성

 

3. 데이터베이스 설계 순서

  1. 요구 조건 분석 : 요구 조건 명세서 작성
  2. 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R모델
  3. 논리적 설계 : 목표 DBMS에 맞는 논리 스키마 설계(종속), 트랙잭션 인터페이스 설계
  4. 물리적 설계 : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환
  5. 구현 : 목표 DBMS의 DDL(데이터 정의어)로 데이터베이스 생성, 트랜잭션 작성

 

Section 71. 데이터 모델의 개념

1. 데이터 모델이란?

현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모델

2. 데이터 모델의 구성 요소

  • 개체(Entity) : 데이터베이스에 표현하려는 것
  • 속성(Attribute) : 데이터의 가장 작은 논리적 단위로 개체를 묘사하는데 사용될 수 있는 특성
  • 관계(Relationship) : 개체 간의 관계 또는 속성 간의 논리적인 연결

3. 데이터 모델에 표시할 요소

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

4. 데이터 모델 종류

  • 개념적 데이터 모델 : 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정 
  • 논리적 데이터 모델 : 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정
  • 물리적 데이터 모델 : 실제 컴퓨터에 데이터가 저장되는 방법을 정의하는 물리 데이터베이스 설계 과정

 

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

1. 개체의 특징

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

2. 개체 선정 방법

  • DFD(자료 흐름도)를 통해 업무 분석을 수행했을 경우 자료 흐름도의 자료 저장소를 이용한다.
  • BPR(업무 프로세스 재설계)에 의해 업무를 재정의한 경우 관련 개체를 찾는다.

3. 개체명 지정 방법

  • 약어 사용은 되도록 제한한다.
  • 가능하면 단수 명사를 사용한다.

 

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

1. 속성의 특징

  • 개체를 구성하는 항목
  • 개체의 특성을 기술
  • 속성의 수를 디그리 또는 차수라고 한다.

2. 속성의 종류

  • 속성의 특성에 따른 분류 : 기본 속성, 설계 속성, 파생 속성
  • 개체 구성 방식에 따른 분류 : 기본키 속성, 외래키 속성, 일반 속성

3. 속성명 지정 원칙

  • 서술형으로 지정하지 않는다.
  • 가급적이면 약어 사용은 제한한다.
  • 개체명은 속성명으로 사용할 수 없다.
  • 개체에서 유일하게 식별 가능하도록 지정한다.

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

1. 관계의 형태

  • 일 대 일 (1:1)
  • 일 대 다 (1:N)
  • 다 대 다 (N:M)

2. 관계의 종류

  • 종속 관계 (Dependent Relationship) : 두 개체 사이의 주종 관계를 표현한 것 (식별/비식별)
  • 중복 관계 (Redundant Relationship) : 두 개체 사이에 2번 이상의 종속 관계가 발생하는 관계
  • 재귀 관계 (Recursive Relationship) : 개체가 자기 자신과 관계를 갖는 것
  • 배타 관계 (Exclusive Relationship) : 개체가 둘 이상의 다른 개체의 합집합 또는 교집합과 관계를 갖는 것

 

Section 75. 식별자(Identifier)

1. 식별자란

하나의 개체 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 구분자로,

모든 개체는 한개 이상의 식별자를 반드시 가져야 한다.

2. 식별자의 분류

분류 식별자
대표성 여부 주 식별자, 보조 식별자
스스로 생성 여부 내부 식별자, 외부 식별자
단일 속성 여부 단일 식별자, 복합 식별자
대체 여부 원조 식별자, 대리 식별자

3. 주 식별자의 4가지 특성

  • 유일성 : 주 식별자에 의해 개체 내에 모든 인스턴스들이 유일하게 구분되어야 한다.
  • 최소성 : 주 식별자를 구성하는 속성의 수는 유일성을 만족하는 최소 수가 되어야 한다.
  • 불변성 : 주 식별자가 한번 특정 개체에 지정되면 그 식별자는 변하지 않아야 한다.
  • 존재성 : 주 식별자가 지정되면 식별자 속성에 반드시 데이터 값이 존재해야 한다.

 

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

1. E-R(Entity-Relationship) 모델이란?

  • 현실 세계에 존재하는 객체들과 그들간의 관계를 사람이 이해하기 쉽게 표현한 모델
  • P.Chen이 제안함

2. E-R 다이어그램 구성요소

 

Section 77. 관계형 데이터 모델

  • 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블로 사용하고 개체 집합들 사이의 관계를 공통 속성으로 연결하는 모델
  • 기본키와 이를 참조하는 외래키로 데이터 간의 관계를 표현한다.

 

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

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

  1. 튜플
    • 릴레이션을 구성하는 각각의 행
    • 속성의 모임으로 구성
    • 튜플의 수 = 카디널리티(Cardinality) = 기수 = 대응수
  2. 속성(애트리뷰트)
    • 개체의 특성을 기술
    • 속성의 수 = 디그리(Degree) = 차수
  3. 도메인 
    • 하나의 애트리뷰트가 취할 수 있는 원자값들의 집합

2. 릴레이션의 특징

  • 모든 튜플은 서로 다른 값을 갖는다.
  • 각 속성은 릴레이션 내에서 유일한 이름을 가지며 속성의 순서는 의미가 없다.
  • 하나의 릴레이션에서 튜플사이에는 순서가 없다.
  • 속성 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만 저장한다.

 

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

데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 속성

 

1. 후보키(Candidate Key) : 개체들을 고유하게 식별할 수 있는 속성

  • 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재한다.
  • 후보키는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 한다.

2. 기본키(Primary Key) : 후보키 중에서 특별히 선정된 주키(Main Key)

  • .중복된 값을 가질 수 없다.
  • 후보키의 성질을 갖는다. (유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키)
  • 기본키는 NULL 값을 가질 수 없다.

3. 대체키(Alternate Key) : 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키

 

4. 슈퍼키(Super Key) : 한 개 이상의 속성들의 집합으로 구성된 키

  • 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값을 나타나지 않는다.
  • 유일성은 만족시키지만, 최소성은 만족시키지 못한다.

5. 외래키(Foreign Key) : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

  • 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 중요한 도구이다.

 

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

데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미

1. 개체 무결성 : 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정

2. 도메인 무결성 : 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정

3. 참조 무결성 : 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정

  • 외래키값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야한다.

4. 사용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약조건에 만족해야 한다는 규정

5. 데이터 무결성 강화 

  • 애플리케이션 : 데이터 생성,수정,삭제 시 무결성 조건을 검증하는 코드를 데이터를 조작하는 프로그램 내에 추가한다.
  • 데이터베이스 트리거 : 트리거 이벤트에 무결성 조건을 실행하는 절차형 SQL을 추가한다.
  • 제약 조건 : 데이터베이스에 제약 조건을 설정하여 무결성을 유지한다.

 

Section 82. 정규화

1. 정규화란?

  • 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
  • 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정
  • 데이터의 중복성을 최소화하고 일관성 등을 보장하여 데이터베이스의 품질을 보장하고 성능의 향상을 위해 수행

2. 이상(Anomaly)이란?

정규화를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 

릴레이션 조작 시 예기치 못한 곤란한 현상이 발생

  1. 삽입 이상
  2. 삭제 이상
  3. 갱신 이상

3. 정규화 과정 - 두부이걸다줘? (도부이결다조)

비정규 릴레이션
                       ↓ 메인이 원자값   
1NF
                               ↓ 분적 함수 종속 제거
2NF
                               ↓ 행적 함수 종속 제거
3NF
                                                   ↓ 정자이면서 후보키가 아닌 것 제거
BCNF
             ↓ 치 종속
4NF
                        ↓ 인 종속성 이용
5NF

* Y를 X에 종속 : X→Y

* 이행적 종속 : A→B 이고 B→C일 때 A→C

 

 

Section 83. 반정규화

1. 반정규화란?

시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정

2. 반정규화 방법

  • 테이블 통합 : 1:1, 1:N 관계 테이블 통합, 슈퍼/서브타입 테이블 통합
  • 테이블 분할 : 수평 분할, 수직 분할
  • 중복 테이블 추가 : 진행.집계,특정 부분만을 포함하는 테이블의 추가
  • 중복 속성 추가 : 기본키의 형태가 적절하지 않거나 여러 개의 속성으로 구성된 경우

 

Section 84. 시스템 카탈로그

1. 시스템 카탈로그(데이터 사전)이란?

  • 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
  • 데이터베이스에 포함되는 모든 데이터 객체들에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템

2. 시스템 카탈로그 저장 정보

시스템 카탈로그에 저장된 정보를 메타 데이터라고 한다.

* 메타 데이터의 유형

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

3. 카탈로그의 특징

  • 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.
  • 데이터베이스 시스템에 따라 상이한 구조를 갖는다.
  • 카탈로그는 DBMS가 스스로 생성하고 유지한다.
  • 카탈로그의 갱신 : 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시수템이 자동으로 갱신한다.

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

  • 데이터 정의어 번역기(DDL Compiler)
  • 데이터 조작어 번역기(DML Compiler)
  • 데이터 디렉터리(Data Directory) : 시스템 카탈로그는 사용자와 시스템 모두 접근할 수 있지만 데이터 디렉터리는 시스템만 접근
  • 질의 최적화기
  • 트랜잭션 처리기

 

728x90
Share Link
reply
«   2024/10   »
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