1.1 개요

    • 데이터베이스는 서로 연관이 있는 데이터들의 모임.


    • 데이터베이스 정의

- 작은 세계(mini-world) 또는 논의 세계(UoD)라고 부르는 실세계의 일부분을 표현.

- 어떤 특정한 의미를 가지는 데이터의 모임.

- 특정한 목적을 위해서 설계, 구축, 운용.

- 데이터베이스에 저장되는 데이터에 대한 데이터 타입, 구조, 제약조건들을 명세하는 과정


    • 데이터

- 관찰, 수집, 측정, 실험등으로 통해 얻어진 객관적 사실이나 값.

- 알려진 사실로서 의미를 가지고 기록될 수 있다는 특성을 갖는다. (의미를 가지면서 기록될 수 있는 알려진 사실)


    • 메타데이터

- 타겟이 되는 데이터의 내용을 확인할 수 있게 정보를 제공해주는 것.

- 데이터베이스에 대한 정보


    • 정보

- 데이터들의 어떠한 무의미한 값


    • 운영 데이터

- 어떤 기관의 고유한 목적을 달성하기 위해 수행하는 활동을 수행하는데 사용되는 모든 데이터


    • 데이터베이스 관리 시스템(DBMS)

- 사용자가 데이터베이스를 생성하고 관리할 수 있도록 편리한 기능을 제공하는 프로그램들의 모임.

- Database의 생성과 관리를 담당하는 소프트웨어 패키지


    • 트랜잭션
- 작업의 단위.

- 데이터베이스에 데이터를 저장하거나 갱신하는 단위.

- 동시성 제어의 단위.


    • 동시성 제어

- 처리 도중 에러가 발생되면 그 전 작업들을 모두 취소가 된다.

- 데이터 무결성 및 일관성 보장


    • 보호
        1. 하드웨어 또는 소프트웨어 오동작(또는 붕괴)으로부터 시스템을 보호
        2. 보안 위협으로부터 보호

    • 유지보수

DBMS는 시간이 지남에 따라 변화하는 요구사항을 반영할 수 있도록 데이터베이스 시스템을 유지보수할 수 있어야 한다.


    • 데이터베이스 시스템(Database System)
- Database와 DBMS 및 이를 운영하기 위한 컴퓨터 시스템을 포함하여 데이터베이스를 생성, 운영 및 관리하기 위한 총체적 시스템을 데이터베이스 시스템이라 정의한다.
- Database와 그를 관리하는 소프트웨어(DBMS, 응용 프로그램) 모두를 칭하는 용어

    • 데이터베이스 접근방법
- 한번 정의된 데이터가 단일 저장소에 저장되어 관리되면서 여러 사용자에 의해 공유된다.


    • 작은 세계(mini-world)

- 데이터베이스 구축의 대상이 되는 실세계의 일부분






1.2 데이터베이스의 예

    • 대학교 정보 데이터베이스 예제 - 엔티티와 관계의 집합


1. 엔티티

- STUDENT

- COURSE

- (COURSE의) SECTION

- DEPARTMENT

- INSTRUCTOR


2. 엔티티 사이의 관계

- SECTION은 특정 COURSE에 속한다.

- STUDENT는 SECTION에 참가한다.

- COURSE는 선수 COURSE가 있다.

- INSTRUCTOR는 SECTION을 강의한다.

- COURSE는 DEPARTMENT에서 제공한다.

- STUDENT는 DEPARTMENT를 전공한다.



STUDENT(학생에 관련된 데이터)

Name

Student_number

Class

Major

Smith

17

1

CS

Brown

8

2

CS


COURSE(개설된 과목에 관한 데이터)

 Course_name

 Course_number

Credit_hours

Department

Intro to Computer Science

CS1310

4

CS

 Data Structures

CS3320

4

 CS

Discrete Mathematics

MATH2410

3

 MATH

Database

CS3380

3

 CS


SECTION(과목의 각 강좌에 관한 데이터)

Section_ identifier

Course_number

Semester

Year

Instructor

85

MATH2410

Fall

07

King

92

CS1310

Fall

07

Anderson

102

CS3320

Spring

08

Knuth

112

 MATH2410

Fall

08

Chang

119

CS1310

Fall

08

Anderson

135

CS3380

Fall

08

Stone


GRADE_REPORT(학생이 수강한 강좌의 성적)

 Student_number

Section_identifier

Grade

17

112

B

17

119

C

8

85

A

8

92

A

8

102

B

8

135

A


PREREQUISITE(각 과목의 선수과목)

 Course_number

Prerequisite_number

CS3380

CS3320

CS3380

MATH2410

CS3320

CS1310



    • 데이터베이스 설계과정
      1. 요구사항 명세 및 분석(requirements specification and analysis)
      2. 개념적 설계(conceptual design)
      3. 논리적 설계(logical design)
      4. 물리적 설계(physical design)



1.3 데이터베이스의 특징
    • 파일처리

- 사용자가 특정한 소프트웨어 응용을 위하여 필요한 파일들을 별도로 정의하고 구현.



1.3.1 데이터베이스 시스템의 자기 기술성(self-describing)

- 각 파일들의 구조, 각 데이터 항목의 타입과 저장 형식, 데이터에 대한 다양한 제약조건

- 카탈로그에 저장된 정보를 메타데이터라 부르며, 데이터베이스의 구조를 기술



1.3.2 프로그램과 데이터의 격리 및 데이터 추상화

    • 프로그램과 데이터의 분리

- 데이터베이스 내의 데이터 저장 구조가 변경되어도 데이터베이스 응용 프로그램은 영향을 받지 않는 (변경될 필요가 없는) 성질 -> 데이터 독립성을 높임.


    • 데이터 추상화

- 데이터 모델(data model)을 사용함으로써 저장 구조의 자세한 내용은 사용자로부터 은닉시키고 각자의 요구에 맞는 개념적인 뷰만 제공함.


    • 프로그램-데이터 독립성(program-data independence)

- 데이터 파일의 구조가 응용 프로그램과 분리되어 DBMS 카탈로그에 저장


    • 프로그램-연산 독립성(program-operation independence)

- 연산의 구현이 변경되어도 인터페이스가 유지되는 한 응용 프로그램은 변경할 필요가 없다.

- 사용자 응용 프로그램에서는 연산의 구현 내용을 몰라도 연산의 이름과 매개 변수들을 사용해서 연산을 호출함으로써 데이터에 대한 연산을 수행할 수 있다.



1.3.3 데이터에 대한 다중 뷰의 제공

- 사용자는 전체 데이터베이스 보다는 관심이 있는 데이터베이스의 일부를 뷰로 정의할 수 있음.



1.3.4 데이터의 공유와 다수 사용자 트랜잭션 처리

- 여러 사용자가 동일한 데이터베이스 공유 가능하도록 지원

- 동시에 사용하더라도 일관성을 보장하기 위한 동시성 제어 기능 제공




TRANSCRIPT

Student_name

Student_transcript

Course_number

Grade

Semester

Year

Section_id

 Smith

CS1310

C

Fall

08

119

MATH2410

B

Fall

08

112

Brown

MATH2410

A

Fall

07

85

CS1310

A

Fall

07

92

CS3320

B

Spring

08

102

CS3380

A

Fall

08

135

(a) 학생의 성적표 뷰


STUDENT - Student_name

SECTION - Course_number | Semester

GRADE_REPORT -  Grade | Section_identifier


COURSE_PREREQUISITES

Course_name 

Course_number

Prerequisites

Database

CS3380

 CS3320

MATH2410

Data Structures

CS3320

CS1310

(b) 과목의 선수과목 뷰


COURSE - Course_name | Course_number

PREREQUISITE - Course_number | Prerequisite_number




1.4 데이터베이스 사용자의 분류



1.4.1 데이터베이스 관리자(Database administrator, DBA)

- 데이터베이스 시스템의 관리를 책임진 사람



1.4.2 데이터베이스 설계자(Database Designer)

- 데이터베이스 설계를 책임진 사람



1.4.3 최종 사용자

- 데이터베이스에 대하여 질의, 갱신, 보고서 작성 등을 담당하는 사람


      • 캐주얼 사용자(casual end user)

- 비정기적인데이터베이스 사용자

- 정교한 질의어를 사용해 데이터를 요구하며, 대개 중상급의 관리자


      • 초보 사용자(naive 또는 parametric end user)

- 미리 일정한 용도로 작성된 프로그램을 사용하는 사용자(은행 점원이나 여행사 예약 담당원 등)


      • 전문 사용자(sophisticated end user)

- 엔지니어, 과학자, 비즈니스 분석가 등으로, DBMS의 고급 기능을 이용하여 복잡한 응용을 개발(구현)


      • 독자적인 사용자(stand-alone end user)

- 메뉴나 그래픽 사용자 인터페이스를 제공하는 편리한 패키지를 사용하여 개인 데이터베이스를 유지하는 사용자(세금 계산을 목적으로 개인의 다양한 재정 데이터를 저장하는 세금 패키지의 사용자)



1.4.4 시스템 분석가 및 응용 프로그래머(소프트웨어 공학자)

- 초보 사용자를 위하여 잘 정의된 기능의 응용을 분석/설계하고 구현하는 사람




1.5 무대 뒤의 사람들(Database 사용자)

    • DBMS 설계 및 구현자

- DBMS 소프트웨어 자체를 설계하고 구현하는 업무를 담당하는 사람들


    • 도구 개발자

- 데이터베이스를 사용하는 데에 필요한 도구들(데이터베이스 설계 및 구축 도구, 성능 도구, 인터페이스 등)을 설계하고 구현하는 사람들


    • 운영 및 유지 보수 요원

- 데이터베이스 시스템을 운영하는 데에 필요한 하드웨어 및 소프트웨어의 운영 및 유지 보수 담당 요원들



1.6 DBMS의 장점

- 데이터 중복이 있어선 안된다.



1.6.1 중복성의 제어

    • 데이터 중복성의 제어 및 중복의 최소화

- 데이터 일치성(consistency) 보장 및 메모리 낭비 방지



1.6.2 권한이 없는 접근의 통제

    • 보안 기능

- 권한없는 사용자의 데이터 접근을 통제



1.6.3 프로그램 객체를 위한 지속성 기억 공간 제공

    • 프로그램 객체와 데이터 구조에 대한 지속성 기억 공간 제공

- 데이터베이스에 영구적으로 보관/저장



1.6.5 백업과 회복 제공

- 시스템 고장시에도 데이터의 일관성을 보장



1.6.6 다수의 사용자 인터페이스 제공



1.6.7 데이터 간의 복잡한 관계의 표현



1.6.8 무결성 제약조건의 시행



1.6.9 규칙을 사용한 추론과 수행

- 연역적 규칙을 이용하여 데이터베이스 저장된 사실로부터 새로운 정보를 추론

- 자동으로 수행되는 능동 규칙의 정의 및 실행


    • 연역 데이터베이스 시스템(deductive database system)
    • 트리거(trigger)
    • 저장된 절차(stored procedure)



1.6.10 데이터베이스 사용에 함축된 또 다른 의미

    1. 표준 강화
    2. 응용 개발 시간의 단축
    3. 융통성
    4. 최신 정보의 가용성
    5. 규모의 경제성

    • 동시성 제어 기능 제공

- 여러 사용자가 동시에 DB를 접근하여 효율적으로 처리

- 동시 접근 시에도 데이터의 손실 방지, 일관성 보장


    • 데이터 독립성 제공

- 데이터베이스를 쉽게 사용할 수 있게 함, 응용 프로그램 개발이 용이

- 내부 저장 구조를 변경하기 용이, 프로그램 및 데이터베이스 유지보수가 용이



데이터 불일치와 제어된 중복: 예


GRADE_REPORT

 Student_number

Student_name

Section_identifier

Course_number

Grade

17

Smith

112

MATH2410

B

17

Smith

119

CS1310

C

8

Brown

85

MATH2410

A

8

Brown

92

CS1310

A

8

Brown

102

CS3320

B

8

Brown

135

CS3380

A

(a)


GRADE_REPORT

Student_number

Student_name

Section_identifier

Course_number

Grade

17

Brown

112

MATH2410

B

(b)


(a) 제어된 중복성

- 성능을 위하여 GRADE_REPORT 파일에 Student_name과 Course_number를 포함시키고, 두 속성의 값이 STUDENT에서의 두 속성값과 일치하도록 DBMS가 보장함


(b) 비제어된 중복성

1.2 데이터베이스의 예의 STUDENT 레코드와 불일치하는 GRADE_REPORT 레코드의 예(17번 학생은 Brown이 아니라 Smith임)




1.7 데이터베이스 사용의 효과

    • 표준화된 데이터 관리

- 조직 내 모든 부서에서 표준화된 문서 관리로 업무 효율성 증대


    • 응용 프로그램의 개발 시간 단축

- 응용 프로그램의 상당한 부분을 DBMS가 처리함


    • 데이터 구조 변경에 융통성 부여

- 데이터베이스 내의 자료 구조가 어떠한 이유로 변경되어도 사용자에 대한 영향은 거의 없음


    • 항상 최신의 정보를 제공

- 사용자 중에서 한 사람의 갱신으로 나머지 사람은 즉시 변경된 값을 접근가능


    • 규모의 경제성(economics of scale)

- 부서마다 다른 방식으로 자료를 관리하는 것보다 통합 DB로 관리하는 것이 전체적인 관점에서 저 비용임




1.8 Database를 사용하지 않아도 좋은 경우

    • DBMS를 사용하면 비용이 높아짐

- 높은 초기 투자 비용과 추가적인 하드웨어 필요함

- 데이터의 보안, 동시성 제어, 회복, 무결성 조건 등의 기능이 필요하지 않은 응용(오버헤드가 됨)


    • 언제 DBMS가 불필요한가?

- 데이터베이스와 응용이 단순하고 잘 정의되어 있으며, 변경될 가능성이 적을 경우

- DBMS 오버헤드로 인하여 엄격한 실시간 데이터 처리 요구사항을 만족시키기 힘든 경우

(최근들어 이러한 경우 실시간 DBMS 활용 가능)

- 다 사용자 데이터 접근이 필요하지 않은 경우




1.9 요약

    • 용어 정의

- Database, DBMS, Database System


    • 기존 화일 처리 시스템에 비하여 데이터베이스의 특징

- 카탈로그, 프로그램-데이터의 독립성, 프로그램-연산의 독립성, 데이터 추상화, 다중 뷰의 지원, 여러 트랜잭션 간의 데이터의 공유


    • 데이터베이스 사용자의 분류

- 데이터베이스 관리자, 설계자, 최종 사용자, 시스템 분석가와 응용 프로그래머, DBMS 설계자 및 개발자, 데이터베이스 도구의 개발자, 운영자와 유지보수 인력


    • DBMS의 기능들

- 중복성 제어 및 권한 검사

- 프로그램 객체와 데이터 구조에 대한 지속성 기억 공간 제공

- 규칙을 사용한 추론과 수행

- 다중 사용자 인터페이스 제공

- 데이터 사이의 복잡한 관련성 표현

- 무결성 제약조건 처리, 백업과 회복 기능


    • 기존 화일 처리 시스템에 비하여 데이터베이스의 장점

- 표준화 강화, 응용 개발 시간의 단축, 융통성 증가, 최신 정보를 즉시 이용, 규모의 경제성




'Database > Database System' 카테고리의 다른 글

Chapter 8  (0) 2014.05.31
Chapter 7  (0) 2014.05.19
Chapter 6  (0) 2014.04.13
Chapter 3  (0) 2014.04.11
Chapter 2  (0) 2014.04.11

+ Recent posts