1. Crear una nueva base de datos llamada Prueba y las tablas Emp y Dept. Crear la integridad de los datos utilizando reglas, valores por defecto entre otros, dependiendo del análisis que hagamos previamente.
- Creo la base de datos
on primary
(Name = 'Prueba_Data' ,
Filename = 'D:\Prueba_Data.mdf' ,
Size = 5MB ,
MaxSize = 8MB ,
Filegrowth = 2%)
Log on
(Name = 'Emp_Log' ,
Filename = 'D:\Prueba_Log.ldf' ,
Size = 6MB ,
MaxSize = 8MB ,
Filegrowth = 2%)
- Creo las tablas y utilizo los valores Null y Not Null convenientemente.
go
create table Emp
(Emp_no int not null ,
Apellido nvarchar(20) not null ,
Oficio nvarchar(20) not null ,
Dir int null ,
Fecha_alt smalldatetime null ,
Salario int null ,
Comision int null ,
Dept_no int null)
go
create table Dept
(Dept_no int not null ,
Dnombre nvarchar(19) not null ,
Loc nvarchar(20) null)
- Poner Restricción Primary Key en Departamento
add constraint PK_Dept Primary Key(Dept_no)
- Poner Primary Key en Empleados
add constraint Pk_Emp Primary Key(Emp_no)
- Poner la Foreign Key en Empleados
add constraint FK_Emp Foreign Key (Dept_no)
references Dept (Dept_no)
on Update Cascade
on Delete Cascade
- Creo una restricción Check para el Salario
add constraint CK_Salario Check (Salario > 0)
- Creo una restricción Check para la Comisión
add constraint CK_Comisión Check (Comision >= 0)
- Creo una restricción Check para la Fecha
add constraint CK_Fecha Check (Fecha_alt > '01/01/1970' and Fecha_alt <= GetDate())
- Creo un Valor Predeterminado para Fecha
add constraint DF_Fecha Default GetDate() for Fecha_alt
- Creo un Valor Predeterminado Comisión
add constraint DF_Comision Default 0 for Comision
- Creo una restricción Default para la localidad en Departamento
add constraint DF_Loc Default 'DESCONOCIDA' for Loc
- Creo una regla para que todos los empleados tengan asociado director
GO
Create Rule Director_Rule as @Director in(7566,7698,7782,7839)
GO
--Para vincular regla a la columna
--Para vincular regla a la columna
exec sp_bindrule Director_Rule, 'Emp.Dir'
--Para desvincular regla a la columna
--Para desvincular regla a la columna
exec sp_unbindrule 'Emp.Dir', Director_Rule
2. Insertar los datos convenientemente para verificar la integridad de nuestra base de datos
- Inserto un departamento
- Inserto un empleado
- Cambio el código de director (Dir) a uno que exista en la regla.
- Cambio la fecha de ingreso del empleado (Fecha_alt) a una que este entre el intervalo definido en la restricción Check.
Espero haber ayudado en algo. Hasta la próxima oportunidad!
No hay comentarios:
Publicar un comentario