3 MMDBMS Overview
The MMDBMS that have been implemented allows database creation, table and
constraints adding (primary key, foreign keys), inserting images and alphanumerical
information, simple text based query and content-based query using color and texture
characteristics. The software tool is easy to be used because it respects the SQL
standard. It does not need advanced informatics knowledge and has the advantage of
low cost. It is a good alternative for a classical database management system (MS
Access, MS SQL Server, Oracle10g Server and Intermedia), which would need higher
costs for database server and for designing applications for content-based retrieval.
Figure 3 presents the general architecture of the MMDBMS [1][2][3].
In the first step any application that uses the server must connect to the database.
This way it will be created a communication channel between them. All commands
and responses will use this channel to send queries requests and receive answers.
The server has two main modules: kernel engine and database files manager.
The kernel engine includes all functions implemented in the server. It is composed
from several sub-modules each of them with specific tasks[1][2]:
The Main Module. It is the module, which manages all communications with the
client. It is the one that receives all queries requests, check what is the type of query
requested, extracts the parameters of the query and calls the specific module to
execute it.
Queries Response Module. After the query is executed, the results will be sent to the
Queries Response Module. It will compact the result using a standard format and then
return it to the client. The client will receive it on the same communication channel
used to send the request.
Select Processing Module. If the main module concludes that is a SELECT SQL
command, it will call the Select Processing module. This module extracts the
parameters from the query and then search in the database files for specific
information. If the query is a SELECT IMAGE query, it will use for comparison the
similitude of characteristics instead equality of parameters.
Characteristics Extraction Module. When the main module receives a SELECT
IMAGE or a UPDATE query which uses an image that is not already in the database
it is needed first to process it.
This module is called to extract the color and texture characteristics of the image. The
data of the results will be used to initialize a variable of IMAGE data type.
Update Processing Module. When the query received from the user is an UPDATE
command, it will be called to execute it.
Delete Processing Module. It is called when the user executes a DELETE command.
The kernel executes only logic deletes. It never executes physical deletes. The
physical deletes are executed only when a “Compact Database” command is sent by
the user.
The second main module is the Database Files Manager. It is the only module that has
access for reads and writes to the files in the database. It is his job to search for
information in the files, to read and write into files and to manage locks over
databases. When a client module request a read form a file it is enabled a read lock for
145