Академический Документы
Профессиональный Документы
Культура Документы
5.- Del lgebra relacional defina: unin, interseccin, diferencia, producto cartesiano, select, project, join, divide. De un ejemplo de cada uno de ellos.
Teniendo Nombre Carrie Fisher Mark Hamill Nombre Harrison Ford Carrie Fisher
Direccin 123 Maple St. 456 Oak Rd. Direccin 789 Palm Dr. 123 Maple St.
La unin de R y S, es el conjunto de elementos que estn en R S ambos. Un elemento aparece una sola vez: Nombre Direccin Fecha de Nacimiento Harrison Ford 789 Palm Dr. 7/7/77 Mark Hamill 456 Oak Rd. 8/8/88 Carrie Fisher 123 Maple St. 9/9/99 La interseccin de R y S, es el conjunto de elementos que aparecen en ambos R y S: Nombre Direccin Fecha de Nacimiento Carrie Fisher 123 Maple St. 9/9/99 La diferencia de R y S, es el conjunto de elementos que estn en R pero no en S, es importante resaltar que R-S es diferente a S-R: Nombre Direccin Fecha de Nacimiento Mark Hamill 456 Oak Rd. 8/8/88 El producto cartesiano de dos conjuntos es una operacin que resulta en otro conjunto cuyos elementos son todos los pares ordenados que pueden formarse tomando el primer elemento del par del primer conjunto, y el segundo elemento del segundo conjunto. R x S, los esquemas de ambas relaciones se mezclan y unen: A B B C D 1 2 2 5 6 3 4 4 7 8 9 10 11 A 1 1 1 3 3 3 R.B 2 2 2 4 4 4 S.B 2 4 9 2 4 9 C 5 7 10 5 7 10 D 6 8 11 6 8 11
La seleccin crea una nueva relacin a partir de otra, pero incluyendo slo algunas de las tuplas a partir de un criterio dado. El criterio se basa en restricciones sobre los atributos de la relacin R y no pueden incluirse otras relaciones en dicho criterio que no estn en R. Teniendo: Ttulo Ao Duracin Studio Star Wars 1977 124 Fox Mighty Ducks 1991 104 Disney Waynes World 1992 95 Paramount Duracin >= 100(pelculas) Ttulo Ao Star Wars 1977 Mighty Ducks 1991
La proyeccin crea una nueva relacin a apartir de otra, pero incluyendo slo algunas de las columnas. Ttulo Ao Duracin Studio Star Wars 1977 124 Fox Mighty Ducks 1991 104 Disney Waynes World 1992 95 Paramount Ttulo, Ao, Duracin(pelculas) Ttulo Ao Duracin Star Wars 1977 124 Mighty Ducks 1991 104 Waynes World 1992 95 La operacin reunir o join es la forma ms comn de combinar informacin de dos tablas. Un join tomar lugar en almenos una columna de cada una de las tablas. La condicin ms bsica de un join es una reunin directa entre 2 tablas la cual se conoce como inner join. El resultado de la reunin consta de todas las combinaciones de cada tupla de R seguida de otra de S, que satisfagan la condicin de reunin, teniendo: Pelcula Director Ttulo Ao Director Tipo Estudio ID_Director Director Star Wars 1977 1 Color Fox 1 Smith Cacera 1991 1 color Disney 2 Charlie Bajo la lluvia 1992 3 color Paramount 3 Beny Unin Pelcula Director = ID_Director Director Ttulo Ao Director Star Wars 1977 1 Cacera 1991 1 Bajo la lluvia 1992 3
ID_Director 1 1 3
El outer join es una extensin del join para lidear con informacin no existente. Existen 3 tipos, izquierdo, derecho y completo. Teniendo: Empleado Calle Ciudad Empleado Rama Salario Coyote Toon Hollywood Coyote Mesa 1500 Rabbit Tunnel Carrotvile Rabbit Mesa 1300 Smith Revolver Valley Gates Redmond 5300 Williams Seaview Seattle Williams Redmond 1500 Left Outer Join Empleado Coyote Rabbit Williams Smith
Right Outer Join Empleado Coyote Rabbit Williams Gates Full Outer Join Empleado Coyote Rabbit Williams Smith Gates
Calle Toon Tunnel Seaview null Calle Toon Tunnel Seaview Revolver null
Ciudad Hollywood Carrotvile Seattle null Ciudad Hollywood Carrotvile Seattle Valley null
Rama Mesa Mesa Redmond Redmond Rama Mesa Mesa Redmond Null Redmond
Salario 1500 1300 1500 5300 Salario 1500 1300 1500 Null 5300
La divisin de R y S crea una nueva relacin seleccionando las filas de una relacin que corresponden con todas las filas en otra relacin. El grado de R debe ser mayor que el grado de S, teniendo: R S A B C D C D 1 2 3 5 3 5 4 3 5 9 2 7 3 2 8 1 1 2 2 7 1 3 2 7 R/S A 1
B 2
8.- Defina nuevamente la pregunta cuatro, pero ahora solo aplicndolo a SQL
9.- Dentro de SQL, defina las funciones bsicas del DDL y de un ejemplo de cada una de ellas (al menos 7).
CREATE Se utiliza para crear objetos en las bases de datos. ALTER Permite modificar la estructura de un objeto. DROP Elimina un objeto de la base de datos. TRUNCATE Trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho ms rpido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE slo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la clusula WHERE. Ejemplos: CREATE TABLE tab1 (col1 INTEGER CONSTRAINT pk PRIMARY KEY,col2 CHAR(25) NOT NULL,col3 CHAR(10) CONSTRAINT uni1 UNIQUE,col4 INTEGER,col5 INT CONSTRAINT fk5 REFERENCES tab2 ); ALTER TABLE tab1 ADD COLUMN col3 integer NOT NULL CONSTRAINT c1 UNIQUE ALTER TABLE tab1 ADD col3 integer ALTER TABLE tab1 ADD CONSTRAINT c1 UNIQUE (col3) ALTER TABLE tab1 DROP col3 DROP TABLE 'TABLA_NOMBRE' TRUNCATE TABLE ''TABLA_NOMBRE1''
10.- Dentro de SQL, defina las funciones bsicas de DML y de un ejemplo de cada una de ellas (al menos 5).
INSERT Agrega uno o ms registros a una tabla en una base de datos relacional. UPDATE Se utiliza para modificar los valores de un conjunto de registros existentes en una tabla. DELETE Borra uno o ms registros existentes en una tabla. SELECT Produce una tabla personal, y el esquema de la tabla personal debe coincidir con el esquema de la tabla donde los datos son insertados. Ejemplos: INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jeldrez', 4886850); INSERT INTO agenda_telefonica VALUES ('Roberto Fernndez', '4886850'), ('Alejandro Sosa', '4556550'); UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N';
DELETE FROM My_table WHERE field2 = 'N'; DELETE FROM employees WHERE deptno = (SELECT deptno FROM dept WHERE dname = SALES);
13.- Mencione para que sirve la Teora de la Normalizacin y cuales son sus objetivos.
La normalizacin se encarga de obtener los datos agrupados en distintas tablas siguiendo una serie de pasos, de tal manera que los datos obtenidos tienen una estructura ptima para su implementacin, gestin y explotacin desde distintas aplicaciones futuras. El proceso de normalizacion de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relacin al modelo relacional. Las bases de datos relacionales se normalizan para:
Evitar la redundancia de los datos. Evitar problemas de actualizacin de los datos en las tablas. Proteger la integridad de los datos.
La 4NF se asegura de que las dependencias multivaluadas independientes estn correcta y eficientemente representadas en un diseo de base de datos. Una tabla est en 4NF si y solo si esta en Tercera forma normal o en BCNF (Cualquiera de ambas) y no posee dependencias multivaluadas no triviales. La definicin de la 4NF confa en la nocin de una dependencia multivaluada. Una tabla con una dependencia multivaluada es una donde la existencia de dos o ms relaciones independientes muchos a muchos causa redundancia; y es esta redundancia la que es suprimida por la cuarta forma normal. La quinta forma normal (5FN), tambin conocida como forma normal de proyeccin-unin (PJ/NF), es un nivel de normalizacin de bases de datos designado para reducir redundancia en las bases de datos relacionales que guardan hechos multi-valores aislando semnticamente relaciones mltiples relacionadas. Una tabla se dice que est en 5NF si y slo si est en 4NF y cada dependencia de unin (join) en ella es implicada por las claves candidatas. 15.- Que es el lgebra relacional y para que se aplica, que tipo de lenguaje es. El lgebra relacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como stas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Clculo relacional que es de tipo declarativo. Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta. Es un lenguaje procedimental.
16.- En la base de datos del videoclub vista en clase diariamente, escriba el cdigo SQL para realizar las siguientes consultas.
select count(id_copia) as total from tbl_copias; select count(id_renta) as total from tbl_rentas group by id_cliente; select apat, amat, nombre from tbl_clientes order by apat, amat, nombre; select apat, amat, nombre from tbl_clientes where fecha_alta < '2010-05-02' order by apat, amat, nombre; select video.titulo from tbl_video video, tbl_actores actores where video.id_actor = actores.id_actor and actores.nombre = 'TOM HANKS'; select video.titulo from tbl_video video, tbl_generos generos where video.id_genero = generos.id_genero and generos.descripcion = 'INFANTIL';
select titulo from tbl_video where tipo = 'C' order by titulo; select titulo, fecha_estreno from tbl_video order by fecha_estreno desc; Adicionales select titulo, fecha_estreno from tbl_video order by fecha_estreno; select count(titulo) as 'Numero de Peliculas' from tbl_video; select count(*) from tbl_video; select * from tbl_video; select titulo from tbl_video where id_genero = 1; select v.titulo, g.descripcion from tbl_video v, tbl_generos g where g.descripcion = 'drama' and v.id_genero = g.id_genero; select v.titulo, a.nombre, v.fecha_estreno from tbl_video v, tbl_generos g, tbl_actores a where a.id_actor = v.id_actor and g.id_genero = v.id_genero and g.descripcion = 'drama'; select vid.titulo, act.nombre from tbl_video vid, tbl_actores act, tbl_generos gen where gen.descripcion='DRAMA' and vid.fecha_estreno >= 2008 and vid.id_genero = gen.id_genero and vid.id_actor = act.id_actor and act.nombre like 'NIC%'; select vid.titulo, act.nombre, cop.no_serie from tbl_video vid, tbl_actores act, tbl_generos gen , tbl_copias cop where gen.descripcion='DRAMA' and vid.fecha_estreno >= 2008 and vid.id_genero = gen.id_genero and vid.id_actor = act.id_actor and vid.id_video = cop.id_video and act.nombre like 'NIC%'; select count(*) from tbl_copias; select SUM(copias) as total from tbl_video; select vid.titulo, cop.no_serie from tbl_video vid, tbl_copias cop where vid.id_video = cop.id_video group by cop.no_serie; select act.nombre, vid.titulo from tbl_video vid, tbl_actores act where
vid.id_actor=act.id_actor order by act.nombre; select count(nombre) as Actores, sexo from tbl_actores group by sexo; select count(act.nombre) as Actores, sexo from tbl_actores act, tbl_video vid where act.id_actor = vid.id_actor group by sexo; select nombre, concat(domicilio, '. Tel:', telefono) as Domicilio from tbl_empleados order by domicilio; select emp.nombre, ren.fecha_renta, vid.titulo from tbl_empleados emp, tbl_rentas ren, tbl_video vid, tbl_obligaciones obl where ren.id_empleado = emp.id_empleado and obl.id_renta = ren.id_renta select distinct t.sexo from tbl_actores t; select distinct nombre from tbl_actores t; select distinct t.id_video, v.titulo from tbl_copias t, tbl_video v where t.id_video = v.id_video; select * from tbl_actores t where nombre between 'A' and 'C' order by nombre; SELECT v.titulo,a.nombre FROM video.tbl_actores a, video.tbl_video v where v.id_actor=a.id_actor and (v.titulo='TERMINATOR 2' or v.titulo='LA LAGUNA AZUL'); select * from tbl_video where id_actor = 26; update tbl_video set id_actor = 25 where id_actor = 26; update tbl_actores set nombre='CENICIENTA', sexo='F' where id_actor=26 and sexo='F'; delete from tbl_actores where id_actor='27' and sexo = 'M'; select * from tbl_actores where nombre not like 'A%'; SELECT act.nombre,vid.titulo FROM tbl_actores act,tbl_video vid WHERE act.nombre IN ('ROBERT PARTISSON','JIM CARREY') and act.id_actor=vid.id_actor; SELECT act.nombre, act.sexo, vid.titulo
FROM tbl_actores act LEFT JOIN tbl_video vid ON act.id_actor=vid.id_actor ORDER BY act.nombre; SELECT act.nombre, act.sexo, vid.titulo FROM tbl_video vid RIGHT JOIN tbl_actores act ON act.id_actor=vid.id_actor ORDER BY act.nombre; SELECT nombre,domicilio,fecha_nacimiento FROM video.tbl_clientes t union select nombre,domicilio, fecha_nacimiento from video.tbl_empleados;
Bibliografa
http://www.cs.us.es/cursos/bd-2001/temas/sql_I.html http://www.exes.es/ManSQL/www.exes.es/ManSQL/index50ae.html?Pg=sql_plsql_7.htm http://www.aulaclic.es/sql/t_8_3.htm http://ict.udlap.mx/people/carlos/is341.html Lenguajes Formales del Modelo Relacional Yolanda Garca Ruiz (UCM) Fundamentos de Sistemas de Bases de Datos Elmasi y Navathe Database Management Systems Kristen LeFevre