0% encontró este documento útil (0 votos)
16 vistas17 páginas

Modelo Relacional en Bases de Datos SIG

Leción cuarta de PostgresSQL_PostGIS

Cargado por

maria
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas17 páginas

Modelo Relacional en Bases de Datos SIG

Leción cuarta de PostgresSQL_PostGIS

Cargado por

maria
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Curso de Especialización UNIGIS 7ª Edición, 2010

Bases de datos espaciales: estructuras y modelos

Lección 4: El Modelo Relacional

Creación: Marc Compte


Revisión: Toni Hernández

SIGTE, 1999 – 2010

© UNIGIS – Universitat de Girona


Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

4. El Modelo Relacional lógica ya existentes (ahora no vamos hablar de los


cálculos clásicos). Los SGBD ‘relacionales’ de hoy en día
(SGBDR o RDBMS – Relational DataBase Management
La mayoría de los SIG actuales almacenan los datos System) son intentos de implementar la visión teórica de
alfanuméricos en un SGBD relacional. Algún que otro Codd en un software del mundo real.
software SIG también utiliza bases de datos relacionales
para almacenar los datos cartográficos. En esta sección se Raras veces una idea puede tener un efecto tan inmediato
comentan las cuestiones relacionadas con el Modelo de y profundo sobre la industria. Desde mediados de los
Datos RELACIONAL. Los temas discutidos son: setenta hasta principios de los noventa, la historia del
desarrollo de bases de datos consistía, básicamente, en
• los orígenes del Modelo Relacional desarrolladores de software que producían SGBDR
operacionales basándose en, al menos, algunos elementos
• el elemento ESTRUCTURAL del Modelo Relacional teórico. Para grandes ordenadores
(mainframes), IBM introdujo, a principios de los ochenta,
• el elemento de MANIPULACION SQL/DS y DB2. Ahora, hay otros SGBDR para mainframe
que incluyen Oracle, Sybase, Ingres, Informix, Empress,
• el elemento INTEGRIDAD Unify y muchos otros. La popularidad del método
relacional es tal que prácticamente todos los sistemas de
• reglas de Codd bases de datos afirman ser ‘relacionales’. Algunos
sistemas ampliamente utilizados que, en cierta medida,
• ventajas e inconvenientes del modelo relacional siguen los principios relacionales son PostgreSQL, MS SQL
Server, Paradox, Oracle, FoxPro, Access y MySQL.

4.1 Al principio estaba Codd Como muchos de los SIG actuales fueron inicialmente
desarrollados durante los ochenta, cuando el Modelo
Los modelos de base de datos Jerárquico y en Red Relacional estaba a la orden del día, no es sorprendente
evolucionaron a partir de las primeras técnicas de que la mayoría de ellos asuman el método relacional en lo
tratamiento de archivos, por lo que no tenían una base referente a base de datos. Varios SIG utilizan una base de
teórica racional. El Modelo Relacional, sin embargo, existió datos relacional convencional para almacenar los datos
como una manifestación teórica previa a la aparición de alfanuméricos. El software ARC/INFO GIS de ESRI, por
cualquier software de base de datos relacional. En 1970 ejemplo, utilizó el paquete INFO, uno de los primeros
Edgar F. Codd, entonces científico de IBM, publicó un SGBDR, para almacenar datos alfanuméricos.
artículo en el que describió el modelo de base de datos Posteriormente, ESRI ha enlazado su software ARC con
Relacional, para ilustrar cómo pensaba él que debían SGBDR más modernos, como Oracle, para el tratamiento
diseñarse las bases de datos, partiendo de la teoría y

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -1 Página -2 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

de los datos alfanuméricos. IDRISI para Windows utiliza b) Un elemento de manipulación que describe un
una versión limitada de la base de datos MS Access para número de operadores que permiten a los usuarios
el tratamiento de los atributos (datos alfanuméricos). Los procesar los datos guardados en formato relacional
software Atlas GIS, MapInfo y ArcView también utilizan un
modelo relacional restringido para almacenar los atributos c) Un elemento de integridad que propone reglas
basado en archivos dBase estructurados. El sistema para asegurarnos que los datos se gestionan con
Geo/SQL utiliza, de forma similar, un SGBD relacional. validez y consistencia

Algunos SIG utilizan bases de datos relacionales no sólo


para organizar los datos alfanuméricos sino también para a) El elemento estructural
almacenar los datos geográficos. Por ejemplo,
VISION*GIS utilizó el SGBDR Oracle para gestionar los ‘Una base de datos vista por los usuarios
datos alfanuméricos y geográficos, como lo hizo ESRI con como una colección de tablas (y nada más
su Spatial Database Engine. Cuando se trata de acceder a que tablas)’
bases de datos externas, los SIG acostumbran a asumir (Date, 1990, p. 112)
que éstas son relacionales.
Superficialmente, el elemento estructural del Modelo
Como especialista SIG, tú necesitas comprender el Modelo Relacional no podría ser más sencillo, ya que todos los
Relacional y apreciar sus puntos fuertes y débiles. Esta datos parecen estar almacenados en tablas
sección ofrece una introducción a la teoría. Las cuestiones bidimensionales (ver Figura 4.1). Así, para los usuarios, el
de implementación asociadas con la utilización de un Modelo Relacional es un modelo conceptual muy familiar,
software relacional se considerarán en lecciones permitiéndoles creer que los datos se guardan dentro del
posteriores. ordenador de una forma muy parecida a las tablas en
papel con las que estamos tan familiarizados. Con los
SGBD Jerárquicos y en Red el usuario debe tener
4.2 Los tres elementos del Modelo de conocimientos sobre marcadores, puntos de entrada y
registros, mientras que un Modelo Relacional puede
Datos Relacional presentarse, a nivel básico, como nada más que unas
tablas en formato digital.
El Modelo Relacional de Codd tiene tres elementos:
Sin embargo, en la realidad las cosas no son tan simples,
a) Un elemento estructural que describe la forma en
ya que las tablas contenidas en un SGBDR deben cumplir
que pueden guardarse los datos
unos requisitos específicos para que el software funcione
correctamente. Aunque el modelo conceptual de un

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -3 Página -4 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

usuario puede, simplemente, consistir en tablas de ejemplo, tendría un dominio de números enteros
almacenamiento de datos, el diseñador de bases de datos positivos que irían sólo de 1 a 31. Si intentamos
debe ser consciente de las restricciones que puso Codd introducir los números 32 o –1 en la columna Día
sobre el formato de las tablas relacionales y tiene que causaríamos un error. Una columna llamada ‘Capital
diseñar una estructura de datos que se adapte a estas de Ciudad’ sólo puede tener entradas pertenecientes
restricciones. al conjunto de capitales de ciudad. En el modelo de
Codd sólo se pueden hacer comparaciones entre
Una tabla relacional debe tener, especialmente, las columnas que utilizan datos del mismo dominio. No
siguientes características: tiene sentido en el mundo real preguntarse, por
ejemplo, si el Día es igual a la Distancia, aunque los
• Todas las columnas deben tener nombres dos pueden ser representados como números
distintos: Los nombres de las columnas se utilizan enteros. El concepto de dominio es un intento de
como referencia para acceder a los valores que hay incorporar este tipo de conocimiento del mundo real
en ellas. Si usamos el mismo nombre para dos en el Modelo Relacional. El concepto de dominio, por
columnas distintas nuestro sistema no sabrá cuál de lo tanto, intenta evitar la entrada de datos ilegales y
ellas debe utilizar, por eso los SGBD no permiten de prevenir comparaciones ilógicas.
generar dos columnas con el mismo nombre en la
misma tabla. Aunque el concepto de dominio es una construcción
teórica valiosa, es uno de los elementos de Codd que,
• Todas las entradas de una columna deben ser a menudo, no se implementa en un software
del mismo tipo: La mayoría de las personas que comercial.
utilizan el ordenador estarán familiarizadas con la
idea de que las variables pueden ser declaradas • Todas las entradas en una tabla relacional
como Reales (es decir, un número con una parte deben ser ‘atómicas’: A veces, en las tablas en
decimal), Enteras (un número sin decimales) o como papel permitimos que una celda contenga más de un
Cadenas de caracteres (es decir, cualquier símbolo valor. Por ejemplo, en un formulario donde se
alfanumérico) y sabemos que si intentamos poner un consulta la nacionalidad deberíamos permitir que
real, digamos 4.34, en una variable que ha sido alguien con doble nacionalidad comprima los dos
declarada como entera el ordenador se quejará. El nombres en un único cuadro del formulario en papel.
Modelo Relacional toma esta idea y define que cada En los sistemas relacionales esto está prohibido. En
columna de una tabla sólo puede tener valores del las tablas relacionales cada celda debe tener una
mismo dominio (se llama dominio al conjunto de única entrada. Llamamos ‘atómicas’ a las entradas
todos los valores posibles que el elemento puede porque para el propósito de la base de datos no
adoptar). Una columna que se llame Día, por tienen estructura interna, es decir, no pueden

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -5 Página -6 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

descomponerse (átomo: del griego άτομον, NumEmpleado que es único para cada empleado,
indivisible). entonces tendremos dos campos que actúan como
clave (NumNacionalIdent y NumEmpleado).
• El orden de las columnas y filas no tiene
importancia: En las tablas en papel a menudo Cuando hay más de una clave, cada una de ellas se
utilizamos el mismo orden en que entramos los datos llamará clave candidata. El modelo relacional exige,
para tratar la información. Podríamos, por ejemplo, entonces, que se escoja una de las claves candidatas
entrar los datos ordenándolos por año o almacenar para acceder a las filas de la tabla. La clave candidata
detalles personales ordenándolos por apellido. En una seleccionada pasará a llamarse clave primaria o
tabla relacional esto no está permitido. Se tiene que principal, pasando la otra a denominarse clave
asumir que los datos entrados en las columnas y filas secundaria o alternativa.
están ordenados al azar.
Cuando un conjunto de datos no tiene, de forma
• Cada fila de la tabla debe ser diferente de las natural, ninguna clave candidata (no hay ninguna
demás: En una tabla relacional no puede haber filas columna en la que los datos sean únicos para cada
duplicadas. En otras palabras, debe haber una fila) es una práctica común (y esencial) añadir una
columna (o combinación de columnas) que columna adicional, como NumEmpleado, que actuará
identifique de forma única cada fila de datos, y aquí como identificador único para cada fila de la tabla.
es donde nos encontramos por primera vez el
concepto de ‘clave’. La clave es una columna (o Recuerda que una clave puede ser una
combinación de columnas) con un valor único en COMBINACION de columnas. Por ejemplo, si hay un
cada fila. En ningún momento puede haber dos filas edificio que tiene las habitaciones enumeradas por
con el mismo valor. Por lo tanto, puede utilizarse planta y por secuencia dentro de la planta (por
para identificar de forma individual a cada fila. Si una ejemplo; 1/31 representa la habitación 31 de la
tabla llamada ‘DetallesEmpleados’, por ejemplo, primera planta) entonces, en una tabla relacional
contiene una columna llamada ‘NumNacionalIdent’, llamada Habitaciones que tiene las columnas Planta y
entonces ésta sería una buena clave porque cada NumHabitación, la clave primaria sería la
persona tiene un número de identidad nacional combinación Planta + NumHabitación.
personal y único.
En las bases de datos de un SIG, la localización a
Es posible utilizar más de una columna (o menudo actúa como clave primaria, partiendo del
combinación de columnas) para almacenar los argumento (o requisito) que dos entidades del mismo
valores que son únicos para cada fila. Si la tabla tipo nunca pueden ocupar el mismo espacio. Al
DetallesEmpleados anterior también contiene un proceso de añadir un identificador espacial único a los

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -7 Página -8 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

datos alfanuméricos (atributos) se le llama programa interpretaría ese ‘en blanco’ como un valor
geocodificación o referenciación espacial. Este 0, lo que no sería correcto pues 0 no es ningún
proceso ofrece un gran número de temas número de teléfono. En el Modelo Relacional, la
interesantes. Por ejemplo, en una base de datos de entrada apropiada sería Nulo para indicar que ese
propiedades, podríamos identificar cada una de las valor es ‘desconocido’. El valor Nulo no significa lo
propiedades mediante la referencia UTM del mismo que el valor 0 o que dejar la celda en blanco.
centroide1 de esta propiedad (Fíjate que si las
coordenadas X e Y fueron almacenadas en columnas Desde el principio nos hemos referido a las estructuras del
separadas, la clave primaria sería la combinación Modelo Relacional con el nombre de tablas, pero debido a
coord. X + coord. Y). su base matemática el modelo tiene una terminología
formal distinta. En este curso preferimos usar los
Como alternativa, las administraciones municipales a comúnmente utilizados términos de tabla; fila, columna,
veces asignan a las propiedades individuales unos etc., pero deberías ser consciente de la existencia de la
códigos numéricos. Recientemente, también se terminología alternativa. A una tabla como la anterior se la
adopta el sistema de código postal como clave (con llama relación, a las filas tupla y a las columnas atributo.
un número de propiedad y su código postal El número de filas de una tabla es su cardinalidad y el
identificamos la mayoría de las propiedades). Cada número de columnas su grado.
uno de estos métodos tiene ventajas e
inconvenientes. La geocodificación, es decir, utilizar La Figura 4.1 compara las terminologías utilizadas
el espacio para identificar de forma única una comúnmente en a) tablas en papel b) sistema
entidad, es el caso especial de los SIG para convencional de ficheros digitales, y c) tablas relacionales.
establecer claves primarias dentro de la base de
datos. PAPEL ARCHIVO RELACIONAL
Tabla Archivo Relación
• Valores nulos: El modelo relacional utiliza el Fila Registro Tupla
concepto de valor nulo para indicar que hay un valor Columna Campo Atributo
actual todavía desconocido o que no hay una entrada Nº Columnas Nº de campos Grado
apropiada para esa celda. Supongamos que una tabla Nº Filas Nº de Cardinalidad
tiene una columna llamada NumTelefono, y nos registros Clave primaria
encontramos con una vivienda sin teléfono. En Identificador Dominio
algunos software, si dejamos la celda en blanco el único
Valores
posibles
1
Centro geométrico o centro de gravedad de un polígono. En el contexto de los SIG es, además, es un punto que
representa un polígono y al que se asocian atributos (en inglés, Centroid).

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -9 Página -10 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

• Cabecera y cuerpo

Dos términos avanzados que encontrarás en los libros de


texto sobre bases de datos relacionales son ‘cabecera’ y
‘cuerpo’. La intención de una tabla relacional es
equivalente al encabezado de columna de una tabla
normal y expresa el significado de la tabla. Las cabeceras
normalmente se escriben con el nombre de la tabla
seguido de los atributos de la tabla entre paréntesis, con
la clave primaria subrayada. De esta manera, la intención
de la primera tabla de la Figura 4.2 sería:

PROPIEDAD (NumId, Nombre, Direccion, Valor,


NumArea )

En este curso también identificaremos claves externas


escribiéndolas en cursiva. Así, NumArea es una clave
externa dentro de la tabla PROPIEDAD. El concepto de
clave externa se explicará con mayor detalle
posteriormente. Por ahora basta saber que los valores en
dicha columna hacen referencia a los valores que
aparecerán en la clave primaria de otra tabla. De este
modo podremos relacionar unas tablas con otras.

Tabla: PROPIEDAD

Clave primaria
Clave externa
NumId Nombre Direccion
Valor NumArea

1 Jorge C/ Chamartín
30000 1
Fig. 4.1: Equivalencia entre terminologías 2 Marcos C/ Fuentes
60000 Nulo
3 Irene Parque la Paz
28000 2

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -11 Página -12 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

4 Javier Av. F. Lorca definidas (ver Figura 4.3). Para el usuario una vista tiene
55000 1 el mismo aspecto que una tabla real y puede ser
5 Marta Plaza de Mayo
25000 2 consultada utilizando los mismos comandos, pero las
vistas no tienen la misma realidad física que las tablas
base.

Tabla: AREA El propósito de las vistas consiste en permitir que los


Clave Primaria datos sean presentados a los diferentes usuarios en el
NumArea Cod.Postal formato que interesa a cada uno de ellos.
Nombre
1 17003
Centro Ciudad VIST VIST
2 17007 A A
Barrio San José

VIST VISTA
Fig. 4.2: Base de Datos de Propiedad
A AB
Las cabeceras ofrecen una manera conveniente de
describir una base de datos ya que la definición de una
tabla puede ser resumida en una declaración de una sola
línea. El cuerpo son los datos en sí mismos, o sea las filas
de valores sin estructura.
TABLA TABLA BASE TABLA
BASE B BASE
• Tablas Base y Tablas Vista
Fig. 4.3: Vistas
En el Modelo Relacional las tablas pueden ser de dos tipos,
tablas base y tablas vista. Una tabla base es ‘real’ en el A efectos prácticos podemos diferenciar claramente las
sentido que dentro de la base de datos habrá una tablas base de las tablas vista porque en las primeras los
estructura física, normalmente un archivo, que contendrá datos están físicamente almacenados en dicha tabla,
los datos referidos en la tabla. mientras que en las tablas vista los datos provienen
siempre de otras tablas.
Una tabla vista es una ‘tabla virtual’ formada por una
combinación de filas y columnas seleccionadas a partir de
una o más tablas base y/o a partir de vistas previamente

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -13 Página -14 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

• Claves externas: Enlazar unas tablas con otras - Lee el valor del campo (atributo, columna) NumArea
de esta fila
Hasta ahora nuestra descripción del modelo relacional se
ha centrado en las propiedades de una única tabla - Busca este valor en el campo NumArea de la tabla
relacional, pero evidentemente en la mayoría de las bases Area
de datos habrá más de una tabla y será necesario tener
un método para enlazar estas tablas. - Lee el valor del campo Nombre presente en esa
misma fila
De nuevo, el modelo relacional dispone de un método
sencillo e intuitivo para enlazar unas tablas con otras. Las El método para relacionar las tablas de datos mediante
tablas están conectadas entre ellas mediante atributos atributos compartidos da una gran flexibilidad al modelo
compartidos. La clave primaria de una tabla puede estar relacional. Una vez el diseñador de la base de datos ha
incluida como atributo en otra tabla y sirve de enlace establecido las tablas que habrá en la base de datos,
entre las dos. La columna de una tabla que se incluyendo las claves externas necesarias para enlazar las
corresponde con la clave primaria en otra tabla se llama tablas, el usuario puede llevar a cabo consultas sobre las
clave externa. tablas con gran facilidad. En el modelo Jerárquico y en
Red el diseñador debe intentar anticiparse a los diferentes
En la base de datos de propiedad mostrada en la Figura tipos de consultas que los usuarios van a hacer más a
4.2, por ejemplo, es muy probable que los usuarios, en un menudo y establecer un sistema de marcadores para
momento u otro, deseen formular la pregunta ‘¿En qué facilitar estas consultas. En el modelo relacional,
área está localizada la propiedad X?’, por lo que tiene que asumiendo que la base de datos ha sido diseñada
haber una manera de relacionar los datos almacenados en correctamente, el usuario debería ser capaz de realizar
la tabla Propiedad con los datos en la tabla Area. Este cualquier consulta sin tener un conocimiento detallado de
enlace se consigue mediante la inclusión de la clave las estructuras de la base de datos.
primaria de la tabla Area (NumArea) como atributo en la
tabla Propiedad. En otras palabras, NumArea es una clave Las reglas que ayudan al diseñador a saber dónde poner
externa en la tabla Propiedad. las claves externas son un aspecto principal del diseño de
bases de datos y se discuten con profundidad en la
Entonces, para responder a la pregunta, la secuencia de siguiente lección.
interrogación podría ser la siguiente:

- Encuentra la fila, en la tabla Propiedad, en la que


NumId= X

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -15 Página -16 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

b) El elemento de manipulación (álgebra relacional) expresarse como cálculo relacional, pero de nuevo os
remitimos a los libros de texto para obtener más detalles).
El elemento de manipulación de un modelo de base de
datos es el conjunto de comandos mediante el cual El álgebra relacional es un elemento sorprendentemente
podemos operar sobre los datos almacenados en el sencillo (una vez hemos entendido su sentido básico),
formato especificado por este elemento. Un aspecto pero su simplicidad puede oscurecerse debido a los
distintivo del modelo relacional es que los comandos de términos matemáticos que pueden utilizarse para
manipulación operan sobre toda la tabla en lugar de describirla. Un buen modelo mental que podemos utilizar
hacerlo registro a registro. La entrada de cada comando consiste en simular que tenemos un número de tablas en
es una o más tablas y la salida siempre es una nueva papel convencionales a partir de las cuales queremos
tabla (El funcionamiento del elemento de manipulación en crear nuevas tablas. Para hacer esto manualmente
la teoría de bases de datos relacionales se basa en las necesitaríamos llevar a cabo un conjunto de operaciones
operaciones utilizadas en la Teoría de Conjuntos. Cada de ‘cortar, pegar y copiar’ hasta haber creado las nuevas
tabla puede ser contemplada como un conjunto y las tablas que queríamos. El álgebra relacional puede ser vista
operaciones crean nuevos conjuntos como combinaciones como un servicio que nos ofrece el equivalente electrónico
de los conjuntos existentes). de unas tijeras, pegamento y fotocopiadora para trabajar
sobre las tablas electrónicas contenidas en el SGBDR.
En el Modelo Relacional de Codd el elemento de
manipulación consiste en un conjunto de operadores Hay tres operadores relacionales fundamentales:
conocido como álgebra relacional. Los usuarios de un
software de BD relacional, sin embargo, no utilizan esta • Select
álgebra directamente. El álgebra relacional existe para
declarar, matemáticamente, lo que es posible en el Select (Selección) crea un subconjunto con todas las filas
modelo relacional: ofrece un criterio con el que juzgar los de una tabla que cumplen con un criterio determinado.
lenguajes SGBDR implementados, como el SQL Fíjate que algunos autores utilizan el término Restricción
(Structured Query Language). (Restrict) en lugar de Selección.

Como nuestro interés se centra, básicamente, en obtener Supón, por ejemplo, que para el caso de las tablas de la
un uso práctico de las bases de datos relacionales, la Figura 4.2 nosotros deseamos encontrar todas las
descripción del álgebra relacional que se ofrece aquí está propiedades que tienen un valor superior o igual a 50.000.
reducida deliberadamente (Si deseáis profundizar en este Para hacer esto manualmente deberíamos recortar cada
tema encontraréis un tratamiento más extenso en los uno de los registros de la base de datos que encaja con lo
libros convencionales sobre bases de datos. Además del que buscamos y luego pegar todas las filas recortadas en
álgebra relacional, el elemento de manipulación puede una nueva tabla llamada Propiedad_Cara.

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -17 Página -18 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

Select es el equivalente, en álgebra relacional, a esta Esto produciría la siguiente tabla:


operación de ‘cortar y pegar’ y la sintaxis que utilizaríamos
para producir la tabla Propiedad_Cara sería algo parecido DIRECCION
a: Ocupante Dirección
Jorge C/ Chamartín
Marcos C/ Fuentes
Irene Parque la Paz
SELECT FROM Propiedad WHERE Valor >= 50000 -> Javier Av. F. Lorca
Propiedad_Cara Marta Plaza de Mayo

• Join
Este código produciría la siguiente tabla:
Join es el operador crucial que permite que los datos
PROPIEDAD_CARA almacenados en tablas separadas se ‘peguen’ juntos
NumId Nombre Direccion Valor Num Area temporalmente en una columna compartida.
2 Marcos C/ Fuente 60000 nulo
4 Javier Av. F. 55000 1 Supón que deseamos crear una nueva tabla para combinar
Lorca los campos almacenados en Propiedad y Area. Para hacer
esto utilizando el álgebra relacional simplemente
utilizaríamos algo así como:
• Project
JOIN Propiedad AND Area ON NumArea ->
Project (Proyección) crea un subconjunto de columnas de Prop_Area
una tabla.
lo que produciría la siguiente tabla:
Supón que deseamos crear una tabla que contenga sólo
las direcciones y ocupantes de las propiedades. PROP_AREA
Manualmente, cortaríamos en vertical la tabla Propiedad NumI Direcci NomPro Valo NumAr Codig NomAre
d ón r ea o a
para aislar las dos columnas que queremos y luego las Posta
pegaríamos en una nueva tabla llamada Dirección. Project l
es el equivalente relacional de este método y la sintaxis 1 Jorge C/ 3000 1 17003 Centro
necesaria para llevar a cabo este proceso sería la Chamartín 0 Ciudad
siguiente: 3 Irene C/Fuentes 2800 2 17007 Barrio
0 San
José
PROJECT Ocupante,Dirección FROM Propiedad -> 4 Javier Parque la 5500 1 17003 Centro
Dirección Paz 0 Ciudad

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -19 Página -20 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

5 Marta Av. F. 2500 2 17007 Barrio Para poderlas unir, ambas tablas deben tener
Lorca 0 San exactamente las mismas columnas definidas.
José

Fíjate que Propiedad tiene cinco filas mientras que


• Difference
Prop_Area solo tiene cuatro, las cuatro filas de la tabla
Propiedad cuyo valor en el campo NumArea aparece como
Difference (Diferencia): resta dos tablas. Supón que la
clave primaria en la tabla Area. Así, las filas que tienen un
tabla Propiedad incluye todas las propiedades de una
valor NumArea igual a ‘nulo’ en la tabla Propiedad no se
ciudad y que tenemos otra tabla llamada
visualizan en la tabla resultante de nuestra consulta Join.
Propiedad_Pública con los mismos atributos. Podríamos
También debes apreciar que el campo NumArea está en
crear una tabla nueva llamada Propiedad_Privada
ambas tablas pero sólo aparece una vez en la tabla
mediante:
Prop_Area.
DIFFERENCE Propiedad AND Propiedad_Publica ->
El operador join que hemos comentado aquí debería ser Propiedad_Privada
llamado, estrictamente hablando, join natural. Hay otros
tipos de join (Equi-, theta-, outer- y semi-), que combinan La tabla Propiedad_Privada contendría todos los registros
las tablas de diferentes maneras pero que no de Propiedad que no están en Propiedad_Publica.
comentaremos aquí.

Además de Select, Project y Join, el álgebra relacional • Intersection


incluye otros operadores:
Intersection (Intersección): crea, a partir de dos
• Union tablas, una nueva tabla con los registros comunes. En
otras palabras, la tabla creada con este operador
Union (Unión) añade dos tablas en una sola. Si, por contendría todos los registros que están presentes en
ejemplo, tenemos una tabla llamada Nueva_Propiedad que ambas tablas.
almacena información sobre las propiedades de nueva
construcción en el mismo formato que la tabla Propiedad,
la operación siguiente añadiría las filas nuevas de
Nueva_Propiedad en la tabla Propiedad. c) El elemento integridad

UNION Propiedad AND Nueva_Propiedad -> La integridad de una base de datos se refiere a la
Propiedad
exactitud y grado de corrección de los datos que están

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -21 Página -22 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

almacenados en ella. En el modelo relacional de Codd se Las dos reglas de integridad que acabamos de comentar
proponen dos tipos de integridad: son muy básicas y para cualquier proyecto real el
diseñador de la base de datos probablemente querrá
- integridad de entidades implementar otras muchas, para proteger la base de datos
- integridad referencial de los posibles errores de los usuarios. Muchos paquetes
SGBDR actuales han desarrollado sofisticados servicios de
mantenimiento de la integridad. Con los paquetes MS SQL
• Integridad de Entidades Server y MS Access, por ejemplo, es posible establecer
‘reglas’ para comprobar la validez de los datos. Con
Ésta hace referencia a la clave primaria de la tabla y SGBDR menos sofisticados, sin embargo, incluso la regla
simplemente consiste en que cada fila en la tabla de integridad referencial básica puede no estar disponible.
relacional tendrá una entrada válida (es decir, no nula) y Con estos paquetes, sería necesario crear aplicaciones
única para los atributos de la clave primaria. Si no se para mejorar la comprobación de los datos.
impusiera esta regla podría suceder que las filas de una Evidentemente, una de las razones por la que los usuarios
tabla existieran, pero no fueran accesibles. La mayoría de deben interaccionar con la base de datos a través de las
los sistemas relacionales incorporan este elemento de aplicaciones, en lugar de hacerlo directamente con el uso
integridad. del lenguaje DML (Lenguaje de Manipulación de Datos), es
que las aplicaciones pueden actuar como memoria
intermedia que protege la integridad de la base de datos
• Integridad Referencial de los posibles errores de los usuarios.

Esta regla requiere que los valores de una clave externa


existan como clave primaria en otra tabla. Si esta regla no 4.3 Los doce mandamientos de Codd
existiera sería posible encontrar una fila con una clave
externa que apunta a una fila de otra tabla que no existe. El Modelo Relacional se puso tan de moda durante los
años setenta y ochenta que las empresas de software
Supón, por ejemplo, que borramos la fila correspondiente empezaron a utilizar el término ‘relacional’ bastante a la
al área Barrio San José de la tabla Area. Si no existiera la ligera para promover sus bases de datos, lo que nos lleva
regla de integridad referencial nos encontraríamos con el a una controversia sobre qué software podría llamarse
problema que en la tabla Propiedad las filas 3 y 5 realmente ‘relacional’.
apuntarían a un área inexistente. Estas filas ahora serían
‘huérfanas’ ya que no hay registros padre al que se Como contribución a este debate Codd publicó, en 1985,
puedan referir. una lista de doce reglas que, según su criterio, debe
obedecer cualquier sistema de bases de datos relacional

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -23 Página -24 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

completo. A continuación se listan estas reglas para sinó también para consultar las tablas catálogo que
apreciar la esencia de este modelo. Son: contienen las definiciones de las tablas.

1. La regla información: A nivel lógico, los usuarios 5. Actualización de vistas: Esta regla declara
deben ver los datos de una sola manera – como formalmente que si una vista de usuario es
valores en tablas-. Éste es el requerimiento teóricamente actualizable, entonces el software BD
fundamental del método relacional. debe ser capaz de hacerlo. En la práctica esto
significa que cualquier usuario debería ser capaz de
2. La regla de acceso garantizada: Un usuario alterar un valor en la vista y que dicha alteración se
tiene que ser capaz de extraer cualquier valor de una llevaría a cabo también en la tabla base con la que
base de datos sabiendo, simplemente, el nombre de creamos la vista, excepto en circunstancias en las
la tabla, el valor de la clave primaria y el nombre de que sería ilógico que esto ocurriera (En la práctica,
la columna. algunos SGBDR contradicen esta regla restringiendo
las actualizaciones sólo a las vistas que fueron
3. Tratamiento sistemático de valores nulos: Los creadas a partir de una única tabla).
valores Nulos (distintos de ‘0’ o ‘en blanco’) deben
estar disponibles para indicar ‘valor no conocido’ o 6. Lenguaje de datos global: El manejo de la BD
‘valor no aplicable’. (definiciones de datos, definiciones de vistas,
manipulaciones de datos, restricciones de integridad
4. Catálogo on-line dinámico basado en el y seguridad) debe poder realizarse con un único
modelo relacional: En la descripción de la lenguaje. Como ya hemos visto, SQL se adapta a
arquitectura de la base de datos de la lección 3 este requerimiento. En la BD puede haber otros
subrayamos la importancia de los diccionarios de lenguajes que no sean globales, pero al menos debe
datos para el mantenimiento de la integridad de las haber uno que sí lo sea.
bases de datos. En el modelo relacional, Codd utiliza
el término ‘Catálogo’ en lugar de ‘Diccionario de 7. Los SGBDR pueden tratar registros
datos’. Esta regla dicta que el catálogo de la base de individuales, pero básicamente deben tratar
datos relacional debe estar almacenado en el mismo conjuntos de registros: Con un único comando
formato que el resto de la base de datos (o sea, en debe ser posible insertar, consultar y borrar
tablas) y debe ser accesible para todos los usuarios conjuntos de registros. El SQL ofrece este servicio.
(sin tener que especificar permisos). Esto significa Este método es distinto al método ‘registro a registro’
que debería ser posible utilizar expresiones SQL no de otros modelos de BD.
sólo para interrogar la BD que contiene los datos,

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -25 Página -26 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

8. Independencia física de datos: El usuario no desconozca el lugar dónde están físicamente


debería verse afectado por cualquier posible cambio almacenados los datos con los que trabaja.
realizado sobre la estructura física de la BD. Es decir,
debería ser posible que los datos fueran transferidos 12. La regla de no subversión: La mayoría de los
físicamente de, por ejemplo, un disco duro a un SGBDR ofrecen un lenguaje de bajo nivel además del
dispositivo óptico sin que el usuario tenga que alterar SQL. El software dBase IV, por ejemplo, ofrece un
sus comandos o aplicaciones. De forma similar, si lenguaje de programación de tercera generación
borramos un índice de la BD, el SGBD aún debe ser similar al COBOL. MS Access, en cambio, ofrece el
capaz de llevar a cabo los comandos que antes lenguaje VBA. Esta regla define que este lenguaje de
utilizaron ese índice mediante métodos alternativos bajo nivel no debería ser capaz de romper ninguna
(aunque no tiene que ser, necesariamente, un de las reglas previas. Por ejemplo, no debería ser
proceso rápido). posible mediante el lenguaje de bajo nivel generar un
valor ‘Nulo’ en una columna declarada como variable
9. Independencia de integridad: Las restricciones primaria o entrar un valor de clave externa que haga
de integridad deben ser tratadas como parte del referencia a un valor de clave primaria inexistente en
diccionario de datos en lugar de estar contenidas en la tabla.
un código dentro de la aplicación. Es decir, debería
ser posible utilizar el Lenguaje de Definición de Datos Las doce reglas de Codd describen un modelo relacional
para indicar que las claves primarias deben ser ‘ideal’ que, en la práctica, no puede ser implementado por
únicas y diferentes de ‘Nulo’ y que las claves un SGBDR comercial. Además, desde la publicación de sus
externas hacen referencia a una clave primaria de doce reglas, Codd ha añadido nuevas reglas hasta llegar a
otra tabla. más de trescientas (Codd, 1990).

10. Independencia lógica de datos: A veces, ¡Nosotros y nosotras lo dejaremos en estas doce!
puede ser necesario alterar la estructura lógica de la
BD, quizá para añadir una nueva columna a una tabla
base o para dividir una tabla base existente en dos.
Esta regla define que el usuario que está utilizando
una vista no debe ser consciente de las alteraciones
de la estructura lógica de la BD.

11. Independencia de distribución: Esta regla


hace referencia a la utilización de SGBDR con
ordenadores en red y requiere que el usuario

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -27 Página -28 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

4.4 Ventajas e inconvenientes del por la mayoría de los vendedores de SIG, puede ser que
este dominio sea transitorio ya que otros nuevos modelos,
Modelo Relacional como el Orientado a Objetos, se están convirtiendo en
alternativas interesantes.
Ventajas
Objetos complejos: El punto fuerte del Modelo
Las ventajas del Modelo Relacional han sido comentadas
Relacional también es, en algunas circunstancias, su punto
ampliamente, aquí sólo las nombraremos brevemente:
débil, ya que resulta difícil representar en tablas algunas
de las relaciones complejas que existen en el mundo real.
• Modelo Lógico Simple (tablas y sólo tablas)
Por ejemplo, en un SIG podríamos desear definir un
• Independencia de Datos Considerable
objeto ‘Propiedad’ que se compone de los objetos
• Lenguaje de Declaración de Alto Nivel (no hay
llamados ‘edificio’, ‘terreno’ y ‘valla’. Modelar estas
necesidad de grandes conocimientos en
complejas entidades anidadas en un modelo relacional es
programación)
complicado.
• Gran Productividad
Falta de conocimiento semántico: El ‘conocimiento
semántico’ es un conocimiento sobre lo que SIGNIFICAN
Inconvenientes
los datos, es decir, cómo se interpretan los datos y cuáles
son los procesos legítimos en los que podemos usar los
Aunque el modelo relacional actualmente domina el
datos. En bases de datos hidrológicas, por ejemplo,
mercado, no lo hace sin inconvenientes. Como los
podríamos desear imponer el conocimiento del mundo real
modelos Jerárquico y en Red, los nuevos desarrollos en el
que nos dice que el agua fluye hacia abajo, pero esto no
modelo relacional han sido conducidos generalmente por
es posible con el modelo relacional puro. Por supuesto, en
la necesidad de solventar los requerimientos de
bases de datos relacionales el conocimiento semántico es
procesamiento de la información en el mundo de los
muy limitado, pues sólo se incluye en las reglas de
negocios. Los intentos de aplicar el Modelo Relacional a las
integridad referencial, de entidad y dominio (y en muchos
nuevas áreas de aplicación, como el Diseño Asistido por
SGBDR el concepto de dominio no está completamente
ordenador (CAD), el procesamiento de gráficos y la
soportado). Los programadores de aplicaciones tienen que
simulación, han detectado imperfecciones y sugieren que
compensar esta falta con la construcción de ese
puede ser preferible utilizar un modelo de datos más
conocimiento en aplicaciones independientes.
sofisticado. Los SIG, ciertamente, caen dentro de este
grupo de áreas de aplicaciónes complejas, digitalmente
Tipos de datos limitados: Relacionado con las dos
intensivas y orientadas a los gráficos donde los críticos
limitaciones anteriores nos encontramos con que los
están empezando a dudar de la adecuación del Modelo
SGBDR son incapaces de reconocer nada que no sea
Relacional. Aunque el Modelo Relacional ha sido adoptado

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -29 Página -30 © 1999 Universitat de Girona – SIGTE. Actualización 2010
Bases de datos espaciales: estructuras y 4. El modelo relacional
modelos

simples tipos de datos atómicos, como números enteros, - hay partes del modelo que no siempre aparecen
cadenas de caracteres, etc. Para dar un ejemplo trivial, en los software SGBDR.
estaría bien ser capaz de declarar un dato de tipo
‘Votante’ que reconociera que sólo las personas de una • El modelo relacional tiene tres elementos:
determinada edad pueden votar, o declarar un dato de
tipo ‘Día de la semana’ que sólo aceptará los valores de - estructural: ‘tablas y sólo tablas’
‘Lunes’ a ‘Domingo’. - de manipulación: álgebra y cálculo relacional
- e integridad: de entidad, referencial y de
Dificultades con el tiempo: Con las bases de datos dominio.
relacionales resulta difícil modelar satisfactoriamente los
aspectos temporales de los datos. El tiempo tiene una • Reglas de Codd:
secuencia natural, los acontecimientos ocurren ‘antes’ o
‘después’ de otro evento, pero modelar estas secuencias - lista definitiva de las características de los
en una BD relacional resulta muy difícil. SGBDR.

Falta de eficiencia: Estrictamente hablando, esto es • Ventajas e inconvenientes del Modelo Relacional:
debido a la implementación del software, más que al
modelo teórico en sí mismo, pero es conveniente - Ventajas: Fácil de usar, basado en la teoría.
explicarlo aquí. Las BD relacionales han sido criticadas por - Inconvenientes: Problemas con objetos
su falta de velocidad comparadas con otros SGBD, y para complejos, tiempo y velocidad.
aplicaciones con muchos requerimientos informáticos,
como un SIG, esto puede suponer un problema.

Los temas que envuelven la conveniencia del Modelo


Relacional específicamente como base para un software
SIG se comentan en las lecciones 9 y 10 de este curso.

4.5 ¿Qué has aprendido en esta lección?


• Las BD relacionales se derivan de un Modelo
Relacional teórico:

- Edgar Codd estableció la teoría

© 1999 Universitat de Girona – SIGTE. Actualización 2010 Página -31 Página -32 © 1999 Universitat de Girona – SIGTE. Actualización 2010

También podría gustarte