31
1. 데데데데데데데 데데

1. 데이타베이스의 개념

  • Upload
    temima

  • View
    93

  • Download
    0

Embed Size (px)

DESCRIPTION

1. 데이타베이스의 개념. 데이타베이스의 용어. " 데이타베이스 ”용어의 기원 1963.6 제 1 차 SDC 심포지움 컴퓨터 중심의 데이타베이스 개발과 관리 Development and Management of a Computer-centered Data Base 1965.9 제 2 차 SDC 심포지움 컴퓨터 중심의 데이타베이스 시스템 Computer-centered Data Base Systems.  데이타베이스란 ?. - PowerPoint PPT Presentation

Citation preview

Page 1: 1.  데이타베이스의  개념

1. 데이타베이스의 개념

Page 2: 1.  데이타베이스의  개념

" 데이타베이스”용어의 기원◦ 1963.6 제 1 차 SDC 심포지움

컴퓨터 중심의 데이타베이스 개발과 관리 Development and Management of a Computer-cen-

tered Data Base

◦ 1965.9 제 2 차 SDC 심포지움 컴퓨터 중심의 데이타베이스 시스템 Computer-centered Data Base Systems

데이타베이스의 용어

Page 3: 1.  데이타베이스의  개념

◦ 한 조직의 여러 응용 시스템들이 공용 (Shared) 하기 위해 통합 (Integrated), 저장(Stored) 한 운영 (Operational) 데이타의 집합

통합된 데이타 (integrated data)◦ 최소의 중복 (minimal redundancy)◦ 통제된 중복 (controlled redundancy)

저장 데이타 (stored data)◦ 컴퓨터가 접근 가능한 저장 매체에 저장◦ 테이프 , 디스크 등

운영 데이타 (operational data)◦ 한 조직의 고유 기능을 수행하기 위해 필요한 데이타

공용 데이타 (shared data)◦ 한 조직의 여러 응용 프로그램이 공동으로 소유 , 유지 , 이용하는 데이타

데이타베이스란 ?

Page 4: 1.  데이타베이스의  개념

실시간 접근성 (real-time accessibilities)◦ 질의에 대한 실시간 처리 및 응답

계속적인 변화 (continuous evolution)◦ 갱신 , 삽입 , 삭제 : 동적 특성

동시 공용 (concurrent sharing)◦ 여러 사용자가 동시에 사용

내용에 의한 참조 (content reference)◦ 위치나 주소가 아닌 값에 따라 참조

데이타베이스의 특성

Page 5: 1.  데이타베이스의  개념

DBMS◦ 데이터베이스를 운영하는 시스템◦ 데이터베이스에 대한 구성 , 접금 , 관리 유지를 위한 모든 기능을 제공

DBMS 의 목적◦ 데이터의 독립성 데이터의 종속성

데이터의 논리적 구조나 물리적 구조가 변경되도 응용 프로그램은 영향 받지 않는 것

데이터베이스관리시스템

Page 6: 1.  데이타베이스의  개념

데이터 종속성◦ 응용 프로그램과 데이터간의 상호 의존 관계가 존재한다는 것으로 데이터의 구성 방법이나 접근 방법의 변경 시 응용프로그램도 같이 변경시켜야 한다는 것을 의미

(a) 이진탐색 (b) 로 변경되면 선형탐색을 해야 함

데이터의 종속성

Page 7: 1.  데이타베이스의  개념

데이타 독립성 (Data Indepen-dency) DBMS 의 궁극적 목적 데이타의 독립성 --> 데이터의 종속성 문제 해결

i. 논리적 데이타 독립성 응용 프로그램에 영향을 주지 않고 논리적 데이타 구조의 변경이 가능 응용 프로그램의 효율적 개발 가능

ii. 물리적 데이타 독립성 응용 프로그램과 논리적 데이타 구조에 영향을 주지 않고 물리적 데이타 구조의 변경이 가능 저장 장치의 효율적 개발

데이타 독립성 구현 기법 ◦ 사상 (mapping)

Page 8: 1.  데이타베이스의  개념

데이타 구조 간의 사상과 데이타 독립성응용 프로그램 1 응용 프로그램 2 응용 프로그램 n

A B C D B E F G A C

논리적 구조 사상

물리적 구조 사상

A B C D E F G H

A B CD E FG H ...

프로그램의데이타 구조

데이타베이스의 논리적 구조

데이타베이스의 물리적 구조

......

......

...

Page 9: 1.  데이타베이스의  개념

데이터베이스 관리 시스템 정의

◦ 데이터베이스를 생성하여 운영하는데 필요한 기능을 제공하는 소프트웨어 (DBMS)

기능◦ 정의 기능 DDL (Data Definintion Language)

데이타베이스의 구조를 정의하는 기능 ex) create, alter, drop

◦ 조작 기능 DML (Data Manipulation Language) 데이터에 대한 검색 , 갱신 , 삽입 , 삭제를 지원 ex) select, insert, update, delete

◦ 제어기능 DCL (Data Control Language) 데이터의 일관성유지를 위한 보안 , 권한 등에 대한 기능 ex) GRANT, REVOKE, COMMIT, ROLLBACK

Page 10: 1.  데이타베이스의  개념

데이터베이스 관리 시스템 ( 계속 ) 대표적인 DBMS

DBMS 개발사 특 징

액세스 Microsoft 윈도우즈 플랫폼으로 중소 규모 데이터베이스를 위한 데스크톱용 DBMS

SQL 서버 Microsoft 저렴한 제품 가격으로 Windows NT 플랫폼에서 최적의 성능을 발휘

인포믹스 IBM 성능이 뛰어나며 병렬처리를 위한 멀티스레드 (multithread) 를 지원

DB2 IBM 다수 사용자가 다수 관계형 데이터베이스를 동시에 접근할 수 있는 대형 데이터베이스를 위한 시스템

오라클 Oracle PC 급에서 메인프레임급까지 모두 설치할 수 있으며 , 분산처리 지원 기능이 우수

MySQL MySQL AB 다양한 플랫폼과 API 를 지원하는 비상업용 DBMS

Page 11: 1.  데이타베이스의  개념

장점◦ 데이타 중복 (redundancy) 의 최소화◦ 데이타의 공용 (sharing)◦ 일관성 (consistency) 유지◦ 무결성 (integrity) 유지◦ 보안 (security) 보장◦ 표준화 (standardization) 용이◦ 전체 데이타 요구의 파악 조정

단점◦ 운영비의 오버헤드◦ 복잡한 자료 처리 방법◦ 어려운 백업 , 회복◦ 시스템의 취약성

DBMS 의 장단점

Page 12: 1.  데이타베이스의  개념

현재 가장 많이 쓰이고 있는 논리적 데이터 모델◦ 관계형 데이터 모델 (Relational Data Model)◦ 1970 년대 E.E Codd 박사에 의하여 제안

관계형 데이터 모델을 사용하는 이유◦ 모델의 구조가 단순 ◦ 집합 이론이라는 수학적 이론에 기반◦ SQL 이라는 간단한 비절차적 언어

데이터 모델 (SOC)◦ 구조 (Structure)◦ 연산 (Operation)◦ 제약조건 (Constraint)

관계형 데이타베이스

Page 13: 1.  데이타베이스의  개념

관계형 데이터 모델관계형 데이터 모델

릴레이션데이터 구조

-튜플 집합-속성 집합

집합 연산

관계 연산

-UNION, INTERSECT-DIFFERENCE, PRODUCT

무결성 규칙-엔터티 무결성 규칙-참조 무결성 규칙-도메인 무결성 규칙

관계 연산 제약 조건

-RESTRICTION, PROJECTION-DIVIDE, JOIN

Page 14: 1.  데이타베이스의  개념

릴레이션 (relation)◦ 2 차원 테이블 구조◦ 튜플 (tuple) 과 속성 (attribute) 의 집합으로 구성

관계형 데이터 모델의 구조

STUDNO NAME USERI

DGRAD

E …… HEIGHT

WEIGHT

DEPTNO

PROFNO

10101 전인하 jun123 4 …… 176 72 101 990320101 이동훈 Dals 1 …… 172 64 201……… ……… ……… …… ………

10203 윤진욱 Samba7 3 …… 171 70 102 9905

10107 이광훈 huriky 4 …… 175 92 101 9903……… ……… ……… …… ………

릴레이션스키마

인스턴스튜플

속성

속성명STUDENT 릴레이션

Page 15: 1.  데이타베이스의  개념

릴레이션에 저장된 튜플들은 유일◦ 릴레이션은 튜플들의 집합이기 때문에 하나의 릴레이션에는 동일한 튜플이 저장될 수 없음

릴레이션에 저장된 튜플간에는 순서 관계가 없음◦ 하나의 집합내에서 원소간의 순서는 무의미하기 때문에 릴레이션에 저장된 튜플끼리는 순서 관계가 없다 ◦ 주의 할 것은 튜플의 속성간에는 순서가 존재한다 .

릴레이션을 구성하는 속성간에는 순서가 없음◦ 학생 1( 학번 , 이름 , 주민번호 , 사용자 ID) 과 학생 2( 학번 , 주민번호 , 이름 , 사용자 ID) 는 동일한 릴레이션

모든 속성 값은 원자 값 (atomic value)◦ 속성 값은 더 이상 나뉘어질 수 없는 논리적인 최소 단위를 의미 ◦ 예 : 이름

Relation 의 특징

Page 16: 1.  데이타베이스의  개념

릴레이션을 처리하기 위한 연산의 집합◦ 릴레이션 : 투플의 집합

기본 연산◦ 일반 집합 연산자 : 합집합 교집합 차집합 카티션 프로덕트◦ 순수 관계 연산자 : 실렉트 프로젝트 조인 디비전

폐쇄성질 (closure property)◦ 피연산자와 연산 결과가 모두 릴레이션◦ 중첩 (nested) 된 수식의 표현이 가능

관계 연산자

Page 17: 1.  데이타베이스의  개념

◦ 합병가능 (union-compatible) 한 릴레이션 ∪, ∩, - 연산의 피연산자들은

ⅰ. 차수가 같아야 함ⅱ. 대응 애트리뷰트 별로 도메인이 같아야 함

iii. 대응되는 애크리뷰트 별로 의미가 같아여 함◦ ∪, ∩, × 연산은 결합적 (associative) 임 A∪B∪C = (A∪B)∪C = A∪(B∪C)

◦ ∪, ∩, × 연산은 교환적 (commutative) 임 A∪B = B∪A

◦ - 는 비교환적 (non-commutative)

관계연산자의 주의점

Page 18: 1.  데이타베이스의  개념

. 합집합 (union,∪) R∪S = { t | t∈R ∨ t∈S } |R∪S| ≤ |R| + |S|

ⅱ. 교집합 (intersect,∩)R∩S = { t | t∈R ∧ t∈S }|R∩S| ≤ min{ |R|, |S| }

ⅲ. 차집합 (difference,-) R S = { t | t∈R ∧ t S } |R S| ≤ |R|

ⅳ. 카티션 프로덕트 (cartesian product,×) R×S = { r·s | r∈R ∧ s∈S }

· : 접속 (concatenation) |R×S| = |R|×|S| 차수 (degree) = R 의 차수 + S 의 차수

일반집합연산자

Page 19: 1.  데이타베이스의  개념

실렉트 (SELECT, )(1) A, B 가 릴레이션 R 의 애트리뷰트일 때 , Av(R) = { r | r∈R ∧ r.Aθv } AB(R) = { r | r∈R ∧ r.Aθr.B } 조건식 (predicate) 단 , θ(theta) = { <, >, ≤, ≥, = , ≠ } v : 상수 선택 조건을 만족하는 릴레이션의 수평적 부분집합 (hori-

zontal subset)

Page 20: 1.  데이타베이스의  개념

실렉트 (2) example 학과 = ' 컴퓨터 ' ( 학생 )

학번 = 300 과목번호 ='C312'( 등록 ) 중간성적 < 기말성적 ( 등록 )

데이타 언어식 표현 R WHERE 조건식 조건 2( 조건 1(R)) = 조건 1( 조건 2(R)) = 조건 1 조건 2 (R)

선택도 (selectivity) : ◦ 선택 조건에 의해 선택된 투플의 비율◦ 선택도가 작은 조건부터 먼저 적용

Page 21: 1.  데이타베이스의  개념

프로젝트 (PROJECT, ) 릴레이션 R(X) 에서 Y⊆X 이고 Y={B1,B2, … ,Bm} 이면 , Y(R) = { <r.B1, ... , r.Bm> | r∈R }

example◦ 학생 ( 학번 , 이름 , 학년 ) 에서 이름 ( 학생 )

릴레이션의 수직적 부분집합 (vertical subset)

생성된 중복 투플은 제거 Y(X(R)) = Y(R)

Page 22: 1.  데이타베이스의  개념

조인 (JOIN, )(1) 세타조인 (theta-join)

R(X), S(Y), A∈X, B∈Y 에 대하여R AθB S = { r · s | r∈R ∧ s∈S ∧ ( r.Aθs.B) }◦ A, B : joining attribute◦ 결과 차수 = R 의 차수 + S 의 차수

example◦ 학생 학번 = 학번 등록

동일조인 (equi-join)세타조인에서 θ 가 " = " 인 경우R A=BS = { r·s | r∈R ∧ s∈S ∧ ( r.A = s.B ) }

Page 23: 1.  데이타베이스의  개념

조인 (2) 자연조인 (natural join, N) 보통 Join 이라면 자연조인을

말함R(X), S(Y) 의 조인 애트리뷰트를 Z(=X∩Y) 라 하면R NS= {<r · s>[X∪Y] | r∈R∧s∈S∧r[Z] = s[Z] }= X∪Y(R Z=ZS)= X∪Y( Z=Z(R×S))

즉 동일조인의 결과 릴레이션에서 애트리뷰트의 중복을 제거함

Page 24: 1.  데이타베이스의  개념

디비전 (DIVISION, ÷)(1) 릴레이션 R(X), S(Y) 에 대하여 Y X 이고 Z =X-Y 이면 R(X)=R(Z,Y)

R÷S= { t | t∈ Z(R) ∧ t · s∈R for all s∈S } //see page 165 의미 : S(Y) 의 모든 투플에 연관되어 있는 R[Z] 의 투플 선택Note : (R ÷ S) × S ⊆ R

Page 25: 1.  데이타베이스의  개념

디비전 (2) example학번

(SNO)과목번호(CNO)

100 C413100 E412200 C123300 C312300 C324300 C413400 C312400 C324400 C413400 E412500 C312

과목번호(CNO)C413

과목번호(CNO)C312C413

과목번호(CNO)C312C413E412

학번(SNO)100300400

학번(SNO)300400

학번(SNO)400

학과목 (SC) 과목 1(C1) 과목 2(C2) 과목 3(C3)

SC ÷ C1 SC ÷ C2 SC ÷ C3

Page 26: 1.  데이타베이스의  개념

개명 연산 (RENAME, ρ) 중간 결과 릴레이션에 이름을 지정하거나 애트리뷰트 이름을 변경할 때 사용

① ρS(E)관계 대수식 E 의 결과 릴레이션의 이름을 S 로 지정

② ρS(B1,B2, … ,Bm )(E)관계 대수식 E 의 결과 릴레이션의 이름을 S 로 지정하면서 애트리뷰트 이름을 각각 B1,B2, … ,Bm 으로 변경

③ ρ(B1,B2, … ,Bm )(E)애트리뷰트 이름만 각각 B1,B2, … ,Bm 으로 변경

Page 27: 1.  데이타베이스의  개념

- 27 -

UNION

DIFFER-ENCE

10

INTER-SECT

abc

xy

aabbcc

xyxyxy

PRODUCT RESTRIC-TION

a1a2a3

b1b1b2

b1b2b3

c1c2c3

a1a2a3

b1b1b2

c1c1c2

JOIN

DIVIDE

abc

xy

aabbcc

xyxyxy

PROJEC-TION

Page 28: 1.  데이타베이스의  개념

키◦ 릴레이션의 특성 중 하나가 각 튜플은 같은 릴레이션에 속한 다른 튜플과는 다른 유일성을 만족해야 한다◦ 투플을 유일하게 식별할 수 있는 애트리뷰트 집합◦후보키 , 기본키 , 대체키 , 수퍼키

후보키 (candidate key)◦ 릴레이션 R(A1, A2, ..., An) 에 대한 애트리뷰트 집합

K = { Ai , Aj , ..., Ak } 로서 아래 성질을 만족하면 후보키① 유일성 (uniqueness) 각 투플의 K (= { Ai , Aj , ..., Ak }) 의 값 (< Vi , Vj , ..., Vk >) 은 유일② 최소성 (minimality)

K 는 투플을 유일하게 식별하기 위해 필요한 애트리뷰트로만 구성

제약조건

Page 29: 1.  데이타베이스의  개념

수퍼키 (super key)◦ 유일성 (uniqueness) 은 만족하지만 최소성 (minimality) 을 만족하지는 않는 애트리뷰트의 집합

기본키 (primary key)◦후보키 (candidate key) 중에서 데이타베이스 설계자가 지정한 하나의 키◦각 투플에 대한 기본키 값은 항상 유효 (no null value)

대체키 (alternate key)◦후보키중에 기본키를 제외한 나머지 후보키◦ 예 ) 학생테이블에 학번과 주민번호가 있을 경우

학번 - 기본키 주민번호 - 대체키

Key

Page 30: 1.  데이타베이스의  개념

외래키 (foreign key)◦ 릴레이션 R1 에 속한 애트리뷰트 집합 FK 가릴레이션 R2 의 기본키일 때 FK 는 R1 의 외래키이다 .◦ (FK 의 도메인 ) = (R2 의 기본키의 도메인 )◦ FK 의 값은 R2 에 존재하는 값이거나 null 이다 .◦ R1 과 R2 가 반드시 다른 릴레이션일 필요는 없다 .◦ R1 을 참조 릴레이션 (referencing relation), R2 를 참조된 릴레이션 (referenced relation) 이라 한다 .

외래키

Page 31: 1.  데이타베이스의  개념

무결성 제약 (Integrity Constraint) null 값

◦ 정보 부재를 명시적으로 표현하는 특수한 데이타 값① 알려지지 않은 값 (unknown value)② 해당 없음 (inapplicable)

도메인 무결성 (Domain integrity)◦ 릴레이션의 속성이 지켜야할 제약 사항

학생의 학년은 1~4 의 값만 가져야 한다 . 개체 무결성 (entity integrity)

◦ 기본키 값은 언제 어느 때고 null 값을 가질 수 없다 . 참조 무결성 (referential integrity)

◦외래키의 값은 참조된 릴레이션의 기본키 값이거나 null 이다 .