asignatura - RUA - Universidad de Alicante

Anuncio
Ejercicios 2004-05
Dpto. Lenguajes y Sistemas Informáticos
Universidad de Alicante
Modelo Relacional
15a
ASIGNATURAS (
cod_asg: domCod,
nombre: domNom,
curso: domCur,
t: domHoras,
p: domHoras,
l: domHoras )
CP: cod_asg
ALUMNOS (
exp: domExp,
nombre: domNom,
dir: domDir,
ciudad:
domCiudad,
estudios:
domEstudios )
CP: exp
PROFESOR (
dni: domDni,
nombre: domNom,
dir: domDir,
ciudad: domCiudad )
CP: dni
PROF_ASG (
dni: domDni,
codigo: domCod,
horas: domHoras )
CP: (dni, codigo)
CAj: dni →
PROFESOR
CAj: codigo →
ASIGNATURA
NOTAS (
exp: domExp,
cod_asg: domCod,
nota: domNota )
CP: (exp, cod_asg)
CAj: exp → ALUMNOS
CAj: cod_asg →
ASIGNATURA
BD1 2004-05
Modelo Relacional
15a
ASIGNATURAS (
cod_asg: domCod,
nombre: domNom,
curso: domCur,
t: domHoras,
p: domHoras,
l: domHoras )
CP: cod_asg
ALUMNOS (
exp: domExp,
nombre: domNom,
dir: domDir,
ciudad:
domCiudad,
estudios:
domEstudios )
CP: exp
PROFESOR (
dni: domDni,
nombre: domNom,
dir: domDir,
ciudad: domCiudad )
CP: dni
PROF_ASG (
dni: domDni,
codigo: domCod,
horas: domHoras )
CP: (dni, codigo)
CAj: dni →
PROFESOR
CAj: codigo →
ASIGNATURA
NOTAS (
exp: domExp,
cod_asg: domCod,
nota: domNota )
CP: (exp, cod_asg)
CAj: exp → ALUMNOS
CAj: cod_asg →
ASIGNATURA
BD1 2004-05
Modelo Relacional
15a
ALUMNOS
NOTAS (exp, cod_asg)
ASIGNATURAS
PROF_ASG (dni, codigo)
PROFESOR
BD1 2004-05
Modelo Relacional
15a
ALUMNOS
NOTAS (exp, cod_asg)
ASIGNATURAS
PROF_ASG (dni, codigo)
PROFESOR
Card(ALUMNOS, notas) = ( 0, N)
Card(ASIGNATURAS, notas) = (0, N)
BD1 2004-05
Modelo Relacional
15a
ALUMNOS
NOTAS (exp, cod_asg)
ASIGNATURAS
PROF_ASG (dni, codigo)
PROFESOR
Card(ALUMNOS, notas) = ( 0, N)
Card(ASIGNATURAS, notas) = (0, N)
Card(PROFESOR, imparte) = ( 0, N)
Card(ASIGNATURAS, imparte) = (0, N)
BD1 2004-05
Modelo Relacional
15b
PROVEEDORES (
cod_pro: dom_pro,
nombre: dom_nombre,
estado: dom_estado,
ciudad: dom_ciudad )
CP: cod_pro
PIEZAS (
cod_pie: dom_pie,
nombre: dom_nombre,
color: dom_color, peso: dom_peso,
ciudad: dom_ciudad )
CP: cod_pie
PROYECTOS (
cod_pry: dom_pry,
nombre: dom_nombre,
ciudad: dom_ciudad )
CP: cod_pry
PEDIDOS (
cod_pro: dom_pro,
cod_pie: dom_pie,
cod_pry: dom_pry,
cantidad: dom_cantidad)
CP: (cod_pro, cod_pie,
cod_pry)
CAj: cod_pro →
PROVEEDORES
CAj: cod_pie → PIEZAS
CAj: cod_pry → PROYECTOS
BD1 2004-05
Modelo Relacional
15b
PROVEEDORES (
cod_pro: dom_pro,
nombre: dom_nombre,
estado: dom_estado,
ciudad: dom_ciudad )
CP: cod_pro
PIEZAS (
cod_pie: dom_pie,
nombre: dom_nombre,
color: dom_color,
peso: dom_peso,
ciudad: dom_ciudad )
CP: cod_pie
PROYECTOS (
cod_pry: dom_pry,
nombre: dom_nombre,
ciudad: dom_ciudad )
CP: cod_pry
PEDIDOS (
cod_pro: dom_pro,
cod_pie: dom_pie,
cod_pry: dom_pry,
cantidad: dom_cantidad)
CP: (cod_pro, cod_pie, cod_pry)
CAj: cod_pro → PROVEEDORES
CAj: cod_pie → PIEZAS
CAj: cod_pry → PROYECTOS
BD1 2004-05
Modelo Relacional
15b
PROVEEDORES (
cod_pro: dom_pro,
nombre: dom_nombre,
estado: dom_estado,
ciudad: dom_ciudad )
CP: cod_pro
PIEZAS (
cod_pie: dom_pie,
nombre: dom_nombre,
color: dom_color, peso: dom_peso,
ciudad: dom_ciudad )
CP: cod_pie
PROYECTOS (
cod_pry: dom_pry,
nombre: dom_nombre,
ciudad: dom_ciudad )
CP: cod_pry
PEDIDOS (
cod_pro: dom_pro,
cod_pie: dom_pie,
cod_pry: dom_pry,
cantidad: dom_cantidad)
CP: (cod_pro, cod_pie, cod_pry)
CAj: cod_pro → PROVEEDORES
CAj: cod_pie → PIEZAS
CAj: cod_pry → PROYECTOS
Card(PROVEEDORES, pedidos) = ( 0, N)
Card(PIEZAS, pedidos) = ( 0, N)
Card(PROYECTOS, pedidos) = (0, N)
Card((PROVEEDORES, PIEZAS), pedidos) = ( 0, N)
Card((PIEZAS, PROYECTOS), pedidos) = ( 0, N)
Card((PROYECTOS, PROVEEDORES), pedidos) = (0,N)
BD1 2004-05
Modelo Relacional
15b’
PROVEEDORES (
cod_pro: dom_pro,
nombre: dom_nombre,
estado: dom_estado,
ciudad: dom_ciudad )
CP: cod_pro
PIEZAS (
cod_pie: dom_pie,
nombre: dom_nombre,
color: dom_color, peso: dom_peso,
ciudad: dom_ciudad )
CP: cod_pie
PROYECTOS (
cod_pry: dom_pry,
nombre: dom_nombre,
ciudad: dom_ciudad )
CP: cod_pry
PEDIDOS (
cod_pro: dom_pro,
cod_pie: dom_pie,
cod_pry: dom_pry,
cantidad: dom_cantidad)
CP: (cod_pro, cod_pie, cod_pry)
CAj: cod_pro → PROVEEDORES
CAj: cod_pie → PIEZAS
CAj: cod_pry → PROYECTOS
Card(PROVEEDORES, pedidos) = ( 0, N)
Card(PIEZAS, pedidos) = ( 0, N)
...+ dependencia de identificador
Card(PEDIDOS, parapry) = (1, 1)
Card(PROYECTOS, parapry) = (0, N)
BD1 2004-05
Modelo Relacional
15c
MAR (
codmar: dom_codigomar,
nombre: dom_nombre )
CP: codmar
RIO (
codrio: dom_pry,
nombre: dom_nombre,
long: dom_long,
codmar: dom_codigomar )
CP: codrio
CAj: codmar → MAR
COMUNIDAD (
codcomu:
dom_codigocomu,
nombre: dom_nombre )
CP: codcomu
PROVINCIA (
codpro: dom_codigoprov,
nombre: dom_nombre,
extension: dom_extension,
codcomu: dom_codigocomu
)
CP: codpro
CAj: codcomu →
COMUNIDAD
PASAR_POR (
codrio: dom_codigorio,
codpro: dom_codigoprov)
CP: (codrio, codpro)
CAj: codrio → RIO
CAj: codpro →
PROVINCIA
BD1 2004-05
Modelo Relacional
15c
MAR
COMUNIDAD
RIO (codrio) codmar
PROVINCIA (codpro) codcomu
PASAR_POR (codrio, codpro)
Card(RÍO, desemboca) = ( 0, 1)
Card(MAR, desemboca) = (0, N)
Card(PROVINCIA, está_en) = ( 0, 1)
Card(COMUNIDAD, está_en) = (0, N)
Card(RÍO, pasar_por) = ( 0, N)
Card(COMUNIDAD, pasar_por) = (0, N)
BD1 2004-05
Modelo Relacional
15d
PROP_ANTERIOR (
ALQUILAR (
CIF: dom_cif,
NIF: dom_nif,
NOMBRE: dom_nombre,
MATRICULA: dom_matricula,
DIRECCION: dom_dirección, DESDE: dom_fecha,
TELEFONO: dom_telefono) HASTA: dom_fecha,
CP: CIF
IMPORTE: dom_importe,
DESCUENTO:
CLIENTE (
VEHICULO (
dom_descuento)
NIF: dom_nif,
MATRICULA:
CP: (NIF, MATRICULA,
NOMBRE: dom_nombre, dom_matricula,
DESDE)
FECH_NAC: dom_edad, MODELO: dom_modelo,
CAj: NIF → CLIENTE
DIRECCION: dom_dire, AÑO_FAB: dom_año,
CAj: MATRICULA →
CIFempr: dom_cif)
COLOR: dom_color,
VEHÍCULO
CP: NIF
CIFanterior: dom_cif)
CP: MATRICULA
CAj: CIFempr →
EMPRESA
CAj: CIFanterior →
EMPRESA
EMPRESA (
CIF: dom_cif,
NOMBRE:
dom_nombre,
PAIS_SEDE: dom_país)
CP: CIF
BD1 2004-05
Modelo Relacional
15d
PROP_ANTERIOR
EMPRESA
CLIENTE (NIF), CIFempr
VEHÍCULO (MATRICULA) CIFanterior
ALQUILAR (NIF, MATRICULA, DESDE)
Card( CLIENTE, R1) = ( 0, 1)
Card( EMPRESA, R1) = (0, N)
Card( VEHÍCULO, R2) = ( 0, 1)
Card( EMPRESA, R2) = (0, N)
Card( CLIENTE, R3) = ( 0, N)
Card( VEHÍCULO, R3) = (0, N)
BD1 2004-05
Modelo Relacional
15e
AGENCIA (
CIF: dom_cif,
NOMBRE: dom_nombre,
PAIS_SEDE: dom_país)
CP: CIF
COMPAÑIA (
CIF: dom_cif,
NOMBRE: dom_nombre,
DIRECTOR: dom_nombre)
CP: CIF
MODELO (
DNI: dom_dni,
NOMBRE: dom_nombre,
EDAD: dom_edad,
DIRECCION: dom_dire,
CIFage: dom_cif)
CP: DNI
Caj: CIFage →
AGENCIA
FOTOGRAFO (
DNI: dom_dni,
NOMBRE: dom_nombre,
DIRECCION: dom_dire)
CP: DNI
TRABAJAR (
DNIfot: dom_dni,
CIFage: dom_cif,
DESDE: dom_fecha,
HASTA: dom_fecha)
CP: ( DNIfot, CIFage)
CAj: DNIfot →
FOTOGRAFO
CAj: CIFage →
AGENCIA
ANUNCIAR (
DNImod: dom_dni,
CIFcía: dom_cif)
CP: (DNImod, CIFcía)
CAj: DNImod →
MODELO
CAj: CIFcía →
COMPAÑIA
BD1 2004-05
Modelo Relacional
15e
AGENCIA
COMPAÑIA
MODELO
CP: DNI
Caj: CIFage → AGENCIA
FOTOGRAFO TRABAJAR
CP: (DNIfot, CIFage)
CAj: DNIfot → FOTOGRAFO
CAj: CIFage → AGENCIA
ANUNCIAR
CP: (DNImod, CIFcía)
CAj: DNImod → MODELO
CAj: CIFcía → COMPAÑIA
BD1 2004-05
Modelo Relacional
15e
MODELO
CP: DNI
Caj: CIFage → AGENCIA
TRABAJAR
CP: (DNIfot, CIFage)
CAj: DNIfot → FOTOGRAFO
CAj: CIFage → AGENCIA
ANUNCIAR
CP: (DNImod, CIFcía)
CAj: DNImod → MODELO
CAj: CIFcía → COMPAÑIA
Card( MODELO, R1) = ( 0, 1)
Card( AGENCIA, R1) = (0, N)
Card( FOTÓGRAFO, R2) = ( 0, N)
Card( AGENCIA, R2) = (0, N)
Card( MODELO, R3) = ( 0, N)
Card( COMPAÑÍA, R3) = (0, N)
BD1 2004-05
Modelo Relacional
16 perros
ASOCIACION
CP:CIF
PROPIETARIO
CP:DNI
ESCUELA
CP: CIF
PERTENECER
CP:( DNI, CIF )
CAj: DNI → PROPIETARIO
CAj: CIF → ASOCIACION
PERRO
CP: NUMPLACA
CAj: DNI → PROPIETARIO
ADIESTRAR
CP: ( NUMPLACA, CIF )
CAj: NUMPLACA → PERRO
CAj: CIF → ESCUELA
BD1 2004-05
Modelo Relacional
16
ASOCIACION
CP:CIF
PROPIETARIO
CP:DNI
ESCUELA
CP: CIF
Card(perro, esDe)= (0,1)
Card(propietario, esDe)= (0,N)
PERTENECER
CP:( DNI, CIF )
CAj: DNI → PROPIETARIO
CAj: CIF → ASOCIACION
PERRO
NUMPLACA
pertenecer)=(0,N) CP:
CAj: DNI → PROPIETARIO
Card(propietario,
Card(asociación, pertenecer)=(0,N)
Card(perro, adiestrar)=(0,N)
Card(escuela, adiestrar)=(0,N)
ADIESTRAR
CP: ( NUMPLACA, CIF )
CAj: NUMPLACA → PERRO
CAj: CIF → ESCUELA
BD1 2004-05
Modelo Relacional
16b
Todos los propietarios
tienen algún perro = F
los perros pueden tener
muchos propietarios = F
Un perro puede ser
adiestrado varias veces en
la misma escuela = F
ASOCIACION
CP:CIF
PROPIETARIO
CP:DNI
ESCUELA
CP: CIF
PERTENECER
CP:( DNI, CIF )
CAj: DNI → PROPIETARIO
CAj: CIF → ASOCIACION
PERRO
CP: NUMPLACA
CAj: DNI → PROPIETARIO
ADIESTRAR
CP: ( NUMPLACA, CIF )
CAj: NUMPLACA → PERRO
CAj: CIF → ESCUELA
BD1 2004-05
17
matrícula
Modelo Relacional
ALUMNO
CP: (DNI)
GRUPO
CP: (CURSO, LETRA)
RECIBE
CP: (DNI, CURSO,LETRA, COD)
CAlt: (CURSO, LETRA, COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
CAj: (CURSO, LETRA) → GRUPO
ASIGNATURA
CP: (COD)
MATRÍCULA
CP: (DNI, COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
¿algún detalle espectacular?
BD1 2004-05
Modelo Relacional
17
ALUMNO
CP: (DNI)
RECIBE
CP: (DNI, CURSO,LETRA, COD)
CAlt: (CURSO, LETRA, COD)
GRUPO
CP: (CURSO, LETRA)
ASIGNATURA
CP: (COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
CAj: (CURSO, LETRA) → GRUPO
MATRÍCULA
CP: (DNI, COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
¿definición de clave candidata?
vamos a suponer que sólo está
CP: (DNI, CURSO, LETRA, COD)
BD1 2004-05
Modelo Relacional
17
ALUMNO
CP: (DNI)
GRUPO
CP: (CURSO, LETRA)
MATRÍCULA
CP: (DNI, COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
RECIBE
ASIGNATURA
CP: (COD)
CP: (DNI, CURSO, LETRA, COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
CAj: (CURSO, LETRA) → GRUPO
Card(ALUMNO, se_matrícula)= (0,N)
Card(ASIGNATURA, se_matricula)= (0,N)
Card((ALUMNO, GRUPO), recibe)=
(0,N)
Card(ASIGNATURA, recibe)= (0,N)
Card((ALUMNO, ASIGNATURA), recibe)=(0,N)
Card(GRUPO, recibe)= (0,N)
Card((ASIGNATURA, GRUPO), recibe)= (0,N)
Card(ALUMNO, recibe)= (0,N)
BD1 2004-05
Modelo Relacional
17b
Todos los alumnos están
matriculados en al menos
una asignatura = F
Puede haber varias
matrículas de un mismo
alumno sin asignatura
(esperando a decidirse
más adelante si se
matricula o no) = F
Podemos mantener la
información de varias
matrículas de un mismo
alumno en la misma
asignatura pero en años
distintos = F
ALUMNO
CP: (DNI)
GRUPO
CP: (CURSO, LETRA)
ASIGNATURA
CP: (COD)
MATRÍCULA
CP: (DNI, COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
RECIBE
CP: (DNI, CURSO, LETRA, COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
CAj: (CURSO, LETRA) → GRUPO
BD1 2004-05
Modelo Relacional
17b
Cualquier alumno podría
recibir clase de una
asignatura sin estar
matriculado en ella = V
ALUMNO
CP: (DNI)
Cualquier grupo puede
tener ninguno o muchos
alumnos asignado = V
ASIGNATURA
CP: (COD)
GRUPO
CP: (CURSO, LETRA)
MATRÍCULA
CP: (DNI, COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
Cualquier asignatura, en un
grupo en concreto, puede
tener ninguno o muchos
RECIBE
alumnos asignados = V
CP: (DNI, CURSO, LETRA, COD)
CAj: (DNI) → ALUMNO
CAj: (COD) → ASIGNATURA
CAj: (CURSO, LETRA) → GRUPO
BD1 2004-05
Documentos relacionados
Descargar