Académique Documents
Professionnel Documents
Culture Documents
Vamos a crear las tablas para un taller mecnico donde se reparan vehculos. Empezaremos creando con SQL las siguientes tablas:
Tabla MECNICOS recoger informacin sobre los mecnicos del taller: NIF, Nombre, Apellido1, Apellido2, Nmero de empleado, Direccin, Ttulo, Salario. Tabla PROPIETARIOS de los vehculos: NIF, Nombre, Apellido1, Apellido2, Direccin, Telfono, Cliente habitual del taller. Tabla VEHCULOS con los siguientes campos: Matrcula, Marca, Modelo, Tipo de vehculo, Nmero de kilmetros, Fecha de fabricacin, Fecha de reparacin, Propietario, Mecnico que lo repara.
1. Un vehculo slo puede pertenecer a un propietario. 2. Debes elegir los nombres ms adecuados para los atributos teniendo en cuenta las reglas. 3. Debes elegir los tipos de datos adecuados en funcin del contenido de los campos
Tabla MECNICOS recoger informacin sobre los mecnicos del taller: NIF, Nombre, Apellido1, Apellido2, Nmero de empleado, Direccin, Ttulo, Salario.
Tabla PROPIETARIOS de los vehculos: NIF, Nombre, Apellido1, Apellido2, Direccin, Telfono, Cliente habitual del taller.
Tabla VEHCULOS con los siguientes campos: Matrcula, Marca, Modelo, Tipo de vehculo, Nmero de kilmetros, Fecha de fabricacin, Fecha de reparacin, Propietario, Mecnico que lo repara.
4. Debes establecer las siguientes restricciones: A. Los vehculos deben ser asignados a un mecnico para que proceda a su reparacin y deben asociarse a su propietario antes de ser dado de alta.
Al crear las claves forneas creando relaciones con otras tablas con su clave principal estamos creando integridad referencial y asi estamos obligando a que en todas las tablas relacionadas deben asignarse los datos correspondientes siendo la tabla padre la tabla Vehculos e hijas las tablas Propietarios y Mecnicos
B. En un vehculo, el nmero de kilmetros es un dato que no puede faltar, es obligatorio que contenga informacin.
Kilometros NUMBER NOT NULL, (El dato Kilmetros es obligatorio por eso le decimos que no puede ser nulo)
En la tabla
Titulo VARCHAR2(20), (El dato Titulo es obligatorio por eso le decimos que no puede ser nulo)
En la tabla
TipoVehiculo VARCHAR2(20) NOT NULL, (El dato TipoVehiculo es obligatorio por eso le decimos que no puede ser nulo)
Dos mecnicos no
IdEmpleado VARCHAR2(9) PRIMARY KEY, (Al ser clave Primaria es nica y Not Null, NO se pueden repetir dos IdEmpleado)
F. Podremos diferenciar las tuplas de la tabla VEHCULOS por la matrcula del vehculo.
Matricula VARCHAR2(10) PRIMARY KEY, (Al ser clave Primaria es nica y Not Null, NO se pueden repetir dos Matrcula tambin al ser clave primaria es ndice para las bsquedas)
H. La fecha de reparacin del vehculo nunca puede ser menor que la fecha de fabricacin del mismo.
CONSTRAINT Fec_Vehi_CK CHECK(FechaReparacion>FechaFabrica), (Comprobamos que la fecha de reparacin sea mayor a fecha fabricacin)
J. de integridad referencial.
CONSTRAINT Veh_Pro_FK FOREIGN KEY (Propietario) REFERENCES Propietarios(Nif), (Creamos una clave fornea al campo Nif de la tabla Propietarios) CONSTRAINT Veh_Mec_FK FOREIGN KEY (Mecanico) REFERENCES Mecanicos(IdEmpleado) (Creamos una clave fornea al campo IdEmpleados de la tabla Mecnicos) Al se claves forneas creando relaciones con otras tablas con su clave principal estamos creando integridad referencial
EJERCICIO 2:
Vamos a modificar las tablas que hemos creado en el apartado anterior: 1. Crea un nuevo atributo llamado Poblacin en la tabla PROPIETARIOS.
ALTER TABLE Propietarios ADD (Poblacion VARCHAR2(20));
Aade las siguientes restricciones: 2. Modifica el campo Tipo de vehculo de VEHCULOS para que slo pueda tomar los valores C (Coche) o M (Moto).
ALTER TABLE Vehiculos MODIFY TipoVehiculo VARCHAR(1); (Modificamos el tamao del campo de VACHAR2(20) a VARCHAR2(1) para que admita los valores C o M ) ALTER TABLE Vehiculos ADD CONSTRAINT Veh_Tip_CK CHECK((TipoVehiculo ='C') OR (TipoVehiculo ='M')); (Chequeamos que sea C(Coche) o M(Moto))
3. Modifica el campo Salario del MECNICO de manera que est comprendido entre 900 y 1700 euros.
ALTER TABLE Mecanicos ADD CONSTRAINT Mec_Sal_CK CHECK (Salario BETWEEN 900 AND 1700); Aadimos una restriccin nueva al campo para que el salario este comprendido entre 900 y 1700
5. Elimina la restriccin que controla los valores que puede tomar el atributo Cliente habitual.
ALTER TABLE Propietarios DROP CONSTRAINT Pro_Hab_CK; Eliminamos la restriccin al campo Habitual la cual se llamaba Pro_Hab_CK la cual chequeaba que fuese S oN
10. Crea un usuario con tu nombre y clave BD02 y dale todos los privilegios sobre la tabla MECANICOS.
Creamos el usuario Jos con claveBD02 CREATE USER Jose IDENTIFIED BY BD02; Le damos todos los permisos sobre la tabla Mecnicos GRANT ALL ON Mecanicos TO Jose;
11. Ahora al usuario anterior qutale permisos para modificar o actualizar la tabla MECNICOS.
Quitamos los privilegios que puedan hacer modificar o actualizar la tabla. REVOKE ALTER,DELETE,INSERT,UPDATE ON Mecanicos FROM Jose;