Vous êtes sur la page 1sur 13

29-08-2010

El modelo relacional
Cursos para compartir lo que sabes

Identif cate o Regstrate

Cursos gratis

Cursos con vdeo

Programas con certificado Busca cursos gratis:


4.568 cursos gratis 6.845.557 alumnos

Ests aqu: mailxmail > Cursos de Informtica > Diseo > Diseo de base de datos relacionales > El modelo relacional

Diseo de base de datos relacionales


Autor: Carlos Alberto Garca Chvez Curso: 9,17/10 (6 opiniones) | 17421 alumnos | Fecha publicacin: 13/04/2005

Enva un mensaje al autor

Captulos del curso

Captulo 4: El modelo relacional

0. Presentacin 1. Introduccin 2. Organizaciones de ficheros y estructuras de 3. Sistemas de bases de datos 4. El modelo relacional 5. Planificacin, diseo y administracin de bases de datos 6. Diseo conceptual de bases de datos. Modelo entidad-relacin 7. Diseo lgico de bases de datos 8. Diseo fsico de bases de datos 9. Bibliografa

En este captulo se presenta el modelo relacional, que es el modelo lgico en el que se basan la mayora de los SGBD comerciales en uso hoy en da. En primer lugar, se trata la descripcin de los principios bsicos del modelo relacional: la estructura de datos relacional y las reglas de integridad. A continuacin, se presenta un tratamiento detallado del lgebra relacional, que es un conjunto de operaciones para manipular la estructura de datos relacional y especificar consultas de datos. El lgebra relacional es un lenguaje procedural, mientras que el clculo relacional, que tambin se estudia en este captulo, es un lenguaje equivalente no procedural.

Descargar el curso en PDF

Introduccin
Enlaces patrocinados

IBM Management
Descubre Service Management, Las Herramientas Para Su Negocio, Aqu!
software.ibm.com

Es una buena justificacin para estudiar la teora que hay tras el modelo relacional, la que da Hernndez (1997): "Muchas disciplinas (y sus metodologas de diseo asociadas) tienen algn tipo de base terica. Los ingenieros industriales disean estructuras utilizando teoras de la fsica. Los compositores crean sinfonas utilizando conceptos de teora de la msica. La industria del automvil utiliza teoras de la aerodinmica para disear automviles con menor consumo. La industria aeronutica utiliza las mismas teoras para disear alas de aviones que reduzcan la resistencia al viento. Estos ejemplos demuestran que la teora es muy importante. La ventaja principal de la teora es que hace que las cosas sean predecibles: nos permite predecir qu ocurrir si realizamos una determinada accin. Por ejemplo, sabemos que si soltamos una piedra, caer al suelo. Si somos rpidos, podemos apartar nuestros pies del camino de la teora de la gravedad de Newton. Lo importante es que siempre funciona. Si ponemos una piedra plana encima de otra piedra plana, podemos predecir que se quedarn tal y como las hemos puesto. Esta teora permite disear pirmides, catedrales y casas de ladrillos. Consideremos ahora el ejemplo de una base de datos relacional. Sabemos que si un par de tablas estn relacionadas, podemos extraer datos de las dos a la vez, simplemente por el modo en que funciona la teora de las bases de datos relacionales. Los datos que se saquen de las dos tablas se basarn en los valores coincidentes del campo que ambas tienen en comn. Una vez ms, nuestras acciones tienen un resultado predecible. El modelo relacional se basa en dos ramas de las matemticas: la teora de conjuntos y la lgica de predicados de primer orden. El hecho de que el modelo relacional est basado en la teora de las matemticas es lo que lo hace tan seguro y robusto. Al mismo tiempo, estas ramas de las matemticas proporcionan los elementos bsicos necesarios para crear una base de datos relacional con una buena estructura, y proporcionan las lneas que se utilizan para formular buenas metodologas de diseo. Hay quien ofrece una cierta resistencia a estudiar complicados conceptos matemticos para tan slo llevar a cabo una tarea bastante concreta. Es habitual escuchar quejas sobre que las teoras matemticas en las que se basa el modelo relacional y sus metodologas de diseo, no tienen relevancia en el mundo real o que no son prcticas. No es cierto: las matemticas son bsicas en el modelo relacional. Pero, por fortuna, no hay que aprender teora de

Curso Creativo Publicidad


Nivel de agencia profesional Book fin de curso. Barcelona.
www.tenemosunplan.com/book

Oportunidad de Trabajo?
Mejora tus Posibilidades con el Programa Ejecutivo de la Unab.
www.Unab.cl/ProgramaEjecutivo

mailxmail.com//modelo-relacional

1/13

29-08-2010

El modelo relacional conjuntos o lgica de predicados de primer orden para utilizar el modelo relacional. Sera como decir que hay que saber todos los detalles de la aerodinmica para poder conducir un automvil. Las teoras de la aerodinmica ayudan a entender cmo un automvil puede ahorrar combustible, pero desde luego no son necesarias para manejarlo.
La teora matemtica proporciona la base para el modelo relacional y, por lo tanto, hace que el modelo sea predecible, fiable y seguro. La teora describe los elementos bsicos que se utilizan para crear una base de datos relacional y proporciona las lneas a seguir para construirla. El organizar estos elementos para conseguir el resultado deseado es lo que se denomina diseo." El modelo relacional En 1970, el modo en que se vean las bases de datos cambi por completo cuando E. F. Codd introdujo el modelo relacional. En aquellos momentos, el enfoque existente para la estructura de las bases de datos utilizaba punteros fsicos (direcciones de disco) para relacionar registros de distintos ficheros. Si, por ejemplo, se quera relacionar un registro con un registro , se deba aadir al registro un campo conteniendo la direccin en disco del registro . Este campo aadido, un puntero fsico, siempre sealara desde el registro al registro . Codd demostr que estas bases de datos limitaban en gran medida los tipos de operaciones que los usuarios podan realizar sobre los datos. Adems, estas bases de datos eran muy vulnerables a cambios en el entorno fsico. Si se aadan los controladores de un nuevo disco al sistema y los datos se movan de una localizacin fsica a otra, se requera una conversin de los ficheros de datos. Estos sistemas se basaban en el modelo de red y el modelo jerrquico, los dos modelos lgicos que constituyeron la primera generacin de los SGBD. El modelo relacional representa la segunda generacin de los SGBD. En l, todos los datos estn estructurados a nivel lgico como tablas formadas por filas y columnas, aunque a nivel fsico pueden tener una estructura completamente distinta. Un punto fuerte del modelo relacional es la sencillez de su estructura lgica. Pero detrs de esa simple estructura hay un fundamento terico importante del que carecen los SGBD de la primera generacin, lo que constituye otro punto a su favor. Dada la popularidad del modelo relacional, muchos sistemas de la primera generacin se han modificado para proporcionar una interfaz de usuario relacional, con independencia del modelo lgico que soportan (de red o jerrquico). Por ejemplo, el sistema de red IDMS ha evolucionado a IDMS/R e IDMS/SQL, ofreciendo una visin relacional de los datos. En los ltimos aos, se han propuesto algunas extensiones al modelo relacional para capturar mejor el significado de los datos, para disponer de los conceptos de la orientacin a objetos y para disponer de capacidad deductiva. El modelo relacional, como todo modelo de datos, tiene que ver con tres aspectos de los datos: Estructura de datos. Integridad de datos. Manejo de datos.

Estructura de datos relacional En este apartado se presenta la estructura de datos del modelo relacional: la relacin Relaciones

Definiciones informales El modelo relacional se basa en el concepto matemtico de relacin, que grficamente se representa mediante una tabla. Codd, que era un experto matemtico, utiliz una terminologa perteneciente a las matemticas, en concreto de la teora de conjuntos y de la lgica de predicados. Una relacin es una tabla con columnas y filas. Un SGBD slo necesita que el usuario pueda percibir la base de datos como un conjunto de tablas. Esta percepcin slo se aplica a la estructura lgica de la base de datos (en el nivel externo y conceptual de la arquitectura de

mailxmail.com//modelo-relacional

2/13

29-08-2010

El modelo relacional tres niveles ANSI-SPARC). No se aplica a la estructura fsica de la base de datos, que se puede implementar con distintas estructuras de almacenamiento.
Un atributo es el nombre de una columna de una relacin. En el modelo relacional, las relaciones se utilizan para almacenar informacin sobre los objetos que se representan en la base de datos. Una relacin se representa grficamente como una tabla bidimensional en la que las filas corresponden a registros individuales y las columnas corresponden a los campos o atributos de esos registros. Los atributos pueden aparecer en la relacin en cualquier orden. Por ejemplo, la informacin de las oficinas de la empresa inmobiliaria se representa mediante la relacin OFICINA, que tiene columnas para los atributos Onum (nmero de oficina), Calle, Area, Poblacin, Telfono y Fax. La informacin sobre la plantilla se representa mediante la relacin PLANTILLA, que tiene columnas para los atributos Enum (nmero de empleado), Nombre, Apellido, Direccin, Telfono, Puesto, Fecha_nac, Salario, DNI, Onum (nmero de la oficina a la que pertenece el empleado). A continuacin se muestra una instancia de la relacin OFICINA y una instancia de la relacin PLANTILLA. Como se puede observar, cada columna contiene valores de un solo atributo. Por ejemplo, la columna Onum slo contiene nmeros de oficinas que existen. OFICINA Onum Calle Area Poblacin Telfono Fax O5 Enmedio, 8 Centro Castelln 964 201 240 964 201 340 O7 Moyano, s/n Centro Castelln 964 215 760 964 215 670 O3 San Miguel, 1 Villarreal 964 520 250 964 520 255 O4 Trafalgar, 23 Grao Castelln 964 284 440 964 284 420 O2 Cedre, 26 Villarreal 964 525 810 964 252 811 PLANTILLA Enum Nombre Apellido Direccin Telfono Puesto Fecha_nac Salario DNI Onum Magallanes, 964 284 EL21 Amelia Pastor Director 12/10/62 30000 39432212E O5 15 560 Castelln 964 535 EG37 Pedro Cubedo Bayarri, 11 Supervisor 24/3/57 18000 38766623X O3 690 Villarreal 964 522 EG14 Luis Collado Borriol, 35 Administ. 9/5/70 12000 24391223L O3 230 Villarreal Casalduch, 964 257 EA9 Rita Renau Supervisor 19/5/60 18000 39233190F O7 32 550 Castelln 964 524 EG5 Julio Prats Melilla, 23 Director 19/12/50 24000 25644309X O3 590 Villarreal 964 247 EL41 Carlos Baeza Herrero, 51 Supervisor 29/2/67 18000 39552133T O5 250 Castelln Un dominio es el conjunto de valores legales de uno o varios atributos. Los dominios constituyen una poderosa caracterstica del modelo relacional. Cada atributo de una base de datos relacional se define sobre un dominio, pudiendo haber varios atributos definidos sobre el mismo dominio. La siguiente tabla muestra los dominios de los atributos de la relacin OFICINA. Ntese que en esta relacin hay dos atributos que estn definidos sobre el mismo dominio, Telfono y Fax. Atributo Onum Nombre del Dominio NUM_OFICINA Descripcin Posibles valores de nmero de oficina Definicin 3 caracteres; rango O1O99 25

mailxmail.com//modelo-relacional

3/13

29-08-2010
Calle Area

El modelo relacional NOM_CALLE Nombres de calles de Espaa


NOM_AREA Nombres de reas de las poblaciones de Espaa

Poblacin NOM_POBLACION Nombres de las poblaciones de Espaa Telfono NUM_TEL_FAX Fax NUM_TEL_FAX Nmeros de telfono de Espaa Nmeros de telfono de Espaa

25 caracteres 20 caracteres 15 caracteres 9 caracteres 9 caracteres

El concepto de dominio es importante porque permite que el usuario defina, en un lugar comn, el significado y la fuente de los valores que los atributos pueden tomar. Esto hace que haya ms informacin disponible para el sistema cuando ste va a ejecutar una operacin relacional, de modo que las operaciones que son semnticamente incorrectas, se pueden evitar. Por ejemplo, no tiene sentido comparar el nombre de una calle con un nmero de telfono, aunque los dos atributos sean cadenas de caracteres. Sin embargo, el importe mensual del alquiler de un inmueble no estar definido sobre el mismo dominio que el nmero de meses que dura el alquiler, pero s tiene sentido multiplicar los valores de ambos dominios para averiguar el importe total al que asciende el alquiler. Los SGBD relacionales no ofrecen un soporte completo de los dominios ya que su implementacin es extremadamente compleja. Una tupla es una fila de una relacin. Los elementos de una relacin son las tuplas o filas de la tabla. En la relacin OFICINA, cada tupla tiene seis valores, uno para cada atributo. Las tuplas de una relacin no siguen ningn orden. El grado de una relacin es el nmero de atributos que contiene. La relacin OFICINA es de grado seis porque tiene seis atributos. Esto quiere decir que cada fila de la tabla es una tupla con seis valores. El grado de una relacin no cambia con frecuencia. La cardinalidad de una relacin es el nmero de tuplas que contiene. Ya que en las relaciones se van insertando y borrando tuplas a menudo, la cardinalidad de las mismas vara constantemente. Una base de datos relacional es un conjunto de relaciones normalizadas. Definiciones formales Una relacindefinida sobre un conjunto de dominios consta de: Cabecera: conjunto fijo de pares atributo:dominio

donde cada atributo corresponde a un nico dominio y todos los son distintos, es decir, no hay dos atributos que se llamen igual. El grado de la relacin es . Cuerpo: conjunto variable de tuplas. Cada tupla es un conjunto de pares atributo:valor:

con , donde es la cardinalidad de la relacin . En cada par se tiene que . La relacin OFICINA tiene la siguiente cabecera: {(Onum:NUM_OFICINA), (Calle:NOM_CALLE), (Area:NOM_AREA), (Poblacin:NOM_POBLACION), (Telfono:NUM_TEL_FAX), (Fax:NUM_TEL_FAX)}. Siendo la siguiente una de sus tuplas: {(Onum:O5), (Calle:Enmedio,8), (Area:Centro), (Poblacin:Castelln), (Telfono:964 201 240), (Fax:964 201 340)}. Este conjunto de pares no est ordenado, por lo que esta tupla y la siguiente, son la misma:

mailxmail.com//modelo-relacional

4/13

29-08-2010

El modelo relacional {(Calle:Enmedio,8), (Fax:964 201 340), (Poblacin:Castelln), (Onum:O5), (Telfono:964 201 240), (Area:Centro)}
Grficamente se suelen representar las relaciones mediante tablas. Los nombres de las columnas corresponden a los nombres de los atributos y las filas son cada una de las tuplas de la relacin. Los valores que aparecen en cada una de las columnas pertenecen al conjunto de valores del dominio sobre el que est definido el atributo correspondiente. Propiedades de las relaciones Las relaciones tienen las siguientes caractersticas: Cada relacin tiene un nombre y ste es distinto del nombre de todas las dems.

Los valores de los atributos son atmicos: en cada tupla, cada atributo toma un solo valor. Se dice que las relaciones estn normalizadas. No hay dos atributos que se llamen igual. El orden de los atributos no importa: los atributos no estn ordenados. Cada tupla es distinta de las dems: no hay tuplas duplicadas. El orden de las tuplas no importa: las tuplas no estn ordenadas.

Tipos de relaciones En un SGBD relacional pueden existir varios tipos de relaciones, aunque no todos manejan todos los tipos. Relaciones base. Son relaciones reales que tienen nombre y forman parte directa de la base de datos almacenada (son autnomas). Vistas. Tambin denominadas relaciones virtuales, son relaciones con nombre y derivadas: se representan mediante su definicin en trminos de otras relaciones con nombre, no poseen datos almacenados propios. Instantneas. Son relaciones con nombre y derivadas. Pero a diferencia de las vistas, son reales, no virtuales: estn representadas no slo por su definicin en trminos de otras relaciones con nombre, sino tambin por sus propios datos almacenados. Son relaciones de slo de lectura y se refrescan peridicamente. Resultados de consultas. Son las relaciones resultantes de alguna consulta especificada. Pueden o no tener nombre y no persisten en la base de datos. Resultados intermedios. Son las relaciones que contienen los resultados de las subconsultas. Normalmente no tienen nombre y tampoco persisten en la base de datos. Resultados temporales. Son relaciones con nombre, similares a las relaciones base o a las instantneas, pero la diferencia es que se destruyen automticamente en algn momento apropiado. Claves Ya que en una relacin no hay tuplas repetidas, stas se pueden distinguir unas de otras, es decir, se pueden identificar de modo nico. La forma de identificarlas es mediante los valores de sus atributos. Una superclave es un atributo o un conjunto de atributos que identifican de modo nico las tuplas de una relacin. Una clave candidata es una superclave en la que ninguno de sus subconjuntos es una superclave de la relacin. El atributo o conjunto de atributos de la relacin es una clave candidata para si y slo si satisface las siguientes propiedades: Unicidad: nunca hay dos tuplas en la relacin con el mismo valor de .

Irreducibilidad (minimalidad): ningn subconjunto de tiene la propiedad de unicidad, es decir, no se pueden eliminar componentes de sin destruir la unicidad.

mailxmail.com//modelo-relacional

5/13

29-08-2010

El modelo relacional
Cuando una clave candidata est formada por ms de un atributo, se dice que es una clave compuesta. Una relacin puede tener varias claves candidatas. Por ejemplo, en la relacin OFICINA, el atributo Poblacin no es una clave candidata ya que puede haber varias oficinas en una misma poblacin. Sin embargo, ya que la empresa asigna un cdigo nico a cada oficina, el atributo Onum s es una clave candidata de la relacin OFICINA. Tambin son claves candidatas de esta relacin los atributos Telfono y Fax. En la base de datos de la inmobiliaria hay una relacin denominada VISITA que contiene informacin sobre las visitas que los clientes han realizado a los inmuebles. Esta relacin contiene el nmero del cliente Qnum, el nmero del inmueble Inum, la fecha de la visita Fecha y un comentario opcional. Para un determinado nmero de cliente Qnum, se pueden encontrar varias visitas a varios inmuebles. Del mismo modo, dado un nmero de inmueble Inum, puede que haya varios clientes que lo hayan visitado. Por lo tanto, el atributo Qnum no es una clave candidata para la relacin VISITA, como tampoco lo es el atributo Inum. Sin embargo, la combinacin de los dos atributos s identifica a una sola tupla, por lo que los dos juntos son una clave candidata de VISITA. Si se desea considerar la posibilidad de que un mismo cliente pueda visitar un mismo inmueble en varias ocasiones, habra que incluir el atributo Fecha para identificar las tuplas de modo nico (aunque ste no es el caso de la empresa que nos ocupa). Para identificar las claves candidatas de una relacin no hay que fijarse en un estado o instancia de la base de datos. El hecho de que en un momento dado no haya duplicados para un atributo o conjunto de atributos, no garantiza que los duplicados no sean posibles. Sin embargo, la presencia de duplicados en un estado de la base de datos s es til para demostrar que cierta combinacin de atributos no es una clave candidata. El nico modo de identificar las claves candidatas es conociendo el significado real de los atributos, ya que esto permite saber si es posible que aparezcan duplicados. Slo usando esta informacin semntica se puede saber con certeza si un conjunto de atributos forman una clave candidata. Por ejemplo, viendo la instancia anterior de la relacin PLANTILLA se podra pensar que el atributo Apellido es una clave candidata. Pero ya que este atributo es el apellido de un empleado y es posible que haya dos empleados con el mismo apellido, el atributo no es una clave candidata. La clave primaria de un relacin es aquella clave candidata que se escoge para identificar sus tuplas de modo nico. Ya que una relacin no tiene tuplas duplicadas, siempre hay una clave candidata y, por lo tanto, la relacin siempre tiene clave primaria. En el peor caso, la clave primaria estar formada por todos los atributos de la relacin, pero normalmente habr un pequeo subconjunto de los atributos que haga esta funcin. Las claves candidatas que no son escogidas como clave primaria son denominadas claves alternativas. Por ejemplo, la clave primaria de la relacin OFICINA es el atributo Onum, siendo Telfono y Fax dos claves alternativas. En la relacin VISITA slo hay una clave candidata formada por los atributos Qnum e Inum, por lo que esta clave candidata es la clave primaria. Una clave ajena es un atributo o un conjunto de atributos de una relacin cuyos valores coinciden con los valores de la clave primaria de alguna otra relacin (puede ser la misma). Las claves ajenas representan relaciones entre datos. El atributo Onum de PLANTILLA relaciona a cada empleado con la oficina a la que pertenece. Este atributo es una clave ajena cuyos valores hacen referencia al atributo Onum, clave primaria de OFICINA. Se dice que un valor de clave ajena representa una referencia a la tupla que contiene el mismo valor en su clave primaria ( tupla referenciada). Esquema de una base de datos relacional Una base de datos relacional es un conjunto de relaciones normalizadas. Para representar el esquema de una base de datos relacional se debe dar el nombre de sus relaciones, los atributos de stas, los dominios sobre los que se definen estos atributos, las claves primarias y las claves ajenas. El esquema de la base de datos de la empresa inmobiliaria es el siguiente: OFICINA PLANTILLA INMUEBLE (Onum, Calle, Area, Poblacin, Telfono, Fax) (Enum, Nombre, Apellido, Direccin, Telfono, Puesto, Fecha_nac, Salario, DNI, Onum) (Inum, Calle, Area, Poblacin, Tipo, Hab, Alquiler, Pnum, Enum, Onum)

mailxmail.com//modelo-relacional

6/13

29-08-2010

El modelo relacional INQUILINO (Qnum, Nombre, Apellido, Direccin, Telfono, Tipo_pref, Alquiler_max) PROPIETARIO (Pnum, Nombre, Apellido, Direccin, Telfono) VISITA (Qnum, Inum, Fecha, Comentario)
En el esquema, los nombres de las relaciones aparecen seguidos de los nombres de los atributos encerrados entre parntesis. Las claves primarias son los atributos subrayados. Las claves ajenas se representan mediante los siguientes diagramas referenciales. PLANTILLA OFICINA : Oficina a la que pertenece el empleado. INMUEBLE PROPIETARIO : Propietario del inmueble. INMUEBLE PLANTILLA INMUEBLE OFICINA VISITA VISITA INQUILINO INMUEBLE : Empleado encargado del inmueble. : Oficina a la que pertenece el inmueble. : Inquilino que ha visitado el inmueble. : Inmueble que ha sido visitado.

A continuacin se muestra un estado (instancia) de la base de datos cuyo esquema se acaba de definir. OFICINA Onum Calle Area Poblacin Telfono Fax O5 Enmedio, 8 Centro Castelln 964 201 240 964 201 340 O7 Moyano, s/n Centro Castelln 964 215 760 964 215 670 O3 San Miguel, 1 Villarreal 964 520 250 964 520 255 O4 Trafalgar, 23 Grao Castelln 964 284 440 964 284 420 O2 Cedre, 26 Villarreal 964 525 810 964 252 811 PLANTILLA Enum Nombre Apellido Direccin Telfono Puesto Fecha_nac Salario DNI Onum Magallanes, 964 284 EL21 Amelia Pastor Director 12/10/62 30000 39432212E O5 15 560 Castelln 964 535 EG37 Pedro Cubedo Bayarri, 11 Supervisor 24/3/57 18000 38766623X O3 690 Villarreal 964 522 EG14 Luis Collado Borriol, 35 Administ. 9/5/70 12000 24391223L O3 230 Villarreal Casalduch, 964 257 EA9 Rita Renau Supervisor 19/5/60 18000 39233190F O7 32 550 Castelln 964 524 EG5 Julio Prats Melilla, 23 Director 19/12/50 24000 25644309X O3 590 Villarreal 964 247 EL41 Carlos Baeza Herrero, 51 Supervisor 29/2/67 18000 39552133T O5 250 Castelln INMUEBLE Inum Calle Area Poblacin Tipo Hab Alquiler Pnum IA14 Enmedio, 128 Centro Castelln Casa 6 600 P46 IL94 Riu Ebre, 24 Ronda Sur Castelln Piso 4 350 P87 IG4 Sorell, 5 Grao Castelln Piso 3 300 P40 IG36 Alicante,1 Segorbe Casa 3 325 P93 IG21 San Francisco, 10 Vinaroz Piso 5 550 P87 IG16 Capuchinos, 19 Rafalafena Castelln Piso 4 400 P93 PROPIETARIO

mailxmail.com//modelo-relacional

7/13

29-08-2010

El modelo relacional
Pnum Nombre Apellido Direccin Telfono P46 Amparo Felip Asensi 24, Castelln 964 230 680 P87 Manuel Obiol Av. Libertad 15, Vinaroz 964 450 760 P40 Alberto Estrada Av. del Puerto 52, Castelln 964 200 740 P93 Yolanda Robles Pursima 4, Segorbe 964 710 430 INQUILINO Qnum Nombre Apellido Direccin Telfono Tipo Alquiler Q76 Juan Felip Barcel 47, Castelln 964 282 540 Piso 375 Q56 Ana Grangel San Rafael 45, Almazora 964 551 110 Piso 300 Q74 Elena Abaso Navarra 76, Castelln 964 205 560 Casa 700 Q62 Alicia Mori Alloza 45, Castelln 964 229 580 Piso 550 VISITA Qnum Inum Fecha Comentario Q56 IA14 24/11/99 muy pequeo Q76 IG4 20/10/99 muy lejos Q56 IG4 26/11/99 Q62 IA14 14/11/99 no tiene saln Q56 IG36 28/10/99

Reglas de integridad Una vez definida la estructura de datos del modelo relacional, pasamos a estudiar las reglas de integridad que los datos almacenados en dicha estructura deben cumplir para garantizar que son correctos. Al definir cada atributo sobre un dominio se impone una restriccin sobre el conjunto de valores permitidos para cada atributo. A este tipo de restricciones se les denomina restricciones de dominios. Hay adems dos reglas de integridad muy importantes que son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias (las reglas se deben cumplir todo el tiempo). Estas reglas son la regla de integridad de entidades y la regla de integridad referencial. Antes de definirlas, es preciso conocer el concepto de nulo.

Nulos Cuando en una tupla un atributo es desconocido, se dice que es nulo. Un nulo no representa el valor cero ni la cadena vaca, stos son valores que tienen significado. El nulo implica ausencia de informacin, bien porque al insertar la tupla se desconoca el valor del atributo, o bien porque para dicha tupla el atributo no tiene sentido. Ya que los nulos no son valores, deben tratarse de modo diferente, lo que causa problemas de implementacin. De hecho, no todos los SGBD relacionales soportan los nulos. Regla de integridad de entidades La primera regla de integridad se aplica a las claves primarias de las relaciones base: ninguno de los atributos que componen la clave primaria puede ser nulo. Por definicin, una clave primaria es un identificador irreducible que se utiliza para identificar de modo nico las tuplas. Que es irreducible significa que ningn subconjunto de la clave primaria sirve para identificar las tuplas de modo nico. Si se permite que parte de la clave primaria sea nula, se est diciendo que no todos sus atributos son necesarios para distinguir las tuplas, con lo que se contradice la irreducibilidad. Ntese que esta regla slo se aplica a las relaciones base y a las claves primarias, no a las claves alternativas. Regla de integridad referencial

mailxmail.com//modelo-relacional

8/13

29-08-2010

El modelo relacional
La segunda regla de integridad se aplica a las claves ajenas: si en una relacin hay alguna clave ajena, sus valores deben coincidir con valores de la clave primaria a la que hace referencia, o bien, deben ser completamente nulos. La regla de integridad referencial se enmarca en trminos de estados de la base de datos: indica lo que es un estado ilegal, pero no dice cmo puede evitarse. La cuestin es qu hacer si estando en un estado legal, llega una peticin para realizar una operacin que conduce a un estado ilegal? Existen dos opciones: rechazar la operacin, o bien aceptar la operacin y realizar operaciones adicionales compensatorias que conduzcan a un estado legal. Por lo tanto, para cada clave ajena de la base de datos habr que contestar a tres preguntas: Regla de los nulos: Tiene sentido que la clave ajena acepte nulos?

Regla de borrado: Qu ocurre si se intenta borrar la tupla referenciada por la clave ajena? o Restringir: no se permite borrar la tupla referenciada.

Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas que la o referencian mediante la clave ajena. Anular: se borra la tupla referenciada y las tuplas que la referenciaban ponen a nulo la o clave ajena (slo si acepta nulos). Regla de modificacin: Qu ocurre si se intenta modificar el valor de la clave primaria de la tupla referenciada por la clave ajena? o Restringir: no se permite modificar el valor de la clave primaria de la tupla referenciada.

Propagar: se modifica el valor de la clave primaria de la tupla referenciada y se o propaga la modificacin a las tuplas que la referencian mediante la clave ajena. Anular: se modifica la tupla referenciada y las tuplas que la referenciaban ponen a nulo o la clave ajena (slo si acepta nulos). Reglas de negocio Adems de las dos reglas de integridad anteriores, los usuarios o los administradores de la base de datos pueden imponer ciertas restricciones especficas sobre los datos, denominadas reglas de negocio. Por ejemplo, si en una oficina de la empresa inmobiliaria slo puede haber hasta veinte empleados, el SGBD debe dar la posibilidad al usuario de definir una regla al respecto y debe hacerla respetar. En este caso, no debera permitir dar de alta un empleado en una oficina que ya tiene los veinte permitidos. Hoy en da an existen SGBD relacionales que no permiten definir este tipo de restricciones ni las hacen respetar. Lenguajes relacionales La tercera parte de un modelo de datos es la de la manipulacin. Son varios los lenguajes utilizados por los SGBD relacionales para manejar las relaciones. Algunos de ellos son procedurales, lo que quiere decir que el usuario dice al sistema exactamente cmo debe manipular los datos. Otros son no procedurales, que significa que el usuario dice qu datos necesita, en lugar de decir cmo deben obtenerse. En este apartado se presentan el lgebra relacional y el clculo relacional, definidos por Codd como la base de los lenguajes relacionales. Se puede decir que el lgebra es un lenguaje procedural (de alto nivel), mientras que el clculo relacional es un lenguaje no procedural. Sin embargo, ambos lenguajes son equivalentes: para cada expresin del lgebra, se puede encontrar una expresin equivalente en el clculo, y viceversa. El lgebra relacional (o el clculo relacional) se utilizan para medir la potencia de los lenguajes relacionales. Si un lenguaje permite obtener cualquier relacin que se pueda derivar mediante el lgebra relacional, se dice que es relacionalmente completo. La mayora de los lenguajes relacionales son relacionalmente completos, pero tienen ms potencia que el

mailxmail.com//modelo-relacional

9/13

29-08-2010

El modelo relacional lgebra o el clculo porque se les han aadido operadores especiales.
Tanto el lgebra como el clculo son lenguajes formales no muy "amigables". Pero se deben estudiar porque sirven para ilustrar las operaciones bsicas que todo lenguaje de manejo datos debe ofrecer. Adems, han sido la base para otros lenguajes relacionales de manejo de datos de ms alto nivel. lgebra relacional El lgebra relacional es un lenguaje formal con una serie de operadores que trabajan sobre una o varias relaciones para obtener otra relacin resultado, sin que cambien las relaciones originales. Tanto los operandos como los resultados son relaciones, por lo que la salida de una operacin puede ser la entrada de otra operacin. Esto permite anidar expresiones del lgebra, del mismo modo que se pueden anidar las expresiones aritmticas. A esta propiedad se le denomina clausura: las relaciones son cerradas bajo el lgebra, del mismo modo que los nmeros son cerrados bajo las operaciones aritmticas. En este apartado se presentan los operadores del lgebra relacional de un modo informal. Las definiciones formales pueden encontrarse en la bibliografa que se comenta al final del captulo. Primero se describen los ocho operadores originalmente propuestos por Codd y despus se estudian algunos operadores adicionales que aaden potencia al lenguaje. De los ocho operadores, slo hay cinco que son fundamentales: restriccin, proyeccin, producto cartesiano, unin y diferencia, que permiten realizar la mayora de las operaciones de obtencin de datos. Los operadores no fundamentales son la concatenacin (join), la interseccin y la divisin, que se pueden expresar a partir de los cinco operadores fundamentales. La restriccin y la proyeccin son operaciones unarias porque operan sobre una sola relacin. El resto de las operaciones son binarias porque trabajan sobre pares de relaciones. En las definiciones que se presentan a continuacin, se supone que R y S son dos relaciones cuyos atributos son A=(a , a , ..., a ) y B=(b , b , ..., b ) respectivamente. Restriccin : R WHERE condicin La restriccin, tambin denominada seleccin, opera sobre una sola relacin R y da como resultado otra relacin cuyas tuplas son las tuplas de R que satisfacen la condicin especificada. Esta condicin es una comparacin en la que aparece al menos un atributo de R, o una combinacin booleana de varias de estas comparaciones. Ejemplo 4.1 Obtener todos los empleados con un salario anual superior a 15.000 euros. PLANTILLA WHERE salario>15000 Enum Nombre Apellido Direccin Telfono Puesto Fecha_nac Salario DNI Onum Magallanes, 964 284 EL21 Amelia Pastor Director 12/10/62 30000 39432212E O5 15 560 Castelln 964 535 EG37 Pedro Cubedo Bayarri, 11 Supervisor 24/3/57 18000 38766623X O3 690 Villarreal Casalduch, 964 257 EA9 Rita Renau Supervisor 19/5/60 18000 39233190F O7 32 550 Castelln 964 524 EG5 Julio Prats Melilla, 23 Director 19/12/50 24000 25644309X O3 590 Villarreal 964 247 EL41 Carlos Baeza Herrero, 51 Supervisor 29/2/67 18000 39552133T O5 250 Castelln Ejemplo 4.2 Obtener todos los inmuebles de Castelln con un alquiler mensual de hasta 350 euros. INMUEBLE WHERE poblacin=`Castelln AND alquiler<=350

mailxmail.com//modelo-relacional

10/13

29-08-2010

El modelo relacional Inum Calle Area Poblacin Tipo Hab Alquiler Pnum IL94 Riu Ebre, 24 Ronda Sur Castelln Piso 4 350 P87 IG4 Sorell, 5 Grao Castelln Piso 3 300 P40 IG36 Alicante,1 Segorbe Piso 3 325 P93
Proyeccin : R[a , ..., a ] La proyeccin opera sobre una sola relacin R y da como resultado otra relacin que contiene un subconjunto vertical de R, extrayendo los valores de los atributos especificados y eliminando duplicados. Ejemplo 4.3 Obtener un listado de empleados mostrando su nmero, nombre, apellido y salario. PLANTILLA [enum,nombre,apellido,salario] Enum Nombre Apellido Salario EL21 Amelia Pastor 30000 EG37 Pedro Cubedo 18000 EG14 Luis Collado 12000 EA9 Rita Renau 18000 EG5 Julio Prats 24000 EL41 Carlos Baeza 18000 Ejemplo 4.4 Obtener los distintos puestos que pueden ocupar los empleados. PLANTILLA [puesto] Puesto Director Supervisor Administ. Producto cartesiano : R TIMES S El producto cartesiano obtiene una relacin cuyas tuplas estn formadas por la concatenacin de todas las tuplas de R con todas las tuplas de S. La restriccin y la proyeccin son operaciones que permiten extraer informacin de una sola relacin. Habr casos en que sea necesario combinar la informacin de varias relaciones. El producto cartesiano "multiplica" dos relaciones, definiendo una nueva relacin que tiene todos los pares posibles de tuplas de las dos relaciones. Si la relacin R tiene tuplas y atributos y la relacin S tiene tuplas y atributos, la relacin resultado tendr tuplas y atributos. Ya que es posible que haya atributos con el mismo nombre en las dos relaciones, el nombre de la relacin se antepondr al del atributo en este caso para que los nombres de los atributos sigan siendo nicos en la relacin resultado. Ejemplo 4.5 Obtener los nombres de los inquilinos y los comentarios que stos han realizado cuando han visto algn inmueble. INQUILINO[qnum,nombre,apellido] TIMES VISITA[qnum,inum,comentario] INQUILINO.Qnum Nombre Apellido VISITA.Qnum Inum Comentario Q76 Juan Felip Q56 IA14 muy pequeo Q76 Juan Felip Q76 IG4 muy lejos Q76 Juan Felip Q56 IG4 Q76 Juan Felip Q62 IA14 no tiene saln Q76 Juan Felip Q56 IG36 Q56 Ana Grangel Q56 IA14 muy pequeo Q56 Ana Grangel Q76 IG4 muy lejos Q56 Ana Grangel Q56 IG4 Q56 Ana Grangel Q62 IA14 no tiene saln

mailxmail.com//modelo-relacional

11/13

29-08-2010
Q56 Q74 Q74 Q74 Q74 Q74 Q62 Q62 Q62 Q62 Q62

El modelo relacional Ana Grangel Q56 Elena Abaso Q56 Elena Abaso Q76 Elena Abaso Q56 Elena Abaso Q62 Elena Abaso Q56 Alicia Mori Q56 Alicia Mori Q76 Alicia Mori Q56 Alicia Mori Q62 Alicia Mori Q56

IG36 IA14 muy pequeo IG4 muy lejos IG4 IA14 no tiene saln IG36 IA14 muy pequeo IG4 muy lejos IG4 IA14 no tiene saln IG36

Como se puede observar, la relacin resultado contiene ms informacin de la que se necesita. Por ejemplo, la primera tupla tiene distintos nmeros de inquilino: el comentario realizado en la visita no corresponde al inquilino cuyo nombre y apellido se muestra. Para obtener el listado que se pide en el ejemplo, es necesario realizar una restriccin para quedarse solamente con las tuplas en donde INQUILINO.Qnum = VISITA.Qnum. (INQUILINO[qnum,nombre,apellido] TIMES VISITA[qnum,inum,comentario]) WHERE inquilino.qnum=visita.qnum El resultado de esta operacin se muestra a continuacin. INQUILINO.Qnum Nombre Apellido VISITA.Qnum Inum Comentario Q76 Juan Felip Q76 IG4 muy lejos Q56 Ana Grangel Q56 IA14 muy pequeo Q56 Ana Grangel Q56 IG4 Q56 Ana Grangel Q56 IG36 Q62 Alicia Mori Q62 IA14 no tiene saln La combinacin del producto cartesiano y la restriccin del modo en que se acaba de realizar, se puede reducir a la operacin de concatenacin ( join) que se presenta ms adelante. Unin : R UNION S La unin de dos relaciones R y S, con y tuplas respectivamente, es otra relacin que tiene como mucho tuplas siendo stas las tuplas que se encuentran en R o en S o en ambas relaciones a la vez. Para poder realizar esta operacin, R y S deben ser compatibles para la unin. Se dice que dos relaciones son compatibles para la unin si ambas tienen la misma cabecera, es decir, si tienen el mismo nmero de atributos y stos se encuentran definidos sobre los mismos dominios. En muchas ocasiones ser necesario realizar proyecciones para hacer que dos relaciones sean compatibles para la unin. Ejemplo 4.6 Obtener un listado de las reas en las que hay oficinas o inmuebles para alquilar. OFICINA[rea] UNION INMUEBLE[rea] Area Centro Grao Ronda Sur Rafalafena Diferencia : R MINUS S La diferencia obtiene una relacin que tiene las tuplas que se encuentran en R y no se encuentran en S. Para realizar esta operacin, R y S deben ser compatibles para la unin. Ejemplo 4.7 Obtener un listado de todas las poblaciones en donde hay una oficina y no hay

mailxmail.com//modelo-relacional

12/13

29-08-2010

El modelo relacional inmuebles para alquilar.


OFICINA[poblacin] MINUS INMUEBLE[poblacin] Poblacin Villarreal Concatenacin (Join) : R JOIN S La concatenacin de dos relaciones R y S obtiene como resultado una relacin cuyas tuplas son todas las tuplas de R concatenadas con todas las tuplas de

mailxmail.com//modelo-relacional

13/13

Vous aimerez peut-être aussi