Datu modelēšanas rīki

Pirms kāda laika rakstīju dažus ievadvārdus par datu modelēšanu – kas tā tāda, kāpēc to vajag, kā norisinās. Turpat arī minēju, ka to principā var darīt ar zīmuli un papīra lapu. Taču protams, ka reālajā dzīvē šim mērķim ir izstrādāti daudz un dažādi rīki. Šai rakstā pastāstīšu par tiem rīkiem, ar kuriem nācies kaut mazliet sastapties. Jau iepriekš brīdinu, ka šai rakstā stingri ņemot tiks sajaukti gan konceptuālo datu modeļu (nav atkarīgas no konkrētas DBVS), gan fizisko datu modeļu (paredzēti konkrētai DBVS) modelēšanas rīki. Stāsta varoņi eeee, tas ir rīki🙂, būs sakārtoti tīri vēsturiski, bez nekādas citas slēptas domas.

Šoreiz arī īpašs lūgums atbildēt uz aptaujas jautājumu raksta beigās un lūdzu pierakstīt jūsu atsauksmes un pieredzi (gan pozitīvo, gan negatīvo) ar un par datu modelēšanas rīkiem.

Šajā reizē par trīs no tiem – Oracle Designer, Grade modeler un Visio. Nākošajā būs vēl par tādiem kā MySQL Workbench, SQL Developer Data Modeler, Rational Rose un Enterprise Architect.

Oracle Designer

Ehhhhh, ja godīgi es vēl joprojām skumstu pēc šī rīka. Iespējams, tas ir vēsturiski apmēram kā pirmā mīlestība, iespējams pat diezgan objektīvi, taču tāds nu ir fakts. Realitāte gan rāda, ka Oracle Designer jau sen ir pārdzīvojis savus ziedu laikus un ir iegājis dziļā norieta fāzē. Šis rīks jau no paša sākuma bija diezgan monstrozs un prasīja zināmas iemaņas. Taču domāju, ka Oracle Designer izstrādātāji iešāva sev kājā tajā brīdī, kad Designerim tika pievienota versionēšanas iespēja. Lai gan to, protams, varēja arī neizmantot, tomēr tas šo rīku padarīja ne tikai relatīvi sarežģītu, bet arī piebāztu ar kļūdām un intuitīvi mazsaprotamām darbībām.
Dažas šī rīka iezīmes:

  • Neesmu redzējis nevienu citu (tas gan nenozīmē, ka tāda nav) rīku, kur ER modeli (konceptuālo DB modeli) varētu tik eleganti transformēt Data model (fiziskajā datu modelī). Pie tam ar visādām konfigurēšanas iespējām – lietot vai nelietot surogātatslēgas, ja lietot, tad kā veidot nosaukumus, kā veidot nosaukumus ārējām atslēgām, kādus kolonu tipus tiem izmantot utt. Tas ir viens no lielākajiem plusiem – iespēja no konceptuālā datu modeļa pāriet uz reālu DB modeli, kam ir iespējams noģēnerēt DDL teikumus, pie tam ne tikai Oracles bāzei, bet arī SQ Serverim, DB2 un vēl kaut kas laikam bija.
  • Visa informācija glabājas Oracle datubāzē. Tas reizē ir gan tā spēks, gan vājums. Spēks – tai ziņā, ka ir iespējams veidot visādas atskaites, programmatoriski ērti pievienot/koriģēt DAUUUUDZUS elementus, izsekot izmaiņas, ja pašam rodas tādas vēlmes. Vājums tādēļ – ja diemžēl Oracle datubāze kā zināms, nav tomēr pati lētākā, ja godīgi neatceros vai Oracle Designer strādāja arī uz Express vai Standard Edition.
  • Grafiskais rīks gan ER modelim, gan datu modelim bija ļoti elastīgs, kastītes varēja taisīt kādā lielumā vēlas, relācijas eleganti locīt un pārvietot un diagrammas izveidot patiešām skaistas.
  • Elementus arī no vizuālā rīka varēja rediģēt gan pa vienam, gan masveidā.
  • Kā mīnuss jāmin relatīvā sarežģītība un to, ka šis rīks, protams, ne tuvu neiekļāva tikai ER un datu modelēšanu, bet arī daudzas citas programmatūras izstrādes atbalsta soļus. Attiecīgi kompāniju daidzums, kam patiešām šis rīks vajadzēja un kas to patiešām izmantoja bija relatīvi mazs.

Oracle arī pats galu galā lielā mērā atteicās vispār no programmatūras atbalsta rīku tālākas izstrādes un Oracle Designer jo īpaši. Iemesls acīmredzot ļoti triviāls – ar tādiem rīkiem miljardus nenopelnīsi😉
Kā piemēru, kāda izskatās ER diagramma (lietojot rīku ER diagrammer), varat apskatīties šo SQL savienojumu veidu metamodeli, kura sīkāks skaidrojums ir pie SQL savienojumu veidiem.

Sql join types

Oracle Designer ER modeļa piemērs

Piemēru datu modelim (lietojot rīku Design Editor), varat redzēt šajā bildē.

Design Editor example

Oracle Designer datu modeļa piemērs

Grade modeler

Ar šo rīku nācās sastapties Latvijas universitātē. Tajā, protams, varēja izdarīt ko vairāk, bet šeit runāšu tikai par klašu modeli. Galvenās lietas:

  • Nebalstījās uz datu bāzi.
  • Nebija principā tāda jēdziena kā fiziskais DB modelis ar jebkādu ģenerēšanas iespēju, līdz ar to, protams, pēc klašu modeļa izveides to var sākt pārrakstīt no jauna ar skriptiem vai kādā citā rīkā.
  • Vizuālo izskatu ar nelielu treniņu varēja izveidot visnotaļ ciešamu.

Šodien intereses pēc palasījos, ko tad Grade piedāvā, un izrādās, ka tajā ir arī ER modelēšanas rīks. Neesmu gan drošs, ka tas bija tajā versijā, ko mums universitātē deva, bet kas to vairs atceras🙂 Visā visumā rīks bija itin foršs un ar diezgan lielu funkcionalitāti vismaz tiem laikiem, tikai iespējams ar švaku mārketingu un neadekvātu licences cenu rīka popularitātei un atpazīstamībai (5.5 K $ saskaņā ar šo cenu listi, salīdzināšanai Rational Rose Enterprise maksā 4.87 K $).

Nākošajā bildē Grade klašu modeļa piemērs par Oracle servera meta modeli. Tiesa gan no 2001. gada, bet toties to visu kopā Bārzdiņš novērtēja uz 10🙂

Oracle Server logical meta model

Grade klašu modeļa piemērs

Visio

Visio pirmais un galvenais pluss ir tas, ka tas ir vienkāršs un ērti lietojams. Visio ir arī ER diagrammu zīmēšanas iespējas. Šis rīks gan neatdala konceptuālo diagrammu no fiziskās, tas viss ir sabāzts vienā maisā. Tā kā šais diagrammās figurē tādi jēdzieni kā primārās atslēgas, ārējās atslēgas utt., tad acīmredzot tās krietni ir tuvāk fiziskajam datu modelim. Dažas pamanāmākās lietas likās šādas:

  • Šis rīks nav paredzēts, lai ar to darbotos vairāki lietotāji vienlaicīgi. Līdz ar to šo rīku var diezgan droši izslēgt no kāda lielāka projekta redzesloka.
  • Vizuālajā rīkā man tā arī nav izdevies saprast kā tabulām var mainīt izmērus. Līdz ar to tiklīdz tabulu skaits diagrammā kļūst lielāks ka ~10 (ar vidēju relāciju skaitu) diagrammas kļūst diezgan nelasāmas.
  • Līdzīgi kā citi rīki, kuros nav iespējams sasaistīt konceptuālo modeli ar fizisko, kā pilnvērtīgu analīzes rīku to izmantot diez ko nav iespējams.
  • Tas spēj daudzmaz sakarīgi ģenerēt tabulu izveides SQL teikumus Oracle un SQL Server.
MySQL data dictionary data model

MySQL datu vārdnīcas datu modelis iekš Visio

Kādus datu modelēšanas rīkus esat izmantojis?

Lūdzu atbildēt uz šo jautājumu! Uzskatīsim, ka izmantošana nozīmē vismaz 3 klašu/entītiju/tabulu izveidi ar atribūtiem/kolonām un relācijām🙂 Ja uzskatat, ka ar to ir par maz, tad atzīmējiet tikai tādus, kas Jums liekas patiesi izmantoti. Lūdzu arī komentārus par Jūsu pieredzi (pozitīvu vai negatīvu – abas der) darbā ar datu modelēšanas rīkiem!

Turpmākā lasāmviela

6 Responses to Datu modelēšanas rīki

  1. aivars says:

    Davaj “Dia” v studiju. Kāpēc neuzrakstīt par brīvās programmatūras modeleri?🙂

  2. Gints Plivna says:

    Ir tieši viens iemesls: “Šai rakstā pastāstīšu par tiem rīkiem, ar kuriem nācies kaut mazliet sastapties”
    Par tādu DIA uzzināju tieši šodien no šī komentāra un ar googles palīdzību atklāju, kas tas par zvēru😉
    Bet esi laipni aicināts pierakstīt, kas Tev šai rīkā patīk salīdzinājumā ar citiem!

  3. imo says:

    ir arī tāds rīks kā DBDesigner 4
    http://fabforce.net/dbdesigner4/
    mysql modelēšanai man liekas ka pietiek.
    Bezmaksas + prot ģenerēt sql.
    Domāju ir vērts apskatīt šo.

  4. Tvinky says:

    imo >> dbdesigner4 tagad ir tā saucamais workbench🙂 Tad, kad mums spieda taisīt šīs diagrammas iekš Visio, un MSSQL bāzes mēs ar kursabiedru sākām meklēt citu variantu priekš iemīļotā MySQL un uzgājām tieši dbdesigner4. Tad vēl tikai MySQL sāka betu laist priekš Workbench, bet man patika ar šo softu strādāt.

  5. Raimonds says:

    Priekš Oracle ļoti labs datu modelēšanas rīks ir iekļauts iekš JDeveloper. Mazliet noslēpts, bet atrast var. Tajā var uzzīmēt ER modeli un noģenerēt datu bāzes objektu izveides skriptu, kā arī izveidot datu bāzes objektus norādītā datu bāzē. Ir iespējama arī reversā inženierija – no datu bāzes tabulu struktūras var iegūt ER modeli.

    Atšķirībā no rakstā minētajiem programmproduktiem, JDeveloper ir bezmaksas izstrādes rīks.

  6. MārisN says:

    Nu tīrai zīmēšanai bez Dia der arī Umbrello, kas bez UML arī daudzas citas lietas māk. Mazliet lietojamāks ir Mogwai ERDesigner, taču, ja rezultāts darbosies uz MySQL, tad tā Workbench ir vislabākais (var pārslēgt attēlošanas veidu utml.), lai gan pagaidām viņam vēl “fīčas” dominē pār stabilitāti – studenti praktisko darbu laikā nolika uz ausīm vairākkārt.

Komentēt

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Mainīt )

Twitter picture

You are commenting using your Twitter account. Log Out / Mainīt )

Facebook photo

You are commenting using your Facebook account. Log Out / Mainīt )

Google+ photo

You are commenting using your Google+ account. Log Out / Mainīt )

Connecting to %s

%d bloggers like this: