La cardinalidad de una unión entre dos tablas es la relación numérica entre las filas de una tabla y las filas de la otra. Las cardinalidades comunes incluyen uno a uno , uno a muchos y muchos a muchos .
Por ejemplo, considere una base de datos de registros médicos electrónicos . Dicha base de datos podría contener tablas como las siguientes:
- Una
doctor
tabla con información sobre médicos. - Una
patient
mesa para sujetos médicos en tratamiento. - Una
encounter
tabla con una entrada para cada visita al hospital.
Existen relaciones naturales entre estas entidades, como un encuentro que involucra a muchos médicos. Existe una relación de muchos a muchos entre los registros en doctor
y los registros en patient
porque los médicos tienen muchos pacientes y los pacientes pueden ver a muchos médicos. Existe una relación de uno a muchos entre los registros en patient
y los registros en encounter
porque los pacientes pueden tener muchos encuentros y cada encuentro involucra solo a un paciente.
Una relación "uno a uno" se utiliza principalmente para dividir una tabla en dos con el fin de proporcionar información de forma concisa y hacerla más comprensible. En el ejemplo del hospital, esta relación podría utilizarse para mantener separada la información profesional exclusiva de los médicos de los detalles administrativos.
En el modelado de datos , las colecciones de elementos de datos se agrupan en "tablas de datos" que contienen grupos de nombres de campos de datos llamados "atributos de base de datos". Las tablas están vinculadas por "campos clave". Una "clave primaria" asigna un campo a su "tabla de orden especial". Por ejemplo, el campo "Apellido del doctor" podría asignarse como clave principal de la tabla Doctor con todas las personas que tengan el mismo apellido organizadas alfabéticamente según las tres primeras letras de su nombre. Una tabla también puede tener una clave externa que indica que el campo está vinculado a la clave principal de otra tabla.
Un modelo de datos complejo puede involucrar cientos de tablas relacionadas. El científico informático Edgar F. Codd creó un método sistemático para descomponer y organizar bases de datos relacionales . Los pasos de Codd para organizar las tablas de la base de datos y sus claves se denominan normalización de la base de datos , que evita ciertos errores ocultos en el diseño de la base de datos ( eliminar anomalías o actualizar anomalías ). En la vida real, el proceso de normalización de la base de datos termina dividiendo las tablas en una mayor cantidad de tablas más pequeñas.
En el mundo real, el modelado de datos es fundamental porque a medida que los datos se vuelven voluminosos, se deben utilizar tablas vinculadas por claves para acelerar la recuperación programada de datos. Si un modelo de datos está mal diseñado, incluso un sistema de aplicaciones informáticas con solo un millón de registros dará a los usuarios finales retrasos en el tiempo de respuesta inaceptables. Por esta razón, el modelado de datos es una piedra angular de las habilidades que necesita un desarrollador de software moderno.
Técnicas de modelado de bases de datos
El modelo entidad-relación propone una técnica que produce diagramas entidad-relación (ERD), que se pueden emplear para capturar información sobre los tipos de entidad, las relaciones y la cardinalidad del modelo de datos. Una pata de gallo muestra un uno-a-muchos relación. Alternativamente, una sola línea representa una relación uno a uno.
Enfoques de modelado de programas de aplicación
En el paradigma de programación de aplicaciones orientadas a objetos, que está relacionado con el diseño de la estructura de la base de datos, los diagramas de clases UML pueden usarse para el modelado de objetos . En ese caso, las relaciones de objeto se modelan utilizando asociaciones UML y la multiplicidad se utiliza en esas asociaciones para denotar cardinalidad . Aquí hay unos ejemplos:
Relación | Ejemplo | Izquierda | Derecha | Narrativa |
---|---|---|---|---|
Doce y cincuenta y nueve de la noche | persona ← → acta de nacimiento | 1 | 1 | Una persona debe tener su propio certificado de nacimiento. |
Uno a uno (opcional en un lado) | persona ← → carnet de conducir | 1 | 0..1 o ? | Una persona puede tener una licencia de conducir. |
Muchos a uno | persona ← → lugar de nacimiento | 1 .. * o + | 1 | Muchas personas pueden nacer en el mismo lugar. |
Muchos a muchos (opcional en ambos lados) | persona ← → libro | 0 .. * o * | 0 .. * o * | Una persona puede tener libros |
Uno a muchos | orden ← → artículo de línea | 1 | 1 .. * o + | Un pedido contiene al menos un artículo |
Muchos a muchos | curso ← → estudiante | 1 .. * o + | 1 .. * o + | Los estudiantes siguen varios cursos |