Beruflich Dokumente
Kultur Dokumente
Gua 6
Facultad:
Ingeniera
Escuela:
Computacin
Asignatura: Base de datos I
Materiales y Equipo
Computadora con SQL Server 2008.
Gua Nmero 6
Base de datos de ejemplo Joindb y Library
Introduccin
Clave primaria
Una clave primaria es un campo (o varios) que identifica un solo registro (fila) en una
tabla.
Para un valor del campo clave existe solamente un registro.
create table usuarios(
nombre varchar(20),
clave varchar(10),
primary key(nombre)
);
Clave foranea
Con la restriccin "foreign key" se define un campo (o varios) cuyos valores coinciden con
la clave primaria de la misma tabla o de otra, es decir, se define una referencia a un
campo con una restriccin "primary key" o "unique" de la misma tabla o de otra.
La integridad referencial asegura que se mantengan las referencias entre las claves
primarias y las externas. Por ejemplo, controla que si se agrega un cdigo de editorial en
la tabla "libros", tal cdigo exista en la tabla "editoriales".
Tambin controla que no pueda eliminarse un registro de una tabla ni modificar la clave
primaria si una clave externa hace referencia al registro. Por ejemplo, que no se pueda
eliminar o modificar un cdigo de "editoriales" si existen libros con dicho cdigo.
alter table NOMBRETABLA1
add constraint NOMBRERESTRICCION
foreign key (CAMPOCLAVEFORANEA)
references NOMBRETABLA2 (CAMPOCLAVEPRIMARIA);
Ejemplo
Se tienen las tablas VENTAS y VENDEDOR, dichas tablas debern relacionarse por el
idvendedor que es la llave primaria en la tabla VENDEDOR y es fornea en la tabla
VENTAS.
El script es el siguiente
--Creacin de BD
CREATE Database ventas
GO
USE ventas
GO
---tabla vendedor
CREATE TABLE VENDEDOR(
idvendedor INT PRIMARY KEY ,
nombre VARCHAR(20),
apellido VARCHAR(10),
);
GO
---tabla ventas
CREATE TABLE VENTAS(
Idventa INT PRIMARY KEY ,
nombre VARCHAR(20),
apellido VARCHAR(10),
idvendedor INT
foreign key (idvendedor) references VENDEDOR(idvendedor))
Cuando creamos relaciones en SQL Server, este nos permite crear un diagrama
relacional de las tablas de la base de datos, como se muestra en la siguiente figura.
Ejemplo 1:
En este ejemplo se muestran los nombres de los clientes, el identificador del cliente y la
cantidad vendida de las tablas buyers y sales. Esta consulta no utiliza alias en las tablas
de la sintaxis de JOIN.
USE joindb
SELECT buyer_name, sales.buyer_id, qty
FROM buyers
INNER JOIN sales
ON buyers.buyer_id = sales.buyer_id
GO
Ejemplo 2:
En este ejemplo se muestran los nombres de los clientes, el identificador del cliente y la
cantidad vendida de las tablas buyers y sales. Esta consulta utiliza alias en las tablas de
la sintaxis de JOIN.
USE joindb
SELECT buyer_name, s.buyer_id, qty
FROM buyers AS b
INNER JOIN sales AS s
ON b.buyer_id = s.buyer_id
GO
NOTA:
Algunas veces, la compleja sintaxis de JOIN y las subconsultas deben usar alias en los
nombres de tablas. Por ejemplo, al combinar una tabla consigo misma deben utilizarse
alias.
Las tablas se combinan para producir un nico conjunto de resultados que incorpore filas
y columnas de dos o ms tablas.
Sintaxis Parcial
SELECT columna [, columna ] FROM {<tablaOrigen >} [, ...n] <tipoCombinacin > ::= [
INNER | { { LEFT | RIGHT | FULL } [OUTER] } ] [ <sugerenciaCombinacin> ] JOIN
<tablaCombinada> ::= <tablaOrigen > <tipoCombinacin > <tablaOrigen > ON
<tablaOrigen
>
CROSS
JOIN
<tablaOrigen
>
directors
id
title
Four Rooms
1995
Die Hard
1988
Psycho
year director
1960
id
name
1 John McTiernan
2 Alfred Hitchcock
3 Quentin Tarantino
RESULTADO:
Ejemplo 3:
En este ejemplo se devuelven los nombres de los productos y de las compaas que los
suministran. Los productos sin suministradores asignados y los suministradores sin
productos asignados no se incluyen en el conjunto de resultados.
USE northwind
SELECT productname, companyname
FROM products
INNER JOIN suppliers
ON products.supplierid = suppliers.supplierid
GO
RESULTADO
Ejemplo 4:
En este ejemplo se devuelven los nombres de los clientes que han hecho pedidos
despus del 1/1/98. Observe que se utiliza una clusula WHERE para restringir las filas
devueltas en el conjunto de resultados.
USE northwind
SELECT DISTINCT companyname, orderdate
FROM orders INNER JOIN customers
ON orders.customerid = customers.customerid
Procedimiento
Realice los siguientes ejercicios:
1-
Figura 1.
2. Para este ejercicio va utilizar las tablas title, item y copy, y va a generar una
consulta que devuelva isbn, copy_no, on_loan, title, translation y cover, y
valores para las filas de la tabla copy cuyo ISBN sea 1 (uno), 500 (quinientos) o
Reservation
tem
Title
En la tabla Member estn los miembros que estn afiliados a la biblioteca, en la tabla
Reservation estn las reservaciones de libros que han realizado los miembros de la
biblioteca, la reserva se realiza por el isbn(nmero de identificacin de los libros), la tabla
Title esta los ttulos de los libros el autor y la sinopsis y la tabla tem estn las
traducciones que se les ha realizado a los libros que estn en la tabla Title, cada libro
Investigacin
-Investigue en qu consisten las combinaciones externas
Bibliografa
Francisco Charte Ojeda, SQL Server 2008. Madrid, Espaa : ANAYA, 2009 1era edicion
COMBINACIO
RELACION DE TABLAS
Gua
Hoja de cotejo:
6:
Alumno:
Mquina No:
Docente:
GL:
Fecha:
EVALUACION
%
CONOCIMIENTO
Del 20
al 30%
APLICACIN
DEL
CONOCIMIENTO
Del 40%
al 60%
1-4
5-7
8-10
Conocimie
nto
deficient
e de los
fundament
os
tericos
Conocimiento
y explicacin
incompleta de
los
fundamentos
tericos
Conocimiento
completo y
explicacin
clara de los
fundamentos
tericos
No tiene
actitud
proactiva
.
Actitud
propositiva y
con
propuestas no
aplicables al
contenido de
la gua.
Tiene actitud
proactiva y sus
propuestas son
concretas.
ACTITUD
Del 15%
al 30%
TOTAL
100%
Nota