UD03 · Pràctiques
RA6 Dissenya models relacionals normalitzats interpretant diagrames entitat/relació. 7 CE
- RA6.a S'han utilitzat eines gràfiques per a representar el disseny lògic.
- RA6.b S'han identificat les taules del disseny lògic.
- RA6.c S'han identificat els camps que formen part de les taules del disseny lògic.
- RA6.d S'han analitzat les relacions entre les taules del disseny lògic.
- RA6.e S'han identificat els camps clau.
- RA6.f S'han aplicat regles d'integritat.
- RA6.h S'han analitzat i documentat les restriccions que no poden plasmar-se en el disseny lògic.
RA2 Crea bases de dades definint-ne l'estructura i les característiques dels elements segons el model relacional. 3 CE
- RA2.a S'ha analitzat el format d'emmagatzematge de la informació.
- RA2.d S'han definit els camps clau a les taules.
- RA2.e S'han implantat les restriccions reflectides en el disseny lògic.
| Pràctica | Tipus | Nivell | CE principals |
|---|---|---|---|
| 3.1 Biblioteca: de l’E/R a les taules | Guiada | ●○○ | RA6.b, RA6.c, RA6.d, RA6.e |
| 3.2 Simulador d’integritat referencial | Guiada | ●●○ | RA6.f, RA2.e |
| 3.3 Tres formes de transformar una jerarquia | Autònoma | ●●○ | RA6.b, RA6.d, RA6.e |
| 3.4 Enginyeria inversa d’un esquema | Repte | ●●● | RA6.a, RA6.d |
| 3.5 Catàleg de restriccions d’un hotel | Autònoma | ●●○ | RA6.h |
| Projecte EduGest · UD03 | Projecte | ●●○ | RA6.a-f, RA6.h |
| 3.6 Entendre un esquema relacional | Guiada | ●○○ | RA6.b, RA6.c, RA6.d |
| Tasca 1 · Naviera | Guiada | ●○○ | RA6.b-e |
| Tasca 2 · Institut | Autònoma | ●●○ | RA6.b-e, RA6.h |
| Tasca 3 · Concessionari | Autònoma | ●●○ | RA6.b-e |
| Tasca 4 · Cases rurals | Autònoma | ●●○ | RA6.b-e |
| Tasca 5 · Esquema abstracte 1 | Repte | ●●● | RA6.b-e, RA6.h |
| Tasca 6 · Esquema abstracte 2 | Repte | ●●● | RA6.b-e, RA6.h |
| Tasca 7 · Esquema abstracte 3 | Repte | ●●● | RA6.b-e, RA6.h |
| Banc d’exercicis | Autònoma | ●○○ a ●●● | RA6, RA2 |
Per a escriure esquemes relacionals usa sempre la mateixa notació:
TABLA(clave_primaria, atributo,clave_ajena), i davall de cada taula, les claus alienes amb la taula a la qual apunten, les claus alternatives i els atributs que admeten nuls.
Pràctica 3.1 · Biblioteca: de l’E/R a les taules
Objectiu
Aplicar una a una les regles de transformació al model conceptual de la pràctica 2.1 i obtindre un esquema relacional complet i justificat.
Context
Partim del diagrama de la biblioteca municipal de la pràctica 2.1:
Desenvolupament
Entitats fortes → taules. Cada entitat forta dóna una taula amb els seus atributs; l’identificador passa a ser la clau primària.
- AUTOR(cod_autor, nombre, nacionalidad)
- LIBRO(isbn, titulo, anio, editorial)
- SOCIO(num_socio, dni, nombre, telefono) ·
dniUK
Entitat feble → taula amb la clau del propietari. La clau primària d’
EJEMPLARcombina la clau deLIBROi el seu discriminador. Eixa part de la clau també és clau aliena.- EJEMPLAR(isbn, num_ejemplar, estado) · FK isbn → LIBRO
Relació N:M → taula nova.
ESCRIBEes convertix en una taula amb les claus de les dues entitats.- ESCRIBE(cod_autor, isbn) · FK cod_autor → AUTOR, FK isbn → LIBRO
Relació N:M amb atributs i repetible → taula nova amb la data en la clau. Com que un soci pot emportar-se el mateix exemplar en ocasions distintes, la clau inclou la data d’eixida.
- PRESTAMO(num_socio, isbn, num_ejemplar, fecha_salida, fecha_prevista, fecha_devolucion)
- FK num_socio → SOCIO; FK (isbn, num_ejemplar) → EJEMPLAR ·
fecha_devolucionadmet NULL
Revisa les claus alienes compostes. Una clau aliena apunta a la clau primària completa de la taula referenciada: (isbn, num_ejemplar) → EJEMPLAR(isbn, num_ejemplar), no cada columna per separat.
Dibuixa el diagrama relacional en una ferramenta de modelatge (per exemple, draw.io) o en paper.
🔒 Diagrama relacional resultant
Comprovació
Hi ha 6 taules: 4 per les entitats i 2 per les relacions N:M.
La clau primària de
PRESTAMOté 4 columnes, o has justificat una clau artificial amb una clau alternativa (UK) sobre eixes 4 columnes.La clau aliena de
PRESTAMOaEJEMPLARés composta.Has indicat quines columnes admeten nuls.
Errors habituals
- Crear dues claus alienes separades
isbn → LIBROinum_ejemplar → EJEMPLAR.num_ejemplarper si sol no identifica res.- Oblidar la restricció «un llibre té almenys un autor». La participació mínima 1 de
LIBROenESCRIBEno es pot garantir amb una clau aliena: cal documentar-la (RA6.h).
Ampliació
Substituïx la clau composta de PRESTAMO per un identificador artificial id_prestamo. Quina restricció de clau alternativa (UK) necessites per a no perdre informació? Quins avantatges i inconvenients té cada opció?
Pràctica 3.2 · Simulador d’integritat referencial
Objectiu
Predir l’efecte de les operacions d’esborrat i modificació segons la política d’integritat referencial de cada clau aliena.
Context
Un fragment d’EduGest amb estes dades:
GRUPO
| cod_grupo | cod_ciclo | id_tutor |
|---|---|---|
| 1DAM | DAM | 103 |
| 1DAW | DAW | 106 |
| 2ASIR | ASIR | NULL |
ALUMNO
| id_alumno | nombre | cod_grupo |
|---|---|---|
| 1 | Adrián | 1DAM |
| 2 | Rubén | 1DAM |
| 14 | Carla | 1DAW |
| 30 | Zoe | NULL |
MATRICULA
| id_matricula | id_alumno | id_modulo |
|---|---|---|
| 10001 | 1 | 2 |
| 10002 | 1 | 3 |
| 10050 | 14 | 12 |
Claus alienes: ALUMNO.cod_grupo → GRUPO i MATRICULA.id_alumno → ALUMNO.
Enunciat
Per a cada escenari, indica si l’operació s’executa o es rebutja i, si s’executa, com queden les tres taules.
| # | Política de la clau aliena alumne → grup | Política de la clau aliena matrícula → alumne | Operació |
|---|---|---|---|
| A | Restringit | En cascada | Esborrar el grup 1DAM |
| B | Posada a nuls | En cascada | Esborrar el grup 1DAM |
| C | En cascada | Restringit | Esborrar el grup 1DAM |
| D | En cascada | En cascada | Esborrar el grup 1DAM |
| E | qualsevol | qualsevol | Esborrar el grup 2ASIR |
| F | qualsevol | qualsevol | Afegir l’alumne 40, Eva, al grup 3DAM |
🔒 Solucions
Ampliació
Quina política triaries per a cada clau aliena d’EduGest? Justifica almenys tres decisions. Recorda que en un centre educatiu les matrícules i les notes són documents oficials.
L’esborrat en cascada és còmode, però convertix un error humà (esborrar el grup equivocat) en una pèrdua massiva de dades. Usa’l només quan les files filles no tinguen sentit sense la fila pare i no tinguen valor per si mateixes.
Pràctica 3.3 · Tres formes de transformar una jerarquia
Objectiu
Comparar les alternatives de transformació d’una jerarquia i triar la més adequada segons el cas.
Enunciat
Usa la jerarquia d’empleats de la clínica veterinària de la pràctica 2.4: EMPLEADO (total i disjunta) amb VETERINARIO, AUXILIAR i ADMINISTRATIVO.
- Opció 1. Una sola taula amb tots els atributs i un discriminador
tipo. - Opció 2. Una taula per a la superclasse i una per subclasse, cadascuna amb la clau primària de la superclasse com a clau aliena.
- Opció 3. Només taules per a les subclasses, cadascuna amb els atributs comuns repetits.
Per a cada opció, escriu l’esquema relacional i respon:
| Pregunta | Opció 1 | Opció 2 | Opció 3 |
|---|---|---|---|
| Quants nuls apareixen? | |||
| Com s’obté un llistat de tots els empleats? | |||
| Com es garantix que la jerarquia és disjunta? | |||
| Com es garantix que és total? | |||
| Què passa amb la relació «un veterinari realitza consultes»? |
Acaba recomanant una opció per a la clínica.
Comprovació
- En l’opció 1 proposes una restricció de fila que obliga a omplir
num_colegiadoquantipo = 'VET'. - En l’opció 2 identifiques que la disjunció no es garantix només amb claus alienes.
- En l’opció 3 detectes que la relació amb
CONSULTAnomés afectaVETERINARIOi que el DNI podria repetir-se entre subclasses.
Pista: la regla de fila de l’opció 1
Fes-te tres preguntes per cada opció: quins atributs són obligatoris només per a un tipus d’empleat? Com sap el SGBD quin tipus és cada fila? Quines combinacions de «tipus» i «atributs omplits» són vàlides? La regla de fila de l’opció 1 ha d’acceptar només eixes combinacions: veterinari amb número de col·legiat, auxiliar amb titulació i administratiu sense cap dels dos.
Pràctica 3.4 · Enginyeria inversa d’un esquema
Objectiu
Interpretar un esquema relacional existent, reconstruir el model conceptual del qual procedix i detectar decisions de disseny discutibles.
Context
Herets la base de dades d’un club de pàdel. No hi ha documentació, només este esquema:
JUGADOR(id_jugador, nombre, telefono, nivel, id_pareja_habitual*)
FK id_pareja_habitual → JUGADOR
PISTA(num_pista, tipo, cubierta)
RESERVA(num_pista*, fecha, hora_inicio, id_jugador*, precio)
FK num_pista → PISTA, FK id_jugador → JUGADOR
PARTICIPA(num_pista*, fecha*, hora_inicio*, id_jugador*)
FK (num_pista, fecha, hora_inicio) → RESERVA, FK id_jugador → JUGADOR
TORNEO(id_torneo, nombre, fecha_inicio)
INSCRIPCION(id_torneo*, id_jugador1*, id_jugador2*, categoria)
FK id_torneo → TORNEO, FK id_jugador1 → JUGADOR, FK id_jugador2 → JUGADOREnunciat
- Subratlla les claus primàries que deduïsques i justifica-les.
- Dibuixa el diagrama E/R del qual procedix: entitats, relacions (inclosa la reflexiva), cardinalitats i entitats febles.
- Què significa
RESERVA.id_jugadori què significaPARTICIPA? Són redundants? - Detecta almenys dos problemes. Per exemple, què impedix inscriure la mateixa parella dues vegades canviant l’ordre dels jugadors?
- Proposa les restriccions (clau alternativa, regla de fila o textuals) que els resolen.
Pista per al punt 4
Amb INSCRIPCION(id_torneo, id_jugador1, id_jugador2) com a clau, les files (T1, 5, 8) i (T1, 8, 5) són distintes per al SGBD però representen la mateixa parella. Una regla de fila («id_jugador1 menor que id_jugador2») obliga a guardar sempre la parella en el mateix ordre. Què impedix que un jugador s’inscriga amb ell mateix?
Pràctica 3.5 · Catàleg de restriccions d’un hotel
Objectiu
Classificar les regles de negoci segons on poden implementar-se i documentar les que el model lògic no arreplega.
Context
Esquema simplificat d’un hotel:
HABITACION(num_hab, tipo, capacidad, precio_noche)
CLIENTE(id_cliente, dni, nombre, fecha_nacimiento)
RESERVA(id_reserva, id_cliente*, num_hab*, fecha_entrada, fecha_salida, num_personas, importe)Enunciat
Classifica cada regla en una d’estes categories: PK / clau alternativa, FK, atribut obligatori, regla de fila o no representable (documentar i implementar a la UD09). En l’últim cas, usa el format de documentació de la teoria.
- Dos clients no poden tindre el mateix DNI.
- La data d’eixida és posterior a la d’entrada.
- El nombre de persones no supera la capacitat de l’habitació.
- Una habitació no pot tindre dues reserves que se solapen en dates.
- El tipus d’habitació és «individual», «doble» o «suite».
- El client que reserva ha de ser major d’edat en la data d’entrada.
- L’import és el preu per nit multiplicat pel nombre de nits.
- Tota reserva correspon a un client existent.
Comprovació
Les regles 3, 4, 6 i 7 estan classificades com a no representables o justificades com a tals.
La regla 2 és una regla de fila:
fecha_salidaposterior afecha_entrada.Per a la regla 7 es discuteix si convé guardar l’import o calcular-lo.
Projecte EduGest · UD03: model lògic
Enunciat
Transforma el teu model E/R d’EduGest (pràctica EduGest-2) en un model relacional:
- Esquema relacional complet amb claus primàries, alienes i alternatives, i les columnes que admeten nuls.
- Taula de traçabilitat: element de l’E/R → regla aplicada → taula o columna resultant (com la del cas guiat).
- Política d’esborrat de cada clau aliena, justificada.
- Diagrama relacional fet amb una eina gràfica.
- Catàleg de restriccions no representables (com a mínim les cinc de l’enunciat del projecte).
Comprovació
Totes les relacions N:M de l’E/R s’han convertit en taules.
La relació «imparteix» conserva la informació de professor, mòdul, grup i curs acadèmic.
Cap clau aliena de matrícules o notes usa l’esborrat en cascada sense justificar-ho.
Tasques de transformació: de l’E/R al model relacional
Les tasques d’este apartat parteixen d’un diagrama EER ja fet, dibuixat amb la mateixa notació que el banc d’exercicis de la UD02. Cal obtindre l’esquema relacional i anotar les pèrdues semàntiques: allò que el diagrama diu i les taules no poden garantir per si soles.
A diferència del diagrama E/R, on caben diverses solucions, la transformació d’un diagrama donat és quasi única. Els noms de les claus alienes poden variar (cod_emp, codigo_empleado…), però les PK, FK, UK i VNN han de ser les mateixes.
Notació de l’esquema
Cada taula s’escriu amb les seues columnes i, davall, les seues restriccions:
CONTENEDOR (cod_contenedor, descripcion, dni_capitan, cod_puerto)
PK: cod_contenedor
FK: dni_capitan → CAPITAN
FK: cod_puerto → PUERTO
VNN: dni_capitan, cod_puerto| Marca | Nom | Admet duplicats? | Admet nuls? |
|---|---|---|---|
| PK | Clau primària | No | No |
| UK | Clau alternativa (unique key) | No | No, si és clau candidata (s’afig VNN) |
| FK | Clau aliena | Sí* | Sí* |
| VNN | Valor no nul (valor obligatorio) | — | No |
* Tret que la columna forme part també d’una PK o UK, o tinga VNN.
És la mateixa informació que la notació
TABLA(clave, columna,clave_ajena)de les pràctiques anteriors, però en forma de llista. Amb ella és més fàcil revisar que no falta cap restricció i, a la UD05, cada línia es convertix quasi directament en una taula de la base de dades.
Regles de transformació (resum)
| Element de l’E/R | Resultat en el model relacional |
|---|---|
| Entitat forta | Taula. L’identificador passa a PK; les claus alternatives, a UK. |
| Entitat feble per identificació (ID) | Taula. PK = PK de l’entitat propietària + discriminador. La part heretada és també FK. |
| Entitat feble per existència (E) | Taula amb PK pròpia. La FK cap a la propietària porta VNN. |
| Relació 1:N | La PK del costat 1 viatja com a FK a la taula del costat N, amb els atributs de la relació. Si el costat N no pot existir sense l’altre (mínim 1), la FK porta VNN. |
| Relació N:M | Taula nova. PK = les dues claus (més l’atribut que permeta repetir la parella, si n’hi ha). Cada clau és FK. |
| 1:1 amb (0,1) i (0,1) | Taula nova: PK = clau d’una entitat; UK = clau de l’altra. |
| 1:1 amb (0,1) i (1,1) | Es propaga la clau a la taula de l’entitat que participa obligatòriament, amb UK i VNN. |
| 1:1 amb (1,1) i (1,1) | Una sola taula: PK = clau d’una entitat; UK = clau de l’altra. |
| Reflexiva | Igual que la binària del mateix tipus, amb la mateixa taula en els dos extrems (columnes renomenades). |
| Ternària N:N:N | Taula amb les tres claus com a PK. |
| Ternària 1:N:N | PK = claus dels dos costats N; la del costat 1, amb VNN. |
| Ternària 1:1:N | PK = clau del costat N + una de les del costat 1; l’altra combinació, UK. |
| Generalització | Taula per a la superclasse i una per subclasse, amb la PK de la superclasse com a PK i FK. Total i disjunta no es poden expressar: són pèrdues. |
| Agregació | La relació agregada es tracta com una taula més; la seua clau és la que l’identifica. |
| Atribut multivalorat | Taula nova amb la PK de l’entitat i el valor. |
Pèrdues semàntiques habituals. Les claus no poden garantir: el mínim 1 del costat 1 d’una relació 1:N («tot professor imparteix almenys un mòdul»), l’existència d’una entitat respecte a una relació quan estan en taules distintes, les generalitzacions totals o disjuntes i les restriccions entre relacions («C només es relaciona amb D si ho està amb B»). S’anoten i es resolen en la implementació amb regles de fila, disparadors (UD09) o procediments.
Pràctica 3.6 · Entendre un esquema relacional
Objectiu
Fer el camí invers: a partir d’unes taules amb les seues restriccions, deduir les cardinalitats de la relació que representen.
Context
Abans de transformar diagrames convé saber «llegir» un esquema. Cada restricció (PK, UK, FK, VNN) respon a una pregunta sobre la relació: pot repetir-se?, pot faltar?
Desenvolupament
El joc consistix a respondre a quatre preguntes usant la taula de la notació (duplicats i nuls). Primer, un cas abstracte:
T1 (A, B, C) T2 (E, F)
PK: A PK: E
FK: F → T1- Amb quantes files de
T2pot relacionar-se una fila deT1? El valor d’Apot aparéixer a la columnaFde moltes files deT2(una FK admet duplicats), o de cap: (0,N). - Amb quantes files de
T1es relaciona una fila deT2?Fguarda un únic valor i pot ser nul (la FK admet nuls): (0,1).
Ara, la relació entre alumnes i assignatures («els alumnes es matriculen d’assignatures»). Per a cada esquema respon a:
- De quantes assignatures pot matricular-se un alumne?
- Està obligat l’alumne a matricular-se d’alguna assignatura?
- Quants alumnes pot tindre una assignatura?
- És necessari que les assignatures tinguen alumnes?
| Cas | Esquema |
|---|---|
| A | ASIGNATURA (codigo, nombre, curso) PK: codigo · ALUMNO (dni, nombre, asig) PK: dni · FK: asig → ASIGNATURA |
| B | Igual que A, afegint VNN: asig |
| C | ALUMNO (dni, nombre) PK: dni · ASIGNATURA (codigo, nombre, curso, dni) PK: codigo · UK: dni · FK: dni → ALUMNO |
| D | ALUMNO (dni, nombre) PK: dni · ASIGNATURA (codigo, nombre, curso) PK: codigo · MATRICULA (dni, asig) PK: (dni, asig) · FK: dni → ALUMNO · FK: asig → ASIGNATURA |
| E | Igual que D, però amb PK: dni en MATRICULA |
| F | ASIGNATURA (codigo, nombre, curso, dni, nombre_alumno) PK: codigo · UK: dni · VNN: dni (no hi ha taula ALUMNO) |
🔒 Solució (intenta-ho abans d'obrir-la)
Comprovació
Per a cada cas has escrit les quatre respostes i la cardinalitat (mín, màx) de cada costat.
Has relacionat cada resposta amb una restricció concreta (PK, UK, FK o VNN).
Errors habituals
- Pensar que una FK no admet duplicats. Allò que no es repetix és la PK de la taula referenciada, no la columna que la referencia.
- Confondre el cas E amb el D: una taula intermèdia no implica sempre N:M; depén de la seua clau primària.
Ampliació
Escriu l’esquema que correspon a «un alumne es matricula d’una o diverses assignatures i una assignatura té com a màxim 30 alumnes». Quina part pots expressar amb PK, UK, FK i VNN i quina part queda com a pèrdua semàntica?
Tasca 1 · Naviera: capitans, contenidors, ports i vaixells
Objectiu
Transformar relacions 1:N amb participació obligatòria i una N:M que guarda un històric.
Context
És el diagrama de l’exercici 4 de la UD02.
Enunciat
Obtín l’esquema relacional del diagrama, indicant per a cada taula la seua PK, les seues FK, les seues UK i les columnes amb VNN. Anota les pèrdues semàntiques.
Tasques
- Escriu una taula per entitat.
- Decidix on van les claus de transporta i arriba a. Porten VNN?
- Converteix governa en taula. Quines columnes formen la seua PK? Per què no basta amb (capità, vaixell)?
- Llista les pèrdues semàntiques.
Comprovació
Hi ha 5 taules.
CONTENEDORté dues FK, ambdues amb VNN.La PK de
GOBIERNAincloufecha_inicio.
Errors habituals
- Crear una taula per a cada relació 1:N. Només les N:M (i algunes 1:1) generen taula nova.
- Deixar la PK de
GOBIERNAen (dni, matrícula): impediria que un capità torne a governar el mateix vaixell.
🔒 Solució
Ampliació
La naviera vol saber en quin vaixell viatja cada contenidor. Afig la relació al diagrama i transforma només la part que canvia.
Tasca 2 · Institut: mòduls, matrícules, delegats i casellers
Objectiu
Transformar dues relacions reflexives (1:N i N:M) i una 1:1 amb mínims 0 als dos costats.
Context
És el diagrama de l’exercici 6 de la UD02.
Enunciat
Obtín l’esquema relacional complet amb PK, FK, UK i VNN, i anota les pèrdues semàntiques.
Tasques
- Transforma les entitats i la relació imparteix.
- Transforma les dues reflexives. Quina necessita taula pròpia i quina no?
- Transforma té aplicant la regla de la 1:1 amb (0,1) i (0,1).
- Llista les pèrdues semàntiques.
Comprovació
Hi ha 7 taules.
El delegat és una FK d’
ALUMNOa la mateixa taulaALUMNO.TIENEté una PK i una UK.
Errors habituals
- Posar
fecha_matriculaenALUMNO(en la solució antiga apareixia a les dues taules). Només va enMATRICULA.- Usar el mateix nom de columna per als dos mòduls d’
ES_REQUISITO.
🔒 Solució
Ampliació
Un alumne pot repetir i matricular-se dues vegades del mateix mòdul en cursos distints. Què canvia en MATRICULA?
Tasca 3 · Concessionari: vendes, revisions i mecànics
Objectiu
Transformar una entitat feble per identificació, una reflexiva 1:N i claus alternatives.
Context
És el diagrama de l’exercici 10 de la UD02.
Enunciat
Obtín l’esquema relacional amb PK, FK, UK i VNN. Indica quines columnes de REVISION són alhora PK i FK.
Comprovació
La PK de
REVISIONés composta i inclou la matrícula.nifidnisón UK.La FK del client en
COCHEadmet nuls (cotxe sense vendre).
Errors habituals
- Escriure
PK (codigo, matricula)sense marcarmatriculacom a FK.- Posar VNN en
cod_clientedeCOCHE: el diagrama diu (0,1), un cotxe pot estar sense vendre.
🔒 Solució
Ampliació
El taller guarda quines peces es canvien en cada revisió i quantes. Afig l’entitat PIEZA i transforma la nova relació. Quantes columnes té la PK de la taula nova?
Tasca 4 · Cases rurals
Objectiu
Transformar una cadena d’entitats febles amb claus alienes compostes i distingir la dependència en identificació (identificadora) de la dependència en existència (E).
Context
El primer diagrama és el de l’exercici 11 de la UD02. El segon és la variant de la seua ampliació.
Enunciat
Obtín l’esquema relacional dels dos diagrames.
Tasques
- Escriu la PK de
CIUDAD. Quantes columnes té la FK que la referencia des deCASA_RURAL? - Transforma
HABITACIONi la relació s’allotja. - En el diagrama 4.2, quina diferència hi ha en l’esquema entre la dependència ID de
CIUDADi la E deCASA?
Comprovació
Totes les FK que apunten a
CIUDADtenen dues columnes.La PK de
SE_ALOJAinclou la data d’entrada.En 4.2,
CASAté PK pròpia i la seua FK aCIUDADporta VNN.
Errors habituals
- Escriure
FK: nombre_ciudad → CIUDADamb una sola columna. La FK ha d’apuntar a la PK completa (era l’error de la solució antiga).- Incloure la ciutat en la PK de
CASAen el diagrama 4.2: la dependència és d’existència, no d’identificació.
🔒 Solució
Ampliació
Un client vol reservar diverses habitacions amb una sola reserva (número de reserva, data i forma de pagament). Redissenya la part de l’E/R afectada i transforma-la.
Tasca 5 · Esquema abstracte 1: ternària 1:1:N i agregació
Objectiu
Aplicar les regles a un esquema sense significat (lletres), on només compten l’estructura i les cardinalitats.
Context
Els esquemes abstractes obliguen a aplicar les regles sense apoiar-se en el sentit comú de l’enunciat. Els atributs subratllats són identificadors; a0 és el discriminador de l’entitat feble A.
Enunciat
Obtín l’esquema lògic relacional i enuncia les pèrdues semàntiques.
Tasques
- Quina és la PK d’
A? I la deFiG? - Quina clau identifica l’agregació? Transforma R5.
- Transforma la ternària R2 (1 al costat d’
A, 1 al costat deD, N al costat d’E): PK i UK. - Enuncia les pèrdues.
Comprovació
- Totes les FK cap a
Atenen dues columnes. -
R2té PK i UK distintes. - Has anotat que no es capta que la generalització siga disjunta.
🔒 Solució
Tasca 6 · Esquema abstracte 2: agregació amb relació 1:1 i existència
Objectiu
Transformar una agregació d’una N:M, una 1:1 amb atribut i dependència en existència, una ternària 1:N:N i una reflexiva sobre una subclasse.
Enunciat
Obtín l’esquema lògic relacional i enuncia les pèrdues semàntiques.
Tasques
- Transforma l’agregació: com que R4 és N:M, la seua taula és la que representa l’agregació.
- Col·loca R5 (1:1, atribut
m, l’agregació depén en existència de R5). - Transforma R6 (1 al costat de
C).
Comprovació
- La taula
R4porta la clau d’A, l’atributm, una UK i VNN. -
R6té PK de dues columnes i la tercera amb VNN.
🔒 Solució
Tasca 7 · Esquema abstracte 3: ternària amb una entitat repetida
Objectiu
Transformar una ternària en què una entitat participa dues vegades, una 1:1 amb (0,1) als dos costats i una generalització total i solapada.
Enunciat
Obtín l’esquema lògic relacional i enuncia les pèrdues semàntiques. En R1, F apareix dues vegades: anomena F1 l’extrem amb N i F2 l’extrem amb 1.
Tasques
- Quina clau identifica l’agregació si R4 és 1:N?
- Transforma R3 (G amb 1, l’agregació amb N i dependència en existència).
- Transforma R6 amb la regla de la 1:1 amb mínims 0.
- Transforma R1 (F1: N, F2: 1, E: 1).
Comprovació
- L’agregació queda representada per la taula
C. -
R6té PK d’una columna i UK de dues. -
R1té PK (F1, F2) i UK (F1, E).
🔒 Solució
Banc d’exercicis
Els exercicis del banc demanen l’esquema relacional i, en alguns casos, les restriccions i polítiques d’esborrat que l’acompanyen. Tot es resol sobre el paper: la implementació en un gestor la faràs quan arribes a la UD05.
Bloc 1: Exercicis de transformació de relacions binàries i claus
Exercici 1: Transformació de relació binària 1:N (clients i comandes)
Enunciat:
Un client fa diverses comandes en una botiga en línia, però cada comanda és feta per un únic client. Dels clients es coneix el seu id_cliente, nombre, email i telefono. De les comandes es coneix num_pedido, fecha_pedido i importe_total.
- a) Expressa l’esquema relacional formal derivat d’esta relació .
- b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 2: Transformació de relació binària N:M (metges i pacients)
Enunciat:
Un metge atén diversos pacients en un centre hospitalari i un pacient pot ser atés per diferents metges especialistes. Dels metges es coneix num_colegiado, nombre i especialidad. Dels pacients es registra id_paciente, dni, nombre i fecha_nacimiento. De cada atenció mèdica realitzada es guarda la fecha_atencion i el diagnostico.
- a) Expressa l’esquema relacional formal resultant per a la relació .
- b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 3: Transformació de relació 1:1 opcional (empleats i vehicles d’empresa)
Enunciat:
Una empresa assigna un cotxe d’empresa a certs empleats clau. Un empleat només pot tindre assignat com a màxim un cotxe, i un cotxe pertany com a màxim a un únic empleat. Alguns empleats no tenen cotxe assignat. Dels empleats es coneix id_empleado i nombre. Dels vehicles es coneix matricula, modelo i color.
- a) Indica quina estratègia de propagació de clau és la més adequada per a evitar la presència innecessària de valors nuls.
- b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 4: Entitat feble per identificació (edificis i aules)
Enunciat:
Un campus universitari organitza les seues aules dins d’edificis. De cada edifici es coneix cod_edificio i nombre_edificio. De les aules es coneix num_aula (101, 102, 201…) i capacidad_puestos. El número d’aula no és únic en tot el campus, sinó únicament dins de cada edifici determinat.
- a) Expressa l’esquema relacional formal especificant la clau primària composta de la taula
AULA. - b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 5: Entitat feble per existència i identificació (pacients i ingressos)
Enunciat:
En un hospital, un pacient pot fer diversos ingressos al llarg del temps. De cada pacient s’emmagatzema id_paciente, dni i nombre. De cada ingrés es registra num_ingreso (1, 2, 3… seqüencial per a cada pacient), fecha_ingreso i habitacion. L’ingrés no pot existir ni identificar-se sense el pacient al qual pertany.
- a) Expressa l’esquema relacional formal per a
PACIENTEiINGRESO. - b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Bloc 2: Exercicis de relacions reflexives, atributs especials i jerarquies
Exercici 6: Relació reflexiva 1:N (organigrama d’empleats)
Enunciat:
En una empresa, cada empleat té un únic cap directe, que és al seu torn un altre empleat de la plantilla. De cada empleat es coneix id_empleado, nombre, puesto i salario.
- a) Expressa l’esquema relacional formal indicant com s’implementa l’autoreferència.
- b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 7: Relació reflexiva N:M (estructura composta de peces / BOM)
Enunciat:
Una fàbrica de maquinària registra peces industrials. De cada peça s’emmagatzema cod_pieza, nombre_pieza i precio. Una peça pot estar composta per diverses subpeces components, i al seu torn una subpeça forma part de la fabricació de múltiples peces superiors. En cada acoblament s’indica la cantidad_unidades.
- a) Expressa l’esquema relacional formal definint la taula intermèdia d’acoblament.
- b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 8: Atribut multivalorat (telèfons de contacte de clients)
Enunciat:
De cada client d’un banc es coneix id_cliente, nombre i email. Un client pot disposar de diversos números de telèfon de contacte (telefono).
- a) Indica per què no es poden guardar els telèfons com una llista separada per comes dins de la mateixa cel·la de la taula
CLIENTE. - b) Expressa l’esquema relacional formal transformant l’atribut multivalorat en una taula independent.
- c) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 9: Atribut compost (adreça estructurada)
Enunciat:
De cada proveïdor es coneix el seu nif, nombre_empresa i l’atribut compost direccion (format per calle, numero, piso, codigo_postal i ciudad).
- a) Mostra com es transforma l’atribut compost al model relacional lògic.
- b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 10: Transformació de jerarquia EER (opció de taula única amb discriminador)
Enunciat:
Una empresa classifica els seus empleats en dos tipus exclusius: PROGRAMADOR (amb l’atribut lenguaje_principal) i ADMINISTRATIVO (amb l’atribut nivel_ofimatica). Els atributs comuns a tots els empleats són id_empleado, nombre i salario.
- a) Mostra l’esquema relacional aplicant l’estratègia de taula única amb una columna discriminadora
tipo_empleado. - b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 11: Transformació de jerarquia EER (opció de taula per categoria amb claus alienes)
Enunciat: Considera la mateixa jerarquia d’empleats de l’exercici 10, però aplica l’estratègia de taula per al supertipus i taules per a cada subtipus.
- a) Expressa l’esquema relacional formal per a les 3 taules resultants (
EMPLEADO,PROGRAMADOR,ADMINISTRATIVO). - b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Bloc 3: Casos integradors complexos (3 a 5 entitats)
Exercici 12: Sistema de gestió de concessionari de vehicles
Enunciat: Dissenya l’esquema relacional per a un concessionari a partir dels requisits següents:
Clients:
id_cliente(PK),nif,nombreitelefono.Cotxes:
matricula(PK),modelo,precio_ventai el client comprador (id_cliente). Un client pot comprar diversos cotxes.Revisions: Cada cotxe passa revisions al taller. La revisió s’identifica de manera feble per
num_revision(1, 2, 3…) dins de cada cotxe (matricula), registrantfecha_revisionicoste.Mecànics: Cada revisió és realitzada per un únic mecànic (
id_mecanico[PK],nombre,especialidad). Un mecànic supervisa altres mecànics (relació reflexiva ).a) Redacta l’esquema relacional formal complet de totes les taules amb les seues PK i FK.
b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 13: Gestió d’hotels, habitacions febles i reserves de clients
Enunciat: Una cadena hotelera administra establiments:
Hotels:
id_hotel(PK),nombre_hotel,ciudad.Habitacions:
num_habitacion(101, 102…) identificat de manera feble respecte a l’id_hotel. Es guarda lacapacidadiprecio_noche.Clients:
id_cliente(PK),dni,nombre,email.Reserves: Un client reserva una habitació específica d’un hotel per a un rang de dates (
fecha_inicio,fecha_fin,precio_total). Un client fa moltes reserves i una habitació rep distintes reserves en dates diferents.a) Redacta l’esquema relacional formal complet.
b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 14: Sistema de videoclub / plataforma de continguts
Enunciat: Es requerix estructurar la base de dades d’un videoclub digital:
Pel·lícules:
id_pelicula(PK),titulo,duracion,año.Actors:
id_actor(PK),nombre,nacionalidad. Una pel·lícula compta amb diversos actors i un actor participa en diverses pel·lícules (registrant elpapel_desempeñado).Socis:
num_socio(PK),dni,nombre,fecha_alta. Un soci apadrina o recomana la plataforma a altres nous socis (relació reflexivaAPADRINA).Lloguers: Un soci lloga pel·lícules registrant
fecha_alquileriprecio_alquiler.a) Redacta l’esquema relacional formal complet.
b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 15: Fabricació industrial i control de qualitat
Enunciat: Una fàbrica de maquinària d’alta precisió organitza el seu catàleg:
Línies de muntatge:
id_linea(PK),denominacion.Peces:
cod_pieza(PK),nombre_pieza,peso. Una peça està composta per altres subpeces components (relació reflexivaENSAMBLADA_CONamb atributcantidad).Inspeccions de qualitat: Cada peça fabricada en una línia passa inspeccions. La inspecció s’identifica de manera feble per
num_inspeccionrelatiu a la peça (cod_pieza), registrantfecha_inspeccion,resultado(Aprovat/Rebutjat) i la línia de muntatge on es va realitzar.a) Redacta l’esquema relacional formal complet.
b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 16: Xarxa de transports urbans (línies, parades febles i transbordaments)
Enunciat: Una empresa municipal de transports gestiona autobusos:
Línies:
cod_linea(PK),nombre_linea,frecuencia.Parades febles: Cada línia realitza parades en una seqüència ordenada
num_orden(1, 2, 3…) relativa a la línia (cod_linea), registrantcalle_ubicacion.Transbordaments reflexius: Dues línies poden connectar-se en punts de transbord (relació reflexiva
TRANSBORDOentre línies amb atributtiempo_minutos_andando).Autobusos:
matricula(PK),modelo, adscrits a una línia.a) Redacta l’esquema relacional formal complet.
b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 17: Organització de torneig esportiu
Enunciat: Una federació de bàsquet gestiona la seua lliga:
Equips:
id_equipo(PK),nombre_club,ciudad.Jugadors:
num_ficha(PK),nombre,dorsal, pertanyent a un equip. Un jugador actua com a capità de l’equip (relació de capitania).Partits:
id_partido(PK),fecha, enfrontant dos equips distints (un local i un altre visitant).Incidències febles: Cada partit genera incidències a l’acta identificades per
num_incidenciaseqüencial relatiu al partit (id_partido), registrant elminutoi eltipo_incidencia.a) Redacta l’esquema relacional formal complet.
b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.
Exercici 18: Anàlisi d’inconsistències en taules relacionals
Enunciat:
Donada la taula següent PEDIDO_DESNORMALIZADO:
num_pedido | fecha | id_cliente | nombre_cliente | id_producto | precio | cantidad |
|---|---|---|---|---|---|---|
5001 | '2026-10-01' | 10 | 'Juan' | 'P1' | 15.00 | 2 |
5001 | '2026-10-01' | 10 | 'Juan' | 'P2' | 30.00 | 1 |
5002 | '2026-10-02' | 10 | 'Juan Perez' | 'P1' | 15.00 | 5 |
- a) Identifica quins problemes de redundància i inconsistència presenta esta taula plana.
- b) Redissenya l’estructura descomponent-la en un esquema de 4 taules relacionals ben definides amb les seues respectives claus primàries i alienes (
CLIENTE,PRODUCTO,PEDIDO,LINEA_PEDIDO).
Exercici 19: Definició d’accions d’integritat referencial
Enunciat:
Considera les taules CURSO(id_curso [PK], nombre) i ALUMNO(id_alumno [PK], nombre, id_curso [FK]).
- Explica què passa a la taula
ALUMNOen esborrar el curs 5 en cadascun dels escenaris de configuració de la clau aliena següents:- Esborrat en cascada
- Esborrat restringit
- Posada a nuls
Exercici 20: Cas integrador d’hospital i targetes de visita febles
Enunciat: Un centre sanitari gestiona els seus pacients i ingressos:
Pacients:
id_paciente(PK),dni,nombre.Plantes d’hospital:
num_planta(PK),denominacion.Llits febles: Cada planta té llits numerats
num_cama(1, 2, 3…) relatius a eixa planta (num_planta).Assignacions / ingressos: Un pacient és ingressat en un llit d’una planta en una
fecha_ingreso.Targetes de visita febles: Per cada pacient ingressat s’emeten fins a 4 targetes de visita autoritzades, identificades per un
num_tarjeta(1, 2, 3, 4) relatiu al pacient (id_paciente), ambhorario_autorizado.a) Redacta l’esquema relacional formal complet identificant totes les entitats febles i claus compostes.
b) Indique les restriccions que acompanyen l’esquema (claus alternatives, atributs obligatoris, regles de domini) i la política d’esborrat de cada clau forana, justificant-la.