Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1. 데이타베이스의 개념."— Presentation transcript:

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

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

3  데이타베이스란 ? 통합된 데이타 (integrated data) 저장 데이타 (stored data)
한 조직의 여러 응용 시스템들이 공용(Shared)하기 위해 통합 (Integrated), 저장(Stored)한 운영(Operational) 데이타의 집합 통합된 데이타 (integrated data) 최소의 중복(minimal redundancy) 통제된 중복(controlled redundancy) 저장 데이타 (stored data) 컴퓨터가 접근 가능한 저장 매체에 저장 테이프, 디스크 등 운영 데이타 (operational data) 한 조직의 고유 기능을 수행하기 위해 필요한 데이타 공용 데이타 (shared data) 한 조직의 여러 응용 프로그램이 공동으로 소유, 유지, 이용하는 데이타

4  데이타베이스의 특성 실시간 접근성 (real-time accessibilities)
질의에 대한 실시간 처리 및 응답 계속적인 변화 (continuous evolution) 갱신, 삽입, 삭제 : 동적 특성 동시 공용 (concurrent sharing) 여러 사용자가 동시에 사용 내용에 의한 참조 (content reference) 위치나 주소가 아닌 값에 따라 참조

5 데이터베이스관리시스템 DBMS DBMS의 목적 데이터베이스를 운영하는 시스템
데이터베이스에 대한 구성, 접금, 관리 유지를 위한 모든 기능을 제공 DBMS의 목적 데이터의 독립성  데이터의 종속성 데이터의 논리적 구조나 물리적 구조가 변경되도 응용 프로 그램은 영향 받지 않는 것

6 데이터의 종속성 데이터 종속성 응용 프로그램과 데이터간의 상호 의존 관계가 존재한다 는 것으로 데이터의 구성 방법이나 접근 방법의 변경 시 응용프로그램도 같이 변경시켜야 한다는 것을 의미 (a) 이진탐색 (b)로 변경되면 선형탐색을 해야 함

7  데이타 독립성(Data Independency)
DBMS의 궁극적 목적  데이타의 독립성 --> 데이터의 종속성 문제 해결 i.논리적 데이타 독립성 응용 프로그램에 영향을 주지 않고 논리적 데이타 구조의 변경이 가능 응용 프로그램의 효율적 개발 가능 ii. 물리적 데이타 독립성 응용 프로그램과 논리적 데이타 구조에 영향을 주지 않고 물리적 데이타 구조의 변경이 가능 저장 장치의 효율적 개발 데이타 독립성 구현 기법 사상(mapping)

8 데이타 구조 간의 사상과 데이타 독립성 프로그램의 데이타 구조 데이타베이스의 논리적 구조 물리적 구조 응용 프로그램 1
응용 프로그램 2 응용 프로그램 n A B C D E F G 논리적 구조 사상 물리적 구조 사상 H ... 프로그램의 데이타 구조 데이타베이스의 논리적 구조 물리적 구조 ......

9 데이터베이스 관리 시스템 정의 기능 데이터베이스를 생성하여 운영하는데 필요한 기능을 제공하는 소프트웨어 (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

10 데이터베이스 관리 시스템 (계속) 대표적인 DBMS DBMS 개발사 특 징 액세스 Microsoft
특 징 액세스 Microsoft 윈도우즈 플랫폼으로 중소 규모 데이터베이스를 위한 데스크톱용 DBMS SQL 서버 저렴한 제품 가격으로 Windows NT 플랫폼에서 최적의 성능을 발휘 인포믹스 IBM 성능이 뛰어나며 병렬처리를 위한 멀티스레드(multithread)를 지원 DB2 다수 사용자가 다수 관계형 데이터베이스를 동시에 접근할 수 있는 대형 데이터베이스를 위한 시스템 오라클 Oracle PC급에서 메인프레임급까지 모두 설치할 수 있으며, 분산처리 지원 기능이 우수 MySQL MySQL AB 다양한 플랫폼과 API를 지원하는 비상업용 DBMS

11  DBMS의 장단점 장점 단점 데이타 중복(redundancy)의 최소화 데이타의 공용(sharing)
일관성(consistency) 유지 무결성(integrity) 유지 보안(security) 보장 표준화(standardization) 용이 전체 데이타 요구의 파악 조정 단점 운영비의 오버헤드 복잡한 자료 처리 방법 어려운 백업, 회복 시스템의 취약성

12 관계형 데이타베이스 현재 가장 많이 쓰이고 있는 논리적 데이터 모델 관계형 데이터 모델을 사용하는 이유 데이터 모델 (SOC)
관계형 데이터 모델(Relational Data Model) 1970년대 E.E Codd 박사에 의하여 제안 관계형 데이터 모델을 사용하는 이유 모델의 구조가 단순 집합 이론이라는 수학적 이론에 기반 SQL이라는 간단한 비절차적 언어 데이터 모델 (SOC) 구조(Structure) 연산(Operation) 제약조건(Constraint)

13 관계형 데이터 모델 관계형 데이터 모델 데이터 구조 관계 연산 제약 조건 집합 연산 릴레이션 관계 연산 무결성 규칙 튜플 집합
속성 집합 UNION, INTERSECT DIFFERENCE, PRODUCT 엔터티 무결성 규칙 참조 무결성 규칙 도메인 무결성 규칙 RESTRICTION, PROJECTION DIVIDE, JOIN

14 관계형 데이터 모델의 구조 릴레이션(relation) 2차원 테이블 구조
튜플(tuple)과 속성(attribute)의 집합으로 구성 STUDENT 릴레이션 속성명 릴레이션 스키마 STUDNO NAME USERID GRADE …… HEIGHT WEIGHT DEPTNO PROFNO 10101 전인하 jun123 4 176 72 101 9903 20101 이동훈 Dals 1 172 64 201 ……… 10203 윤진욱 Samba7 3 171 70 102 9905 10107 이광훈 huriky 175 92 인스턴스 튜플 속성

15 Relation의 특징 릴레이션에 저장된 튜플들은 유일 릴레이션에 저장된 튜플간에는 순서 관계가 없음
릴레이션은 튜플들의 집합이기 때문에 하나의 릴레이션에는 동일한 튜플이 저장될 수 없음 릴레이션에 저장된 튜플간에는 순서 관계가 없음 하나의 집합내에서 원소간의 순서는 무의미하기 때문에 릴레 이션에 저장된 튜플끼리는 순서 관계가 없다 주의 할 것은 튜플의 속성간에는 순서가 존재한다. 릴레이션을 구성하는 속성간에는 순서가 없음 학생1(학번, 이름, 주민번호, 사용자ID)과 학생2(학번, 주민번 호, 이름, 사용자ID)는 동일한 릴레이션 모든 속성 값은 원자 값(atomic value) 속성 값은 더 이상 나뉘어질 수 없는 논리적인 최소 단위를 의 미 예 : 이름

16 관계 연산자 릴레이션을 처리하기 위한 연산의 집합 기본 연산 폐쇄성질 (closure property)
릴레이션 : 투플의 집합 기본 연산 일반 집합 연산자 : 합집합 교집합 차집합 카티션 프로덕트 순수 관계 연산자 : 실렉트 프로젝트 조인 디비전 폐쇄성질 (closure property) 피연산자와 연산 결과가 모두 릴레이션 중첩(nested)된 수식의 표현이 가능

17 관계연산자의 주의점 합병가능(union-compatible)한 릴레이션
∪, ∩, - 연산의 피연산자들은 ⅰ. 차수가 같아야 함 ⅱ. 대응 애트리뷰트 별로 도메인이 같아야 함 iii. 대응되는 애크리뷰트 별로 의미가 같아여 함 ∪, ∩, × 연산은 결합적(associative)임 A∪B∪C = (A∪B)∪C = A∪(B∪C) ∪, ∩, × 연산은 교환적(commutative)임 A∪B = B∪A - 는 비교환적 (non-commutative)

18 일반집합연산자 . 합집합 (union,∪) ⅱ. 교집합 (intersect,∩) ⅲ. 차집합 (difference,-)
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의 차수

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

20 실렉트 (2) example 데이타 언어식 표현 R WHERE 조건식 조건2(조건1(R)) = 조건1(조건2(R))
  학과 = '컴퓨터' (학생)   학번 = 300  과목번호='C312'(등록)   중간성적<기말성적 (등록) 데이타 언어식 표현 R WHERE 조건식 조건2(조건1(R)) = 조건1(조건2(R)) = 조건1  조건2 (R) 선택도(selectivity) : 선택 조건에 의해 선택된 투플의 비율 선택도가 작은 조건부터 먼저 적용

21 프로젝트 (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)

22 조인 (JOIN, )(1) 세타조인 (theta-join) example 동일조인 (equi-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 ) }

23 조인 (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)) 즉 동일조인의 결과 릴레이션에서 애트리뷰트의 중복을 제 거함

24 디비전 (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

25 디비전(2) example 학과목(SC) 과목1(C1) 과목2(C2) 과목3(C3) 학번 (SNO) 과목번호 (CNO)
100 C413 C413 C312 C312 100 E412 C413 C413 200 C123 E412 300 C312 300 C324 300 C413 SC ÷ C1 SC ÷ C2 SC ÷ C3 400 C312 400 C324 학번 (SNO) 학번 (SNO) 학번 (SNO) 400 C413 400 E412 100 300 400 500 C312 300 400 400

26 개명 연산 (RENAME, ρ) 중간 결과 릴레이션에 이름을 지정하거나 애트리 뷰트 이름을 변경할 때 사용 ρS(E)
ρS(B1,B2, … ,Bm )(E) 관계 대수식 E의 결과 릴레이션의 이름을 S로 지정하면서 애 트리뷰트 이름을 각각 B1,B2, … ,Bm 으로 변경 ρ(B1,B2, … ,Bm )(E) 애트리뷰트 이름만 각각 B1,B2, … ,Bm 으로 변경

27 UNION INTERSECT DIFFERENCE 10 a b c x y PRODUCT DIVIDE a b c x y RESTRICTION JOIN PROJECTION a1 a2 a3 b1 b2 b1 b2 b3 c1 c2 c3 a1 a2 a3 b1 b2 c1 c2

28 제약조건 키 후보키(candidate key)
릴레이션의 특성 중 하나가 각 튜플은 같은 릴레이션에 속한 다른 튜플과는 다른 유일성을 만족해야 한다 투플을 유일하게 식별할 수 있는 애트리뷰트 집합 후보키, 기본키, 대체키, 수퍼키 후보키(candidate key) 릴레이션 R(A1, A2, ..., An)에 대한 애트리뷰트 집합 K = { Ai , Aj , ..., Ak }로서 아래 성질을 만족하면 후보키 ① 유일성(uniqueness) 각 투플의 K (= { Ai , Aj , ..., Ak }) 의 값(< Vi , Vj , ..., Vk >)은 유일 ② 최소성(minimality) K는 투플을 유일하게 식별하기 위해 필요한 애트리뷰트로만 구성

29 Key 수퍼키 (super key) 기본키 (primary key) 대체키 (alternate key)
유일성(uniqueness)은 만족하지만 최소성(minimality)을 만 족하지는 않는 애트리뷰트의 집합 기본키 (primary key) 후보키(candidate key)중에서 데이타베이스 설계자가 지정한 하나의 키 각 투플에 대한 기본키 값은 항상 유효(no null value) 대체키 (alternate key) 후보키중에 기본키를 제외한 나머지 후보키 예) 학생테이블에 학번과 주민번호가 있을 경우 학번- 기본키 주민번호- 대체키

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

31  무결성 제약(Integrity Constraint)
null 값 정보 부재를 명시적으로 표현하는 특수한 데이타 값 ① 알려지지 않은 값(unknown value) ② 해당 없음(inapplicable) 도메인 무결성(Domain integrity) 릴레이션의 속성이 지켜야할 제약 사항 학생의 학년은 1~4의 값만 가져야 한다. 개체 무결성(entity integrity) 기본키 값은 언제 어느 때고 null값을 가질 수 없다. 참조 무결성(referential integrity) 외래키의 값은 참조된 릴레이션의 기본키 값이거나 null이다.


Download ppt "1. 데이타베이스의 개념."

Similar presentations


Ads by Google