0% encontró este documento útil (0 votos)
1K vistas3 páginas

Tareabd02módulofp Dam

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

Cargado por

davtt
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1K vistas3 páginas

Tareabd02módulofp Dam

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

Cargado por

davtt
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 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

También podría gustarte