Genereren database-model

Pagina: 1
Acties:
  • 107 views sinds 30-01-2008

  • DeSjaak
  • Registratie: December 2000
  • Laatst online: 30-06 17:45
Ik heb hier een grote database(40 tabellen) die draait op interbase. De documentatie is niet helemaal volledig en ik wil graag een grafische model van deze database.

Ik heb al het een en ander geprobeerd met Visio 2002 en een ODBC-verbinding. Hier werden alle tabellen en attributen goed weergegeven.

Het probleem is nu dat ik ook graag alle relaties wil hebben, deze staan alleen niet in de database opgeslagen. Dus ik zoek een programmatje die deze genereerd(relaties leggen tussen overeenkomende attributen) en weergeeft.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Hoe bedoel je, de relaties zijn niet in de databank opgeslagen?
Als er relaties zijn tussen de tabellen, dan zitten die echt wel in de DB opgeslagen hoor. ;)

https://fgheysels.github.io/


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

DeSjaak schreef op 09 April 2003 @ 11:33:
Het probleem is nu dat ik ook graag alle relaties wil hebben, deze staan alleen niet in de database opgeslagen. Dus ik zoek een programmatje die deze genereerd(relaties leggen tussen overeenkomende attributen) en weergeeft.
ehm, hoe moet een programma weten waar de relaties zitten :?
Gewoon zelf die relaties maken lijkt mij het handigst, snelst en beste ;)

  • DeSjaak
  • Registratie: December 2000
  • Laatst online: 30-06 17:45
Het ontwerp bevat wel relaties alleen deze zijn niet opgeslagen in de database de relaties worden in de query's gelegd.

Mijn vraag was dus of er een programmatje is die die relaties opzoekt, door de attributen van elke tabel met elkaar te vergelijken. En tussen overeenkomende attributen een relatie te leggen. De overbodige relaties die verwijder ik dan wel handmatig..

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21-08 21:44

MBV

misschien zoals access het automatisch doet? Simpel, als in tabel x een element Blaatnr voorkomt, en in y ook, is er een relatie tussen x en y. Is dat progje open source? Even proggen... :+

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Het probleem is denk ik niet zozeer dat die informatie niet in die interbase db ligt opgeslagen, maar eerder het feit dat hij ze niet via de odbc naar buiten wil sturen. Ik ben bezig geweest met een meta-data tool die info ophaalt over tabellen,kolommen, types en relaties. Bij alle databases kon tabellen,columns en types ophalen. Maar bij sommigen kon ik geen relaties en keys ophalen omdat de driver brak was (access bv) Je zou misschien een nieuwere driver voor interbase kunnen proberen.
Het ontwerp bevat wel relaties alleen deze zijn niet opgeslagen in de database de relaties worden in de query's gelegd.
*krijgt hier aan aanval* Er zijn geen relaties tussen die tabellen gelegd?? Dat gaat nog leuk worden om referentiele integriteit te waarborgen. Wie heeft dat ding gemaakt???

[ Voor 33% gewijzigd door Alarmnummer op 09-04-2003 11:53 ]


  • DeSjaak
  • Registratie: December 2000
  • Laatst online: 30-06 17:45
Deze referentiele integriteit gaat dmv het programma wat er op draait
misschien zoals access het automatisch doet? Simpel, als in tabel x een element Blaatnr voorkomt, en in y ook, is er een relatie tussen x en y. Is dat progje open source? Even proggen
Kijk zoiets bedoel ik, zou jij misschien weten hoe ik dit met ms acces voorelkaar krijg???

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Je moet de Database laten doen voor wat hij gemaakt is, en dat is meer dan enkel de data opslaan. Het waarborgen van de referentiele integriteit moet gebeuren door de databank, niet door het programma.
Als er nog een programma is die diezelfde database gebruikt, dan moet je al die code om de ref. integriteit te bewaren gaan dupliceren.

Trouwens, als de relaties niet in de DB opgeslagen zijn, hoe wil jij dan dat een of andere tool die relaties automatisch kan weergeven, als er geen relaties zijn?

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

MBV schreef op 09 April 2003 @ 11:49:
misschien zoals access het automatisch doet? Simpel, als in tabel x een element Blaatnr voorkomt, en in y ook, is er een relatie tussen x en y. Is dat progje open source? Even proggen... :+
Gaat leuk worden als er 'naam' in meedere tabellen voorkomt ;) Sorry, maar dit is bullshit. En hoe wou je relaties vinden tussen tabellen als de sleutels niet dezelfde naam hebben? bv een Persoon tabel heeft een sofinr als prim sleutel, en vader_sofinr en moeder_sofinr als referende sleutels. Dit kan je op die manier dus niet pakken.

Ik neem aan dat visio dit ook doet aan de hand van de metadata die je op kan halen uit de db.

[ Voor 22% gewijzigd door Alarmnummer op 09-04-2003 12:07 ]


  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Probeer het eens met Sybase Powerdesigner. Deze kan een heel eind komen met het tekenen van je database

  • DeSjaak
  • Registratie: December 2000
  • Laatst online: 30-06 17:45
Leuk dat iedereen zijn mening geeft over een systeem waar ik mee bezig ben waarbij de referentieele integriteit niet wordt gewaardborgd wordt door het dmbs maaruh de vraag was is er een programmatje die de relaties kan zoeken in een database??
Trouwens, als de relaties niet in de DB opgeslagen zijn, hoe wil jij dan dat een of andere tool die relaties automatisch kan weergeven, als er geen relaties zijn?
Lees even wat ik hier boven heb geschreven...

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

en ik zeg dat het echt aan de hand van metadata uit die db gedaan wordt, en niet afleiden uit allerlei toevalligheden.

check

Afbeeldingslocatie: http://www.minq.se/products/dbvis/images/screens/graph.gif

[ Voor 36% gewijzigd door Alarmnummer op 09-04-2003 12:20 ]


Verwijderd

Eigenlijk zijn er twee mogelijke situaties (in jouw geval):

1) Referentiele integriteit wordt geregeld door de queries (deze noem je...)
2) Het "front-end" zorgt voor de referentiele integriteit.

In de eerste situatie kan je je relaties op basis van queries in kaart brengen
In de tweede situatie ben je al klaar met het in kaart brengen van de relaties:
DEZE ZIJN ER NIET !

Ben erg benieuwd !

edit:
Probeer het op basis van de specs van je programma...

[ Voor 10% gewijzigd door Verwijderd op 09-04-2003 12:31 ]


Verwijderd

40 tabellen is niet zo heel erg veel naar mijn mening. Je zegt dat je de integriteit van je data hebt bijgehouden op code-nivo. Op zich is daar niks mis mee maar je zal merken dat als je foreign key's op je tabellen wilt gaan leggen dat je database het gaat vertikken als er ook maar 1 record niet klopt.

Wat ik wil zeggen is: Ook al heb je een intelligente tool die foreignkeys voor jouw in elkaar knutseld, dan nog zal er handwerk aan te pas moeten komen om ervoor te zorgen dat die key daadwerkelijk op je tabellen terecht komen

Hmm, ff verkeerd gelezen sorry

Als het alleen om documenteren gaat zou ik zeker powerdesigner proberen. Dat is naar mijn mening de beste tool op dit gebied

[ Voor 14% gewijzigd door Verwijderd op 09-04-2003 12:50 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
DeSjaak schreef op 09 april 2003 @ 12:09:

Lees even wat ik hier boven heb geschreven...
De manier die jij beschrijft is gewoon kwatsch.
Aan de hand van de namen een relatie definieren is gewoon neit goed. Je bent nooit 100% zeker dat het goed is.

Een tool die de structuur van de DB grafisch weergeeft maakt gebruik van de meta-data om die voorstelling te maken, en gaat niet gaan kijken naar evt. velden die dezelfde naam hebben. Stel je hebt een tabel klant en een tabel leverancier, beide tabellen hebben een veld naam. Dit zou dan implicieren dat die tool een relatie ziet tussen die 2 tabellen.
Ook het uitpluizen van eventuele stored procedures op relaties is niet te doen.

Zorg gewoon dat je relaties in de db gedefinieerd zijn, en gebruik de DBMS voor wat hij bedoeld is.

[ Voor 7% gewijzigd door whoami op 09-04-2003 13:09 ]

https://fgheysels.github.io/


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15:12

alienfruit

the alien you never expected

Kijk eens naar xCase dit is ook een schiterend programma, en heeft ook een Reverse Engineer functie. www.xcase.com

  • DeSjaak
  • Registratie: December 2000
  • Laatst online: 30-06 17:45
Ok dan zal ik nog een keer ff het probleem proberen te beschrijven:

Ik wil een grafisch model van een database

- in de database zelf zijn de relaties zelf niet gedefinieerd (neem dit maar aan, dat je het er niet mee eens bent is even niet van belang)
- de relaties zijn wel af te leiden door de velden met elkaar te vergelijken, idd er zullen dan relaties op treden die niet kloppen maar die haal ik dan wel handmatig weg.

Dus wie weet zo'n programmatje??

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Er bestaat geen tool die relaties kan weergeven die er niet zijn. Die tools gaan op zoek naar metadata in de databank om die relaties , velden, tabellen ed weer te geven. Als die er niet zijn, kan dat niet weergegeven worden.
Neem dat maar van mij aan.

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Als je de stijfkop wilt uithangen dan moet je dat vooral doen. Het is gewoon ronduit dom wat je zegt. Je kan namelijk op die manier geen relaties ophalen. Je zult ten onrechte wel relaties en geen relaties krijgen. Waarom zou uberhaubt een geschoold iemand zo`n tool in elkaar zetten.

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Als je dan toch handmatig relaties weghaalt die niet bestaan en relaties toevoegt die over het hoofd gezien worden waarom zou je dan niet een tool zoeken die simpelweg je tabellen grafisch weergeeft en vervolgens handmatig alle relaties toevoegen in dat schema die wél bestaan ?

  • Wezzie
  • Registratie: Maart 2001
  • Laatst online: 21-08 07:00
Volgens mij kan geen enkel programma dat. Misschien dat Powerdesiger wel suggesties doet voor relaties maar ik verwacht dat hij het ook afleid uit de FK's e.d.

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Ik heb met powerdesigner een mysql database gereverse engineered (of hoe je het dan ook wil noemen :)) hij maakt alleen niet uit zichzelf relaties aan, die heb ik handmatig moeten toevoegen, wel nam hij netjes alle indexen over e.d.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Mja, dit lijkt me duidelijk gewoon uitgedraaid op een programma-request, en verdere tips worden links gelaten :) Dus dit topic gaat dicht, want dergelijke requests zijn hier simpelweg niet toegestaan :)

En neem maar van mij aan dat het interessanter is je even te verdiepen in het aanbrengen van relaties in je DBMS dan het zoeken naar een dergelijk programmaatje, dat komt alleen maar je professionaliteit ten goede :Y)

suc6 :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.