ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

GBD Tarea 3


Enviado por   •  26 de Febrero de 2015  •  698 Palabras (3 Páginas)  •  444 Visitas

Página 1 de 3

Tarea 3.1

Enunciado ejercicio 1.

Escribe las instrucciones SQL necesarias para crear la base de datos “Cursos” correspondiente al siguiente modelo relacional. Crea un documento de texto plano con las respuestas y dale el nombre GB03_ejercicio1.sql.

Alumnos(DNI, Nombre, Dirección, Localidad, Código_postal)

Cursos(Código, Nombre, Precio, Horas, Materia)

Ediciones(NúmeroEdición, CódigoCurso, FechaInicio, FechaFin, CodigoProfesor)

Matrículas(NúmeroEdición, CódigoCurso, DNIAlumno, Pagado)

Profesores(Código, Nombre, Titulación, Teléfono).

Ten en cuenta:

• Las claves primarias se indican en negrita y las claves ajenas se denotan en cursiva. Algunos campos forman parte de ambas.

• Ningún campo debe permitir nulos.

• Los cursos tienen ediciones y los alumnos se matriculan en ediciones de cursos, o sea, la tabla Matrículas está relacionada con Ediciones.

• El campo Pagado de la tabla Matrículas debe permitir únicamente los valores Sí o No. Por defecto No.

• Los campos Código de curso y código de profesor se autoincrementarán.

Todas las relaciones se crearán con la acción referencial NO ACTION, salvo la existente entre Ediciones y Matrículas que será CASCADE tanto para borrado como para actualización.

Añade un índice a la tabla Cursos que facilite búsquedas frecuentes por Nombre sin duplicados.

Puntuación total 6 puntos.

Cada tabla creada correctamente vale 1,20 puntos.

CREATE DATABASE Cursos;

USE Cursos;

CREATE TABLE `Alumnos`(

`DNI_Alumno` VARCHAR(9) NOT NULL,

`Nombre` VARCHAR(25) NOT NULL,

`Direccion` VARCHAR(50) NOT NULL,

`Localidad` VARCHAR(50) NOT NULL,

`Codigo_Postal` TINYINT(10) NOT NULL,

PRIMARY KEY (`DNI_Alumno`)

) ENGINE=INNODB;

CREATE TABLE `Cursos`(

`Codigo_Curso` TINYINT(7) NOT NULL AUTO_INCREMENT,

`Nombre` VARCHAR(25) NOT NULL,

`Precio` DECIMAL(4,2) NOT NULL,

`Horas` DECIMAL(4,2) NOT NULL,

`Materia` VARCHAR(25) NOT NULL,

PRIMARY KEY (Codigo_Curso)

) ENGINE=InnoDB;

CREATE TABLE `Profesores`(

`Codigo_Profersor` TINYINT(7) NOT NULL AUTO_INCREMENT,

`Nombre` VARCHAR(25) NOT NULL,

`Titulacion` VARCHAR (50) NOT NULL,

`Telefono` VARCHAR(9) NOT NULL,

PRIMARY KEY (Codigo_Profersor)

) ENGINE=InnoDB;

CREATE TABLE `Ediciones`(

`NumeroEdicion` TINYINT(9) NOT NULL,

`Codigo_Curso` TINYINT(7) NOT NULL,

`FechaInicio` DATE NOT NULL,

`FechaFin` DATE NOT NULL,

`Codigo_Profersor` TINYINT(7) NOT NULL,

PRIMARY KEY (`NumeroEdicion`,`Codigo_Curso`),

FOREIGN KEY (`Codigo_Curso`) REFERENCES `Cursos`(`Codigo_Curso`) ON UPDATE NO ACTION ON DELETE NO ACTION,

FOREIGN KEY (`Codigo_Profersor`) REFERENCES `Profesores`(`Codigo_Profersor`) ON UPDATE NO ACTION ON DELETE NO ACTION

) ENGINE=INNODB;

CREATE TABLE `Matriculas`(

`NumeroEdicion` TINYINT(9) NOT NULL,

`Codigo_Curso` TINYINT(7) NOT NULL,

`DNI_Alumno` VARCHAR(9) NOT NULL,

`Pagado` ENUM("Si","No") NOT NULL DEFAULT "No",

PRIMARY KEY (`NumeroEdicion`,`Codigo_Curso`,`DNI_Alumno`),

FOREIGN KEY (`NumeroEdicion`) REFERENCES `Ediciones` (`NumeroEdicion`) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (`Codigo_Curso`) REFERENCES `Cursos`(`Codigo_Curso`) ON UPDATE NO ACTION ON DELETE NO ACTION,

FOREIGN KEY (`DNI_Alumno`) REFERENCES `Alumnos` (`DNI_Alumno`) ON UPDATE NO ACTION ON DELETE NO ACTION

) ENGINE=InnoDB;

CREATE UNIQUE INDEX Nombre_Cursos ON Cursos(`Nombre`)

Enunciado

...

Descargar como (para miembros actualizados)  txt (6.2 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com