스마트정보시스템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