Usuari:Sergi/Temari/Tema 53 Diseño lógico de datos. Transformación del modelo conceptual a modelos lógicos. Análisis relacional de datos. Documentación.

De Acacha

Dreceres ràpides: navegació, cerca

Consulteu el Tema 35.

Contingut

Modelat de dades

El modelat d'una base de dades és un problema que s'acostuma a dividir en 3 nivells:

Nivell conceptual

És el nivell més abstracte i esta més relacionat a l'estudi dels Sistemes d'Informació (SI) en general, entès com quelcom més ampli que simplement una base de dades. En aquest nivell es modela un sistema d'informació conceptualment (funcionalitats del sistema, regles, actors, etc.) sense especificar detalls de la seva implementació

Nivell lògic

Aquest nivell representa el primer intent de implementar un solució per al problema conceptual.

Nivell físic

Imatge:SGBD2.png


Model Entitat/Relació

Els diagrames o models entitat-relació, sovint denominats per les seves sigles (E-R Entity Relationship) són una eina per al modelat de dades de sistemes d'informació. Els diagrames E-R ens permeten modelitzar a nivell conceptual un sistema d'informació i es poden utilitzar com a pas previ a la creació d'un model més concret de base de dades (típicament un model relacional, però també pot servir per altres models com el jeràrquic o el model en xarxa.)

El model E/R va ser proposat per Peter Chen raó per la qual també se'ls anomena diagrames de Chen. L'objectiu d'aquest model és visualitzar els objectes que pertanyen a una base de dades. Aquest objectes són anomenats entitats que tenen atributs (concepte molt similar al de la Programació Orientada a Objectes- classes/Objectes) i es vinculen mitjançant relacions.


Recursos:


Diagrama entitat-relació

Formalment els diagrames E/R són un llenguatge gràfic per a la descripció de conceptes. Informalment són simplement uns diagrames que descriuen la informació d'un sistema d'informació. Els elements del llenguatge són:

Podem trobar:

Entitats

El terme entita té diferents accepcions depenent del context en que s'utilitzi. En el context de les bases de dades una entitat és qualsevol objecte sobre el qual es manté informació. Una entitat esta definida per les seves característiques o atributs. Per exemple:

Entitat Persona: Atributs:

  • Nom
  • Cognoms
  • Sexe
  • Data de naixement
  • Pes
  • etc...

A la dreta podeu veure la representació d'una entitat, que consisteix en un rectangle o caixa etiquetada al seu interior amb un identificador de l'entitat.

Alguns exemples típics d'entitats relacionades amb els sistemes d'informació són: factura, persona, empleat, etc.

Tot i que no es pot prendre al peu de la lletra, podem fer una comparació amb la sintaxi del llenguatge natural i comparar les entitats amb els substantius d'una frase.

Entitats fortes i dèbils

La diferenciació entre entitats dèbils i entitats fortes és una extensió del diagrames E/R bàsics

Quan una entitat participa d'una relació pot adquirir un paper fort o dèbil. Una entitat dèbil és aquella que no pot existir sense participar en una relació, o el que és el mateix, aquella que no pot ser identificada solament pels seus atributs. La resta d'entitats són entitats fortes.

Les entitats dèbils es representen mitjançant un doble rectangle o un rectangle amb doble línia.

Relacions

Una relació descriu certa dependència entre entitats. Es representa mitjançant un rombe etiquetat al seu interior amb un verb que s'uneix mitjançant segmentes de recta amb les entitats (rectangles) que relaciona.

Seguint amb l'exemple de persona podríem establir la següent relació entre las entitats persona i departament:

Una persona (entitat) treballa per a (relació) un departament (entitat).

Tot i que no es pot prendre al peu de la lletra, podem fer una comparació amb el llenguatge natural i comparar les entitats amb els verbs d'una frase.

Les relacions es representen amb un rombe.

Cardinalitat de las relaciones

Expressar la cardinalitat de les expressions es considera una extensió dels diagrames de Chen. Aquest diagrames s'anomenen diagrames extensos E/R 
i s'utilitzen per tal d'augmentar les limitacions semàntiques del diagrames bàsics d'E/R

La relacions, que en principi, en els diagrames bàsics d'E/R són binaries, poden involucrar un número indefinit d'instàncies de cada entitat. Hi ha tres tipus de cardinalitats:

  • Relacions un a un: una instància de la entitat A es relaciona amb una i només una de la entitat B.
  • Relacions un a molts: cada instància de la entitat A es relaciona amb diferents instàncies de la entitat B.
  • Relacions de molts a molts: qualsevol instància de la entitat A, es relaciona amb qualsevol instància de la entitat B.

El tipus de cardinalitat es representa mitjançant una etiqueta a l'exterior de la relació. Les etiquetes dels diferents tipus esmentats prèviament són:

  • "1:1"
  • "1:N"
  • "N:M"

Atributs

Els atributs són propietats rellevants pròpies d'una entitat o relació. Es representen mitjançant un cercle o el·lipse etiquetada mitjançant un identificador al seu interior.

Quan una etiqueta és identificadora clau de la entitat se sol subratllar la etiqueta.

Per motius de llegibilitat, només se solen representar els atributs més importants, deixant la definició de la resta d'atributs a un document de text que se sol adjuntar al diagrama E/R.

Seguint amb l'exemple anterior, un atribut identificador de la entitat empleat pot ser el número de la seguretat social.

Procés de creació d'un model E/R

El model E/R és una fase intermèdia del procés de modelatge de dades. Mitjançnat una sèrie de tècniques pràctiques es pot passar d'un descripció textual dels requisits al model E/R i d'aquest a altres models com per exemple el model relacional.

Breument consisteix en els següents passos:

  1. Es parteix d'una descripció textual del problema o sistema d'informació a automatitzar (els requisits)
  2. S'identifiquen les entitats i les relacions entre entitats. Sovint s'utilitza la tècnica de buscar substantius i verbs, però cal dir que no és una tècnica exacte i que requereix d'un anàlisi més profund del problema
  3. Analitzant els requisits es determina la cardinalitat de las relacions i altres detalls.
  4. S'elabora el diagrama E/R
  5. Es completa el model definint els atributs. Només aquells més importants apareixien al diagrama i la resta dsi es volen expressar s'expressen textualment en un document adjunt.

Transformació del model E/R en model relacional

Per fer aquesta transformació, els primers passos són:

  • Definició de les taules (relacions): Tant les Entitats com les Relacions del model de Chen es converteixen en taules.
  • Definició de claus: Les relacions del model de Chen tindran com a clau una clau composta com a mínim per la clau primària de cada una de les Entitats que relacionen
  • Definició d'atributs: Els atributs del model de Chen es transformen en camps.

Disseny de la persistència (base de dades relacional) d'un model orientat a objectes. UML

L'ús més habitual de les bases de dades és proporcionar persistència a els objectes d'una aplicació orientada a objectes (Oriented Object Programming/Paradigm (OOP)). La persistència és la propietat que permet recuperar la informació relacionada als objectes entre diferents execucions de l'aplicació. Les aplicacions en executar-se utilitzant la memòria principal del sistema, que com es sabut és una memòria no persistent (es perd la informació quan la memòria deixa de rebre energia elèctrica) i a més, els sistemes operatius alliberen els recursos de memòria utilitzats per una aplicació un cop finalitzada la mateixa.

La persistència també és aplicable a altres paradigmes de programació que no siguin el OOP (per exemple aplicacions desenvolupades amb un llenguatge de programació estructurat). Així mateix, la persistència es pot implementar mitjançant altres sistemes com l'ús de fitxers.

El cas de la programació orientada a objectes és un cas interessant perquè és un dels paradigmes més utilitzats en l'actualitat i a més és força fàcil establir un procés per a dissenyar una base de dades relacional a partir de les especificacions de disseny i l'anàlisi d'una aplicació orientada a objectes.

L'estàndard per a l'anàlisi d'aplicacions orientades a objecte és Universal/Uniform Modelling Language.

El més habitual per tal de crear la base de dades és partir del diagrama de classes de UML. Els passos a seguir per dissenyar una base de dades a partir d'un model orientat a objectes són:

  • Eliminació de l’herència: Les bases de dades relacionals no ofereixen cap tipus de suport per l’herència, per tant inclús l’herència simple s’ha d’eliminar de l’esquema. Normalment és crea una taula per cada objecte de la relació d'herència i les taules que representen les classes filla, han de tenir tant les dades específiques com les dades "heretades" del pare.
  • Obtenció del disseny de les taules: Per fer-ho cal aplicar un conjunt de regles. Aquestes regles són una adaptació de les regles per a la transformació de models E/R en bases de dades relacionals:
    • Conversió de cada classe a una taula relacional. Els atributs de la classe passen a ser camps de la taula. Totes les taules necessiten una clau primària, que és un atribut o conjunt d’atributs que permeten identificar cada fila (“objecte”) de la taula. Per exemple, el DNI (si suposem que no hi ha errors i per tant no hi ha DNIs repetits) podria ser un bona clau primària per una taula empleat. Si no trobem cap atribut o combinació d’atributs que ens faci el pes, es pot crear una clau artificial (afegint un nou camp “codi” a la taula).
    • Associacions de tipus 1:*: es tracta afegint a la taula que representa la classe del costat * el/s atribut/s que formen la clau primària de la taula que representa la classe del costat 1. Aquests atributs queden marcats com claus foranes. Una clau forana obliga a què el valor del nou atribut sigui vàlid, és a dir, que sigui un dels valors existents dins l’altra taula. L’altra taula queda inalterada ja que el model relacional no permet atributs amb valors múltiples (atributs de tipus vector).
  • Per cada associació *:* (relacions on ambdós extrems tenen una cardinalitat >1): es crea una nova taula que té com a atributs les claus primàries de les taules que representen les classes participants en la associació. Aquests atributs es marquen com a clau forana. La suma de tots ells es la clau primària de la nova taula.

De manera similar, cada associació n-ària es transforma en una nova taula amb n claus foranes. La clau primària es la suma de totes (o algunes) de les claus foranes. A vegades només amb la suma d’alguns dels atributs que fan de clau forana en tenim prou per identificar la taula, depèn de la cardinalitat de la associació en el disseny original.

Tot i que, com s’ha dit anteriorment, no es pretén proporcionar una visió exhaustiva de la transformació i per tant no es tindran en compte, calen altres consideracions per completar la transformació, com per exemple si els atributs poden tenir valors nuls o no (depèn de la cardinalitat mínima de les relacions), el tractament de les relacions 1:1 (que es poden tractar com si fossin 1:* o *:*) ...

Sintaxi:

Taules:

  • Ruta(codi,origen,destinacio,distancia)
  • Pilot(codi, nom, horesVol, categoria)
  • PilotRutes(codiPilot,codiRuta)
  • PlaVol(codi,data, horaSortida, durada, codiRuta, codiAvio)
    • {codiRuta} és clau forana a Ruta
    • {codiAvio} és clau forana a Avio
  • PlaVolPilots(codiPlaVol, codiPilot)
  • Avio(codi, model, autonomia, dataAlta, horesVol, codiMotor)
    • {codiMotor} és clau forana a Motor
  • Motor(codi, marca, potencia, model, consumMitja, horesfuncionament, tipusMotor)

Recursos:

Eines de l'usuari