La cardinalidad de un join 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. Tal base de datos podría contener tablas como las siguientes:
- Una tabla
doctor
con información sobre los médicos. - Una tabla
patient
para los sujetos médicos en tratamiento. - Una tabla
encounter
con una entrada para cada visita al hospital.
Existen relaciones naturales entre estas entidades, como un encuentro en el que participan muchos médicos. Existe una relación de muchos a muchos entre los registros de doctor
y los registros de 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 de patient
y los registros de encounter
porque los pacientes pueden tener muchos encuentros y cada encuentro implica a un solo 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, una relación de este tipo podría utilizarse para mantener separada la información profesional propia y única 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 denominados “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 médico” puede asignarse como clave primaria de la tabla Médicos 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 ese campo está vinculado a la clave primaria de otra tabla.
Un modelo de datos complejo puede incluir cientos de tablas relacionadas. El informático Edgar F. Codd creó un método sistemático para descomponer y organizar las 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 de diseño de la base de datos (anomalías de borrado o anomalías de actualización). En la vida real, el proceso de normalización de la base de datos acaba dividiendo las tablas en un mayor número de tablas más pequeñas.
En el mundo real, el modelado de datos es crítico porque a medida que los datos crecen en volumen, se deben utilizar tablas vinculadas por claves para acelerar la recuperación programada de los datos. Si un modelo de datos está mal elaborado, incluso un sistema de aplicaciones informáticas con sólo un millón de registros dará a los usuarios finales retrasos inaceptables en el tiempo de respuesta. Por esta razón, el modelado de datos es una piedra angular en las habilidades que necesita un desarrollador de software moderno.