Академический Документы
Профессиональный Документы
Культура Документы
Architecture
Components
Demonstration programs and Tools
JDBC Driver classes
Server classes (only required for Client/Server)
Database Engine
Utilities (not required for Runtime)
How the components interact
The user applications work
with the JDBC interface only Demonstration programs and Tools
table)
The Database contains the Database
Tables, the Access rights and
Access Log
the Log file writer
The answer from the database Table (Vector) User
(Vector)
Cache
Access Log
TableFilter (Vector)
Table (Vector) User Tokenizer
Cache
(Vector)
Expression [condition]
Expression (Vector)
DatabaseInformation [columns]
Select [union]
A Table contains
…a Name (not listed) Table
…Column descriptions (with
column name, datatype,…)
Column (Vector)
…one or more Index (the
rows are accessible only
trough an index) Index (Vector)
…a Cache if it’s not an in-
memory table
…maybe Contraints (if there Cache
are foreign keys defined)
If the user didn’t create Primary
key, a hidden column & Index is Constraint (Vector)
created automatically
How the data is saved
The Index is a AVL binary Index
tree (a special binary tree) Node [root]
Each Index contains a root
Node (‘null’ if the table is Node [parent]
data) Object
The data is an array of (array) [data]
Objects
Table with conditions applied
A TableFilter has a link to the TableFilter
underlying table
An Index must be used to Table
scroll through the records
There is a current Node, and
Index [used index]
functions to fetch the first or
next row where the
conditions apply
Node [current]
There may be a starting
condition (Id>100) and an
ending condition (Id<100) Expression
and other conditions [condition: start, end,
(Id<>50) for the index used and]
Simple or complex Expressions
Contains a type (not listed) Expression
(arguments)
Object [data]
A simple Expression can be
just a value (an Object) Hashtable [valuelist]
Or a list of values (1,2,3,4)
Select [subquery]
Or a subquery (nested
SELECT) Function
Log .properties:
modified=no
.script: version=1.3
readonly=false
CREATE TABLE ...
INSERT INTO ...
INSERT INTO ...
INSERT INTO ...
How records are cached
The Cache is a Cache
hashtable
Row
Additionally, the records Data
(array)
in the cache are linked
together in a double
linked list
If there are too many
records in the cache,
the oldest records are
saved (if required) and .data:
removed from the cache [contains the binary records and empty blocks]
File system overview
Log .properties:
modified=no
.script: version=1.3
readonly=false
CREATE TABLE ...
INSERT INTO ...
INSERT INTO ...
INSERT INTO ...
.backup:
.data: [contains a
Cache compressed backup of
[contains the binary old .data file]
Row records and empty
Data blocks]
(array)
Transaction handling
The Channel keeps track of Channel