스마트정보시스템5장_데이터베이스의관리

Download Report

Transcript 스마트정보시스템5장_데이터베이스의관리

5장 데이터베이스의 관리
스마트시대의 정보시스템
이프레스, 2014
학습목표
1. 데이터베이스, 데이터베이스시스템,
데이터베이스관리시스템(DBMS)에 대해 이해한다
2. 데이터베이스시스템의 설계과정에 대해 살펴본다
3. 개체-관계 모델(ERD)에 대해 이해한다
4. 관계 데이터 모델의 구조, 제약 조건,
그리고 연산자에 대해 살펴본다
5. 정규화의 개념에 대해 이해한다
6. 트랜잭션에 대한 이해를 돕는다
2
1. 데이터베이스시스템의 개요
 데이터(data)


현실세계(real world)의 사물이나 사건을 관찰 또는
측정하여 얻은 사실(fact) 또는 값(value)
숫자, 문자열, 사진, 미디어파일 등을 포함
 데이터베이스(database)


기업 또는 조직의 여러 응용 프로그램들이 공동으로 사용할
수 있도록 체계적으로 컴퓨터에 저장되어 있는 데이터들의
집합
단순한 데이터들의 집합도 데이터베이스라고 할 수 있으나
일반적으로 컴퓨터에 저장되어 있는 데이터들의 집합
3
1. 데이터베이스시스템의 개요
 데이터베이스시스템(database system)


데이터를 컴퓨터에 저장하여 사용자로 하여금 필요할 때
데이터를 수정하거나 검색할 수 있도록 하는
컴퓨터기록시스템
데이터베이스, 데이터베이스관리시스템(DBMS),
컴퓨터 하드웨어, 사용자로 이루어짐
 데이터베이스관리시스템
(database management system: DBMS)

데이터베이스시스템의 구성요소로서 사용자 또는 응용
프로그램이 데이터베이스 작업을 하기 위해 사용하는
소프트웨어
4
파일처리시스템과 데이터베이스시스템
 파일처리시스템(file processing system)


데이터베이스시스템 이전에 응용 프로그래머들이 작성한
프로그램을 통해 데이터를 파일에 직접 저장하고 필요하면
파일을 읽어 필요한 계산을 하던 시스템을 통칭
각 파일들이 통합적으로 관리되지 않기 때문에 중복이 많고
일관성이 떨어짐
5
파일처리시스템과 데이터베이스시스템
 데이터베이스시스템


공유(sharing)와 통합(integration)
 공유 : 여러 사용자나 응용 프로그램이 데이터베이스에
동시에 접근
 통합 : 데이터를 통일된 체계 아래 한곳에서 관리
장점
 데이터 중복을 통제할 수 있다.
 데이터 독립성 확보
 데이터를 동시에 공유
 데이터 보안이 향상된다.
 데이터 무결성(integrity) 유지
 표준화를 강화
 트랜잭션(transaction) 지원이 가능
 응용 프로그램 개발비용이 줄어든다.
6
데이터베이스시스템의 구성
 데이터베이스


저장된 데이터베이스(stored database)
데이터사전(data dictionary)
 데이터베이스 관리시스템


데이터 정의어(data definition language: DDL)
데이터 조작어(data manipulation language: DML)
 하드웨어

CPU, 주메모리, 저장장치, 입출력장치 등
 사용자



데이터베이스관리자 (database administrator: DBA)
응용 프로그래머 (application programmer)
일반 사용자 : 질의어 직접 사용 또는 응용 프로그램 사용
7
2. 데이터 모형화 (data modeling)
 모형화


현실세계에 관한 데이터를 컴퓨터에 저장하기 위해서는
모형화(modeling) 필요
관심을 갖는 시스템의 경계(boundary)를 분명히 해야 함
 개념적 설계 (개념적 모형화)

현실세계를 개념적으로 요약
 논리적 설계 (데이터 모형화)

전체 데이터베이스가 조직된 구조를 논리적으로 표현
 물리적 설계 (데이터 구조화)

데이터가 파일에 저장되는 문제에 대해 설계
8
2. 데이터 모형화 (data modeling)
9
개념적 모형화 (conceptual modeling)
 개체-관계 모델


현실세계를 개체(entity)와 그 개체들 간의
관계(relationship)로 표현
개체 : 데이터베이스에서 표현하려고 하는 현실세계의 구별
가능한 객체(object) 또는 대상



유형 (도서, 학생) vs. 무형 (학과, 과목)
정규개체 (사원, 건물) vs. 약한개체 (부양가족, 강의실)
관계 : 개체들 사이에 존재하는 연관성

과목수강(학생–과목), 학생지도(교수–학생)
부서소속(부서–사원), 부서관리(부서–사원)
10
개념적 모형화 (conceptual modeling)
 개체-관계 모델

관계 : 개체들 사이에 존재하는 연관성



속성 : 개체나 관계를 설명하는데 사용하는 항목


일대일 : 부서관리(부서–사원)
일대다 : 부서소속(부서–사원), 학생지도(교수–학생)
다대다 : 과목수강(학생–과목)
전체참여 : 모든 학생은 지도교수가 있다.
부분참여 : 일부 교수는 학생지도를 하지 않는다.
도서 – 도서제목, 저자이름, ISBN 등
학생 – 학번, 이름, 주소 등
개체관계도 : 현실세계를 개체-관계 모델로 표현한 결과
11
개체관계도(entity-relationship diagram)
12
개체관계도(entity-relationship diagram)
13
데이터 모형화 (data modeling)
 개념스키마 (conceptual schema)

논리적으로 데이터베이스 전체가 어떻게 구성되어 있는가를
보여주는 명세

스키마 : 데이터베이스의 구성과 제약조건에 대한 명세
 계층 데이터 모델

데이터베이스를 트리(tree)구조로 표현
 네트워크 데이터 모델

데이터베이스를 트리 구조 대신 그래프 구조로 표현
상위 노드를 두 개 이상 가질 수 있음
 관계 데이터 모델

데이터베이스를 2차원 테이블의 행과 열로 표현
14
계층데이터 모델과 네트워크 데이터 모델
15
관계 데이터 모델 (relational data model)
16
데이터 구조화 (data structuring)
 내부스키마 (internal schema)



데이터가 파일에 저장되는 문제를 설계하는 데이터구조화의
결과로 생겨나는 명세
파일 구조

순차적 파일 (sequential file),

인덱스된 순차적 파일 (indexed sequential file),

직접 파일 (hash file)
인덱스

B+ 트리
17
3. 관계 데이터 모델 (relational data model)
 용어




릴레이션(relation) : E.F. Codd가 관계 데이터 모델을
제시하면서 테이블을 가리키는 용어로 사용.
애트리뷰트(attribute) : 릴레이션의 열(column)을
나타내며, 릴레이션을 표현하는데 쓰이는 속성을 가리킨다.
투플(tuple) : 릴레이션의 행(row)를 나타내며,
애트리뷰트의 값들로 이루어져 특정 개체를 표현한다.
릴레이션 스키마 (relation schema) : 릴레이션
타입(type)이라고도 하며 릴레이션이 어떤 애트리뷰트로
이루어져 있는지를 나타내는 명세.
18
3. 관계 데이터 모델 (relational data model)
 용어




릴레이션 인스턴스(realtion instance) : 특정 시점에
투플들의 집합으로 표현되는 릴레이션의 값(value)
키(key) 또는 후보키(candidate key) : 특정 투플을
유일하게 식별할 수 있는 애트리뷰트 또는 애트리뷰트들의
집합
기본키 (primary key) : 후보키 중 하나를 골라 기본키로
지정한 것.
외래키 (foreign key) : 자신 또는 다른 릴레이션의 키를
참조하는 애트리뷰트
19
3. 관계 데이터 모델 (relational data model)
 구조 및 용어
20
3. 관계 데이터 모델 (relational data model)
 릴레이션(relation)의 특징




애트리뷰트는 이름으로 구분하고 좌우 순서가 없다.
테이블에는 좌우 순서가 있다.
각 투플에서 애트리뷰트는 정확히 하나의 값을 갖는다.
각 투플은 위아래 순서가 없다.
테이블에는 위아래 순서가 있다.
중복된 투플은 존재하지 않는다.
테이블(SQL 출력)에는 중복이 존재할 수 있다.
21
3. 관계 데이터 모델 (relational data model)
 연산자 (operator)

집합 연산자
예:
22
3. 관계 데이터 모델 (relational data model)
 연산자 (operator)

릴레이션 연산자
예:
23
3. 관계 데이터 모델 (relational data model)
 SQL(structured query language)
24
4. 정규화 (normalization)

주어진 개념 스키마(conceptual schema)가 일으킬 수
있는 오류를 미리 발견하여 필요하면 릴레이션을
분해함으로써 오류를 미연에 방지할 수 있는 이론
 정규형



제1정규형(first normal form) : 릴레이션의 모든
애트리뷰트가 원자값을 갖는 릴레이션
제2정규형(second normal form) : 제1정규형이면서
키가 아닌 모든 애트리뷰트가 기본키에 완전 함수종속
제3정규형(third normal form) : 제2정규형이면서 키에
속하지 않은 모든 애트리뷰트가 서로 독립
25
제1정규형(1NF)
 문제점



삽입 이상 : 200802022 이상수 경영정보 삽입 불가
삭제 이상 : 201010072 송치운 삭제 시 송치운의
경영학과 소속 사실도 삭제
갱신 이상 : 김지성의 이름을 김지영으로 수정하려면 두
행의 값을 수정해야 함
26
함수종속 다이어그램
(funtional dependency diagram )
 함수종속



애트리뷰트 그룹 (X)의 값을 알면 애트리뷰트 (Y)의 값이
유일하게 결정될 때 Y는 X에 함수종속
완전 함수종속 : 성적은 기본키에 완전 함수종속
부분 함수종속 : 이름, 학과명, 학과전화번호, 소속대학은
기본키의 일부분인 학번에 함수종속
27
제2정규형(2NF)
 문제점



삽입 이상 : 회계학과를 경영대에 신설하였으나 삽입 불가
삭제 이상 : 경영정보학과의 김지성을 삭제하면
경영정보학과가 경영대학에 있다는 사실도 삭제
갱신 이상 : 경영학과 전화번호를 842-4500으로
수정하려면 두 행의 값을 수정해야 함
28
함수종속 다이어그램
(funtional dependency diagram )
 함수종속



이행적 함수종속 : 함수종속이 A–>B 와 B–>C로부터
A–>C가 얻어질 때 이를 이행적 함수종속이라 한다.
학번–>학과명, 학과명–>학과전화번호, 소속대학
 학번–> 학과전화번호, 소속대학
분해 : (A–>B)와 (B–>C)로 분해
29
제3정규형(3NF)
30
무손실 분해와 역정규화
 무손실 분해 (non-loss decomposition)


분해된 릴레이션은 조인(join)연산으로 원래의 릴레이션이
될 수 있어야 한다.
무손실 분해 : 조인연산을 하였을 때 원래의 릴레이션을
얻을 수 있는 분해
원래의 릴레이션을 얻을 수 없는 분해는 손실 분해
 역정규화 (denormalization)

데이터를 빠르게 검색하는 효율성을 위해 정규화를 하지
않고 중복을 허락하는 것을 말한다.
31
손실 분해의 예
32
동시성 제어(concurrency control)



직렬스케줄 : 여러 개의 트랜잭션들이 순차적으로
수행되는 스케줄
비직렬스케줄 : 여러 개의 트랜잭션들이 서로 얽혀서
수행되는 스케줄
직렬 가능(serializable) : 비직렬스케줄이라 하더라도 그
결과가 직렬 스케줄과 같은 경우
33
동시성 제어(concurrency control)
34
동시성 제어(concurrency control)
 로킹(locking)
한 트랜잭션이 Lock을 얻으면 다른 트랜잭션들은 동일한 행
또는 테이블에 접근할 수 없도록 제한하는 것


공유Lock (shared lock) : 데이터를 읽기만 할 목적으로
접근할 때 다른 트랜잭션과 공유할 수 있는 Lock(S-Lock)
독점Lock (exclusive lock) : 데이터를 갱신할 목적으로
접근할 때 독점적으로 얻는 Lock (X-Lock)
35
동시성 제어(concurrency control)
36
동시성 제어(concurrency control)
37
동시성 제어(concurrency control)
 교착상태(dead lock)

두 개 이상의 트랜잭션들이 서로 다른 트랜잭션이 Lock을
해제하기를 기다리며 무한정 대기하고 있는 상태
38
장애(failure)와 회복(recovery)
 장애

트랜잭션 장애 : 트랜잭션의 오류로 발생

미디어 장애 : 저장장치의 오류로 발생

시스템 장애 : 정전이나 운영체제의 오류로 발생
 회복

트랜잭션 장애  ROLLBACK

미디어 장애  backup된 데이터베이스로 복구

시스템 장애  로그파일에 저장된 내용을 취소(undo)
또는 재실행(redo)
39
장애(failure)와 회복(recovery)

검사 시점(check point) : DBMS가 버퍼에 있는
데이터베이스 변경 내용을 물리적으로 하드디스크에
저장하는 시점
redo : TrB, TrD
undo : TrC, TrE
40
보안과 권한관리
 접근제어기법


임의제어 (discretionary security control) : 각각의
사용자에게 접근 가능한 데이터베이스 객체를 지정하는 것
필수제어 (mendatory security control) : 사용자는
취급인가(clearance)를 갖고 있고 데이터 객체는 보안
등급(classification)을 지정하여 사용자가 자신에게
허가된 등급의 데이터만 접근할 수 있게 하는 것.
 사용자는 자신의 취급인가와 같거나 낮은 등급의
데이터를 읽을 수 있다.
 사용자는 자신의 취급인가와 동일한 등급의 데이터만
수정할 수 있다.
41
보안과 권한관리


3등급 취급인가의 검색 결과
1053 노현묵 70
2011 김지성 80
2등급 취급인가의 검색결과
1053 노현묵 70
42