• No results found

4. Materials & Methods

6.5 Applicability of spatial data

La definición anterior de relación implica ciertas características que la hace diferente de un fichero o una tabla. Vamos a ver a continuación algunas de esas características.

Ordenación de tuplas en una relación. Una relación está definida como un conjunto de tuplas.

Matemáticamente, los elementos de un conjunto no guardan un orden entre ellos; por tanto, las tuplas en una relación tampoco la tienen. En otras palabras, una relación no es sensible al ordenamiento de las tuplas. Sin embargo, en un fichero, los registros están almacenados físicamente en el disco (o en memoria), por lo que siempre hay establecido un orden entre ellos. De forma análoga, cuando mostramos una relación como una tabla, las filas aparecen con un cierto orden.

Nombre Dni TlfParticular Dirección TlfTrabajo Edad Mnc Benjamín Bayer 305-61-2435 921234567 Cercado, 3 NULL 19 3,21 Ana Ortiz 381-62-1245 923456987 El Prado, 29 NULL 18 2,89 Belén Durán 422-11-2320 NULL La Suerte, 6 915698743 25 3,53 Marcelo Gómez 489-22-1100 922789632 Pase del río, 98 914563210 28 3,93 Bárbara Campos 533-69-1238 911000550 El Suspiro Verde, 56 NULL 19 3,25 Nombre de la relación

ESTUDIANTE

Atributos

Capítulo 5 El modelo de datos relacional y las restricciones de una base de datos relacional

126

Tuplas

Figura 5.2. La relación ESTUDIANTE de la Figura 5.1 con un orden de tuplas distinto. ESTUDIANTE

Figura 5.3. Dos tuplas idénticas cuando el orden de los atributos y los valores no forma parte de la definición

de relación.

t = <(Nombre, Belén Durán),(Dni, 422-11-2320),(TlfParticular, NULL),(Dirección, La Suerte, 6),(TlfTrabajo,

915698743),(Edad, 25),(Mnc, 3,53)>

t = <(Dirección, La Suerte, 6),(Nombre, Belén Durán),(Dni, 422-11-2320),(Edad, 25),(TlfTrabajo,

915698743),(Mnc, 3,53),(TlfParticular, NULL)>

La ordenación de las tuplas no forma parte de la definición de una relación porque ésta intenta representar hechos a un nivel lógico o abstracto. En una relación pueden especificarse muchos órdenes. Por ejemplo, las tuplas en la relación ESTUDIANTEde la Figura 5.1 podrían ordenarse lógicamente por Nombre, Dni, Edado cualquier otro atributo. La definición de una relación no especifica ningún orden: no hay una preferencia por un orden con respecto a otro. Por consiguiente, las relaciones de las Figuras 5.1 y 5.2 se consideran idénticas. Cuando se implementa una relación como un fichero, o se muestra como una tabla, es posible especificar un orden en los registros del primero o las filas del segundo.

Ordenación de los valores dentro de una tupla y definición alternativa de una relación. Según

la definición anterior de relación, una n-tupla es una lista ordenada de n valores, por lo que el orden de valo- res dentro de una de ellas (y por consiguiente de los atributos de un esquema de relación) es importante. Sin embargo, a nivel lógico, el orden de los atributos y sus valores no es tan importante mientras se mantenga la correspondencia entre ellos.

Puede darse una definición alternativa de una relación que haría innecesaria la ordenación de los valores de una tupla. En esta definición, un esquema de relación R = {A1, A2, . . . , An} es un conjunto de atributos, y un estado de relación r(R) es un conjunto finito de asignaciones r = {t1, t2, . . . , tm}, en el que cada tupla t es una

asociación desde R hacia D, y D es la unión de los dominios de atributos; esto es, D = dom(A1) 傼 dom(A2) 傼 . . . 傼 dom(An). En esta definición, t[Ai] debe estar en dom(Ai) para 1 ⱕ i ⱕ n para cada asignación t en r. La asignación tirecibe el nombre de tupla.

Según esta definición de tupla como una asignación, una tupla puede considerarse como un conjunto de pare- jas (<atributo>, <valor>), donde cada una de ellas proporciona el valor de la asignación de un atributo Ai a un valor vide dom(Ai). La ordenación de atributos no es importante ya que el nombre del mismo aparece con su valor. Según esta definición, las dos tuplas de la Figura 5.3 son idénticas. Esto tiene sentido a nivel abstracto o lógico, ya que no hay ningún motivo para preferir que una pareja aparezca antes que otra en una tupla. Cuando se implementa una relación como un fichero, los atributos están ordenados físicamente como campos dentro de un registro. Por lo general, usaremos la primera definición de relación, en la que los atributos y los

Nombre Dni TlfParticular Dirección TlfTrabajo Edad Mnc Belén Durán 422-11-2320 NULL La Suerte, 6 915698743 25 3,53 Bárbara Campos 533-69-1238 911000550 El Suspiro Verde, 56 NULL 19 3,25 Marcelo Gómez 489-22-1100 922789632 Pase del río, 98 914563210 28 3,93 Ana Ortiz 381-62-1245 923456987 El Prado, 29 NULL 18 2,89 Benjamín Bayer 305-61-2435 921234567 Cercado, 3 NULL 19 3,21

5.1 Conceptos del modelo relacional 127

valores de dentro de las tuplas están ordenados, porque simplifica mucho la notación. Sin embargo, la defi- nición alternativa ofrecida aquí es mucho más general.5

Valores y NULLs en las tuplas. Cada valor en una tupla es un valor atómico, es decir, no es divisible en

componentes dentro del esqueleto del modelo relacional básico. Por tanto, no están permitidos los atributos compuestos y multivalor (consulte el Capítulo 3). Este modelo suele recibir a veces el nombre de modelo

relacional plano. Una gran parte de la teoría que se esconde tras el modelo relacional fue desarrollada con

este principio en mente, el cual recibe el nombre de principio de primera forma normal.6Así pues, los atri-

butos multivalor deben representarse en relaciones separadas, mientras que los compuestos lo están sólo por sus atributos de componente simple en el modelo relacional básico.7

Un concepto importante es el de los valores NULL(nulo), que se utilizan para representar los valores de atri- butos que pueden ser desconocidos o no ser aplicables a una tupla. Para estos casos, existe un valor especial llamado NULL. Por ejemplo, en la Figura 5.1, algunas tuplas ESTUDIANTE tienen NULLen sus números de teléfono del trabajo porque no cuentan con una oficina donde localizarlos. Otros lo tienen en el teléfono par- ticular, presumiblemente porque no cuenten con un terminal en su casa o no lo conozcan (el valor es desco-

nocido). En general, los valores NULLpueden tener varios significados, como lo de valor desconocido, valor

existente pero no disponible o atributo no aplicable a esta tupla. Un ejemplo de este último caso ocurrirá si

añadimos un atributo EstadoVisadoa la relación ESTUDIANTEque sólo sea aplicable a los estudiantes extran- jeros. Es posible idear diferentes códigos para cada uno de los significados de NULL.

La incorporación de diferentes tipos de valores NULLen las operaciones de un modelo relacional (consulte el Capítulo 6) se ha demostrado que es compleja y está fuera del alcance de nuestra presentación.

Los valores NULLse originaron por las razones comentadas anteriormente (datos indefinidos, desconocidos o no presentes en un determinado momento). El significado exacto de un valor NULLcontrola la forma en que se comporta durante las operaciones de agregación o comparación aritmética con otros valores. Por ejemplo, una comparación de dos valores NULLprovoca ambigüedades: si los clientes A y B tienen direcciones NULL, ¿significa esto que ambos la comparten? Durante el diseño de una base de datos es preferible evitar los valo- res NULLtanto como sea posible. Los trataremos de nuevo en los Capítulos 6 y 8 en el contexto de operacio- nes y consultas, y en el 10 en relación con el diseño.

Interpretación (significado) de una relación. El esquema de relación puede interpretarse como una

declaración o un tipo de aserción. Por ejemplo, el esquema de la relación ESTUDIANTEde la Figura 5.1 afir- ma que, en general, una entidad estudiante tiene un Nombre, un Dni, un TlfParticular, una Dirección, un

TlfTrabajo, una Edady una Mnc. Cada tupla de la relación puede ser interpretada entonces como un hecho o una instancia particular de la aserción. Por ejemplo, la primera tupla de la Figura 5.1 asevera el hecho de que hay un ESTUDIANTEcuyo Nombrees Benjamín Bayer, su Dnies 305612435, su Edades 19, etc.

Observe que algunas relaciones pueden representar hechos sobre entidades, mientras que otras pueden hacer- lo sobre relaciones. Por ejemplo, un esquema de relación ESPECIALIDAD(DniEstudiante, CodDpto) afirma que los estudiantes están especializados en disciplinas académicas. Una tupla en esta relación une un estudian- te con su especialidad. Por tanto, el modelo relacional representa hechos sobre entidades y relaciones unifor- memente como relaciones. Esto puede comprometer a veces la comprensibilidad porque se tiene que adivinar si una relación representa un tipo de entidad o de relación. Los procedimientos de asignación del Capítulo 7 muestran cómo diferentes construcciones de los modelos ER y EER logran convertirse en rela- ciones.

5 Como veremos, la definición alternativa de relación será útil cuando tratemos el procesamiento de sentencias en los Capítulos 15 y 16. 6 Tratamos con más detalle este supuesto en el Capítulo 10.

7 Las extensiones del modelo relacional eliminan estas restricciones. Por ejemplo, los sistemas objeto-relacional permiten atributos com-

plejos estructurados, como hace los modelos relacionales forma normal no-primera o anidados, tal y como veremos en el Capítulo 22.

Capítulo 5 El modelo de datos relacional y las restricciones de una base de datos relacional

128

Una interpretación alternativa de un esquema de relación es como un predicado; en este caso, los valores de cada tupla se representan como valores que satisfacen el predicado. Por ejemplo, el predicado ESTUDIANTE

(Nombre, Dni, . . . ) se cumple para las cinco tuplas de la relación ESTUDIANTEde la Figura 5.1. Estas tuplas representan cinco proposiciones o hechos diferentes del mundo real. Esta interpretación es poco útil en el con- texto de la lógica de los lenguajes de programación, como Prolog, porque permite que el modelo relacional sea usado dentro de esos lenguajes (consulte la Sección 24.4). La suposición del mundo cerrado afirma que los únicos hechos ciertos en el universo son aquéllos presentes dentro de la extensión de la relación o relacio- nes. Cualquier otra combinación de valores hace que el predicado sea falso.

Related documents