BULMA Bulma amb el projecta Defective by Desing
Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(09/02/2010 14:25:46)
    
Google


En bulma.net
En internet
Diagrames Entitat-Relació en web (10403 lectures)
Por Joan Miquel
Joanmi (http://www.mallorcaweb.net/joanmiquel)
Creado el 25/03/2004 20:37 modificado el 25/03/2004 20:37

[ScreenShot]

Si algun cop vos heu vist en la necessitat de dissenyar i mantenir una base de dades relacional, sabreu lo important que és una bona documentació de tot el procés de disseny, des del model Entitat-Relació fins al codi SQL final. I sobretot lo molt que costa mantenir aquesta documentació al dia cada cop que fem modificacions a la base de dades i, molt especialment en projectes de programari lliure.

Existeixen diverses eines gràfiques que permeten representar el model Entitat-Relació d'una base de dades. Algunes d'elles fins i tot poden, amb major o menor encert, generar-nos el model relacional a partir del diagrama E-R. Totes estan molt be per models petits com la típica biblioteca o sistema de lloguer de pel·lícules. Però quan es tracta de projectes més complexos, representar el model de dades d'una manera llegible resulta cada cop més difícil. I les modificacions i ampliacionss son cada cop més costoses.

Dividir els esquemes en blocs més petits pot ajudar a facilitar la comprensió, però multiplica la feina i en dificulta l'estudi. Al final, cansat de tantes (f)eines gràfiques, he optat per implementar-me la meva pròpia solució. I crec que el resultat ha valgut la pena :-)


Pagina1/3

Índex:

  1. Per als impacients.
  2. Origen de la idea.
  3. Instal·lació.
  4. Com generar els diagrames.
  5. Funcionalitats futures.
  6. Com col·laborar.

Per als impacients:

Per als impacients aqui teniu un parell de screenshots:

[ScreenShot] [ScreenShot] [ScreenShot] [ScreenShot] [ScreenShot]

...O també ho podeu veure "en acció" a:

http://bulmages.bulma.net/erm/

Origen de la idea:

Fa poc he estat "cridat a files" al projecte Bulmagés perque s'estava pensant en arrancar el mòdul de facturació i TPV (actualment Bulmagés només és comptabilitat) i com que per molts és sabut que jo hi estava interessat i, de fet, ja estava fent cosetes pel meu compte, em van demanar de col·aborar-hi.

La idea era començar amb un TPV perque hi ha una persona a qui li interessa i està disposat a currar-hi per tenir-lo enllestit en poc temps. Va be marcar-se objectíus i aquest és un fàcilment assumible.

Però tots vam coïncidir en que fer un TPV sense abans tenir definida la Base de Dades de tota la gestió suposaria que en posar-nos amb aquesta segurament hauriem de fer canvis seriosos a la implementació del TPV, cosa que és duplicar feina.

Per això vam agafar la documentació de la "mitja gestió" que jo tenc funcionant a la empresa a la que treball com a base per fer el disseny de la base de dades de la futura BulmaFACT. I el primer problema que ens vam trobar és que aquell diagrama no es correspòn al 100% amb la base de dades actual perque aquesta ha sofert modificacions que no sempre he disposat de temps d'actualitzar al model Entitat-Relació i fer-ho quadrar amb el relacional i l'SQL de la Base de dades.

Per tant, vaig haver de partir del model ER que tenia i repescar les millores de notes soltes i de consultes directes sobre la BD en producció. I, lògicament, és previsible que el resultat sigui objecte de modificacions futures ja que es pretén que tot-hom que hi estigui interessat pugui participar en el desenvolupament del projecte.

A més, això afegeix una complicació extra: Si moltes persones han de participar en el disseny del model de dades, és difícil que tots entenguin a la perfecció la finalitat d'entitats o camps concrets col·locats per altres persones. Si això ja és un problema quan el disseny de la base de dades la fa una sola persona i hem d'anar prenent nota dels nostres propis pensaments per ser capaços d'entendre'ls en el futur, imaginau quan han de ser entesos per moltes persones.

Aleshores, necessitavem un model ER:

  1. Fàcilment modificable
  2. Ràpid de consultar
  3. Fàcilment comprensible
    1. Tant per l'autor...
    2. ...com per terceres persones que ho hagin de consultar.
  4. I si no és molt demanar que modificant una sola fase del disseny, la resta es puguin generar automàticament.

Crec que els tres primers punts els hem aconseguit. I el quart està en el TO-DO (el projecte és jove encara ;-)) però pens que no serà gaïre difícil d'assolir.

Per entendre la idea, si pensam en la naturalesa d'un diagrama ER, veurem que consta de dues parts:

  • Una llista d'entitats amb la corresponent enumeració dels camps que la composen i amb identificacio del camp o camps que formen la clau primaria.
  • Un esquema gràfic on es representen aquestes entitats i les relacions que hi ha entre elles (que, com sabem, de vegades poden contenir algún camp de dades).

La llista d'entitats és fàcil i es pot fer amb qualsevol editor de text pla (vi comes for help! :-)). Però com més gran és el quocient entre el número de relacions i el d'entitats, més difícil és conseguir una representació gràfica clara i llegible (fins i tot amb llapis i paper) de les relacions existents entre les entitats. Per això és tan difícil trobar una eina CAD adequada.

Com que això suposava un gran contratemps vaig decidir, en comptes de dibuixar el diagrama, redactar també una llista de les relacions indicant les entitats que relacionen, amb quina cardinalitat i, si en tenen, els camps de dades pertinents i que cadascú es dibuixi, si vol, el seu propi diagrama del que l'interessi, però que el format "oficial" del model ER seria el text pla.

Amb això es sol·lucionava el punt 1 ja que, per exemple, per afegir una relació al diagrama res més ràpid que escriure-la. I així sorgí la idea que solucionaria el punt 2, perque Crear una aplicació capaç de llegir i indexar tota aquesta informació era relativament trivial i, si be plasmar-la tota de cop i que quedi llegible és, com hem dit, poc menys que impossible, representar una entitat i davora totes les entitats amb que es relaciona i dibuixar-ne les relacions, també era un problema relativament senzill.

El problema hagués estat fer-ho a ma (repetició de feina) o consultar-ho (anar envant i enrera per un munt de pàgines per seguir el traçat de l'esquema). La idea però, era fer aquesta mateixa representació en format web de manera que, hiperenllaçant les entitats, aquesta navegació es convertiria en instantània.

Ara només ens quedava el punt 3: Fer que el diagrama fos fàcilment comprensible. En primer lloc pel propi autor, tasca que, com tots sabem, correspòn a un document apart del model ER anomenat Diccionari de Dades i que s'ha de fer al mateix temps que es dissenya el model ER perque si no després no ens recordam de perquè eren la meïtat de coses. Però que a la pràctica tot-hom ho feia després per lo engorrós que resulta passar constantment del ratolí al teclat i vice-versa (ara podem, per exemple, tenir dues pestanyes del konsole amb vim per editar simultàniament MER i DD sense haver d'utilitzar el ratolí per res. A més, ara ja no cal consultar-lo apart, sino que les descripcions dels camps ens surten davora aquests per a l'entitat que estam consultant i en un requadre emergent en passar el ratolí per damunt (anchor amb 'title') per als camps de les entitats filles i les relacions.

...i en segon lloc, per a terceres persones, cas en el qual només queda desitjar que l'autor hagi pres bones notes del que ha fet i de perquè ho ha fet si no volem haver de preguntar-li (o si ell no vol que li preguntin :-P).

Però així i tot, per a qui no les ha escrites, pot ser complicat trobar una nota en el moment que la necessita. Per aquesta raó, l'aplicació també interpreta certs marcadors que podem utilitzar dins el fitxer de notes per:

  • Delimitar seccions (amb jerarquia).
  • Marcar les notes com a "TO-DO notes" (coses a fer) que surten en vermell, o "Recordatoris o coses fetes".
  • "Enganxar" la nota a una o vàries entitats o relacions determinades.

Finalment, si existeix un fitxer anomenat CHANGELOG.txt, a la vista general del diagrama surt reproduït a davall de manera que si tenim diferentes versions podem anar anotant els canvis que anam fent en comparació a la versió anterior.


Paginas:  1  2  3  Abreviatura Siguiente>>

Imprimir
Version para
imprimir

Imprimir
Version
PDF
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
***0
Vots: 42
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 14/7/2008 15:44:22 | Tiempo Total: 0.016 segs | Kernel: Linux - i686 - 2.6.26-1-686 | Last boot: 09/02/2010 15:45 CET
Powered by Apache    MySQL    PHP    Gimp