Sie sind auf Seite 1von 14

BASE DE DATOS II

8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez



UNIVERSIDAD AUTNOMA DEL ESTADO DE
HIDALGO
ESCUELA SUPERIOR HUEJUTLA


NOMBRE DEL ALUMNO:
JOSUE EMMANUEL REYES DE LA CRUZ.
HERLINDO OAXACA RODRGUEZ.

NOMBRE DEL DOCENTE:
MTRO. FELIPE DE JESUS NUEZ CARDENAS

NOMBRE DE LA MATERIA: BASE DE DATOS II

GRADO Y GRUPO: 8 SEMESTRE GRUPO 1

FECHA: 21/02/2013




BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez

Escuela Superior Huejutla
Practica de Base de datos II
Febrero 2013

Se desea tener una base de datos que almacene la informacin sobre los empleados de una
empresa, los departamentos en los que trabajan y los estudios de que disponen. Guardaremos
el historial laboral y salarial de todos los empleados. Para ello contamos con las siguientes
tablas:

Empleados.
NOMBRE TIPO DE DATO RESTRICCION
DNI Int Primary key
Nombre Varchar (10) Not null
Apellido1 Varchar (15) Not null
Apellido2 Varchar (20) Null
Direcc1 Varchar (25) Null
Direcc2 Varchar (20) Null
Ciudad Varchar (20) Null
Municipio Varchar (20) Null
Cod_postal Varchar (5) Null
Sexo Char(1) Not null Check
('F','M')
Fecha_nac Date Null

Departamentos.
NOMBRE TIPO DE DATO RESTRICCION
Dpto_cod Int Primary key
Nombre_dpto Varchar (30) Not null unique
Jefe Int Null
Presupuesto Int Not null
Pres_actual Int Null

Universidades.
NOMBRE TIPO DE DATO RESTRICCION
Univ_cod Int Primary key
Nombre_univ Varchar (25) Not null
Ciudad Varchar (20) Null
Municipio Varchar (2) Null
Cod_postal Varchar (5) Null

Estudios.
NOMBRE TIPO DE
DATO
RESTRICCION
Empleado_DNI Int References Empleados(DNI)
Universidad Int References
Universidades(Univ_cod)
Ao smallint Null
Grado Varchar
(3)
Null
Especialidad Varchar
(20)
Null

Trabajos.
NOMBRE TIPO DE DATO RESTRICCION
Trabajo_cod Int null
Nombre_trab Varchar (20) Not null unique
Salario_min Int Not null
Salario_max Int Not null

Historial_salarial.
NOMBRE TIPO DE
DATO
RESTRICCION
Empleado_DNI Int References
Empleados(DNI)
Salario Entero Not null
Fecha_comienz
o
Date Null
Fecha_fin Date Null

Historial_laboral.

NOMBRE TIPO DE
DATO
RESTRICCION
Empleado_DNI Int References
Empleados(DNI)
Trab_Cod Entero References Trab_Cod
Fecha_inicio Date null
Fecha_fin Date Null
Dpto_Cod int References Dpto_Cod
Supervisor_Dni References
Empleados(DNI)










BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
Controle las siguientes restricciones:

1. Los siguientes atributos son obligatorios: Nombre (en todas las tablas que lo tengan),
Apellido1 de cada Empleado, Presupuesto en Departamentos, Salario de un Empleado y Salario
Mnimo y Mximo de cada tipo de trabajo.
2. El atributo Sexo en empleados slo puede tomar los valores H para hombre y M para mujer.
3. Dos departamentos no se llaman igual. Dos trabajos tampoco.
4. Cada empleado tiene un solo salario en cada momento. Tambin, cada empleado tendr
asignado un solo trabajo en cada momento. Su supervisor debe de ser empleado tambin de la
empresa.
5. Se ha de pensar una clave primaria para cada tabla y establecer las restricciones de
integridad referencial que estn implcitamente indicadas.


create database empresa on primary
(
name=empresa_data,
filename='C:\Empresa\empresa.mdf',
size=10MB,
maxsize=20MB,
filegrowth=2MB
)
log on
(
name=empresa_log,
filename='C:\Empresa\empresa.ldf',
size=10MB,
maxsize=20MB,
filegrowth=2MB
)

Orden de creacin.

use Practica1

Tabla 1 Empleados:

create table Empleados
(
DNI int not null primary key,
Nombre varchar(10)not null,
Apellido1 varchar(15) not null,
Apellido2 varchar(15) null,
Direcc1 varchar(25) null,
Direcc2 varchar(20) null,
Ciudad varchar(20) null,
Municipio varchar(20) null,
Cod_Postal varchar(6) null,
Sexo char(1) not null check (sexo in ('F','M')),
Fecha_Nac datetime not null
)

Tabla 2 Departamentos:

create table Departamentos
(
BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
Dpto_Cod int not null primary key,
Nombre_Dpto varchar(30) not null unique,
Jefe int null,
Presupuesto int not null,
Pres_Actual int null
)

Tabla 3 Universidades:


create table Universidades
(
Univ_Cod int not null primary key,
Nombre_Univ varchar(25)not null,
Ciudad varchar(20) null,
Municipio varchar(2) null,
Cod_Postal varchar(5) not null
)

Tabla 4 Estudios:


create table Estudios
(
Empleado_DNI int not null primary key references Empleados(DNI),
Universidad int not null references Universidades(Univ_Cod),
Ao int null,
Grado varchar(3) null,
Especialidad varchar(20) null
)

Tabla 5 Trabajos:


create table Trabajos
(
Trabajo_Cod int not null primary key,
Nombre_Trab varchar(20) not null unique,
Salario_Min int not null,
Salario_Max int not null,
)

Tabla 6 Historial Salarial:


create table Historial_Salarial
(
Empleado_DNI int not null unique references Empleados(DNI),
Salario int not null,
Fecha_Comienzo datetime,
Fecha_Fin datetime
)

Tabla 7 Historial Laboral:


create table Historial_Laboral
(
Empleado_DNI int not null unique references Empleados(DNI),
Trab_Cod int not null references Trabajos(Trabajo_Cod),
Fecha_Inicio datetime not null,
BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
Fecha_Fin datetime not null,
Dpto_Cod int not null references Departamentos(Dpto_Cod),
Supervisor_Int int not null references Empleados(DNI)
)















Realice las siguientes operaciones:

1. Qu ocurre si inserta una tupla de Historial_Laboral asignndole al empleado un
supervisor que no existe en la tabla de empleados? Viola esto la segunda regla de
integridad?


















2. Borre una universidad de la tabla de Universidades Qu le sucede a la restriccin de
clave fornea (o externa) de la tabla Estudios?
Se sigue manteniendo? Altere la definicin de la tabla para que se mantenga la
restriccin aunque se borre una universidad.
BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez

























3. Aada una restriccin que obligue a que las personas de sexo masculino hayan de
tener el campo Fecha de Nacimiento NOT NULL.

4. Aada un nuevo atributo Valoracin en la tabla de Empleados que indica de 1 a 10 la
valoracin que obtuvo el empleado en su entrevista de trabajo al iniciar su andadura
en la empresa. Ponga el valor por defecto 5 para ese campo. Inserte una nueva tupla
en empleado sin sealar ningn valor para el atributo nuevo.

alter table Empleados add valoracion int not null default 5

5. Elimine la restriccin que hace que el atributo Nombre de la tabla Empleado no puede
ser nulo.

alter table Empleados alter column nombre varchar(10) null

6. Modificar el tipo de datos de Direcc1 de la tabla Empleados a cadena de caracteres de
40 como mximo. Podra modificar el tipo de datos del atributo Cdigo de empleado
a VARCHAR(40)? Y la fecha de nacimiento convertirla a tipo cadena?

alter table Empleados alter column Direcc1 varchar(40) not null
BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
Escuela Superior Huejutla
Practica de Base de datos II
Febrero 2013

Se desea hacer un Sistema para el Control de Ganado de una Asociacin Ganadera Local el cual
debe cumplir con ciertas caractersticas.
Usted es el DBA deber crear la estructura de la Base de Datos que Albergar dicho Sistema,
cuidando la Seguridad e Integridad de los datos que ah se almacenarn.
Se llevar a cabo un control del Ganado que existe considerando su raza, peso, color, rancho,
edad, etc. De igual manera se tiene que llevar un registro de los ranchos registrados dentro de
la asociacin en ese caso se considerara nombre del rancho, ubicacin, extensin, ganado que
cra, propietario.
Es Importante llevar tambin un registro de todos los socios que conforman la asociacin los
datos que interesan son nombre, apellido materno, apellido paterno, direccin, edad, correo
electrnico, rfc, localidad, municipio, ciudad.
La integridad de los datos es tu responsabilidad por eso debes de cuidar no dar de alta algn
propietario de un rancho que no pertenezca a la asociacin, que no se crie en ningn rancho
alguna raza de ganado que no est dentro del catalogo de la asociacin.
Hay una caracterstica especial dentro de la asociacin y es que todos los socios tienen que ser
recomendados por otro socio dado de alta para que puedan pertenecer a dicha asociacin,
solo los 10 primeros socios no deben tener recomendacin a partir del 11 ya debe ser
recomendado.
Realice el Cdigo en SQL para generar esta Base de Datos y sus respectivas tablas y el orden en
el cual deber hacerlo.










BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
Ganado. Rancho.
NOMBRE TIPO DE DATO RESTRICCION
Id_ganado numerico Primary key
Raza Varchar (15) Not null references Raza(Id_Raza)
Peso Numrico (6) Null
Color Varchar (10) Null
Edad Datetime null
Ganado Varchar (15) Not null unique
Socios. Raza.
NOMBRE TIPO DE DATO RESTRICCION
RFC Varchar (8) Primary key not null
Nombre Varchar (15) Not null
Apellidop Varchar (10) Not null
Apellidom Varchar (10) Not null
Dir Varchar (20) Not null
Edad Numercio (2) Null
E-mail Varchar (20) Not null unique
Localidad Varchar (15) Not null
Municipio Varchar (15) Not null
Ciudad Varchar (15) Not null

Ganado_cria.
NOMBRE TIPO DE DATO RESTRICCIONES
Id_ganado numerico Not null references Ganado(Id_ganado)
Id_rancho numerico Not null references Rancho(Id_rancho)

Orden de creacin.
create database asociacion on primary
(
name=asociacion_data,
filename='C:\Asociacion\asociacion.mdf',
size=10MB,
maxsize=20MB,
filegrowth=2MB
)
log on
(
name=asociacion_log,
filename='C:\Asociacion\asociacion.ldf',
size=10MB,
maxsize=20MB,
filegrowth=2MB
)

use asociacion

tabla 1 Razas:

create table razas
(
id_raza int not null primary key,
raza varchar(20) unique
)

Tabla 2 Socios:

create table socios
(
RFC varchar(10) not null primary key,
NOMBRE TIPO DE DATO RESTRICCION
Id_rancho Numrico Primary key not null
Nombre Varchar (15) Not null unique
Ubicacin Varchar (20) Not null
Extension Varchar (10) Not null
Propietario Varchar (8) Not null references Socios(RFC)
NOMBRE TIPO DE DATO RESTRICCIONES
Id_Raza Numrico Primary key not null
Raza Varchar (15) Not null unique
BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
nombre varchar(30) not null,
apellidoP varchar(20) not null,
apellidoM varchar(20) null,
dir varchar(30) not null,
edad int null,
email varchar(30) unique,
localidad varchar(20) not null,
municipio varchar(20) not null,
ciudad varchar(20) not null
)

Tabla 3 Ganado:

create table ganado
(
id_ganado int not null primary key,
ganado varchar(25) not null,
raza int references razas(id_raza),
peso int null,
color varchar(15) null,
edad int null
)

Tabla 4 Ranchos:

create table ranchos
(
id_rancho int not null primary key,
nombre varchar(20) unique,
ubicacion varchar(20) not null,
extencion varchar(20) not null,
propietario varchar(10) references socios(RFC)
)

Tabla 5 Ganado_cria:

create table ganado_cria
(
ganado int references ganado(id_ganado),
rancho int references ranchos(id_rancho)
)









BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
BASE DE DATOS BILBIOTECA
Carrera. Alumno.
NOMBRE TIPO DE DATO RESTRICCIONES
Id_carrera Entero Primary key
Nombre Varchar (30) Not null

Nacionalidad.
NOMBRE TIPO DE DATO RESTRICCIONES
Idnacionalidad Entero Primary key
Nombre Varchar (30) Unique not null

Autor.
NOMBRE TIPO DE DATO RESTRICCIONES
Idautor Entero Primary key not null
Nombre Varchar (30) Unique not null
Nacionalidad Entero References Nacionalidad(Id_nacionalidad)
Email Varchar(30) Unique not null

Editorial. Libro.
NOMBRE TIPO DE DATO RESTRICCIONES
Ideditorial Entero Primary key
Nombre Varchar (30) Not null


Prestamo.
NOMBRE TIPO DE DATO RESTRICCIONES
Idprestamo Entero Not null Primary key
Idalumno Entero Not null References Autor(Idautor)
Fechapres Entero Not null
Fechadev Entero Not null
Idlibro entero Not null References Libro(Idlibro)

Orden de creacin.
Base de datos Biblioteca
create database biblioteca on primary
(
name=biblioteca_data,
filename='c:\biblioteca\biblioteca.mdf',
size=10MB,
maxsize=20MB,
filegrowth=2MB
)
log on
(
name=biblioteca_log,
filename='c:\biblioteca\biblioteca.ldf',
size=10MB,
maxsize=20MB,
filegrowth=2MB
)

use biblioteca

Orden de Tablas
NOMBRE TIPO DE DATO RESTRICCIONES
Idalumno Entero Primary key
Nombre Varchar (20) Not null
E-mail Varchar (30) Unique not null
Carrera Entero References Carrera(Id_carrera)
Semestre Entero Not null
Grupo Entero Not null
NOMBRE TIPO DE DATO RESTRICCIONES
Idlibro Entero Not null Primary key
Nombre Varchar(30) Not null
Autor Entero Refrences Autor(Id_autor)
Editorial Entero Not null References Editorial(Ideditorial)
Ao Entero Null Default (2010)
Cantidad Entero Not null Check(cantidad=1)
BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez

Tabla 1 Carrera:

create table carrera
(
idcarrera int not null primary key,
nombre varchar(30) not null
)

Tabla 2 Alumno:

create table alumno
(
idalumno int not null primary key,
nombre varchar(20) not null,
email varchar(30) unique,
carrera int references carrera(idcarrera),
semestre int not null,
grupo int not null
)

Tabla 3 Nacionalidad:

create table nacionalidad
(
idnacionalidad int not null primary key,
nombre varchar(30) unique
)

Tabla 4 Autor:
create table autor
(
idautor int not null primary key,
nombre varchar(30) unique,
nacionalidad int not null references
nacionalidad(idnacionalidad),
email varchar(30) unique
)
Tabla 5 Editorial:
create table editorial
(
ideditorial int not null primary key,
nombre varchar(30) not null
)





BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
Tabla 6 Libro:
create table libro
(
idlibro int not null primary key,
nombre varchar(30) not null,
autor int not null references autor(idautor),
editorial int not null references editorial(ideditorial),
ao int null default 2010,
cantidad int not null check(cantidad >= 1)
)
Tabla 7 Prestamo:
create table prestamo
(
idprestamo int not null primary key,
idalumno int not null references alumno(idalumno),
idlibro int not null references libro(idlibro),
fechapres int not null,
fechadev int not null,
)
BASE DE DATOS DONACIONES
Editorial. Licenciatura.
NOMBRE TIPO DE DATO RESTRICCION
Id_edit Int Not null Primary key
Nombre Varchar (15) Not null unique
Ubicacin Varchar (15) Null
Alumno.
NOMBRE TIPO DE DATO RESTRICCION
No_cuenta Primary key int not null
Nombre Varchar(20) Not null
Apellidom Varchar(15) Not null
Apellidop Varchar(15) Not null
Id_licenciatura Entero Not null references Licenciatura(Id_licenciatura)
Libros.
NOMBRE TIPO DE DATO RESTRICCION
ISBN Varchar (10) Not null Primary key
Titulo Varchar (15) Not null
Autor Varchar (15) Not null
Editorial Entero Not null refences Editorial(Id_editorial)
Precio Entero Not null check(Precio>=300)
Licenciatura Entero Not null references Licenciatura(Id_licenciatura)
Registro.
NOMBRE TIPO DE DATO RESTRICCION
Id_reg Entero Not null primary key
Alumno Entero References Alumnos(No_cuenta)
Opcion1 Varchar (10) Unique references Libros(ISBN)
Opcion2 Varchar (10) Unique references Libros(ISBN)
Opcion3 Varchar (10) Unique references Libros(ISBN)
Fec_reg datetime Not null
Donaciones.
NOMBRE TIPO DE DATO RESTRICCION
Id_don Entero Not null primary key
Alumno Int References Alumnos(No_cuenta)
Libro Varchar (10) References Libros(ISBN)
Fec_don datetime Not null
NOMBRE TIPO DE DATO RESTRICCION
Id_lic Int Not null primary key
Nombre Varchar (15) Not null unique
BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
Orden de creacin.
Tabla 1 Editorial:
create table editorial
(
id_edit int not null primary key,
nombre varchar(15) not null unique,
ubicacion varchar(15) not null
)

Tabla 2 Licenciaturas:
create table licenciaturas
(
id_lic int not null primary key,
nombre varchar(15) not null unique
)

Tabla 3 Alumnos:
create table alumnos
(
no_cuenta int not null primary key,
nombre varchar(20) not null,
apellidoP varchar(15) not null,
apellidoM varchar(15) null,
licenciatura int references licenciaturas(id_lic)
)

Tabla 4 Libros:
create table libros
(
ISBN varchar(10) not null primary key,
titulo varchar(15) not null,
autor varchar(15) not null,
editorial int references editorial(id_edit),
precio int not null check(precio>=300),
licenciatura int references licenciaturas(id_lic)
)
Tabla 5 Registro:
create table registro
(
id_reg int not null primary key,
alumno int references alumnos(no_cuenta),
opcion1 varchar(10) unique references libros(ISBN),
opcion2 varchar(10) unique references libros(ISBN),
opcion3 varchar(10) unique references libros(ISBN),
fec_reg datetime not null
)


BASE DE DATOS II
8-1

Josue Emmanuelle Reyes de la cruz
Herlindo Oaxaca Rodriguez
Tabla 6 Donaciones:
create table donaciones
(
id_don int not null primary key,
alumno int references alumnos(no_cuenta),
libro varchar(10) references libros(ISBN),
fec_don datetime not null
)

Das könnte Ihnen auch gefallen