Está en la página 1de 17

ASIGNATURA: BASE DE DATOS DISTRIBUIDAS 

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

Introducción 

L a 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. 

También podría gustarte