SQL
SQL
SQL
GUIA DIDCTICA
Fundamentacin
El propsito de este mdulo es introducir al estudiante en el Diseo e
Implementacin de Base de Datos como una herramienta de imprescindible
ayuda en la construccin de un sistema de informacin. Proporcionando al
participante un conjunto de tcnicas de identificacin de requerimientos
operacionales, y
Pgina |1
Estructura de contenidos
1. Entorno SQL 2008
2. Descripcin del entorno y herramientas principales.
3. Conexin a un servidor
4. Crear base de datos y tablas por diseo.
5. Almacenar base de datos. Copias de Seguridad y Restaurar.
ACTIVIDADES
Las actividades a desarrollar en la Unidad son:
Actividad 01:
Actividad 02:
ESTRATEGIAS METODOLGICAS
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de
comunicacin entre el docente y los estudiantes, para efectos de
mensajera interna, foros, evaluaciones virtuales, acciones de tutora
acadmica y comunicacin de resultados de evaluacin de los aprendizajes.
Pgina |2
EVALUACIN
2.
3.
4.
que Ud.,
Material Complementario
El material complementario se suministra con la finalidad
de ampliar la
Navathe.
(1997)
Sistemas
de
Bases
de
Datos.
Conceptos
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
Pgina |3
UNIDAD
ESTRUCTURA DE CONTENIDOS
1. Entorno SQL 2008
2. Descripcin del entorno y herramientas principales.
3. Conexin a un servidor
4. Crear base de datos y tablas por diseo.
5. Almacenar base de datos. Copias de Seguridad y Restaurar.
Pgina |4
Introduccin
Estimado participante:
En esta Unidad aprender a identificar los componentes de Microsoft SQL
Server 2008 y familiarizarse con su interfaz
en el
Importante:
Si deseas ahondar
ms sobre
Pgina |5
Para iniciar Microsoft SQL Server 2008 debe accesar al men SQL Server
2008 desde el botn Inicio -> Todos los Programas -> Microsoft SQL Server
2008 -> SQL Server Management Studio
Pgina |6
Sin
embargo,
si
desea
mostrar
cualquier
barra
de
Pgina |7
Pgina |8
Pgina |9
P g i n a | 10
Una vez est listo, haga clic en Conectar. Si te conectas con xito, el
Explorador de objetos que aparecen con unos pocos nodos:
P g i n a | 11
4 CREACION
DE
BASES
DE
DATOS
RELACIONALES
EN
SQL
SERVER 2008
SQL Server utiliza 3 tipos de archivos para almacenar una base de datos:
Las bases de datos de SQL Server utilizan tres tipos de archivos para
almacenar una base de datos, tal como se muestra en la tabla siguiente.
Archivo
Descripcin
El archivo de datos principal incluye la informacin de inicio de
la base de datos y apunta a los dems archivos de la misma.
Los datos y objetos del usuario se pueden almacenar en este
Principal
para
los
nombres
de
archivos
de
datos
principales es .mdf.
Los archivos de datos secundarios son opcionales, estn
definidos por el usuario y almacenan los datos del usuario. Se
pueden utilizar para distribuir datos en varios discos colocando
cada archivo en una unidad de disco distinta. Adems, si una
Secundario
Registro de
P g i n a | 12
P g i n a | 13
2. Mediante Query:
Tambin Ud. puede crear su base de datos mediante una consulta quizs para
tener en cuenta con ms detalle el tamao mximo y otras caractersticas,
pero cualquiera que sea el caso puedes hacerlo teniendo en cuenta lo
siguiente:
P g i n a | 14
Primero debes crear una nueva hoja de consulta, hazle clic a Nueva
Consulta en la parte superior.
Clic para
escribir
cdigo
SQL
Tomar en cuenta que cuando creas una base de datos se crean dos
archivos, un archivo *.mdf que contiene el archivo data y un
archivo *.ldf que contiene al archivo log, el archivo mdf es el archivo
primario, mediante el cdigo mostrado hemos creado una base de
datos donde se tiene especificado las caractersticas del archivo mdf
mientras que el archivo log al no haberse especificado <filespec> se
crear automticamente con un tamao de 1 Mb.
Con ms detalle:
NAME es el nombre del archivo data (puede que no sea el mismo que
la base de datos pero se recomienda que as sea con la terminacin
data).
FILENAME es cmo puedes ver la ruta del archivo mdf.
SIZE es el tamao inicial de tu base de datos
MAXSIZE se puede deducir que es su tamao mximo, mientras que
FILEGROWTH determina el tamao o la proporcin en la que crecer
el archivo principal, todos estos tamaos estn representados en
Megabytes por defecto pero uno podra especificar si quiere que sea en
otra unidad (Kb, Mb, Gb, TB, tambin Unlimited -en el caso de
Maxsize- y N% -en el caso de FileGrowth) finalmente as debera
quedar.
P g i n a | 15
de
la
base de
datos
model
el
crecimiento
ser
Importante
P g i n a | 16
2
En la pestaa General escribimos el nombre del respaldo, en este caso
DB_Ventas_Backup y un tipo de copia completa.
P g i n a | 17
P g i n a | 18
Proceso de Recuperacin
Hacemos clic en Base de datos del panel principal de la izquierda. Damos clic
en Restaurar base de datos.
Luego elegimos desde donde vamos a restaurar, para ello hacer clic en el
botn de opcin Desde Dispositivo para despus hacer clic en el botn de
puntos suspensivos para buscar el archivo .bak
P g i n a | 19
P g i n a | 20
Base de
Datos
restaurada
P g i n a | 21
PRCTICA DESARROLLADA
TEMA:
Creacin de una Base de Datos
A continuacin se van a explicar los pasos a realizar para construir y utilizar
una base de datos sencilla.
Paso 1. Abrir el SQL Server Management Studio y conectarse como
administrador
P g i n a | 22
P g i n a | 23
P g i n a | 24
Botn
Actualiza
r
Base de
Datos
Creada
P g i n a | 25
AUTOEVALUACIN UNIDAD 01
1.
P g i n a | 26
3.
Confrontar.
COLOCAR LA
CRITERIOS
LETRA QUE
DEFINICIONES
CORRESPONDE
A. BASE DE
DATOS
bases
de
datos
relacionales
(SGBD) de Microsoft
Coleccin de informacin organizada
de datos, relativa a un problema
concreto, que puede ser compartida
B. SQL Server
2008
por
un
conjunto
usuarios/aplicaciones;
de
cuyo
informacin
relacionada
D. DML
E. SISTEMA
GESTOR DE
BASE DE
DATOSD
F. BACKUP
ellas.
Permite el cambio de nombre de
cualquier objeto.
P g i n a | 27
4.
Caso Prctico.
Una base de datos para una pequea empresa debe de contener
informacin acerca de los clientes, artculos, fabricantes y pedidos. Hasta
el momento se registran los siguientes datos en documentos varios:
Para cada Pedido: Cada Pedido tiene una cabecera y el cuerpo del
pedido. La cabecera est formada por el nmero de pedido,
nmero del cliente, direccin de envo y fecha del pedido. El cuerpo
del pedido son varias lneas, en cada lnea se especifican el nmero
del artculo pedido y la cantidad.
P g i n a | 28
UNIDAD
ACTIVIDAD
CASO 01:
Crear una base de datos DB_Reservacones:
1. Utilizar cdigo SQL y almacenarlo en la siguiente Ruta.
F:\Computo_III\Base de Datos\Reservaciones
2. Crear su Backup para su Base de Datos y guardarlo en la ruta:
F:\Computo_III\Base de Datos\Reservaciones\Backup
CASO 2
Crear una base de datos DB_Asignaciones:
1. Utilizar la manera grfica y almacenarlo en la siguiente Ruta.
F:\Computo_III\Base de Datos\Asignaciones
2. Crear su Backup para su Base de Datos y guardarlo en la ruta:
F:\Computo_III\Base de Datos\ Asignaciones \Backup
P g i n a | 29
UNIDAD
GUIA DIDCTICA
Fundamentacin
El propsito de este mdulo es introducir al estudiante en el Diseo e
Implementacin de Base de Datos como una herramienta de imprescindible
ayuda en la construccin de un sistema de informacin. Proporcionando al
participante un conjunto de tcnicas de
operacionales, y
identificacin de requerimientos
P g i n a | 30
ESTRUCTURA DE CONTENIDOS.
1. OBJETOS DE TABLAS
2. Campos. Clave principal. Ventajas.
3. Utilizando el diagrama de tablas.
4.
Transact-SQL
Actividades
Las actividades a desarrollar en la Unidad son:
Actividad 01:
o
Crea
tablas
con
sus
respectivas
columnas
asignndoles
su
Actividad 02:
o
Realiza
estas
actividades
teniendo
en
cuenta
la
Integridad
Referencial.
P g i n a | 31
Estrategias Metodolgicas
Para desarrollar la presente unidad llevaremos a cabo
dos tipos de
actividades:
1. Lectura Inicial de Contenidos, la realizaremos de manera ordenada,
presenta los aspectos tericos. Si se presenta alguna Duda se puede
realizar lecturas sobre puntos especficos en la seccin de Material
Complementario.
2. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de
Actividades, donde constan: las consignas o indicaciones.
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de
comunicacin entre el docente y los estudiantes, para efectos de
mensajera interna, foros, evaluaciones virtuales, acciones de tutora
acadmica y comunicacin de resultados de evaluacin de los aprendizajes.
Evaluacin
En esta Unidad Ud., ser evaluado en:
1. Desarrollar un caso prctico de crear una Base de Datos para un Empresa
determinada
identificando
sus
tablas
asignndole
sus
columnas
P g i n a | 32
Material Complementario
El material complementario se suministra con la finalidad de ampliar la lectura
de algunos textos y profundizar conocimientos.
P g i n a | 33
OBJETOS DE TABLAS
UNIDAD
ESTRUCTURA DE CONTENIDOS.
1. OBJETOS DE TABLAS
2. Campos. Clave principal. Ventajas.
3. Utilizando el diagrama de tablas.
4.
Transact-SQL
P g i n a | 34
Introduccin
Estimado participante:
En esta Unidad aprender a identificar las tablas con sus respetivas columnas o
atributos asignndole su respectivo tipo de datos a cada columna, haciendo uso
de las herramientas de SQL Server 2008, as como relacionando las tablas
identificando las llaves primarias y llaves foranes, creando un Diagrama de base
de Datos.
La importancia de esta Unidad radica en crear la estructura de una base de datos
para un proceso de negocio, ingresar, modificar y eliminar registros de una Base
de Datos a travs de Microsoft SQL Server 2008.
Iniciaremos con los conceptos de tablas, columnas, tipos de datos, primary key,
foreign kery, llave candidata el cual le permitir a Ud. construir correctamente
una Base de Datos Le deseo xitos en el desarrollo de esta Unidad.
Importante:
Si deseas ahondar
ms sobre
P g i n a | 35
OBJETOS DE TABLAS
P g i n a | 36
P g i n a | 37
Distrito *
Distrito
Nombre_Distrito
Cliente *
codcli
Detalle
Articulo
nrofac
codart
codart
desart
candet
preart
impdet
stoart
nomcli
apecli
Cargo
Distrito
dircli
ruccli
Empleado
codcar
descar
codemp
nomemp
apeemp
diremp
Factura
nrofac
fechfac
subtot
totigv
sexemp
telemp
codcar
activo
observacion
Usuario
IDusuario
Usuario
Clave
Nombre
Apellido
totfac
codcli
codemp
estado
P g i n a | 38
Selecciona las tablas que participaran en el diagrama (en este caso todas)
y dale Agregar, luego cuando estn agregadas slo haz clic en el botn
Cerrar y vers que las tablas estn en pantalla, puedes acomodarlas con
el mouse si lo deseas.
P g i n a | 39
P g i n a | 40
Crear la relacin
Asignaremos los Foreign Key (Llave Fornea) esta establecer la relacin
entre las tablas, para esto solo arrastramos desde el smbolo de la
Primary Key en la tabla Distrito sin soltar hasta la tabla Cliente, donde nos
pedir que especifiquemos el campo a relacionar y elegimos Cod_Distrito
y le damos Aceptar dos veces. Como podemos ver elegimos Cod_Distrito
que es igual al campo de la Tabla Distrito, esto se defini al inicio
colocndolo de manera premeditada para que ahora sirva finalmente de
campo a relacionar, estos campos de relacin pueden tener diferentes
nombres pero es importante que sea el mismo Tipo De Dato sino la
relacin producir un error.
P g i n a | 41
P g i n a | 42
Distrito *
Distrito
Nombre_Distrito
Cliente *
codcli
Detalle
Articulo
nrofac
codart
codart
desart
candet
preart
impdet
stoart
nomcli
apecli
Cargo
Distrito
dircli
Empleado
ruccli
codcar
descar
codemp
nomemp
apeemp
diremp
sexemp
Factura
telemp
nrofac
codcar
fechfac
activo
subtot
observacion
totigv
Usuario
IDusuario
Usuario
Clave
Nombre
Apellido
totfac
codcli
codemp
estado
Transact-SQL:
Ahora vamos a crear las tablas Hotel, Habitacin y Cliente para eso
escribimos y ejecutamos lo siguiente:
P g i n a | 43
P g i n a | 44
Ahora vamos a agregarle a las tablas Habitacin y Cliente los campos que
servirn de referencia para las Foreign Keys (tambin son not null)
mediante el comando ALTER TABLE ADD
ALTER TABLE HABITACION ADD IdHotel char (5) not null
ALTER TABLE CLIENTE ADD Num_Habitacion int not null
TABLE
CLIENTE
ADD
FOREIGN
KEY
(Num_Habitacion)
REFERENCES HABITACION
P g i n a | 45
P g i n a | 46
PRCTICA DESARROLLADA
TEMA:
Creacin de tablas (Continuamos con el ejercicio desarrollado en la I Unidad)
Paso 1. Restauramos nuestra Base de Datos creada en la I Unidad (realizar el
procedimiento de restauracin de una Base de datos)
P g i n a | 47
P g i n a | 48
Seleccionar el
cdigo y CLIC
P g i n a | 49
GO
INSERT INTO LOCALES (CODIGO, DNI, UBICACIN, SUPERFICIE)
VALUES ('L-234', '132345674','San Martin', 100)
GO
SELECT CODIGO, UBICACIN, NOMBRE, DIRECCION
FROM LOCALES, PROPIETARIOS
WHERE LOCALES.DNI = PROPIETARIOS.DNI AND
SUPERFICIE < 200
GO
UPDATE PROPIETARIOS SET DIRECCION ='Alta 87'
WHERE DNI = '13234567R'
Go
Paso 5. Observar las caractersticas de los objetos creados en la BD a travs del
entorno grfico.
P g i n a | 50
CLIC
P g i n a | 51
P g i n a | 52
CLIC EN LA X PARA
GUARDAR EL
DIAGRAMA
P g i n a | 53
AUTOEVALUACIN UNIDAD 02
1.
2.
las
instrucciones
del
Lenguaje
SQL
que
permiten
la
manipulacin de datos
_______________________________________________________
_______________________________________________________
h. Qu es una transaccin? Cundo se deben utilizar?
_______________________________________________________
_______________________________________________________
P g i n a | 54
3.
Confrontar.
COLOCAR LA
CRITERIOS
LETRA QUE
DEFINICIONES
CORRESPONDE
Conjunto
A. CLAVE AJENA
de
identifican
atributos
que
unvoca
C. LLAVE
PRIMARIA
Representacin bidimensional de
una relacin que contiene filas
(tuplas) y columnas (atributos
valores
especiales
que
dos
llaves
primarias
iguales
E. INT
Conjunto
de
campos
que
contienen informacin.
F. SISTEMA
GESTOR DE
BASE DE
DATOSD
G. CAMPO
almacenar
valores
enteros
P g i n a | 55
4.
Caso Prctico.
Complete los esquemas con los atributos, relaciones y restricciones
correspondientes a los problemas de informacin que se propone.
P g i n a | 56
UNIDAD
ACTIVIDAD DIDCTICA
De alta una reserva de la habitacin 101 para el cliente 12345 para las
noches del 2 al 4 de julio de 2009. El cdigo de la reserva es
autonumrico.
P g i n a | 57
Actualizaciones
Eliminar
CREATE INDEX
Cree
un
ndice
sobre
el
atributo
numHabitacion
de
la
tabla
ALTER TABLE
TABLA y FK
P g i n a | 58
CASO 2
Sean las tablas siguientes:
TRABAJADOR (ID_T, NOMBRE, TARIFA, OFICIO, ID_SUPV)
Cada fila representa un trabajador, identificado por su ID_T. Su nombre es
NOMBRE; su tarifa por hora, en nuevo soles; su oficio y el identificador de
su supervisor.
EDIFICIO (ID_E, DIR, TIPO, CATEGORIA)
Cada fila representa un edificio, que se identifica por su ID_E. Se guarda
su direccin; el tipo de edificio y su categora.
ASIGNACION (ID_T, ID_E, FECHA_INICIO, NUM_DIAS)
Una fila por cada vez que un trabajador es asignado a un edificio.
NOMBRE
TARIFA
1235
LUIS SALAS
12.5
ELECTRICISTA
1311
1311
JUAN DIAZ
15.5
ELECTRICISTA
1311
1412
CARLOS LU
13.75
FONTANERO
1520
1520
ALEX LOPEZ
11.75
FONTANERO
1520
2920
ERICK RUBIO
ALBAIL
2920
3001
SAM VELEZ
8.2
CARPINTERO
3231
3231
JOSE MORI
17.4
CARPINTERO
3231
10.0
OFICIO
ID_SUPV
EDIFICIO
ID_E
111
210
DIR
1213
ASPEN
1011
BIRCH
TIPO
CATEGORIA
OFICINA
OFICINA
312
123 ELM
OFICINA
435
456 MAPLE
COMERCIO
ALMACEN
RESIDENCIA
460
515
1415
BEACH
789 OAK
P g i n a | 59
ASIGNACION
ID_T
ID_E
FECHA_INICIO
NUM_DIAS
1235
312
2001-10-10
1235
515
2001-10-17
22
1311
435
2001-10-08
12
1311
460
2001-10-23
24
1412
111
2001-12-01
1412
210
2001-11-15
12
1412
312
2001-10-01
10
1412
435
2001-10-15
15
1412
460
2001-10-08
18
1412
515
2001-11-05
1520
312
2001-10-30
17
1520
515
2001-10-09
14
2920
210
2001-11-10
15
2920
435
2001-10-28
10
2920
460
2001-10-05
18
3001
111
2001-10-08
14
3001
210
2001-10-27
14
3231
111
2001-10-10
3231
312
2001-10-24
20
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 60
UNIDAD
GUIA DIDCTICA
Fundamentacin
El propsito de este mdulo consiste en analizar un conjunto de reglas
formales que nos permiten confeccionar un diseo lgico, o asegurar que un
diseo lgico cumpla una serie de propiedades, corrigiendo la estructura de
los datos de las tablas y evitando una serie de problemas el cual se debe de
ajustar al sistema de gestin de base de datos a utilizar. Proporcionando al
participante tcnicas para una correcta normalizacin de los datos. Incluyendo
el desarrollo de casos prcticos, la cual ser guiada por el docente a cargo.
Capacidad
El participante al final de esta unidad estar en capacidad de:
CONTENIDOS
NORMALIZACION Y RELACION
P g i n a | 61
Actividades
Las actividades a desarrollar en la Unidad son:
Actividad 01:
o
Actividad 02:
o
Estrategias Metodolgicas
Para desarrollar la presente unidad llevaremos a cabo
dos tipos de
actividades:
3. Lectura Inicial de Contenidos, la realizaremos de manera ordenada,
presenta los aspectos tericos. Si se presenta alguna Duda se puede
realizar lecturas sobre puntos especficos en la seccin de Material
Complementario.
4. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de
Actividades, donde constan: las consignas o indicaciones.
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de
comunicacin entre el docente y los estudiantes, para efectos de
mensajera interna, foros, evaluaciones virtuales, acciones de tutora
acadmica y comunicacin de resultados de evaluacin de los aprendizajes.
P g i n a | 62
Evaluacin
En esta Unidad Ud., ser evaluado en:
3. Desarrollar casos prcticos
Material Complementario
El material complementario se suministra con la finalidad
de ampliar la
P g i n a | 63
UNIDAD
NORMALIZACION Y RELACION
NORMALIZACION
Formas normales:
Primera forma normal
Segunda forma normal
Tercera forma normal y
Cuarta forma normal.
Relaciones por diagrama
P g i n a | 64
Introduccin
Estimado participante:
Importante:
P g i n a | 65
1 FORMAS NORMALES
NORMALIZACIN
Una normalizacin razonable permite mejorar el rendimiento. Cuando se
dispone de ndices tiles, el optimizador de consultas de SQL Server es una
herramienta adecuada para la seleccin rpida y eficaz de combinaciones
entre tablas. Existen tres formas normales para el proceso de normalizacin.
A.- Primera Forma Normal (1FN)
La definicin formal sera:
Una relacin est en 1FN si cumple la propiedad de que sus
dominios no tengan elementos que, a su vez sean conjuntos
La esencia de la 1FN, es que un registro no incluye ningn grupo repetitivo
CASO: Diseo de una base de datos para la automatizacin del control de los
pedidos de productos. Se cuenta con el siguiente documento para
solicitar los productos:
Primer Paso
Se efecta un listado de datos
NumPed: Numero del Pedido
FechaPed: Fecha en que se realiza el Pedido
NUmProv: Numero del Proveedor.
NomProv: Nombre del Proveedor.
DirProv: Direccin del Proveedor.
NumProd: Numero del Producto.
DescProd: Descripcin del Producto.
PreUniProd: Precio Unitario del Producto.
CantPed: Cantidad de unidades del Producto que se solicita.
P g i n a | 66
(NumPed,
NumProd,
DescProd,
PreUniProd,
CantPed,SubtlProd)
Una relacin para los campos que sean nicos, es decir, se dejan en la
RELACION ORIGINAL solo los atributos que no son repetitivos:
RELACIN ORIGINAL
PEDIDO
NUMPED
147852
FECPED
10/02/2012
NUMPROV
741
NOMPROV
JOSE PEREZ
DIRPROV
LOS PINOS
MTOTTTLPED
1200.00
P g i n a | 67
Una relacin para los grupos repetitivos, es decir, se extraen en una NUEVA
RELACION los atributos repetitivos, adems de la clave primaria de la
relacin original:
RELACIN ORIGINAL
PED_PROD
NUMPED
NUMPROV
DESCPROD
PREUNIPROV
CANTPED
SUBTPROD
147852
12
LAPICERO
1.00
20
20.00
147852
25
RESALTADOR
2.50
10
25.00
147852
10
CORRECTOR
2.70
10
27.00
esto quiere
SNRO
CANT
S1
P2
S2
P2
S3
P3
S3
P3
S3
P2
P g i n a | 68
FECPED
NUMPROV
NOMPROV
NUMPED
NUMPROV
DESCPROD
DIRPROV
MTOTTTLPED
PED_PROD
PREUNIPROV
CANTPED
SUBTPROD
Una relacin que est en 1FN y que no tenga claves compuestas, ya est en
2FN
Consideremos la relacin de clave compuesta:
PED_PROD
NUMPED
NUMPROV
DESCPROD
PREUNIPROV
CANTPED
SUBTPROD
NUMPROD
CANTPED
SUBTPROD
Se crea otra relacin para los atributos que dependan de cada parte
(subconjunto) de la clave
PRODUCTO
NUMPROD
DESCPROD
PREUNIPROD
PEDIDO
NUMPED
FECPED
NUMPROV
NOMPROV
DIRPROV
MTOTTTLPED
PED_PROD
NUMPED
NUMPROD
CANTPED
DESCPROD
PREUNIPROD
SUBTPROD
PRODUCTO
NUMPROD
P g i n a | 69
FECPED
NUMPROV
NOMPROV
DIRPROV
MTOTTTLPED
FECPED
NUMPROV
MTOTTTLPED
FECPED
NUMPROV
NOMPROV
DIRPROV
MTOTTTLPED
Surgira:
PROVEEDOR
NUMPROV
NOMPROV
DIRPROV
FECPED
NUMPROV
MTOTTTLPED
PED_PROD
P g i n a | 70
NUMPED
NUMPROD
CANTPED
DESCPROD
PREUNIPROD
SUBTPROD
PRODUCTO
NUMPROD
PROVEEDOR
NUMPROV
NOMPROV
DIRPROV
NOTA:
La teora de la normalizacin nos ayuda a estructurar mejor las relaciones,
evitando posibles redundancias y anomalas, y a representar mejor nuestro
mundo real en un esquema relacional.
P g i n a | 71
PRACTICA DESARROLLADA
Aplicaremos las reglas de normalizacin al siguiente caso.
Consideremos los datos de la siguiente tabla.
Ordenes (id_orden, fecha, id_cliente, nom_cliente, estado, num_art,
nom_art, cant, precio)
Ordenes
Id_orden
2301
2301
2301
2302
2303
2303
Fecha
23/02/11
23/02/11
23/02/11
25/02/11
27/02/11
27/02/11
Id_cliente
101
101
101
107
110
110
Nom_cliente
Martin
Martin
Martin
Herman
Pedro
Pedro
Estado
Caracas
Caracas
Caracas
Coro
Maracay
Maracay
Num_art
3786
4011
9132
5794
4011
3141
nom_art
Red
Raqueta
Paq-3
Paq-6
Raqueta
Funda
cant
3
6
8
4
2
2
Precio
35,00
65,00
4,75
5,00
65,00
10,00
Fecha
23/02/11
25/02/11
27/02/11
Articulos_ordenes
Id_orden Num_art
2301
3786
2301
4011
2301
9132
2302
5794
2303
4011
2303
3141
Id_cliente
101
107
110
Nom_cliente
Martin
Herman
Pedro
nom_art
Red
Raqueta
Paq-3
Paq-6
Raqueta
Funda
cant
3
6
8
4
2
2
Estado
Caracas
Coro
Maracay
Precio
35,00
65,00
4,75
5,00
65,00
10,00
P g i n a | 72
cant
3
6
8
4
2
2
nom_art
Red
Raqueta
Paq-3
Paq-6
Funda
Precio
35,00
65,00
4,75
5,00
10,00
P g i n a | 73
Fecha
23/02/11
25/02/11
27/02/11
Id_cliente
101
107
110
Nom_cliente
Martin
Herman
Pedro
Estado
Caracas
Coro
Maracay
P g i n a | 74
AUTOEVALUACIN UNIDAD 03
5.
P g i n a | 75
7.
CASO PRCTICO.
COMPROBANTE DE COMPRA VENTA
La empresa LA PODEROSA lo ha contratado como el Ingeniero
Encargado para sistematizar la facturacin. En la siguiente FACTURA DE
COMPRA VENTA, usted debe analizar toda la informacin disponible y
aplique el proceso de normalizacin, hasta llegar a la Tercera Forma
Normal.
Se pide realizar la respectiva justificacin detallada de cada uno de los
pasos que conduzcan al resultado final.
Factura
(NUM_FAC,
RIF_CLIENTE,
FECHA_FAC,
CIUDAD_CLIENTE,
NOM_CLIENTE,
DIR_CLIENTE,
TELEF_CLIENTE,
CATEGORIA,
P g i n a | 76
UNIDAD
ACTIVIDAD
CASO 01:
del
(codLibro,
Titulo,
Autor,
Editorial,
NombreLector,
Codlibro
Titulo
Autor
Editorial
Nombrelector
Fechadevoluc
1001
Introduccin a la
Programacin
Visual Basic .Net
Murray Spiegel
McGraw Hill
15/08/2012
E. Petroustsos
Anaya
1005
Estadstica
Aplicada
Murray Spiegel
McGraw Hill
Prez Gmez,
Juan
Ros Tern,
Ana
Roca, Ren
1006
Manual de SQL
Server 2008
Fundam. de
Base de Datos
Nancy
Greenberg
Ramalho
Microsoft
Corp.
McGraw
Hill
Garca, Luis
20/08/2012
Prez
Gmez, Juan
18/08/2012
1004
1007
17/08/2012
16/08/2012
P g i n a | 77
NOMBRE
33456456
44556689
99771122
P. Martn
L. Sanz
D. Daz
COD_TIENDA
100A
100A
100A
33456456
P. Martn
200B
11223344
E. Lpez
300C
99887766
F. Monte
200B
11223344
E. Lpez
300C
99887766
44556689
F. Monte
L. Sanz
100A
100A
33456456
P. Martn
200B
DIRECCIN _TIENDA
TURNO
FECHA
M
M
T
2/9/12
2/9/12
2/9/12
3/9/12
3/9/12
3/9/12
4/9/12
M
T
4/9/12
4/9/12
5/9/12
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 78
UNIDAD
GUIA DIDCTICA
Fundamentacin
As como resolver
P g i n a | 79
Actividades
Las actividades a desarrollar en la Unidad son:
Actividad 01:
o
Realiza
estas
actividades
teniendo
en
cuenta
la
Integridad
Referencial.
Actividad 02:
o
Estrategias Metodolgicas
Para desarrollar la presente unidad llevaremos a cabo
dos tipos de
actividades:
5. Lectura Inicial de Contenidos, la realizaremos de manera ordenada,
presenta los aspectos tericos. Si se presenta alguna Duda se puede
realizar lecturas sobre puntos especficos en la seccin de Material
Complementario.
6. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de
Actividades, donde constan: las consignas o indicaciones.
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de
comunicacin entre el docente y los estudiantes, para efectos de
mensajera interna, foros, evaluaciones virtuales, acciones de tutora
acadmica y comunicacin de resultados de evaluacin de los aprendizajes.
P g i n a | 80
Evaluacin
En esta Unidad Ud., ser evaluado en:
4. Creacin de una Base de Datos, crear su backup y almacenarla en un
dispositivo fsico y como restaurarla su Base de Datos.
5. Desarrollar un caso prctico de crear una Base de Datos para un Empresa
determinada identificando sus tablas con sus respectivas columnas y crear
su diagrama.
6. Realizar consultas simples y con criterios, utilizando los operadores
adecuados, haciendo uso del diseador grafico de consultas y scripts.
Es importante que Ud., este en constante comunicacin con su
docente Tutor, ya sea para informar de dificultades, avances de
las tareas, etc. Recuerde que ser calificado de acuerdo a las
rbricas de evaluacin de cada actividad; por ejemplo: se le evaluar por la
entrega oportuna de sus actividades.
Material Complementario
El material complementario se suministra con la finalidad
de ampliar la
Navathe.
(1997)
Sistemas
de
Bases
de
Datos.
Conceptos
P g i n a | 81
UNIDAD
ESTRUCTURA DE CONTENIDOS
P g i n a | 82
Introduccin
Estimado participante:
Importante:
P g i n a | 83
la
Base de
Datos
con
Luego crear una base de datos simple y una nueva tabla para realizar nuestro
ejemplo, entonces realizamos lo siguiente:
Abrir una nueva consulta, solo debemos hacer clic arriba en el botn
Nueva Consulta
P g i n a | 84
P g i n a | 85
WITH
( FIELDTERMINATOR = ',', --separa campos
ROWTERMINATOR = '\n' ) --separa filas
GO
Ejecutamos la consulta y vemos que los cambios se han realizado, podemos
comprobar si los datos estn cargados mediante un nuevo SELECT
--Muestra la tabla
SELECT * FROM TIENDA
ACTUALIZACIN DE DATOS
P g i n a | 86
en
tu
Explorador de
Objetos, ahora
si
vamos a
hacer las
modificaciones:
Cambiar el nombre de una tabla
--CAMBIARLE EL NOMBRE A UNA TABLA
--En el siguiente ejemplo se cambia el nombre de la tabla ALUMNO por
ESTUDIANTE.
EXEC sp_rename 'ALUMNO', 'ESTUDIANTE';
GO
Cambiar el nombre a una columna
--CAMBIARLE EL NOMBRE A UNA COLUMNA
--En el siguiente ejemplo se cambia el nombre de la columna NOMBRE por
NOMESTUDIANTE
EXEC sp_rename 'ESTUDIANTE.Nombre', 'NomEstudiante';
GO
P g i n a | 87
Declaracin INSERT
Se usa para insertar una fila de datos en una tabla.
Use BDVENTAS
INSERT INTO Clientes
( clientes_id, clientes_nombres, clientes_telefono, clientes_direccion)
VALUES ( 001,Cesar Delgado,52-5559, Av. Lima Nro 678)
GO
Declaracin SELECT
Se usa para recuperar los datos de una tabla o tablas.
Use BDVENTAS
SELECT clientes_id,Clientes_nombres
FROM Clientes
WHERE Clientes_Id = 001
Declaracin UPDATE
Se usa para poner al da o cambiar un valor o valores seguidos o filas de una
tabla.
Use BDVENTAS
UPDATE Clientes
SET clientes_direccion=Av. Lima Nro 945
WHERE clientes_id = 001
GO
Declaracin DELETE
Se usa para eliminar una fila o filas de datos de una tabla.
Use BDVENTAS
DELETE FROM Clientes
WHERE Clientes_id = 001
GO
P g i n a | 88
CONSULTAS SIMPLES
P g i n a | 89
f.
Panel de
Diagrama
Panel de
Criterios
Panel SQL
P g i n a | 90
PRACTICA DESARROLLADA
Ejecute el script de la BD Hotel utilizando el MS SQLServer Management
Studio.
PAISES
SERVICIOS
Pas
Servicio
TIPO_HABITACION
Nombre_Servicio
Tipo_Habitacion
Descripcin
Camas
Precio
Exterior
Fecha
Salon
TIPO_SERVICIO
Terraza
Nombre_Servicio
PRECI_HABITYACION
IdPrecio
Precio
Temporada
Tipo_Habitacion
TEMPORADA
Temporada
FechaInicio
FechaFinal
Tipo
HABITACION
Num_Habitacion
Tipo_Habitacion
CLIENTE
Cliente
Pais
Nombres
Apell_Pat
Apell_Mat
Direccion
Sexo
Telefono
P g i n a | 91
Observaciones
RESERVA
Reserva
Fecha_reserva
Fecha_Salida
Num_Habitacion
Cliente
GASTOS
Gastos
Reserva
Servicio
Fecha
Cantidad
Precio
P g i n a | 92
P g i n a | 93
where '24/03/2012'
between fechaentrada and fechasalida
8) Cree una consulta que devuelva los clientes procedentes de Espaa y
Francia.
select * from clientes
where pais in ('Espaa','Italia')
9) Crea una consulta que devuelva los clientesque tengan alguna observacin
registrada.
select * from clientes
where observaciones is not null
10) Crea una vista que devuelva los servicios cuyo precio supere los 25 Nuevo
soles
SELECT *
FROM servicios
WHERE precio>25
11) Mostrar todos los clientes del sexo Femenino
SELECT *
FROM cliente
WHERE sexo=Femenino
12) Realizar una consulta que Muestre todos los gastos realizados el
30/08/2012
SELECT *
FROM Gastos
WHERE Fecha=30/08/2012
P g i n a | 94
AUTOEVALUACIN UNIDAD 04
8.
LETRA QUE
DEFINICIONES
CORRESPONDE
Utilizado
A. INSERT
valores
para
en
modificar
los
campos
registros
los
y
segn
especificaciones
Se
B. UPDATE
utiliza
para
eliminar
C. DELETE
de
manipulacin
operaciones
de
datos
de
que
D. SELECT
para
consultar
E. TRANSACCION
datos
en
una
nica
operacin
F. CONSISTENCIA
9.
Caso Prctico.
Crear la BD de Gestin Acadmica. Este corresponde a la gestin
acadmica de un centro de estudios (instituto con grupos diurnos y
nocturnos, o la universidad con titulaciones que se imparten en horarios
P g i n a | 95
P g i n a | 96
UNIDAD
ACTIVIDAD DIDCTICA
CASO 01:
Realice el siguiente diseo utilizando el MS SQL Server Management Studio.
Realizarlo de manera grafica y utilizando cdigo:
De de alta una reserva de la habitacin 101 para el cliente 12345 para las
noches del 2 al 4 de julio de 2009. El cdigo de la reserva es
autonumrico.
Actualizaciones
P g i n a | 97
Eliminar
Consultas sencillas
Cree una consulta que devuelva los clientes cuyo apellido incluya la slaba
le ordenados por su identificador.
Cree una consulta que devuelva los clientes, ordenados por su primer
apellido, que tengan alguna observacin anotada.
Cree una consulta que devuelva los servicios cuyo precio supere los 5
ordenados por su cdigo de servicio.
ALTER TABLE
TABLA y FK
P g i n a | 98
CASO 2
Sean las tablas siguientes:
TRABAJADOR (ID_T, NOMBRE, TARIFA, OFICIO, ID_SUPV)
Cada fila representa un trabajador, identificado por su ID_T. Su nombre es
NOMBRE; su tarifa por hora, en nuevo soles; su oficio y el identificador de
su supervisor.
EDIFICIO (ID_E, DIR, TIPO, CATEGORIA)
Cada fila representa un edificio, que se identifica por su ID_E. Se guarda
su direccin; el tipo de edificio y su categora.
ASIGNACION (ID_T, ID_E, FECHA_INICIO, NUM_DIAS)
Una fila por cada vez que un trabajador es asignado a un edificio.
NOMBRE
TARIFA
1235
LUIS SALAS
12.5
ELECTRICISTA
1311
1311
JUAN DIAZ
15.5
ELECTRICISTA
1311
1412
CARLOS LU
13.75
FONTANERO
1520
1520
ALEX LOPEZ
11.75
FONTANERO
1520
2920
ERICK RUBIO
ALBAIL
2920
3001
SAM VELEZ
8.2
CARPINTERO
3231
3231
JOSE MORI
17.4
CARPINTERO
3231
10.0
OFICIO
ID_SUPV
EDIFICIO
ID_E
111
210
DIR
1213
ASPEN
1011
BIRCH
TIPO
CATEGORIA
OFICINA
OFICINA
312
123 ELM
OFICINA
435
456 MAPLE
COMERCIO
460
1415
ALMACEN
P g i n a | 99
BEACH
515
789 OAK
RESIDENCIA
ASIGNACION
ID_T
ID_E
FECHA_INICIO
1235
312
2001-10-10
1235
515
2001-10-17
22
1311
435
2001-10-08
12
1311
460
2001-10-23
24
1412
111
2001-12-01
1412
210
2001-11-15
12
1412
312
2001-10-01
10
1412
435
2001-10-15
15
1412
460
2001-10-08
18
1412
515
2001-11-05
1520
312
2001-10-30
17
1520
515
2001-10-09
14
2920
210
2001-11-10
15
2920
435
2001-10-28
10
2920
460
2001-10-05
18
3001
111
2001-10-08
14
3001
210
2001-10-27
14
3231
111
2001-10-10
3231
312
2001-10-24
20
NUM_DIAS
P g i n a | 100
8. Para cada supervisor, Cul es la tarifa por hora ms alta que se paga
a un trabajador que informa a ese SUPERVISOR?
9. Para cada supervisor que supervisa a ms de un trabajador, cul es la
tarifa ms alta que se paga a un trabajador que informa a ese
SUPERVISOR?
10. Incrementar la tarifa a los trabajadores cuyo oficio son FONTANERO.
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 101
UNIDAD
GUIA DIDCTICA
Fundamentacin
El propsito de este modulo es ensearle al resolver consultas complejas
utilizando el diseador de consultas o cdigo SQL.
Capacidad
El participante al final de esta unidad estar en capacidad de:
Contenidos
1. Consultas con Criterios
2. Consultas Mediante Cdigo
3. Criterios de bsqueda anidada. Operadores lgicos.
4. Campos calculados.
5. Agrupacin.
P g i n a | 102
Actividades
Las actividades a desarrollar en la Unidad son:
Actividad 05:
o
Estrategias Metodolgicas
Para desarrollar la presente unidad llevaremos a cabo
dos tipos de
actividades:
7. Lectura Inicial de Contenidos, la realizaremos de manera ordenada,
presenta los aspectos tericos. Si se presenta alguna Duda se puede
realizar lecturas sobre puntos especficos en la seccin de Material
Complementario.
8. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de
Actividades, donde constan: las consignas o indicaciones.
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de
comunicacin entre el docente y los estudiantes, para efectos de
mensajera interna, foros, evaluaciones virtuales, acciones de tutora
acadmica y comunicacin de resultados de evaluacin de los aprendizajes.
P g i n a | 103
Evaluacin
En esta Unidad Ud., ser evaluado en:
7. Realizar consultas con criterios, utilizando los operadores adecuados,
haciendo uso del diseador grafico de consultas y scripts.
Es importante que Ud., este en constante comunicacin con su
docente Tutor, ya sea para informar de dificultades, avances de
las tareas, etc. Recuerde que ser calificado de acuerdo a las
rbricas de evaluacin de cada actividad; por ejemplo: se le evaluar por la
entrega oportuna de sus actividades.
Material Complementario
El material complementario se suministra con la finalidad de ampliar la lectura
de algunos textos y profundizar conocimientos.
Elmasri
Navathe.
(1997)
Sistemas
de
Bases
de
Datos.
Conceptos
P g i n a | 104
UNIDAD
P g i n a | 105
Introduccin
Estimado participante:
Importante:
Si deseas ahondar ms sobre las nuevas caractersticas de Microsoft
SQL Server 2008, podrs encontrar material adicional en la seccin:
Material Complementario en un apartado llamado: SQL server 2008
r2 SQL Trasact SQL (Gabillaud, 2009)
P g i n a | 106
j.
P g i n a | 107
l.
Panel de
Diagrama
Panel de
Criterios
Panel SQL
resultados.
Use BDVENTAS
SELECT DISTINCT CIUDAD
FROM CLIENTES
GO
TOP n [PERCENT]: Devuelve la primera n filas del resultado. Si se especifica
PERCENT devolver el porcentaje.
Use BDVENTA
SELECT TOP 5 Ciudad
Use BDVENTA
FROM Cliente
GO
FROM Cliente
P g i n a | 108
GO
USE Pubs
SELECT
SELECT
NomCli,ApellCli,RucCli,DirCli
NomCli,ApellCli,RucCli,DirCli
FROM Cliente
FROM Cliente
ORDER BY ApellCli
4 CAMPOS CALCULADOS
FUNCIONES DE AGREGADO: Las funciones de agregado (SUM, AVG,
COUNT, MAX y MIN) generan valores de resumen en los conjuntos de
resultados de las consultas.
SUM([ALL | DISTINCT] expression)
MAX (expression)
MIN (expression)
P g i n a | 109
USE DBVenta
USE DBVenta
SELECT SUM(PreArt)
SELECT avg(PreArt)
FROM Articulo
FROM Articulo
USE DBVenta
USE DBVenta
SELECT MIN(PreArt)
FROM Articulo
FROM Articulo
5 AGRUPACIONES
GROUP BY (Agrupado Por): Divide una tabla en grupos. Los grupos pueden
consistir en nombres de columnas, resultados o columnas calculadas.
USE DBVENTA
SELECT DISTRITO,COUNT(CODCLI)
FROM CLIENTE
GROUP BY DISTRITO
LIKE (Coincidencia de Patrones): Determina si una cadena de caracteres
dada coincide o no con un determinado modelo. Un modelo puede incluir
caracteres normales y caracteres comodines. Durante la coincidencia de
patrones, los caracteres regulares deben coincidir exactamente con los
caracteres especificados en la cadena de caracteres.
LIKE (Coincidencia de Patrones)
Comodn
Significado
P g i n a | 110
SELECT NomCli,ApellCli,RucCli,DirCli
FROM Cliente
WHERE ApellCli LIKE 'G%'
--USE DBVENTA
SELECT NomCli,ApellCli,RucCli,DirCli
FROM Cliente
WHERE ApellCli LIKE '%T'
--USE DBVENTA
SELECT NomCli,ApellCli,RucCli,DirCli
FROM Cliente
WHERE ApellCli LIKE '_ABA'
P g i n a | 111
PRACTICA DESARROLLADA
Restaurar la Base de Datos de la Unidad Anterior y ejecutar las siguientes
scripts.
Crea una vista que devuelva los clientes cuyo apellido incluya la slaba le
ordenados por su identificador.
select * from clientes where
apellido1 like '%le%'
order by apellido1
Crea una vista que devuelva los clientes, ordenados por su primer apellido,
que tengan alguna observacin anotada.
select * from clientes where observaciones is not null
order by apellido1
Crea una vista que devuelva el n de clientes por nacionalidad.
select pais,COUNT( identificacion) AS NUMERO
FROM CLIENTES GROUP BY pais
Crea una vista que devuelva el n de habitaciones por categora de
habitacin.
select count(*) , tipo_habitacion,camas, exterior
from habitaciones h, tipo_habitacion t
where h.tipo_habitacion=t.categoria
group by tipo_habitacion,camas,exterior
Cree una consulta que devuelva el gasto en servicios realizado por cada
reserva.
SELECT gastos.idreserva, SUM(gastos.Cantidad * gastos.Precio) AS total
FROM gastos
GROUP BY gastos.idreserva
Cree una consulta que devuelva el precio del servicio ms caro y del ms
barato
select max(precio) maximo, min(precio) mnimo
from servicios
P g i n a | 112
go
P g i n a | 113
AUTOEVALUACIN UNIDAD 05
10.
Confrontar.
COLOCAR LA
CRITERIOS
LETRA QUE
DEFINICIONES
CORRESPONDE
Determina
A. MAX
si
una
cadena
de
B. MIN
C. DISTINCT
D. GROUP BY
los
ordenados
resultados
por
una
que
slo
ms
columna.
E. ORDER BY
Especifica
aparecer
filas
conjunto de
F. LIKE
G. AVG
11.
nicas
pueden
en
el
resultados.
Caso Prctico.
Crear la BD de Gestin Acadmica. Este corresponde a la gestin
acadmica de un centro de estudios (instituto con grupos diurnos y
nocturnos, o la universidad con titulaciones que se imparten en
horarios de maana o tarde), de forma que el alumno se matricula en
los cursos pero indicando en cul de los grupos definidos para la
misma.
Decidir los tipos de datos en funcin de la informacin que se tiene en
la BD suministrada.
P g i n a | 114
P g i n a | 115
UNIDAD
ACTIVIDAD
CASO 01:
Realice el siguiente diseo utilizando el MS SQL Server Management Studio.
Realizarlo de manera grafica y utilizando cdigo:
Cree una consulta que devuelva los distintos clientes que han utilizado el
servicio de comedor.
Cree una consulta que devuelva los precios de los distintos tipos de
habitacin por temporada.
Cree una consulta que devuelva todos los clientes, y de aquellos que han
realizado alguna reserva en marzo, indicar el n de reserva.
P g i n a | 116
Cree una consulta con los servicios que nunca han sido contratados (dos
versiones
EXISTS e IN).
Cree una consulta que devuelva los clientes con el mismo primer apellido.
Cree una consulta que devuelva el n de servicios que se ofrecen por tipo
de servicio. Restrinja la salida para aquellos tipos de servicio que ofrezcan
ms de un servicio.
Cree una consulta que devuelva el gasto en servicios realizado por cada
reserva.
Otras acciones
Cree una consulta que devuelva el precio del servicio ms caro y del ms
barato.
Crear una tabla temporal que recoja los clientes de Italia. Actualizar su
identificacin sumndole 10 y cambiando pas a Alemania. Insertar en la
tabla de clientes, estos clientes modificados.
CREATE INDEX
Cree
un
ndice
sobre
el
atributo
numHabitacion
de
la
tabla
P g i n a | 117
ALTER TABLE
TABLA y FK
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 118
UNIDAD
TALLER DE UNIDAD I Y
EXAMEN PARCIAL I
ESTRUCTURA DE CONTENIDOS
Taller de Unidad I
Examen Unidad I
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 119
TALLER I
1. Abrir SQL Server Management Studio
P g i n a | 120
P g i n a | 121
P g i n a | 122
P g i n a | 123
UNIDAD
GUIA DIDCTICA
07
Fundamentacin
Una de las mejores herramientas que tenemos para mejorar el rendimiento
de las consultas en las bases de datos son las vistas que son fciles de crear,
en esta unidad se
Crear
emplear
vistas
complejas
de
subconjunto,
agrupadas
CONTENIDOS
1. Vistas
2. Creacin por diseo y cdigo.
P g i n a | 124
Actividades
Caso: VENTAS:
1. Cree una vista que muestre los datos de todos los empleados que no
hayan emitido alguna boleta. Luego, efecte una consulta sobre dicha
vista, para mostrar el menor y el mayor ao de ingreso de dichos
empleado. Emplee etiquetas (alias de campo) para el encabezado del
listado de campo.
2. Cree una vista que muestre los datos de los productos vendidos en el
ao 2012. Luego, efecte una consulta a dicha vista para listar aquellos
productos cuya letra inicial de su descripcin se encuentra entre la A y la
F.
Cree una vista que muestre los datos de los productos vendidos. Luego,
mediante una consulta a dicha vista, muestre los productos cuya descripcin
empiezan con la letra P o contenga la cadena SA y que hayan sido vendidos
en el segundo trimestre del ao 2012.
Estrategias Metodolgicas
Para desarrollar la presente unidad llevaremos a cabo
dos tipos de
actividades:
9. Lectura Inicial de Contenidos, la realizaremos de manera ordenada,
presenta los aspectos tericos. Si se presenta alguna duda se puede
realizar lecturas sobre puntos especficos en la seccin de Material
Complementario.
10. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de
Actividades, donde constan: las consignas o indicaciones.
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de
comunicacin entre el docente y los estudiantes, para efectos de mensajera
interna, foros, evaluaciones virtuales, acciones de tutora acadmica y
comunicacin de resultados de evaluacin de los aprendizajes.
P g i n a | 125
Evaluacin
En esta Unidad Ud., ser evaluado en:
8. Creacin de Vista simples.
9. Desarrollar un caso prctico, la Base de Datos trata de informatizar el
proceso de compras de una empresa, Esto es, recoger los pedidos de los
artculos, contemplados en su catlogo, que compran a proveedores ya
conocidos.
Reglas:
Realizar una vista que guarde el encabezado del pedido que se realizara
al proveedor.
Es importante
que Ud.,
actividades.
Material Complementario
El material complementario se suministra con la finalidad
de ampliar la
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 126
UNIDAD
VISTAS
07
ESTRUCTURA DE CONTENIDOS
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 127
Introduccin
Estimado participante:
visualizar
complejas sentencias SQL, tener una vista nos simplifica esta tarea.
Te deseamos xitos en el desarrollo de esta Unidad.
Importante:
Si deseas ahondar
ms sobre
siguiente el Link.
http://technet.microsoft.com/es-es/library/ms187956.aspx
P g i n a | 128
Presionar
Botn
derecho, y clic
en Nueva
Vista
P g i n a | 129
A. Panel de Diagrama
B. Panel de Criterios
C. Panel SQL
D. Panel de Resultados
6.- Seleccionar las columnas correspondientes para crear la vista.
Click
Asignar
un nombre
a la vista
P g i n a | 130
P g i n a | 131
P g i n a | 132
PRCTICA DESARROLLADA
TEMA:
Creacin de Vistas (Base de Datos DEPARTAMENTOS)
1. Muestre el nombre, apellido paterno y apellido materno de los inquilinos
que tienes el haber bsico ms alto y ms bajo.
CREATE VIEW SALARIO_MAX_MIN
AS
SELECT NOM_USUA, APEPATER_USUA, APEMATER_USUA
FROM USUARIO
WHERE COD_USUA IN
(SELECT COD_USUA FROM INQUILINO WHERE
HABER_BAS_INQ IN (SELECT MAX(HABER_BAS_INQ)
FROM INQUILINO) OR
HABER_BAS_INQ IN (SELECT MIN(HABER_BAS_INQ)
FROM INQUILINO))
-SELECT * FROM SALARIO_MAX_MIN
2. Muestre el nombre y apellido paterno de los propietarios que no tienen
contratos.
CREATE VIEW PROPIETARIOS_SIN_CONTRATO
AS
SELECT NOM_USUA, APEPATER_USUA
FROM USUARIO
WHERE COD_USUA IN
(SELECT COD_USUA FROM PROPIETARIO WHERE
COD_USUA NOT IN (SELECT PROP_COD_USUA
FROM CONTRATO))
-SELECT * FROM PROPIETARIOS_SIN_CONTRATO
3. Muestre el nombre, direccin y rea total del los edificios que tienen
departamentos ubicados en el piso 7.
CREATE VIEW PROPIETARIOS_SIN_CONTRATO
AS
SELECT NOM_EDIF, DIRECC_EDIF, AREA_TOTAL_EDIF
P g i n a | 133
FROM EDIFICIOS
WHERE EXISTS
(SELECT * FROM DEPARTAMENTOS
WHERE DEPARTAMENTOS.COD_EDIF=EDIFICIOS.COD_EDIF AND
DEPARTAMENTOS.PISO_DEP=7)
-SELECT * FROM PROPIETARIOS_SIN_CONTRATO
P g i n a | 134
AUTOEVALUACIN UNIDAD 07
12.
datos.
D. Las relaciones explcitamente definen una asociacin entre 2
tablas.
13.
P g i n a | 135
UNIDAD
ACTIVIDAD
07
CASO: ACADEMIA
Un club dicta cursos de distintos deportes. Almacena la informacin en varias
tablas. El director no quiere que los empleados de administracin conozcan la
estructura de las tablas ni algunos datos de los profesores y socios, por ello se
crean vistas a las cuales tendrn acceso.
CREATE DATABASE DB_ACADEMIA
CREATE TABLE SOCIOS (
Documento char (8) not null,
Nombre varchar (40),
Domicilio varchar (30),
constraint PK_socios_documento
primary key (documento)
);
CREATE TABLE PROFESORES
(Documento char (8) not null,
Nombre varchar (40),
Domicilio varchar (30),
Constraint PK_profesores_documento
PRIMARY KEY (documento));
CREATE TABLE cursos
(Numero Tinyint identity,
Deporte varchar (20),
Dia varchar (15),
constraint CK_inscriptos_dia check (dia in
('lunes','martes','mircoles','jueves','viernes','sbado')),
documentoprofesor char (8),
Constraint PK_cursos_numero
PRIMARY KEY (numero));
CREATE TABLE INSCRIPTOS
(Documentosocio char(8) not null,
P g i n a | 136
en
cada
deporte
ordenados
por
cantidad.
Muestre
(consultando la vista) los cursos (deporte y da) para los cuales no hay
inscriptos.
4. Muestre los nombres de los socios que no se han inscripto en ningn
curso (consultando la vista)
5. Muestre (consultando la vista) los profesores que no tienen asignado
ningn deporte an.
6. Muestre (consultando la vista) el nombre y documento de los socios que
deben matrculas.
7. Consulte la vista y muestre los nombres de los profesores y los das en
que asisten al club para dictar sus clases.
8. Muestre la misma informacin anterior pero ordenada por da.
9. Muestre todos los socios que son compaeros en tenis los lunes.
10. Elimine la vista "vista_inscriptos" si existe y crela para que muestre la
cantidad de inscriptos por curso, incluyendo el nmero del curso, el
nombre del deporte y el da.
11. Consulte la vista: SELECT * FROM vista_inscriptos;
P g i n a | 137
UNIDAD
08
GUIA DIDCTICA
Fundamentacin
de
control
de
flujo
por
Transact/SQL
para
conectar
las
conceptos de
P g i n a | 138
Actividad:
Las actividades a desarrollar en la Unidad son:
Caso: VENTAS:
1.
de
un
producto.
El
procedimiento
tendr
los
siguientes
P g i n a | 139
P g i n a | 140
Estrategias Metodolgicas
Para desarrollar la presente unidad llevaremos a cabo
dos tipos de
actividades:
11. Lectura Inicial de Contenidos, la realizaremos de manera ordenada,
presenta los aspectos tericos. Si se presenta alguna Duda se puede
realizar lecturas sobre puntos especficos en la seccin de Material
Complementario.
12. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de
Actividades, donde constan: las consignas o indicaciones.
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de comunicacin entre el
docente y los estudiantes, para efectos de mensajera interna, foros, evaluaciones virtuales,
acciones de tutora acadmica y comunicacin de resultados de evaluacin de los
aprendizajes.
Evaluacin
En esta Unidad Ud., ser evaluado en:
15. Desarrollar un caso prctico de crear una Base de Datos para un Empresa
determinada
identificando
sus
tablas
asignndole
sus
columnas
P g i n a | 141
Material Complementario
El material complementario se suministra con la finalidad
de ampliar la
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 142
UNIDAD
PROCEDIMIENTOS
ALMACENADOS
08
ESTRUCTURA DE CONTENIDOS
1. Procedimientos Almacenados
2. Procedimientos Almacenados sin Parmetros
3. Procedimientos Almacenados con Parmetros
P g i n a | 143
Introduccin
Estimado participante:
son grupos
Importante:
Si deseas ahondar
ms sobre
P g i n a | 144
PROCEDIMIENTOS ALMACENADOS
SINTAXIS
P g i n a | 145
P g i n a | 146
P g i n a | 147
PRCTICA DESARROLLADA
Modifique el procedimiento anterior para que la bsqueda del Usuario sea por
una secuencia de caracteres y no en forma exacta.
ALTER PROCEDURE BUSCAR_USUARIO
@NOM_USUA
varchar(25),
@APEPATER_USUA varchar(25)
AS
Select *
From USUARIO
Where NOM_USUA like '%' + @NOM_USUA + '%'
and APEPATER_USUA like '%' + @APEPATER_USUA + '%'
Para ejecutarlo
EXECUTE BUSCAR_USUARIO 'EN','VE'
La
sentencia
ALTER
PROCEDURE
permite
modificar
el
contenido
del
P g i n a | 148
P g i n a | 149
AUTOEVALUACIN UNIDAD 08
14.
P g i n a | 150
UNIDAD
ACTIVIDAD DIDCTICA
08
CASO
Sean la siguiente Base de Datos:
TRABAJADOR (ID_T, NOMBRE, TARIFA, OFICIO, ID_SUPV)
Cada fila representa un trabajador, identificado por su ID_T. Su nombre es
NOMBRE; su tarifa por hora, en nuevo soles; su oficio y el identificador de
su supervisor.
EDIFICIO (ID_E, DIR, TIPO, CATEGORIA)
Cada fila representa un edificio, que se identifica por su ID_E. Se guarda
su direccin; el tipo de edificio y su categora.
ASIGNACION (ID_T, ID_E, FECHA_INICIO, NUM_DIAS)
Una fila por cada vez que un trabajador es asignado a un edificio.
Realizar los siguientes procedimientos almacenados con y sin parmetros:
11. Mostrar los trabajadores cuya tarifa se encuentren en un monto determinado.
12. Cules son los oficios de los trabajadores asignados a un edificio determinado?
13. Indicar los nombres de los trabajadores con su respectivo supervisor.
14. Nombre de los trabajadores asignados a las diferentes oficinas.
15. Qu trabajadores reciben una tarifa por hora determinada mayor que
la de su supervisor?
16. Cuntos tipos de oficios diferentes hay?
17. Para cada supervisor que supervisa a ms de un trabajador, cul es la
tarifa ms alta que se paga a un trabajador que informa a ese
SUPERVISOR?
18. Incrementar la tarifa a los trabajadores de un oficio determinado.
cis@ucv.edu.pe
http://www.ucv.edu.pe
/cis/
P g i n a | 151
UNIDAD
GUIA DIDCTICA
Fundamentacin
El propsito de esta unidad es introducir al estudiante el manejo de los datos
de una base de datos relacional utilizando comandos TRANSACT-SQL el cual
permite agrupar una serie de instrucciones como lote, ya sea de forma
interactiva o desde un archivo operativo. Tambin, se puede utilizar
estructuras
de
control
de
flujo
por
Transact/SQL
para
conectar
las
disparadores
que
viene
hacer
un
tipo
especial
de
Capacidad
El participante al final de esta unidad estar en capacidad de implementar
instrucciones SQL y de programacin mediante procedimientos almacenados
para optimizar las operaciones en la base de datos y desencadenadores para
optimizar las operaciones (insert, delete y update) de registros en una base
de datos.
CONTENIDOS.
REGLAS Y VALIDACIN
Creacin por diseo y cdigo.
Importancia para la tabla y base.
Asociacin con los procedimientos almacenados.
Ventajas en la seguridad de la base.
Disparadores en las operaciones bsicas.
P g i n a | 152
Actividades
La actividad a desarrollar en la Unidad es
Actividad:
P g i n a | 153
Caso: ALMACEN:
Cree una base de datos de nombre ALMACEN con las siguientes tablas
Ejemplo
Cantidad=20
cdigo='prod01'
fecha='2010-02-02'
pedido=1
P g i n a | 154
Estrategias Metodolgicas
Para desarrollar la presente unidad llevaremos a cabo
dos tipos de
actividades:
13. Lectura Inicial de Contenidos, la realizaremos de manera ordenada,
presenta los aspectos tericos. Si se presenta alguna Duda se puede
realizar lecturas sobre puntos especficos en la seccin de Material
Complementario.
14. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de
Actividades, donde constan: las consignas o indicaciones.
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de comunicacin entre el
docente y los estudiantes, para efectos de mensajera interna, foros, evaluaciones virtuales,
acciones de tutora acadmica y comunicacin de resultados de evaluacin de los
aprendizajes.
Evaluacin
En esta Unidad Ud., ser evaluado en:
17. Desarrollar un caso prctico de crear una Base de Datos para un Empresa
determinada
identificando
sus
tablas
asignndole
sus
columnas
P g i n a | 155
Material Complementario
El material complementario se suministra con la finalidad
de ampliar la
http://www.devjoker.com/contenidos/catss/292/Transacciones-en-Transact-SQL.aspx
Tutorial de Transact SQL
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 156
UNIDAD
REGLAS Y VALIDACIN
ESTRUCTURA DE CONTENIDOS
1.
Reglas y Validacin
2.
3.
4.
5.
6.
P g i n a | 157
Introduccin
Estimado participante:
desencadenador)
es
una
clase
especial
de
Importante:
P g i n a | 158
PROCEDIMIENTOS ALMACENADOS
SINTAXIS
CREATE TRIGGER <trigger_name, sysname, table_alter_drop_safety>
ON DATABASE
FOR <data_definition_statements, , DROP_TABLE, ALTER_TABLE>
AS
BEGIN
END
Luego realziar los siguientes ejemplos:
A continuacin se muestra un ejemplo sencillo. Este disparador imprime un
mensaje cada vez que alguien trata de insertar, eliminar o actualizar datos de
la tabla Usuario
CREATE TRIGGER TX_USUARIO
ON USUARIO
FOR INSERT, UPDATE, DELETE
AS
PRINT 'UD. ACABA DE MODIFICAR VALORES EN LA TABLA USUARIO'
Para modificar el trigger, se utiliza la siguiente sintaxis:
P g i n a | 159
From INSERTED,
USUARIO
Where INSERTED.NOM_USUA = USUARIO.NOM_USUA
AND INSERTED.APEPATER_USUA =USUARIO.APEPATER_USUA) > 1
Begin
Rollback transaction
Select 'El Usuario existe en la base de datos, por favor verifique sus datos'
End
Else
Select 'El Usuario fue ingresado en la base de datos'
En este ejemplo, verificamos el nmero de usuarios que tienen el mismo
nombre y apellido y de encontrarse ms de un usuario no se deber permitir
ingresar los datos del usuario. Este disparador imprime un mensaje si la
insercin se revierte y otro si se acepta.
Ejemplo de Disparador de Eliminacin
Cuando se elimina una fila de una tabla, SQL Server inserta los valores que
fueron eliminados en la tabla DELETED el cual es una tabla del sistema. Est
tabla toma la misma estructura del cual se origin el Trigger, de tal manera
que se pueda verificar los datos y ante un error podra revertirse los cambios.
En este caso la reversin de los cambios significar restaurar los datos
eliminados.
Cree un Trigger el cual permita eliminar Inquilinos cuyo haber bsico sea
menor a 400 soles. De eliminarse algn inquilino que no cumpla con dicha
condicin la operacin no deber ejecutarse.
CREATE TRIGGER TX_INQUILINO_ELIMINA
ON INQUILINO
FOR Delete
AS
IF (select HABER_BAS_INQ from deleted ) > 400
Begin
Rollback transaction
print 'El Haber Bsico del Inquilino debe ser menor a 400 soles'
End
En este ejemplo, verificamos el haber bsico del inquilino y de superar los 400
soles la operacin deber ser cancelada.
P g i n a | 160
Cuando se actualiza una fila de una tabla, SQL Server inserta los valores que
antiguos en la tabla DELETED y los nuevos valores los inserta en la tabla
INSERTED. Usando estas dos tablas se podr verificar los datos y ante un
error podran revertirse los cambios.
Cree un Trigger que valide que la fecha de nacimiento de un Usuario no sea
mayor a 1990.
CREATE TRIGGER TX_USUARIO_ACTUALIZA
ON USUARIO
FOR UPDATE
AS
If (Select year(FEC_NAC_USUA) From Inserted) > 1990
Begin
-- Mostrar los Datos
Select year(dt_fechanacimiento) as fecha_anterior From deleted
Select year(dt_fechanacimiento) as fecha_nueva From Inserted
Rollback transaction
print 'La fecha de nacimiento debe ser menor a 1990'
End
RESTRICCIONES DE LOS DISPARADORES
A continuacin, se describen algunas limitaciones o restricciones impuestas a
los disparadores por SQL Server:
Una tabla puede tener un mximo de tres disparadores: uno de
actualizacin, uno de insercin y uno de eliminacin.
Cada disparador puede aplicarse a una sola tabla. Sin embargo, un mismo
disparador se puede aplicar a las tres acciones del usuario: Update, Insert
y Delete.
No se puede crear un disparador en una vista ni en una tabla temporal,
aunque los disparadores pueden hacer referencia a las vistas o tablas
temporales.
Los disparadores no se permiten en las tablas del sistema. Aunque no
aparece ningn mensaje de error su crea un disparador en una tabla del
sistema, el disparador no se utilizar.
P g i n a | 161
PRCTICA DESARROLLADA
En la base de datos VENTAS:
1.- Cree un Trigger que elimine en cascada una boleta y su detalle.
CREATE TRIGGER TX_BOLETA_ELIMINAR
ON BOLETA
INSTEAD OF DELETE
AS
DECLARE @BOLETA CHAR (5)
--SE OBTIENE EL CDIGO DE LA BOLETA QUE SE HA ELIMINADO
SELECT @BOLETA=COD_BOL FROM DELETED
--SE VERIFICA SI LA BOLETA TIENE DETALLE
IF ( SELECT COUNT (*) FROM DETALLEBOLETA
WHERE COD_BOL=@BOLETA) > 0
BEGIN
-- SE ELIMINA EL DETALLE DE LA BOLETA
DELETE DETALLEBOLETA WHERE COD_BOL=@BOLETA
/*SE ELIMINA LA CABECERA.. ESTO SE HACE PUESTO QUE AL HABER
DECLARADO EL TRIGGER DEL TIPO INSTEAD OF, ES DECIR, QUE EL
DELETE EN LA TABLA BOLETA NO SE EJECUTA DE FORMA NORMAL.
POR LO TANTO, HAY QUE FORZAR LA ELIMINACIN. */
DELETE BOLETA WHERE COD_BOL=@BOLETA
PRINT 'BOLETA SE ELIMIN SATISFACTORIAMENTE'
END
ELSE
-- SE ELIMINA SOLAMENTE LA CABECERA
DELETE BOLETA WHERE COD_BOL=@BOLETA
PRINT 'BOLETA ELIMINADA CARECE DE DETALLE'
/*EL TRIGGER INSTEAD OF DELETE PUEDE SER USADO PARA
REEMPLAZAR LA ACCIN REGULAR DE LA SENTENCIA DELETE SOBRE
UNA TABLA O UNA VISTA. */
PRUEBA DEL TRIGGER EJECUTAR LO SIGUENTE:
DELETE BOLETA WHERE COD_BOL='BOL777'
2.- Crear un disparador que impida la eliminacin de un empleado que
haya emitido boletas.
3.- Agregue en la tabla Boleta el campo total. Luego, cree un disparador
que actualice el campo total por el clculo del monto total a pagar en una
boleta. Este disparador se ejecutara el tratar de insertar un registro en la
tabla boleta.
P g i n a | 162
AUTOEVALUACIN UNIDAD 09
Completa los espacios en blanco con la respuesta correcta.
t. Que es un Trigger: ________
_______________________________________________________
_______________________________________________________
u. Indique la sintaxis para modificar un Trigger.
_______________________________________________________
_______________________________________________________
_______________________________________________________
v. Explique la diferencia entre un procedimiento Almacenado y un
Trigger
_______________________________________________________
_______________________________________________________
_______________________________________________________
w. Mencionar las restricciones que se presentan al trabajar con Trigger
_______________________________________________________
_______________________________________________________
P g i n a | 163
UNIDAD
ACTIVIDAD
CASO
Sean la siguiente Base de Datos:
TRABAJADOR (ID_T, NOMBRE, TARIFA, OFICIO, ID_SUPV)
datos almacn
20.Cree un TRIGGER el cual permita eliminar los trabajadores que no han sido
asignados a ningn edificio. De eliminarse algn Trabajador que no cumpla con
dicha condicin la operacin no deber ejecutarse.
21. Cree un TRIGGER que valide la tarifa por hora de un trabajador,
donde dichos datos sean mayores a cero.
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 164
UNIDAD
10
GUIA DIDCTICA
Fundamentacin
Capacidad
El participante al final de esta unidad estar en capacidad de:
Proporcionar
conocimientos
necesarios
para
afrontar
casos
de
para el
desarrollo de aplicaciones.
CONTENIDO
PROYECTO ESTANDAR PARA TABLAS
Crear y disear una interfaz visual.
Aplicar controles de ingreso. Validacin.
Conectividad. Entorno de datos.
Conectividad. Cdigo y colecciones de datos.
P g i n a | 165
Actividades
La actividades a desarrollar en la Unidad son
Conexin
base
de
datos
de
manera
conectada
Manejo de Controles.
Estrategias Metodolgicas
Para desarrollar la presente unidad llevaremos a cabo
dos tipos de
actividades:
15. Lectura Inicial de Contenidos, la realizaremos de manera ordenada,
presenta los aspectos tericos. Si se presenta alguna Duda se puede
realizar lecturas sobre puntos especficos en la seccin de Material
Complementario.
16. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de
Actividades, donde constan: las consignas o indicaciones.
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de comunicacin entre el
docente y los estudiantes, para efectos de mensajera interna, foros, evaluaciones virtuales,
acciones de tutora acadmica y comunicacin de resultados de evaluacin de los
aprendizajes.
P g i n a | 166
Evaluacin
En esta Unidad Ud., ser evaluado en:
19. Desarrollar un caso prctico de conexin de una Base de Datos con el
Lenguaje de Programacin Visual Basic .Net 2010.
20. Disear su aplicacin de acuerdo al caso propuesto y mostrar los datos de
las tablas creadas en la Base de Datos.
Es importante que Ud., este en constante comunicacin con su
docente Tutor, ya sea para informar de dificultades, avances de
las tareas, etc. Recuerde que ser calificado de acuerdo a las
rbricas de evaluacin de cada actividad; por ejemplo: se le evaluar por la
entrega oportuna de sus actividades.
Material Complementario
El material complementario se suministra con la finalidad
de ampliar la
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 167
UNIDAD
PROYECTO ESTANDAR
PARA TABLAS
10
P g i n a | 168
Introduccin
Estimado participante:
Importante:
2010,
podrs
encontrar
material
adicional
en
la
seccin:
Material
Complementario.
P g i n a | 169
10
CLICK
Tras
iniciar
por
primera
vez
Microsoft
Visual
Studio
2010
Ultimate,
al
Men
Herramientas/Importar
Exportar
P g i n a | 170
P g i n a | 171
Explorador de Soluciones
Esta ventana se encuentra a la parte derecha del entorno grafico de .Net, aqu
se muestran todos los objetos que hacen parte del proyecto abierto
(formularios, recursos, reportes, imgenes, clases, mdulos, etc).
botones,
textbox,
labels, etc.
P g i n a | 172
Caja de herramientas
En
esta
caja
de
herramientas se encuentran
todos los controles que se
pueden utilizar en nuestros
proyectos,
estos
encuentran
debidamente
organizados
segn
caractersticas
se
sus
(todos
los
controles,
controles
comunes,
contenedores,
mens,
datos,
componentes,
impresin,
P g i n a | 173
Guardando un Proyecto
Cuando se est trabajando con un solo proyecto nuevo es recomendable que
antes de ingresar cdigo se pueda guardar dicho proyecto para lo cual
deberemos dirigirnos al Men Archivo / Guardar todo (Ctrl + Shift + S).
Una ventaja que nos da Visual Studio, es la de generar un directorio para
guardar los respectivos archivos que genera un proyecto ya que este al
tener cantidad de archivos por manejar una interfaz, deben ser centralizados
en un solo sitio, por ende se muestra el siguiente formulario:
P g i n a | 174
P g i n a | 175
MODULO y escriba el
Database
User ID
Password Pwd
P g i n a | 176
Imports System.Data
Imports System.Data.SqlClient
Public Class FrmVisualizarArticulo
Dim daArticulo As SqlDataAdapter 'objeto Adaptador de datos
Dim ds As New DataSet 'objeto Conjunto de datos
Private Sub FrmVisualizarArticulo_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
Conexion.Open()
' Creando el Adaptador de datos
daArticulo = New SqlDataAdapter("select * from Producto",
modConexion.Conexion)
' Cargando datos en el dataset
daArticulo.Fill(ds, "Articulo")
' Cerrando la conexin
Conexion.Close()
' Enlazando los controles TextBox al campo correspondiente
P g i n a | 177
P g i n a | 178
NumRegistro(fila)
End Sub
Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TrackBar1.Scroll
Try
NumRegistro(TrackBar1.Value)
Catch ex As System.Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class
MTODO 2: UTILIZANDO OBJETOS DATAROW
Imports System.Data
Imports System.Data.SqlClient
' Esto va la seccin declaraciones
Public Class FrmVisualizarArticulo
Dim daArticulo As SqlDataAdapter 'objeto Adaptador de datos
Dim ds As New DataSet ' Objeto Conjunto de datos
Dim dr As DataRow ' Objeto DataRow
Private Sub frmVisCargo_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Conexion.Open()
' Creando el Adaptador de datos
daArticulo = New SqlDataAdapter("select * from Producto",
modConexion.Conexion)
' Cargando datos en el dataset
daArticulo.Fill(ds, "Articulo")
' Cerrando la conexin
Conexion.Close()
' Enlazando el control DataGrid
Me.DataGridView1.DataSource = ds
Me.DataGridView1.DataMember = "Articulo"
Me.DataGridView1.ReadOnly = True
' Mostrando el 1er. registro
P g i n a | 179
CargarDatos(0)
' Estableciendo el maximo del control TrackBar
' igual al nmero de registros
Me.TrackBar1.Maximum = ds.Tables("Articulo").Rows.Count - 1
End Sub
Private Sub CargarDatos(ByVal fila As Integer)
Dim total As Integer
Try
' Para mostarar la posicion
Me.BindingContext(ds, "Articulo").Position = fila
' total de registros en la tabla artculos
total = ds.Tables("Articulo").Rows.Count
Me.lblPosicion.Text = "Articulo: " & Str(fila + 1) & " de " & Str(total)
' Asignando un fila de datos "Registro" al DataRow
dr = ds.Tables("Articulo").Rows(fila)
' Mostrando los datos desde el datarow
TextBox1.Text = dr("IdProducto")
TextBox2.Text = dr("Nombre")
TextBox3.Text = dr("StockActual")
TextBox4.Text = dr("PrecioVenta")
Catch exc As Exception
MessageBox.Show(exc.Message)
End Try
End Sub
Private Sub TrackBar1_Scroll1(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TrackBar1.Scroll
Try
CargarDatos(TrackBar1.Value)
Catch ex As System.Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub btnBuscar_Click1(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnBuscar.Click
P g i n a | 180
P g i n a | 181
PRCTICA DESARROLLADA
Ingrear
a Visual Basic .net y disear un formulario el cual permitira
desplazarnos a traves de los diferentes registros de una tabla determinada.
Colocar en el cuadro de herramientas y colocar en el formulario los siguientes
controles:
4
5
4
1
Labels
TextBox
Button
GroupBox
P g i n a | 182
End Sub
Private Sub btnPrimero_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPrimero.Click
cmr.Position = 0
End Sub
Private Sub btnAnterior_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnAnterior.Click
If cmr.Position > 0 Then cmr.Position -= 1
End Sub
Private Sub btnSgte_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnSgte.Click
If cmr.Position < cmr.Count Then cmr.Position += 1
End Sub
Private Sub btnUltimo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnUltimo.Click
cmr.Position = cmr.Count
End Sub
End Class
Ingrear a Visual Basic .net y disear un formulario el cual permitira otorgar
acceso a un usuario determinado.
Imports System.Data.SqlClient
Public Class LoginForm1
'Public strConn As String = "Data Source=.;Initial
Catalog=bdVentas;Integrated Security=True"
P g i n a | 183
P g i n a | 184
comando = Cnn.CreateCommand
comando.CommandText = sql
Dr = comando.ExecuteReader
If Dr.Read Then
nombre = Dr("Nom_Usua")
apellido = Dr("Apell_Usua")
End If
Dr.Close()
Dim t As Integer = CInt(comando.ExecuteScalar())
If t = 0 Then
Return False
End If
Return True
Catch exx As SqlException
MsgBox(exx.Message)
Catch ex As Exception
MsgBox(ex.Message)
Finally
Cnn.Close()
End Try
End Function
End Class
P g i n a | 185
AUTOEVALUACIN UNIDAD 10
Completa los espacios en blanco con la respuesta correcta.
x. Que es un Mantenedor: ________
_______________________________________________________
_______________________________________________________
y. Cul es la importancia del Lenguaje Visual Basic .Net
_______________________________________________________
_______________________________________________________
_______________________________________________________
z. Para qu sirve un modulo
_______________________________________________________
_______________________________________________________
_______________________________________________________
aa.
_______________________________________________________
_______________________________________________________
P g i n a | 186
UNIDAD
ACTIVIDAD DIDCTICA
10
P g i n a | 187
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 188
UNIDAD
11
GUIA DIDACTICA
Fundamentacin
funcin
al
lenguaje
TRANSACT
SQL
empleando
Procedimientos
Capacidad
El participante al final de esta unidad estar en capacidad de:
Proporcionar
conocimientos
necesarios
para
afrontar
casos
de
CONTENIDO
PROYECTO ESTANDAR PARA TABLAS
1. Programacin Tres Capas.
2. Visualizacin de los datos de una tabla en el formulario mediante un
DataGridView.
3. Visualizacin de los datos de una tabla en el formulario mediante
controles TextBox.
P g i n a | 189
Actividades
La actividades a desarrollar en la Unidad son
Diseo de formularios.
Identifica de eventos.
Manejo de Controles.
Control de errores.
Estrategias Metodolgicas
Para desarrollar la presente unidad llevaremos a cabo
dos tipos de
actividades:
17. Lectura Inicial de Contenidos, la realizaremos de manera ordenada,
presenta los aspectos tericos. Si se presenta alguna Duda se puede
realizar lecturas sobre puntos especficos en la seccin de Material
Complementario.
18. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de
Actividades, donde constan: las consignas o indicaciones.
NOTA:
Recuerde que el Aula Virtual de la UCV, se emplear como medio de
comunicacin entre el docente y los estudiantes, para efectos de
mensajera interna, foros, evaluaciones virtuales, acciones de tutora
acadmica y comunicacin de resultados de evaluacin de los
aprendizajes.
P g i n a | 190
Evaluacin
En esta Unidad Ud., ser evaluado en:
21. Desarrollar un caso prctico de conexin de una Base de Datos con el
Lenguaje de Programacin Visual Basic .Net 2010.
22. Disear su aplicacin de acuerdo al caso propuesto y mostrar los datos de
las tablas creadas en la Base de Datos.
Es importante que Ud., este en constante comunicacin con su
docente Tutor, ya sea para informar de dificultades, avances de
las tareas, etc. Recuerde que ser calificado de acuerdo a las
rbricas de evaluacin de cada actividad; por ejemplo: se le evaluar por la
entrega oportuna de sus actividades.
Material Complementario
El material complementario se suministra con la finalidad
de ampliar la
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 191
UNIDAD
PROYECTO ESTANDAR
PARA TABLAS
11
P g i n a | 192
Introduccin
Estimado participante:
Importante:
2010,
podrs
encontrar
material
adicional
en
la
seccin:
Material
Complementario.
P g i n a | 193
P g i n a | 194
MODULO y escriba el
P g i n a | 195
Database
User ID
Password Pwd
P g i n a | 196
VISUALIZACIN
DE
LOS
DATOS
DE
UNA
TABLA
EN
EL
datos
en
formato
de
tabla.
Puede
utilizar
el
Personalizar un DataGridView
P g i n a | 197
Imports System.Data
Imports System.Data.SqlClient
Public Class FrmVisualizarArticulo
Dim daArticulo As SqlDataAdapter 'objeto Adaptador de datos
Dim ds As New DataSet 'objeto Conjunto de datos
Private Sub FrmVisualizarArticulo_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
Conexion.Open()
' Creando el Adaptador de datos
daArticulo = New SqlDataAdapter("select * from Producto",
modConexion.Conexion)
' Cargando datos en el dataset
daArticulo.Fill(ds, "Articulo")
' Cerrando la conexin
Conexion.Close()
' Enlazando los controles TextBox al campo correspondiente
Me.TextBox1.DataBindings.Add("Text", ds, "Articulo.IdProducto")
Me.TextBox2.DataBindings.Add("Text", ds, "Articulo.Nombre")
Me.TextBox3.DataBindings.Add("Text", ds, "Articulo.StockActual")
Me.TextBox4.DataBindings.Add("Text", ds, "Articulo.PrecioVenta")
' Enlazando el control DataGrid
Me.DataGridView1.DataSource = ds
Me.DataGridView1.DataMember = "Articulo"
Me.DataGridView1.ReadOnly = True
' Mostrando el 1er. registro
'NumRegistro(0)
' Estableciendo el maximo del control TrackBar
' igual al nmero de registros de la tabla articulos
Me.TrackBar1.Maximum = ds.Tables("Articulo").Rows.Count - 1
End Sub
Private Sub NumRegistro(ByVal fila As Integer)
Dim total As Integer
' Mostrar el registro en una posicin que tenga la var. fila
Me.BindingContext(ds, "Articulo").Position = fila
' total de registros en la tabla artculos
total = ds.Tables("Articulo").Rows.Count
P g i n a | 198
Me.lblPosicion.Text = "Articulo: " & Str(fila + 1) & " de " & Str(total)
End Sub
Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnBuscar.Click
Dim strDato As String
Dim fila As Integer
' Trabjando con un DataView
Dim dv As New DataView
strDato = InputBox("Ingrese codigo del Artculo: ", "Buscar")
dv.Table = ds.Tables("Articulo")
dv.Sort = "IdProducto"
fila = dv.Find(strDato)
If fila = -1 Then
MessageBox.Show("Codigo del Artculo no Existe", "Cuidado")
Exit Sub
End If
NumRegistro(fila)
End Sub
Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TrackBar1.Scroll
Try
NumRegistro(TrackBar1.Value)
Catch ex As System.Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class
MTODO 2: UTILIZANDO OBJETOS DATAROW
Imports System.Data
Imports System.Data.SqlClient
' Esto va la seccin declaraciones
Public Class FrmVisualizarArticulo
Dim daArticulo As SqlDataAdapter 'objeto Adaptador de datos
Dim ds As New DataSet ' Objeto Conjunto de datos
P g i n a | 199
P g i n a | 200
P g i n a | 201
PRCTICA DESARROLLADA
Ingrear
a Visual Basic .net y disear un formulario el cual permitira
desplazarnos a traves de los diferentes registros de una tabla determinada.
Colocar en el cuadro de herramientas y colocar en el formulario los siguientes
controles:
4
5
4
1
Labels
TextBox
Button
GroupBox
P g i n a | 202
End Sub
Private Sub btnPrimero_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPrimero.Click
cmr.Position = 0
End Sub
Private Sub btnAnterior_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnAnterior.Click
If cmr.Position > 0 Then cmr.Position -= 1
End Sub
Private Sub btnSgte_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnSgte.Click
If cmr.Position < cmr.Count Then cmr.Position += 1
End Sub
Private Sub btnUltimo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnUltimo.Click
cmr.Position = cmr.Count
End Sub
End Class
Ingrear a Visual Basic .net y disear un formulario el cual permitira otorgar
acceso a un usuario determinado.
P g i n a | 203
P g i n a | 204
Dr.Close()
Dim t As Integer = CInt(comando.ExecuteScalar())
If t = 0 Then
Return False
End If
Return True
Catch exx As SqlException
MsgBox(exx.Message)
Catch ex As Exception
MsgBox(ex.Message)
Finally
Cnn.Close()
End Try
End Function
End Class
P g i n a | 205
AUTOEVALUACIN UNIDAD 11
Completa los espacios en blanco con la respuesta correcta.
bb.
_______________________________________________________
_______________________________________________________
cc. Cul es la importancia del Lenguaje Visual Basic .Net
_______________________________________________________
_______________________________________________________
_______________________________________________________
dd.
_______________________________________________________
_______________________________________________________
_______________________________________________________
ee.
_______________________________________________________
_______________________________________________________
P g i n a | 206
UNIDAD
ACTIVIDAD DIDCTICA
11
P g i n a | 207
cis@ucv.edu.pe
http://www.ucv.edu.pe/cis/
P g i n a | 208
TALLER DE UNIDAD II Y
EXAMEN FINAL
12
P g i n a | 209