In this dissertation, we propose a nested bitemporal relational data model, using nested relations, and we also develop algebra and calculus languages for this model. The fundamental construct for representing temporal data is a bitemporal atom that consists of five parts: a value, its validity period, and the time this data is recorded in the database. Bitemporal data is attached to attributes, and arbitrary levels of nesting are allowed. The algebra includes operations to manipulate bitemporal data, to restructure nested bitemporal relations, and to rollback database to a designated state in the past. We have also defined the concept of 'context' for using bitemporal data: bitemporal context, historical context, and current context. BtSQL, a preprocessor for the bitemporal SOL language, query syntax allows end users to incorporate bitemporal, current and historical context. We defined and implemented BtSQL for the specification of bitemporal queries in different context. It translates a bitemporal query specification to a standard SQL statement. BtSQL includes select, insert, delete, and update statements of SQL extended for bitemporal relational databases. A prototype implementation has been completed in an object-relational database system to demonstrate the feasibility of the model defined in this thesis.