This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
When considering about sensor networks hardware platforms, these hardware platforms are constrained by processing power, memory capacity and energy which generate the requirement of special operating systems to support Wireless Ad-Hoc Sensor Networks. Those operating systems should be less complex and required to optimally use the available limited amount of resources. Concurrent, reactive and support for communication are the most fundamental features that should be available on a sensor networks operating systems. TinyOS, Contiki, MANTIS, BTnut, LiteOS and Nano-RK are some of the operating systems that have been specifically design for sensor networks. Most of these operating systems written by using C language, because these operating systems does not need to include support of user interfaces. Also resource constraints are the most crucial factor when developing such kind of sensor network operating systems.\\
Considering about wireless ad-hoc and sensor networking research area, basically there are two paths. First one is considering sensor networks as networking area and doing research and the second path is considering sensor networks as databases and doing the research. When considering sensor network as databases, having database for each and every node is not feasible due to the limited memory capacity of the sensor nodes. So to address this limitation researches came up with a solution that locating database abstraction in base station and communicate base station with sensor node using efficient routing algorithms. Users can inject queries at the base station and base station converts those queries to sensor node understandable format using query library and send to nodes and get the results.
When considering about the database abstractions in wireless ad-hoc and sensor networks TinyDB, TikiriDB and Vector programming database abstraction are the well known database abstractions which are currently available. TinyDB is the database abstraction layer in TinyOS operating system, which is develop by University of California, Berkeley. This was written by using NesC language which is the extension from C language. TikiriDB is the database abstraction layer for Contiki operating system which was developed by University of Colombo School of Computing. TikiriDB was written by using C language. When comparing TinyDB and TikiriDB, TikiriDB supports shared WSNs which is not supported by TinyDB.\\
Considering about TikiriDB and TinyDB database abstractions in sensor networks, those database abstractions used SQL-Like query interface to querying sensor network. Users can inject queries from the base station, then base station convert those queries to sensor node understandable format and send to the sensor nodes and sensor nodes sense data according to the queries and obtained results. Finally sensor nodes send those data to the base station.
Normally Relational Database Management Systems (RDBMS) guarantee ACID properties (atomicity, consistency, isolation, durability). Currently we thought about TikiriDB and TinyDB as a RDBMS and we input SQL like queries from the base station and obtained results. But in those database abstractions we cannot guarantee ACID properties because sensor networks not guarantee about it. Sometimes sensor nodes can fail due to the low power or some environmental constrains. Due to that some of the data can be lost in the operational mode of the sensor network.\\
Current database abstractions we can use some SQL operations such as JOIN. JOIN operation is most costly operation in SQL. If we want to use SQL JOIN operation at least we should have two tables. But current database abstraction we have not fixed table structure. Data flush to the base station in scale horizontal way. Also sometimes data can be lost in sensor networks. According to that we can illustrate such kind of SQL operations are useless when considering about sensor networks.
AICD properties are not guarantee in sensor networks. Also current database abstractions for wireless ad-hoc and sensor networks we had a problem in SQL-Like query interface. Current database abstractions operated as referring sensor networks as relational database management system architecture. But according to the problem which has in current database abstraction for WSNs, SQL-Like query interface is not suitable. So new kind of a query interface is needed for wireless ad-hoc and sensor networks database abstractions.
The main objective of this research is to give NoSQL database abstraction for TikiriDB which is the declarative database abstraction for Contiki operating system. When considering about NoSQL, it mainly focus on performance and scalability. NoSQL did not guarantee ACID properties. NoSQL did not require fixed table structure. Comparing NoSQL database abstraction with current database abstractions, NoSQL database abstractions is better approach for sensor networks.\\
NoSQL mainly store the data as Key-Value pairs. Most NoSQL databases used distributed hash tables to store data. Redis, Cassandra in Twitter, Bigtable in Google are some examples for such NoSQL databases.
In our research first we take current TikiriDB database abstraction which has Tikiri-SQL client which gives SQL-Like query interface to users. Then our approach is implementing NoSQL database abstraction for TikiriDB with replacing Tikiri-SQL client with NoSQL. To do that first we use RedisDB. RedisDB is the light weight NoSQL database which has 80,000+ operations per second. RedisDB is written by using C language and it supports multiple platforms such as Java, Perl, PHP and so many other languages. Considering about RedisDB it can handle to write operations even faster than it read operations. And it can store data in sorted sets or hashes.\\
After implementing RedisDB NoSQL database abstraction we compare the query operation time with existing TikiriDB database abstraction. Then we try BekeleyDB NoSQL database abstraction in TikiriDB and evaluate the performances with current TikiriDB database abstraction and BekeleyDB database abstraction. By comparing those results we hope to get the most suitable NoSQL database abstraction for wireless ad-hoc and sensor networks. Finally we are trying to give unique NoSQL database abstraction for WSNs without dealing with RedisDB or BekeleyDB.