DBMS(Database Management System): Introduction

김 태영

컴퓨터교육과

한국교원대

*Textbook: Chapter 1 (6판/7판)

현대의 정보화 사회에 있어서 Data를 수집, 가공, 저장하여 정확한 정보를 적시에 제공해 주어서 신속하게 업무를 처리할 수 있고, 또한 올바른 결정을 내릴 수 있도록 도와주는 정보 System은 어떠한 조직(정부, 공공기관, 기업 등)에 있어서도 필수 불가결한 요소가 되고 있다. 이러한 정보 System을 구축하는 가장 중요한 하부 구조인 DBMS에 대한 성능 향상이 가속화되고 있다.

특히, RDBMS(Relational DBMS)가 표준 System으로 자리를 잡아가면서, 빠른 기능 확장과 더불어 본격적인 적용이 되어 가고 있다. 따라서 본고에서는 Relational DBMS를 중심으로 DBMS의 현재의 기능들과 앞으로의 전망을 살펴보았다.

• What is the problem?

① How to 'store' data

② How to 'find' the data you need

The History of Databases

• The History of Computers

- “이제까지 고안된 것 가운데 가장 강력하고 정확한 컴퓨터 ‘매니악’은 미국이 수소폭탄개발 경쟁에서 소련을 이기도록 도왔고, 현대 컴퓨터 시대를 여는 데 선구적인 역할을 했다. (The most powerful and accurate computer ever designed to that point, ‘MANIAC’ helped the United States beat Soviet Union in the race for the hydrogen bomb in 1952 and was a forerunner of the modern computer age.)" <www.sciencetimes.co.kr>

• Computer의 용도

Numerical Analysis	= Computer

Database	= Information Processing System

H/W  +	Process Control	= 자동화 기기

Word Processor	= 타자기

Game	= Game 기기

A/V Stream Player	= A/V 기기

통신 S/W	= 전화기

…	…

• Database = Data + ‘Base’

- Why 'base' (not storage, etc.)?

- 1950년대 미국 국방부(DoD)에서 기원: 해외에 나가있는 군인, 무기 등 전력에 관한 정보를 집중관리하기 위해 컴퓨터 기술을 구사하는 라이브러리를 개발함.

The Definition of the Database

• What is Information?

- 지식(knowledge)/정보(information)

⇒ 음악-악보, 감정-그림, 언어-문자, 규칙-수

- 유기체/조직체가 환경에 적응하여 살아 남아 번영하기 위한 필수조건

Ex)	곤충/인간 등: 감각기관, 뇌, 유전자(DNA)

기업/국가 등: 정보수집 및 저장, 전산조직

- Data/Media: 인간이 ‘정보’를 전달하기 위한 수단

⇒ 음성, 그림, 문자, 숫자, 영상 등

• 대량의 정보를 컴퓨터로 처리할 수 있도록 축적하고, 시스템화.

⇒ 필요할 때 온라인으로 즉시 검색할 수 있도록 정리․통합한 것

• 전자계산학: Data의

- 표현(presentation):	Multi-Media, Graphics

- 저장(storage):	Data Structure, DB

- 처리(계산, processing):	Algorithm, AI

- 전달(communication):	Networks

- 구현(implementation):	Language, Compiler, 저작도구

- 기기(H/W):	Architecture, OS

Database의 종류

• The History of Databases: User들은 어떠한 정보를 원하는가?

Database Mgmt System

Information

Retrieval

(IR)

Search Engine

(Semantic

Web)

Data Communication

(C/S, WWW, Mobile)

for Business

Data Mgmt.

for Digital

Library

for Web

Documents

User1

PC

User2

Tab

Usern

Phone

Big Data (Unstructured/Structured)

• Data의 분류: 구조화된 정도에 따른 분류

① Structured Data: Table - (Relational) DBMS, XML 문서

② Semi-Structured Data: HTML 문서 - Web Search Engine

문서(document) - 문서관리 System/Digital Library, IR

③ Unstructured Data: Multimedia - Multimedia Contents Management

Raw Text - Word Processor

• Database의 종류: 정보는 어떠한 형식으로 표현되는가?

종류	저장형식	검색	예	비고
서지/문헌 Database	레코드/파일	검색식 (AND, OR 등)	IR(학술 DB)
자료(문자/숫자) Database	Table	SQL	RDBMS (정부/기업 DB)	강의 내용
멀티미디어 Database	Object	Object Query Languages	GIS
Web	HTML/XML	Search Engines	WWW

- 문헌/서지 데이터베이스의 연대별 변천

1940년대: 컴퓨터의 탄생.

1950년대: 2차 자료(초록, 색인 등)의 편집/인쇄에 컴퓨터를 이용.

부산물로 데이터베이스가 탄생.

1960년대: Batch 검색에 의한 데이터베이스 서비스 개시.

1970년대: 미국에서는 on-line 검색에 의한 데이터베이스 서비스 개시.

한국에서는 batch 검색에 의한 데이터베이스 서비스 개시.

1980년대: 한국에서 국내외의 온라인 정보검색 서비스 개시.

1차 자료의 편집/인쇄에 컴퓨터를 이용.

전문 데이터베이스 증가. (DIALOG, MEDLINE, ORBIT, BRS, JOIS, PATOLIS, TECHNOLINE 등)

1990년대: 온라인, CD-ROM 등 다양한 미디어에 의한 서비스 제공

2000년대 이후: Web/Mobile 상에서 full text 제공

- 문헌정보학 :

http://ko.wikipedia.org/wiki/%EB%AC%B8%ED%97%8C%EC%A0%95%EB%B3%B4%ED%95%99

Database System의 구조

사용자(user)

질의(query)

정보표현(presenation)

질의 분석

최적화(optimization)

순서화(ordering)

분류(cataloging)

검색결과

정보검색 모듈/Engine

정보구조

(Knowledge

Base)

색인

(Index)

정보구조

자료

(Data)

사용자 계층

인터페이스 계층

질의처리 계층

자료 계층

• Topics/Problems on Database Systems

- 사용자 계층

․ 어떠한 사용자들의 어떤 정보를 대상으로 하는가?

- 인터페이스 계층

․ Query Language를 사용하는가?

․ 결과 정보를 어떤 형태로 표현할 것인가? - Forms, Reports, Graphs, etc.

- 질의처리 계층

․ 어떤 형태의 Intelligence를 사용할 것인가? - Knowledge Base

․ 정보검색 모듈의 성능(performance)를 어떻게 높일 것인가? - Response time

- 자료 계층

․ 어떤 형태의 색인을 사용할 것인가?

․ 자료를 어떤 구조로 저장할 것인가? - File 구조,	Structured/Semi-structured

*Textbook: http://comedudb6.knue.ac.kr/tykim/Myhome/Dbnote/TextIndex.pdf

• Why the DBMS is needed for Database?

⇒ 가장 성공적이고 널리 쓰이는 Database Management System.

ex) NEIS (National Education Information System)

'교육관련 정보'를 공동으로 이용하기 위해 전국 1만여 개의 초·중등학교, 16개 시·도 교육청 및 산하기관, 교육인적자원부를 인터넷으로 연결하는 전국 단위의 교육행정 정보시스템. 2003년 4월 11일부터 시행. <www.neis.go.kr>

Ⅰ. Why DBMS?

1. File System

‧ Independent management of data: Store, retrieve and update.

File System

file #1

terminal #1

terminal #m

program #1

program #n

file #2

file #1

file #z

...........

...........

.....

Mainframe Computer

COBOL

File System

→ Client/Server System (2-tier, PCs(clients)/DBMS(server)/N/W 사용)

→ Client/Server System (3-tier, Web 사용)

‧ 문제점

- Data redundancy and inconsistency.

- Difficulty in accessing related data.

(예) □청주에 살며 취미가 낚시인 부장들은?

□서울 잠실에 살며, 예금액이 1,000만원 이상인 고객 명단을 뽑아라.

- Data isolation: Data scattered in various files and files in different formats.

- Concurrent access anomalies.

(예) □Transaction: 한 단위의 작업 (All or Nothing, 계좌 입출금, 이체 등)

□계좌 123: 예금액 1,000원.

□Two concurrent transactions on 계좌 123.

T1: Read a record          T2:

Read a record

인출 500원

인출 500원

Write a record

Write a record

- Security problems

- Integrity problems

(Ex) □같은 학번이 존재.

□나이는 17살 이상이며 무게는 12kg

Ex) Update Anomaly (Java Example)

import java.applet.*;

import java.awt.*;

class EvenCounter extends TextField implements Runnable{    // Thread....

int state=0;                    // Critical Section...

public EvenCounter(){          // Constructor...

setText("Even");

setFont(new Font("SansSerif", Font.BOLD, 32));

setEditable(false);

}

public void run(){

while(true){

state+=1;                      //

try{                            //

Thread.sleep(1000);          //   Non-Isolated Operation...

}                              //

catch(Exception e){ ; }         //

state+=1;                      //

if(state%2==1) setText("Odd");

}

}

public class UnsafeDemo extends Applet{

EvenCounter cnt=new EvenCounter();

public void init(){

setLayout(new GridLayout(1,0));

add(cnt);

Thread t1=new Thread(cnt);    // Two threads share a single

Thread t2=new Thread(cnt);    // instance of object 'cnt'...

t1.start();                      //  t1: int state=0;     t2:

t2.start();                      //     state+=1;

}                                //                     state+=1;

}                                 //                    state+=1;  // print "odd"

//     state+=1;

2. DBMS의 기능

‧ Centralized control of data: Store, retrieve and update. (그림 2 참조)

그림 2. DB와 DBMS.

‧ Data model 제공: Independent of the underlying physical structure.

⇒ Everything is "CONNECTED"!!!  i.e. What is Information/Knowledge?

⇒ Can we store ALL data in ONE place???

⇒ How can we connect each data?

⇔ How can we represent 'RELATIONSHIP'?	e.g., 가족관계등록부

이순신	대구	수성동

- Hierarchical model : Records organized as collections of trees. (그림 3 참조)

801  150,000

예금 link

이순신  대구 수성동

안중근 서울 신촌

유관순  대전 둔산동

900  100,000

647   85,000

647   85,000

556   90,000

고객

계좌

그림 3. Hierarchical model.

- Network model: Records organized as collections of graphs. (그림 4 참조)

(예) A 은행의 이순신 고객은 900 계좌를, 안중근 고객은 556, 647 계좌를, 유관순 고객은 647, 801 계좌를 보유하고 있다.

예금 link

이순신  대구 수성동

안중근 서울 신촌

유관순  대전 둔산동

900  100,000

647   85,000

556   90,000

801  150,000

그림 4. Network model.

이순신	대구	수성동

900	100,000

e.g, 개념도 (Concept Map)

<개념도 #1>

<개념도 #2>

- Relational model : Records organized as collections of tables. (그림 5 참조)

고객                      예금 link   계좌

고객명	시	동	계좌		계좌	예금액
안중근	서울	신촌	556		900	100,000
안중근	서울	신촌	647		556	90,000
유관순	대전	둔산동	801		647	85,000
유관순	대전	둔산동	647		801	150,000
이순신	대구	수성동	900

그림 5. Relational model.

⇒ How about the Web?

⇒ Traditional search engines return ranked retrieval lists that offer LITTLE or NO information on the semantic RELATIONSHIPS among documents.

⇒ the 'Semantic' Web

‧ Concurrency control: Lock-based and Timestamp-based techniques.

(예) 계좌 123: 예금액 1,000원

T1: Lock 계좌 123      T2:

Read a record          Lock 계좌 123

Read a record

인출 500원

인출 500원

Write a record

Write a record         Unlock 계좌 123

Unlock 계좌 123

‧ Integrity: Integrity constraints.

(예) Entity integrity: 같은 Key 값이 있어서는 안 된다.

Domain integrity: 나이는 0부터 200사이어야 한다.

Referential integrity: 계좌 table에 있는 고객은 고객 table에도 있어야 한다.

‧ Recovery: Log files.

‧ Security: Authorization(level: record, table, database), View 제공.

‧ File management: Indexing and Hashing.

(예) B+-tree index. (그림 6 참조)

고객-동 Index

	봉천동

	마곡동

	사당동

	가양동		대방동				마곡동						봉천동						사당동		홍은동

그림 6. B+-Tree 구조.

고객	고객명	시	동	계좌
	김명렬	서울	가양동	750
	이태욱	대구	대방동	500
	김성식	대구	대방동	600
	김태영	서울	마곡동	700
	김영식	광주	봉천동	400
	안중근	광주	봉천동	900
	이순신	광주	봉천동	700
	유관순	부산	사당동	700
	박정희	인천	홍은동	350

Ⅱ. Why RDBMS?

1. Network과 Hierarchical Model의 문제점

‧ 관련 Record들이 Pointer들을 사용하여 연결되어 있음.

‧ 사용자가 필요한 Record들을 찾기 위해서는 Table의 Link들을 알아야 하며, Link들을 따라가는 복잡한 Application Program을 작성해야 함.

‧ Database 구조가 바뀔 때마다 Application Program들을 수정해야 함.

2. RDBMS (Relational Database Management System): Model

가) Relational model

‧ E. F. Codd가 1970년대 초에 제안.

‧ 관계(relationship)도 table로 표현

⇒ Relational Algebra에 의해 검색을 위한 ‘연산’이 가능.

‧ 사용자가 Application Program을 작성할 필요가 없이 SQL (Structured Query

Language)과 같은 4GL (4th Generation Language)을 사용하여 직접 Database에의 접근이 가능함. (그림 7 참조)

그림 7. SQL.

	고객
SELECT 고객명 FROM 고객 WHERE 고객.계좌=900	고객명	시	동	계좌
	안중근	서울	신 촌	556
	안중근	서울	신 촌	647
	유관순	대전	둔산동	801
	유관순	대전	둔산동	647
	이순신	대구	수성동	900

‧ SQL로 작성된 Query는 Query Processor에 의해 최적화(Optimized)된 Program으로 변환되어 실행됨.

‧ Query의 처리 속도는 Network이나 Hierarchial Model보다 다소 느림 (Query Processing, Join 등)

‧ 사용자는 원하는  Record들을 어떻게(How) 찾아야 하는가를 Program할 필요가 없고, 단지 무엇을(What) 원하는가만 지정하면 되므로 사용하기가 쉬워서 Programmer의 생산성을 크게 향상 시켰음.

‧ 근래에는 DB2, Ingress, Oracle, Informix, Sybase, SQL Server 등의 상용 RDBMS 제품들이 시장에 나와 있음.

*참조: p.12 그림 1.2

나) RDBMS의 이론적 배경

‧ Relational Model에서는 5개의 기본 Operation들 - Union, Difference, Cartesian Product, Projection, Selection - 이 정의

‧ 기본 Operation들의 조합으로 정의가 가능한 특수 Operation들 - Join, Division - 들이 정의됨.

"수(수 이론)는 모든 양적 세계를 지배한다고 말할 수 있다. 그리고 '연산의 4개 법칙'은 수학자의 완전무결한 장비라고도 볼 수 있다. (The numbers may be said to rule the whole world of quantity, and ‘the four rules of arithmetic’ may be regarded as the complete equipment of the mathematician.)"

<맥스웰(1831~1879): 스코틀랜드 출신의 물리학자>

‧ 기본 Operation들. (그림 8 참조)

1) 두 Table의 Union (R∪S) : R과 S에 있는 모든 튜플(tuple)들의 집합이 생성.

2) 두 Table의 Difference (R-S) : R에는 있으나 S에는 없는 튜플들의 집합이 생성.

3) 두 Table의 Cartesian Product (R×S) : R과 S로부터 모든 가능한 두 쌍의 튜플들의 조합이 생성.

4) 한 Table의 Projection (πA R) : 특정 Attribute값 (이 경우 A)들이 추출.

5) 한 Table의 Selection (σA=‘a’ R) : 어떤 특정한 조건 (이 경우 A=’a')을 만족시키는 튜플들이 추출.

Table R	A	B
	a b c	x y z

Table S	C	D
	a b	z y

						A	B	C	D		A		A	B
a	x		a	x		a	x	a	z		a		a	x
b	y		c	z		a	x	b	y		b
c	z					b	y	a	z		c
a	z					b	y	b	y
						c	z	a	z
						c	z	b	y
(a)			(b)			(c)					(d)		(e)

그림 8. 다섯 가지 기본 Operation들: (a)R∪S (b)R-S (c)R×S (d)πA R (e)σA=‘a’ R

‧ 특수 Operation.

1) (Natural) Join (R∞S) : 두 Table의 Cartesian Product를 수행한 다음, 두 Table  에 공통된 Attribute의 값이 같은 Record들을 Selection하고(Link의 역할), 마지막으로 Projection에 의해 중복된 Attribute들을 제거함.

(예) 예금액이 95,000원 이상인 고객들의 명단을 뽑아라. (그림 9 참조)

⇔ π고객명 [σ고객.계좌=계좌.계좌 and 예금액>95,000 (계좌 × 고객)]

⇔ π고객명 (고객 ∞ 예금액>95,000 계좌)

⇔ π고객명 [(π고객명,계좌 고객) ∞ (σ예금액>95,000 계좌)] : 최적화된 Query.

2) Division 등

‧ 두 개 이상의 Table들을 필요로 하는 질의를 처리하려면 Hierarchical이나 Network Model에서는 두 개의 Table들을 연결하는 Link들을 이용해야 하지만, Relational Model에서는 기본 Operation들의 조합에 의한 계산으로 처리.

‧ SQL로 표현된 사용자의 Query는 Query Processor에 의해 기본 Operation들의 조합으로 재구성되며, 이 때 최적화(Optimization)가 가능.

‧ 기본 5개의 Operation들만 있으면 Table에 관한 어떠한 사용자의 Query도 표현이 가능하므로, 기본 5개의 Operation들은 충분(Complete)함.

(예) 두 개 이상의 table에서 원하는 정보를 추출할 경우.

SELECT	고객명

FROM	고객, 계좌

WHERE	고객.계좌=계좌.계좌 AND

계좌.예금액>95,000

그림 9. 두 개의 Table을 포함한 SQL 질의의 처리.

고객						계좌
고객명	시	동	계좌			계좌	예금액
안중근	서울	신 촌	556			900	100,000
안중근	서울	신 촌	647			556	90,000
유관순	대전	둔산동	801			647	85,000
유관순	대전	둔산동	647			801	150,000
이순신	대구	수성동	900
		Projection					Selection
	고객명	계좌				계좌	예금액
	안중근	556				900	100,000
	안중근	647				801	150,000
	유관순	801
	유관순	647
	이순신	900
				Join
			고객명	계좌	예금액
			이순신	900	100,000
			유관순	801	150,000
					Projection
				고객명
				이순신
				유관순

Ⅲ.  DBMS의 구조: System SW

User           Users         Application                              Database

Programmers                          Administrator

User         Application      Application   Query                    Database

Interface      Interfaces       Programs                               Scheme

Data Manipulation    Query         Data Definition

Language           Processor      Language

Application       Interpreter/Compiler                   Compiler

Object Code

DBMS

Database Manager

Operating                         File Manager

System

Disk                         Data files

Storage

Data Dictionary

그림 10. DBMS의 구조

*참조: p.23 그림 1.5

• Data Structures for DBMS

① Data files: store the data.

- Heap file

- Sequential file: Sequential accessing in search key order.

- Relative file: Direct accessing by hashing.

hashing (저장 주소를 함수로 직접 계산)

- Cluster: Intra- or Inter-file clustering by a clustering attribute.

② Indices: provide for fast access to data items.

ex) indexing (such as books, libraries and buildings): indexed file

⇒ Heap/Sequential/Relative/Cluster + indices

③ Data dictionary (= System catalog): store info about the structure of the DB. ⇒ DB 구조를 관리하기 위한 것.

- Names of the relations

- Names of the attributes of each relation

- Domains (types) of attributes of each relation

- Names of views defined on the relations

- Integrity constraints for each relation

- Names of authorized users

- Info. about users (Authorization of DB, table, view 등)

④ Statistical data: store info about the statistical data in the DB.

- no. of tuples in each relation

- no. of accesses for each relation

⑤ Log file: relation의 변동상황들(insertion, deletion, update)을 저장.

⇒ for recovery when a system crash happens.

• Layering architecture of system S/W

- System S/W의 구조: 상위 layer는 하위 layer의 service를 사용해야만 함.

ex)

사용자

OS		DBMS		N/W S/W
command		DB manager		application
system call		file manager		transport
process & file control		disk manager		network
H/W control (driver routine)		disk controller		data link

H/W

- Why?

Abstraction: Independent from the underlying architecture.

보안성: 사용자로부터 system을 보호

확장성: 새로운 기술을 도입시 해당 layer만 교체.

- Abstraction

ex) main memory

int i, j;

float x, y[10];

compiler

(big endian ⇔ little endian)

memory manager

digital IC(Integrated Circuit)

- transistor

- diode

- register

- capacitor

0	byte 1	byte 0
2	byte 3	byte 2
	…
i	byte i+1	byte i
	…

ex) HDD

DB manager

⇒ regards the disk as a logical collection of "files" & provides "tables"

file manager

disk manager

⇒ regards the disk as a logical collection of "page sets" & provides "files"

a  b  c

c  d

x  y  z

⇒ regards the disk as a logical collection of "cylinders, tracks and sectors" & provides "page sets"

create table M ( … );

create table N ( … );

select * from M;

c:\mydb\m

A	B	C		C	D
a x	b y	c z		c	d

a	b	c
c	d
x	y	z

Disk Controller

Disk Controller

․ OS와 디스크 드라이브의 H/W를 연결.

․ Sector를 읽고 쓰기 위한 고수준의 명령어를 수용해서, 디스크 암을 정확한 track에 이동시켜서 해당 데이터를 읽고 쓰는 작업을 수행함.

ex) SDD (Solid State Drive)

r1	a	b	c
r2	c	d
r3	x	y	z

A	B	C		C	D
a x	b y	c z		c	d

B	C	D
b y	c z	d d

DBMS - views 제공

DBMS - tables 제공

file manager

conceptual level - DBA가 관리

physical level - 물리적 구조

view level - user, programmer의 관점

물리적 독립성

논리적 독립성

*참조: p.7 그림 1.1

• DB Management by Database Administrator (DBA)

DBMS

DB

DBA

user

1. Instance Management - DBMS 설치/유지관리

2. Database Management - 물리적 저장구조 정의/수정

3. Object Management - 스키마 정의/수정 (Table, View, Index, Cluster 등)

4. User Management - 데이터 엑세스 권한의 인정

5. Performance Tuning/Backup Management

Ex1) Oracle DBMS Server의 Architecture

sqlplus

program

… … … …

TCP/IP Network

tnslsnr

(1521)

dedicated    sever

Database Buffer Cache

Redo Log

Buffer

Shared

Pool

Large Pool

Cursor

System

Shared

Memory

dbw

lgwr

smon

ckpt

arcn

dnnn

rec0

pmon

lck0

snpn

qmnn

Memory

Client

Processes

Server

Processes

System

Global Area

Background

Processes

Control

Files

Data

Files

Redo Log

Files

Database

Files

shared

sever

server

Oracle

Instance

‧ SGA (System Global Area)

- Database Buffer Cache: Disk에 보관되어 있는 '데이터'들은 dbw에 의해 이 Cache를 거쳐 User에게 보여지고, 이전에 사용된 데이터들은 Cache 영역이 부족하면 다시 Disk로 돌아감.

⇒ MRU (Most Recently Used) 데이터를 보관하고 있음.

- Redo Log Buffer: 데이터 '변경'에 대한 내용을 담고 있는 Redo Log Entry들을 보관.

⇒ 이는 다시 lgwr에 의해 Redo Log File에 보관되며, Recovery시 사용됨.

- Shared Pool: oracle에 의해 Parsing된 SQL과 'Execution Plan'들을 저장.

- Large Pool: Backup/Restore Operation, I/O Server Process, Multi-thread Server를 위한 'Session' Memory 영역.

- Cursor: User Program에서 사용 (Statement Handler 등).

‧ Background Processes

- DBW	: Database Writer

- LGWR	: Log Writer

- SMON	: System Monitor

- CKPT	: Checkpoint

- ARCn	: Archiver

- Dnnn	: Dispatcher

- RECO	: Recoverer

- PMON	: Process Monitor

- LCK0	: Lock

- SNPn	: Job Queue

- QMNn	: Queue Monitor

‧ Oracle Instance는 보통 하나의 DB를 관리.

⇒ 그러나, OPS (Oracle Parallel Server)의 경우는 여러 개의 instance가 하나의 DB 작업을 동시에 병렬로 처리함.

⇒ 하나의 Table을 나누어 서로 다른 물리적 디스크에 저장함. (Partitioning)

System A

Oracle

Instance A

System B

Oracle

Instance B

System C

Oracle

Instance C

Database

Table R-A

Table R-B

Table R-C

Ex2) MySQL이 지원하지 않는 기능들

- 특수 SQL

① Sub-Select: SELECT 구문 내의 SELECT

SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);

② SELECT INTO table 구문

INTSERT INTO … SELECT 혹은 CREATE TABLE … SELECT를 사용.

- Transaction

∙ 일반적으로 많이 사용하는 MyISAM/ISAM 테이블 타입에서는 트랜잭션을 지원하지 않음.

∙ 3.23.x 버전부터는 BDB(Berkeley_db) 테이블을 이용하여 트랜잭션이 사용가능하나, 속도가 2-4배 느려짐.

- Stored Procedure와 Trigger

∙ stored procedure는 지원할 계획이 있지만, trigger는 계획이 없음.

- Foreign Key

∙ CREATE문에서 foreign key 설정이 가능하나, 실제로는 작동이 되지 않음.

∙ 타 DBMS와의 호환성 확보.

• Client/Server System

*참조: p.24 그림 1.6

- Two-tier C/S Architecture

Application 1

Application m

…

User 1

Client

User m

Remote DBMS1

DB 1

DB n

…

Remote DBMSn

DB Server

JDBC/NET8

TCP/IP

Wired Network

Ex) PowerBuilder, Delphi, Visual Basic, etc

⇒ C/S 시스템

- Three-tier C/S Architecture (on the Web)

Presentation 1

Presentation m m

Appl. Logic 1

Appl. Logic k

…

…

Middleware

User 1

Client

Appl. Server

User m

Data Mgmt 1

DB 1

DB n

…

Data Mgmt n

DB Server

Protocol 1

Protocol 2

Protocol 3

Web Server

TCP/IP

Wired/Wireless Network

Ex) Middleware platform: EJB(Sun), .NET(MS)

Middleware products

⇒ NEIS 시스템

Ex)

Browser

Browser

Servlet 1

Servlet m

…

…

CORBA ORB

User 1

Client

Appl. Server

User m

Remote Obj 1

DB 1

DB n

…

Remote Obj n

DB Server

HTTP

IIOP

JDBC/NET8

Web Server

TCP/IP

Wired/Wireless Network

callback

callback

Ex) Web Community Programming

- DBMS: Oracle(Unix, Linux, Windows), SQL Server (Windows), MySQL(Linux) 등

- Programming: JSP, ASP, PHP 등

Internet

Web Server

DBMS

WAS

회원	게시판_국어

회원명	시	e-mail	회원번호	community		회원번호	날짜	시간	글
황선홍	서울		556	국어		900
홍명보	서울		647	수학		556
김남일	대전		801	과학		647
송종국	대전		647	수학		801
박지성	대구		900	컴퓨터

• 발전방향:

- OODBMS/ORDBMS for Multi-media data

- Parallel DBMS

- OLAP(On-line Analytical Processing) for DW (Data Warehouse)

→ 'Data Mining' from Big Data

→ Strategic/Intelligent Information

- A.I.: 지식관리(KM, machine learning) e.g. Watson (IBM)

- etc.