Sei sulla pagina 1di 59

Trial version of e-PDF Document Converter v2.

1
Integridad, programacin y seguridad de base de datos con SQL Server 2005

UIVERSIDAD ACIOAL
MICAELA BASTIDAS DE APURMAC
FACULTAD DE IGEIERA

ESCUELA ACADMICO PROFESIOAL DE


IGEIERA
IFORMTICA Y SISTEMAS

SISTEMA GESTI DE
BASE DE DATOS II
Integridad, Programacin y
Seguridad de Base de Datos
con SQL Server 2005

Resultados
Resultados
Transact-SQL
Transact
Transact-SQL
Aplicacin
Aplicacin

Sistema
Acadmico

Elaborado por:
Ing. Marleny Peralta Ascue
ABACAY - PER
Universidad acional Micaela Bastidas de Apurmac
Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 0 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

Integridad, Programacin y Seguridad de Base de Datos


con SQL Server 2005

GUAS DE LABORATORIO DEL CURSO DE


SISTEMA GESTI DE BASE DE DATOS II
Contenido
 Modelo lgico y fsico de la base de datos del Sistema Acadmico

Facultad de Ingeniera UAMBA.


 Nombre de la Base de Datos: BDSistemaAcademico.
 Laboratorio ro. 01:





Diseo de Integridad de Datos Declarativa.

Diseo de integridad de datos declarativa a nivel de columnas.


Diseo de integridad de datos declarativa a nivel de tablas.
Definicin de CONSTRAINTS (Restricciones).
Utilizacin de la propiedad IDENTITY.

 Laboratorio ro. 02:

Diseo de Integridad de Datos Declarativa.

 Creacin de tipo de datos definidos por el usuario.


 Creacin de valores predeterminados y Reglas (DEFAULTS y RULES)
 Laboratorio ro. 03:

Funciones.

 Funciones de manejo de fechas.


 Funciones de cadena de caracteres.
 Laboratorio ro. 04 :






Implementacin de Vistas y
Procedimientos Almacenados.

Creacin de vistas.
Creacin de una vista a partir de otra.
Procedimientos almacenados sin parmetros.
Procedimientos almacenados con parmetros de entrada.
Procedimientos almacenados con parmetros de salida.

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

 Laboratorio ro. 05:







Creacin de
Creacin de
Creacin de
Creacin de

triggers por insercin.


triggers por eliminacin.
triggers por actualizacin.
triggers con las tres acciones a la vez.

 Laboratorio ro. 06:











Programacin en SQL Server.

Lenguaje de control de flujo.


Uso de IF..ELSE.
Uso de DECLARE.
Uso de BEGIN.. END y PRINT.
Uso de WHILE.
Uso de CASE.
Uso del Lenguaje de control de flujo con triggers.
Uso del Lenguaje de control de flujo con procedimientos almacenados.

 Laboratorio ro. 07:







Implementacin de Triggers o
desencadenadores.

Transacciones.

BEGIN TRANSACTION.
COMMIT TRANSACTION.
ROLLBACK TRANSACTION.
Sentencias de procesamiento de transacciones en un trigger.

 Laboratorio ro. 08:

Seguridad de la Base de Datos

 Creacin de Grupos y Usuarios utilizando el Administrador Corporativo.


 Asignacin de Permisos utilizando el Administrador Corporativo.
 Asignacin de Permisos utilizando el lenguaje de control de datos en el
analizador de consultas.
 Registros de la Base de Datos del Sistema Acadmico Facultad de
Ingeniera - UAMBA.

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 2 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

MODELO LGICO DE DATOS


SISTEMA ACADMICO FACULTAD DE IGEIERA
UAMBA

TMATRICULA
ID Matricula

TESCUELAPROFESIONAL
Codigo de Escuela Profesional
TIENE
Nombre de Escuela Profesional
Observacin
TSEMESTRE
Codigo del Semestre
TIENE /
PERTENECE
TDOCENTE

Codigo del Alumno (FK)


Codigo de Escuela Profesional (FK)
Codigo del Semestre (FK)
Fecha de Matricula
Total de Creditos
Observacin

Fecha de Inicio
Fecha de Termino
Observacion

Codigo del Docente


GENERA
Codigo de Escuela Profesional (FK)
Nombre del Docente
Apellido Paterno del Docente
Apellido Materno del Docente
Direccin del Docente
Telefono del Docente
Sexo
Fecha de Nacimiento
DNI del Docente
Categoria del Docente
Condicin del Docente

PROGRAMA

TIENE
PROGRAMA

GENERA
TASIGNATURAPROGRAMADA
TDETALLEMATRICULA

ID de Asignatura Programada
Codigo de la Asignatura (FK)
Codigo del Semestre (FK)
Codigo del Docente (FK)
Codigo de Escuela Profesional (FK)
Observacion

TIENE ASIGNADA

ID Matricula (FK)
ID de Asignatura Programada (FK)
Fecha de entrega de Actas
Nota
Observacion

TIENE
TIENE

TALUMNO
Codigo del Alumno

TASIGNATURA
Codigo de la Asignatura

TREQUISITO
Codigo del Requisito
Codigo de la Asignatura (FK)

TIENE

Nombre de la Asignatura
Numero de Creditos
Horas de Teora
Horas de Practica
Horas de Laboratorio
Categoria de la Asignatura

Nombre del Alumno


Apellido Paterno del Alumno
Apellido Materno del Alumno
DNI del Alumno
Fecha de Nacimiento
Direccin del Alumno
Sexo
Telefono del Alumno
Tipo de Alumno

Base de datos modelo para el curso: SGBD II

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 4 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

MODELO FSICO DE DATOS


SISTEMA ACADMICO FACULTAD DE IGEIERA
UAMBA
TMATRICULA
IDMatricula: int

TESCUELAPROFESIONAL
CodEscuelaProfesional: char(2)

CodAlumno: numeric(6)
CodEscuelaProfesional: char(2)
CodSemestre: char(4)
FechaMatricula: datetime
TotalCreditos: smallint
Observacion: varchar(50)

NomEscuelaProfesional: varchar(45)
Observacin: varchar(50)
TSEMESTRE
CodSemestre: char(6)
FechaInicio: datetime
FechaTermino: datetime
Observacion: varchar(50)

TDOCENTE
CodDocente: numeric(6)
CodEscuelaProfesional: char(2)
NomDocente: varchar(20)
ApellidoPaternoDocente: varchar(20)
ApellidoMaternoDocente: varchar(20)
DireccionDocente: varchar(45)
TelefonoDocente: char(10)
Sexo: char(1)
FechaNacimiento: datetime
DNIDocente: numeric(8,0)
CategoriaDocente: char(12)
CondicionDocente: char(1)

TASIGNATURAPROGRAMADA
IDAsignaturaProgramada: int
CodAsignatura: char(5)
CodSemestre: char(4)
CodDocente: numeric(7)
CodEscuelaProfesional: char(2)
Observacion: varchar(50)

TDETALLEMATRICULA
IDMatricula: int
IDAsignaturaProgramada: int
FechaActas: datetime
Nota: smallint
Observacion: varchar(35)

TALUMNO
CodAlumno: numeric(6)
TASIGNATURA
TREQUISITO
CodAsignatura: char(5)
Codigo_del_Requisito: char(5)

CodAsignatura: char(5)
NomAsignatura: varchar(50)
NumeroCreditos: smallint
HorasTeoricas: smallint
HorasPractica: smallint
HorasLaboratorio: smallint
CategoriaAsignatura: char(4)

NombreAlumno: varchar(20)
ApellidoPaternoAlumno: varchar(20)
ApellidoMaternoAlumno: varchar(20)
DNIAlumno: numeric(8,0)
FechaNacimiento: datetime
DireccionAlumno: varchar(45)
Sexo: char(1)
TelefonoAlumno: char(10)
Tipo_de_Alumno: varchar(15)

Base de datos modelo para el curso: SGBD II


Curso: Sistema Gestin de Base de Datos II
Elaborado por: Ing. Marleny Peralta Ascue

Pgina 5 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 6 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

LABORATORIO N
N 01
DISEO DE INTEGRIDAD DE DATOS DECLARATIVA
I.- OBJETIVOS
Luego de completar este laboratorio usted ser capaz de:
 Crear restricciones DEFAULT, CHECK, PRIMARY KEY, UNIQUE y FOREIGN
KEY.
 Determinar que restricciones y que mtodo implementar la integridad de datos.
 Utilizar la propiedad IDENTITY en la definicin de una tabla.
II.- TRABAJO PREPARATORIO
 Conocer el lenguaje de definicin de datos.
 Leer el marco terico de la presente gua.
III.- MARCO TERICO
1. TIPOS DE I TEGRIDAD


Integridad de dominio.
La integridad de dominio (o columna) especifica un conjunto de valores de
datos que son vlidos para una columna y determina si se permiten valores
nulos.

Integridad de entidad.
La integridad de entidad (o tabla) requiere que todas las filas de una tabla
tengan un identificador exclusivo, conocido como clave principal.

Integridad referencial.
La integridad referencial asegura que siempre se mantienen las relaciones entre
las claves principales (en la tabla a la que se hace referencia) y las claves
externas (en las tablas que hacen referencia).

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 7 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

2. I TEGRIDAD DE DATOS DECLARATIVA: Se declara como parte de la


definicin de la base de datos, mediante el uso de restricciones declarativas que se
definen directamente en las tablas y columnas. Se define con CREATE TABLE O
ALTER TABLE. Se implementa mediante la utilizacin de restricciones, valores
predeterminados y reglas.
3. RESTRICCIO ES (COSTRAIT): Las restricciones aseguran que los datos
que se escriben en las columnas sean vlidos y que se mantengan las relaciones
entre las tablas.

Tipo de Integridad

Tipo de Restriccin

DEFAULT

DOMINIO

Descripcin
Especifica el valor que se
proporciona para la columna
cuando no se especifica
explcitamente
en
una
instruccin INSERT.

CHECK

Especifica los valores de los


datos que se aceptan en una
columna.

REFERENTIAL

Especifica los valores de


datos que se aceptan como
actualizacin en funcin de
los valores de una columna
de otra tabla.

PRIMARY KEY

ENTIDAD

UNIQUE

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Identifica
de
forma
exclusiva cada una de las
filas; asegura que los
usuarios no escriban valores
duplicados y que se cree un
ndice para aumentar el
rendimiento. No se permiten
valores nulos.
Impide la duplicacin de
claves
alternativas
(no
principales) y asegura que
se cree un ndice para
aumentar el rendimiento. Se
permiten valores nulos.
Pgina 8 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

FOREIGN KEY

Define una columna o


combinacin de columnas
cuyos valores coinciden con
la clave principal de la
misma u otra tabla.

CHECK

Especifica los valores de los


datos que se aceptan en una
columna en funcin de los
valores de otras columnas
de la misma tabla.

REFERENCIAL

SI TAXIS:


Creacin de un CONSTRAINT.
ALTER TABLE tabla [WITH CHECK WITH NOCHECK]
ADD CONSTRAINT nombre_constraint <Tipo de Constraint>

Donde:
WITH CHECK WITH NOCHECK: Son aplicables a restricciones CHECK y
FOREIGN KEY


Eliminacin de un CONSTRAINT.

ALTER TABLE tabla


DROP CONSTRAINT nombre_constraint

4. PROPIEDAD IDE TITY:


Puede usarse para implementar la integridad de
entidad, permite crear columnas que contienen valores generados por el sistema.
SQL Server permite automticamente se encarga de generar valores, por defecto el
primer valor es uno y los siguientes tendrn que ser superiores al anterior.

IDENTITY [(valor_inicio, valor_incremento]

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 9 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

IV.- DESARROLLO DE LA GUA


1. Creacin de COSTRAITS (restricciones)
1.1 Diseo de integridad de datos declarativa a nivel de columnas:
CREATE TABLE TALUMNO (
CodAlumno
numeric(6) NOT NULL PRIMARY KEY,
NombreAlumno
varchar(20) NOT NULL,
ApellidoPaternoAlumno
varchar(20) NOT NULL,
ApellidoMaternoAlumno
varchar(20) NOT NULL,
DniAlumno
numeric(8) UNIQUE(dniAlumno)
CHECK (DniAlumno like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
FechaNacimiento
datetime,
DireccionAlumno
varchar(45),
Sexo
char(1)
CHECK(sexo in ('F','M')),
TelefonoAlumno
char(10),
EstadoAlumno
varchar(15) CHECK (EstadoAlumno in('PRE-GRADO',
'EGRESADO', 'BACHILLER', 'TITULADO')))

Verificando la integridad: Ingrese el siguiente registro.


INSERT INTO TAlumno
VALUES('091014','Anyinson Cristofer','Acharte','Quispe','3245211','01/10/1990',
'Jr. Lima 420' ,'X' ,' ' ,'Pre-Grado')
Permite ingresar el registro, que restriccin es la que no est cumpliendo?
_________________________________________________________________
Si ahora ingresamos el siguiente registro:
INSERT INTO TAlumno
VALUES('091014','Anyinson Cristofer','Acharte','Quispe','3245211','01/10/1990',
'Jr. Lima 420' ,'M' ,' ' ,'Pre-Grado')
El resultado es una fila afectada
Nota: Todos los registros deben de cumplir las restricciones de datos implementadas
en las columnas de la tabla.
1.2 Diseo de integridad de datos declarativa a nivel de tablas:
Este tipo de implementacin se realiza despus de haber creado las tablas
respectivas en nuestra base de datos.
Analice y ejecute las siguientes instrucciones:
 Crear un Constraint para el siguiente caso: si no se introduce ningn valor en la
categora docente se debe asumir como docente auxiliar.
ALTER TABLE TDocente ADD CONSTRAINT Df_categoriadocente
DEFAULT 'Auxiliar' for CategoriaDocente
Universidad acional Micaela Bastidas de Apurmac
Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 10 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

Ingrese el siguiente registro:


INSERT INTO TDocente
VALUES (10809, 'IS', 'Evelyn', 'Luque','Ochoa', ' ', '', 'F', ' ', 23456778, default,
'N')
Visualize los datos del docente
 Validar la categora del docente solo con los siguientes valores: Auxiliar, Asociado
y Principal.
ALTER TABLE TDocente
ADD CONSTRAINT CK_categoriadocente
CHECK ( CategoriaDocente in ('Auxiliar', 'Asociado', 'Principal'))
Ingrese valores a la columna categora TDocente de la tabla TDocente
y verifique la restriccin.
 Crear una restriccin UNIQUE para la tabla TDocente
ALTER TABLE TDocente
ADD CONSTRAINT U_dni UNIQUE (Dnidocente)
Ingrese un valor duplicado de DNI. Permite o no permite el ingreso del
registro? ______________________________________________________

2. Utilizacin de la propiedad IDETITY.


 Defina la tabla Asignatura programada asignando una columna con propiedad
Identity que empiece de 1 y tenga un incremento de 1.

CREATE TABLE TASIGNATURAPROGRAMADA (


IDAsignaturaProgramada int IDENTITY (1,1) NOT NULL,
CodAsignatura
char(5) NOT NULL,
CodSemestre
char(6) NOT NULL,
CodDocente
numeric(7)NOT NULL,
CodEscuelaProfesional
char(2) NOT NULL,
Observacion
varchar(50),
PRIMARY KEY (IDAsignaturaProgramada),
FOREIGN KEY (CodAsignatura)
REFERENCES TASIGNATURA,
FOREIGN KEY (CodSemestre)
REFERENCES TSEMESTRE,
FOREIGN KEY (CodDocente)
REFERENCES TDOCENTE,
FOREIGN KEY (CodEscuelaProfesional)
REFERENCES TESCUELAPROFESIONAL

Ingrese los siguientes registros a la tabla Asignatura programada.

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 11 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

INSERT INTO TAsignaturaProgramada VALUES('IS101' , '2010-1' , '10806',


'IS','')
INSERT INTO TAsignaturaProgramada VALUES('IS102' , '2010-1' , '10808',
'IS','')
INSERT INTO TAsignaturaProgramada VALUES('IS103' , '2010-1' , '10802',
'IS','')
 Actualice el cdigo de una Asignatura programada Se puede?
UPDATE TAsignaturaProgramada
SET IDAsignaturaProgramada = 2 ______________________________
 Visualizar el ltimo valor generado por la columna Identity.
SELECT @@IDENTITY

______________________________

 Para hacer referencia a una columna Identity puede utilizar IDETITYCOL.


SELECT * FROM TAsignaturaProgramada
WHERE IDENTITYCOL=2
Para ingresar un registro eliminado accidentalmente,
propiedad Identity, con la siguiente instruccin.

tiene que desactivar la

SET IDENTITY_INSERT nombre_tabla ON

Luego proceda a ingresar el registro


de las columnas.

eliminado especificando los nombres

Para activar la propiedad Identity, utilice la siguiente instruccin:


SET IDENTITY_INSERT nombre_tabla OFF
Compruebe ingresando un nuevo registro.
V.- EJERCICIOS DE EXTESI
1. Crear una restriccin que valide el nmero telefnico tanto del docente como del
alumno, con tres nmeros que representan el cdigo de la ciudad, seguido de un guin
y por ltimo la secuencia del nmero telefnico: Ejemplo: 052 844582.

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 12 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

LABORATORIO N
N 02
02
DISEO DE INTEGRIDAD DE DATOS DECLARATIVA
I.- OBJETIVOS
Luego de completar este laboratorio usted ser capaz de:
 Crear tipos de datos definidos por el usuario.
 Crear y utilizar objetos: DEFAULTS y RULES.
II.- TRABAJO PREPARATORIO
 Conocer el lenguaje de definicin de datos.
 Leer el marco terico de la presente gua.
III.- MARCO TERICO
1. TIPO DE DATOS DEFI IDO POR EL USUARIO: Los tipos de datos definidos
por el usuario estn basados en tipos predefinidos por el sistema en SQL Server,
pueden ser usados en varias tablas que deban guardar el mismo tipo de dato en una
columna y cuando se necesita asegurar que estas columnas tengan exactamente el
mismo tipo de dato, longitud y capacidad de aceptar nulos.
SITAXIS:


Creando un tipo de datos definido por el usuario.

SP_ADDTYPE nombre_tipodato , tipodato_sistema [(length) | (precision [, scale])]


[, "identity" | nul | not null ]

Eliminando un tipo de datos definido por el usuario :

SP_DROPTYPE nombre_tipodato

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 13 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

2. Valores predeterminados y reglas (DEFAULTS y RULES): Los valores


predeterminados y las reglas son objetos que se pueden asociar con una o varias
columnas o tipos de datos definidos por el usuario, lo que permite que se definan una
sola vez y se utilicen varias veces.
SI TAXIS:


Creando Default y Rule:


CREATE DEFAULT nombre_default AS constante de expresin
CREATE RULE

nombre_rule

AS @condicin de expresin

Vinculando Default y Rule:


SP_BINDEFAULT nombre_default , nombre del objeto
SP_BINDRULE

nombre_rule ,

nombre del objeto

Desvinculando Default y Rule:


SP_UNBINDEFAUL nombre del objeto
SP_UNBINDRULE nombre del objeto

Eliminando Default y Rule:


DROP DEFAULT nombre_dafault
DROP RULE

nombre_rule

Donde:
El nombre del objeto puede ser una columna de una tabla (tabla.columna) o un tipo
de datos definido por el usuario.

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 14 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

IV.- DESARROLLO DE LA GUA

3. Creacin de tipos de datos definidos por el usuario.


 Crear un tipo de dato type_telefono con una longitud de 10 caracteres.
SP_ADDTYPE type_telefono, 'char(10)'
 Modificar el tipo de dato del sistema de la columna TelefonoDocente y
TelefonoAlumno de las tablas TDocente y TAlumno por el tipo de dato
type_telefono definido por Ud.
ALTER TABLE TDocente
ALTER COLUMN TelefonoDocente

type_telefono

ALTER TABLE TAlumno


ALTER COLUMN TelefonoAlumno type_telefono
Verificando la creacin de los tipos de datos:
SELECT name
FROM systypes
WHERE usertype >=100
ORDER BY usertype
 Utilice la siguiente instruccin: SP_HELP TDocente, para visualizar los campos
definidos en la tabla.

4. Creacin de valores predeterminados y reglas (DEFAULTS y

RULES).
 Agregar una columna estado civil del docente a la tabla TDocente
ALTER TABLE TDocente ADD ecivil varchar(12)
 Crear un valor predeterminado para la columna ecivil cuyo valor debe asumir
soltero
CREATE DEFAULT Df_ecivil AS 'soltero'
Enlazamos el DEFAULT a la columna ecivil de la tabla TDocente.
SP_BINDEFAULT Df_ecivil, 'TDocente.ecivil'

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 15 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

Ingrese un registro para verificar si cumple el valor por defecto.


 Crear una regla para la columna ecivil cuyos valores del estado civil ser soltero o
casado
CREATE RULE ru_ecivil
AS @ecivil in ('soltero','casado')
Enlazamos la regla a la columna ecivil de la tabla TDocente.
SP_BINDRULE ru_ecivil, 'TDocente.ecivil'
Ingrese un valor a la columna ecivil y verifique si cumple la regla.
 Ejecute los siguientes procedimientos almacenados para verificar la creacin de las
restricciones y el texto del objeto.

SP_HELPCONSTRAINT nombre_de_la_tabla
SP_HELP nombre_del_objeto
SP_HELPTEXT nombre_del_objeto

V.- EJERCICIOS DE EXTESI


1. Utilice cualquier mtodo para implementar la integridad de datos de la base de datos
del Sistema Acadmico de la Facultad de Ingeniera, de tal manera que todos los datos
que se ingrese deben de estar totalmente validados.
AOTACIOES:

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 16 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

LABORATORIO N 03
03
FUNCIONES
I.- OBJETIVOS
Luego de completar este laboratorio usted ser capaz de:
 Ejecutar consultas utilizando funciones de fecha.
 Ejecutar consultas utilizando funciones de cadena de caracteres.
II.- TRABAJO PREPARATORIO
 Conceptos bsicos para formular consultas simples y complejas.
 Leer el marco terico de la presente gua.
III.- MARCO TERICO

FUCIOES DE MAEJO DE FECHAS


SELECT GETDATE( )

Devuelve la fecha actual.

SELECT CONVERT (datetime, 2010/04/15)

Devuelve una cadena


convertida en fecha.

SELECT DAY(GETDATE( )) AS DIA

SELECT MONTH(GETDATE( )) AS MES

SELECT YEAR(GETDATE( )) AS YEAR

SELECT DATENAME (MONTH,GETDATE( ))


AS Nombre de la fecha

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Devuelve un entero que


representa la parte de la
fecha especificada.
Devuelve un entero que
representa el mes de la
fecha especificada.
Devuelve un entero que
representa la parte del ao
de la fecha especificada.
Devuelve una cadena de
caracteres que representa
la parte de la fecha
especificada.
Pgina 17 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

SELECT DATEADD (YEAR,2,GETDATE( )) AS


AO
SELECT DATEPART(YEAR,GETDATE( )) AS
AO
SELECT DATEDIFF(YEAR,'17/04/05',
GETDATE( ) ) AS aos
SELECT DATEDIFF(DAY,'17/04/10',
GETDATE( )) AS das
SELECT DATEDIFF(MONTH,'17/01/10',
GETDATE()) AS meses

Devuelve
un
valor
datetime Nuevo que se
basa en la suma de un int.
Devuelve un entero que
representa la parte de la
fecha especificada.
Devuelve la
desde
especificadas.

diferencia
fechas

FUCIOES DE CADEA DE CARACTERES


SELECT UPPER(Base de Datos)

Convierte a Maysculas

SELECT LOWER(BASE DE DATOS)

Convierte a Minsculas

SELECT SUBSTRING(Base de Datos,9,5)

Devuelve una cadena de


subcaracteres

SELECT DATELENGTH(Base de Datos)


SELECT LEN(Base de Datos)

Devuelve la longitud del


texto

SELECT STUFF('abcdef', 4, 3, 'DEF')

Permite
reemplazar
caracteres de acuerdo a lo
indicado.
Invierte el orden de los
caracteres

SELECT REVERSE(12345)
SELECT REPLICATE(Hola , 3)

Muestra el texto cuantas


veces se le indique

SELECT REPLACE(NEOYSTEM,S,OS)
SELECT REPLACE('MARLEN','N','NY')

Devuelve la cadena con el


nuevo valor de reemplazo

SELECT LTRIM( Base de Datos)


SELECT RTRIM( Base de Datos)

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Elimina Los espacios en


blanco de la cadena por la
izquierda
Elimina Los espacios en
blanco de la cadena por la
derecha

Pgina 18 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

SELECT RIGHT (Base de Datos,5)

SELECT LEFT (Base de Datos,4)

SELECT STR(YEAR(GETDATE()),4)

Devuelve la parte de una


cadena de caracteres que
comienza en el nmero de
caracteres especificado a
partir de la derecha.
Devuelve la parte de una
cadena de caracteres que
comienza en un nmero de
caracteres especificado a
partir de la izquierda.
Convierte la expresin en
carcter, opcionalmente a
m espacios, con n cifras
decimales

IV.- DESARROLLO DE LA GUA


1. Listar a todos los estudiantes que se matricularon en el ao 2009
SELECT NOMBRE=ApellidoPaternoAlumno+' '+ApellidoMaternoAlumno+'
'+NombreAlumno
FROM TAlumno a INNER JOIN TMAtricula m ON a.codalumno=m.codalumno
WHERE year(fechamatricula)=2009
2. Calcular la edad de los estudiantes de la Carrera Profesional de Ingenieria Informtica
y Sistemas
SELECT NOMBRE=ApellidoPaternoALumno+' '+ApellidoMaternoAlumno+' '+
NombreAlumno, EDAD= DATEDIFF(YEAR,Fechanacimiento,getdate())
FROM TAlumno
3. Visualice el cdigo del estudiante de la siguiente manera: Considere que extrae los
dgitos de la tabla semestre y luego considerar '001'. Ejemplo: 082001
SELECT SUBSTRING(codsemestre,3,2)+ SUBSTRING(codsemestre,6,1)+ '001'
AS CODIGO
FROM TSemestre
V.- EJERCICIOS DE EXTESI
1. Dar el formato de salida de datos de la siguiente forma:
Evelyn Luque OchoaNombrado
Jos Luis Merma Aroni....Nombrado
2. Visualizar un da antes y un da despus de la siguiente fecha 12/05/10
3. Visualizar la fecha de matricula con el siguiente formato: Jueves, 10 de Abril de 2010

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 19 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

AOTACIOES:

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 20 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

LABORATORIO N 04
04
IMPLEMENTACION DE VISTAS Y PROCEDIMIENTOS
PROCEDIMIENTOS ALMACENADOS
I.- OBJETIVOS
Luego de completar este laboratorio usted ser capaz de:
 Crear vistas a partir de tablas
 Crear vistas a partir de otras vistas
 Crear, ejecutar, modificar y eliminar un procedimiento almacenado.
 Crear procedimientos almacenados que acepten parmetros.
II.- TRABAJO PREPARATORIO
 Conceptos bsicos para formular consultas simples y complejas.
 Conocer funciones de texto y fechas.
 Leer el marco terico de la presente gua.
III.- MARCO TERICO

1. VISTA: Es una forma alternativa de ver los datos de una o ms tablas. Es una tabla
virtual cuyo contenido instrucciones de consulta que actan sobre columnas y filas de
una o ms tablas o vistas. No existe como conjunto de datos almacenado en una base
de datos. Una vista acta como filtro de las tablas subyacentes a las que se hacen
referencia en ella.
SI TAXIS:

CREATE VIEW Nombre_vista [(Columna[,n] )]


[WITH ENCRYPTION]
[FOR REPLICATION]
AS
Sentencias SQL
[WITH CHEK OPTION]

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 21 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

Donde:
Encripta las filas almacenadas en la tabla de sistema
syscomments, correspondientes a la vista.
AS
:
Precede a las sentencias SQL
WITH CHECK OPTIO: Asegura que los datos estarn visibles en la vista, despus
de que se haya realizado modificaciones de datos a travs de la vista.
ECRYPTIO:

Para ejecutar una vista se puede usar el comando SELECT:


SELECT * FROM Nombre_vista

2. PROCEDIMIE TOS ALMACE ADOS: Es un conjuntos de sentencias en


lenguaje Transact SQL que pueden almacenarse en el propio servidor,
as como una coleccin precompilada de instrucciones T-SQL almacenadas bajo un
nombre y procesadas como una unidad. Son similares a los procedimientos de otros
lenguajes de programacin porque pueden:
 Aceptar parmetros de entrada y salida
 Contener instrucciones que manipulan objetos de la BD.
SI TAXIS:
CREATE PROC[EDURE] Nombre_procedimiento[;Numero]
[{@parametro Tipo_dato [VARYING] [=Valor_predeterminado]}]
[OUTPUT]
[WITH RECOMPILE l ENCRYPTION l RECOMPILE,ENCRYPTION]
[FOR REPLICATION]
AS
Sentencias _SQL

Donde:
umero
:
Es un
entero
que se usa para agrupar procedimientos
almacenados con el mismo nombre; de forma que sea fcil eliminarlos con una sola
instruccin.
@parametro

Es un parmetro o argumento para el procedimiento.

VARYIG
:
Define el conjunto de resultados como un parmetro
de salida y se utiliza para el tipo de datos cursos.
OUTPUT
:
Indica que el parmetro o argumento es de retorno. El valor se
devuelve al procedimiento que lo llama.

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 22 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

RECOMPILE :
Significa que el procedimiento almacenado se recompilara cada
vez que se ejecute.
ECRYPTIO :
Indica a SQL Server que encripte las filas almacenadas en la
tabla de sistema syscomments, correspondientes al procedimiento almacenado.
FOR REPLICATIO: Significa que los procedimientos almacenados creados
especficamente para replicacin no podrn ser ejecutados en un servidor suscriptor.
AS

Precede a las sentencias SQL.

Para ejecutar un Procedimiento Almacenado se usa el comando EXECUTE cuya


sintaxis es:
EXEC [UTE] Nombre_procedimiento [Valores_de_parametros ]

Para ejecutar los procedimientos almacenados con parmetros de salida se debe seguir
los siguientes pasos:


Declarar las variables que vamos a utilizar para llamar al


procedimiento. La sintaxis para declarar una variable es utilizar
la palabra reservada DECLARE, seguido del nombre de la variable y
el tipo.

Ejecutar el procedimiento. La sintaxis es utilizar la palabra


reservada EXEC, seguida del nombre del procedimiento, y los
parmetros, separados por comas, especificando si son de retorno.

Mostrar los resultados.

IV.- DESARROLLO DE LA GUA

1. Creacin de Vistas.
 Cree una vista llamada v_ListadodeAlumnos, que visualice a todos los alumnos de
la Universidad matriculados a partir del ao 2009, detallando su cdigo, nombre
completo y escuela profesional a la que pertenece.
CREATE VIEW v_ListadeAlumnos
AS
SELECT DISTINCT m.CodAlumno Codigo , Nombre_Completo
=ApellidoPaternoAlumno + ' ' +
ApellidoMaternoAlumno +
' ' + NombreAlumno,NomEscuelaProfesional Escuela_Profesional
FROM
TAlumno a INNER JOIN TMatricula m ON
a.CodAlumno = m.CodAlumno INNER JOIN TEscuelaProfesional e
ON m.CodEscuelaProfesional= e.CodEscuelaProfesional
WHERE substring(CodSemestre,1,4)>=2009
Curso: Sistema Gestin de Base de Datos II
Elaborado por: Ing. Marleny Peralta Ascue

Pgina 23 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

2. Creacin de una vista a partir de otra


 Cree una nueva vista, utilizando la vista anterior v_ListadeAlumnos que visualice
a todos los estudiantes que ingresaron en el semestre acadmico 2010-1 de la
Escuela Profesional de Ingeniera de Informtica y Sistemas.
CREATE VIEW v_Semestre2010_1
AS
SELECT Codigo, Nombre_Completo
FROM
v_ListadeAlumnos
WHERE Codigo LIKE '101%'
AND Escuela_Profesional = 'Ingeniera Informtica y Sistemas'

3. Procedimientos Almacenados
Procedimientos Almacenados sin parmetros


Crear un Procedimiento Almacenado que genere un reporte con las tres


asignaturas con mayor nmero de alumnos en el semestre acadmico 2009-2 de la
Facultad de Ingeniera.
CREATE PROCEDURE usp_AsignaturasconmayorNumeroAlumnos
AS
SELECT TOP 3 Codigo = a.CodAsignatura, Asignatura =
NomAsignatura, Cantidad = COUNT(*)
FROM
TAsignatura a INNER JOIN TAsignaturaProgramada ap ON
a.CodAsignatura = ap.CodAsignatura INNER JOIN
TDetalleMatricula dm ON ap.IDAsignaturaProgramada =
dm.IDAsignaturaProgramada
WHERE
CodSemestre='2009-2'
GROUP BY a.CodAsignatura,NomAsignatura
ORDER BY COUNT(*) DESC
Ejecutando:
EXEC usp_AsignaturasconmayorNumeroAlumnos

 Crear un Procedimiento Almacenado que visualice a los estudiantes que se hayan


matriculado en 12 crditos en el semestre acadmico 2009-2.
CREATE PROCEDURE usp_Alumnosmatriculado2009_2
AS
SELECT
m.CodAlumno Codigo, Nombre_Completo =
ApellidoPaternoAlumno + ' '+ ApellidoMaternoAlumno + ' ' +
NombreAlumno, TotalCreditos,CodEscuelaProfesional
FROM
TAlumno a INNER JOIN TMatricula m ON a.CodAlumno =
m.CodAlumno
WHERE
TotalCreditos = 12
Universidad acional Micaela Bastidas de Apurmac
Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 24 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

AND
CodSemestre='2009-2'
ORDER BY 2, 1
Ejecutando:
usp_Alumnosmatriculado2009_2

Procedimientos Almacenados con parmetros de entrada




Crear un procedimiento almacenado que visualice la carga acadmica del docente


en un semestre especfico, determinado por el usuario.
CREATE PROCEDURE usp_CargaAcademicaDocente
@CodDocente numeric(7), @CodSemestre char(6)
AS
SELECT
FROM
WHERE
SELECT
FROM
WHERE
AND

ApellidoPaternoDocente + ' ' + ApellidoMaternoDocente + ','


+ NomDocente as Nombre
TDocente
CodDocente = @CodDocente
a.CodAsignatura, NomAsignatura, NumeroCreditos,
HorasTeoricas, HorasPractica, HorasLaboratorio
TAsignatura a INNER JOIN TAsignaturaProgramada ap
ON a.CodAsignatura = ap.CodAsignatura
CodDocente = @CodDocente
CodSemestre= @CodSemestre

Ejecutando:
EXEC usp_CargaAcademicaDocente '10802','2009-2'
 Crear un procedimiento almacenado que liste a los alumnos matriculados en un
semestre y carrera profesional especfica.
CREATE PROCEDURE usp_AlumnosxEscuelaProfesional
@CodSemestre char(6), @CodEscuela char(3)
AS
SELECT a.CodAlumno Codigo , Nombre_Completo =ApellidoPaternoAlumno
+' '+ ApellidoMaternoAlumno
+' '+ NombreAlumno
FROM
TAlumno a INNER JOIN TMatricula m
ON a.CodAlumno=m.CodAlumno
WHERE CodSemestre=@CodSemestre
AND
m.CodEscuelaProfesional=@CodEscuela
ORDER BY 2
Ejecutando:
Curso: Sistema Gestin de Base de Datos II
Elaborado por: Ing. Marleny Peralta Ascue

Pgina 25 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

EXEC usp_AlumnosxEscuelaProfesional '2009-2', 'IS'

Procedimientos Almacenados con parmetros de salida


 Crear un procedimiento almacenado que determine el total de alumnos no
matriculados en un semestre especfico.
CREATE PROCEDURE usp_TotalAlumnosNomatriculados
@CodSemestre char(6), @TotalAlumnos int output
AS
SELECT @totalalumnos = count(*)
FROM
TAlumno a
WHERE NOT EXISTS(SELECT * FROM Tmatricula m
WHERE a.codalumno=m.codalumno
AND codsemestre=@codsemestre )
Ejecutando:
DECLARE @Totalalumnos int
EXEC
usp_TotalAlumnosNomatriculados '2010-1',@Totalalumnos output
SELECT @totalalumnos as 'total de alumnos no matriculados'

4. Ejecutar los siguientes procedimientos almacenados.


 Crear un procedimiento que permita ingresar un nuevo registro en la tabla
semestre.
CREATE PROCEDURE usp_ingresoregistros
@CodSemestre char(6),
@Fechainicio datetime,
@fechatermino datetime,
@observacion varchar(50)
AS
INSERT INTO TSEMESTRE
VALUES(@CodSemestre, @Fechainicio,@fechatermino,@observacion)
Ejecutando:
EXEC usp_ingresoregistros '2010-2', '06/06/10', '23/12/10', ' '
Nota: Si tiene problemas en introducir las fechas no se olvide de dar el formato
adecuado.
SET FORMAT dmy
(Permite ingresar la fecha en formato: da, mes y ao)
Universidad acional Micaela Bastidas de Apurmac
Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 26 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

1. Crear un procedimiento almacenado que muestre a todos los docentes que


empiecen con la letra J
CREATE PROC usp_docente
@NomDocente varchar(25) = 'J%'
AS
SELECT * FROM TDocente
WHERE NomDocente like @NOmDocente
Ejecutando:
usp_docente
2. Elimine el procedimiento almacenado anterior.
DROP PROC usp _docente
Puede utilizar el siguiente procedimiento almacenado del sistema para visualizar el
texto de los procedimientos.
SP_HELPTEXTO nombredelprocedimiento
Puede utilizar la siguiente instruccin para visualizar todos los procedimientos
almacenados creados por ustedes.

SELECT name FROM Sysobjects


WHERE type='P' AND name like 'usp%'

V.- EJERCICIOS DE EXTESI


Crear las siguientes vistas:
1. Lista de Alumnos Bachilleres y Egresados
2. Docentes con mayor nmero de aprobados
3. Cursos con menor nmero de alumnos matriculados
Crear los siguientes procedimientos almacenados:

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 27 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

4. Crear un procedimiento Almacenado que permita devolver un listado de los


alumnos con promedio ponderado de una escuela profesional y un semestre
especfico.
5. Alumnos matriculados por asignatura, semestre y Carrera Profesional.
6. Generar la constancia de notas.
7. Cursos programados en un semestre y Carrera Profesional.
8. Total de alumnos por Carrera Profesional
9. Lista de alumnos desaprobados y aprobados
10. Listar el plan de estudios de cada Carrera Profesional

AOTACIOES:
Paso de valores por el nombre del parmetro
Paso de valores por posicin.

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 28 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

LABORATORIO N 05
05
IMPLEMENTACI
IMPLEMENTACIN DE TRIGGERS O
DESENCADENADORES
I.- OBJETIVOS
Luego de completar este laboratorio usted ser capaz de:
 Definir triggers por actualizacin, insercin y eliminacin.
 Modificar y eliminar un trigger.
 Utilizar triggers para mantener la integridad de referencia.
II.- TRABAJO PREPARATORIO :
 Conocer el lenguaje de manipulacin de datos.
 Conocer funciones de texto y fechas.
 Leer el marco terico de la presente gua.
III.- MARCO TERICO:

1. DEFINICIN DE TRIGGER:
TRIGGER: Un trigger o desencadenador es un caso
especial de procedimiento almacenado, que se ejecuta automticamente
cuando se produce un evento en el servidor de la base de datos. As,
si por ejemplo se ejecuta una insercin, una actualizacin, o una
eliminacin de una tabla, se ejecutaran las sentencias definidas
para el trigger en concreto de esa tabla especfica.
Los usos principales de un trigger son los siguientes:






Mantener las reglas de integridad de los datos que van ms all de la simple
integridad referencial.
Mantener actualizados los totales dinmicos.
Mantener actualizada una columna actualizada
Implementar una accin referencial, como las eliminaciones en cascada.
Invocar una accin externa

La sintaxis completa para crear un trigger es:


Curso: Sistema Gestin de Base de Datos II
Elaborado por: Ing. Marleny Peralta Ascue

Pgina 29 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

CREATE TRIGGER Nombre_disparador


ON Tabla
EXEC [WITH ENCRYPTION]
FOR DELETE l INSERT l UPDATE
AS
Sentencias_SQL
Donde:
ECRYPTIO
:Encripta las filas almacenadas en la tabla de
sistema Syscomments, correspondientes al disparador.
DELETE l ISERT l UPDATE : Indican la instruccin que se va modificar los
datos de la tabla. Se debe especificar al menos una opcin. Se puede combinar
cualquiera de las tres instrucciones.
AS

: Procede a las sentencias SQL

Tambin se puede crear un trigger usando la clusula IF UPDATE, para acciones de


insercin o actualizacin

CREATE TRIGGER Nombre_disparador


ON Nombre_Tabla
FOR INSERT l UPDATE
AS
[ IF UPDATE Nombre_columna [{ and l or} UPDATE
(Nombre_columna)]]
Sentencias_SQL

2. LAS TABLAS DELETED E I SERTED.


Dentro de la definicin de un trigger, podemos hacer referencia a un par de tablas
lgicas, cuya estructura es similar a la tabla donde se est ejecutando el trigger, estas
son las tablas inserted y deleted.
SQL Server crea y administra automticamente ambas tablas. La estructura de las
tablas inserted y deleted es la misma que tiene la tabla que ha desencadenado la
ejecucin del trigger.
Tabla Inserted, solo est disponible en las operaciones INSERT y UPDATE y en ella
estn los valores resultantes despus de la insercin o actualizacin. Es decir los datos
Insertados. Inserted estar vaca en una operacin DELETE.
Universidad acional Micaela Bastidas de Apurmac
Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 30 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

Tabla Deleted: est disponible en las operaciones UPDATE y DELETE, estn los
valores anteriores a la ejecucin de la actualizacin y borrado. Es decir, los datos que
sern borrados. Deleted estar vaca en una operacin INSERT.
3. ELIMI ACI DE U TRIGGER.

DROP TRIGGER Nombre_disparador

IV.- DESARROLLO DE LA GUA:

1. Creacin de un trigger por insercin.


 Crear un trigger que calcule el total de crditos de la matricula.
CREATE TRIGGER Tr_Updatetotalcreditos
ON Tdetallematricula
FOR INSERT
AS
UPDATE Tmatricula
SET totalcreditos= ((SELECT numerocreditos FROM Tasignatura a INNER JOIN
Tasignaturaprogramada ap ON ap.codasignatura = a.codasignatura
INNER JOIN INSERTED i ON ap.idasignaturaprogramada =
i.Idasignaturaprogramada) + TotalCreditos)
FROM TMatricula m INNER JOIN Inserted I ON m.idmatricula=i.idmatricula
Comprobando: Inserte un nuevo registro en la tabla matricula ya que este registro
debe de existir primero, en nuestro caso ya se tiene la matrcula 09.
Para comprobar el trigger inserte cada registro a la tabla detalle de matrcula, estas
provocaran que el trigger se ejecute. Verifique que est calculando el total de
crditos.
INSERT INTO Tdetallematricula VALUES (9,10,null,00,'')
INSERT INTO Tdetallematricula VALUES (9,11,null,00,'')
INSERT INTO Tdetallematricula VALUES (9,12,null,00,'')

2. Creacin de un trigger por eliminacin.


 Crear un trigger que actualice el total de crditos de la matricula cuando el alumno
decide retirarse de una asignatura, asimismo actualizar el campo observacin.
CREATE TRIGGER TR_eliminacion
ON Tdetallematricula
Curso: Sistema Gestin de Base de Datos II
Elaborado por: Ing. Marleny Peralta Ascue

Pgina 31 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

FOR DELETE
AS
UPDATE Tmatricula
SET Totalcreditos = Totalcreditos - (SELECT numerocreditos FROM Tasignatura a
INNER JOIN Tasignaturaprogramada ap ON ap.codasignatura =
a.codasignatura INNER JOIN DELETED d
ON ap.idasignaturaprogramada = d.Idasignaturaprogramada),
Observacion = 'Matricula modificada Reg.16346'
FROM Tmatricula m INNER JOIN Deleted d ON m.Idmatricula=d.Idmatricula
Comprobando:
Eliminamos el registro que hemos ingresado en la tabla detalle de matrcula:
INSERT INTO Tdetallematricula VALUES (9,12,null,00,'')
La siguiente instruccin de eliminacin sobre la tabla detalle matricula provocar
que el trigger se ejecute.
DELETE Tdetallematricula
WHERE Idasignaturaprogramada=12
AND Idmatricula= 9
Verificamos que el total de crditos mantiene la consistencia de los datos.
SELECT * FROM Tmatricula

3. Creacin de un trigger por actualizacin.


 Crear un TRIGGER que al actualizar el nombre del alumno
Se estn actualizando los datos.

envi un mensaje:

CREATE TRIGGER Tr_update


ON Talumno
FOR UPDATE
AS
IF UPDATE (ApellidoPaternoAlumno)
PRINT 'El Apellido Paterno del Alumno est siendo modificado'

Comprobando: Modificar el apellido paterno de cualquier alumno.


UPDATE Talumno
SET Apellidopaternoalumno = 'Ochoa'
WHERE Codalumno='051005'

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 32 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

Verificando:
SELECT * FROM Talumno
V.- EJERCICIOS DE EXTESI
1. Crear un Trigger que actualice el campo observacin de la tabla detalle de
matricula, si el alumno tiene como nota ms de diez (10) actualizar como
aprobado, asimismo debe de actualizar la fecha de entrega de actas.

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 33 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

AOTACIOES:

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 34 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

LABORATORIO N 06
06
PROGRAMACI
PROGRAMACIN EN SQL SERVER
I.- OBJETIVOS
Luego de completar este laboratorio usted ser capaz de:
 Conocer el lenguaje de control de flujo
 Utilizar el lenguaje de control de Flujo
II.- TRABAJO PREPARATORIO
 Conocer el lenguaje de manipulacin de datos.
 Conocer estructuras de control de datos.
 Conocer funciones de texto y fechas.
 Leer el marco terico de la presente gua.
III.- MARCO TERICO
1. LE GUAJE DE CO TROL DE FLUJO: Permite controlar el flujo de ejecucin
de las instrucciones. El Lenguaje de control de flujo se puede utilizar en instrucciones
sencillas como lotes, procedimientos almacenados y triggers.
El Lenguaje de control de flujo proporciona una serie de herramientas que permiten el
control de flujo como en cualquier lenguaje de programacin.
1.1.

Sentencia BEGI .. E D: Definen bloques de instrucciones, para ser tratados


como unidades de ejecucin.

1.2.

Sentencia IF..ELSE: IF define una ejecucin condicional y ELSE una


ejecucin alternativa.
IF <Expresin boleana>
<Bloque de instrucciones>
[ELSE <Bloque de instrucciones>]

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 35 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

Donde:
Expresin Boleana puede incluir el nombre de una columna, una constante,
cualquier combinacin de nombres de columnas y constantes conectados por
operadores aritmticos, o una subconsulta, siempre que devuelva un solo valor.
1.3.

Sentencia WHILE: Provoca la ejecucin repetida del bloque de instrucciones,


mientras que la expresin condicional evalu verdadero.
WHILE <Expresin condicional>
<Bloque de instrucciones>

1.4.

Sentencia BREAK y CO TI UE: BREAK sale del final del siguiente bucle
WHILE ms exterior y CONTINUE, reinicia el bucle WHILE.

1.5.

Sentencia CASE: Permite que se muestre un valor alternativo dependiendo del


valor de la columna.

1.6.

Sentencia DECLARE: Inicializa una variable de T-SQL, crea una variable


local. Para asignar un valor a una variable se usa la instruccin SET.

1.7.

Sentencia PRI T: Imprime un mensaje definido por el usuario.

1.8.

Sentencia RETUR : Sale de forma incondicional.

IV.- DESARROLLO DE LA GUA:

1. Uso de IF..ELSE
 Si existe el procedimiento almacenado usp_ingresoregistros y usp_docente
eliminarlo de la tabla sysobjects.
IF EXISTS(SELECT * FROM sysobjects WHERE Type='P'
AND name='usp_ingresoregistros')
DROP PROC usp_ingresoregistros
IF (SELECT COUNT(*) FROM sysobjects WHERE
name ='usp_docente')=1
DROP PROC usp_docente
Universidad acional Micaela Bastidas de Apurmac
Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 36 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

2. Uso de DECLARE
 Declarar una variable local y luego visualizarla
DECLARE @Nombre varchar(35)
SET @Nombre= 'Jose Luis'
SELECT @Nombre AS Nombre

3. Uso BEGI..ED y PRIT


 Determinar si el personal est autorizado o no.
DECLARE @var varchar(20)
IF user_name()='sa'
BEGIN
PRINT 'personal'
SET @var= 'autorizado'
END
ELSE
BEGIN
PRINT 'personal'
SET @var= 'no autorizado'
END
PRINT @var

4. Uso de WHILE
 Hallar la suma acumulativa de los 10 primeros nmeros
DECLARE @num int
DECLARE @suma int
SET @num=0
SET @suma=0
WHILE (@num<10)
BEGIN
SET @num=@num+1
PRINT @num
SET @suma=@suma+@num
END
PRINT 'la suma es:' + str(@suma)

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 37 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

5. Uso de CASE
DECLARE @numdia INT
SET @numdia=DATEPART(dw,getdate())
SELECT CASE @numdia
WHEN 1 THEN 'lunes'
WHEN 2 THEN 'martes'
WHEN 3 THEN 'miercoles'
WHEN 4 THEN 'jueves'
WHEN 5 THEN 'viernes'
WHEN 6 THEN 'sabado'
WHEN 7 THEN 'domingo'
END AS 'Dia de la semana'

6. Uso del lenguaje de control de flujo con TRIGGER.


 Crear un Trigger que actualice el campo observacin de la tabla detalle de
matricula, si el alumno tiene como nota ms de diez (10) actualizar como
aprobado, si la nota es menos de once (11) actualizar como desaprobado.
Elimine el trigger anterior DROP TRIGGER tr_update_nota para que no genere
conflicto.
CREATE trigger tr_update_nota
ON tdetallematricula
FOR update
AS
IF UPDATE (nota)
IF (SELECT nota FROM inserted)>=11
UPDATE tdetallematricula
SET observacion='APROBADO'
FROM inserted i, tdetallematricula d
WHERE i.idmatricula=d.idmatricula
AND i.idasignaturaprogramada=d.idasignaturaprogramada
ELSE
UPDATE tdetallematricula
SET observacion='DESAPROBADO'
FROM inserted i, tdetallematricula d
WHERE i.idmatricula=d.idmatricula
AND i.idasignaturaprogramada=d.idasignaturaprogramada

Ingrese la siguiente instruccin que desencadenar que el trigger se ejecute:

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 38 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UPDATE tdetallematricula
SET nota=10
WHERE idmatricula=9 and idasignaturaprogramada=10
 Crear un trigger que actualice el estado del alumno de forma tal que el estudiante
que se encuentra en PRE-GRADO cambia de estado a EGRESADO, siempre y
cuando haya aprobado todos los crditos exigidos del plan de estudios (220 cr.)
CREATE TRIGGER tr_updateestadoalumno
ON tdetallematricula
FOR UPDATE
AS
BEGIN
DECLARE @codalumno varchar(9)
SET @codalumno=(SELECT DISTINCT codalumno
FROM tmatricula m INNER JOIN inserted i
ON i.idmatricula= m.idmatricula)
IF UPDATE(nota)
IF (SELECT sum(numerocreditos)
FROM tmatricula m INNER JOIN tdetallematricula dm
ON m.idmatricula = dm.idmatricula
INNER JOIN tasignaturaprogramada ap
ON dm.idasignaturaprogramada = ap.idasignaturaprogramada
INNER JOIN tasignatura a
ON a.codasignatura = ap.codasignatura
WHERE nota >10 and m.codalumno= @codalumno)=220
UPDATE talumno
SET EstadoAlumno='EGRESADO'
FROM inserted i INNER JOIN tmatricula m
ON i.idmatricula=m.idmatricula INNER JOIN talumno al
ON m.codalumno=al.codalumno
END
Compruebe: Actualice las notas de un alumno que est terminando sus estudios y
esto har que el trigger se ejecute.

7. Uso del lenguaje de control de flujo con procedimientos almacenados


 Crear un procedimiento, el cual permita buscar un determinado Alumno por su
cdigo. Si existe el cdigo se debe mostrar la siguiente informacin: Apellidos y
Nombres (en una sola columna), Telfono, Edad y Sexo. En el caso de Sexo de
debe especificar si es "Masculino" "Femenino". En caso de que no exista se debe
mostrar un mensaje No existe el cdigo de alumno que buscas....
Curso: Sistema Gestin de Base de Datos II
Elaborado por: Ing. Marleny Peralta Ascue

Pgina 39 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

CREATE PROCEDURE usp_BuscarAlumno


@CodAlu Char (10)
AS
IF Exists ( SELECT * FROM Talumno WHERE CodAlumno = @CodAlu)
BEGIN
SELECT 'Apellidos y Nombres' = Left(ApellidoPaternoAlumno + ' ' +
ApellidoMaternoAlumno +', '+ NombreAlumno, 40),
Telefono = TelefonoAlumno,
Edad = Year(GetDate()) - Year(FechaNacimiento) ,
Sexo = CASE Sexo WHEN 'F' THEN 'Femenino'
WHEN 'M' THEN 'Masculino'
END
FROM TAlumno WHERE CodAlumno = @CodAlu
END
ELSE
PRINT 'No existe el codigo de alumno que buscas...:'+@Codalu
Ejecute el procedimiento almacenado con la siguiente instruccin:
EXEC usp_BuscarAlumno 091001
 Crear un Procedimiento Almacenado que permita calcular el factorial de un
nmero.
CREATE PROCEDURE sp_Factorial
@Numero int
AS
BEGIN
DECLARE @contador int,
@Respuesta int
IF (@Numero = 0 OR @Numero = 1)
SET @Respuesta = 1
ELSE
BEGIN
SET @contador = @Numero - 1
EXEC @Respuesta = spFactorial @contador
SET @Respuesta = @Respuesta * @Numero
PRINT @Respuesta
END
RETURN (@Respuesta)
END
Ejecutando:
EXEC sp_factorial 5

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 40 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

V.- EJERCICIOS DE EXTESI

Resuelva lo siguiente: Use lotes, triggers, procedimientos almacenados.


 Implemente un trigger o procedimiento almacenado que permita ingresar un
registro y genere a la vez el cdigo del alumno.
 Mejore el Trigger tr_updateestadoalumno, considrese todos los casos posibles.
 Realice un procedimiento que muestre el total de alumnos matriculados en cada
curso en un determinado periodo. Si el total de matriculados en un curso es menor
a 5 se debe mostrar en una columna de Observaciones el texto "Curso anulado", en
otro caso esta columna debe estar vaca

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 41 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

AOTACIOES:

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 42 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

LABORATORIO N 07
07
TRANSACCIONES
I.- OBJETIVOS
Luego de completar este laboratorio usted ser capaz de:
 Definir una transaccin.
 Entender el funcionamiento de las sentencias COMMIT y ROLLBACK.
II.- TRABAJO PREPARATORIO
 Implementar procedimientos almacenados con estructuras de control de datos.
 Implementar triggers con estructuras de control de datos.
 Leer el marco terico de la presente gua.
III.- MARCO TERICO
1. TRA SACCI : Una transaccin es un conjunto de operaciones que van a ser
tratadas como una nica unidad de trabajo. Estas transacciones deben cumplir 4
propiedades fundamentales comnmente conocidas como ACID (atomicidad,
coherencia, asilamiento y durabilidad), si una transaccin tiene xito, todas las
modificaciones de los datos realizadas durante la transaccin se confirman y se
convierten en una parte permanente de la base de datos. Si una transaccin encuentra
errores y debe cancelarse o deshacerse, se borran todas las modificaciones de los
datos.
2. TIPOS DE TRA SACCIO ES:


TRA SACCIO ES EXPLICITAS: Cada transaccin se inicia explcitamente


con la instruccin BEGIN TRANSACTION y se termina explcitamente con una
instruccin COMMIT o ROLLBACK

TRA SACCIO ES IMPLCITAS: Se inicia implcitamente una nueva


transaccin cuando se ha completado la anterior, pero cada transaccin se
completa explcitamente con una instruccin COMMIT O ROLLBACK

3. SE TE CIAS DE PROCESAMIE TO DE TRA SACCIO ES:




BEGI TRA SACTIO : Marca el punto de inicio de una transaccin explcita


de una conexin.

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 43 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

COMMIT TRA SACTIO : Seala el final con xito de una transaccin


correctamente si no hubo errores. Una nueva transaccin empieza inmediatamente
despus de la sentencia COMMIT.

ROLLBACK TRA SACTIO : Aborta la transaccin, deshaciendo las


modificaciones que haya efectuado a la base de datos. Una nueva transaccin
empieza inmediatamente despus de la sentencia ROLLBACK

SAVE TRA SACCIO : Establece un punto de guardar a mitad de la transaccin.

IV.- DESARROLLO DE LA GUA


1.

Analice y verifique cada una de las instrucciones


 Digite la siguiente instruccin y ejectelo.
BEGIN TRANSACTION
DELETE FROM Tdetallematricula
WHERE idmatricula = 9
ROLLBACK TRANSACTION -- anula la transaccin
Se elimin el registro?_____________________________________________
 Ejecute la siguiente instruccin.
BEGIN TRANSACTION
DELETE FROM Tdetallematricula
WHERE idmatricula = 9
COMMIT TRANSACTION
Se elimin el registro?_____________________________________________
 Ejecute las siguientes instrucciones una por una y verifique el resultado.
BEGIN TRANSACTION
DELETE FROM Tdetallematricula
WHERE idmatricula = 9
SELECT @@TRANCOUNT
ROLLBACK TRANSACTION
La variable global @@TRANCOUNT devuelve el nmero, de transacciones
activas en la conexin actual.

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 44 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

2. Sentencias de procesamiento de transacciones en un trigger.


 Crear un trigger que no permita matricularse al alumno en una asignatura, siempre
y cuando este no haya aprobado su prerrequisito.
CREATE TRIGGER tr_control
ON Tdetallematricula
FOR INSERT
AS
BEGIN TRAN
DECLARE @Codalumno char(8)
SET @Codalumno=(SELECT Codalumno
FROM Inserted i INNER JOIN Tmatricula m
ON i.Idmatricula= m.Idmatricula)
DECLARE @Codasignatura char(5)
SET @Codasignatura= (SELECT asi.Codasignatura
FROM inserted i INNER JOIN Tasignaturaprogramada ap
ON i.idasignaturaprogramada=ap.idasignaturaprogramada
INNER JOIN Tasignatura asi ON
ap.codasignatura=asi.codasignatura)
IF ((SELECT MAX(nota) FROM Tmatricula m INNER JOIN
Tdetallematricula d ON m.idmatricula=d.idmatricula
INNER JOIN tasignaturaprogramada ap
ON d.idasignaturaprogramada=ap.idasignaturaprogramada
INNER JOIN tasignatura asi
ON ap.codasignatura=asi.codasignatura
INNER JOIN trequisito r
ON r.codrequisito=asi.codasignatura
WHERE m.Codalumno=@Codalumno
AND r.Codasignatura=@Codasignatura) < 11)
OR
((SELECT MAX(nota) FROM Tmatricula m INNER JOIN
Tdetallematricula d
ON m.idmatricula=d.idmatricula
INNER JOIN tasignaturaprogramada ap
ON d.idasignaturaprogramada=ap.idasignaturaprogramada
INNER JOIN tasignatura asi
ON ap.codasignatura=asi.codasignatura
WHERE m.codalumno=@codalumno
AND asi.codasignatura=@codasignatura) > 10)
BEGIN
PRINT ' NO PUEDE MATRICULARSE'
ROLLBACK TRAN
END

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 45 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

COMMIT TRAN --Confirmamos la transaccin


 insertar los siguientes registros a la tabla Trequisito
INSERT INTO Trequisito VALUES('IS101','NING')
INSERT INTO Trequisito VALUES ('IS102','NING')
INSERT INTO Trequisito VALUES ('IS103','NING')
INSERT INTO Trequisito VALUES ('IS201','IS101')
INSERT INTO Trequisito VALUES ('IS202','IS102')
INSERT INTO Trequisito VALUES ('IS203','IS103')
INSERT INTO Trequisito VALUES ('IS301','IS201')
INSERT INTO Trequisito VALUES ('IS302','NING')
INSERT INTO Trequisito VALUES ('IS303','IS203')
Comprobando: En nuestro caso, ya existe la matricula Nro. 7 que corresponde al
estudiante Anyinson Christofer Acharte con cdigo 91001, quien va a realizar la
matricula del presente semestre acadmico (2010-1).
La siguiente instruccin desencadenar que el trigger Tr_control se ejecute.
INSERT INTO Tdetallematricula VALUES (7,18,null,00,'')
--no puede matricularse en la asignatura puesto que no aprob el requisito que es
Geometria Analtica.
INSERT INTO Tdetallematricula VALUES (7,10,null,00,'')
--no puede matricularse en la asignatura IS101 puesto que aprob y no puede volverse
a matricular en una asignatura aprobada.
INSERT INTO Tdetallematricula VALUES (7,13,null,00,'')
--se puede matricular en la asignatura IS202 por que aprob el requisito.
INSERT INTO Tdetallematricula VALUES (7,17,null,00,'')
--se puede matricular en la asignatura IS302 por que no tiene requisito.
V.- EJERCICIOS DE EXTESI
 Mejorar el Trigger tr_Control, para asignaturas que no tengan requisito y
asignaturas que an no tienen una nota.
 Crear un trigger utilizando transacciones para restringir el nmero de crditos a
matricularse cuando desaprueba por primera, segunda, tercera y cuarta vez una
misma asignatura.

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 46 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

LABORATORIO N
N 08
08
SEGURIDAD DE LA BASE DE DATOS
I.- OBJETIVOS
Luego de completar este laboratorio usted ser capaz de:
 Administrar usuarios y grupos de usuarios a travs de roles
 Asignar permisos para el acceso de los datos.
II.- TRABAJO PREPARATORIO
 Conocer definiciones de seguridad y administracin de base de datos.
 Leer el marco terico de la presente gua.
III.- MARCO TERICO

1. SEGURIDAD DE BASE DE DATOS: Seguridad significa controlar la


distribucin de los datos y respetar los deseos de las personas
externas y limitar el acceso a los datos, crear cuentas de
usuario y dar el acceso de estos a los datos, es responsable de
establecer programas y asegurar que los respaldos de informacin
sean seguros.
La seguridad es muy importante
para la proteccin de la
informacin, sobre todo en entornos grandes, contra los accesos
indebidos.

2. TIPOS DE SEGURIDAD:
 Seguridad Fsica: Aquella que persigue salvaguardar los datos de
agresiones externas, como por ejemplo la destruccin de la base de
datos por un incendio o inundacin.
 Seguridad Lgica: Aquella que afecta a la proteccin de los datos
de accesos u operaciones no deseados, como por ejemplo, una

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 47 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

consulta a informacin no autorizada por parte de un usuario, el


borrado de una tabla, etc.

2.
AUTENTICACION:
: Proceso por el cual un servidor se registra
AUTENTICACION
el sistema
y
este lo valida.
Existen dos formas de autenticar a los
usuarios:
en

AUTHENTICATION
AUTHENTICATION
Windows
WindowsNT
NT
Verifica
VerificaPassword
Password
Windows
WindowsNT
NT
Windows
WindowsNT
NT
Gropos
GroposooUsuarios
Usuarios

OR
SQL
SQLServer
Server

SQL Server
Verifica Password

SQL
SQLServer
Server
Cuenta
Cuentade
deUsuario
Usuario

3. VALIDACI DE PERMISOS.
 Tipos De Permisos.
OBJETOS
OBJETOS
CREATE
CREATEDATABASE
DATABASE
CREATE
CREATETABLE
TABLE
CREATE
CREATEVIEW
VIEW
CREATE
CREATEPROCEDURE
PROCEDURE

DECLARACIONES
DECLARACIONES
SELECT
SELECT
INSERT
INSERT
UPDATE
UPDATE
DELETE
DELETE
REFERENCES
REFERENCES

CREATE
CREATERULE
RULE
CREATE
CREATEDEFAULT
DEFAULT
BACKUP
BACKUPDATABASE
DATABASE

SELECT
SELECT
UPDATE
UPDATE
REFERENCES
REFERENCES

BACKUP
BACKUPLOG
LOG
EXEC
EXEC

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 48 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

 Concesin de privilegios.
La sentencia que permite otorgar privilegios es:
GRANT sentencia TO USUARIOS
GRANT permisos [(Columnas)] ON tabla TO usuarios
 Revocacin de privilegios.
La sentencia que permite quitar los permisos a los usuarios sobre un objeto es:
REVOQUE sentencia FROM USUARIOS
REVOQUE permisos [(Columnas)] ON tabla FROM usuarios

 Denegacin de permisos.
La sintaxis que deniega permisos es:
DENY sentencia TO USUARIOS
DENY permisos [(atributos)] ON Tabla TO USUARIOS

IV.- DESARROLLO DE LA GUA

1. Creacin de grupos y usuarios utilizando el explorador de objetos.


 Creacin de grupos (roles) por cada base de datos
1. Seleccione la base de datos BDSistemaAcademico
2. Seleccione el objeto Seguridad, presione botn secundario / Nuevo rol en la
base de datos.
3. En cuadro Nombre, ingrese el nombre del grupo o rol por Ejemplo: SOPORTE
4. Haga un click en el botn Aceptar

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 49 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

Proceda a crear los grupos USUARIO y ADMINISTRADOR


 Creacin de Inicios de Sesin (Login).
1. Seleccione su servidor.
2. Expanda la rama Seguridad (security).
3. Seleccione el men Login y clic con el botn secundario y del men
emergente seleccione New Login.
4. En el cuadro Nombre, ingrese el nombre del usuario. Por ejemplo mperalta.
5. Seleccione la autenticacin de Sql Server
6. En el cuadro contrasea ingrese mperalta
7. Seleccione la base de datos predeterminada : BDSistemaAcademico
8. Haga un click en botn Aceptar
9. Confirme la contrasea ingresado anteriormente.

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 50 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

Proceda a crear los siguientes inicios de sesiones.


Login
dveneros
epalomino
caliaga

Password
David
Eva
Christian

Usuario
David Veneros
Eva Palomino
Christian Aliaga

Grupo
SOPORTE
USUARIO
ADMINISTRADOR

Nota: Todos los usuarios van a tener acceso a la


base de datos
BDSistemaAcademico por defecto y los permisos para la misma base de datos.

2. Asignacin de Permisos
 Agregando usuarios a la base de datos :
1.
2.
3.
4.

Seleccione la base de datos BDSistemaAcademico y expndalo


Seleccione el objeto seguridad dentro de la base de datos.
Seleccione el objeto usuario y clic botn secundario / New User.
Ingresara el nombre del usuario y seleccionar los usuarios que deben de
pertenecer a la base de datos.

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 51 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

 Asignando permisos.
1. Estando en la ventana de creacin de nuevo usuario de la base de datos,
selecionar la pgina asegurables (Securables)
2. Seleccionar el objeto para asignarles los permisos, en nuestro caso
seleccionaremos las tablas.
3. Hacer clic en Ok.

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 52 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

4. Seleccionar las tablas para asignar los permisos.

5. Asignar los permisos respectivos a cada tabla seleccionada.

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 53 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

3. Asignacin de permisos en el editor de consultas.


 Concediendo permisos
GRANT SELECT
ON TALUMNO
TO mperalta
GRANT INSERT, UPDATE
ON Talumno
TO epalomino, caliaga
 egando permisos
DENY SELECT, INSERT,
UPDATE
ON TAlumno|
TO epalomino, caliaga
 Revocando permisos
REVOKE SELECT, INSERT,
UPDATE
ON Talumno
FROM epalomino, caliaga

4. Comprobando los permisos


 Para comprobar los permisos concedidos a las tablas debemos de ingresar al
servidor o conectarnos con el nombre de usuario (login).

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 54 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA
INFORMTICA Y SISTEMAS

REGISTROS DE LA BASE DE DATOS


BDSistemaAcademico
USE BDSistemaAcademico
GO
SET DATEFORMAT dmy
GO
--Tabla TAlumno
INSERT INTO TAlumno VALUES('091001','Anyinson
Cristofer','Acharte','Quispe','32456212','01/10/1995','Jr. Lima 420','M','','Pre-Grado')
INSERT INTO TAlumno VALUES('091002','Jessica','Blanco','Cordova','32456213','01/10/1995','Jr.
Lima 430','F','','Pre-Grado')
INSERT INTO TAlumno VALUES('091003','Axel Andree','Caceres','Cansaya','32456215',
'12/10/1993', 'Jr. Puno 320','M','','Pre-Grado')
INSERT INTO TAlumno VALUES('091004','Olga Zarepta','Cuchillo','Caytuiro','32456222',
'01/10/1994','Av. Arequipa 40','F','','Pre-Grado')
INSERT INTO TAlumno VALUES('091005','Yalu','Garay','Santos','32456220','10/01/1987','Av. Peru
480','M','','Pre-Grado')
INSERT INTO TAlumno VALUES('092001','Marbeli','Gutierrez','Franco','32456245','08/08/1994','Jr.
Junin 320','F','','Pre-Grado')
INSERT INTO TAlumno VALUES('092002','Margot','Huayta','Patio','32456255','09/02/1994','Jr.
Lima 123','F','','Pre-Grado')
INSERT INTO TAlumno VALUES('092003','Jose Luis','Hurtado','Casaverde','32456262',
'03/04/1999','Av. Peru 420','M','','Pre-Grado')
INSERT INTO TAlumno VALUES('092004','Jhon','Juarez','Sandoval','32456236','01/10/1994','Av.
Arequipa 350','M','','Pre-Grado')
INSERT INTO TAlumno VALUES('092005','Alan Paul','Huaysara','Enciso','32456264',
'04/06/1992','Jr. Junin 420','M','','Pre-Grado')

Curso: Sistema Gestin de Base de Datos II


Elaborado por: Ing. Marleny Peralta Ascue

Pgina 55 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

INSERT INTO TAlumno VALUES('101001','Julian','Abarca','Ezequilla','32456298','01/10/1994','Jr.


Lima 850','M','','Pre-Grado')
INSERT INTO TAlumno VALUES('101002','Yuri','Argamonte','Huamani','21556212','05/06/1994','Jr.
Lima 420','M','','Pre-Grado')
INSERT INTO TAlumno VALUES('101003','Jenny','Caceres','Nieves','22556212','06/06/1994','Jr.
Puno 120','F','','Pre-Grado')
INSERT INTO TAlumno VALUES('101004','Edison','Chiqlla','Carrasco','26556212','10/06/1994','Jr.
Lima 120','M','','Pre-Grado')
INSERT INTO TAlumno
VALUES('101005','Veronica','Palomino','Montalvo','35556212','01/03/1992','Av. Peru 436','F','','PreGrado')
INSERT INTO TAlumno VALUES('051010','Marco','Aguilar','Espinoza','46556212','01/06/1983','Av.
Peru 458','M','','Bachiller')
INSERT INTO TAlumno VALUES('051005','Javier','Machicao','Monroy','47556212','12/11/1984','Jr.
Lima 458','M','','Bachiller')
INSERT INTO TAlumno VALUES('052001','Olivia','Trujillo','Casas','48556212','10/12/1985','Jr.
Lima 450','F','','Bachiller')
--TSemestre
INSERT INTO TSemestre VALUES('2009-1','02/04/09','31/12/09','')
INSERT INTO TSemestre VALUES('2009-2','06/06/09','23/12/09','')
INSERT INTO TSemestre VALUES('2010-1','05/04/10','31/07/10','')
--TescuelaProfesional
INSERT INTO TEscuelaProfesional VALUES('IS','Ingeniera Informtica y Sistemas','')
INSERT INTO TEscuelaProfesional VALUES('MI','Ingeniera de Minas','')
INSERT INTO TEscuelaProfesional VALUES('AG','Ingeniera Agroindustrial','')
--TDocente
INSERT INTO TDocente VALUES
(10801,'IS','Jorge','Serrano','Quispe','','','M','','23421563','Auxiliar','C')
INSERT INTO TDocente VALUES (10802,'IS','Jose
Luis','Merma','Aroni','','','M','','23789456','Asociado','N')
INSERT INTO TDocente VALUES
(10803,'IS','Wilber','Colque','Candia','','','M','','23894561','Auxiliar','C')
INSERT INTO TDocente VALUES
(10804,'IS','Evelyn','Luque','Ochoa','','','F','','46892310','Auxiliar','N')
INSERT INTO TDocente VALUES
(10805,'IS','Erech','Ordoez','Ramos','','','M','','00496385','Auxiliar','N')
INSERT INTO TDocente VALUES
(10806,'MI','Patricia','Lima','Bendezu','','','F','','45612378','Asociado','N')
INSERT INTO TDocente VALUES
(10807,'MI','Jhon','Zegarra','Sierra','','','M','','78945612','Asociado','I')
INSERT INTO TDocente VALUES
(10808,'AG','Rosa','Marrufo','Ludea','','','F','','23964521','Principal','I')
--TAsignatura
INSERT INTO TAsignatura VALUES ('IS101','Introduccin a la Informtica y
Sistemas',4,3,0,2,'AFPO')
INSERT INTO TAsignatura VALUES ('IS102','Matemtica Discreta I',4,3,2,0,'AFPB')
Universidad acional Micaela Bastidas de Apurmac
Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 56 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, Programacin y Seguridad de base de datos con SQL Server 2005

INSERT INTO TAsignatura VALUES ('IS103','Matemticas Bsicas',4,3,2,0,'AFG')


INSERT INTO TAsignatura VALUES ('IS201','Algoritmica I',5,3,0,4,'AFPO')
INSERT INTO TAsignatura VALUES ('IS202','Matemtica Discreta II',4,3,2,0,'AFPB')
INSERT INTO TAsignatura VALUES ('IS203','Geometra Analtica',4,3,2,0,'AFG')
INSERT INTO TAsignatura VALUES ('IS301','Algotitmica II',5,3,0,4,'AFPO')
INSERT INTO TAsignatura VALUES ('IS302','Sistemas Operativos',4,3,0,2,'AFPO')
INSERT INTO TAsignatura VALUES ('IS303','Calculo I',4,3,0,2,'AFPB')
--TAsignaturaProgramada
INSERT INTO TAsignaturaprogramada VALUES(1,'IS101' , '2009-1' , '10802', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(2,'IS102' , '2009-1' , '10803', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(3,'IS103' , '2009-1' , '10803', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(4,'IS101' , '2009-2' , '10802', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(5,'IS102' , '2009-2' , '10808', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(6,'IS103' , '2009-2' , '10808', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(7,'IS201' , '2009-2' , '10801', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(8,'IS202' , '2009-2' , '10808', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(9,'IS203' , '2009-2' , '10803', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(10,'IS101' , '2010-1' , '10802', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(11,'IS102' , '2010-1' , '10808', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(12,'IS103' , '2010-1' , '10802', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(13,'IS201' , '2010-1' , '10801', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(14,'IS202' , '2010-1' , '10806', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(15,'IS203' , '2010-1' , '10808', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(16,'IS301' , '2010-1' , '10804', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(17,'IS302' , '2010-1' , '10805', 'IS','')
INSERT INTO TAsignaturaprogramada VALUES(18,'IS303' , '2010-1' , '10808', 'IS','')
--Tmatricula
INSERT INTO TMatricula VALUES(1,'091001','IS','2009-1','10/04/09',12,'')
INSERT INTO TMatricula VALUES(2,'091002','IS','2009-1','10/04/09',12,'')
INSERT INTO TMatricula VALUES(3,'091001','IS','2009-2','05/06/09',12,'')
INSERT INTO TMatricula VALUES(4,'091002','IS','2009-2','05/06/09',12,'')
INSERT INTO TMatricula VALUES(5,'092001','IS','2009-2','10/06/09',12,'')
INSERT INTO TMatricula VALUES(6,'092002','IS','2009-2','10/06/09',12,'')
INSERT INTO TMatricula VALUES(7,'091001','IS','2010-1','26/03/10',0,'')
INSERT INTO TMatricula VALUES(8,'092001','IS','2010-1','26/03/10',0,'')
INSERT INTO TMatricula VALUES(9,'101001','IS','2010-1','30/03/10',0,'')
INSERT INTO TMatricula VALUES(10,'101002','IS','2010-1','30/03/10',0,'')
--TDetalleMatricula
INSERT INTO TDetallematricula VALUES (1,1,NULL,10,'')
INSERT INTO TDetallematricula VALUES (1,2,NULL,13,'')
INSERT INTO TDetallematricula VALUES (1,3,NULL,13,'')
INSERT INTO TDetallematricula VALUES (2,1,NULL,15,'')
INSERT INTO TDetallematricula VALUES (2,2,NULL,09,'')
INSERT INTO TDetallematricula VALUES (2,3,NULL,13,'')
INSERT INTO TDetallematricula VALUES (3,4,NULL,12,'')
INSERT INTO TDetallematricula VALUES (3,8,NULL,12,'')
INSERT INTO TDetallematricula VALUES (3,9,NULL,10,'')
INSERT INTO TDetallematricula VALUES (4,7,NULL,12,'')
Curso: Sistema Gestin de Base de Datos II
Elaborado por: Ing. Marleny Peralta Ascue

Pgina 57 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Trial version of e-PDF Document Converter v2.1


Integridad, programacin y seguridad de base de datos con SQL Server 2005

INSERT INTO TDetallematricula VALUES (4,5,NULL,13,'')


INSERT INTO TDetallematricula VALUES (4,9,null,13,'')
INSERT INTO TDetallematricula VALUES (5,4,null,13,'')
INSERT INTO TDetallematricula VALUES (5,5,null,15,'')
INSERT INTO TDetallematricula VALUES (5,6,null,14,'')
INSERT INTO TDetallematricula VALUES (6,4,null,12,'')
INSERT INTO TDetallematricula VALUES (6,5,null,15,'')
INSERT INTO TDetallematricula VALUES (6,6,null,05,'')

Universidad acional Micaela Bastidas de Apurmac


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas

Pgina 58 de 57

Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.

Potrebbero piacerti anche