TinyBase
A. Dieng
J.B. Griesner
www.infres.enst.fr/~griesner/
1
Support de présentation du projet TinyBase - UE : INF345 – (2014-2015)
RedBase Project 1
●
RedBase : projet issu de Stanford.
●
Projet pédagogique d'implantation
d'un SGBD relationnel
●
Structuré en plusieurs composants
●
Langage choisi : C++
2
(1)
infolab.stanford.edu/~hyunjung/cs346/
Architecture
Overview
General architecture for RDBMS : Multi-Layers
3
Architecture
Overview
General architecture for RDBMS : Queries process
4
TinyBase Architecture
4 composants
à faire
1 composant
fourni
5
Paged Files Component
●
Provides facilities for higher-level client components
●
Performs file I/O in terms of pages
●
Methods to create, destroy, open, and close paged files
●
Each class begins with the prefix PF
●
Each method returns an integer : Return Code (RC)
●
Each page is loaded into a buffer pool in memory
●
Pages are identified by pages numbers
6
Paged Files Component
7
Record Management
Component
●
First part of the TinyBase system you will implement
●
Managing files of unordered records
●
Prefix for methods : « RM »
●
RM component is a client to the PF component
●
RM methods will make calls to the PF methods
●
Store records in paged files
●
First page of each file as a special header page
●
First task : implement methods of the « rm.h » source file
8
Record Management
Component
9
Indexing Component
●
Provides classes for managing persistent indexes
●
Each data file may have any number of indexes
●
Indexes are themselves stored in paged files (use the PF)
●
Indexing technique : B+ Trees
●
Each B+ tree index can be stored in one paged file
10
System Management
Component
●
Provides a « set » of capabilities :
–
Unix command line utilities
–
Data definition language (DDL) commands
create table relName(attrName1 Type1, attrName2 Type2, ..., attrNameN TypeN);
–
System utilities
load relName("FileName");
–
Metadata management
11
Query Language
Component
●
Implements the language RQL
●
Data Retrieval ~ SQL Select
●
Data Modification ~ SQL Insert, Delete, Update
●
●
...
Methods are called by the parser
12
Submissions Process
●
~ 2 semaines / Composant
●
Livrables : code source (archive file of /src /build /lib)
1
un rapport de 2 pages
●
Evaluation based on the :
- DPF_STATS flag
- compilation du projet sur les machines de l'école
●
Chaque module sera évalué et testé à part
●
Toutes les 2 semaines, nous vous donnons le code attendu
13
(1)
More details : www.infres.enst.fr/~griesner/tinybase/logistics.html
Questions
?
14