DBMS 기능 DBMS 구성 요소 물리적 저장 구조

Slides:



Advertisements
Similar presentations
컴퓨터와 인터넷.
Advertisements

You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
T-tree 엄종진 강원대학교 컴퓨터과학과.
최윤정 Java 프로그래밍 클래스 상속 최윤정
데이터 베이스 설계 및 실습 #1 - 오라클 설치 및 SQL 기본.
4. 순차 화일.
연결리스트(linked list).
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
MySQL 및 Workbench 설치 데이터 베이스.
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
Heesang kim PL/SQL 3 Heesang kim.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
11.텍스트를 위한 화일.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
12. 데이타베이스.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
01 데이타베이스 개론 데이타베이스의 등장 배경 데이타베이스의 발전 과정 데이타베이스의 정의 데이타베이스의 특징
TCP/IP Socket Programming…
10장. 예외처리.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
CHAP 12. 리소스와 보안.
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
11.텍스트를 위한 화일.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
인터넷응용프로그래밍 JavaScript(Intro).
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
24장. 파일 입출력.
01 화일의 기본 개념 02 화일 저장장치 03 화일 입출력 제어 04 순차화일 05 화일의 정렬 06 화일의 합병
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Chapter 03. 관계 데이터베이스 설계.
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
LabVIEW WiznTec 주임 박명대 1.
Database Management System
CHAP 21. 전화, SMS, 주소록.
Canary value 스택 가드(Stack Guard).
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
문성우 SQL 실습 Part Ⅰ 문성우.
데이터 동적 할당 Collection class.
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
AT MEGA 128 기초와 응용 I 기본적인 구조.
오라클 11g 보안.
7주차: Functions and Arrays
14 뷰(View) 뷰의 개념 뷰 관리.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
Chapter 10 데이터 검색1.
멀티미디어시스템 제 4 장. 멀티미디어 데이터베이스 정보환경 IT응용시스템공학과 김 형 진 교수.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
제 4 장 Record.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 2: Intro to Relational Model
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
6 객체.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

DBMS 기능 DBMS 구성 요소 물리적 저장 구조

7.1 DBMS의 기능 질의어 제공 (query language) 데이타 저장 관리 트랜잭션 관리 (transaction management) 데이타 무결성 유지 (data integrity) 동시성 제어 (concurrency control) 회복 (recovery) 보안 (security) Copyright  2002 by S.-g. Lee and J.-y. Chang

질의어 데이타 정의 언어(DDL) 데이타 조작 언어(DML) SQL: 질의어의 표준(DDL + DML) 스키마(schema) 정의 스키마: 데이타베이스에 저장될 데이타의 구조 메타 데이타(meta data) 스키마에 대한 정보 릴레이션 정보, 속성, 소성의 데이터 타입, 기본 키, 외래 키, 릴레이션 크기 등의 정보를 저장 데이타 사전(data dictionary) 메타 데이타를 저장하는 저장 구조 데이타 조작 언어(DML) 데이타의 추가, 삭제, 검색 SQL: 질의어의 표준(DDL + DML) Copyright  2002 by S.-g. Lee and J.-y. Chang

데이타 저장 관리 데이타베이스에 저장된 데이타를 운영 체제의 화일 시스템을 이용하여 입출력 화일 시스템에 저장된 저수준의 데이타와 응용 프로그램 사이의 인터페이스 제공 효율성에 따라 다양한 자료 구조로 저장 순차 화일, B+ 트리 등 질의, 결과 DBMS 저수준 데이타 운영 체제 File system Disk I/O Disk Copyright  2002 by S.-g. Lee and J.-y. Chang

데이타 무결성 유지 현실 세계에 존재하는 실제 정보와 일치 데이터가 갖추어야 할 조건 관계형 데이타베이스 모델에서의 무결성 제약 조건(5장) 개체 무결성 참조 무결성 키 제약 도메인 제약 응용상에서의 제약 DBMS의 기능을 통한 제약 Trigger Assertion 응용 프로그램내에서 제약 Copyright  2002 by S.-g. Lee and J.-y. Chang

기타 기능 트랜잭션 관리 보안 동시성 제어 회복 정의된 트랜잭션에 대해 ACID 성질을 만족시키도록 관리 다수의 사용자들에 대해 각기 다른 데이타에 대한 접근 권한을 부여하여 부당한 변경, 자료의 유출 방지 소유자(owner), DBA만이 권한을 부여 시간에 따른 권한 부여 예> 수강 신청 기간 중에만 학생들에게 수강 릴레이션에 대한 정보 갱신 권한을 허용하고 나머지 기간에는 검색만 허용 동시성 제어 회복 Copyright  2002 by S.-g. Lee and J.-y. Chang

7.2 DBMS 구성요소 질의 컴파일러 (query compiler) 내장 질의 전처리기 (embedded query preprocessor) 질의 실행기 (query evaluator) 저장 관리기 (storage manager) 트랜잭션 관리기 (transaction manager) 저장 구조 (storage structure) Copyright  2002 by S.-g. Lee and J.-y. Chang

DBMS의 구성 요소 도해 DBMS 구성 요소 Copyright  2002 by S.-g. Lee and J.-y. Chang

각 구성 요소의 역할(1) 질의 컴파일러 (query compiler) 비절차적 질의어(SQL) 하나의 질의어에 대해 다양한 실행 절차가 가능 가장 효율적인 저수준의 DBMS 내부 실행 절차 수립  질의 최적화(Query Optimization) 내장 질의 전처리기 (embedded query preprocessor) 응용 프로그램에 내장된 질의어  호스트 언어의 내부적인 함수 호출로 변환 질의 컴파일러의 기능을 활용하여 효율적인 세부 절차 수립 질의 실행기 (query evaluator) 질의 컴파일러와 내장 질의 전처리기에서 만들어진 저수준의 실행 절차를 실행 저장 관리기에 디스크 입출력을 요청 결과를 사용자나 응용 프로그램에 반환 Copyright  2002 by S.-g. Lee and J.-y. Chang

각 구성 요소의 역할(2) 저장 관리기 (storage manager) 트랜잭션 관리기 (transaction manager) 질의 실행기에서 요청되는 입출력 연산 수행 운영체제를 통하여 디스크 등의 저장 장치에 데이타를 관리 버퍼를 이용한 입출력 연산의 최소화 트랜잭션 관리기 (transaction manager) 트랜잭션의 ACID 성질을 만족하도록 관리 트랜잭션 상태 모니터링, 동시성 제어, 복구 저장 구조 (storage structure) 저장 데이타를 관리하기 위한 구조 데이타베이스, 데이타 사전, 로그 등 Copyright  2002 by S.-g. Lee and J.-y. Chang

DBMS의 질의처리 과정 DBMS 데이타베이스 데이타 사전 로그 저장 장치 질의 처리기 질의 컴파일러 저장 관리기 5 결과 1 질의어 입력 질의 처리기 select 학생.학번 From 학생, 학과 where … 실행 절차 질의 컴파일러 학생 학과 1 2 3 요청 데이타 사전 Monitoring 트랜잭션 관리기 로그 저장 관리기 버퍼 입출력 4 저장 장치 Copyright  2002 by S.-g. Lee and J.-y. Chang

DBMS의 질의처리 과정의 예 사용자의 입력질의 가능한 실행 절차의 예(일부) SELECT 학생.학번 FROM 학생, 학과 WHERE 학생.학과번호 = 학과.학과번호 and 학과.학과명 = “전산과” 가능한 실행 절차의 예(일부)  학생.학번 ( 학과.학과명 = “전산과” (학생  학생.학과번호 = 학과.학과번호 학과))  학생.학번 (( 학과.학과명 = “전산과” (학과))  학생.학과번호 = 학과.학과번호 학생)  학생.학번(( 학생.학번, 학생.학과번호 ( 학과.학과명 =“전산과”(학과))) 학생.학과번호 = 학과.학과번호 학생) 질의 컴파일러가 첫째 실행 절차가 비용이 가장 적은 것으로 판단하였다고 가정 Copyright  2002 by S.-g. Lee and J.-y. Chang

DBMS의 질의처리 과정의 예 생성된 저수준의 실행 절차 Copyright  2002 by S.-g. Lee and J.-y. Chang

DBMS의 질의처리 과정의 예 실행 과정 저장 관리기로부터 학과 릴레이션과 학생 릴레이션에 대한 읽기 연산을 요청 질의 실행기는 두 릴레이션의 조인 연산을 실행하여 임시 릴레이션(temp)을 생성 주기억 장치 혹은 디스크에 저장 임시 릴레이션의 각 튜플들을 검사해서 학과가 전산과인 튜플에 대해 학번 속성만을 추출하여 그 결과(result)를 사용자에게 출력. Copyright  2002 by S.-g. Lee and J.-y. Chang

DBMS의 질의처리 과정의 예 트랜잭션 관리기의 역할 최종 로그 기록 <T1 start> 로그에 트랜잭션이 시작했다는 사실을 기록 트랜잭션이 쓰기 연산을 실행가게 되면 그 내용을 로그에 기록 트랜잭션이 실패하게 되면 즉시 복귀를 실행 저장 관리기가 읽기 연산이나 쓰기 연산을 실행하게 되면 2단계 잠금 규약에 따라 적절한 잠금과 해제 연산을 실행 트랜잭션이 정상적으로 종료되면 이 사실을 로그에 다시 기록 최종 로그 기록 <T1 start> <T1 , z, temp> <T1 commit> Copyright  2002 by S.-g. Lee and J.-y. Chang

DBMS의 질의처리 과정의 예 질의가 응용 프로그램에 내장된 것일 경우 전처리기가 응용 프로그램내의 질의부분을 추출 질의 컴파일러에 최적의 실행 절차를 만들어내도록 요청 질의 컴파일러가 실행 절차를 생성 전처리기는 그 내용을 DBMS가 제공하는 함수 호출문을 이용하여 응용 프로그램을 재구성 최종적으로 응용 프로그램을 컴파일하고 실행 프로그램을 생성 응용 프로그램을 실행 질의 컴파일러는 더 이상 필요 없고 질의 실행기만을 이용하여 질의를 실행 Copyright  2002 by S.-g. Lee and J.-y. Chang

7.3 물리적 저장구조 물리적 데이터베이스 화일 구조 클러스터링 인덱스 Copyright  2002 by S.-g. Lee and J.-y. Chang

물리적 데이타베이스 저장 매체의 관점에서 본 데이타베이스 형태 릴레이션과 튜플의 저장 형태 파일 시스템의 기능을 이용 Copyright  2002 by S.-g. Lee and J.-y. Chang

화일 구조 DBMS의 모든 데이타는 화일 형태로 저장 블록(block) 페이지(page) 주기억 장치와의 고정된 입출력 단위 512 byte ~ 릴레이션(튜플)과 파일(레코드)의 관계 Copyright  2002 by S.-g. Lee and J.-y. Chang

화일 구조 예) 하나의 튜플을 저장하는데 최소 24byte가 필요 create table 학과 { 학과번호 integer, 학과명 char(10), 대학명 char(10)} 하나의 튜플을 저장하는데 최소 24byte가 필요 각 레코드는 화일의 블록 내에서 고정된 길이 혹은 가변적인 길이로 저장된다. Char가 아닌 varchar의 경우 가변길이 문자열이 효율적 레코드1 레코드2 … 레코드n 레코드1 레코드2 … 레코드n 블록 내에 고정 길이로 저장된 레코드의 예 블록 내에 가변 길이로 저장된 레코드의 예 Copyright  2002 by S.-g. Lee and J.-y. Chang

클러스터링(clustering) 순차 화일 클러스터링 레코드들의 순서에 특별한 의미가 없다 같이 쓰이는 경우가 많은 데이타들이 분산되어 있으면 탐색 시간이 오래 걸림 클러스터링 동시에 자주 사용되는 레코드들을 묶어서(clustering) 같은, 혹은 인접한 블록에 저장 탐색 시간(seek time)을 줄임 Copyright  2002 by S.-g. Lee and J.-y. Chang

클러스터링(clustering) 클러스터링이 안된 파일 구조 Copyright  2002 by S.-g. Lee and J.-y. Chang

클러스터링(clustering) 단과대학별로 클러스터링이 된 화일구조 단과대학별 검색 이외의 검색에는 도움이 안됨 하나의 릴레이션 당 하나의 클러스터링만 가능 Copyright  2002 by S.-g. Lee and J.-y. Chang

인덱스(index) 특정 조건을 만족하는 레코드 검색 방법 그 레코드가 파일 내의 어떤 블록 내에 위치하는가를 우선 알아야 함 미리 알지 못한다면 모든 블록들을 읽어 순차적으로 검색해서 원하는 레코드를 찾아야 함 인덱스는 원하는 레코드를 빠른 시간내에 찾을 수 있는 기번을 제공 예) 도서관에서 인덱스를 이용한 도서 검색 Copyright  2002 by S.-g. Lee and J.-y. Chang

인덱스 레코드에 대한 저장 위치를 별도로 기록한 구조 (검색 키, 주소) 쌍으로 구성 검색 키: 검색에 이용되는 값 주소: 레코드의 물리적 위치 검색 키로 지정된 값 이외의 속성으로 검색 시에는 도움이 안됨  별도의 인덱스 필요 검색 키 주소 Copyright  2002 by S.-g. Lee and J.-y. Chang

인덱스 인덱스의 생성 인덱스와 성능 인덱스의 자료 구조 대부분의 DBMS에서는 기본 키에 대한 인덱스는 자동으로 생성 DBA가 필요에 따라 질의어를 통해 인덱스를 생성 인덱스와 성능 검색에 대한 성능은 일반적으로 증가 삽입, 삭제, 수정에 대해서는 성능 저하가 발생할 수 있다(인덱스의 변경 비용) 인덱스를 위한 저장 공간의 소모 인덱스의 자료 구조 다양한 용도의 자료 구조가 존재 속도, 저장 공간, 운용의 효율성 등을 고려 B+ 트리 인덱스 구조가 보편적으로 사용된다. Copyright  2002 by S.-g. Lee and J.-y. Chang

B+ 트리 인덱스 자료 구조 B+ 트리 루트와 하위 노드들은 검색키와 하위 노드의 주소를 기록 단말 노드는 인근 형제 노드에 대한 포인터를 가진다 노드 주소 검색키 검색키 … 단말 노드는 검색키와 실제 저장된 데이타에 대한 주소를 기록 검색키 레코드 주소 리스트 … 형제 노드 주소 Copyright  2002 by S.-g. Lee and J.-y. Chang

B+ 트리 인덱스 자료 구조 B+ 트리의 성질 루트에서 단말 노드까지의 모든 경로의 길이는 같다. 루트 노드는 최대 n개의 자식 노드를 갖는다. n을 차수라 한다 루트 노드와 말단 노드를 제외한 중간 노드들은 최소 n/2 개 최대 n개의 자식 노드를 갖는다. 각 노드의 검색 키 값은 정렬된다. 각 검색 키 값에 대해 왼쪽의 포인터가 가리키는 자식 노드는 그 검색 키 값보다 작거나 같은 값을 가지고, 오른쪽 포인터가 가르키는 자식 노드는 큰 값을 가진다. Copyright  2002 by S.-g. Lee and J.-y. Chang

B+ 트리 인덱스 자료 구조 차수가 3인 B+ 트리의 예 Copyright  2002 by S.-g. Lee and J.-y. Chang

B+ 트리 인덱스 자료 구조 루트 및 중간 노드 상세 구조 P1 ~ Pn은 자식 노드를 가리키는 포인터 key1 ~ keyn-1은 검색키 key1 < key2 < …<keyn-1 Pi+1이 가리키는 모든 하위 노드들의 검색키는 keyi보다는 크고 keyi+1보다는 작거나 같은 값을 갖는다. Copyright  2002 by S.-g. Lee and J.-y. Chang

B+ 트리 인덱스 자료 구조 B+ 트리를 이용한 성능 향상의 정도 레코드의 수가 많을 수록 인덱스를 이용한 검색의 성능은 인덱스가 없는 경우보다 월등함 예) 10,000개의 레코드 인덱스가 없으면 최악의 경우 10,000번을 검색 차수가 10인 B+-트리 인덱스가 존재하면 루트부터 4번의 노드 접근만이 필요함 Copyright  2002 by S.-g. Lee and J.-y. Chang

SQL을 이용한 인덱스 정의 SQL 표준에는 포함되지 않으나 대부분의 DBMS에서 지원 생성 삭제 CREATE INDEX 인덱스이름 ON 릴레이션이름 (속성 리스트) 검색키의 리스트 삭제 DROP INDEX 인덱스이름 Copyright  2002 by S.-g. Lee and J.-y. Chang

SQL을 이용한 인덱스 정의 예) 학과 릴레이션에서 학과명에 대한 인덱스 생성 명령은 다음과 같다. CREATE INDEX dept_index on 학과 (학과명) 학과명의 값들이 학과 릴레이션에 유일하게 존재한다면 CREATE UNIQUE INDEX dept_index on 학과 (학과명) 학과 릴레이션에 튜플을 삽입할 경우 여기서 생성된 인덱스를 이용하여 동일한 학과명이 이미 존재하는 가를 먼저 검색 만약 그렇다면 삽입을 하지 않고 에러 메시지를 내보냄 학과명을 학과 릴레이션의 후보 키로 정의하는 효과 Copyright  2002 by S.-g. Lee and J.-y. Chang