1 intro

40
1 데데데데데데 데데 DBMS 데데데 데데 3 데데 데데데 데데데데 DBMS 데데

Upload: hyun-woong-choi

Post on 12-Nov-2014

264 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 1 intro

1

데이터베이스 개념

DBMS데이터 모델

3 단계 스키마 아키텍춰DBMS 언어

Page 2: 1 intro

2

Has everyone noticed that all the letters of the word database are typed with the left hand? Now the layout of the QWERTY typewriter keyboard was designed, among other things, to facilitate the even use of both hands. It follows, therefore, that writing about databases is not only unnatural, but a lot harder than it appears.

- Anonymous

Page 3: 1 intro

교재 기본 교재

Database Management Systems, 3rd Ed., Ramakrishnan/Gehrke

번역본 : 데이터베이스 시스템 , 3rd Ed., 김수희 /김응모 … 역

참고 교재 Database System Concepts, 5th Ed.,

Silberschatz/Korth/Sudarshan 번역본 : 데이터베이스 시스템 , 5th Ed., 김형주 역 Fundamentals of Database Systems, 6th Ed.,

Elmasri/Navathe 번역본 : 데이터베이스 시스템 , 6th Ed., 황규영 , 홍의경… 역

Database Systems The Complete Book, Garcia-Molina/Ullman/Widom

Page 4: 1 intro

강의 평가 숙제 : 10% 프로그램 과제 : 30% 중간 /기말 고사 : 40%

중간 /기말 고사 , 필요 시 퀴즈 수업 태도 : 20%

출석 점수 없음 ( 단 , 수업일수의 2/3 출석 요구 )

지각 /잡담 /손전화 /수면 /수업 중 강의실 이탈 등은 모두 수업 태도에 반영

Page 5: 1 intro

5

데이터베이스란 무엇인가 ? (1)

데이터베이스 : 관련있는 데이터의 모음

데이터 : 기록될 수 있고 , 의미를 갖는 알려진 사실 관련된 데이터의 모음을 모두 데이터베이스로 볼

수 없다 . ( 예 , 책에 있는 단어들의 모음 )

실제로 “ 데이터베이스” 라는 단어를 사용할 때 보다 제한적인 의미를 갖는다 .

Page 6: 1 intro

6

데이터베이스란 무엇인가 ? (2)

“ 데이터베이스” 는 다음과 같은 성질을 갖는다 . 실세계의 일부분을 표현 데이터가 논리적으로 일관성을 가짐 데이터베이스는 특별한 목적으로 설계되고

생성된다 . 의도된 사용자 그룹과 이러한 사용자가 관심을 갖는 애플리케이션을 갖는다 .

지속성 (persistence) 을 가짐

Page 7: 1 intro

7

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

DBMS (Database Management System) 데이터베이스를 저장하고 , 관리하고 ,

액세스를 편리하게 해주는 시스템 소프트웨어

데이터베이스시스템 (Database System) DBMS 에 database 가 포함된 형태

Page 8: 1 intro

8

데이터베이스 시스템의 응용 (1)

은행 : 고객 정보 , 계좌 , 대출 정보 , 트랜잭션

항공 : 예약 및 스케줄 정보 대학 : 학생 정보 , 수강 신청 , 성적 신용 카드 트랜잭션 : 신용 카드로 구매 ,

매월 카드 사용 내역 관리 통신 : 통화 내역 , 매월 사용 내용 생성 ,

전화 카드 잔고 관리 , 통신 네트워크에 대한 정보 관리

Page 9: 1 intro

9

데이터베이스 시스템의 응용 (2)

재무 : 주식 , 채권과 같은 재정 발행권의 유지 , 판매 , 구매 등에 관한 정보 관리

판매 : 고객 , 상품 , 구매 정보 관리 제품 생산 : 상품 판매량에 대한 정보 ,

상품 판매량 , 재고 , 주문에 대한 관리 인적 자원 : 고용인에 대한 정보 , 급료 ,

세금 , 급료 명세서 생성

Page 10: 1 intro

10

데이터 관리를 위한 운영체제의 지원

데이터를 RAM 에 저장 모든 프로그래밍 언어에서 사용 RAM 은 빠르며 임의 접근 용량과 휘발성이 문제

모든 OS 는 파일 시스템을 지원 마그네틱 디스크에 있는 파일을 관리 파일에 대한 open, write, read, seek, close

연산 제공 파일에 접근 권한 제공

Page 11: 1 intro

11

파일 시스템의 문제점 학교 데이터베이스의 예

학생과

교무과

학적과

응용 프로그램

응용 프로그램

응용 프로그램

데이터 액세스

데이터 액세스

데이터 액세스

학생 파일

학생 파일성적 파일

과목 파일

학번 , 이름 , 주소 , 전화번호 , 성별 , 학과

학번 , 이름 , 과목 , 학점

과목명 , 강사명 , 개설년도 , 강의실

학번 , 이름 , 본적 , 학과

Page 12: 1 intro

12

파일 시스템 대신 DBMS 사용

DBMS

응용 프로그램데이터 액세스

응용 프로그램데이터 액세스

응용 프로그램데이터 액세스

학생 파일

과목 파일

성적 파일

학생과

학적과

교무과

Page 13: 1 intro

13

DBMS 의 필요성 (1)

조직의 데이터를 한 군데 저장 데이터를 통합시킴 데이터를 공유 사용의 편리

중복성을 제거 일관성 있는 데이터 값을 제공 일관성 있는 데이터 포맷을 제공 액세스의 용이성

Page 14: 1 intro

14

DBMS 의 필요성 (2)

동시에 다수 사용자 이용 가능 트랜잭션 처리 /동시성 제어

서로 다른 사용자에게 서로 다른 뷰 제공 데이터의 일부분 제공

복잡하고 다양한 질의를 간편하게 표현 Ad-hoc query

Page 15: 1 intro

15

DBMS 의 필요성 (3)

프로그램 - 데이터 독립성 데이터 추상화

DBMS 는 사용자에게 데이터가 어떻게 저장되었는가에 대한 상세한 정보를 제공하지 않고 데이터를 개념적으로 표현할 수 있는 방법을 제공 => 이러한 데이터 추상화는 “ 데이터 모델” 로 부름

Page 16: 1 intro

16

DBMS 의 필요성 (4)

보안 기능 제공 데이터와 애플리케이션에 고유한 무결성을

제공 회복 기능 제공

갱신중에 일어나는 실패를 처리

Page 17: 1 intro

17

DBMS 사용이 필요치 않은 경우

데이터베이스와 애플리케이션이 간단하고 , 정의가 잘되어 있고 , 변경 가능성이 없는 경우

실시간 제약 사항이 엄격할 경우 => 실시간 데이터베이스

데이터에 대한 다수 사용자의 액세스가 요구되지 않는 경우

Page 18: 1 intro

18

데이터베이스 시스템

데이터베이스 시스템

애플리케이션 프로그램 / 질의

질의 / 프로그램을 처리하는 소프트웨어

저장된 데이터를 액세스하는 소프트웨어

DBMS

데이터베이스메타데이터

Page 19: 1 intro

19

데이터 모델

데이터 모델 데이터베이스의 구조를 기술하는 개념들의 집합

• 데이터 타입 , 관계 , 제약 조건 데이터베이스 상에 수행되는 연산들의 집합

데이터베이스 구조를 기술하는 개념들의 종류에 따라 데이터 모델을 분류 상위 레벨 또는 개념적 데이터 모델 표현 또는 구현 데이터 모델 하위 레벨 또는 물리적 데이터 모델

Page 20: 1 intro

20

상위 모델 ( 개념적 데이터 모델 )

사용자가 데이터를 인식하는 방식에 가까운 개념을 제공

엔티티 (entity), 애트리뷰트 (attribute), 관계(relationship) 와 같은 개념을 사용

사용되는 데이터 모델 개체 - 관계 데이터 모델 (Entity-Relationship Data

Model) Semantic Data Model Conceptual Object Modeling using UML (Universal

Modeling Language)

Page 21: 1 intro

21

표현 데이터모델 ( 구현 데이터모델 )

상위 레벨과 하위 레벨 사이에 존재 일반 사용자가 이해할 수 있는 개념을

제공하면서 컴퓨터에서 데이터가 조직화될 수 있는 방식을 제공

가장 많이 사용되는 모델 ( 상용 DBMS 에서 사용 )

• 관계 데이터 모델• 네트워크 데이터 모델• 계층 데이터 모델• 객체 지향 데이터 모델

Page 22: 1 intro

22

하위 레벨 ( 물리적 데이터모델 )

데이터가 컴퓨터에 어떻게 저장되는지에 대한 세부 사항을 기술 레코드 포맷 레코드 순서 액세스 경로 : 특정 데이터베이스 레코드를 효율적으로 탐색하기 위한 구조

Page 23: 1 intro

23

스키마와 인스턴스 (1)

데이터 모델에서 데이터베이스에 대한 기술(description) 과 데이터베이스 자체를 구별하는 것이 중요

데이터베이스에 대한 기술은 “ 데이터베이스 스키마” 라 함

스키마 다이어그램 : 데이터베이스 스키마를 도식화한 것

스키마 다이어그램은 스키마의 일면만을 나타냄 ( 예로 데이터 타입이 명시되지 않음 )

스키마는 자주 변경되지 않음

Page 24: 1 intro

24

스키마와 인스턴스 (2)

데이터베이스에 있는 실제 데이터는 자주 변경될 수 있음

어떤 특정 시점에 데이터베이스에 있는 데이터는 “ 데이터베이스 상태 ( 또는 인스턴스의 집합 )” 라 함

데이터베이스 스키마와 데이터베이스 상태 사이의 구별이 중요

새로운 데이터베이스를 정의할 때 DBMS 에 데이터베이스 스키마를 명시하지만 이 때 해당 데이터베이스 상태는 비어 있음 (empty state)

Page 25: 1 intro

25

데이터베이스 스키마의 예 타입 사용

STUDENT(StudentNumber: string, Name: string, Age: integer, Dept: string)DEPARTMENT(Name: String, Location: String, Chairman: String)

타입 사용하지 않음STUDENT(StudentNumber, Name, Age, Dept)DEPARTMENT(Name, Location, Chairman)

StudentNumber Name Age Dept

STUDENT

Name Location Chairman

DEPARTMENT

스키마 다이어그램

Page 26: 1 intro

26

인스턴스의 예

StudentNumber

Name

Age Dept

2234 김수철 20 기계2345 홍영수 19 환경2789 이영희 20 컴퓨터

STUDENT

Name Location Chairman

토목 공 1-102 김성환환경 공 4-203 이수영기계 공 6-202 권진구컴퓨터 공 6-403 정진범

DEPARTMENT

스키마

스키마

인스턴스

인스턴스

Page 27: 1 intro

27

3 단계 - 스키마 아키텍춰 (1)

DBMS 의 데이터를 3 단계로 추상화하여 표현

사용자 애플리케이션과 물리적 데이터베이스를 분리하기 위한 목적

외부 레벨

외부 /개념 사상

개념 레벨

개념 /내부 사상

내부 레벨

외부 스키마 1

개념 스키마

외부 스키마 2

물리적 스키마

Page 28: 1 intro

28

3 단계 - 스키마 아키텍춰 (2) 내부 레벨 ( 물리적 스키마 )

데이터베이스의 물리적 저장 구조를 기술 개념 레벨 ( 개념 스키마 )

사용자를 위한 전체 데이터베이스 구조를 기술 물리적 저장 구조의 세부 사항을 숨김 엔티티 , 데이터 타입 , 관계 등을 기술하는데 집중 상위 레벨의 데이터 모델 또는 구현 데이터 모델을 사용

외부 레벨 ( 외부 스키마 , 뷰 ) 외부 스키마 또는 사용자 뷰 특정 사용자 그룹의 관심을 갖는 부분을 나타내고 나머지는

은폐함 상위 레벨의 데이터 모델 또는 구현 데이터 모델을 사용

Page 29: 1 intro

Example: University Database

Conceptual schema: Students(sid: string, name: string, login: string,

age: integer, gpa:real) Courses(cid: string, cname:string, credits:integer) Enrolled(sid:string, cid:string, grade:string)

Physical schema: Relations stored as unordered files. Index on first column of Students.

External Schema (View): Course_info(cid:string,enrollment:integer)

Page 30: 1 intro

30

3 단계 스키마 아키텍춰의 필요성 데이터 독립성

응용 프로그램을 데이터의 구조와 저장 방식의 변경으로부터 격리 – “ 실제 응용 프로그램의 변경은 자주 일어나지 않는다 .” 에 기초

데이터베이스 시스템의 한 레벨의 스키마를 다른 레벨의 스키마를 변경시키지 않고 변경시킬 수 있는 능력을 제공

논리적 데이터 독립성 응용 프로그램을 데이터의 논리적 구조 변경으로부터 보호 외부 레벨과 개념 레벨 사이의 독립성 ( 외부 레벨이나 응용

프로그램을 변경시키지 않고 개념 스키마를 변경시킬 수 있는 능력 – 외부 /개념 사상에 의하여 달성 )

물리적 데이터 독립성 데이터의 논리적 구조를 물리적 저장구조의 변경으로부터 보호 개념 레벨과 내부 레벨 사이의 데이터 독립성 ( 개념 스키마를 변경시키지 않으면서 물리적 스키마를 변경시킬 수 있는 능력 – 개념 /내부 사상에 의하여 달성 )

Page 31: 1 intro

31

DBMS 언어

데이터 정의어 (Data Definition Language: DDL) 데이터베이스 스키마를 정의

데이터 조작어 (Data Manipulation Language: DML) 데이터를 검색 , 삽입 , 삭제 , 수정하기 위한 언어 DML 은 범용 프로그래밍 언어 (host 언어 ) 에 삽입되어 사용

Page 32: 1 intro

32

동시성 제어 (Concurrency Control)

DBMS 의 성능 향상을 위해 사용자 프로그램을 동시 수행 디스크 액세스는 빈번 , 상당히 저속 CPU 는 다수 프로그램을 동시에 수행

서로 다른 프로그램의 작업이 교차할 때 문제 발생

DBMS 는 이런 문제가 발생하지 않도록 보장 사용자는 혼자 사용하는 것처럼 보이게 함

(“Isolation”)

Page 33: 1 intro

33

Example: Bad Interaction

You and your spouse each take $100,000 from different ATM’s at about the same time. The DBMS better make sure one account

deduction doesn’t get lost.

ATM1 ATM2read(balance);

read(balance);write(balance-100,000);

write(balance-100,000);

Page 34: 1 intro

34

트랜잭션 관리 (Transaction Management)

트랜잭션 : 하나의 작업 단위로 이루어지는 연속적인 데이터베이스 동작 (reads/writes)

ACID 성질 Atomicity ( 원자성 ): all or nothing, 트랜잭션이 완전히

수행되든가 아니면 전혀 수행되지 않는 성질 , 부분적인 수행은 없음

Consistency ( 일관성 ): 데이터베이스 제약 조건이 유지됨 Isolation ( 고립성 ): 한 번에 하나의 트랙잭션이 수행되는 것처럼 보임

Durability ( 지속성 ): 완료된 트랜잭션의 결과가 시스템 장애에도 상실되지 않음

Page 35: 1 intro

35

트랜잭션을 동시에 실행하기 위한 스케줄링

DBMS 는 {T1,…,Tn} 의 실행이 직렬 (serial) 실행 T1’…Tn’ 와 동등하다는 것을 보장 2PL(Two Phase Locking) protocol

Idea: 만일 Ti 의 동작 ( 예 : X 를 write) 이 Tj ( 예 : X 를 read) 에 영향을 준다면 Ti 는 X 에 먼저 lock 를 획득한 후 Tj 는 Ti 가 완료될 때까지 wait 이런 방법으로 트랜잭션을 순서화시킴

Page 36: 1 intro

36

미완료 트랜잭션과 시스템 장애

Idea: 트랜잭션이 수행하는 동안 DBMS에 의해서 실행되는 모든 동작에 대한 log (history) 를 저장 데이터베이스에 변경이 이루어지기 전에

해당 로그를 안전한 장소에 저장 (WAL: Write-Ahead Log)

시스템 장애가 발생하면 , 부분적으로 실행된 트랜잭션은 log 를 사용하여 undo.

완료된 트랜잭션은 log 를 사용하여 redo.

Page 37: 1 intro

37

DBMS 사용자 (1)

데이터베이스 구현자 (Database implementors) – Oracle, IBM, MS,…

최종 사용자 (End users) – DBMS 에 데이터를 저장 , 사용

데이터베이스 응용 프로그래머 (Database application programmers): DBMS vendor 가 제공하는 호스트 언어 , 데이터베이스

언어 , 소프트웨어 툴 (report writer, spreadsheet, statistical package, …) 을 사용하여 전문가가 아닌 일반 사용자가 데이터를 액세스하기 쉽도록 패키지 개발

DBMS 와 연동한 웹 서비스 제공

Page 38: 1 intro

38

DBMS 사용자 (2)

데이터베이스 관리자 (DBA: Database administrators) 논리적 /물리적 스키마 설계 보안과 사용 권한 부여 데이터 손상으로부터 회복 , 데이터의

가용성을 높임 데이터베이스 튜닝

Page 39: 1 intro

39

DBMS Architecture

Parser

Optimizer

Plan Executor

Operator Evaluator

File and Access Methods

Buffer Manager

Disk Space Manager

Transaction Manager

LockManager

RecoveryManager

QueryEvaluationEngine

DBMS

ConcurrencyControl

SQL Commands

Database

Page 40: 1 intro

40

질의 처리 과정

DBMS의 구성 요소들. 점선은 저장 데이타 관리자의 제어를 통해 접근하는 것을 나타낸다.

DDL 문장 특권 명령

데이타베이스관리자

캐주얼사용자응용

프로그래머

응용프로그램대화식 질의

호스트 언어컴파일러

초보 사용자

저장 데이타베이스

저장 데이타관리자

동시성 제어/백업/회복 서브시스템

컴파일된(기작성)트랜잭션

프리컴파일러

DML 문장

DML컴파일러

질의컴파일러

런타임데이타베이스

처리기

시스템카탈로그/

데이타사전

DDL컴파일러

실행

실행

A

B

C

D

E

실행

(Parametric users)