Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Slides:



Advertisements
Similar presentations
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Advertisements

11 주차 보조기억장치. 보조 기억 장치 개념 2  보조기억장치란 ?  Auxiliary memory, auxiliary storage, secondary storage, secondary memory, external memory  비휘발성, 저가, 대용량, CPU.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
9 보조기억장치 IT CookBook, 컴퓨터 구조와 원리 2.0.
단체교섭 보고 ※ 본교섭 ※ 실무교섭 구 분 날 짜 비 고 상견례 1월19일 단협 시작 본교섭
LOGO 주기억장치와 보조기억장치 한재성.
CHAPTER 01. 컴퓨터의 개요 컴퓨터의 역사와 발전_미래 전망을 위한 과거와 현재의 고찰
성상품화와 성매매 성상품화란 성을 매개로 하여 성매매는 주로 여성의 성을 돈을 주고 사는 것을 말한다.
Windows Server 장. 하드디스크 추가와 RAID.
하드웨어 3 : RAM.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
Lecture #8 제6장 보조저장장치.
제6장 보조저장장치 6.1 자기 디스크 6.2 RAID 6.3 광 저장장치.
Information Retrieval (Chapter 4: 질의언어)
McGraw-Hill Technology Education
 DBMS의 발전 배경(1) 화일 중심 자료처리(DP)시스템의 한계 ☞ Note
12. 데이터베이스 설계.
디스크 스케줄링 채상훈.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
DB표준화 작업의 현황과 과제 Presentation
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
제 7장. 멀티미디어 저장 시스템.
3. 데이터베이스 시스템의 구성.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
ER-Win 사용 방법.
소프트웨어시스템 실험 Software Systems Lab. 데이터베이스 기초
정보(information) 데이터(data) 어떤 사물에 대한 소식이나 자료 가공된 데이터
컴퓨터 시스템의 개요.
하드디스크(HDD) 광학디스크(ODD) 플로피디스크(FDD) 기타 저장장치
운영체제 (Operating Systems)
질의 최적화 예제 선택연산과 추출 연산은 가급적 일찍 수행하라..
2011년 03월 김 형 진 전북대학교 IT응용시스템공학과
디스크 스케줄링 C 최 은 선.
Operating system #5 Disk Scheduling
택배 데이터베이스 모델링 김동영 이승언.
[ 포털 사이트 연관검색어/자동완성 등록 서비스 ]
제4강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
4. 나라 사랑의 길 골든벨 퀴즈.
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
장애인과 함께하는 시민도서관 “신체적, 사회적 여건에 관계없이 공평하게 이용해야 할 것” 큰글자도서, 촉각도서, 오디오북, DVD, CD-ROM 등의 특수자료와 62만 여권의 도서를 장애인정보누리터와 각 자료실에.
본 강의 교안은 교육목적용으로 제작되었으며, 이용 시 출처를 반드시 밝혀 주셔야 합니다.
2008년도 제1기 글로벌 레지던스 모집요강.
1조 김성수 백현기 석광우 김지원 박광연.
제15강 기억장치 3.
WORM 스토리지 활용 가이드 주식회사 올리브텍 보안스토리지 전문기업
분산 파일 시스템의 구조 GFS 와 CEPH SW공학센터 융합SW공학팀 장원석 책임 연구원
Office 365 서비스 사용 안내 정보지원센터/ 두원공과대학교.
목적을 갖고 살아요!.
Chapter 12 Memory Organization
멀티미디어시스템 제 2 장. 멀티미디어 IT응용시스템공학과 김 형 진 교수.
AM-F100 스타폰 제품 사용 설명서.
Page Turner 에 맞는 책의 종류선정 은경태
2-3-1 민주 시민의 경제적 구실 3 (3)민주시민의 다양한 경제적 역할 주요 학습 내용 민주 시민의 다양한 경제적 역할
Ⅰ 기록물이란 Ⅱ 기록 관리 흐름 “꿈과 희망을 주는 대전교육” Ⅲ 기록물분류기준표 운영 Ⅳ 기록관리 절차 Ⅴ 실무처리 요령.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
3단원 디지털 세상 속으로 1. 0과 1의 비밀.
제 8장 데이터베이스.
나비는 두 꽃 중에서 어느 꽃으로 날아 갈까요? 한 장미꽃은 향기가 나고 한 장미꽃은 악취가 납니다 두 개의 장미꽃이 있습니다
6장: 기억장치 대화성, 멀티미디어에 대한 기반들.
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
2-3-1 민주 시민의 경제적 구실 2 (2)민주 시민으로서의 생산자 역할 바람직한 기업의 활동 주요 기업의 사회적 책임 학습
4. 데이타베이스 시스템의 구성.
ER-관계 사상에 의한 관계 데이터베이스 설계
데이터 베이스의 내부 구조.
“전자구매” 메뉴 접속을 위해 “전자입찰” 메뉴에서 공인인증서 등록
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
과목명: 사회 학년 학기: 3학년 1학기 시장경제의 이해> 시장경제의 특성 ( 1 / 7 )
Presentation transcript:

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 제10장 저장 장치와 파일 구조 물리 저장 매체의 개요 자기 디스크 RAID 3차 저장 장치 저장 장치 액세스 파일 구조 파일내 레코드의 구조 데이터 사전 저장 객체 지향 데이터베이스의 저장 구조 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 물리 저장 매체의 분류 데이터를 액세스할 수 있는 속도 데이터 단위당 비용 신뢰도 - 정전 또는 시스템 고장시 데이터 유실 - 저장 장치의 물리적 고장 저장 장치는 다음과 같이 구분할 수 있다. - 휘발성 저장 장치: 정전시 내용이 유실됨 - 비휘발성 저장 장치: 정전시 내용이 유실되지 않는다. 2차 및 3차 저장 장치와 함께 배터리 백업 메인 메모리 등이 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 물리 저장 매체 캐쉬 - 가장 빠르고 가장 비싼 유형의 저장 장치; 휘발성; 하드웨어와 운영체제가 관리한다. 메인 메모리: - 범용 기계 명령은 메인 메모리에 놓인 데이터에 연산한다. - 액세스가 빠르지만, 일반적으로 전체 데이터베이스를 저장하기에는 너무 작다. - 때때로 코어 메모리라 하기도 한다. - 휘발성: 정전 또는 시스템 고장이 발생하면 메인 메모리의 내용은 보통 유실된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 물리 저장 매체(계속) 플래시 메모리 - 읽기는 대량 메인 메모리 만큼 빠르다; 정전시에도 데이터는 유실되지 않는다; 그러나 한정된 횟수의 쓰기/지우기 사이클만을 지원한다. 자기 디스크 저장 장치 : 주된 장기 데이터 저장 매체; 일반적으로 데이터베이스 전체를 저장한다. - 액세스를 위해서는 데이터가 디스크에서 메모리로 이동해야 하고 저장을 위해서는 디스크에 다시 쓰인다. - 직접 액세스 - 어떠한 순서로도 디스크상의 데이터를 읽을 수 있다. - 정전과 시스템 고장에도 데이터는 보통 유실되지 않는다; 디스크 고장이 데이터를 파괴할 수 있지만, 시스템 고장보다는 빈번하지 않다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 물리 저장 매체(계속) 광 저장 장치 - 비휘발성, CD-ROM 이 가장 범용적인 유형이다. 보관용 저장 장치로는 WORM(write-once, read-many) 광 디스크가 사용된다. 테이프 저장 장치 - 주로 백업용(디스크 고장으로부터 회복하기 위한) 및 보관용 데이터로 사용되며, 비휘발성이다. - 순차 액세스 - 디스크에 비해 훨씬 느리다. - 대용량임(5GB 테이프가 보통이다). - 테이프는 드라이브로부터 탈착될 수 있으며, 저장 비용이 디스크 보다 훨씬 싸다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 저장 장치 계층 캐쉬 메인 메모리 플래쉬 메모리 자기디스크 광 디스크 자기 테이프 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 저장 장치 계층(계속) 주 저장 장치: 가장 빠르지만, 휘발성이다 (캐쉬, 메인 메모리). 2차 저장 장치: 계층상에서 다음 계층이며, 비휘발성이 고 비교적 빠른 액세스 시간을 가진다. 온라인 저장 장치라 하기도 한다 (플래시 메모리, 자기 디스크). 3차 저장 장치: 계층상에서 가장 하위 계층이며, 비휘발성이고 액세스 시간이 느리다. 오프라인 저장 장치라 하기도 한다 (자기 테이프, 광 저장 장치). Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 자기 디스크 구조 트랙 t 회전 축 섹터 s 암 축 실린더 c 읽기-쓰기 헤드 디스크 판 암 회 전 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 자기 디스크 읽기 - 쓰기 헤드 - 디스크 판 표면의 가까이에 위치해 있는 장치로서 코드화된 정보를 자기적으로 읽고 쓴다. 디스크 판의 표면은 원형의 트랙으로 나뉘어 있으며, 각 트랙은 섹터로 나뉘어 있다. 섹터는 데이터를 읽고 쓸 수 있는 가장 작은 단위이다. 섹터를 읽고/ 쓰려면 - 디스크 암이 앞뒤로 움직여 해당 트랙에 헤드를 위치시킨다. - 디스크 판은 계속해서 회전하고 있으며, 헤드 아래에 섹터가 올 때 데이터를 읽고/ 쓴다. 헤드 - 디스크 조립- 공통 암에 장착된 여러 헤드(디스크 판당 하나)를 가진 한 회전 축상의 여러 디스크 판 실린더 i 는 모든 디스크 판의 i 번째 트랙들로 구성된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 디스크 서브 시스템 디스크 제어기 – 컴퓨터 시스템과 디스크 드라이브 하드웨어간에 인터페이스 한다. - 고급 명령으로 섹터를 읽고 쓰도록 한다. - 디스크 암을 해당 트랙으로 움직이도록 하는 행위와 실제로 데 이터를 읽고 쓰는 행위 등을 시작하도록 한다. 디스크 제어기 시스템 버스 디스크 들 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 디스크의 성능 측정 액세스 시간 - 읽기 또는 쓰기 요청이 제기되어 데이터 전송이 시작할 때까지 걸리는 시간. 다음과 같이 구성된다. - 탐색 시간 - 해당 트랙상에 암이 위치하는데 걸리는 시간. 평균 탐색 시간은 최악의 경우의 탐색 시간의 1/3이다. - 회전 지연 - 액세스될 섹터가 헤드 아래에 나타나는데 걸리는 시간. 평균 지연은 최악의 지연 시간의 1/2이다. 데이터 전송율 - 데이터가 디스크로부터 검색되거나 디스크에 저장될 수 있는 비율 평균 고장 시간(MTTF) - 디스크가 고장없이 연속적으로 실행될 평균 예상 시간 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 디스크 블록 액세스의 최적화 블록 - 한 트랙상의 연속적인 일련의 섹터 - 데이터는 디스크와 메인 메모리간에 블록 단위로 전송된다. - 크기는 512 바이트에서 수 KB 까지이다. 디스크 - 암 - 스케쥴링 알고리즘은 디스크 암의 이동이 최소화 되도록 트랙 액세스를 요구한다 (승강기 알고리즘이 보통 사용된다). 파일 구성 - 데이터가 액세스될 방법에 상응해 블록을 구성함으로 써 블록 액세스 시간을 최적화 한다. 관련있는 정보를 동일 실린더 또는 근처 실린더에 저장한다 . 비휘발성 쓰기 버퍼는 비휘발성 RAM 버퍼에 즉시 블록 쓰기를 함으로써 디스크 기록 시간을 향상시킨다 . 그리고 제어기는 디스크에 다른 요청이 없을 때마다 디스크에 기록 한다. 로그 디스크 - 블록 갱신의 순차 로그를 기록하는데 사용되는 디스크; 이것은 탐색 시간을 제거한다. 비휘발성 RAM 처럼 사용된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 RAID Redundant Arrays of Inexpensive Disks 값싸고 대중성 있는 디스크를 사용하는 장점을 취한 디스크 구성 기법 원래는 비싼 대형 디스크에 대한 비용 - 효과 대안임 오늘날의 RAID는 경제적 이유보다는 높은 신뢰도와 밴드폭을 위해 사용된다. 따라서, “I”는 inexpensive 대신 independent로 해석되고 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 중복을 통한 신뢰도의 향상 N 디스크 집합중의 몇 개의 디스크가 고장 날 기회가 특정 단일 디스크가 고장 날 기회보다 훨씬 더 높다. 예를 들어, 각각이 100,000 시간(약 11년)의 MTTF를 가진100개의 디스크를 가진 시스템은 1,000시간(약 41일)의 MTTF를 가진 시스템을 갖게 될 것이다. 중복 - 디스크 고장으로 잃어버리는 정보를 재구축하는데 사용될 수 있는 여분의 정보를 저장한다. 예를 들어, 거울형(또는 그림자). - 각 디스크를 이중으로 둔다. 논리 디스크는 두개의 물리 디스크로 구성된다. - 각각의 쓰기는 양쪽의 디스크에서 수행된다. - 쌍 중의 한 디스크가 고장 나면, 다른 쪽의 디스크는 여전히 사용 가능하다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 병렬화를 통한 성능의 향상 디스크 시스템에서 병렬화의 두가지 주요 목표 1. 여러 개의 작은 액세스로 균등하게 분배하여 처리율을 높인다. 2. 커다란 액세스를 병렬화하여 응답 시간을 단축시킨다. 여러 대의 디스크에 걸쳐 데이터를 분산시킴으로써 전송율을 향상 시킨다. 비트 단위분산 - 각 바이트의 비트를 여러 디스크에 분산시킨다. - 8개 디스크의 배열에서, 각 바이트의 i 번째 비트를 디스크 i 에 기록한다. - 각 액세스는 단일 디스크의 비율보다 8배로 데이터를 읽을 수 있다. - 그러나 탐색/ 액세스 시간은 단일 디스크보다 더 나쁘다. 블록 단위 분산 - n 대의 디스크에서, 파일의 i 번째 블록은 ( i mod n ) + 1 번 디스크로 간다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 RAID 계층 패리티 비트로 결합된 디스크 분산을 사용해 저렴한 비용으로 중복을 제공하는 기법 서로 다른 RAID 구조 또는 RAID 계층은 서로 다른 비용, 성능 및 신뢰도의 특징을 가지고 있다. 계층 0 : 블록 계층에서의 분산; 중복 없음. 데이터 손실이 치명적이지 않은 고성능 어플리케이션에서 사용된다. 계층 1 : 거울형 디스크 ; 최상의 쓰기 성능을 제공한다. 데이터베이스 시스템에서의 로그 파일 저장과 같은 어플리케이션에 주로 사용된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 (a) RAID 0 : 비중복 분산 (b) RAID 1 : 거울형 디스크 (c) RAID 2 : 메모리 유형 오류 정정 코드 (d) RAID 3 : 비트 인터리브 패리티 (e) RAID 4 : 블록 인터리브 패리티 (f) RAID 5 : 블록 인터리브 분산 패리티 (g) RAID 6 : P+Q 중복 C P p Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 RAID 계층(계속) 계층 2 : 비트 분산을 가진 메모리 유형 오류 정정 코드(ECC) 계층 3 : 비트 인터리브 패리티; 하나의 패리티 비트가 오류 탐지가 아닌 오류 정정에 사용될 수 있다. - 데이터를 기록할 때, 패리티 비트가 또한 계산되어 기록되어야 한다. - 단일 디스크보다 데이터 전송은 더 빠르지만, 각 입출력에 참여하기 때문에 초당 입출력은 더 적다. - 계층 2를 포함한다( 적은 비용으로 계층 2의 장점을 모두 제공한다). Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 RAID 계층 (계속) 계층 4 : 블록 인터리브 패리티; 블록 계층의 분산을 사용하고 N 개의 서로 다른 디스크 블록에 상응하는 패리티 블록을 별도의 디스크에 가진다. - 독립 블록 읽기에 대해 계층 3 보다 높은 입.출력율을 제공 한다 (블록 읽기는 하나의 디스크에 동작하므로, 서로 다른 디스크에 저장된 블록들이 병렬로 읽힐 수 있다). - 여러 블록의 읽기에 대해 보다 높은 전송율을 제공한다. - 그러나, 각 블록 쓰기는 또한 패리티 디스크에 쓰기를 하므로 패리티 블록은 독립 블록 쓰기에 대해 병목이 된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 RAID 계층(계속) 계층 5 : 블록 인터리브 분산 패리티; 데이터를 N 개의 디스크에 저장하고 패리티를 1 개의 디스크에 저장하는 대신, 데이터의 패리티를 N + 1 개의 모든 디스크에 분할한다. - 예를 들어, 5 개의 디스크가 있으면, n 번째 블록 집합의 패리티 블록은 (n mod 5) + 1 번째 디스크에 저장되고 데이터 블록은 다른 4 개의 디스크에 저장된다. - 계층 4 보다 입출력 비율이 높다 (블록과 패리티 블록이 서로 다른 디스크에 있으면, 블록 쓰기는 병렬로 처리된다). - 계층 4를 포함한다. 계층 6 : P + Q 중복 기법; 계층 5와 유사 하지만, 여러 디스크의 고장에 대비하기 위해 별도의 중복 정보를 저장한다. 비용이 많이 들지만 계층 5 보다 신뢰도가 높다 . 널리 사용되지는 않는다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 광 디스크 Compact disk - 읽기 전용 메모리( CD-ROM) - 드라이브에 디스크를 장착하고 탈착할 수 있다. - 대용량의 저장 장치이다(디스크에 대략 500MB 수록). - 탐색 시간과 지연 시간이 높다; 자기 디스크보다. 데이터 전송율이 낮다. 디지털 비디오 디스크(DVD) - 새로운 광 양식; 4.7 - 17 GB를 보관한다. WORM 디스크 - 읽어 온 동일한 드라이브를 사용해 기록할 수 있다 - 데이터는 한번만 기록될 수 있으며, 지울 수는 없다. - 대용량이며 생명 주기가 길다; 보관용 저장 장치로 사용된다. - WORM 주크박스 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 자기 테이프 대용량의 데이터를 보관한다( 5GB 테이프가 보통이다). 현재로서는 가장 저렴한 저장 매체임. 자기 및 광 디스크에 비해 액세스 시간이 매우 느리다; 순차 액세스만이 가능하다. 자주 사용하지 않는 정보를 저장용 및 한 시스템에서 다른 시스템으로 정보를 전달하기 위한 오프라인 매체로 주로 사용된다. 대용량의 저장 장치 (terabyte(1012) - petabyte(1015))로 테이프 주크박스가 사용된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 저장 장치 액세스 데이터베이스 파일은 블록이라는 고정 길이 저장 단위로 분할된다. 블록은 저장 장치 할당과 데이터 전송 단위이다. 데이터베이스 시스템은 디스크와 메모리간에 최소한 블록 수 가 전송되도록 탐색한다. 가급적 많은 블록이 메인 메모리에 있도록 하여 디스크 액세스 수를 줄일 수 있다. 버퍼 - 디스크 블록의 사본을 저장하는데 사용되는 메인 메모리 부분 버퍼 매니저 - 메인 메모리에 버퍼 공간을 할당하는 서브 시스템 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 버퍼 매니저 프로그램은 디스크에서 블록이 필요할 때 버퍼 매니저를 호출한다. - 필요한 블록이 버퍼내에 이미 존재하면, 메인 메모리 내의 블록 주소가 요청하는 프로그램에 주어진다. - 블록이 버퍼내에 없으면, 버퍼 매니저는 필요에 따라 새로운 블록을 위한 공간을 마련하기 위해 일부 블록을 내보내어 버퍼내에 공간을 할당한다. - 내보내진 블록은 디스크에 수록되고 읽히어진 최근 시점 이후 갱신되었을 때만 디스크에 되쓰인다. - 버퍼에 공간이 일단 할당되면, 버퍼 매니저는 디스크에서 버퍼로 블록을 읽어 들이고 메인 메모리내 블록의 주소를 요청자에게 전달한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 버퍼 대치 전략 대부분의 운영체제는 최근에 가장 사용되지 않은 (LRU) 블록을 대치한다. LRU - 미래의 참조 지표로서 과거의 블록 참조 패턴을 사용한다. 질의는 잘 정의된 액세스 패턴 (순차 스캔과 같은) 을 가지며, 데이터베이스 시스템은 미래의 참조를 예측하는데 사용자 질의 내의 정보를 사용할 수 있다. LRU는 데이터의 반복 스캔을 포함한 어떤 액세스 패턴에 대해 서는 나쁜 전략일 수 있다. 질의 최적기가 제공하는 대치 전략상의 지침을 가진 혼잡 전략이 더 낫다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 버퍼 대치 전략(계속) 붙박이 블록 - 디스크에 되쓰이기가 허용되지 않은 메모리 블록 즉시 던짐 전략 - 블록의 마지막 튜플이 처리되자 마자 그 블록이 점유한 공간을 해제한다. MRU 전략 - 시스템은 현재 처리중인 블록을 고정 시켜야 한다. 그 블록의 마지막 튜플이 처리된 후, 블록은 해제되며 그것은 가장 최근에 사용한 블록이 된다. 버퍼 매니저는 요청이 특정 릴레이션을 참조한 확률에 관한 통계 정보를 사용할 수 있다. - 예를 들어, 데이터 사전은 빈번히 액세스 된다. 경험에 따르면 메인 메모리 버퍼내에 데이터 사전 블록을 유지한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 파일 구성 데이터베이스는 파일의 모임으로 저장된다. 각 파일은 레코드로 구성된다. 레코는 필드로 구성된다 한가지 방법 - 레코드의 크기가 고정길이라 가정한다. - 각 파일은 한가지 유형만의 레코드를 가진다. - 서로 다른 파일이 서로 다른 릴레이션에 사용된다. 이 경우는 구현하기가 가장 쉽다; 가변길이 레코드는 후에 고려 하기로 하자. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 고정길이 레코드 단순한 방법 - 레코드 i 를 n * ( i - 1) 번째 바이트부터 시작해 저장한다. 여기서 n 은 각 레코드의 크기이다. - 레코드 액세스는 단순하지만 레코드들이 블록에 걸칠 수 있다. 레코드 I 의 삭제 - 대안들 - 레코드 i + 1 , …, n 을 i, …, n-1 로 이동 - 레코드 n 을 i 로 이동 - 자유 리스트상의 모든 자유 레코드를 연결 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 자유 리스트 내용이 삭제된 첫 번째 레코드의 주소를 파일 헤더에 저장한다. 이 첫 번째 레코드를 사용해 두 번째 사용 가능한 레코드 등의 주소를 저장한다. 이들 저장된 주소는 레코드의 위치를 가리키기 때문에 포인터로 생각할 수 있다. 헤 더 Perryridge A-102 레코드 0 400 레코드 1 Mianus A-215 레코드 2 700 Downtown A-101 레코드 3 500 레코드 4 Perryridge 레코드 5 A-201 900 레코드 6 Downtown 레코드 7 A-110 600 Perryridge 레코드 8 A-218 700 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 자유 리스트(계속) 공간 효율이 보다 좋은 표현법: 자유 레코드의 정상 애트리뷰트의 공간을 재사용해 포인터를 저장한다 (사용중인 레코드에는 포인터가 저장되지 않는다). 허상 포인터는 또 다른 레코드가 포함하는 포인터가 가리키는 레코드를 이동 시키거나 삭제할 때 발생한다. 그 포인터는 더 더 이상 원하는 레코드를 가리키지 않는다. 다른 레코드가 가리키는 레코드의 이동 또는 삭제를 피한다. 그러한 레코드를 붙박이라 한다 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 가변길이 레코드 가변길이 레코드는 데이터베이스 시스템에서 여러 방법으로 발생한다: - 한 파일에 여러 레코드 유형을 저장 - 하나 이상의 필드에 가변길이를 허용하는 레코드 유형 - 반복 필드를 허용하는 레코드 유형 (몇몇 구식 데이터 모델에서 사용됨) 바이트 스트링 표현법 - end - of - record () 제어 문자를 각 레코드의 끝에 붙인다 - 삭제가 어려움 - 데이터 증가가 어려움 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 가변길이 레코드 : 슬롯 페이지 구조 블록 헤더 헤더에는 다음을 포함한다: - 레코드 엔트리의 수 - 블록내 자유 공간의 끝 - 각 레코드의 위치와 크기 레코드는 그들간에 빈 공간이 없이 연속해 있도록 페이지내에서 이동할 수 있다; 헤더내의 엔트리는 갱신되어야 한다. 포인터는 레코드를 직접 가리켜서는 안된다. - 대신에 헤더내 레코드의 엔트리를 가리켜야 한다. # 엔트리 크기 위치 자유 공간 자유 공간의 끝 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 가변길이 레코드(계속) 고정길이 표현법 - 공약 예약 - 포인터 공간 예약 - 이미 알고 있는 최대 길이의 고정길이 레코드를 사용할 수 있다; 보다 짧은 레코드의 사용되지 않은 공간은 널 또는 레코드 끝 기호로 채운다. Perryridge A-102 400 A-201 900 A-218 700 Round Hill A-305 350 ┸ ┸ ┸ ┸ Mianus A-215 700 ┸ ┸ ┸ ┸ Downtown A-101 500 A-110 600 ┸ ┸ Redwood A-222 700 ┸ ┸ ┸ ┸ Brighton A-217 750 ┸ ┸ ┸ ┸ 1 2 3 4 5 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 포인터 방법 1 2 3 4 5 6 7 8 Perryridge A-102 400 Round Hill A-305 350 Mianus A-215 700 Downtown A-101 500 Redwood A-222 700 A-201 900 Brighton A-217 750 A-110 600 A-218 700 포인터- 최대 레코드 길이는 모른다; 포인터로 서로 연결된 고정길이 레코드 리스트로 가변길이 레코드가 표현된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 포인터 방법(계속) 포인터 구조의 단점; 체인내 첫번째를 제외한 모든 레코드에서 공간이 낭비된다 파일내에 두가지 종류의 블록을 허용해 해결한다; - 기본 블록 - 체인의 첫번째 레코드들을 내포한다 - 오버플로 블록 - 체인의 첫번째 레코드들 이외의 레코드를 내포한다. Perryridge A-102 400 Round Hill A-305 350 Mianus A-215 700 Downtown A-101 500 Redwood A-222 700 Brighton A-217 750 기본 블록 A-201 900 A-218 700 A-110 600 오버프로 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 파일내 레코드의 구성 힙 - 레코드는 파일내에 공간이 있는 어느 곳에라도 위치할 수 있다. 순차 - 각 레코드의 검색 키 값에 근거해 레코드를 순차적으로 저장한다. 해슁 - 각 레코드의 일부 애트리뷰트에 해쉬 함수가 계산된다; 결과는 파일내의 어떤 블록에 레코드가 위치할 지를 지정 한다. 군집 - 여러 다른 릴레이션의 레코드들이 같은 파일에 저장될 수 있다; 관련된 레코드들은 동일 블록에 저장된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 순차 파일 구성 전체 파일의 순차 처리를 요구하는 어플리케이션에 적합하다. 파일내의 레코드는 검색 키로 정렬된다. Brighton A-217 750 Downtown A-101 500 Downtown A-110 600 Mianus A-215 700 Perryridge A-102 400 Perryridge A-201 900 Perryridge A-218 700 Redwood A-222 700 Round Hill A-305 350 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 순차 파일 구성(계속) 삭제 - 포인터 체인을 사용한다. 삽입 - 레코드가 삽입된 파일내의 위치를 찾아야 한다. - 자유 공간이 있으면, 그 곳에 삽입 - 자유 공간이 없으면, 오버플로 블록에 삽입 - 어떤 경우든, 포인터 체인은 갱신해야 한다 순차적으로 저장하기 위해 항상 파일을 재구성할 필요가 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 군집 파일 구조 단순한 파일 구조에서는 각 릴레이션을 별도의 파일에 저장한다.. 군집 파일 구조를 사용해 하나의 파일에 여러 릴레이션을 저장할 수 있다. customer 와 depositor 의 군집 구조 - depositor와 customer를 자연 죠인한 형태를 내포한 질의와 한 고 객의 계좌를 내포하고 있는 질의에 좋다. - 고객만을 내포한 질의에는 좋지 않다. - 가변 크기의 레코드가 발생한다. Hayes Main Hayes A-102 Hayes A-220 Hayes A-503 Turner Putnam Turner A-305 Brooklyn Stamford Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 데이터 사전 저장 구조 데이터 사전 (시스템 카타로그라 한다) 에는 메타 데이터를 저장한다: 즉, 다음과 같은 데이터에 관한 데이터이다. 릴레이션에 관한 정보 - 릴레이션명 - 애트리뷰트명과 유형 - 물리 파일 구성 정보 - 각 릴레이션내 튜플의 수와 같은 통계 정보 무결성 제약 조건 뷰 정의 사용자 및 계정 정보 인덱스에 관한 정보 (11장) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 데이터 사전 저장 구조(계속) 카타로그 구조 : 다음 중 하나를 사용할 수 있다. - 효율적인 액세스를 위해 설계된 특수한 데이터 구조 - 효율적인 액세스를 위해 사용된 기존의 시스템 기능을 가진 릴레이션의 집합 후자의 방법을 일반적으로 선호한다. 가능한 카타로그 표현 System-catalog-schema = (relation-name, number-of-attributes) Attribute-schema = (attribute-name, relation-name, domain-type, position, length) User-schema = (user-name, encrypted-password, group) Index-scheme = (index-name, relation-name, index-type, index-attributes) View-schema = (view-name, definition) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 객체를 파일로의 대응 객체를 파일로 대응시키는 것은 관계형 시스템에서 튜플을 파일로 대응시키는 것과 유사하다. 객체 데이터는 파일 구조를 사용해 저장할 수 있다. 객체지향 데이터베이스에서의 객체는 균일성이 부족하며 매우 클 수 있다; 그러한 객체는 관계형 시스템에서의 레코드와는 달리 처리해야 한다. - 적은 수의 원소를 가진 집합 필드는 연결 리스트와 같은 데이터 구조를 사용해 구현할 수 있다. - 많은 수의 원소를 가진 필드는 B-트리 또는 데이터베이스내의 별도의 릴레이션으로 구현할 수 있다. - 집합 필드는 또한 정규화로 저장 장치 단계에서 제거될 수 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 객체를 파일로의 대응(계속) 객체들을 객체 식별자(OID)로 식별한다; 저장 장치 시스템은 OID가 주어진 객체를 찾는 기법이 필요하다. - 논리 식별자는 객체의 물리적 위치를 직접 지정하지 않는다; OID를 객체의 실제 위치에 대응시키는 인덱스를 유지해야만 한다. - 물리 식별자는 객체가 직접 발견될 수 있도록 객체의 위치를 코드화한다. 물리 식별자는 일반적으로 다음과 같은 부분으로 구성되어 있다; 1. 볼륨 또는 파일 식별자 2. 볼륨 또는 파일내의 페이지 식별자 3. 페이지내의 옵셋 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 영속 포인터의 관리 물리적 OID에는 유일한 식별자를 갖는다. 이 식별자는 객체내에 또한 저장되어 허상 포인터를 통한 참조를 검출하는데 사용된다. Vol. Page Offset Unique-Id 물리적 객체 식별자 Unique-Id Data……... 객체 51 …. data…. (a) 일반적인 구조 위치 유일한 식별자 데이터 6.32.45608 51 6.32.45608 50 6.32.45608 Good OID Bad OID (b) 사용 예제 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 영속 포인터의 관리(계속) OID를 사용해 영속 포인터를 구현한다; 영속 포인터는 메모리내 포인터보다 대체로 길다. 포인터 스위즐링은 메모리에 이미 존재하는 영속 객체를 찾는 비용을 줄인다. 소프트웨어 스위즐링(포인터 역참조에서의 스위즐링) - 영속 포인터가 처음 역참조될 때, 객체가 메모리에 위치한 후 스위즐된다 (메모리내 포인터로 대치된다). - 같은 포인터의 연속적인 역참조는 보다 쉬워진다. - 메모리내 객체의 물리적인 위치는 스위즐된 포인터가 가리키고 있으면, 변경되어서는 안된다; 해결책은 메모리내에 페이지를 고정시키는 것이다. - 객체가 디스크에 되쓰일 때는, 그것이 내포하는 어떠한 스위즐된 포인터는 역스위즐될 필요가 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 하드웨어 스위즐링 객체내의 영속 포인터는 메모리내 포인터와 같은 양의 공간을 필요로 한다 - 객체 외부의 별도 저장 공간이 포인터 정보의 나머지를 저장하는데 사용된다. 영속 포인터와 메모리내 포인터간의 효율적이고 내부적인 변환을 위해 가상 메모리 변환 기법을 사용한다. 페이지내의 모든 영속 포인터는 페이지가 처음 읽힐 때 스위즐된다. - 따라서, 프로그래머는 한가지 유형의 포인터 즉, 메모리내 포인터로만 작업해야 한다. - 몇몇 스위즐된 포인터는 현재 실제 메모리에 할당되지 않은 가상 메모리 주소를 가리킬 수도 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 하드웨어 스위즐링(계속) 영속 포인터는 개념적으로 두 부분으로 나누어진다 : 페이지 식별자와 페이지내에서의 옵셋 - 포인터내 페이지 식별자는 짧은 간접 포인터이다: 각 페이지 식별자로부터 완전 데이터베이스 페이지 식별자로의 대응을 제공하는 변환 테이블을 가진다. - 페이지의 변환 테이블은 작다 (4096 바이트의 페이지에 4바이트 짜리 포인터가 기껏해야 1024개 있다). - 같은 페이지에 대한 페이지내의 여러 포인터는 변환 테이블 내에서 같은 엔트리를 공유한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 하드웨어 스위즐링(계속) 디스크에 있을 때(스위즐링 전)의 페이지 이미지 PageID Off 2395 255 4867 020 2395 170 객체1 객체2 객체3 2395 679.34.28000 4867 519.56.84000 PageID FullPageID 변환 테이블 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 하드웨어 스위즐링(계속) 메모리내 포인터가 역참조될 때, 운영체제에서 아직 할당되지 않은 저장 공간을 가리키는 페이지를 탐지하면, 분할 위배가 발생한다. mmap call이 분할 위배시 호출되는 관련 함수이다. 함수는 페이지를 위한 저장 공간을 할당하고 디스크로부터 페이지를 읽어들인다. 그리고 페이지내의 모든 영속 포인터에 대해 스위즐링이 수행된다(객체 유형 정보를 사용해 찾은). - 포인터가 가상 메모리 주소가 아직 할당되지 않은 페이지를 가리키면, 가상 메모리 주소가 할당된다(아직 사용되지 않았으면, 짧은 페이지 식별자내의 주소). 페이지에 저장 공간은 아직 할당되지 않는다. - 포인터내의 페이지 식별자 (그리고 변환테이블 엔트리)가 페이지의 가상 메모리 주소로 변경된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 하드웨어 스위즐링(계속) PageID Off 5001 255 4867 020 5001 170 객체1 객체2 객체3 5001 679.34.28000 4867 519.56.84000 PageID FullPageID 변환 테이블 스위즐링 후의 페이지 이미지 짧은 페이지 식별자 2395를 가진 페이지가 주소 5001에 할당되었다. 포인터와 변환 테이블 내의 변경에 주목하라. 짧은 페이지 식별자 4867을 가진 페이지가 주소 4867에 할당되었다. 포인터와 변환 테이블에 변화가 없다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 하드웨어 스위즐링(계속) 스위즐링 후, 모든 짧은 페이지 식별자는 그 페이지에 할당된 가상 메모리 주소를 가리킨다. - 객체를 액세스하고 있는 함수는 그것이 영속 포인터를 가지고 있는지 알 필요가 없다. - 메모리내 포인터를 사용하는 기존의 코드와 라이브러리를 재사용할 수 있다. 모든 페이지가 짧은 페이지 식별자에서와 같은 주소로 할당되면, 페이지 내에서 어떠한 변경도 필요없다. 역스위즐링의 필요가 없다 - 스위즐링 후의 페이지는 디스크에 직접 보관될 수 있다. 프로세스는 가상 메모리 크기 이상의 페이지를 액세스해서는 안된다 - 다른 페이지에 대한 가상 메모리 주소의 재사용은 비용이 많이 든다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 객체의 디스크 구조와 메모리 구조 메모리에 저장된 객체의 형식과 데이터베이스로 디스크에 저장된 형식이 다를 수 있다. 그 이유는 다음과 같다: - 소프트웨어 스위즐링 - 영속 포인터와 메모리내 포인터의 구조가 다르다. - 서로 다른 표현을 가진 서로 다른 컴퓨터에서 데이터베이스를 액세스할 수 있다. 데이터베이스내 객체의 물리적 표현을 컴퓨터와 컴파일러에 독립되도록 한다. 객체(또는 페이지)가 메모리로 올 때 디스크 표현으로 부터 특정 컴퓨터, 언어 및 컴파일러에서 요구되는 형으로 내부적으로 변환할 수 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 대형 객체 대형 객체는 일반적으로 이진 데이터를 포함하기 때문에, binary large object(blob)이라 한다.아래와 같은 예가 있다: - 텍스트 문서 - 이미지 및 컴퓨터 지원 설계와 같은 그래픽 데이터 - 오디오 및 비디오 데이터 대형 객체는 메모리로 올 때 연속된 바이트 순서로 저장될 필요가 있다. - 객체가 페이지 이상이면, 버퍼 풀의 연속 페이지가 그것을 저장하기 위해 할당되어야 한다. - 연속 저장 공간의 필요성을 제거하기 위해서는 데이터에 직접 액세스를 허용하지 않고 파일 시스템형의 API를 통해서만 액세스하도록 하는 것이 좋다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 대형 객체의 수정 B-트리 구조를 사용해 객체를 표현한다 : 객체의 특정 영역으로 부터 바이트의 갱신, 삽입 및 삭제와 함께 전체 객체의 읽기를 허용한다. 데이터베이스 외부의 특수 목적 어플리케이션 프로그램이 대형 객체를 조작하기 위해 사용된다: - 텍스트 데이터는 에디터와 포매터가 조작하는 바이트 스트링으로 취급한다. - 그래픽 데이터는 비트맵 또는 기하 객체의 집합으로 표현된다; 데이터베이스 시스템내에서 또는 특수 소프트웨어(즉, VLSI 설계)로 관리할 수 있다. - 오디오/비디오 데이터는 일반적으로 별도의 어플리케이션 소프트웨어로 생성하고 디스플레이하며 특수 목적의 편집 소프트웨어를 사용해 수정한다. - 동시성 제어와 버전의 생성을 위한 체크 아웃/체크 인 방법 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수