Una base de datos jerárquica es una que tiene una estructura en forma de árbol en la que cada nodo tiene solamente un elemento principal. En MobileTogether, las relaciones entre las tablas se usan para generar la estructura en forma de árbol de las fuentes de página. Una relación entre dos tablas de BD se define (i) en la BD (con claves foráneas) o (ii) en el archivo del diseño (en la definición de la estructura de fuente de página de la BD). Las relaciones se pueden usar de forma flexible para definir la estructura de la fuente de página. Por ejemplo, un registro de autor puede tener registros secundarios de libros. También un registro de libro puede tener registros secundarios de autor. La relación jerárquica es útil para representar registros en el diseño. Por ejemplo, un registro de autor se puede crear como control de tabla en el diseño y los registros de libro del autor (de otra tabla de BD) se pueden crear como las filas de ese control de tabla. (Observe la distinción entre los dos tipos de tabla: Tabla de BD y Control de tabla.) Además, al guardar datos de vuelta en la BD, esos datos se guardan en las tablas de BD correspondientes y en las filas correctas de esas tablas de BD conforme a las relaciones entre las tablas de BD.
En la BD del tutorial tenemos dos tablas, Authors y Books, que tienen las columnas siguientes:
Authors |
Books |
Author_ID (PK) |
Book_ID (PK) |
AuthorName |
Title |
Website |
AuthorID (FK) = Authors.Author_ID |
Country |
ISBN |
Info |
Publisher |
NumPages |
|
Year |
|
Genre |
|
BookCover |
|
Price |
La tabla Books está relacionada con la tabla Authors mediante la columna Books.AuthorID, que es la clave foránea de Books. Cada libro está vinculado a un autor mediante el número entero que sea el Authors.Author_ID correspondiente en la tabla Authors.
Cuando añadimos una fuente de página de BD podemos seleccionar la tabla Authors como tabla principal y después indicar la tabla Books como tabla relacionada (secundaria). Esto crea una jerarquía automáticamente debido a las relaciones de clave foránea de la BD. Cada autor tiene cero o más libros secundarios, que son los libros de la BD que tengan una clave foránea que sea igual al Author_ID del autor. La estructura jerárquica se representaría como se ve en esta imagen de la fuente de página $BookCatalog.
En la estructura anterior puede ver que cada nodo Author tiene varios nodos secundarios Book, porque un autor puede tener varios libros relacionados (gracias a la clave foránea del libro). El nodo Book de la fuente de página representa todos los libros que pueden pertenecer al nodo Author principal. El nodo Author representa a todos los autores de la BD. De esta forma, la estructura en forma de árbol describe la relación jerárquica entre los nodos Author y sus respectivos secundarios Book.
Recuerde también que la clave foránea de la tabla Books se oculta automáticamente en la fuente de página. Esto se debe a que la clave foránea es el vínculo entre las tablas y no se debe modificar.