A database is a collection of records, organised, based in a computer which usually has some relation established between various recordings within it.
The now established definition of the database owes its origins to the computer industry, but to date its use has been extended and so new meanings were added over time. A broader definition would be thata database is a collection of records, based on a computer, organised sistematically in a such fashion that it allows a computer software to consult it using queries. The records which are retrieved from the database using queries can be further used as compiled information. The specialists tend to contradict among each others when it comes to enumerate specific criterias for defining a database, the most common criterias commonly accepted are such as: the data must be managed to preserve its integrity, it must allow multiple users, it must have a structural description of the items held (a schema) and it must allow the usage of a query language.
Types of databases
- Flat type of database- it has only a two dimensional array of records
- Network type of database- has data organised in records and sets. The sets are basically criterias which apply or not to the records.
- Relational type of database- the most used type currently used- the structures used are tables as opposed to relations, the difference consists that tables can contain identical columns or rows. The tables themselves treated separately can be considered flat databases. This type of database is extremely versatile and allows procedures not anticipated by the programmers.
- Dimensional type of database- it’s a specific application of the relational type which comprises data warehouses which in fact are different types of measures and dimensions which can be efficiently used and aggregated using OLAP queries
- Object based type of database- these databases try to merge the world of modern programming into record storing. They rely heavily on encapsulation and polymorphism.
Basic internal procedures
The index acts as a summary for the whole database. They are extremely useful in queries especially if they are optimised. The most common used techniques for indexing are hashes, B-trees and link lists.
- Transactions and concurrency
Transactions must obey to some very strict rules:
- atomicity- if an operation is attemped upon the database it must be completely realised or not realised at all
- consistency- all the operations must leave the database in an integral form, no ambigous data can be entered
- isolation- in case of multiple paralel operations each one must not interfere with another
- durability- all operations already realised once achieved cannot be discarded later.
Concurrency is the method used to inforce the criterias above.
Replication basically means that the transactions realised are made on multiple, identical databases. This is used mainly for backup and is done usually in realtime.