데이터베이스관리시스템의 활용

Download Report

Transcript 데이터베이스관리시스템의 활용

Database 활용을 위한 기초 이론
1.
2.
3.
Database의 개요
Data Modeling
Database programming의 원리

강의제목
◦ Database 개요

목표
◦ Database, Database Management System (DBMS)의 정의와 용도를 이해하고,
database programming을 위한 기초적 이론을 학습

목차
◦
◦
◦
◦
◦
Database 및 DBMS의 정의
DBMS의 구조
File System과의 비교
DBMS의 기능
관계형 (Relational) DBMS




데이터 (data)
◦ 정형화되고 기록할 만한 가치가 있다고 판단되는 어떤 현상이나 사건, 아이디어에 대한 묘사
데이터베이스 (database)
◦ 조직이나 개인이 사용하는 조작 가능한, 저장된 데이터의 모임.
◦ An integrated collection of persistent data representing the information of interest for various
programs that compose the computerized information system of an organization
◦ data are separated from the programs that use them
Database Management System (DBMS, 데이터베이스관리시스템)
◦ 데이터베이스를 관리하고 다루는데 필요한 여러 기능을 제공하는 프로그램의 집합체

Operating System의 기능과 유사

예) Oracle, Informix, Sybase, UniSQL, Illustra, FoxPro, dBase IV 등
Information System (정보시스템)
◦ 조직이나 개인이 필요로 하는 결과를 제공하는 시스템으로서 데이터베이스와 DBMS, 이들을 이용하
는 응용프로그램 및 지원소프트웨어(support software) 등으로 이루어진 SW system.
◦
 도서관 시스템, 항공예약 시스템, 은행시스템
일반적으로 어떤 조직의 「데이터베이스 시스템」이라 하면 이 정보시스템을 의미

DB + DBMS + 응용프로그램 + 지원SW
SQL언어를 사
용한 질의
DBMS
사용자
DB
관리자
naive
users
application
programmers
casual
users
database
administrator
application
programs
system
calls
query
database
scheme
data manipulation
language
pre-compiler
query
processor
응용 프로그램
DBMS
application
programs
object
data definition
language
compiler
database
manager
file
manager
Database
Disk storage
실제 데이터
테이블을 포함
Database의 구조, 통
계적 정보 등을 포함

1234 홍길동 95 86 75
2357 김철수 65 97 77
‥‥‥‥‥‥‥‥‥
[EOB]
File System
예: 주소록 화일
◦ COBOL,C등의 프로그램에서 데이터 file이용
◦ Data redundancy and inconsistency 문제 발생
◦ 프로그램 이외의 방법으로도 데이터 조작가능 : 아래한글, vi, emacs 등의 에디터
이용
◦ 각 프로그램마다 그 고유의 데이터 format: 공유하기 어려움
◦ 만약 share했을 경우에 concurrency문제
◦ System failure시 recovery문제: atomicity problem
◦ 보안 문제

DBMS의 필요성
시작된 DB연산은 반드시 종료 되어함. 중도
에 문제가 생길 시 undo 처리
◦ File System의 한계를 극복
 data sharing 곤란, concurrency 문제
 recovery 문제
 security 문제
◦
◦
◦
◦
실세계를 표현하는 틀인 data model을 제공
효율적인 자원 (메모리 및 디스크) 관리
복잡한 질의를 통한 데이터 검색
역사 : 공통적인 데이터 관리 기능을 DBMS로 수용

DBMS의 기능
◦ Data model 제공

사용자가 저장 관리하고자 하는 데이터의
구조를 정의할 수 있는 기반 마련 (Entity들
과 그들 사이의 관계표현방식 제공

언제 DBMS를 사용해야 하나 ?
◦ 여러 사람이 사용
◦ OLTP 처리시
◦ mission critical application 개발



◦ Data sharing 제공
◦ Query Language (질의언어) 제공

사용자가 데이터 조작을 쉽게 하기 위한 언
어 제공
◦ Data integrity (데이터 무결성)을 유지
◦ 데이터의 복구 시스템
◦ 다중 사용자를 지원

동일한 데이터를 접근할 시 Locking 메커니
즘 작동
◦ 효율적인 자원 (disk, memory) 관리
◦ 보안성 제공

Permission을 가진 사용자만이 데이터에 접
근
◦ Database를 다루는데 필요한 “공통”기능
들을 제공
◦
은행 구좌 관리
항공사의 예약 관리
학교 수강신청/성적 관리
특수한 데이터 타입을 가지는 데이터의 효율
적인 검색


문헌정보 검색 시스템
지리정보 시스템
◦ 대용량의 데이터를 효율적으로 관리
◦ Application 개발의 용이성
내부구조가 복잡한 객체데이터 타입으로서,
공간정보, 문서정보 등이며, 보통 계층적 포
함관계를 가짐

무결성 (Integrity)
◦ 결함이 없는 데이터가 저장되도록
여러 형태의 내부 규약을 정의할 수
있음
 Domain Integrity
 Referential Integrity

다중사용자지원
◦ 여러 사용자가 동시에 하나의 데이터에
대한 연산을 수행하도록 지원

다중 사용자로 인한 문제점
◦ 예) 은행에서 A와 B란 사람이 100만원이
입금된 C구좌에서 50만원 씩 동시에 출
금할 때
◦ 예)
A
 학생 테이블에서 갖은 학번이 두 번
이상 나타나면 안됨
 학생의 학번은 97이나 98로 시작
Read C
C = C-50
Write C
 교수번호는 3자리의 숫자만이 허용
B
Read C
C = C-50
Write C
 지도 테이블의 모든 학번은 학생테이
블의 학번에 존재


원래는 0원, 그러나 50만원이 남아 있음.
동시에 수행된다 하더라도 A와 B가 순
차적으로 수행한 결과와 같음을 보장해
야 함 => Serializability

Transaction (트랜잭션)
◦ a collection of operations that
performs a single logical function
in a database application
◦ programmer is responsible for
writing “correct” transactions

DBMS는 atomicity와 durability를 보
장
◦ atomicity : “all-or-nothing”
 하나의 transaction이 시작되면 반드
시 완료(commit)되어야 함.
◦ durability : “The effect of DB
operations should be persistent.”
 DB연산의 결과는 반드시 DB에 저장
되어야 함

보안성
◦ 허용되지 않은 사용자로부터 데이
터의 검색이나 삽입 삭제를 방지
◦ 예)
 학생들은 학생 테이블 만을 검색할 수
있으며 모든 테이블에 대한 수정이 불
가능
 교수는 모든 테이블에 대한 검색이 가
능하나 수정이 불가능
 전산 직원은 모든 테이블에 대한 검색
과 수정이 가능
◦ 은행에서 A계좌에서 B계좌로
100만원을 이체해라

복사본 DB 생성 방법
◦ 두 개 이상의 디스크에 자료를 중복 저장
 A = A - 100
Database
 B = B + 100
 이때 A계좌에서 100만원을 뺀 후
B 계좌에 넣기 직전 시스템이 멈
추면 결과는?
 데이터베이스 서버의 물리적 손상
이 가해진 경우
사용자 or
프로그램
Copied
◦ 현재까지 갱신된 기록 (log) 을 별도의
disk에 저장 보관

Log 기록을 보고 원래의 상태로 복구
 해결방법
 복사본 DB 생성
 RAID (Redundant Arrays of
Inexpensive Disks) 활용
데이터 자동 copy
자동 오류검출 기능
데이타 A
이전 데이타
500
400
변경 데이타
400
300
변경 시간
1:00
1:01
데이터 A가 변경된
history를 보관
장점

1970년대 후반에서 80년대 초반
◦ 창시: E.F.Codd, 1970 CACM Paper, “The
Relational Data Model”
 DB연산의 기초: Relational Algebra & Calculus
 질의언어: SQL (Structured Query Language)
◦ 초기 DBMS
 System/R - 1976, 최초의 상업용 RDBMS
 Ingres
- 1976, 최초의 연구용 RDBMS
name
street
city
amount
Lowerly
Maple
Queens
900
Shiver
North
Bronx
556
Shiver
North
Bronx
647
Hodges
SideHill
Brooklyn
801
Hodges
SideHill
Brooklyn
647
- 수학적 기반: Relational Data
Model
- 간단한 형태로 인한 사용의 편이
성: table & value based
단점
- Join연산으로 인한 성능저하
- Flat relation: tree & graph 표현
의 어려움
“Bronx”시에 거주하
는 고객 “Shiver”의
예금 총액
Database 질의언어: SQL
select sum(amount)
from customer
where customer.name = “Shiver” and customer.city=“Bronx”;