Database Theory for Mnesia

Target Audience: Support and Test Engineers, Software Developers,

Prerequisites: Erlang by Example (or similar) for software developers. Erlang for Test and Support (or similar) with three months full time Erlang experience for Test and Support Engineers. OTP is recommended, but not necessary.

Objectives:

  • Understand the principles of database theory.
  • Understand Transactions and Atomicity.
  • Good understanding of Mnesia and its applications.
  • Understanding of Mnesia and Database Optimisations.
  • Awareness of the occurring problems when using Mnesia.

Duration: One day

This one day course teaches the basic concepts of database theory such as transactions and atomicity. Takes a detailed look on designing databases with Mnesia and also how to maintain a Mnesia database. Further the open source and OTP libraries to interface with other databases and to extend the relational properties of Mnesia are covered. The Databases Theory for Mnesia seminar is intended for Software Developers and Support and Test Engineers with programming experience.

Course Contents


The Database Theory for Mnesia seminar covers the theory needed to work with Mnesia as well as indepth look at Mnesia and open source interfaces to other databases.

 

This one day course teaches the basic concepts of database theory such as transactions and atomicity. Takes a detailed look on designing databases with Mnesia and also how to maintain a Mnesia database. Further the open source and OTP libraries to interface with other databases and to extend the relational properties of Mnesia are covered.

The Databases Theory for Mnesia seminar is intended for Software Developers and Support and Test Engineers with programming experience.

Course Contents

Database Theory
All the major concepts needed to understand, design and implement a working database are covered.

An Introduction to Mnesia
Mnesia is a distributed, fault tolerant relational database encapsulated in an Erlang application. This section looks at starting and configuring Mnesia, followed by creating, populating and manipulating tables. It introduces transaction handling, locks, and complex queries. It concludes with guidelines on when to use and not to use Mnesia.

Maintaining Mnesia
Mnesia is a complex database, and lots can go wrong. This section introduces basic maintainability issues such as backups, repopulating databases from backups, traversing backup’s offline gathering information. It also covers the largest problem with distributed databases, network partitioning.

Mnemosyne
Mnemosyne is Mnesia’s own query language based on list comprehensions. This section introduces mnemosyne and the more complex queries that can be achieved using it.

Query List Comprehensions
QLC is a new query language intended to replace Mnemosyne as the Mnesia query language. QLC als support queries for ETS, DETS tables and other searchable data structures. The concepts and how construct queries presented.

External Interfaces
There is general connectivity with external databases using the OTP's ODBC libraries. For MySQL and PostgreSQL there are dedicated open source interfaces. The Mensia session library provides a CORBA interface enabling access from foreign programming languages. The open source Rdms library provides an additional relational database layer on top of Mnesia.