# The Computer Revolution/Databases/Database Models
## Hierarchical Databases

Hierarchical databases are the oldest database models. Unlike other models, they do not have a well documented history. The hierarchical database was the first one developed and therefore was commonly used in the first mainframe database management systems.They were developed out of the 1950's and 60's Information Management Systems. Many banks and insurance companies, as well as government departments and hospitals ( for inventory and accounting systems) still use them today.
The hierarchical database stores data in a series of records. These records have a set of field values attached to them. All instances of a specific record are collected together as a "record type". It uses "Parent Child Relationships" to create links between record types. It does this by using trees. However, it is only able to cope with one tree. As well, there can only be one parent per child, and no relationships among the child records are possible.
As an example, we could have a tree representing a university department, with subtrees representing staff members, students, courses, and facilities. We could have numerous department trees, but we could not have one employee working for more than one department. In order to do this, we would have to create two instances of the employee. Obviously, this would create inaccuracies when updating information, as the information might not be the same for all records. There is also the issue of data repetition in the various records.
A hierarchical database has a very structured form, as it allows no links between layers in different branches of the tree. Therefore, it is easy to use for adding, updating and deleting records.

### Advantages of the Database

* it is easy to design
* it is cheap to maintain
* it is easy to use
* as all data are stored in a common database, it implies data sharing and security can be inforced
* a certain degree of data independence can be maintained

### Shortcomings of the Database

* The hierarchical database is inflexible to information, for example; in a college setting, students may have a variety of classes/courses, but the hierarchical database is going to show only one of them and to the database the others don't exist.
* Relationships are difficult to implement in a hierarchical model.
* Extensive programming activities required. Navigation inside the tree is complicated.
* Difficult to solve the problem of single child with multiple parents
* Difficult to navigate through: with the exception of the root record, all records have to be accessed through the parent.
* Alteration of data is difficult due to rules governing the relationship of records.
Currently this type of database is not utilized to its full potential.
* It is simple and can not perform many to many correspondence
http://wwwdb.web.cern.ch/wwwdb/aboutdbs/classification/hierarchical.html

## Network Databases

Types of networks
Wide area Network WAN - a communication network that covers a wide geographical area. i.e. long distance telephone companies
Metropolitan Area Network MAN - a communication network that covers a city or suburb. i.e. local telephone companies and many cell phone companies
Local Area Network LAN - connects computers and devices in a limited geographic area. i.e. universities
Home Area Network HAN - wired cable or wireless networks. i.e. computers, printers, VCR, TV, home security systems.
Personal Area Network PAN - slightly different from HAN, because it doesn't use wires, it uses short range wireless technology. i.e. cell phones, PDA's, MP3 players, bluetooth.
Charles Bachman invented the network database model.
The network database model is very similar to the hierarchical model. However, instead of using a single-parent tree hierarchy, the network model uses set theory to provide a tree-like hierarchy with the exception that the child tables were allowed to have more than one parent. This allowed the network database model to support many relationships.
When you picture a network database the look is more like several trees that share branches. Children can have multiple parents and parents can have multiple children.

### Benefits of Network Database model

Some data are more commonly modeled with more than one parent per child,so the network model allowed the modeling of many relationships in data.
This type of data has functioning information within it, allowing insignificant entries to be dropped, newer entries to replace older ones, and, for the paranoid, protection against certain classes of attacked with more than one parent per child,so the network model allowed the modeling of many relationships in data.
General Services There is an online database to access clients, applicant, and jobs information. As well, about 24/7 access can through an Internet connection. In addition, online resume databases and Internet spiders can be accessed, too. Sharing,such as data, resources,information and research tools also works.
Research Services Having access to research staff and services. Also, people have choice of customized the level of the research.You can get assistance with screening candidates and references which people can check as well.
Technology Services Having firewall security and virus protection. Converse data, set-up system, and training are the benefits of network database. By this, maintenance of database and nightly backup are the advantages. People alse get round-the-clock technical support and assistance with registering domain names. Lastly, individuals can customize e-mail addresses.

## Relational Database Model

A relational database is a database system in which any database file can be a component of more than one of the database's tables. It is also a database system in which the database is organized and accessed according to the relationships between data items without the need for any consideration of physical orientation and relationship. Relationships between data items are expressed by means of tables.
It is a database that maintains a set of separate, related files (tables), but combines data elements from the files for queries and reports when required. The concept was developed in 1970 by Edgar Codd, whose objective was to accommodate a user's ad hoc request for selected data. Most every business database management system (DBMS), including Oracle, DB2, SQL Server, MySQL, etc., is a relational DBMS (RDBMS)

### Properties of Relational Databases
#### 1. Values are atomic

    Columns in a relational table are not repeating groups, this property ultimately simplifies data manipulation logic.

#### 2. Each column and row has a unique name

    The columns and rows are not distinctive by position and therefore they must have a name which is distinct from the rest of the table in order to identify them.

#### 3. Each row is unique

    No two rows are identical which ensures that every row has significance without duplication.

#### 4. The sequence of columns and rows is insignificant

    This allows the information in the table to be retrieved with ease and without and disruption to the data within the table. Also, it allows many more users of the table because the data is not confined to one format and is not changed when information is added or removed.

#### 5. Column values are of the same kind

    Each value within a specific column holds the same type of information and is of the same units as all the other data in the chart. i.e. monthly salaries and only monthly salaries are within the column.

### Keys

* A key is the tool to unlock access to tables. Knowledge of the key enables us to locate specific records, and cross the relationships between tables.
* Certain fields may be designated as keys, which means that searches for specific values of that field will use indexing
* A candidate key is any field, or combination of fields, that uniquely identifies a record. The field/s of the candidate key must contain unique values (if the values were duplicated, they would be no longer identify unique records), and cannot contain a null value.
* A primary key is the candidate key that has been chosen to identify unique records in a particular table.
* A foreign key is a reference to a key in another table. A relationship between two tables is created by creating a common field to the two tables.
* Foreign keys allow us to ensure what is called "referential integrity". This means a foreign key that contains a value must refer to an existing record in the related table. For example, take a look at these two tables:

## Object-Oriented Database
#### General

The definition of object-oriented database according to authors Williams and Sawyer it "uses 'objects,' software written in small, reusable chunks, as elements within database files" (Using Information & Technology, p422)
Multimedia, hypertext, and object relational are all databases connected with object-oriented databases.

#### Multimedia Database

Uses multiple forms of information content and information processing (e.g. text, audio, graphics, animation, video, interactivity). This means it can store more types of data than a relational database. For example, an object-oriented student database might contain each student's photo, a sound bite, or even a short piece of video, in addition to grades and personal data. The object would store operations, which are called methods, the programs that objects use to process themselves. For example these programs might indicate how to calculate the student's grade point average.

#### Hypertext Database

What is Hypertext database?
Any object, whether it be a piece of text, a picture, or a film, can be linked to any other object. Hypertext databases are particularly useful for organizing large amounts of disparate information, but they are not designed for numerical analysis.

#### Hypermedia Database

Hypermedia Databases allow media files to be queried and used as a tool to develop an understanding of your originally searched question. The goal of a hypermedia data base is to minimize error while saving space; this goal is obtained by linking to files via 'tags' or searchable text, then upon entry into the link (after a search is completed) the files format program is ran.

#### Object-relational

An object-oriented database uses software where little chunks are written within the database files. It is widely used in engineering design, telecommunications and multimedia. An object has two parts:
These types of databases are used by analysts, programmers and large corporation where complex software is required in order to maintain the company's inventory and structure. Object-oriented database has the capability to handle from small files to very large files of information. It is easy to read and more efficient when it comes to managing a lot of data. There are both free and commercial packages available that perform this mapping however many programmers create their Object Relational Object tools. This mapping is also referred to as a virtual object database.

### Multidimensional Databases
#### What is a Multidimensional Database?

During the past decade, the multidimensional data model emerged for use when the objective is to analyze data rather than to perform online transactions. Multidimensional database technology is a key factor in the interactive analysis of large amounts of data for decision-making purposes. In contrast to previous technologies, these databases view data as multidimensional cubes that are particularly well suited for data analysis.
Multidimensional models categorize data either as facts with associated numerical measures or as textual dimensions that characterize the facts.
Multidimensional data models have three important application areas within data analysis. • Data warehouses are large repositories that integrate data from several sources in an enterprise for analysis. • Online analytical processing (OLAP) systems provide fast answers for queries that aggregate large amounts of detail data to find overall trends. • Data mining applications seek to discover knowledge by searching semiautomatically for previously unknown patterns and relationships in multidimensional databases.
Pederson, T.B. & Jensen, C.S. (2002). Multidimensional Database Technology. Denmark: Aalborg University. http://infolab.usc.edu/csci599/Fall2002/paper/I1_pederson_p40.pdf

#### When is a Multidimensional Database used?

According to http://www.morebusiness.com/running_your_business/technology/d908484596.brc, if you have a large volume of data and/or categories and complex relationships between them, a multidimensional database (MDDB) should be considered. Multidimensional databases are capable of storing, viewing and sorting the same data in different ways. It would seem feasible to use this method in a national sales environment where geographic regions, months, people and products vs. sales are tracked. Other databases may require the user to scroll through a long list or table, while MDDB's structured presentation enables all possible combinations of information to be viewed along one common dimensional position. MDDBs are not for all organizations and applications. For example, a payroll department would not benefit from a multidimensional database because the employee names differ, as do their SIN numbers. MDDBs are only effective when the information is finite.

## Hybrid Database Model

A hybrid database is a combination of two or more database types and models. An emerging type of hybrid database is the hybrid XML/relational database, which is a type of database that can store and receive both XML and relational data. Both of the types of data can be accessed via quires and the databases can work together in a single application.

## Databases and the Web

Databases are seen everywhere on the Web. Companies who offer product information, online ordering, research resources, or similar activities with a Web site use a database. For example IMDB is a database that has all of the information you need about movies and things similar to that. Another database is Amazon that shows you things on sale, customer reviews and customer information and orders. Some databases that we use to share our personal things are YouTube, Facebook, and Flickr. Databases are interesting things that are everywhere and keeps information together. Because of databases we can read our favorite books online.

### How web databases work

Web databases work by a few steps to display the proper information to a user. First a user visits a site and fills out a query box, i.e. a search box, and follows through with an "enter" or click to submit the query. Next once the query is submitted the web server converts the information submitted by the user into a database query which gets sent to a database server for processing. Lastly the database server looks up the query and sends back results to the query to the web sever or middleware, which is software that ties a web server and a database two separate applications, that gets converted to HTML that can be displayed back to the user.
Source: Understanding Computers: Today and Tomorrow, 13th Edition Textbook

### Middleware

Middleware is software used to connect two otherwise separate applications, such as a Web server and a database management system. Web database applications often use middleware written as scripts or sections of code written in a programming language; such as Java, C, or Perl; that are executed by another program. There are different types of scripts such as: CGI scripts (common gateway interface), ASPs (active server pages), and PHP scripts (PHP hypertext preprocessor). Middleware is used on almost all shopping sites; when you search for a specific item middleware searches the database query and converts the results into HTML which the web server can then display the results.
Source: Understanding Computers: Today and Tomorrow, 13th Edition Textbook

## Micro-Targeting

Micro-targeting is the use of analytical tools to identify groups of voters to target during a political campaign. They use public consumer data, voting histories, poll results etc. to identify a group of voters that will vote a particular way. These individuals are then contacted by the phone, in person, or by mail. When contacted they focus on the subjects that are important to the individual found by micro targeting. This can make a big difference in results for a vote especially when it is a close race. The goal is to target undecided voters and convince them of the candidate that best approaches their most important issues.