Tareabd02módulofp Dam

3

Click here to load reader

description

Tarea numero 2 de la asignatura Bases de Datos del módulo formativo de grado superior en DEsarrollo de Aplicaciones Multiplataforma

Transcript of Tareabd02módulofp Dam

  • BDTarea2.1EJERCICIO1:Vamos a crear las tablas para una Academia donde se imparten distintos cursos de informtica.EmpezaremoscreandoconSQLlassiguientestablas:

    TablaALUMNOSrecoger informacinsobreelalumnado:Nombre,Apellido1,Apellido2,NIF,Direccin,Sexo,FechadeNacimientoyCursoenelquesematricula.

    TablaCURSOSconlossiguientescampos:NombredelCurso,CdigodelCursoqueloidentifica,NIFdelProfesor,Mximonmerodealumnos/as recomendado,Fechade inicio,Fecha final,Nmerodehorastotalesdelcurso.Losalumnos/asnopuedencompaginarvarioscursosa lavez.

    TablaPROFESORES con los siguientes campos:Nombre,Apellido1,Apellido2,NIF,Direccin,Titulacin,Salario.

    a. Debeselegirlosnombresmsadecuadosparalosatributosteniendoencuentalasreglas.b. Debeselegirlostiposdedatosadecuadosenfuncindelcontenidodeloscampos.c. Debesestablecerlassiguientesrestricciones:

    1. Elalumnooalumnadebematricularseenun cursoenelmomentodedarsedardealta.

    2. Enuncurso,elnmerodehorasesundatoquenopuede faltar,esobligatorioquecontengainformacin.

    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. Modificaelcampoquehascreadoanteriormenteparaquelaedaddelalumnooalumnaestcomprendidaentre14y65aos.

    3. ModificaelcampoNmerodehorasdelCURSOdemaneraquesolopuedahabercursoscon30,40o60horas.

    4. Nopodemosaadiruncursosisunmeromximodealumnosesinferiora15.5. EliminalarestriccinquecontrolalosvaloresquepuedetomarelatributoSexo.6. EliminalacolumnaDireccindelatablaPROFESORES.7. CambialaclaveprimariadelatablaPROFESORESporNombreyApellidos.8. RenombralatablaPROFESORESporTUTORES.9. EliminalatablaALUMNOS.10. CreaunusuariocontunombreyclaveBD02ydaletodoslosprivilegiossobrelatablaCURSOS.11. AhoraalusuarioanteriorqutalepermisosparamodificaroactualizarlatablaCURSOS.

  • Solucin:BasesdeDatosTarea2Ejercicio1.CreartablasparaacademiadeInformticaCREATETABLEPROFESORES( 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.ALTERTABLEALUMNOSADDCONSTRAINTalu_eda_CKCHECK(EDADBETWEEN14AND65);Apartado3.Modificarcamponumerodehorasdelcurso.ALTERTABLECURSOSADDCONSTRAINTcur_num_horas_CKCHECK(NUMHORASCURSOIN(30,40,60));Apartado4.Restriccioncursosconmasde15alumnos.ALTERTABLECURSOSADDCONSTRAINTcur_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 tablaPROFESORESesalavezclaveexternadelatablaCURSOS,conloqueparaeliminardichaclaveprimariaanteshayqueeliminar laclaveexternadeCURSOS.Portantoestepuntotienetrespasos:Eliminar laclavesecundariadeCursos,eliminarlaclaveprimariadePROFESORESycrearlanuevaclaveprimaria.ALTERTABLECURSOSDROPCONSTRAINTCur_NifProf_FK;ALTERTABLEPROFESORESDROPPRIMARYKEY;;ALTER TABLE PROFESORES ADD CONSTRAINT Prof_NombApe1Ape2_PK1 PRIMARY KEY(NOMBRE,APELLIDO1,APELLIDO2);Apartado8.RenombrartablaProfesoresRENAMEPROFESORESTOTUTORES;Apartado9.EliminartablaALUMNOSDROPTABLEALUMNOSApartado10.Crearunusuario.CREATEUSERdavidIDENTIFIEDBYBD02;GRANTALLONCURSOSTOdavid;Apartado11.Quitarpermisosausuarioparamodificaroactualizartabla.REVOKEALTER,UPDATEONCURSOSFROMdavid