You are on page 1of 17

ASIGNATURA: BASE DE DATOS DISTRIBUIDAS

PRACTICA 1.
Titulo: Creación del ambiente de aprendizaje.

Introducción

La creación del ambiente de aprendizaje en asignaturas de bases de
datos principalmente para la realización de prácticas de laboratorio, nos lleva a
construir bases de datos quesean de forma general un ejemplo de las
sentencias y desarrollo de sintaxis en los lenguajes de manipulación y consulta
de datos de los sistemas de gestión de base de datos (SGBD). Además de
permitir la reafirmación de conocimientos adquiridos en asignaturas
antecesoras de esta permiten al alumno adquirir un aprendizaje significativo
que les permite incrementar su conocimiento profundizando en un determinado
SGBD. Es por ello que la presente práctica pretende que el alumno cree su
propio ambiente de aprendizaje que le permita practicar sus conocimientos
previos y adquirir nuevo aprendizaje en esta asignatura.

Objetivo

El alumno practicará los conocimientos adquiridos en asignaturas antecedentes
en la creación de bases de datos y tablas en Microsoft SQL Server 2005.

Instrucciones

1. Ingrese a Microsoft SQL Server2005 y cree una base de datos de
nombre: SistEduc.
2. Genere las siguientes tablas dentro de su base de datos:

Tabla Escuela Tabla zona
Idescuela Numerico Idzona Numero
Nombreesc Texto Nombre_zona Texto
Telefono Entero CodPostal Numero
Nombreresponsable Texto Clave_zona texto
Totalmatricula Numero
Idcarrera Numero
Idmatricula Numero
idzona numero

Tabla Matricula
idmatricula grado Totalmatricula
12 quinto 456

Carrera
idcarrera Nombre_carrera Clave
156 Lic. Informática INF12006
Copie el siguiente código fuente para crear la base de datos:

CREATE DATABASE SistEduc ON PRIMARY
(
NAME= SistEduc _data,
FILENAME='C:\BDD\grupo6601.mdf',
SIZE=50MB,
MAXSIZE=70MB,
FILEGROWTH=1MB
)
LOG ON
(
NAME= SistEduc _log,
FILENAME='C:\BDD\grupo6601.ldf',
SIZE=15MB,
MAXSIZE=20MB,
FILEGROWTH=1MB
)

GO

Copie el siguiente código fuente para crear las tablas:
create table Escuela (idescuela smallint IDENTITY primary key,
NomEscuela varchar (25),
Telefono int,
NomResponsable Varchar (25),
Totalmatric int,
idCarrera smallint,
idMatricula int,
idZona int,
constraint fk_carreraesc foreign key (idCarrera)
references Carrera (idCarrera),

constraint fk_matriculaesc foreign key (idMatricula)
references Matricula (idMatricula),

constraint fk_zonaesc foreign key (idZona)
references Zona (idZona))

use SistEduc
create table Matricula(idMatricula int primary key not null,
grado varchar(10),
TotalMatricula int)

Create table Zona(idZona int primary key not null,
Nombre_zona varchar(10),
Cod_postal int,
Clave_zona varchar(10))

Create Table Carrera(idCarrera smallint primary key not null,
nombreCarrera varchar(10),
claveCarrera varchar(10))

select * from Carrera
select * from Zona
select * from Matricula
select * from Escuela
3.- Inserte 10 registros en cada una de las tablas. Recuerde que por
establecerse la restricción del constraint debe coincidirlos registros del id en las
tablas.

Ejercicios
a) Realice dos bases de datos con las sentencias utilizadas anteriormente.
b) Cree cuatro tablas relacionadas para cada una de las bases de datos
creadas utilizando las sentencias anteriores.
c) Inserte diez registros en cada una de las tablas.

PRACTICA 2.

SENTENCIAS INNER JOIN

Introducción

E s la sentencia que permite combinar registros de dos tablas relacionadas, siempre
que existan valores coincidentes en un campo común, esto es, que ambas tengan
un campo con el mismo nombre y dominio. Su sintaxis es:
FROM <tabla1> INNER JOIN <tabla2> ON <tabla1.campo1 > [operador de condición
(=, >,<, etc)] <tabla2.campo2>;
También se puede vincular varias cláusulas ON en una instrucción JOIN, mediante la
sintaxis siguiente:
SELECT <campos>
FROM <tabla1> INNER JOIN <tabla2>
ON <tabla1.campo1 [operador de condición] <tabla2.campo1> AND
ON <tabla1.campo2 [operador de condición] <tabla2.campo2> OR
ON <tabla1.campo3> [operador de condición]<tabla2.campo3>;

Objetivo.
El alumno aprenderá a relacionar tablas mediante la utilización de la sintaxis INNER
JOIN.

Instrucciones de Práctica.
1. A la base de datos SistEduc,
2. Copie la siguiente sintaxis:
3. SELECT * FROM Escuela INNER JOIN Zona ON Escuela.idZona =
Zona.idZona.
4. Compile y ejecute.
5. Anote el resultado.

Ejercicios
a) Con las bases de datos creadas en los ejercicios de la práctica 1 realice 5 ejercicios
en cada base de datos como el realizado en esta práctica.
PRACTICA 3

Consultas de Datos en Tablas Relacionales

Introducción.

C omo se mencionó en la sesión pasada, los querys son consultas o
relaciones temporales que se establecen entre las tablas existentes en una
base de datos. En esta sesión continuaremos realizando consultas relacionales
en las cuales podemos establecer estas relaciones anteponiendo las columnas
a la derecha o izquierda de acuerdo a los requerimientos de información.

En esta sesiòn se utilizara el LEFT OUTER JOIN, esta consulta muestra en la
columna derecha el campo de la tabla que se desea consultar y en la izquierda
las combinaciones con la tabla 2 donde los valores sean nulos, en el caso que
se utiilice el where y ademas la sentencia is null. Su formato es:
Select nombretabla 1.nombre campo (columna izquierda),
nombretabla2.nombrecampo (columna derecha) FROM tabla 1 LEFT OUTER
JOIN tabla 2 ON tabla 1.campo clave principal = tabla2. campo clave principal
WHERE nombre tabla 2.nombrecampo IS NULL.

El mismo resultado obtendremos utilizado el RIGHT OUTER JOIN, solo que en
este caso las columnas quedan invertidas, es decir la de la izquierda del
ejemplo anterior queda a la derecha.

Es importante mencionar que debe existir una relaciòn directa entre las dos
tablas en la cual la clave primaria de la primera tabla debe estar contenida
como clave ajena en la segunda tabla y además tener valores iguales para la
combinación.

Para realizar consultas se pueden utilizar diversos operadores, estos son:

Operador Resultado de la comparación
<> No es igual que
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que

Objetivo
El participante realizara consultas relacionales con el uso del LEFT OUTER
JOIN,

Instrucciones.

I. - Uso del LEFT OUTER JOIN
1. Ingrese a SQL Server 2005.
2. En el editor de consulta capture o copie el siguiente código:
SELECT Escuela.idCarrera, Escuela.NomEscuela,
Carrera.idCarrera,Carrera.nombreCarrera
FROM Escuela LEFT OUTER JOIN Carrera
ON Escuela.idCarrera = Carrera.idCarrera

3.- Compile y ejecute

II.- Uso del RIGHT OUTER JOIN

4.- Inserte el siguiente código en el analizador de consulta

SELECT Escuela.idCarrera, Escuela.NomEscuela, Carrera.idCarrera,
Carrera.nombreCarrera
FROM Escuela RIGHT OUTER JOIN Carrera
ON Escuela.idCarrera = Carrera.idCarrera

5.- Compile y ejecute
6.- Anote los resultados y explique el funcionamiento de ambas sentencias.

Ejercicios

Realice cuatro consultas por operador que se encuentra en la tabla.
PRACTICA 5

FUNCIONES DE AGREGADO EN LA LISTA DE SELECCIÓN.

Introducción.

L as funciones de agregado son aquellas que generan valores de resumen en los
conjuntos de resultados de las consultas. Una función de agregado procesa
todos los valores seleccionados en una única columna para generar un único
resultado. Las funciones de agregado se pueden aplicar a todas las filas de una
tabla, a un subconjunto de la tabla especificado por una cláusula WHERE o a uno
o varios grupos de filas de la tabla. Cuando se aplica una función de agregado, se
genera un valor individual por cada conjunto de filas.
Las funciones de agregado son: SUM, AVG (los cuales solo se pueden usar con
columnas numéricas), MIN y MAX (no se puede utilizar con tipo de datos bit).
Estas funciones permiten obtener valores medios, máximos y mínimos, de
comparativo de una columna. Mientras que SUM permite sumar los valores de la
columna.

Instrucciones de la Práctica.

Utilice la tabla la tabla Escuela y copie las siguientes sintaxis anotando los
resultados a continuación:
a) select sum(totalmatric) from Escuela
Resultado:

b) select MAX(totalmatric) from Escuela
Resultado:

c) Select MINtotalmatric) FROM Escuela
Resultado:

d) Select AVG(totalmatric) From Escuela
Resultado:

Ejercicios

Realice 4 ejercicios como el planteado en esta práctica enlas bases dedatos
generados en los ejercicios anteriores.
PRACTICA 6

CREACIÒN DE RESPALDO DE LA BASE DE DATOS EN SQL 2005
SERVER.

Introducción.

L a seguridad de las Bases de Datos, son alteradas por la intrusión de
usuarios que desean destruir los datos o modificarlos, pero en algunas
ocasiones las fallas de energía eléctrica o del propio sistema operativo pueden
dar como consecuencia la perdida de información. Es por ese motivo que en
muchas ocasiones es necesario realizar copias de las bases de datos, para
que en caso de suceder cualquier tipo de accidente puedan restaurarse los
datos con la mayor confiabilidad posible evitando pérdidas que en algunos
casos son cuantiosas para las empresas.
Los periodos entre los que se deben realizar los respaldos es acorde al número
de transacciones que se realizan dentro de la base de datos.

Objetivo:

El alumno aprenderá a realizar copias de seguridad de la Base de Datos con
SQL Server 2005.

Instrucciones de la Práctica:
1. Accese la base de datos de la cual se va a realizar el respaldo de la BD.
(vea figura 23.1)
2. En la carpeta de Servers Object busque la etiqueta de Backup Device.
Oprima botón derecho del Mouse y de clic en la opción backup a
DataBase. (Figura 23.2).
3.

Figura 23.1. Acceso y localización del servicio de backup Devices.
Figura 23.2. Inicio del backup de la base de datos.

3.- Se activa una ventana la cual permite elegir el nombre de la base de datos a
respaldar y el periodo de tiempo en el que va a estar realizando la copia.
Busque su base de datos y actívela y en el periodo cerciórese que tenga la
opción de la fecha de hoy. (vea figura 23.3)

Figura 3. Ventana activa para respaldar la BD.

4.- Activa otra ventana en la cual se le determina la ruta donde debe guardar la
copia de respaldo o el dispositivo de almacenamiento donde debe realizarla.
Puede usted cambiar la opción que le proporciona por default. (ver figura 23.4)
Figura 23.4. Ventana que permite establecer la ruta de copiado de la Base de
Datos

5.- Presenta activa una ventana en la cual mediante un árbol de exploración le
determina donde se encuentra ubicado su respaldo. (Ver figura 23.6)

Figura 23.6. Árbol de exploración que muestra respaldo de la BD

7.- Cuando se realiza satisfactoriamente el backup muestra la ventana de
terminación. (Ver figura 23.7).
Figura 23.7. Ventana de conclusión del backup

Actividades de reafirmación:

• Realice 3 veces el mismo procedimiento con bases de datos diferentes.
PRACTICA 7.

CREACIÓN DE REPLICAS DE LA BASE DE DATOS CON TRANSACT-SQL

Objetivo
El alumno aprenderá a realizar replica de la base de datos con sintaxis de
SQL_TRANSAC para posteriormente implementarlo en una transacción.

Instrucciones
1.- Guarde su base de datos SistEduc.
2.- Para realizar esta pràctica deberà haber compilado y ejecutado la base de datos,
tablas y registros.
3.- Capture el siguiete còdigo:

BACKUP DATABASE [SistEduc]
TO DISK = N'C:\Archivos de programa\Microsoft SQL
Server\MSSQL.1\MSSQL\Backup\SistEduc.bak'
WITH RETAINDAYS = 5, NOFORMAT, NOINIT,
NAME = N'SistEduc-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,
STATS = 10
GO

4.- Explique cada una de las lìneas anteriores.
5.- El resultado es:

72 percent processed.
99 percent processed.
Processed 176 pages for database 'SistEduc', file 'SistEduc_data' on file 2.
100 percent processed.
Processed 1 pages for database 'SistEduc', file 'SistEduc_log' on file 2.
BACKUP DATABASE successfully processed 177 pages in 0.244 seconds
(5.942 MB/sec).

6.- Explique el resultado línea por línea.

Ejercicios

Realice tres veces este ejercicio.
PRACTICA 8

MANEJO DE TRANSACCIONES

Introducción

L as transacciones es un concepto muy utilizado principalmente por que sed
piensa en transacciones financieras. Principalmente se utilizan para realizar
modificaciones en los registros que se encuentran en una tabla, en el cual
puede ser de manera generalizada para todos los registros o para uno
específicamente. Estas transacciones se realizan de manera atómica, es decir
una vez que inician deben concluirse o de lo contrario los mecanismos de
seguridad de la base de datos pueden anularla o abortarla dependiendo de la
técnica que se utilice, principalmente cuando suceden fallos del sistema ya sea
de tipo físico o lógico.
SQL Server 2005 utiliza tres tipos de transacciones:
• La transacción explicita, la cual es definida por el programador
utilizando BEGIN TRANSACTION para especificar el dato que se
va a modificar la cual es completada con la sentencia COMMIT
TRANSACTION y realiza excepciones de errores –esto es – hace
verificaciones de errores mediante el ROLLBACK
TRANSACTION.
• Transacciones Implícitas, son aquellas que se realizan cuando
dos tablas están relacionadas y la modificación de la primera
genera una modificación implícita de la segunda para asegurar la
integridad de dominios en ambas tablas. Se utiliza la sentencia
SET IMPLICIT_TRANSACTIONS ON y el comando,
principalmente cuando no se realiza atómicamente la transacción
de la primera.
• Auto-Commit Transacction. Esta transacción se realiza se puede
decir de manera automática, en los casos en que la modificación
se datos se realiza fuera de las explicitas e implícitas.

Las cuatro principales características de las transacciones son:

• Atómicas. como se mencionó anteriormente, todas las
operaciones que se realicen en la transacción deben ejecutarse
como si fuese una sola.
• Consistente. Cuando la transacción se realiza verificando que
todos los datos establecidos en ella se realicen asegurando la
integridad de ellos.
• Aislada. Cada transacción debe ser ejecutada en sus operaciones
para la tabla o registro que se modifica.
• Durable. El dato modificado por la transacción debe ser guardado
de manera permanente en la base de datos y a su vez en el disco
donde se encuentre almacenada.
Objetivo
El participante realizará transacciones de modificación en los registros de una
tabla.

Instrucciones.

1.- Accese SQL Server 2005.
2.- Utilizando la base de datos y tablas vistas en el tema anterior de esta
sesión, se realizarà la siguiente transacción:

--Inicio de la transacción

BEGIN transaction
UPDATE Escuela SET totalmatric =(totalmatric * 0.05) + totalmatric /*
modificación del campo totalmatric al cual se le incrementa 5% su
valor.*/
WHERE Nomescuela = 'Sor Juana' /* a la escuela que tenga por nombre
Sor Juana*/
IF @@ERROR != 0 /*excepcion de error*/
BEGIN
ROLLBACK transaction
RETURN
END
COMMIT transaction
--Fin de la transacciòn

begin tran
commit tran
rollback tran
--consulta del resultado
select * from Escuela

3.- Compile y ejecute
4.- Anote el resultado a continuaciòn:
5.- Capture la siguiente lìnea:
insert into Escuela values('Sor Juana', 89, 'Rocio',500, 3,156,20)

6.- Compile y ejecute.
7.- ¿Cuál es el resultado?

Ejercicios
a) Realice dos transacciones de inserción de registros en la tabla Zona de
la Base de datos SistEduc.
b) Realice dos transacciones de eliminación de registros en la tabla
Escuela de la base de datos SistEduc.
c) Realice dos transacciones de modificaciòn en la tabla Matricula de la
base de datos SistEduc
PRACTICA 9
TRANSACCIÓN DE CONSULTA EN TABLAS RELACIONALES.

Introducción

Objetivo
El alumno aprenderà a realizar transacciones en tablas relacionadas.

Instrucciones
1.- Compile y ejecute su base de datos SistEduc, tablas y registros.
2.- Capture el siguiente código:

BEGIN transaction
SELECT Escuela.idCarrera, Escuela.NomEscuela,
Carrera.idCarrera,Carrera.nombreCarrera
FROM Escuela LEFT OUTER JOIN Carrera
ON Escuela.idCarrera = Carrera.idCarrera
where Escuela.NomEscuela= 'TESE' /* a la escuela que tenga por nombre
Sor Juana*/
IF @@ERROR != 0 /*excepcion de error*/
BEGIN
ROLLBACK transaction
RETURN
END
COMMIT transaction
--Fin de la transacciòn

begin tran
commit tran
rollback tran

3.- Compile y ejecute
4.- Anote a continuación el resultado.

Ejercicios
a) Realice tres transacciones con sus bases de datos realizadas en
ejercicios anteriores.
b) Realice tres transacciones utilizando el left outer join con sus bases de
datos realizadas en los ejercicios anteriores.
c) Realice tres transacciones utilizando el RIGHT OUTER JOIN
Practica 10
TRANSACCIÓN DE CONSULTA EN BASES DE DATOS DISTRIBUIDAS

Introducción

Objetivo

Instrucciones

Ejercicios
PRACTICA 11

SENTENCIAS GROUP BY y HAVING

Introducción

E sta sentencia especifica una condición de búsqueda de un grupo o agregado y
normalmente se utiliza con la cláusula GROUP BY. Cuando no se utiliza con esta
sentencia, HAVING se comporta como la cláusula WHERE. Su sintaxis es:
HAVING <condición_busqueda>.
Con esta sentencia no puede utilizarse los tipos de datos text, image y ntext.
Group By especifica las agrupaciones que van a realizar en las filas de salida. Cuando
se especifica GROUP BY , cada columna que no este en una expresión de agregado
de la lista de selección, esto es, todas las columnas de la tabla, se deben incluir en la
lista de GROUP BY o esta debe coincidir exactamente con la expresión de la lista de
selección. Su sintaxis es:
SELECT * FROM <nombre de la tabla> GROUP BY <campos de la tabla> HAVING
<campo de búsqueda [condición]=registro>

Objetivo.
Enseñar al alumno el agrupamiento de columnas a través de las sentencias Group By
y HAVING.

Instrucciones de la práctica:
1. Cree una base de datos Escuela.
2. Copie el siguiente código:

SELECT * FROM Escuela GROUP BY idescuela, NomEscuela, Telefono,
NomResponsable, Totalmatric, idCarrera, idMatricula,
idZona HAVING Totalmatric >500

3. Compile y ejecute.
4. Anote el resultado a continuación.
5. Copie el siguiente còdigo:

SELECT * FROM Escuela GROUP BY idescuela, NomEscuela, Telefono,
NomResponsable, Totalmatric, idCarrera, idMatricula,
idZona HAVING Totalmatric > =5600
6.- ¿Cuàl es el resultado? Anotelo a continuaciòn

7.- ¿Cuàl es la diferencia en el resultado entre las dos sintaxis y
porqué?

Ejercicios

Realice la agrupación de columnas utilizando ambas sintaxis en 3 tablas.

Investigue:
La sintaxis y resultado de la utilización de ALL conjuntamente con GROUP BY.
Investigar los operadores and, or, xor en Transact-SQL.