Download presentation
Presentation is loading. Please wait.
1
12. 데이타베이스
2
화일과 데이타베이스 화일 처리 시스템 각 응용 프로그램이 개별적인 화일 처리 루틴을 작성 응용 프로그래머에 부담
3
▶ 화일 관리 시스템 화일 관리 시스템(file management system) 화일 처리 루틴 공유
데이타 화일의 공용은 없음
4
▶ 데이타의 중복성(data redundancy)
같은 내용의 데이타를 여러 화일에 중복 저장 급여 화일 인사 화일 ===> 저장 공간의 낭비, 데이타 모순성(data inconsistency) 야기. 교수 번호 이름 학과 호봉 봉급 공제액 지급액 주민 등록번호 주소 교수 번호 이름 학과 호봉 주민 등록 번호 연구실 번호 주소 경력
5
▶ 데이타 종속성(data dependency)
응용 프로그램(application programs)과 데이타(data) 간의 상호 의존 관계 데이타의 구성 방법이나 접근 방법의 변경 시 관련 응용 프로그램도 같이 변경
6
데이타베이스 관리 시스템 데이타베이스 관리 시스템(DBMS: database management system)
응용 프로그램과 데이타의 중재자로서 모든 응용 프로그램들이 데이타베이스(database)를 공용할 수 있게 관리해 주는 소프트웨어 시스템 기능 데이타의 정의(data definition), 표현, 저장 데이타 조작(data manipulation) 보안, 회복, 공용 제어, 무결성 기법 등을 포함한 데이타 제어(data control) 사용자 인터페이스(user interface) 제공
7
▶ 데이타베이스 관리 시스템과 데이타 화일
8
데이타베이스 관리 시스템의 장단점 1. 장점 2. 단점 데이타 중복(redundency)의 최소화
데이타 공용(sharing) 제공 일관성(consistency) 유지 무결성(integrity) 유지 보안(security) 보장 표준화(standardization) 용이 상충되는 데이타 요구의 조정 2. 단점 운영비의 증대 데이타 처리 방법이 복잡 백업(backup), 회복(recovery)이 복잡 시스템의 취약성
9
데이타 독립성(data independency)
DBMS의 목적은 데이타 독립성을 제공 (1) 논리적 데이타 독립성(logical data independence) 응용 프로그램 자체에 영향을 주지 않고 데이타베이스의 논리적 구조를 변경 가능 (2) 물리적 데이타 독립성 (physical data independence) 응용 프로그램과 논리적 데이타 구조에 영향을 주지 않고 물리적 데이타 구조의 변경 가능
10
데이타 독립성 데이타 독립성과 데이타 구조 간의 사상
11
데이타베이스의 저장과 접근 1. 데이타베이스의 저장 데이타베이스의 내부적 운영 저장 구조
데이타를 저장하는 방법과 접근에 관련된 작업 디스크(DASD) 사용 - 디스크 접근 (디스크 I/O)횟수를 최소화 저장 구조 디스크에 데이타가 배치, 저장되는 형식 다수의 저장구조 지원 DB의 부분별로 적절한 저장 성능 요건 변경 시 저장 구조 변경 데이타베이스의 물리적 설계 DB의 사용 방법, 응용, 실행빈도수에 따라 적절한 저장 표현을 선정하는 과정
12
2. 데이타베이스의 접근 데이타베이스의 일반적인 접근 과정
13
(1) 디스크 관리자(1) 기본 I/O 서비스 (basic I/O service) 물리적 디스크 주소 화일 관리자 지원
운영체제의 한 구성요소 물리적 디스크 주소 화일 관리자 지원 디스크를 일정 크기의 페이지로 구성된 페이지 세트들의 논리적 집단으로 취급하도록 지원 데이타 페이지 세트와 하나의 자유공간 페이지 세트 페이지 세트 : 유일한 페이지 세트 ID를 갖는다. 디스크 관리 페이지 번호 (사상) 물리적 디스크 주소 → 화일 관리자를 장비에서 독립 화일 관리자의 요청에 따라 페이지 세트에 대한 페이지의 할당과 회수
14
(1) 디스크 관리자(2) 디스크 관리자(disk manager)의 페이지 관리 연산 – 화일 관리자가 명령
페이지 세트 S 로부터 페이지 P의 검색 페이지 세트 S 내에서 페이지 P 의 교체 페이지 세트 S 에 새로운 페이지 P 의 첨가 (자유공간 페이지 세트의 빈 페이지 할당) 페이지 세트 S 에서 페이지 P 의 제거 (자유공간 페이지 세트에 반납) 화일 관리자가 필요로 하는 연산
15
(2) 화일 관리자 DBMS가 디스크를 저장 화일들의 집단으로 취급할 수 있도록 지원 저장 화일(stored file)
한 타입의 저장 레코드 어커런스들의 집합 한 페이지 세트는 하나 이상의 저장 화일을 포함 화일 이름 또는 화일 ID로 식별 저장 레코드는 레코드 번호(record number) 또는 레코드 ID(RID: Record Identifier)로 식별 전체 디스크 내에서 유일 <페이지 번호, 페이지 오프셋>
16
(2) 화일 관리자 화일 관리자(file manager)의 연산 저장 화일 f 에서 저장 레코드 r의 검색
새로운 레코드 ID, r 을 부여 저장 화일 f 에서 저장 레코드 r 의 제거 새로운 저장 화일 f 의 생성 저장 화일 f 의 제거
17
3. 페이지 세트와 화일 디스크 관리자 화일 관리자가 물리적 디스크 I/O가 아닌
페이지 관리(page management)
18
▶ 대학 데이타베이스 예) 저장 화일들은 28개의 페이지로 구성된 페이지 세트에 저장 각 레코드들은 하나의 페이지를 차지 학생
학번 이름 학년 학과 S1: S2: S3: S4: S5: 100 200 300 400 500 나 수영 이 찬수 정 기태 송 병길 박 종화 4 3 1 2 컴퓨터 전 기 산 공
19
▶ 대학 데이타베이스 과목 과목 번호 과목 이름 학점 담당 교수 C1: C2: C3: C4: C5: C123 C312 C324
E412 프로그래밍 자료구조 화일구조 데이타베이스 반도체 3 김 성국 황 수관 이 규찬 이 일로 홍 봉진
20
▶ 대학 데이타베이스 등록 학번 과목번호 성적 E1: E2: E3: E4: E5: E6: E7: E8: E9: E10:
100 200 300 400 500 C413 E412 C123 C312 C324 A B C
21
▶ 연산 처음(빈 디스크) : 화일 관리자 : 학생 화일에 있는 5개의 레코드 적재
하나의 자유 공간 페이지 세트만 존재(1∼27) 페이지 0 제외 : 디스크 디렉토리 화일 관리자 : 학생 화일에 있는 5개의 레코드 적재 디스크관리자 : 자유공간 페이지 세트의 페이지 1에서 5까지를 "학생 페이지 세트" 라고 이름을 붙이고 할당 과목과 등록 화일에 대한 페이지 세트를 할당 4개의 페이지 세트가 만들어짐 "학생"(1∼5), "과목"(6∼10), "등록"(11∼21), "자유공간" 페이지 세트 (페이지 22∼27) 화일 관리자 : 새로운 학생 S6(학번 600)을 삽입 디스크 관리자 : 첫 번째 자유 페이지 (페이지 22)를 자유공간 페이지 세트에서 찾아서 학생 페이지 세트에 첨가
22
▶ 연산 화일 관리자 : 새로운 과목 C6(E 515)를 삽입 화일 관리자 : S4를 삭제
디스크 관리자 : 자유공간 페이지 세트에서 첫 번째 자유페이지 (페이지 2)를 찾아서 과목 페이지 세트에 첨가 화일 관리자 : S4를 삭제 디스크 관리자 : S4가 저장되어 있던 페이지 (페이지 4)를 자유공간 페이지 세트에 반납
23
▶ 대학 데이타베이스의 초기 적재 후의 디스크 배치도
7 C2 14 21 1 8 15 2 9 3 10 S1 S2 S3 C3 C4 C5 E4 E5 E11 4 페이지번호 S4 22 5 S5 6 C1 23 16 E6 17 E7 24 11 12 13 E1 E2 E3 18 E8 19 E9 20 E10 25 26
24
▶ 일련의 삭제 연산이 수행된 뒤의 디스크 배치도
7 21 1 8 2 9 3 10 22 23 24 25 26 27 S1 C6 S3 C2 C3 C4 C5 E11 4 S6 5 S5 6 C1 14 15 E4 E5 16 17 18 E6 E7 E8 19 20 E9 E10 11 12 13 E1 E2 E3
25
▶ 일련의 삭제 연산이 수행된 뒤의 디스크 삽입, 삭제 연산 실행 후에는 페이지들의 물리적 인접성이 없어짐 포인터 표현 방법
한 페이지 세트에서 페이지의 논리적 순서가 물리적 인접으로 표현되지 않음 페이지 : 페이지 헤드 - 제어정보 저장 포인터 : 논리적 순서에 따른 다음 페이지의 물리적 주소 다음 페이지 포인터는 디스크 관리자가 관리 (화일 관리자는 무관)
26
▶ 페이지 헤드에 “다음 페이지” 포인터를 포함시킨 경우
페이지번호 다음 1 2 3 4 5 7 8 9 10 11 12 15 14 16 17 18 19 21 22 23 24 25 26 x 13 20 27 S1 C6 C4 C5 E1 E2 S5 S3 C2 C3 E6 E7 E8 E9 E4 E5 E11 S6 6 E3 C1 E10
27
▶ 디스크 디렉터리(페이지 세트 디렉터리) 실린더 0, 트랙 0에 위치 디스크에 있는 모든 페이지 세트의 리스트와
각 페이지 세트의 첫 번째 페이지에 대한 포인터 저장 디스크 디렉터리
28
▶ 화일 관리자(file manager) 저장 레코드 관리 (stored record management) 예
DBMS가 페이지 I/O 에 대한 세부적인 사항에 대해 알 필요 없이 저장 화일과 저장 레코드만으로 동작하게 함 예 하나의 페이지에 여러 개의 레코드 저장 학생 레코드에 대한 논리적 순서는 학번 순
29
▶ 5개의 학생 레코드를 처음 적재한 페이지 P ① 페이지 p에 5개의 학생레코드(S1∼S5)가 삽입되어 있다고 가정 P S1
30
▶ 5개의 학생 레코드를 처음 적재한 페이지 P ② DBMS : 학생 레코드 S9(학번 900)의 삽입 요청
페이지 p의 학생레코드 S5 바로 다음에 저장 ③ DBMS : 레코드 S2의 삭제 요청 - 페이지 p에 있는 학생 레코드 S2를 삭제하고 뒤에 있는 레코드들을 모두 앞으로 당김 ④ DBMS : 레코드 S7(학번 700)의 삽입 요청 - 학생레코드 S5 다음에 들어가야 되므로 학생 레코드 S9를 뒤로 옮김
31
▶ S2가 삭제되고 S9와 S7이 삽입된 뒤의 페이지 P
32
▶ S2가 삭제되고 S9와 S7이 삽입된 뒤의 페이지 P
한 페이지 내에서 저장레코드의 논리적 순서는 그 페이지 내에서의 물리적 순서로 표현 가능 레코드들이 페이지 내에서 이동 레코드들을 모두 페이지 윗 쪽으로 저장 - 아래쪽은 계속적으로 자유공간으로 유지
33
▶ RID(record identifier)의 구현
p 4 5 3 2 1 레코드 r 의 ID 페이지 번호 오프셋 .
34
▶ RID(record identifier)의 구현
RID = (페이지 번호 p,오프셋) 페이지 오프셋 = 페이지 내에서의 레코드 위치 레코드가 한 페이지 내에서 이동할 때마다 RID의 변경 없이 페이지 오프셋의 내용(포인터)만 변경 최악의 경우 두 번째 접근으로 원하는 레코드를 검색 가능 - 두 번 접근 : 해당 페이지가 오버플로가 되어 다른 페이지로 저장된 경우
Similar presentations