1 / 31

1. 데이타베이스의 개념

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

temima
Download Presentation

1. 데이타베이스의 개념

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 데이타베이스란 ? • 한 조직의 여러 응용 시스템들이 공용(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의 목적 • 데이터의 독립성  데이터의 종속성 • 데이터의 논리적 구조나 물리적 구조가 변경되도 응용 프로그램은 영향 받지 않는 것

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

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

  8. ...... 응용 프로그램 1 응용 프로그램 2 응용 프로그램 n 프로그램의 데이타 구조 ...... A B C D B E F G A C 논리적 구조 사상 데이타베이스의 논리적 구조 ... A B C D E F G H 물리적 구조 사상 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

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

  12. 관계형데이타베이스 • 현재 가장 많이 쓰이고 있는 논리적 데이터 모델 • 관계형 데이터 모델(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릴레이션 속성명 릴레이션스키마 인스턴스 튜플 속성

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

  16. 관계 연산자 • 릴레이션을 처리하기 위한 연산의 집합 • 릴레이션: 투플의 집합 • 기본 연산 • 일반 집합 연산자 : 합집합 교집합 차집합카티션프로덕트 • 순수 관계 연산자 : 실렉트 프로젝트 조인 디비전 • 폐쇄성질 (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,∪) 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   학과 = '컴퓨터' (학생)   학번 = 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) 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) 학과목(SC) 과목1(C1) 과목2(C2) 과목3(C3) • example 학번 (SNO) 과목번호 (CNO) 과목번호 (CNO) 과목번호 (CNO) 과목번호 (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) 관계 대수식 E의 결과 릴레이션의 이름을 S로 지정 • ρS(B1,B2, … ,Bm )(E) 관계 대수식 E의 결과 릴레이션의 이름을 S로 지정하면서 애트리뷰트 이름을 각각 B1,B2, … ,Bm으로 변경 • ρ(B1,B2, … ,Bm )(E) 애트리뷰트 이름만 각각 B1,B2, … ,Bm으로 변경

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

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

  29. Key • 수퍼키(super 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이다.

More Related