Antelope(Database Management System) - Contiki
Antelope is a database management system for resource-constrained memory devices. It is a relational database management system(provides a set of relational database operations) which enables dynamic creation of databases and complex data querying.
You will learn
In this tutorial, we briefly study how antelope is implemented in Contiki operating system by going through some of the basic and important code blocks. We will also study how to run database client and server in cooja and get some hands on experience.
Antelope consists of eight components as shown in the below figure.
- Query processor : It parses AQL(query language of Antelope) queries.
- Privacy Control : Checks whether the query is allowed or not.
- Logic VM : It executes the queries.
- Database kernel : It holds the database logic and coordinates query execution.
- Index abstraction : It holds the indexing logic.
- Indexer process : Builds indexes from existing data.
- Storage abstraction : Contains all storage logic.
- Result transformer : It presents the result of query in a way that makes it easy to use by programs.
Antelope uses the standard terminology from the relational database management system. Below are some of the important terms:
- Tuple: It is a set of attribute values.
- Attribute: Different properties. E.g SensorID, Time.
- Domain: Each attribute has got a domain that specifies the data type of the attribute values.
- Relation: It is a collection of tuples that have the same set of attributes.
- Primary Key: One of the attribues, which uniquely identifies the tuple in a relation.
- Cardinality: The number of tuples in a relation is called the cardinality of the relation.
To put the above terminology in easy terms, informally we can say :
- A relation is like a table, attribute is like a column and a tuple is like a row. Below is an example.
1 - A database in every sensor network, Nicolas Tsiftes ,Adam Dunkels Swedish Institute of Computer Science, Kista, Sweden.