1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE chapter SYSTEM "chapter.dtd">
<chapter>
<header>
<copyright>
<year>1997</year><year>2013</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
</legalnotice>
<title>Introduction</title>
<prepared>Claes Wikström, Hans Nilsson and Håkan Mattsson</prepared>
<responsible>Bjarne Däcker</responsible>
<docno></docno>
<approved>Bjarne Däcker</approved>
<checked>Bjarne Däcker</checked>
<date></date>
<rev>C</rev>
<file>Mnesia_chap1.xml</file>
</header>
<p>The <c>Mnesia</c> application provides a heavy duty real-time
distributed database.</p>
<section>
<title>Scope</title>
<p>This User's Guide describes how to
build <c>Mnesia</c> database applications, and how to integrate
and use the <c>Mnesia</c> database management system with
OTP. Programming constructs are described, and numerous
programming examples are included to illustrate the use of
<c>Mnesia</c>.</p>
<p>This User's Guide is organized as follows:</p>
<list type="bulleted">
<item><seealso marker="Mnesia_overview">Mnesia</seealso>
provides an introduction to
<c>Mnesia</c>.
</item>
<item><seealso marker="Mnesia_chap2">Getting Started</seealso>
introduces <c>Mnesia</c> with an example database. Examples
are included how to start an Erlang session, specify a
<c>Mnesia</c> database directory, initialize a database
schema, start <c>Mnesia</c>, and create tables. Initial
prototyping of record definitions is also discussed.
</item>
<item><seealso marker="Mnesia_chap3">Build a Mnesia
Database</seealso> more formally describes the steps
introduced in the previous section, namely the <c>Mnesia</c>
functions that define a database schema, start <c>Mnesia</c>,
and create the required tables.
</item>
<item><seealso marker="Mnesia_chap4">Transactions and Other Access Contexts</seealso>
describes the transactions properties that make <c>Mnesia</c> into
a fault tolerant, real-time distributed database management
system. This section also describes the concept of locking
to ensure consistency in tables, and "dirty
operations", or short cuts, which bypass the transaction system
to improve speed and reduce overheads.
</item>
<item><seealso marker="Mnesia_chap5">Miscellaneous Mnesia
Features</seealso> describes features that enable the
construction of more complex database applications. These
features include indexing, checkpoints, distribution and fault
tolerance, disc-less nodes, replication manipulation, local
content tables, concurrency, and object-based programming in
<c>Mnesia</c>.
</item>
<item><seealso marker="Mnesia_chap7">Mnesia System
Information</seealso> describes the files contained in the
<c>Mnesia</c> database directory, database configuration data,
core and table dumps, as well as the important subject of
backup, fall-back, and disaster recovery principles.
</item>
<item><seealso marker="Mnesia_chap8">Combine Mnesia with
SNMP</seealso> is a short section that outlines <c>Mnesia</c>
integrated with SNMP.
</item>
<item><seealso marker="Mnesia_App_A">Appendix A: Backup
Callback Interface</seealso> is a program listing of the
default implementation of this facility.
</item>
<item><seealso marker="Mnesia_App_B">Appendix B: Activity
Access Callback Interface</seealso> is a program outlining
one possible implementation of this facility.
</item>
<item><seealso marker="Mnesia_App_C">Appendix C: Fragmented
Table Hashing Callback Interface</seealso> is a program
outlining one possible implementation of this facility.
</item>
</list>
</section>
<section>
<title>Prerequisites</title>
<p>It is assumed that the reader is familiar with the Erlang
programming language, system development principles, and
database management systems.</p>
</section>
</chapter>
|