Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
1장.데이터베이스소개
이동호
데이터베이스연구실
소프트웨어학부
2
목차
• 1.1 데이터베이스관리시스템(Database Management System, DBMS)
• 1.2 데이터베이스시스템의목적
• 1.3 데이터를보는관점
• 1.4 데이터베이스언어
• 1.5 관계형데이터베이스
• 1.6 데이터베이스설계
• 1.7 저장시스템관리
• 1.8 질의처리
• 1.9 트랜잭션관리
• 1.10 데이터베이스구조
• 1.11 데이터베이스시스템의역사
3
데이터베이스관리시스템(DBMS)
• DBMS는어떤조직에대한정보를가지고있는시스템– 서로관련된데이터들의집합
– 데이터를접근하기위한프로그램의집합
– 데이터와프로그램을쉽고편리하게사용할수있는환경
• 데이터베이스응용:– 은행: 예금, 출금등
– 항공사: 항공기예약및취소, 변경
– 대학 : 수강등록, 강의등
– 판매점: 고객, 제품, 판매
– 제조사: 제품, 공장, 주문, 공급및재고
– 등등
• 데이터베이스의우리생활의모든면과관련
4
데이터베이스예 - 대학
• 수강신청예
– 새로운학생, 교수, 과목추가
– 과목에대한학생의수강등록, 클래스생성
– 학점입력, GPA 계산, 증명서출력등
• 초기에데이터베이스응용프로그램들은파일시스템위에서개발되었음
5
1.2 데이터베이스시스템의목적
• 데이터를파일시스템에저장할경우의단점
– 데이터의중복과비일관성
– 데이터접근의어려움
– 데이터고립 – 같은종류의데이터가여러파일(서로다른포맷)에저장될수있음
– 데이터무결성(Integrity) 문제
• 무결성제약조건(예, 계좌잔고 > 0)을응용프로그램에서처리해야함
• 새로운무결성제약조건을추가하거나변경하기어려움 (다시코딩해야하는문제)
– 갱신의원자성문제
• 계좌이체경우 (A계좌에서 B계좌로이체하는중간에시스템장애발생) → A계좌에서감액되었는데 B계좌는증액되지않은상태
– 다수상용자에의한동시접근성보장, 보안문제등
6
1.3 데이터의관점
• 물리적단계
– (고객) 레코드를물리적저장장치에어떻게저장할까?
• 논리적단계
– 데이터들의논리적관계, 즉고객레코드가어떻게구성되는지를기술함type instructor = record
ID : string;
name : string;
dept_name : string;
salary : integer;
end;
• 뷰단계
– 응용프로그램에서데이터의일부를보안상의목적으로숨길수있음 (종업원레코드에저장된연봉은종업원에게보여서는안됨)
7
데이터추상화
8
인스턴스와스키마
• 프로그래밍언어에서변수의타입(스키마)과변수의실제값(인스턴스)와유사
• 스키마 – 데이터베이스의논리적구조
– 프로그램에서변수에대한타입정보와유사
– 물리적스키마
• 물리적단계에서의데이터베이스설계
– 논리적스키마
• 논리적단계에서의데이터베이스설계
• 인스턴스 – 데이터베이스의실제내용물
– 변수에저장된실제값과유사
9
데이터모델
• 데이터모델이란 ?
– 데이터
– 데이터들의관계
– 데이터들의의미
– 데이터들의제한조건
을기술하는도구의모임
• 관계형모델
• 개체-관계데이터모델
• 객체지향데이터모델
• 반구조형데이터모델(XML)
• 기타데이터모델
– 네트워크형/계층형모델
10
1.4 데이터베이스언어
• 데이터베이스시스템은두개의언어를제공
– 데이터정의언어(DDL)
• 데이터베이스스키마를정의
– 데이터조작언어(DML)
• 데이터베이스질의및갱신에사용
• DDL과 DML은서로다른언어가아님
– 서로분리된언어가아니라데이터베이스언어(SQL)을구성함(즉, 두언어모두 SQL로표현되고개념상의분류한것임)
11
데이터정의언어(DDL)
• 데이터베이스스키마를정의
예제: create table instructor (ID char(5),
name varchar(20),
dept_name varchar(20),
salary numeric(8,2))
• DDL컴파일러는데이터사전(data dictionary)에저장되는테이블의템플릿을생성함
• 데이터사전은메타데이터를저장함
– 데이터베이스구조
– 무결성제약조건
• 주키(primary key) 제약조건
• 참조무결성제약조건등
12
데이터조작언어(DML)
• 데이터들을접근하고조작하기위한언어
– 일반적으로질의언로로알려짐
• 질의언어의두가지종류
– 절차적언어
• 사용자가어떤(what) 데이터를어떻게(how) 얻어낼것인가를명시하는언어
– 선언적(비절차식) 언어
• 사용자가어떻게얻어낼것인가에대한명시없이어떤(what) 데이터를얻어낼것인가만을명시하는언어
• SQL은가장넓리사용되는비절차식질의언어
13
1.5 관계형모델
• 2장에서집중적으로다룸
• 관계형모델 = 테이블데이터열(Columns)
행(Rows)
14
관계형데이터베이스예
15
SQL
• SQL = Structured Query Language
– SQL DML
• Example: Find the name of the instructor with ID 22222
select name
from instructor
where instructor.ID = ‘22222’
– SQL DDL
• Example: Define the department table.
create table department
(dept_name char (20),
building char (15),
budget numeric (12,2));
16
1.6 데이터베이스설계
• 데이터베이스구조를설계하는과정
• 논리적설계
– 데이터베이스구조를결정하는과정으로설계자는좋은관계형스키마들의집합을찾아야한다.
– 비지니스관점
• 데이터베이스에어떤속성들이저장되어야하는가?
– 컴퓨터과학적관점
• 어떤관계형스키마에어떤속성들이저장되어야하며서로다른관계형스키마들이어떤속성으로연결되어야할것인가?
• 물리적설계
– 데이터베이스의물리적구조
17
데이터베이스설계
• 아래설계의문제점은 ?
좋은설계인가? 나쁜설계인가? →검증하고테스트하는방법론 : 정규화