Anda di halaman 1dari 29

Unidad III. Modelo relacional. Conceptos bsicos del modelo relacional.

El modelo relacional describe la estructura lgica de los datos por medio de tablas bidimensionales llamadas relaciones. Una entidad se representa por un rengln en la tabla. La ventaja principal del modelo relacional est en la simplicidad de su representacin en la estructura lgica de la base de datos y en la flexibilidad para establecer relaciones de datos por medio de campos de conexin o valores de atributo en comn. Todas las entidades en una base de datos relacional estn representadas como tablas separadas y no estn colocadas en ninguna jerarqu a fija. El modelo relacional !ace posible el alcan"ar mayor independencia de los datos usando atributos en comn en ve" de apuntadores para enla"ar registros relacionados en distintos arc!ivos. En otras palabras el modelo relacional establece por ejemplo# para relaciones uno a muc!os que la clave principal de un registro padre se inserte como parte de uno o varios registros !ijos en otra tabla. El modelo relacional se divide en tres partes$ La estructura# la integridad y la manipulacin de los datos. %ada una de las partes tiene sus propios t&rminos especiales. Los t&rminos relacionados a la estructura de los datos son$ 'ase de datos relacional$ %oleccin de tablas con un nombre nico. Una relacin corresponde a una tabla y es una coleccin de relaciones. Una tupla corresponde a una fila de la tabla y representa una relacin entre un conjunto de valores. %ardinalidad es el nmero de tuplas. Un atributo corresponde a una columna. (rado es el nmero de atributos. )ominio es un conjunto de valores permitidos %lave primaria es un identificador nico para la tabla.

Ejemplo$ *elacin + ,o-+


...................... ....................... .......................

)ominios ,ombre +ituacin


...................... ...................... ...................... ...................... ...................... ......................

%iudad
...................... ...................... ......................

,o-+ +/ +0 +3 +6 +7 Tuplas

+nombre +ala"ar 2artine" 'reidi %armona 8lvare" 8tributos (rado

+ituacin 01 31 /1 61 71

%iudad 2&xico 4eracru" 5uebla 2orelia 9uer&taro

%ardinalidad T&rmino relacional formal *elacin Tupla %ardinalidad 8tributo (rado %lave primaria )ominio Equivalentes informales Tabla :ila o registro ,mero de filas %olumna o campo ,mero de columnas ;dentificador nico :ondos de valores legales

Las equivalencias presentadas son slo aproximaciones ya que los t&rminos formales para el modelo relacional tienen definiciones precisas. ,o todos los sistemas relacionales se ajustan a todos los aspectos del modelo relacional.

T&rminos formales del modelo relacional. Dominios. La menor unidad semntica de informacin es el valor de un dato individual <Ejemplo$ El nmero de un proveedor# nombre de una ciudad= o sea un escalar o atmico que no tienen estructura interna <no es en t&rminos absolutos=. )ominio es un conjunto de valores escalares# todos del mismo tipo. Los dominios son fondos de valores de los cuales se extraen los valores reales de los atributos. %ada atributo debe estar >definido sobre? un dominio subyacente. La importancia de los dominios es que restringen las comparaciones <se pueden comparar los atributos que tienen el mismo dominio=. Los valores del dominio pueden o no estar almacenados en la base de datos como conjunto reales de valores. <En la mayor parte de los casos no es as =. 8l menos se deben especificarse como parte de la definicin de la base de datos@ despu&s de cada definicin de atributo se deber a incluir una referencia al dominio correspondiente para saber cuales atributos son comparables entre s y cuales no. El nombre de un atributo puede ser igual al del dominio <o distinto si dos atributos en la misma relacin estn definidos sobre el mismo dominio# se puede incluir el nombre del dominio como parte final de su propio nombre=. EAE25LB$ )efinicin en seudo+9L# de una base de datos de proveedores y partes# con manejo de dominios.
%*E8TE %*E8TE %*E8TE %*E8TE %*E8TE %*E8TE %*E8TE %*E8TE )B28;, +C )B28;, ,B2'*E )B28;, +;TU8%;E, )B28;, %;U)8) )B28;, 5C )B28;, %BLB* )B28;, 5E+B )B28;, %8,T %D8*<7=@ %D8*<01=@ +28L;,T@ %D8*</7=@ %D8*<F=@ %D8*<F=@ +28LL;,T@ ;,TE(E*@

%*E8TE T8'LE + G +C )B28;, +,B2'*E )B28;, +;TU8%;B, )B28;, %;U)8) )B28;, 5*;28*H IEH <+C= J@ %*E8TE T8'LE 5 G 5C 5,B2'*E %BLB* 5E+B %;U)8) 5*;28*H IEH <5C= J@ )B28;, )B28;, )B28;, )B28;, )B28;,

<+C= <,B2'*E= <+;TU8%;B,= <%;U)8)=

,BT ,ULL# ,BT ,ULL# ,BT ,ULL# ,BT ,ULL#

<5C= <,B2'*E= <%BLB*= <5E+B= <%;U)8)=

,BT ,ULL# ,BT ,ULL# ,BT ,ULL# ,BT ,ULL# ,BT ,ULL#

%*E8TE T8'LE +5 G +C )B28;, <+C= 5C )B28;, <,B2'*E= %8,T )B28;, <%8,T= 5*;28*H IEH <+C# 5C=# :B*E(E;, IEH <+C= *E:E*E,%E+ +# :B*E(E;, IEH <5C= *E:E*E,%E+ 5 J@

,BT ,ULL# ,BT ,ULL# ,BT ,ULL#

;mportancia de los dominios. %onsideremos la consulta. K%ules relaciones en la base de datos contienen informacin referente a los proveedoresL La consulta se podr a formular de la siguiente manera. K%ules relaciones en la base de datos incluyen un atributo definido sobre el dominio de nmeros de proveedorL %onsiderando la consulta anterior se traducir a en una simple interrogacin al catlogo del sistema# si se maneja el concepto de dominios# si no se maneja este concepto# solo es posible preguntar acerca de los atributos. Los dominios pueden ser simples o compuestos. Un dominio compuesto es una combinacin de dominios simples. Ejemplo$ un dominio compuesto fec!a# puede tener 3 componentes$ );8# 2E+ 8MB# cada uno definido sobre el mismo dominio.

,o todos los sistemas manejan el concepto de dominio y menos an dominios compuestos. 2uc!os de los )'2+# manejan el concepto de dominio como un tipo de dato en un sentido muy primitivo. Un manejo completo del concepto de dominios requerir a por lo menos$ /. La capacidad de especificar el conjunto completo de dominios ) para una base de datos dada. ) tendr a que ser un conjunto cerrado# en el sentido de que cualquier expresin escalar manejada por el sistema tendr a que producir un valor perteneciente a algn dominio del conjunto ). 0. La capacidad de especificar con exactitud# para cada dominio )i en el conjunto )# cules operadores unarios se aplican a los valores di de ese dominio )i 3. La capacidad de especificar con exactitud# para cada par de dominios )i y )j <no necesariamente disjuntos= en el conjunto )# cules operadores binarios se aplican a pares de valores di y dj de esos dominios )i y )j. Lo mismo para cada conjunto de tres dominios o ms dominios. 6. La capacidad de especificar# para cada expresin escalar legal# el dominio del resultado de evaluar esa expresin. El manejo de dominios en el contexto de los sistemas relacionales# requiere un recurso mediante el cual los usuarios puedan definir sus propios tipos de datos# ms complejos. Este recurso deber a consideren$ %omparaciones entre atributos con diferentes dominios que tienen sentido. Evitar comparaciones an dentro del mismo dominio que no tienen sentido. <ejemplo$ comparar +exo N:emenino= %ombinar valores de diferentes dominios mediante operadores aritm&ticos o de otro tipo.

Relaciones. Una relacin sobre un conjunto de dominios )/# )0# ...# )n <no necesariamente todos distintos=# se compone de dos partes# una cabecera y un cuerpo. La cabecera est formada por un conjunto fijo de atributos# o en t&rminos ms precisos# de pares atributo.dominio# G<8/$)/=#<80$)0=#...#<8n$)n= J tales que cada atributo 8j corresponde a uno y slo uno de los dominios subyacentes )j <jO/#0#...#n=. El cuerpo est formado por un conjunto de tuplas# el cual var a con el tiempo. %ada tupla a su ve" est formada por un conjunto de pares atributo.valor. G <8/$vi/=# <80$vi0=#...#<8n$vin= J <iO/#0#...#m# donde m es el nmero de tuplas del conjunto=. En cada una de estas tuplas !ay uno de estos pares atributo.valor <8j$vij= para cada atributo 8j de la cabecera. 5ara cada par atributo.valor <8j$vij=# vij es un valor del dominio nico )j asociado al atributo 8j. 8l valor m se le llama cardinalidad y al valor n se le llama grado de la relacin. La cardinalidad var a con el tiempo pero el grado no. Bbservando el ejemplo de la relacin +# se puede decir$ La tabla si tiene cuatro dominios subyacentes. La tabla tiene dos partes$ cabeceras y filas de datos. La fila de cabeceras representa el conjunto de pares ordenados$ <,o-+ $ ,o-+= <+nombre $ ,ombre= <+ituacin $ +ituacin= <%iudad $ %iudad= El conjunto de filas var a con el tiempo. Bbservando una fila# esta representa un conjunto de pares ordenados. <,o-+ $ +/= <+nombre $ +ala"ar = <+ituacin $ 01= <%iudad $ 2&xico=

5or lo anterior# se puede decir que la tabla + si puede considerarse como una representacin de una relacin con respecto a la definicin. B se puede decir que una relacin es una especie bastante abstracta de objeto y una tabla es una representacin concreta <casi siempre en papel= de ese objeto abstracto. ,o son lo mismo# pero en contextos informales es usual decir que son la misma cosa. Propiedades de las relaciones. Las propiedades se derivan de la definicin formal de relacin$ ,o existen tuplas repetidas. Las tuplas no estn ordenadas <de arriba abajo=. Los atributos no estn ordenados <de i"quierda a derac!a=. Todos los valores de los atributos son atmicos. Tipos de relaciones. /. *elaciones base <llamadas relaciones reales=$ son la parte directa de la base de datos. 0. 4istas <llamadas relaciones virtuales=$ +on relaciones derivadas# con nombre representada dentro del sistema mediante su definicin en t&rminos de otras relaciones con nombres@ no posee datos almacenados propios. 3. ;nstantneas$ Es una relacin derivada# con nombre# pero a diferencia de las vistas son reales no virtuales y tienen sus propios datos almacenados. 6. *esultados de consultas. Es tan slo la relacin final de alguna consulta especificada. 5uede o no tener nombre y no son persistentes dentro de la base de datos. 7. *esultados intermedios. Es una relacin <casi siempre sin nombre= resultante de alguna expresin relacional anidada dentro de otra expresin relacional ms grande. F. *elaciones temporales. Una relacin temporal tienen nombre# similar a una relacin base# vista o instantnea# pero que se destruye en forma automtica en algn momento.

Una definicin ms formal de una base de datos relacional# se puede decir que es una base de datos percibida por el usuario como una coleccin de relaciones normali"adas de diversos grados que var a con el tiempo. Reglas de integridad. Una base de datos se supone que es un modelo o representacin de alguna parte del mundo real. 8lgunas configuraciones de valores no tienen sentido. 5or lo tanto es necesario que el )'2+ cono"ca de ciertas restricciones en el mundo real para que pueda impedir la ocurrencia de tales configuraciones de valores no posibles. La mayor parte de reglas de integridad son espec ficas para cada base de datos. El modelo relacional incluye dos reglas de integridad generales que se aplican a cualquier base de datos que se apegue al modelo. Estas reglas se refieren a las claves primarias y a las claves ajenas. %omentarios. /. Todas las reglas de integridad se aplican a las relaciones base. 0. ,o se incluyeron expl citamente reglas espec ficas con respecto a una base de datos en el modelo relacional. 3. +e acostumbra llamar reglas a las dos reglas generales de integridad del modelo relacional. 8unque ser a ms apropiado llamarlas metarreglas. 6. +e acostumbra decir que el modelo tiene dos reglas generales de integridad. ,o obstante ser a ms apropiado decir que tiene tres. Claves primarias. En t&rminos informales# la clave primaria es un identificador nico para esa relacin. La clave primaria pueda ser compuesta. Una relacin pueda tener ms de un identificador nico %laves candidatas de las cuales se escoge una y las dems se llaman claves alternativas. Una definicin ms formal de clave candidata es$

Un atributo I <puede ser compuesto= de la relacin * es una clave candidata de * si y slo si satisface las siguientes dos propiedades$ /. Unicidad$ En cualquier momento dado# no existen dos tuplas en * con el mismo valor de I. 0. 2inimalidad$ +i I es compuesto# no ser a posible eliminar ningn componente de I sin destruir la propiedad de unicidad. Toda relacin tiene por lo menos una clave candidata# ya que las relaciones no tienen tuplas repetidas y por consiguiente tendr una clave primaria. En la prctica la clave primaria es la que tiene verdadera importancia. %omo las claves primarias y candidatas pueden ser un subconjunto de atributos# es mas correcto decir que la cualquiera de esas claves de una relacin * es el conjunto GPi#PjJ. Es preferible no abreviar el t&rmino clave a slo clave# ya que &ste tiene demasiados significados <claves$ primarias# candidatas# alternativas# ajenas# de ndice# padre# !ijo de cifrado# de descifrado de clasificacin# de dispersin. +ecundarias# y de pertenencia=. La importancia de las claves primarias es que &stas constituyen el mecanismo de direccionamiento a nivel de tuplas# bsico en un sistema relacional. El manejo de las claves primarias es requisito para el manejo de clase ajenas. Primera regla general de integridad del modelo relacional. Reglas de integridad de las entidades. Esta regla se puede expresar de alguna de las formas siguientes$ ,ingn componente de la clave primaria de una relacin base puede aceptar nulos. En una base de relacional# nunca registraremos informacin acerca de algo que no podamos identificar. En la primera expresin cabe !acer notar que un >nulo?# se debe interpretar como una informacin faltante. <Ejemplo# un dato no es aplicable o no se conoce=# o un valor o representacin que no representa un valor real del atributo.

La justificacin de la regla de integridad de las entidades es$ Las tuplas dentro de las relaciones base corresponden a entidades en el mundo real. 5or definicin las entidades en el mundo real son distinguibles# o sea se les identifica de alguna manera# por tanto# las representaciones de estas entidades tambi&n son identificables. Las claves primarias reali"an la funcin de identificacin nica en el modelo relacional. Una entidad no identificable es una contradiccin de t&rminos. En conclusin$ si una entidad es lo bastante importante en el mundo real como para requerir una representacin expl cita en la base de datos# tal entidad deber ser susceptible de identificacin definida y sin ambigQedad. La regla de integridad de las identidades se aplica slo a las relaciones base y a las claves primarias. %laves ajenas. )efinicin informal. Una clave ajena es un atributo <qui" compuesto= de una relacin *0 cuyos valores deben concordar con los de la clave primaria de alguna relacin */. Un valor de clave ajena representa una referencia a la tupla donde se encuentra el valor correspondiente de la clave primaria. 5or lo tanto el problema de garanti"ar que la base de datos no incluya valores no vlidos de una clave ajena se conoce como el problema de la integridad referencial. )efinicin formal. El atributo L: <qui" compuesto= de la relacin base *0 es una clave ajena si y slo si satisface dos propiedades independientes del tiempo$ /. %ada valor L: es nulo del todo o bien no nulo del todo <con nulo del todo o no nulo del todo se quiere decir que si# L: es compuesto# todos sus componentes son nulos o bien sus componentes son no nulos# no una combinacin=.

0. Existe una relacin base */ con clave primaria L5 tal que cada valor no nulo de L: es id&ntico al valor de L5 en alguna tupla de */. Segunda regla general de integridad del modelo relacional. Regla de integridad referencial. La base de datos no debe contener valores de clave ajena sin concordancia. %on el t&rmino de >valores de clave ajena sin concordancia? se quiere decir aqu un valor no nulo de clave ajena para el cual no existe un valor concordante de la clave primaria en la relacin objetivo pertinente. Austificacin de la regla$ 8s como los valores de la clave primaria representan identificadores de entidades# as los valores de la clave ajena representan referencias a entidades <a menos que sean nulos=. La regla de integridad referencial dice tan slo que si ' !ace referencia a 8# entonces 8 debe existir. 8notaciones. /. La integridad referencial exige concordancia de las claves ajenas muy espec ficamente# con claves primarias# no con claves alternativas. 0. Los conceptos de clave ajena e integridad referencial se definen uno en t&rminos del otro. La regla de integridad referencial se expresa en t&rminos de estados de la base de datos. %ualquier estado de la base de datos que no satisfaga la regla ser incorrecto por definicin. 8s !abr operaciones que podr an rec!a"arse o aceptarse. Tercera regla general de integridad del modelo relacional. Todo atributo debe satisfacer la restriccin segn la cual sus valores deben provenir del dominio pertinente. Algebra relacional La tercera parte del modelo relacional que est relacionada con la manipulacin de los datos# esta dividida en dos partes$ /. El lgebra relacional 0. La operacin de asignacin.

El lgebra relacional consiste de un conjunto de operadores de alto nivel que operan sobre las relaciones. Estos operadores toman una o dos relaciones de entrada y produce una nueva relacin de salida. Los operadores se pueden definir en dos conjuntos de cuatro operadores originales <%odd=$ Los operadores tradicionales de conjuntos$ unin# interseccin diferencia y producto cartesiano <todas con ligeras modificaciones# porque operan sobre relaciones y no sobre conjuntos. Las operaciones relacionales especiales$ restriccin# proyeccin# reunin y divisin. Estos oc!o operadores originales funcionan como sigue$ U,;E,. %onstruye una relacin formada por todas las tuplas que existan en cualquiera o en ambas de las relaciones especificadas. ;,TE*+E%%;E,. %onstruye una relacin formada por aquellas tuplas que apare"can en las dos relaciones especificadas.. );:E*E,%;8. %onstruye una relacin formada por todas las tuplas de la primera relacin que no apare"can en la segunda relacin de las dos especificadas. 5*B)U%TB. %onstruye una relacin a partir de dos relaciones especificadas# que contiene todas las combinaciones posibles de tuplas# *E+T*;%%;E, B +ELE%%;E,. Extrae las tuplas de una relacin que satisfagan una condicin especificada. 5*BHE%%;E,. Extrae los atributos especificados de una relacin dada. *EU,;E,. 8 partir de dos relaciones especificadas# construye una relacin que contiene toas las posibles combinaciones de tuplas# una de cada una de las dos relaciones# tales que las tuplas participen en una combinacin dada satisfagan alguna condicin especificada. );4;+;E,. Toma dos relaciones# una binaria y una unaria y construye una relacin formada por todos los valores de un atributo de la relacin binaria que concuerdan <en el otro atributo= con todos los valores en la relacin unaria.

5ropiedad de cerradura. El resultado de cada una de las operaciones es otra relacin. )ado que el resultado de una operacin es un objeto del mismo tipo que los operandos# &ste puede convertirse en operando de otra. Una relacin resultado no tiene nombre y por ende no tiene una cabecera. <Uso del operador *E,82E= . *estriccin 5royeccin 5roducto %artesiano +eleccin a x a x b H a y c b x b y c x c y

Unin

interseccin

)iferencia

*eunin natural 8/ b/ 80 b0 b/ c/ b0 c0 a/ b/ c/ a0 b0 c0 a a x y

)ivisin x " a

83 b3

b3 c3

a3 b3 c3

a b c

" x y

Bperaciones del lgebra relacional. La operacin unin en el lgebra relacional no es la unin matemtica. Es una forma limitada en la cual se obliga a las dos relaciones de entrada a tener la misma forma o las dos deben tener tuplas con >compatibilidad respecto a la unin?. )os relaciones son compatibles respecto a la unin si y slo si sus cabeceras son id&nticas# lo cual significa que$ a= Las dos tienen el mismo el mismo conjunto de nombres de atributos <y el mismo grado=. b= Los atributos correspondientes a las dos relaciones se definen sobre el mismo dominio. La unin# la interseccin y la diferencia requieren de operandos compatibles respecto a la unin. El producto cartesiano no tiene este requerimiento. La operacin Uni n. U,;B,. La unin de dos relaciones 8 y ' compatibles respecto a la union# 8 U,;B, ' <8 '=# es una relacin cuya cabecera es id&ntica a la de 8 o ' y cuyo cuerpo est formado por todas las tuplas t pertenecientes ya sea a 8 o a ' o a las dos. La operacin Intersecci n. La interseccin de dos relaciones compatibles respecto a la unin 8 y '# 8 ;,TE*+E%T ' <8 '=! es una relacin cuya cabecera es id&ntica a la de 8 o ' y cuyo cuerpo est formado por todas la tuplas t pertenecientes tanto a 8 como a '. La operacin Diferencia. La diferencia entre dos relaciones compatibles con respecto a la unin 8 y '# 8 2;,U+ '# es una relacin cuya cabecera es

id&ntica a la de 8 o ' y cuyo cuerpo est formado por todas las tuplas t pertenecientes a 8 pero no a '.

Ejemplo$ %onsiderando las relaciones$ *elacin 8 ,o-+ +/ +6 +7 *elacin ' ,o-+ +/ +0 +3 +7 A U"I#" $ ,o-+ +/ +0 +3 +6 +7 A I"T%RS%CT $ ,o-+ +/ +7 A MI"US $ ,o-+ +6 $ MI"US A ,o-+ +0 +3 +nombre +ala"ar %armona 8lvare" +nombre +ala"ar 2artine" 'reidi 8lvare" +nombre +ala"ar 2artine" 'reidi %armona 8lvare" +nombre +ala"ar 8lvare" +nombre %armona +nombre 2artine" 'reidi +ituacin 01 61 71 +ituacin 01 31 /1 71 +ituacin 01 31 /1 61 71 +ituacin 01 71 +ituacin 61 +ituacin 31 /1 %iudad 2&xico 2orelia 5uebla %iudad 2&xico 4eracru" 5uebla 5uebla %iudad 2&xico 4eracru" 5uebla 2orelia 5uebla %iudad 2&xico 5uebla %iudad 2orelia %iudad 4eracru" 5uebla

La operacin Producto cartesiano. En matemticas# el producto cartesiano de dos conjuntos es el conjunto de todos los pares ordenados de elementos tales que el primer elemento de cada par pertenece al primer conjunto y el segundo elemento pertenece al segundo conjunto. 8s el producto cartesiano de dos relaciones ser a un conjunto de pares ordenados de tuplas. 5ara conservar la propiedad de cerradura# la versin de producto cartesiano en lgebra relacional es una forma ampliada de la operacin. %ada par ordenado de tuplas es reempla"ado por la tupla resultante de la combinaci n de las dos tuplas del par ordenado. )adas dos tuplas < 8/$a/# 80$a0# ...#8m$am= y <'/$b/# '0$b0#...#'n$bn= la combinacin de las dos tuplas es la tupla$ < 8/$a/# 80$a0# ...#8m$am# '/$b/# '0$b0#...#'n$bn= El problema con el producto cartesiano es la cabecera de esta nueva relacin# la cual es la combinacin de las dos cabeceras de las relaciones de entrada# donde pueden existir atributos con nombres iguales. En este caso se debe emplear el operador *E,82E para modificar de manera apropiada los nombres de los atributos. 8s dos relaciones son compatibles respecto al producto si y slo si sus cabeceras son disjuntas <es decir no tienen nombres de atributos en comn=. La operacin de Producto cartesiano de dos relaciones <compatibles respecto al producto= 8 y '# 8 T;2E+ ' <8 x '=# es una relacin cuya cabecera es la combinacin de las cabeceras de 8 y ' y cuyo cuerpo est formado por el conjunto de todas las tuplas t tales que t es la combinacin de una tupla a perteneciente a 8 y una tupla b perteneciente a '. Esta operacin no tiene muc!a importancia prctica en un sistema relacional.

La operacin Restricci n o Selecci n. +ea t!eta la representacin de cualquier comparacin escalar simple <O# RN# N# NO# R y RO=.

operador

de

La seleccin t!eta de la relacin 8 segn los atributos S y H 8 T!ere S t!eta H Es una relacin con la misma cabecera que 8 con un cuerpo formado por el conjunto de todas las tuplas t de 8 tales que la evaluacin de la comparacin >S t!eta H? resulta verdadera en el caso de esa tupla t. %onsideraciones. Los atributos S y H deben estar definidos sobre el mismo dominio y la operacin t!eta debe ser aplicable a ese dominio. La relacin 8 no debe ser por fuer"a una relacin nombrada y puede representarse mediante una expresin arbitraria del lgebra relacional. En lugar de alguno de los atributos S o H se puede especificar por un valor literal. El operador de restriccin produce un subconjunto !ori"ontal de una relacin dada# es decir# un subconjunto de tuplas. La operacin de restriccin permite una operacin simple de comparacin o una de las siguientes formas en las cuales la expresin condicional de la clusula UDE*E est& formada por una combinacin booleana arbitraria de tales comparaciones simples$ /. 8 UDE*E c/ 8,) c0 9ue es equivalente a<8 UDE*E c/=;,TE*+E%T<8 UDE*E c0= 0. 8 UDE*E c/ B* c0 9ue es equivalente a <8 UDE*E c/= U,;B, <8 UDE*E c0= 3. 8 UDE*E ,BT c 9ue es equivalente a 8 2;,U+ <8 UDE*E c= Ejemplo$ + UDE*E %;U)8) O V5ueblaV ,o-+ +nombre +ituacin +3 'reidi /1 +7 8lvare" 71 %iudad 5uebla 5uebla

La operacin Pro&ecci n La proyeccin de la relacin 8 segn los atributos S#H#...#W 8 Xx#y#...#"Y Es una relacin con <S#H#...#W= como cabecera y cuyp cuerpo est formado por el conjunto de todas las tuplas <S$x# H$y#...#W$"= tales que una tupla t aparece en a con el valor x en S# el valor y en H# ...# y el valor " en W. %onsideraciones. El operador de proyeccin produce un subconjunto >vertical? de una relacin dada# o sea# el subconjunto obtenido mediante la seleccin de los atributos especificados y la eliminacin de las tuplas repetidas dentro los atributos seleccionados. ,ingn atributo puede especificarse ms de una ve" en la lista de atributos de una operacin proyeccin. +in embargo si se puede omitir del todo la lista de atributos# lo cual equivale a especificar una lista con todos los atributos de la relacin original# es decir# representa la proyeccin identidad. En contraste# la especificacin de una lista vac a# representa la proyeccin nula. Ejemplos$ + X%;U)8)Y %iudad 2&xico 4eracru" 5uebla 2orelia 5 X%BLB*# %;U)8)Y %olor %iudad *ojo 2&xico 4erde 4eracru" 8"ul 5uebla 8"ul 2orelia

La operacin Reuni n natural. La operacin reunin tiene diferentes formas. La ms importante es la reunin natural. +ean las cabeceras de las relaciones 8 y '. <S/#S0#...Sm#H/#H0#...#Hn= y <H/#H0#...#Hn#W/#W0#...Wp= respectivamente@ es decir los atributos H/#H0#...#Hn son <los nicos= comunes a las dos relaciones# los atributos S/#S0#...Sm# son los dems atributos de 8# y los atributos W/#W0#...#Wp son los dems atributos de '. +uponemos que los atributos con el mismo nombre estn definidos sobre el mismo dominio. %onsideremos que <S/#S0#...#Sm=# <H/#H0#...#Hn= y <W/#W0#...#Wp= como tres atributos compuestos# S#H y W respectivamente. La reunin natural de 8 y ' 8 AB;, ' Es una relacin con la cabecera <S#H#W= y un cuerpo formado por el conjunto de todas las tuplas <S$x#H$y$ y W$"= tales que una tupla a apare"ca en 8 con el valor x en S y el valor y en H# y una tupla b que apare"ca en ' con el valor y en H y el valor " en W. La reunin natural es asociativa y conmutativa# por lo que <8 AB;, '= AB;, % y 8 AB;, <' AB;, %= se pueden simplificar a 8 AB;, ' AB;, % y 8 AB;, ' y ' AB;, 8 son equivalentes.

Ejemplo$ + AB;, 5 *elacin +


+C +/ +0 +3 +6 +7 +nombre +ala"ar Aaimes 'ernal %orona 8ldana +ituacin 01 /1 31 01 31 %iudad Londres 5ar s 5ar s Londres 8tenas

*elacin 5
5C 5/ 50 53 56 57 5F 5nombre Tuerca 5erno 'irlo 'irlo Leva Engrane %olor *ojo 4erde 8"ul *ojo 8"ul *ojo 5eso /0 /Z /Z /6 /0 /[ %iudad Londres 5ar s *oma Londres 5ar s Londres

+ AB;, 5
+C +/ +/ +/ +0 +0 +3 +3 +6 +6 +6 +nombre +ala"ar +ala"ar +ala"ar Aaimes Aaimes 'ernal 'ernal %orona %orona %orona +ituacin 01 01 01 /1 /1 31 31 01 01 01 %iudad Londres Londres Londres 5ar s 5ar s 5ar s 5ar s Londres Londres Londres 5C 5/ 56 5F 50 57 50 57 5/ 56 5F 5nombre Tuerca 'irlo Engrane 5erno Leva 5erno Leva Tuerca 'irlo Engrane %olor *ojo *ojo *ojo 4erde 8"ul 4erde 8"ul *ojo *ojo *ojo 5eso /0 /6 /[ /Z /0 /Z /0 /0 /6 /[

+i las relaciones 8 y ' no tienen nombres de atributos en comn# 8 AB;, ' es equivalente a 8 T;2E+ '. Bperacin Reuni n'T(eta. La reunin t!eta es un subcaso de la reunin natural# en la cual se juntan dos relaciones con base en alguna condicin diferente a la igualdad. +ean las relaciones 8 y ' compatibles respecto al producto <no tienen nombres de atributos en comn= y sea t!eta un operador segn la definicin dada en el anlisis de la restriccin o seleccin. La reunin t!eta de la relacin a segn el atributo S con la relacin ' segn el atributo H# se define como el resultado de evaluar la expresin <8 T;2E+ '= UDE*E S t!eta H

En otras palabras# es una relacin con la misma cabecera que el producto cartesiano de 8 y '# y con un cuerpo formado por el conjunto de todas las tuplas t tales que t pertenece a ese producto cartesiano y la evaluacin de la condicin >S t!eta H? resulta verdadera para esa tupla t. <Los atributos S y H debern estar definidos sobre el mismo dominio# y la operacin t!eta debe ser aplicable a ese dominio.= Ejemplo$ +e desea calcular la reunin ma&or )ue de la relacin + segn %iudad con la relacin 5 segn %iudad. *elacin +
+C +/ +0 +3 +6 +7 +nombre +ala"ar Aaimes 'ernal %orona 8ldana +ituacin 01 /1 31 01 31 %iudad Londres 5ar s 5ar s Londres 8tenas

*elacin 5
5C 5/ 50 53 56 57 5F 5nombre Tuerca 5erno 'irlo 'irlo Leva Engrane %olor *ojo 4erde 8"ul *ojo 8"ul *ojo 5eso /0 /Z /Z /6 /0 /[ %iudad Londres 5ar s *oma Londres 5ar s Londres

<< + *E,82E %;U)8) 8+ +%;U)8)= T;2E+ < 5 *E,82E %;U)8) 8+ 5%;U)8)== UDE*E +%;U)8) N 5%;U)8)
+C +0 +0 +0 +3 +3 +3 +nombre Aaimes Aaimes Aaimes 'ernal 'ernal 'ernal +ituacin /1 /1 /1 31 31 31 +ciudad 5ar s 5ar s 5ar s 5ar s 5ar s 5ar s 5C 5/ 56 5F 5/ 56 5F 5nombre Tuerca 'irlo Engrane Tuerca 'irlo Engrane %olor *ojo *ojo *ojo *ojo *ojo *ojo 5eso /0 /6 /[ /0 /6 /[ 5ciudad Londres Londres Londres Londres Londres Londres

La reunin t!eta no es una operacin primitiva y es equivalente a obtener el producto cartesiano ampliado de las dos relaciones con modificaciones apropiadas de los nombres de los atributos< si es necesario=# y luego se reali"a una seleccin apropiada sobre el resultado. +i t!eta es >igual a?# la reunin t!eta se llama equirreunin. El resultado de una equirreunin debe incluir dos atributos con la propiedad de que los valores de esos dos atributos son iguales

entre s en cada tupla de la relacin. +i se elimina uno de esos dos atributos# el resultado ser la reunin natural. *elacin + *elacin 5
+C +/ +0 +3 +6 +7 +nombre +ala"ar Aaimes 'ernal %orona 8ldana +ituacin 01 /1 31 01 31 %iudad Londres 5ar s 5ar s Londres 8tenas 5C 5/ 50 53 56 57 5F 5nombre Tuerca 5erno 'irlo 'irlo Leva Engrane %olor *ojo 4erde 8"ul *ojo 8"ul *ojo 5eso /0 /Z /Z /6 /0 /[ %iudad Londres 5ar s *oma Londres 5ar s Londres

<< + *E,82E %;U)8) 8+ +%;U)8)= T;2E+ < 5 *E,82E %;U)8) 8+ 5%;U)8)== UDE*E +%;U)8) O 5%;U)8)
+C +/ +/ +/ +0 +0 +3 +3 +6 +6 +6 +nombre +ala"ar +ala"ar +ala"ar Aaimes Aaimes 'ernal 'ernal %orona %orona %orona +ituacin 01 01 01 /1 /1 31 31 01 01 01 +ciudad Londres Londres Londres 5ar s 5ar s 5ar s 5ar s Londres Londres Londres 5C 5/ 56 5F 50 57 50 57 5/ 56 5F 5nombre Tuerca 'irlo Engrane 5erno Leva 5erno Leva Tuerca 'irlo Engrane %olor *ojo *ojo *ojo 4erde 8"ul 4erde 8"ul *ojo *ojo *ojo 5eso /0 /6 /[ /Z /0 /Z /0 /0 /6 /[ 5ciudad Londres Londres Londres 5ar s 5ar s 5ar s 5ar s Londres Londres Londres

5or lo tanto la reunin natural tampoco es una operacin primitiva# es una proyeccin de una restriccin de un producto# <renombrando los atributos necesarios=. 5or ejemplo# la expresin que representa la reunin natural de proveedores y partes <segn ciudades= + AB;, 5 Es equivalente a la siguiente expresin$ <<+ T;2E+ <5 *E,82E %;U)8) 8+ 5%;U)8)== UDE*E %;U)8) O 5%;U)8)= X+C# +,B2'*E# +;TU8%;B,# %;U)8)# 5C# 5,B2'*E# %BLB*# 5E+BY

Bperacin Divisi n. +ean las cabeceras de las relaciones 8 y ' <S/#S0#...Sm#H/#H0#...#Hn= y <H/#H0#...#Hn= respectivamente@ es decir# los atributos H/#H0#...Hn son comunes a las dos relaciones. 8dems# 8 tiene los atributos S/# S0#...#Sm y ' no tiene otros atributos. +uponemos que los atributos con el mismo nombre estn definidos sobre el mismo dominio. %onsideremos que <S/#S0#...#Sm= y <H/#H0#...#Hn= como dos atributos compuestos# S y H. La divisin de 8 entre ' 8 );4;)E'H ' Es una relacin con la cabecera <S= y un cuerpo formado por el conjunto de todas las tuplas <S$x= tales que aparece una tupla <S$x# H$y= en 8 para todas las tuplas <H$y= presentes en '. En otras palabras# el resultado contiene todos los valores de S en 8 cuyos valores de H correspondientes en 8 incluyen a todos los valores de H en '# en t&rminos informales.

)E,)B

)B*/

)B*0

)B*3

)E,)B );4;)E'H )B*/

)E,)B );4;)E'H )B*0

)E,)B );4;)E'H )B*3

+C +/ +/ +/ +/ +/ +/ +0 +0 +3 +6

5C 5/ 50 53 56 57 5F 5/ 50 50 50

5C 5/

5C 50 56

5C 5/ 50 53 56 57 5F

+C +/ +0

+C +/ +6

+C +/

+6 +6

56 57

El objetivo del lgebra relacional es ayudar a escribir expresiones para obtener relaciones. Las expresiones constituyen una representacin simblica de alto nivel de la intencin del usuario. Estas expresiones definen el alcance de las operaciones EAE25LB+$ %onsiderando las siguientes relaciones *elacin + +C +,B2'*E +;TU8%;E, %;U)8) +/ +ala"ar 01 Londres +0 Aaimes /1 5ar s +3 'ernal 31 5ar s +6 %orona 01 Londres +7 8ldana 31 8tenas *elacion 5 5C 5,B2'*E 5/ Tuerca 50 5erno 53 'irlo 56 'irlo 57 Leva 5F Engrane %BLB* 5E+B %;U)8) *ojo /0 Londres 4erde /Z 5ar s 8"ul /Z *oma *ojo /6 Londres 8"ul /0 5ar s *ojo /[ Londres *elacin +5 +C 5C %8,T;)8) +/ 5/ 311 +/ 50 011 +/ 53 611 +/ 56 011 +/ 57 /11 +/ 5F /11 +0 5/ 311 +0 50 611 +3 50 011 +6 50 011 +6 56 311 +6 57 611

K%ul es el resultado de + UDE*E %;U)8) O VLondres\ X+C# +,B2'*EYL K%ul es el valor de la expresin + AB;, +5 AB;, 5L
+C +/ +/ +/ +0 +3 +6 +nombre +ala"ar +ala"ar +ala"ar Aaimes 'ernal %orona +it. 01 01 01 /1 31 01 %iudad Londres Londres Londres 5ar s 5ar s Londres 5C 5/ 56 5F 50 50 56 %8,T 311 011 /11 611 011 311 5nombre Tuerca 'irlo Engrane 5erno 5erno 'irlo %olor *ojo 8"ul *ojo 4erde 4erde *ojo 5eso /0 /Z /[ /Z /Z /6

< < <+ T;2E+ <5 *E,82E %;U)8) 8+ 5%;U)8)== UDE*E %;U)8) O 5%;U)8)= X+C# +,B2'*E# +;TU8%;B,# %;U)8)# 5C# 5,B2'*E# %BLB*# 5E+BY = UDE*E +;TU8%;B, RN 01 /. Bbtener los nombres de los proveedores que suministran la parte 50. < <+ AB;, +5= UDE*E 5C O 50= X+,B2'*EY 0. Bbtener los nombres de los proveedores que suministran por lo menos una parte roja. < < < 5 UDE*E %BLB* O ]*ojo\ = X5CY AB;, +5 = X+CY AB;, += X+,B2'*EY 3. Bbtener los nombres de los proveedores que suministran todas las partes. < < +5 X+C# 5CY );4;)E'H 5 X5CY = AB;, + X+,B2'*EY 6. Bbtener los nmeros de los proveedores que suministran al menos todas las partes suministradas por el proveedor +0. +5 X+C# 5CY );4;)E'H <+5 UDE*E +C O ]+0\ = X+CY 7. Bbtenerlos nombre de los proveedores que no suministran la 50. < < + X+CY 2;,U+ <+5 UDE*E 5C O ]50\ = X+CY= AB;, += X+,B2'*EY

Tabla de equivalencias de s mbolos para los operadores del lgebra relacional Bperador Unin ;nterseccin )iferencia 5roducto cartesiano +eleccin 5royeccin *eunin 8 U,;B, ' 8 ;,TE*+E%T ' 8 2;,U+ ' 8 T;2E+ ' 8 UDE*E S TDET8 H 8 XY 8 AB;, ' 8' 8' 8^' 8x'

S TDET8 H <8=
S#H#...W <8= 8 | x| '

)ivisin *enombrar 8signacin

8 );4;)E'H ' 8 *E,82E 8i 8+ 8in 8 $O '

8' S <8= 8'

Ejemplo$ La siguiente expresin < < < 5 UDE*E %BLB* O ]*ojo\ = X5CY AB;, +5 = X+CY AB;, += X+,B2'*EY Tambi&n se puede escribir as $ snombre < sC < 5C < %BLB* O ]*ojo\ <5= = | x| +5 = | x| + = Ejercicio$ Escribir con la segunda simbolog a. < < + X+CY 2;,U+ <+5 UDE*E 5C O ]50\ = X+CY= AB;, += X+,B2'*EY Bperacin asignaci n relacional. La operacin asignacin se usa para recordar el valor de alguna expresin algebraica# la cual que se quiera escribir por partes usando una variable de relacin temporal. Esta operacin permite la sustitucin total del valor completo de una relacin. +e puede representar por $O o y funciona de forma parecida al operador de asignacin de cualquier lenguaje de programacin. %on la operacin de asignacin# una consulta puede escribirse como un programa secuencial de una serie de asignaciones seguidas de una expresin. En lgebra relacional# la asignacin siempre debe !acerse a una variable de relacin temporal. Las asignaciones a relaciones permanentes constituyen una modificacin a la base de datos. Ejemplo$ La siguiente expresin

< < <+ T;2E+ <5 *E,82E %;U)8) 8+ 5%;U)8)== UDE*E %;U)8) O 5%;U)8)= X+C# +,B2'*E# +;TU8%;B,# %;U)8)# 5C# 5,B2'*E# %BLB*# 5E+BY = UDE*E +;TU8%;B, RN 01 se puede escribir TE25/$O 5 *E,82E %;U)8) 8+ 5%;U)8) TE250$O + T;2E+ TE25/ TE253$O TE250 UDE*E %;U)8) O5%;U)8) TE256$O TE253 X+C# +,B2'*E# +;TU8%;B,# %;U)8)# 5C# 5,B2'*E# %BLB*# 5E+BY TE257$O TE256 UDE*E +;TU8%;B, RN01 En los siguientes ejemplos$ +$O + U,;B, G < +C $ ]+F\# +,B2'*E $ ]'eltrn\# +;TU8%;B, $ 71# %;U)8) $ ]2adrid\#=J +5$O+5 2;,U+ G< +C $ ]+/\# 5C $ ]5/\# %8,T $ 311=J 2odifican la base de datos# ya que las asignaciones se !acen a relaciones ya existentes. La primera de estas asignaciones# inserta la tupla del proveedor +F# la segunda !ace una eliminacin de la tupla +/ y 5/ de la relacin +5. +in embargo las operaciones de unin y diferencia como sustitutos de operaciones expl citas para insertar y eliminar# no son satisfactorias porque no manejan las situaciones de error. 5or ejemplo# U,;B, no rec!a"a un intento de insertar una tupla repetida. *elacin + +C +,B2'*E +;TU8%;E, %;U)8) +/ +ala"ar 01 Londres +0 Aaimes /1 5ar s +3 'ernal 31 5ar s +6 %orona 01 Londres +7 8ldana 31 8tenas *elacin +5 +C 5C AC %8,T +/ 5/ A/ 011 +/ 5/ A6 Z11 +0 53 A/ 611 +0 53 A0 011 +0 53 A3 011 +0 53 A6 711

*elacion 5 5C 5,B2'*E 5/ Tuerca 50 5erno 53 'irlo 56 'irlo 57 Leva 5F Engrane

%BLB* 5E+B %;U)8) *ojo /0 Londres 4erde /Z 5ar s 8"ul /Z *oma *ojo /6 Londres 8"ul /0 5ar s *ojo /[ Londres %;U)8) 5ar s *oma 8tenas Londres 8tenas Bslo Londres

*elacin A AC A,B2'*E A/ %lasificador A0 5erforadora A3 Lectora A6 %onsola A7 %ompaginador AF Terminal AZ %inta

+0 +0 +0 +0 +3 +3 +6 +6 +7 +7 +7 +7 +7 +7 +7 +7 +7 +7

53 53 53 57 53 56 5F 5F 50 50 57 57 5F 5/ 53 56 57 5F

A7 AF AZ A0 A/ A0 A3 AZ A0 A6 A7 AZ A0 A6 A6 A6 A6 A6

F11 611 _11 /11 011 711 311 311 011 /11 711 /11 011 /11 011 _11 611 711

Anda mungkin juga menyukai