Tema 02. Model entitat‐relació. - aprat50/DAM1-0484-BASES-DE-DADES GitHub Wiki

ETAPES EN EL DISSENY D'UNA BASE DE DADES

Etapes disseny d'una base de dades

DISSENY CONCEPTUAL

Primer haurem de recopilar tota la informació necessària de la part del món real que ens proposem modelitzar amb una base de dades. Per això necessitarem:

  • Fer entrevistes amb els futurs usuaris de la base de dades que s’està dissenyant.
  • Examinar la documentació proporcionada per aquests mateixos usuaris.
  • Fer una observació directa dels processos a informatitzar.

Finalment, haurem de triar un model de dades d’alt nivell i traduir els requisits anteriors a un esquema conceptual de la futura base de dades.
Un dels models de dades d’alt nivell més utilitzats és el model entitat/relació.

DISSENY LÒGIC

Es treballa amb el model abstracte de dades obtingut al final de l’etapa de disseny conceptual, per tal de traduir-lo al model de dades utilitzat pel sistema gestor de bases de dades (SGBD) amb el qual es vol implementar i mantenir la base de dades.

Quan el model del SGBD sigui relacional, caldrà traduir el nostre model Entitat/relació a un model de dades relacional.

DISSENY FÍSIC

El disseny físic consisteix a fer certs tipus de modificacions sobre l’esquema lògic obtingut en la fase anterior de disseny lògic, per tal d’incrementar l’eficiència.

Algunes accions per a incrementar l'eficiència de l’esquema:

  • Afegir algun atribut calculable en alguna relació.
  • Dividir una relació en altres dues o en més.
  • Incloure en la base de dades una relació que sigui el producte de combinar dues o més relacions.

Finalment, es fa la implementació física de la base de dades.

  • Definició d’índexs.
  • Assignació de l’espai inicial per a les taules, i previsió del seu creixement ulterior.
  • Selecció de la mida de les memòries intermèdies.
  • Parametrització del SGBD segons les opcions que aquest ofereixi.

CONCEPTES BÀSICS DEL MODEL ENTITAT/RELACIÓ (O MODEL ER) - PART I

  • Entitat: quelcom sobre el que el sistema ha de guardar informació i és diferenciable dels altres.

Ex: un alumne, un producte, una transacció bancària...

  • Atribut: cadascuna de les propietats/característiques que descriuen una entitat.

Ex: atributs entitat alumne: DNI, nom, cognoms, data naixement, telèfon...

  • Conjunt d’entitats: Defineix un conjunt d’entitats amb els mateixos atributs.

Ex: tots els alumnes del centre, tots els mòduls o assignatures...

  • Valor d’un atribut: representa la informació que descriu aquell atribut per aquella entitat.

Ex: el valor de l’atribut nom per una entitat Alumne és Pere, per un altre entitat Alumne serà Maria...

  • Domini d’un atribut: representa el conjunt de valors admesos per aquest atribut.

Ex: el domini de l’atribut data de naixement és una data lògica i el de l’atribut NIF consta de 8 dígits numèrics seguits d’una lletra.

  • Clau primària: atribut o conjunt d’atributs tal que els seus valors identifiquen de manera unívoca a una entitat.

Ex: el número de matrícula dels alumnes, el DNI, el NIF, el nº de SS, el codi de mòdul...

  • Atributs multivaluats: Atributs que poden tenir diferents valors.

Important

NO ELS FAREM SERVIR, el model relacional no els permet.

Ex: Mòduls que cursa un alumne, telèfons de l’alumne...

  • Atributs compostos: Atributs que es poden dividir.

Ex: nom complert d’una persona: nom + cognom 1 + cognom2, una adreça postal: nom de la via pública + número + escala + pis + porta...

  • Atributs derivats: que es poden obtenir a partir d’un altre atribut. No es solen guardar.

Ex: l’edat, es pot obtenir a partir de la data de naixement...

NOTACIÓ DELS DIAGRAMES ER - PART I

Per a representar gràficament un diagrama ER utilitzarem la següent notació:

Notació model ER

CONCEPTES BÀSICS DE MODEL ENTITAT/RELACIÓ (O MODEL ER) - PART II

  • Relació: associació entre diverses entitats. Sempre tenen un nom.

Ex: Hi ha una relació (matricula) entre el conjunt d’entitats Alumne i el conjunt d’entitats Mòduls. Un alumne es pot matricular en diversos mòduls...

  • Grau d’una relació: és el nombre de conjunts d’entitats que intervenen en una relació.

Ex: En la relació matricula intervenen el conjunt d’entitats Alumne i el conjunt d’entitats Mòduls, per tant parlem d’una relació binària o de grau 2.

  • Conjunt de relacions: conjunt que conté totes les relacions del mateix tipus.

  • Atributs de les relacions: una relació pot tenir atributs específics.

Important

Tot sovint ens referirem a:
L’entitat Alumne entenent que fem referència al conjunt d’ocurrències d’Alumnes.
La relació “estar matriculat” entenent que fem referència al conjunt de relacions “estar matriculat”.

NOTACIÓ DELS DIAGRAMES ER - PART II

Notació relacions amb conjunts
Representació en forma de conjunts

Notació relacions ER
Representació en el model ER

Notació atributs relacions ER
Representació d'atributs en les relacions en el model ER

RESTRICCIONS SOBRE ELS TIPUS DE RELACIONS

La cardinalitat d’assignació: especifica el nombre d’ocurrències d’entitats que participen en una relació. En les relacions binàries tenim els casos següents:

  • Relacions un a un (1:1)
  • Relacions un a molts (1:N)
  • Relacions molts a molts (N:M)

Relacions un a un (1:1)

Una entitat d’A està relacionada, com a molt, amb una entitat de B i viceversa.

Exemple: un departament només pot tenir un director i aquest només pot ser-ho en un departament.
Exemple un a un

Relacions un a molts (1:N)

Una entitat d’A està relacionada amb un nombre qualsevol d’entitats de B, mentre que una entitat de B està relacionada com a màxi amb una única entitat d’A.

Exemple: un departament té un o més empleats i un empleat sempre pertany a un únic departament. Exemple un a molts

Relacions de molts a molts (N:M)

Una entitat d’A està relacionada amb un número qualsevol d’entitats de B i viceversa.

Exemple: un alumne està matriculat a diversos mòduls i un mòdul té molts alumnes matriculats. Exemple molts a molts

Restricció de participació:

Indica si totes les entitats d’ambdós conjunts d’entitats participen en la relació o si només ho fan algunes.

Participació total: tota entitat d’A està relacionada amb alguna entitat de B.

Exemle: En un departament hi treballen un o més empleats, un empleat sempre treballa en un únic departament. Exemple participacio total

Participació parcial: no totes les entitats d’A estan relacionades amb entitats de B.

Exemple: En un departament hi treballen un o més empleats, però podem tenir empleats que no treballin a cap departament (ex: bidell, telefonista, personal de neteja).
Exemple participacio parcial

ENTITATS FEBLES

En certs casos haurem de representar algunes entitats amb una notació diferent, tot indicant que són entitats febles. Les entitats febles compleixen les següents característiques:

  • No disposen de prou atributs per formar la clau primària.

  • S’han d’associar amb una altra entitat -> “Entitat forta”.

  • La relació entre una entitat feble i la seva forta té sempre cardinalitat 1:N. La forta sempre és al costat 1 i la feble al costat N.

  • L’entitat feble no té clau primària, però sí que disposa d’un atribut o conjunt d’atributs que conformen el discriminant. Aquests atributs juntament amb la clau primària de l'entitat forta amb qui es relaciona identificaran de forma unívoca qualsevol instància d'aquesta.

Exemple: un préstec i els diversos pagaments que es van fent. El pagament no pot existir per i mateix si no tenim un préstec relacionat. Exemple entitat feble 1

Exemple: si tenim identificats els despatxos amb un número, aquests es podrien repetir per cada planta. Exemple entitat feble 2

RELACIONS RECURSIVES, REFLEXIVES O UNÀRIES

Existeix una relació entre instàncies d’un determinat conjunt d’entitats i altres ocurrències del mateix conjunt.

Exemple:

  • Hi ha empleats que supervisen la feina d’altres empleats (encarregats, directors, caps d’àrea, etc).
  • Òbviament no tots els empleats són supervisors.
  • Hi ha empleats que no tenen supervisor, com a mínim el Gerent.
    Exemple entitat unària

RELACIONS N-ÀRIES

Hi ha relacions on intervenen més de dos entitats: tres, quatre… (A la pràctica solen ser com a màxim ternàries). Poden ser de tipus 1:1:1, 1:1:N, 1:N:M, N:M:P

Exemple:

  • Considerem diferents proveïdors que subministren components per a un projecte. Cada component només és subministrat per un proveïdor.
  • Obtenim la relació “subministrar” (per exemple, amb un atribut de relació: quantitat)
  • Relaciona els proveïdors (atributs: número de proveïdor, etc.) que subministren components (atribut: número de component, etc.) per un projecte (atribut: número del projecte, etc.)
  • És una relació ternària ja que intervenen tres tipus d’entitats.
    Relació n-aria exemple

MODEL ER ESTÈS

Note

Problemàtica:

  • Què fem quan hi ha entitats amb alguns atributs comuns i altres específics per cada entitat?
  • Exemple: en una empresa tenim diferents tipus de treballadors dels que ens interessa identificar algunes característiques:
    • Camioners; tipus de carnet; relacionat amb camions.
    • Tècnics: carrera i formació; relacionat amb projectes.
    • Tots ells comparteixen atributs d’empleats (DNI, nom, telèfon, etc.)

Note

Solució:

  • Emprar els conceptes de generalització / especialització.
  • Anomenarem superclasse a l'entitat vàlida per tots els exemplars. Conté els atributs comuns a tots els exemplars de l’entitat.

  • Anomenarem subclasse a les entitats especialitzades. Conté els atributs propis de cada especialització.

Exemple:
Model ER estès

MODEL ER-ESTÈS GENERALITZACIÓ

  • També anomenat top-down; primer s’identifica la superclasse i posteriorment es troben les subclasses.

MODEL ER-ESTÈS ESPECIALITZACIÓ

  • També anomenat bottom-up; primer s’observen les subclasses i llavors la superclasse.

MODEL ER-ESTÈS (DISJUNT/SOLAPAT - PARTICIPACIÓ PARCIAL/TOTAL)

Direm que la generalització/especialització pot ser Disjunta (D) quan un exemplar només pot aparèixer en una subclasse, i Solapada (S) quan un exemplar pot aparèixer en vàries subclasses.

Direm que la generalització/especialització té participació Total (T) si qualsevol exemplar de la superclasse ha de pertànyer a una subclasse i Parcial (P) si no és necessari algun exemplar de la superclasse aparegui en una subclasse.

Exemple, model estès Disjunt amb participació Total. Haurem de considerar disjuntes les subclasses de PERSONA si els reglaments de funcionament del centre no permeten que cap professor s’hi matriculi com a alumne, simultàniament amb l’exercici de la seva tasca docent. Al mateix temps, les considerarem totals si la nostra BD registra exclusivament les dades de professors i d’alumnes, sense ocupar-se d’altres categories de persones (com podria ser el personal administratiu, de manteniment, de neteja, etc.).
Model estes DT

Exemple, model estès Solapat amb participació Parcial. Haurem de considerar solapades les subclasses de PROFESSOR si volem reflectir el fet que alguns professors, tot i exercir com a tals amb una especialitat concreta en un curs acadèmic, poden tenir altres especialitats. Per tant, un professor podrà ser simultàniament INFORMATIC i ADMINISTRATIU. D’altra banda, les considerarem parcials perquè al nostre institut hi podrà haver, amb tota seguretat, professors d’altres especialitats (com ara electròniques, comercials, etc.), que no seran ni informàtics ni administratius.
Model estès SP

MODEL ER-ESTÈS EXEMPLE

Una empresa dedicada a la venda de vehicles, necessita organitzar les dades de la següent manera:

  • Tenim una sèrie de vehicles dels que volem guardar un número de bastidor i un preu.
  • Cada vehicle ve d’un fabricant del que es guardaran les dades principals.
  • Un fabricant pot fabricar molts vehicles.
  • Els vehicles poden ser de varis tipus: motos, cotxes o camions.
  • Dels camions ens interessa guardar també el tonatge i el número d’eixos.
  • Dels cotxes volem tenir el número de portes i el número de places.
  • De les motos volem guardar la cilindrada.
  • Algunes motos porten assignat un sidecar. Si en tenen, volem guardar el color, la mida, el costat al que s’enganxa i el número de rodes. No es té mai un sidecar sense ser assignat a una motocicleta.

Model ER estès exemple

⚠️ **GitHub.com Fallback** ⚠️