saltar al contenido

Modelado de datos avanzado

Modelo relacional

El modelo de datos más comúnmente comprendido y utilizado hoy en día es el modelo relacional donde todos los datos se definen en términos de tablas y columnas. RDM permite definir una base de datos utilizando SQL, el lenguaje de base de datos de relaciones predominante. Las relaciones en un modelo de relaciones puras se definen comparando valores de columna en una tabla con valores comunes en otra. La indexación es un método común para optimizar las comparaciones. RDM admite implementaciones de árbol B +, árbol AVL, árbol R e índice Hash.

Modelo de red

Debajo del modelo relacional en una base de datos RDM hay un modelo de red, donde todos los datos se definen en términos de tipos de registros y campos. Los campos pueden estar indexados y los tipos de registros pueden tener relaciones establecidas entre ellos, que se definen como relaciones de uno a muchos, propietario / miembro.

Establecer relaciones ocupan espacio en los registros, almacenados en los archivos de datos. El registro de propietario contendrá punteros a registros de miembros. Los registros de miembros contendrán punteros al registro de propietario, más los miembros siguientes y anteriores. Esto permite una navegación rápida entre los miembros de un conjunto y es conceptualmente muy similar a una estructura de datos de lista doblemente enlazada.

RDM usa la construcción de conjunto para representar equi-joins relacionales.

 

RDM usa la construcción de conjunto para representar equi-joins relacionales.

 

Ejemplo de modelado

Modelaremos un ejemplo simple para una escuela donde tenemos estudiantes y clases. Los estudiantes tomarán varias clases y las clases serán asistidas por varios estudiantes. Por lo tanto, tenemos una relación de muchos a muchos entre la tabla de estudiantes y la tabla de clases. En el modelo relacional, una relación de muchos a muchos se modela utilizando un registro de intersección.

 

En el modelo relacional, una relación de muchos a muchos se modela utilizando un registro de intersección.

 

Definiremos la base de datos utilizando el lenguaje de definición de datos SQL (DDL) estándar de la industria.

crear estudiantes de base de datos; crear clase de tabla (class_id char (5) clave primaria, class_name char (29)); crear tabla estudiante (nombre char (35) clave primaria); crear tabla intersección (begin_date integer, end_date integer, status char (9), current_grade integer, my_students char (5) hace referencia a la clase, my_classes char (35) hace referencia al estudiante);

 

La base de datos resultante tendrá

  • una tabla de clases con un índice de árbol de clave primaria B + en el campo class_id
  • una tabla de estudiantes con un índice de árbol de clave primaria B + en el campo de nombre
  • una tabla de intersección sin requisitos de índice
  • una relación de modelo de red entre la tabla de clases y la tabla de intersección con la clase como propietario y la intersección como miembro
  • una relación de modelo de red entre la tabla de estudiantes y la tabla de intersección con el estudiante como propietario y la intersección como miembro

Al navegar por la relación entre la clase y la tabla de estudiantes, el optimizador de SQL tendrá la opción de usar los conjuntos de modelos de red o las columnas de clave primaria (que están indexadas).

Pruebe RDM gratis