Professional Documents
Culture Documents
There are four essential elements that are found with just about every
example of DBMS currently on the market. The first is the
implementation of a modeling language that serves to define the
language of each database that is hosted via the DBMS. There are
several approaches currently in use, with hierarchical, network,
relational, and object examples. Essentially, the modeling language
ensures the ability of the databases to communicate with the DBMS
and thus operate on the system.
Overview
A DBMS is a set of software programs that controls the organization,
storage, management, and retrieval of data in a database. DBMS are
categorized according to their data structures or types. It is a set of
prewritten programs that are used to store, update and retrieve a
Database. The DBMS accepts requests for data from the application
program and instructs the operating system to transfer the appropriate
data. When a DBMS is used, information systems can be changed
much more easily as the organization's information requirements
change. New categories of data can be added to the database without
disruption to the existing system.
Database servers are computers that hold the actual databases and
run only the DBMS and related software. Database servers are usually
multiprocessor computers, with generous memory and RAID disk
arrays used for stable storage. Connected to one or more servers via a
high-speed channel, hardware database accelerators are also used in
large volume transaction processing environments. DBMSs are found
at the heart of most database applications. Sometimes DBMSs are
built around a private multitasking kernel with built-in networking
support although nowadays these functions are left to the operating
system.
History
Databases have been in use since the earliest days of electronic
computing. Unlike modern systems which can be applied to widely
different databases and needs, the vast majority of older systems were
tightly linked to the custom databases in order to gain speed at the
expense of flexibility. Originally DBMSs were found only in large
organizations with the computer hardware needed to support large
data sets.
IBM also had their own DBMS system in 1968, known as IMS. IMS was
a development of software written for the Apollo program on the
System/360. IMS was generally similar in concept to Codasyl, but used
a strict hierarchy for its model of data navigation instead of Codasyl's
network model. Both concepts later became known as navigational
databases due to the way data was accessed, and Bachman's 1973
Turing Award award presentation was The Programmer as Navigator.
IMS is classified as a hierarchical database. IDS and IDMS, both
CODASYL databases, as well as CINCOMs TOTAL database are
classified as network databases.
In this paper, he described a new system for storing and working with
large databases. Instead of records being stored in some sort of linked
list of free-form records as in Codasyl, Codd's idea was to use a "table"
of fixed-length records. A linked-list system would be very inefficient
when storing "sparse" databases where some of the data for any one
record could be left empty. The relational model solved this by splitting
the data into a series of normalized tables, with optional elements
being moved out of the main table to where they would take up room
only if needed.
In the relational model, related records are linked together with a
"key".
Linking the information back together is the key to this system. In the
relational model, some bit of information was used as a "key",
uniquely defining a particular record. When information was being
collected about a user, information stored in the optional (or related)
tables would be found by searching for this key. For instance, if the
login name of a user is unique, addresses and phone numbers for that
user would be recorded with the login name as its key. This "re-
linking" of related data back into a single collection is something that
traditional computer languages are not designed for.
IBM itself did only one test implementation of the relational model,
PRTV, and a production one, Business System 12, both now
discontinued. Honeywell did MRDS for Multics, and now there are two
new implementations: Alphora Dataphor and Rel. All other DBMS
implementations usually called relational are actually SQL DBMSs. In
1968, the University of Michigan began development of the Micro
DBMS relational database management system. It was used to
manage very large data sets by the US Department of Labor, the
Environmental Protection Agency and researchers from University of
Alberta, the University of Michigan and Wayne State University. It ran
on mainframe computers using Michigan Terminal System. The system
remained in production until 1996.
In Sweden, Codd's paper was also read and Mimer SQL was developed
from the mid-70s at Uppsala University. In 1984, this project was
consolidated into an independent enterprise. In the early 1980s, Mimer
introduced transaction handling for high robustness in applications, an
idea that was subsequently implemented on most other DBMS.
Modeling language
• hierarchical model,
• network model,
• relational model, and
• object model.
Inverted lists and other methods are also used. A given database
management system may provide one or more of the four models. The
optimal structure depends on the natural organization of the
application's data, and on the application's requirements (which
include transaction rate (speed), reliability, maintainability, scalability,
and cost).
The dominant model in use today is the ad hoc one embedded in SQL,
despite the objections of purists who believe this model is a corruption
of the relational model, since it violates several of its fundamental
principles for the sake of practicality and performance. Many DBMSs
also support the Open Database Connectivity API that supports a
standard way for programmers to access the DBMS.
Data structure
Transaction mechanism
DBMS Topics
Logical and physical view
Query ability
Querying is the process of requesting attribute information from
various perspectives and combinations of factors. Example:
"How many 2-door cars in Texas are green?" A database query
language and report writer allow users to interactively
interrogate the database, analyze its data and update it
according to the users privileges on data.
Backup and replication
Copies of attributes need to be made regularly in case primary
disks or other equipment fails. A periodic copy of attributes may
also be created for a distant organization that cannot readily
access the original. DBMS usually provide utilities to facilitate the
process of extracting and disseminating attribute sets. When
data is replicated between database servers, so that the
information remains consistent throughout the database system
and users cannot tell or even know which server in the DBMS
they are using, the system is said to exhibit replication
transparency.
Rule enforcement
Often one wants to apply rules to attributes so that the
attributes are clean and reliable. For example, we may have a
rule that says each car can have only one engine associated with
it (identified by Engine Number). If somebody tries to associate
a second engine with a given car, we want the DBMS to deny
such a request and display an error message. However, with
changes in the model specification such as, in this example,
hybrid gas-electric cars, rules may need to change. Ideally such
rules should be able to be added and removed as needed without
significant data layout redesign.
Security
Often it is desirable to limit who can see or change which
attributes or groups of attributes. This may be managed directly
by individual, or by the assignment of individuals and privileges
to groups, or (in the most elaborate models) through the
assignment of individuals and groups to roles which are then
granted entitlements.
Computation
There are common computations requested on attributes such as
counting, summing, averaging, sorting, grouping, cross-
referencing, etc. Rather than have each computer application
implement these from scratch, they can rely on the DBMS to
supply such calculations.
Change and access logging
Often one wants to know who accessed what attributes, what
was changed, and when it was changed. Logging services allow
this by keeping a record of access occurrences and changes.
Automated optimization
If there are frequently occurring usage patterns or requests,
some DBMS can adjust themselves to improve the speed of
those interactions. In some cases the DBMS will merely provide
tools to monitor performance, allowing a human expert to make
the necessary adjustments after reviewing the statistics
collected.
Meta-data repository
Metadata is data describing data. For example, a listing that describes
what attributes are allowed to be in data sets is called "meta-
information". The meta-data is also known as data about data.
• Column-oriented DBMS
• Data warehouse
• Database-centric architecture
• Directory service
• Distributed database management system
• Document management system
• Hierarchical model
• Navigational database
• Network model
• Object model
• Object database
• Object-relational database
• Real time database
• Associative model of data
• Relational model
• Relational database management system
• Run Book Automation
• Comparison of relational database management systems
• SQL
Computer software
Computer software, or just software is a general term used to
describe a collection of computer programs, procedures and
documentation that perform some tasks on a computer system.[1]
Overview
Computer software are often regarded as anything but hardware,
meaning that the "hard" are the parts that are tangible while the "soft"
part is the intangible objects inside the computer. Software
encompasses an extremely wide array of products and technologies
developed using different techniques like programming languages,
scripting languages or even microcode or a FPGA state. The types of
software include web pages developed by technologies like HTML, PHP,
Perl, JSP, ASP.NET, XML, and desktop applications like Microsoft Word,
OpenOffice developed by technologies like C, C++, Java, C#, etc.
Software usually runs on an underlying software operating systems
such as the Microsoft Windows or Linux. Software also includes video
games and the logic systems of modern consumer devices such as
automobiles, televisions, toasters, etc.
The term "software" was first used in this sense by John W. Tukey in
1958.[4] In computer science and software engineering, computer
software is all computer programs. The theory that is the basis for
most modern software was first proposed by Alan Turing in his 1935
essay Computable numbers with an application to the
Entscheidungsproblem.[5]
Types of software
System software
• device drivers,
• operating systems,
• servers,
• utilities,
• Faraware,
• windowing systems,
Programming software
• compilers,
• debuggers,
• interpreters,
• linkers,
• text editors,
Application software
• industrial automation,
• business software,
• computer games,
• telecommunications, (ie the internet and everything that flows
on it)
• databases,
• educational software,
• medical software,
Software topics
Architecture
Documentation
Most software has software documentation so that the end user can
understand the program, what it does and how to use it. Without a
clear documentation a software can be hard to use and especially if it
is a very specialized and relatively complex software like the
Photoshop, AutoCAD, etc.
Developer documentation may also exist, either with the code as
comments and/or as separate files, detailing how the programs works
and can be modified.
Library
Standard
Execution
License
The software's license gives the user the right to use the software in
the licensed environment. Some software comes with the license when
purchased off the shelf, or an OEM license when bundled with
hardware. Other software comes with a free software license, granting
the recipient the rights to modify and redistribute the software.
Software can also be in the form of freeware or shareware. See also
License Management.
Patents
Software has its own niche industry that is called the software industry
made up of different entities and peoples that produce software, and
as a result there are many software companies and programmers in
the world. Because software is increasingly used in many different
areas like in finance, searching, mathematics, space exploration,
gaming and mining and such, software companies and people usually
specialize in certain areas. For instance, Electronic Arts primarily
creates video games.
There are also many non-profit software organizations like the Free
Software Foundation, GNU Project, Mozilla Foundation. Also there are
many software standard organizations like the W3C, IETF and others
that try to come up with a software standard so that many software
can work and interoperate with each other like through standards such
as XML, HTML, HTTP, FTP, etc.
See also
Lists Types of software Software portal
Related subjects
• List of basic • Custom
computer Software
• Software as a
programming topics • Free software
Service
• List of computer • Freeware
• Software
programming topics • Open source
development
software
process
• Origins of computer • Proprietary
• Software
terms software
ecosystem
• Scientific
• Software
software
industry
• Shareware
• Software license
Database
Jump to: navigation, search
This article is principally about managing and structuring the
collections of data held on computers. For a fuller discussion of DBMS
software, see Database management system. For databased content
libraries, see Online database
Database topics
Architecture
Database models
Products offering a more general data model than the relational model
are sometimes classified as post-relational. The data model in such
products incorporates relations but is not constrained by the
Information Principle, which requires that all information is
represented by data values in relations.
Indexing
Most relational DBMS's and some object DBMSs have the advantage
that indexes can be created or dropped without changing existing
applications making use of it. The database chooses between many
different strategies based on which one it estimates will run the
fastest. In other words, indexes are transparent to the application or
end-user querying the database; while they affect performance, any
SQL command will run with or without index to compute the result of
an SQL statement. The RDBMS will produce a plan of how to execute
the query, which is generated by analyzing the run times of the
different algorithms and selecting the quickest. Some of the key
algorithms that deal with joins are nested loop join, sort-merge join
and hash join. Which of these is chosen depends on whether an index
exists, what type it is, and its cardinality.
An index speeds up access to data, but it has disadvantages as well.
First, every index increases the amount of storage on the hard drive
necessary for the database file, and second, the index must be
updated each time the data are altered, and this costs time. (Thus an
index saves time in the reading of data, but it costs time in entering
and altering data. It thus depends on the use to which the data are to
be put whether an index is on the whole a net plus or minus in the
quest for efficiency.)
Security
• Access control ensures and restricts who can connect and what
can be done to the database.
• Auditing logs what action or change has been performed, when
and by whom.
• Encryption: Since security has become a major issue in recent
years, many commercial database vendors provide built-in
encryption mechanisms. Data is encoded natively into the tables
and deciphered "on the fly" when a query comes in. Connections
can also be secured and encrypted if required using DSA, MD5,
SSL or legacy encryption standard.
Locking
In basic filesystem files or folders, only one lock at a time can be set,
restricting the usage to one process only. Databases, on the other
hand, can set and hold mutiple locks at the same time on the different
level of the physical data structure. How locks are set, last is
determined by the database engine locking scheme based on the
submitted SQL or transactions by the users. Generally speaking, no
activity on the database should be translated by no or very light
locking.
For most DBMS systems existing on the market, locks are generally
shared or exclusive. Exclusive locks mean that no other lock can
acquire the current data object as long as the exclusive lock lasts.
Exclusive locks are usually set while the database needs to change
data, like during an UPDATE or DELETE operation.
Shared locks can take ownership one from the other of the current
data structure. Shared locks are usually used while the database is
reading data, during a SELECT operation. The number, nature of locks
and time the lock holds a data block can have a huge impact on the
database performances. Bad locking can lead to disastrous
performance response (usually the result of poor SQL requests, or
inadequate database physical structure)
Databases can also be locked for other reasons, like access restrictions
for given levels of user. Some databases are also locked for routine
database maintenance, which prevents changes being made during the
maintenance. See "Locking tables and databases" (section in some
documentation / explanation from IBM) for more detail.) However,
many modern databases don't lock the database during routine
maintenance. e.g. "Routine Database Maintenance" for PostgreSQL.
Applications of databases
Databases are used in many applications, spanning virtually the entire
range of computer software. Databases are the preferred method of
storage for large multiuser applications, where coordination between
many users is needed. Even individual users find them convenient, and
many electronic mail programs and personal organizers are based on
standard database technology. Software database drivers are available
for most database platforms so that application software can use a
common Application Programming Interface to retrieve the information
stored in a database. Two commonly used database APIs are JDBC and
ODBC.
See also
• Comparison of relational database management systems
• Comparison of database tools
• Database-centric architecture
• Database theory
• Government database
• Object database
• Online database
• Real time database
• Relational database
Database model
From Wikipedia, the free encyclopedia
Overview
A database model is a theory or specification describing how a
database is structured and used. Several such models have been
suggested.
Common models include:
• Hierarchical model
• Network model
• Relational model
• Entity-relationship
• Object-relational model
• Object model
A data model is not just a way of structuring data: it also defines a set
of operations that can be performed on the data. The relational model,
for example, defines operations such as select, project, and join.
Although these operations may not be explicit in a particular query
language, they provide the foundation on which a query language is
built.
Models
Various techniques are used to model data structure. Most database
systems are built around one particular data model, although it is
increasingly common for products to offer support for more than one
model. For any one logical model various physical implementations
may be possible, and most products will offer the user some level of
control in tuning the physical implementation, since the choices that
are made have a significant effect on performance. An example of this
is the relational model: all serious implementations of the relational
model allow the creation of indexes which provide fast access to rows
in a table if the values of certain columns are known.
Flat model
Hierarchical model
Hierarchical Model.[1]
Main article: Hierarchical model
Parent–child relationship: Child may only have one parent but a parent
can have multiple children. Parents and children are tied together by
links called "pointers“. A parent will have a list of pointers to each of
their children.
Network model
Network Model.[1]
Main article: Network model
Relational model
The basic data structure of the relational model is the table, where
information about a particular entity (say, an employee) is represented
in columns and rows (also called tuples). Thus, the "relation" in
"relational database" refers to the various tables in the database; a
relation is a set of tuples. The columns enumerate the various
attributes of the entity (the employee's name, address or phone
number, for example), and a row is an actual instance of the entity (a
specific employee) that is represented by the relation. As a result,
each tuple of the employee table represents various attributes of a
single employee.
All relations (and, thus, tables) in a relational database have to adhere
to some basic rules to qualify as relations. First, the ordering of
columns is immaterial in a table. Second, there can't be identical
tuples or rows in a table. And third, each tuple will contain a single
value for each of its attributes.
Dimensional model
The dimensional model is a specialized adaptation of the relational
model used to represent data in data warehouses in a way that data
can be easily summarized using OLAP queries. In the dimensional
model, a database consists of a single large table of facts that are
described using dimensions and measures. A dimension provides the
context of a fact (such as who participated, when and where it
happened, and its type) and is used in queries to group related facts
together. Dimensions tend to be discrete and are often hierarchical; for
example, the location might include the building, state, and country. A
measure is a quantity describing the fact, such as revenue. It's
important that measures can be meaningfully aggregated - for
example, the revenue from different locations can be added together.
In an OLAP query, dimensions are chosen and the facts are grouped
and added together to create a summary.
See also
• Associative
• Concept-oriented
• Entity-attribute-value
• Information model
• Multi-dimensional model
• Semantic data model
• Semi-structured
• Star schema
• XML database
Network model
The network model is a database model conceived as a flexible way
of representing objects and their relationships.
Overview
Where the hierarchical model structures data as a tree of records, with
each record having one parent record and many children, the network
model allows each record to have multiple parent and child records,
forming a lattice structure.
• TurboIMAGE
• IDMS(Integrated Database Management System)
• RDM Embedded
• RDM Server
History
In 1969, the Conference on Data Systems Languages (CODASYL)
established the first specification of the network database model. This
was followed by a second publication in 1971, which became the basis
for most implementations. Subsequent work continued into the early
1980s, culminating in an ISO specification, but this had little influence
on products.
See also
• CODASYL
• Navigational database
• Semantic Web
Relational model
The relational model for database management is a database model
based on first-order predicate logic, first formulated and proposed in
1969 by E.F. Codd [1][2][3]
Example of a Relational model.[4]
Overview
Its core idea is to describe a database as a collection of predicates
over a finite set of predicate variables, describing constraints on the
possible values and combinations of values. The content of the
database at any given time is a finite (logical) model of the database,
i.e. a set of relations, one per predicate variable, such that all
predicates are satisfied. A request for information from the database
(a database query) is also a predicate.
Other models are the hierarchical model and network model. Some
systems using these older architectures are still in use today in data
centers with high data volume needs or where existing systems are so
complex and abstract it would be cost prohibitive to migrate to
systems employing the relational model; also of note are newer
object-oriented databases.
A recent development is the Object-Relation type-Object model, which
is based on the assumption that any fact can be expressed in the form
of one or more binary relationships. The model is used in Object Role
Modeling (ORM), RDF/Notation 3 (N3) and in Gellish English.
The relational model was the first formal database model. After it was
defined, informal models were made to describe hierarchical databases
(the hierarchical model) and network databases (the network model).
Hierarchical and network databases existed before relational
databases, but were only described as models after the relational
model was defined, in order to establish a basis for comparison.
Implementation
History
The relational model was invented by E.F. (Ted) Codd as a general
model of data, and subsequently maintained and developed by Chris
Date and Hugh Darwen among others. In The Third Manifesto (first
published in 1995) Date and Darwen show how the relational model
can accommodate certain desired object-oriented features.
Controversies
The basic relational building block is the domain or data type, usually
abbreviated nowadays to type. A tuple is an unordered set of
attribute values. An attribute is an ordered pair of attribute name
and type name. An attribute value is a specific valid value for the type
of the attribute. This can be either a scalar value or a more complex
type.
Interpretation
For a formal exposition of these ideas, see the section Set Theory
Formulation, below.
Application to databases
The following deviations from the relational model have been noted in
SQL. Note that few database servers implement the entire SQL
standard and in particular do not allow some of these deviations.
Whereas NULL is ubiquitous, for example, allowing duplicate column
names within a table or anonymous columns is uncommon.
Duplicate rows
The same row can appear more than once in an SQL table. The
same tuple cannot appear more than once in a relation.
Anonymous columns
A column in an SQL table can be unnamed and thus unable to be
referenced in expressions. The relational model requires every
attribute to be named and referenceable.
Duplicate column names
Two or more columns of the same SQL table can have the same
name and therefore cannot be referenced, on account of the
obvious ambiguity. The relational model requires every attribute
to be referenceable.
Column order significance
The order of columns in an SQL table is defined and significant,
one consequence being that SQL's implementations of Cartesian
product and union are both noncommutative. The relational
model requires there to be no significance to any ordering of the
attributes of a relation.
Views without CHECK OPTION
Updates to a view defined without CHECK OPTION can be
accepted but the resulting update to the database does not
necessarily have the expressed effect on its target. For example,
an invocation of INSERT can be accepted but the inserted rows
might not all appear in the view, or an invocation of UPDATE can
result in rows disappearing from the view. The relational model
requires updates to a view to have the same effect as if the view
were a base relvar.
Columnless tables unrecognized
SQL requires every table to have at least one column, but there
are two relations of degree zero (of cardinality one and zero) and
they are needed to represent extensions of predicates that
contain no free variables.
NULL
This special mark can appear instead of a value wherever a value
can appear in SQL, in particular in place of a column value in
some row. The deviation from the relational model arises from
the fact that the implementation of this ad hoc concept in SQL
involves the use of three-valued logic, under which the
comparison of NULL with itself does not yield true but instead
yields the third truth value, unknown; similarly the comparison
NULL with something other than itself does not yield false but
instead yields unknown. It is because of this behaviour in
comparisons that NULL is described as a mark rather than a
value. The relational model depends on the law of excluded
middle under which anything that is not true is false and
anything that is not false is true; it also requires every tuple in a
relation body to have a value for every attribute of that relation.
This particular deviation is disputed by some if only because E.F.
Codd himself eventually advocated the use of special marks and
a 4-valued logic, but this was based on his observation that
there are two distinct reasons why one might want to use a
special mark in place of a value, which led opponents of the use
of such logics to discover more distinct reasons and at least as
many as 19 have been noted, which would require a 21-valued
logic. SQL itself uses NULL for several purposes other than to
represent "value unknown". For example, the sum of the empty
set is NULL, meaning zero, the average of the empty set is NULL,
meaning undefined, and NULL appearing in the result of a LEFT
JOIN can mean "no value because there is no matching row in
the right-hand operand".
Concepts
SQL uses concepts "table", "column", "row" instead of "relvar",
"attribute", "tuple". These are not merely differences in
terminology. For example, a "table" may contain duplicate rows,
whereas the same tuple cannot appear more than once in a
relation.
Relational operations
Users (or programs) request data from a relational database by
sending it a query that is written in a special language, usually a
dialect of SQL. Although SQL was originally intended for end-users, it
is much more common for SQL queries to be embedded into software
that provides an easier user interface. Many web sites, such as
Wikipedia, perform SQL queries when generating pages.
Often, data from multiple tables are combined into one, by doing a
join. Conceptually, this is done by taking all possible combinations of
rows (the Cartesian product), and then filtering out everything except
the answer. In practice, relational database management systems
rewrite ("optimize") queries to perform faster, using a variety of
techniques.
Examples
Database
Customer relation
Customer ID Tax ID Name Address [More fields....]
====================================================
==============================================
1234567890 555-5512222 Munmun 323 Broadway ...
2223344556 555-5523232 SS4 Vegeta 1200 Main Street ...
3334445563 555-5533323 Ekta 871 1st Street ...
4232342432 555-5325523 E. F. Codd 123 It Way ...
Foreign keys are integrity constraints enforcing that the value of the
attribute set is drawn from a candidate key in another relation. For
example in the Order relation the attribute Customer ID is a foreign
key. A join is the operation that draws on information from several
relations at once. By joining relvars from the example above we could
query the database for all of the Customers, Orders, and Invoices. If
we only wanted the tuples for a specific customer, we would specify
this using a restriction condition.
Set-theoretic formulation
Basic notions in the relational model are relation names and attribute
names. We will represent these as strings such as "Person" and
"name" and we will usually use the variables and a,b,c to
range over them. Another basic notion is the set of atomic values that
contains values such as numbers and strings.
Our first definition concerns the notion of tuple, which formalizes the
notion of row or record in a table:
Tuple
A tuple is a partial function from attribute names to atomic
values.
Header
A header is a finite set of attribute names.
Projection
The projection of a tuple t on a finite set of attributes A is
.
Relation
A relation is a tuple (H,B) with H, the header, and B, the body, a
set of tuples that all have the domain H.
Relation universe
A relation universe U over a header H is a non-empty set of
relations with header H.
Relation schema
A relation schema (H,C) consists of a header H and a predicate
C(R) that is defined for all relations R with header H. A relation
satisfies a relation schema (H,C) if it has header H and satisfies
C.
Superkey
A superkey is written as a finite set of attribute names.
A superkey K holds in a relation (H,B) if:
• and
• there exist no two distinct tuples such that t1[K]
= t2[K].
• and
• tuples ,
A functional dependency holds in a relation universe U if
it holds in all relations in U.
Trivial functional dependency
A functional dependency is trivial under a header H if it holds in
all relation universes over H.
Theorem: An FD is trivial under a header H if and only if
.
Closure
Armstrong's axioms: The closure of a set of FDs S under a
header H, written as S + , is the smallest superset of S such that:
• (reflexivity)
•
(transitivity) and
•
(augmentation)
• S+=T+
• there exists no such that S + = U +
• is a singleton set and
• .
See also
• Domain relational calculus • Relation
• Life cycle of a relational • Relational database
database • Relational database
• List of relational database management system
management systems • The Third Manifesto (TTM)
• Query language • TransRelational model
o Database query language
• Tuple-versioning
o Information retrieval
query language
Query language
Query languages are computer languages used to make queries into
databases and information systems.
Hierarchical model
Hierarchical model redirects here. For the statistics usage, see
hierarchical linear modeling.
History
Prior to the development of the first database management system
(DBMS), access to data was provided by application programs that
accessed flat files. Data integrity problems and the inability of such file
processing systems to reprsent logical data relationships lead to the
first data model: the hierarchical data model. This model, which was
implemented primarily by IBM's Information Management System
(IMS) only allows one-to-one or one-to-many relationships between
entities. Any entity at the many end of the relationship can be related
only to one entity at the one end.[1]
Example
An example of a hierarchical data model would be if an organization
had records of employees in a table (entity type) called "Employees".
In the table there would be attributes/columns such as First Name,
Last Name, Job Name and Wage. The company also has data about the
employee’s children in a separate table called "Children" with
attributes such as First Name, Last Name, and date of birth. The
Employee table represents a parent segment and the Children table
represents a Child segment. These two segments form a hierarchy
where an employee may have many children, but each child may only
have one parent.
In this, the "child" is the same type as the "parent". The hierarchy
stating EmpNo 10 is boss of 20, and 30 and 40 each report to 20 is
represented by the "ReportsTo" column. In Relational database terms,
the ReportsTo column is a foreign key referencing the EmpNo column.
If the "child" data type were different, it would be in a different table,
but there would still be a foreign key referencing the EmpNo column of
the employees table.
Overview
Where the hierarchical model structures data as a tree of records, with
each record having one parent record and many children, the network
model allows each record to have multiple parent and child records,
forming a lattice structure.
• TurboIMAGE
• IDMS(Integrated Database Management System)
• RDM Embedded
• RDM Server
History
In 1969, the Conference on Data Systems Languages (CODASYL)
established the first specification of the network database model. This
was followed by a second publication in 1971, which became the basis
for most implementations. Subsequent work continued into the early
1980s, culminating in an ISO specification, but this had little influence
on products.
Entity-relationship model
In software engineering, an Entity-Relationship Model (ERM) is an
abstract and conceptual representation of data. Entity-relationship
modeling is a database modeling method, used to produce a type of
conceptual schema or semantic data model of a system, often a
relational database, and its requirements in a top-down fashion.
Contents
[show]
Overview
The first stage of information system design uses these models during
the requirements analysis to describe information needs or the type of
information that is to be stored in a database. The data modeling
technique can be used to describe any ontology (i.e. an overview and
classifications of used terms and their relationships) for a certain
universe of discourse (i.e. area of interest). In the case of the design
of an information system that is based on a database, the conceptual
data model is, at a later stage (usually called logical design), mapped
to a logical data model, such as the relational model; this in turn is
mapped to a physical model during physical design. Note that
sometimes, both of these phases are referred to as "physical design".
Connection
Primary key
Lines are drawn between entity sets and the relationship sets they are
involved in. If all entities in an entity set must participate in the
relationship set, a thick or double line is drawn. This is called a
participation constraint. If each entity of the entity set can participate
in at most one relationship in the relationship set, an arrow is drawn
from the entity set to the relationship set. This is called a key
constraint. To indicate that each entity in the entity set is involved in
exactly one relationship, a thick arrow is drawn.
• IDEF1X[4]
• The Bachman notation of Charles Bachman
• The Martin notation of James Martin
• The (min, max)-notation of Jean-Raymond Abrial in 1974, and
• The UML standard
• The EXPRESS
Crow's Foot
For a while Chen's notation was more popular in the United States,
while Crow's Foot notation was used primarily in the UK, being used in
the 1980s by the then-influential consultancy practice CACI. Many of
the consultants at CACI (including Barker) subsequently moved to
Oracle UK, where they developed the early versions of Oracle's CASE
tools; this had the effect of introducing the notation to a wider
audience, and it is now used in many tools including System Architect,
Visio, PowerDesigner, Toad Data Modeler, DeZign for Databases,
OmniGraffle, MySQL Workbench and Dia. Crow's foot notation has the
following benefits:
ER diagramming tools
There are many ER diagramming tools. Some of the proprietary ER
diagramming tools are Avolution, dbForge Studio for MySQL, DeZign
for Databases, ConceptDraw, ER/Studio, ERwin, MEGA International,
OmniGraffle, Oracle Designer, PowerDesigner, Rational Rose,
SmartDraw, Sparx Enterprise Architect, SQLyog, Toad Data Modeler,
Microsoft Visio, and Visual Paradigm. A freeware ER tool that can
generate database and application layer code (webservices) is the
RISE Editor.
See also
• Associative entity
• Data model
• Data structure diagram
• Enhanced Entity-Relationship Model
• Object Role Modeling
• Three schema approach
• Unified Modeling Language
• Value range structure diagrams
Object-relational database
An object-relational database (ORD) or object-relational database
management system (ORDBMS) is a database management system
(DBMS) similar to a relational database, but with an object-oriented
database model: objects, classes and inheritance are directly
supported in database schemas and in the query language. In
addition, it supports extension of the data model with custom data-
types and methods.
Example of a Object-Oriented Database Model.[1]
Contents
[show]
[edit] Overview
One aim for the Object-relational database is to bridge the gap
between conceptual data modeling techniques such as Entity-
relationship diagram (ERD) and object-relational mapping (ORM),
which often use classes and inheritance, and relational databases,
which do not directly support them.
Many SQL ORDBMSs on the market today are extensible with user-
defined types (UDT) and custom-written functions (e.g. stored
procedures). Some (e.g. Microsoft SQL Server) allow such functions to
be written in object-oriented programming languages, but this by itself
doesn't make them object-oriented databases; in an object-oriented
database, object orientation is a feature of the data model.
History
Object-relational database management systems grew out of research
that occurred in the early 1990s. That research extended existing
relational database concepts by adding object concepts. The
researchers aimed to retain a declarative query-language based on
predicate calculus as a central component of the architecture. Probably
the most notable research project, Postgres (UC Berkeley), spawned
two products tracing their lineage to that research: Illustra and
PostgreSQL.
Comparison to RDBMS
An RDBMS might commonly involve SQL statements such as these:
SELECT Formal(Id)
FROM Customers
WHERE Birthday(Id) = Today()
Object model
From Wikipedia, the free encyclopedia
See also
• Object-Oriented Programming
• Object-oriented analysis and design
• Object Management Group
• Domain-driven design
Conceptual schema
From Wikipedia, the free encyclopedia
Contents
[show]
Overview
Because a conceptual schema represents the semantics of an
organization, and not a database design, it may exist on various levels
of abstraction. The original ANSI four-schema architecture began with
the set of external schemas that each represent one person's view of
the world around him or her. These are consolidated into a single
conceptual schema that is the superset of all of those external views. A
data model can be as concrete as each person's perspective, but this
tends to make it inflexible. If that person's world changes, the model
must change. Conceptual data models take a more abstract
perspective, identifying the fundamental things, of which the things an
individual deals with are just examples.
The model does allow for what is called inheritance in object oriented
terms. The set of instances of an entity class may be subdivided into
entity classes in their own right. Thus, each instance of a sub-type
entity class is also an instance of the entity class's super-type. Each
instance of the super-type entity class, then is also an instance of one
of the sub-type entity classes.
Super-type/sub-type relationships may be exclusive or not. A
methodology may require that each instance of a super-type may only
be an instance of one sub-type. Similarly, a super-type/sub-type
relationship may be exhaustive or not. It is exhaustive if the
methodology requires that each instance of a super-type must be an
instance of a sub-type.
Example relationships
• Each PERSON may be the vendor in one or more ORDERS.
• Each ORDER must be from one and only one PERSON.
• PERSON is a sub-type of PARTY. (Meaning that every instance of
PERSON is also an instance of PARTY.)
• Each Employee may have the supervisor within Employee.
See also
• Concept mapping
• Data modeling
• Entity-relationship model
• Object-relationship modelling
• Object role modeling
• Knowledge representation
• Logical data model
• Mindmap
• Ontology
• Physical data model
• Semantic Web
• Three schema approach
Contents
[show]
Overview
The logical data structure of a database management system (DBMS),
whether hierarchical, network, or relational, cannot totally satisfy the
requirements for a conceptual definition of data because it is limited in
scope and biased toward the implementation strategy employed by the
DBMS. Therefore, the need to define data from a conceptual view has
led to the development of semantic data modeling techniques. That is,
techniques to define the meaning of data within the context of its
interrelationships with other data. As illustrated in the figure. The real
world, in terms of resources, ideas, events, etc., are symbolically
defined within physical data stores. A semantic data model is an
abstraction which defines how the stored symbols relate to the real
world. Thus, the model must be a true representation of the real
world.[1]
History
The need for semantic data models was first recognized by the U.S. Air
Force in the mid-1970s as a result of the Integrated Computer-Aided
Manufacturing (ICAM) Program. The objective of this program was to
increase manufacturing productivity through the systematic application
of computer technology. The ICAM Program identified a need for better
analysis and communication techniques for people involved in
improving manufacturing productivity. As a result, the ICAM Program
developed a series of techniques known as the IDEF (ICAM Definition)
Methods which included the following:[1]
Applications
A semantic data model can be used to serve many purposes. Some
key objectives include:[1]
See also
• Conceptual schema
• Entity-relationship model
• Information model
• Relational Model/Tasmania
• Three schema approach
• QuakeSim
Contents
Computer science
Software development
Part of this section is from the Perl Design Patterns Book.
• Separating the low level work from the higher level objects leads
to a modular design.
• Modular design means development can be self contained.
• Having "skeleton" code illustrates clearly how low level modules
integrate.
• Fewer operations errors (to reduce errors, because each module
has to be processed separately, so programmers get large
amount of time for processing).
• Much less time consuming (each programmer is only involved in
a part of the big project).
• Very optimized way of processing (each programmer has to
apply their own knowledge and experience to their parts
(modules), so the project will become an optimized one).
• Easy to maintain (if an error occurs in the output, it is easy to
identify the errors generated from which module of the entire
program).
Disadvantages of top-down programming
Bottom-up approach
Parsing
Nanotechnology
Main article: Nanotechnology
Contrast this situation with one in which you are looking for a flower.
You have a representation of what you are looking for. When you see
the object you are looking for, it is salient. This is an example of the
use of top-down information.
A "bottom up" approach is one that works from the grassroots — from
a large number of people working together, causing a decision to arise
from their joint involvement. A decision by a number of activists,
students, or victims of some incident to take action is a "bottom-up"
decision.
State organization
Architectural
Often, the École des Beaux-Arts school of design is said to have
primarily promoted top-down design because it taught that an
architectural design should begin with a parti, a basic plan drawing of
the overall project.
Ecological
In ecology, top down control refers to when a top predator controls the
structure/population dynamics of the ecosystem. The classic example
is of kelp forest ecosystems. In such ecosystems, sea otters are a
keystone predator. They prey on urchins which in turn eat kelp. When
otters are removed, urchin populations grow and reduce the kelp
forest creating urchin barrens. In other words, such ecosystems are
not controlled by productivity of the kelp but rather a top predator.
Bottom up control in ecosystems refers to ecosystems in which the
nutrient supply and productivity and type of primary producers (plants
and phytoplankton) control the ecosystem structure. An example
would be how plankton populations are controlled by the availability of
nutrients. Plankton populations tend to be higher and more complex in
areas where upwelling brings nutrients to the surface.
Entity
From Wikipedia, the free encyclopedia
The word entitative is the adjective form of the noun entity. Something
that is entitative is "considered as pure entity; abstracted from all
circumstances", that is, regarded as entity alone, apart from attendant
circumstances.
Specialized uses
• A DBMS entity is either a thing in the modeled world or a
drawing element in an ERD.
• A SUMO, Entity is the root node and stands for the universal
class of individuals.
• In VHDL, entity is the keyword for defining a new object.
• An SGML entity is an abbreviation for some expanded piece of
SGML text.
• An open systems architecture entity is an active routine within a
layer.
• In computer games and game engines, entity is a dynamic
object such as a non-player character or item.
• In HTML, entity is a code snippet (ie: "®" for "Registered
Trademark") which is interpreted by web browsers to display
special characters. See List of XML and HTML character entity
references.
• In law, a legal entity is an entity that is capable of bearing legal
rights and obligations, such as a natural person or an artificial
person (e.g. business entity or a corporate entity).