Vous êtes sur la page 1sur 3

BDTarea2.

EJERCICIO1:
Vamos a crear las tablas para una Academia donde se imparten distintos cursos de informtica.
EmpezaremoscreandoconSQLlassiguientestablas:
TablaALUMNOSrecogerinformacinsobreelalumnado:Nombre,Apellido1,Apellido2,NIF,
Direccin,Sexo,FechadeNacimientoyCursoenelquesematricula.
TablaCURSOSconlossiguientescampos:NombredelCurso,CdigodelCursoqueloidentifica,
NIF del Profesor, Mximo nmero de alumnos/as recomendado, Fecha de inicio, Fecha final,
Nmerodehorastotalesdelcurso.Losalumnos/asnopuedencompaginarvarioscursosala
vez.
Tabla PROFESORES con los siguientes campos: Nombre, Apellido1, Apellido2, NIF, Direccin,
Titulacin,Salario.
a. Debeselegirlosnombresmsadecuadosparalosatributosteniendoencuentalasreglas.
b. Debeselegirlostiposdedatosadecuadosenfuncindelcontenidodeloscampos.
c. Debesestablecerlassiguientesrestricciones:
1. El alumno o alumna debe matricularse en un curso en el momento de darse dar de
alta.
2. En un curso, el nmero de horas es un dato que no puede faltar, es obligatorio que
contengainformacin.
3. EnlatablaPROFESORES,elatributoSalarionopuedeestarvaco.
4. Doscursosnopuedenllamarsedelamismaforma.
5. Dosprofesoresnopuedenllamarseigual.
6. PodremosdiferenciarlastuplasdelatablaCURSOSporelCdigodelCurso.
7. PodremosdiferenciarlastuplasdelatablaPROFESORESyALUMNOSporelNIF.
8. Lafechadecomienzodelcursodebesermenorquelafechadefinalizacin.
9. EldominiodelatributosexoesM(mujer)yH(hombre).
10. Sedebecumplirlaregladeintegridadreferencial.

EJERCICIO2:
Vamosamodificarlastablasquehemoscreadoenelapartadoanterior:
1. CreaunnuevoatributollamadoEdaddetiponumricoalatablaALUMNOS.
Aadelassiguientesrestricciones:
2. Modificaelcampoquehascreadoanteriormenteparaquelaedaddelalumnooalumnaest
comprendidaentre14y65aos.
3. ModificaelcampoNmerodehorasdelCURSOdemaneraquesolopuedahabercursoscon
30,40o60horas.
4. Nopodemosaadiruncursosisunmeromximodealumnosesinferiora15.
5. EliminalarestriccinquecontrolalosvaloresquepuedetomarelatributoSexo.
6. EliminalacolumnaDireccindelatablaPROFESORES.
7. CambialaclaveprimariadelatablaPROFESORESporNombreyApellidos.
8. RenombralatablaPROFESORESporTUTORES.
9. EliminalatablaALUMNOS.
10. CreaunusuariocontunombreyclaveBD02ydaletodoslosprivilegiossobrelatablaCURSOS.
11. AhoraalusuarioanteriorqutalepermisosparamodificaroactualizarlatablaCURSOS.

Solucin:
BasesdeDatosTarea2

Ejercicio1.CreartablasparaacademiadeInformtica

CREATETABLEPROFESORES(

NOMBREVARCHAR2(30)UNIQUE,

APELLIDO1VARCHAR2(30),

APELLIDO2VARCHAR2(30),

NIF_PROVARCHAR2(9)PRIMARYKEY,

DIRECCINVARCHAR2(40),

TITULACINVARCHAR2(30),

SALARIONUMBER(6,2)NOTNULL
);

CREATETABLECURSOS(

NOMBRE_DEL_CURSOVARCHAR2(30)UNIQUE,

CDIGO_DEL_CURSOVARCHAR2(8)PRIMARYKEY,

NIF_PROFESORVARCHAR2(9)NOTNULL,

MAXNUMALUMNOSVARCHAR2(4),

FECHAINICIODATE,

FECHAFINALDATE,

NUMHORASCURSONUMBER(3,1)NOTNULL,

CONSTRAINTCURSOS_ValFechasCHECK("FECHAFINAL">FECHAINICIO),
CONSTRAINTCur_NifProf_FKFOREIGNKEY(NIF_PROFESOR)

REFERENCESPROFESORES(NIF_PRO)ONDELETECASCADE
);

CREATETABLEALUMNOS(

NOMBRE_ALVARCHAR2(30),

APELLIDO1_ALVARCHAR2(30),

APELLIDO2_ALVARCHAR2(30),

NIF_ALVARCHAR2(9)PRIMARYKEY,

DIRECCINVARCHAR2(40),

SEXOVARCHAR2(1),

FECHA_DE_NACIMIENTODATE,

CURSO_EN_EL_QUE_SE_MATRICULAVARCHAR2(20)NOTNULL,

CONSTRAINTAlum_Sexo_CKCHECK(SEXOIN('H','M')),

CONSTRAINTAlum_Matr_FKFOREIGNKEY(CURSO_EN_EL_QUE_SE_MATRICULA)

REFERENCESCURSOS(CDIGO_DEL_CURSO)ONDELETECASCADE
);

Ejercicio2.Modificartablasdelejercicioanterior.

Apartado1.AadiratributoEDAD.
ALTERTABLEALUMNOSADDEDADNUMBER(2,0);

Apartado2.ModificarcampoEDAD.
ALTERTABLEALUMNOSADD
CONSTRAINTalu_eda_CKCHECK(EDADBETWEEN14AND65);

Apartado3.Modificarcamponumerodehorasdelcurso.
ALTERTABLECURSOSADD
CONSTRAINTcur_num_horas_CKCHECK(NUMHORASCURSOIN(30,40,60));

Apartado4.Restriccioncursosconmasde15alumnos.
ALTERTABLECURSOSADD
CONSTRAINTcur_NumAl_CKCHECK(MAXNUMALUMNOS>=15);

Apartado5.EliminarrestriccincampoSexo.
ALTERTABLEALUMNOSDROPCONSTRAINTAlum_Sexo_CK;

Apartado6.BorrarcolumnaDIRECCIONdelatablaPROFESORES.
ALTERTABLEPROFESORESDROPCOLUMNDIRECCIN;

Apartado7.CambiarlaclaveprimariadelatablaPROFESORES.
Para cambiar la clave primaria, primero hay que eliminar la antigua. La clave primaria de la tabla
PROFESORESesalavezclaveexternadelatablaCURSOS,conloqueparaeliminardichaclaveprimaria
anteshayqueeliminarlaclaveexternadeCURSOS.Portantoestepuntotienetrespasos:Eliminarla
clavesecundariadeCursos,eliminarlaclaveprimariadePROFESORESycrearlanuevaclaveprimaria.

ALTERTABLECURSOSDROPCONSTRAINTCur_NifProf_FK;
ALTERTABLEPROFESORESDROPPRIMARYKEY;;
ALTER TABLE PROFESORES ADD CONSTRAINT Prof_NombApe1Ape2_PK1 PRIMARY KEY
(NOMBRE,APELLIDO1,APELLIDO2);

Apartado8.RenombrartablaProfesores
RENAMEPROFESORESTOTUTORES;

Apartado9.EliminartablaALUMNOS
DROPTABLEALUMNOS

Apartado10.Crearunusuario.
CREATEUSERdavidIDENTIFIEDBYBD02;
GRANTALLONCURSOSTOdavid;

Apartado11.Quitarpermisosausuarioparamodificaroactualizartabla.
REVOKEALTER,UPDATEONCURSOSFROMdavid

Vous aimerez peut-être aussi