Within
data modelling
Data modeling in software engineering is the process of creating a data model for an information system by applying certain formal techniques.
Overview
Data modeling is a process used to define and analyze data requirements needed to suppo ...
, cardinality is the numerical relationship between rows of one table and rows in another. Common cardinalities include ''one-to-one'', ''one-to-many'', and ''many-to-many''. Cardinality can be used to define data models as well as analyze entities within datasets.
Relationships
For example, consider a database of
electronic health records
An electronic health record (EHR) is the systematized collection of patient and population electronically stored health information in a digital format. These records can be shared across different health care settings. Records are shared throu ...
. Such a database could contain tables like the following:
* A
doctor
table with information about physicians.
* A
patient
table for medical subjects undergoing treatment.
* An
encounter
table with an entry for each hospital visit.
Natural relationships exist between these entities, such as an encounter involving many doctors. There is a many-to-many relationship between records in
doctor
and records in
patient
because doctors have many patients and patients can see many doctors. There is a one-to-many relationship between records in
patient
and records in
encounter
because patients can have many encounters and each encounter involves only one patient.
A "one-to-one" relationship is mostly used to split a table in two in order to provide information concisely and make it more understandable. In the hospital example, such a relationship could be used to keep apart doctors' own unique professional information from administrative details.
Modeling
In
data modeling, collections of data elements are grouped into "data tables" which contain groups of data field names called "database attributes". Tables are linked by "key fields". A "primary key" assigns a field to its "special order table". For example, the "Doctor Last Name" field might be assigned as a primary key of the Doctor table with all people having same last name organized alphabetically according to the first three letters of their first name. A table can also have a foreign key which indicates that field is linked to the primary key of another table.
Types of Models
A complex data model can involve hundreds of related tables. Computer scientist
Edgar F. Codd
Edgar Frank "Ted" Codd (19 August 1923 – 18 April 2003) was an English computer scientist who, while working for IBM, invented the relational model for database management, the theoretical basis for relational databases and relational databa ...
created a systematic method to decompose and organize
relational databases
A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
.
Codd's steps for organizing database tables and their keys is called
database normalization
Database normalization or database normalisation (see spelling differences) is the process of structuring a relational database in accordance with a series of so-called normal forms in order to reduce data redundancy and improve data integrity ...
, which avoids certain hidden database design errors (delete anomalies or update anomalies). In real life the process of database normalization ends up breaking tables into a larger number of smaller tables.
![ERD-artist-performs-song](https://upload.wikimedia.org/wikipedia/commons/9/91/ERD-artist-performs-song.svg)
In the real world, data modeling is critical because as the data grows voluminous, tables linked by keys must be used to speed up programmed retrieval of data. If a data model is poorly crafted, even a computer applications system with just a million records will give the end-users unacceptable response time delays. For this reason, data modeling is a keystone in the skills needed by a modern software developer.
Database modeling techniques
The
entity–relationship model
An entity–relationship model (or ER model) describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the things of interest) and specifies relationships that can ex ...
proposes a technique that produces entity–relationship diagrams (ERDs), which can be employed to capture information about data model entity types, relationships and cardinality. A
Crow's foot shows a one-to-many relationship. Alternatively a single line represents a one-to-one relationship.
Application program modeling approaches
In the object-oriented application programming paradigm, which is related to database structure design,
UML
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
class diagrams may be used for
object
Object may refer to:
General meanings
* Object (philosophy), a thing, being, or concept
** Object (abstract), an object which does not exist at any particular time or place
** Physical object, an identifiable collection of matter
* Goal, an ...
modeling. In that case, object relationships are modeled using UML associations, and multiplicity is used on those associations to denote cardinality. Here are some examples:
See also
*
Arity
*
Entity-relationship model
*
Unified modeling language
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
References
External links
UML multiplicity as data model cardinality- http://www.agiledata.org
Cardinality in Data Modeling- Adam Alalouf, Temple University
Cardinalityon Techopedia
Cardinalityon Geeksforgeeks
Database Cardinalityon SQL World
{{DEFAULTSORT:Cardinality (Data Modeling)
Data modeling
Relational model
de:Kardinalität (Datenbanken)
pt:Cardinalidade (modelagem de dados)