Análise e deseño detallado de aplicacións de informática e de xestión/Exercicios
Método de resolución dos exercicios[editar]
Mentres se len os exercicios, xa se deben ir marcando as entidades, que no esquema entidade-relación irán en singular.
No diagrama situaremos nunha banda as entidades con seus atributos, e na outra banda estableceranse as relacións entre as entidades, e só se incluirán aquí os atributos utilizados nas relacións.
Exercicio 1[editar]
Deseña o modelo entidade-relación e relacional completos do seguinte suposto:
- Interesa almacenar a información relativa ao NIF, nome, apelidos e país de procedencia de cada peregrino.
- Un peregrino pode parar en distintos albergues un número de horas determinado. Nunca poderá superar as 24 horas no mesmo albergue.
- É necesario rexistrar todos os albergues nos que parou o peregrino.
- O mesmo peregrino pode parar nos mesmos albergues en distintos anos, pero supoñemos que nunca parará dúas veces no mesmo albergue no mesmo ano.
- Cada albergue é atendido por varios empregados. É necesario gardar información acerca do nome, apelidos e teléfono de contacto dos citados empregados. Un empregado traballará nun único albergue.
- Cada peregrino será atendido por un empregado.
- Cada albergue pode ter ou non camas, cunhas medidas (“alto” e “ancho”) determinadas. Interesa saber en que cama durmiu (se se dá o caso) un peregrino.
Solución[editar]
Modelo entidade-relación[editar]
Entidades:
- Peregrino
- NIF (clave)
- Nome
- Apelidos
- País de procedencia
- Albergue
- Código (clave)
- Nome
- Enderezo
- Empregado
- NIF (clave)
- Nome
- Apelidos
- Teléfono de contacto
- Cama (debilidade por identificación)
- Número (clave)
- Alto
- Ancho
Relacións:
- “Para en”. Peregrino (1,n) N:M (1,n) Albergue.
- Data de entrada
- Data de saída
- “Ten”. Albergue (1,1) 1:N (1,n) Empregado.
- “Atende”. Empregado (1,n) N:M (1,n) Peregrino.
- “Ocupa”. Peregrino (1,n) N:M (1,n) Cama
- “Pertence a”. Cama (1,1) 1:N (0,n) Albergue.
Modelo relacional[editar]
Albergues(CodAlber, NomeAlber, EnderAlber)
- CP: CodAlber
Camas(NumCama, AltoCama, AnchoCama, CodAlberCama)
- CP: NumCama
- CE: CodAlberCama → Albergues(NumCama)
Empregados(NIFEmp, NomeEmp, ApelEmp, TelEmp, CodAlberEmp)
- CP: NIFEmp
- CE: CodAlberEmp → Albergues(CodAlber)
Peregrinos(NIFPere, NomePere, ApePere, PaisPere)
- CP: NIFPere
PereAlber(NIFPereAlber, CodAlberPere, DataEntrada, DataSaida, CamaPereAlber)
- CP: NIFPereAlber, CodAlberPere
- CE: NIFPereAlber → Peregrinos(NIFPere)
- CE: CodAlberPere → Albergues(CodAlber)
- CE: CamaPereAlber → Camas(NumCama)
EmpPer(NIFPereEmp, NIFEmpPere)
- CP: NIFEmpPere, NIFPereEmp
- CE: NIFPereEmp → Peregrinos(NIFPere)
- CE: NIFEmpPere → Empregados(NIFEmp)