1. File StructuresFile Structure SNU-OOPSLA Lab 1
Chap1Chap1.. Introduction toIntroduction to
File StructuresFile Structures
서울대학교 컴퓨터공학부
객체지향시스템연구실
(SNU-OOPSLA-LAB)
김 형 주 교수
File Structures by Folk, Zoellick, and Riccardi
2. File StructuresFile Structure SNU-OOPSLA Lab 2
Chapter ObjectivesChapter Objectives
Introduce the primary design issues
characterizing file structure design
Survey the history of file structure design
Introduce the notions of file structure literacy and
of a conceptual toolkit for file structure design
Discuss the need for specification of data
structures, operations and development of object-
oriented toolkit
Introduce classes and overloading in C++
3. File StructuresFile Structure SNU-OOPSLA Lab 3
ContentsContents
1.1 The heart of file structure design
1.2 History of file structure design
1.3 Conceptual toolkit : file structure literacy
1.4 Object-Oriented Toolkit
: make file structure usable
1.5 Using objects in C++
4. File StructuresFile Structure SNU-OOPSLA Lab 4
The Heart of File Structure DesignThe Heart of File Structure Design
File structure
representation of data + operation for accessing data
Disk vs. RAM
speed : very slower than RAM
cost : enormous capacity at much less cost than RAM
nonvolatile in Disk vs. volatile in RAM
Good file structure design
access to all the capacity without spending much time waiting for
disk
uniform average access time
1.1 The Heart of File Structure Design
5. File StructuresFile Structure SNU-OOPSLA Lab 5
History of file structure design(1)History of file structure design(1)
Sequential file
look at records in order
AVL tree (Balanced Binary Tree)
self-adjusting binary tree
guarantee good access time for data in RAM
B-tree
balanced tree structure
provide fast access to data in file
1.2 History of File Structure Design
6. File StructuresFile Structure SNU-OOPSLA Lab 6
History of file structure design(2)History of file structure design(2)
B+
-tree
variation on B-tree structure
provide both sequential access and fast-indexed
access
Hashing
transform search key into storage address
provide fast access to stored data
Extendible hashing
approach to hashing that works well with files
undergoing many changes in size over time
1.2 History of File Structure Design
7. File StructuresFile Structure SNU-OOPSLA Lab 7
Taxonomy of File StructuresTaxonomy of File Structures
Single-key files
Index-based (Tree Data Structure)
Indexed Sequential File -> B-Tree -> B+
-Tree
Hashing-based (Address Computation)
Hashing File -> Extendible Hashing File
Multi-key files (multidimensional)
K-D-B tree
Grid file
R-tree
Multimedia Indexing Techniques
Audio, Image, Video
1.2 History of File Structure Design
8. File StructuresFile Structure SNU-OOPSLA Lab 8
Conceptual ToolkitConceptual Toolkit :: File Structure LiteracyFile Structure Literacy
Objective of Conceptual toolkit
Fundamental file concepts
Generic file operations
Conceptual tools in this book
basic tools + evolution of basic tools
basic tools : Chapter 2 ~ 6
evolution of basic tools : Chapter 7 ~ 12
B-trees, B+trees, hashed indexes, and extensible
dynamic hashed files
1.3 A Conceptual Toolkit
9. File StructuresFile Structure SNU-OOPSLA Lab 9
Object-Oriented ToolkitObject-Oriented Toolkit::
Making File Structures UsableMaking File Structures Usable
Object-Oriented Toolkit
making file structures usable requires turning
conceptual toolkit into collections :(classes) of data
types and operations
Major problem
complicated and progressive
often modified and extended from other classes
and details of classes become more complex
1.4 Object-Oriented Toolkit
10. File StructuresFile Structure SNU-OOPSLA Lab 10
Using objects in C++(1)Using objects in C++(1)
Features of object in C++
class definition
data members(attributes) + methods
constructor
provide a guarantee for initialization of every object &
called in creation time of object
public, private & protected sections
public label specifies that any users can freely access
private & protected label are restrict access
1.5. Using Objects in C++
11. File StructuresFile Structure SNU-OOPSLA Lab 11
Using objects in C++(2)Using objects in C++(2)
operator overloading
allows a particular symbol to have more than
one meaning
other features
inheritance, virtual function, and templates
explained in later chapters
1.5. Using Objects in C++
12. File StructuresFile Structure SNU-OOPSLA Lab 12
Let’s Review!!Let’s Review!!
1.1 The heart of file structure design
1.2 History of file structure design
1.3 Conceptual toolkit : file structure literacy
1.4 Object-Oriented Toolkit
: make file structure usable
1.5 Using objects in C++
Editor's Notes
Chap 1. Introduction to File Structures 객체지향시스템연구실
Chap 1. Introduction to File Structures 객체지향시스템연구실
Chap 1. Introduction to File Structures 객체지향시스템연구실