Datenbanken dokumentieren



  • Hallo zusammen,

    ich stehe gerade (als Nicht-DB Spezi) vor der Aufgabe, mehrere Datenbanken zu dokumentieren. Vorhanden sind beim Kunden MySQL, ORACLE, MS SQL, MariaDB und Couchbase (zumindest sind bisher nicht noch mehr aufgetaucht). Ich habe bei der Dokumentation versucht mich an demo-i-doit.com zu orientieren; ich bin mir aber nicht sicher ob ich die Daten dort richtig verstehe.

    Wie tragt ihr Datenbanksysteme ein? Insbesondere bin ich gerade über die Abgrenzung DBMS und Anwendungen gestossen. Im Demo-System sind unter "Anwendungen" keine Datenbank-Produkte enthalten; die stehen unter "DBMS". JDISC hat z.B. aber Couchbase unter "Anwendungen" einsortiert.

    Und müssten unter "Datenbankinstanzen" nicht die konkreten Datenbanken auftauchen?

    Bis denn

    Thomas Wallutis


  • administrators

    Hi,

    grundsätzlich sind die einzelnen Datenbankinstallationen jeweils ein DBMS (Datenbankmanagementsystem).
    Als Anwendung würde ich das DBMS nur dokumentieren, wenn im konkreten Fall anwendungsspezifische Informationen wie Version oder Lizenzzuweisung o.Ä. von Belang sind und nicht die Abbildung der Datenbanken, Tabellen etc.

    Aufbauend auf die DBMS gibt es die Instanzen. Eine Instanz ist je nach Datenbanksystem unterschiedlich zu verstehen, es gibt hier keine herstellerunabhängige Sichtweise. Bei Oracle kann man mehrere Instanzen pro DBMS anlegen (und damit im Normalfall mehrere Listener). Bei MySQL / MariaDB / Postgres beispielsweise geht das nicht. Da ist jeweils ein DBMS immer zwingend eine Instanz. Trotzdem würde ich in i-doit, um ein einheitliches Modell zu haben, für MySQL jeweils eine Dummy Instanz anlegen!

    Als letztes kommt auf den Listener aufbauend die Datenbankschemata. Das ist letztendlich das Objekt,w as landläufig als "die Datenbank" bezeichnet wird. Davon wiederum können X Objekte auf einer Instanz angelegt sein. Innerhalb eines Datenbankschema Objekts können die einzelnen Tabellen, Views, Datenbanklinks etc. dokumentiert werden.

    Über die Kategorie Datenbankzugriff wird dann optional dokumentiert, wer die einzelnen Schemata eigentlich benutzt.

    Ich hoffe, ich konnte mit der Erklärung helfen. Anbei noch ein Bild zur Verdeutlichung aus unserer Demodatenbank.

    waterfox_2016-11-08_08-57-19.png



  • Hi,

    das hilt mir weiter; danke dafür!

    Also wäre eine vollständige Dokumentation:

    • Anwendung mit Lizenz; also z.B. MS SQL 2012 mit Lizenz-Key
    • DBMS; also nur MSSQL (reicht ein DBMS für alle Versionen?)
    • Instanz
    • Schema (also eine oder mehrere DBs)
    • Datenbankzugriff (also z.B. die darauf aufsetzende Applikation)

    Korrekt?

    Bis denn

    Thomas


  • administrators

    Nicht ganz,

    ich würde das Anwendungsobjekt nur anlegen, wenn ausschließlich Informationen zur Software Version und Lizensierung relevant sind. Also entweder:

    • Nur ein Anwendungsobjekt MS SQL mit Version und Lizenz

    ODER

    • DBMS Objekt, Instanz Objekt, Schemata Objekte, Datenbankzugriffe

    Im zweiten Fall können ja noch beliebige Kategorien dem DBMS Objekt zugeordnet werden, wenn Informationen fehlen.



  • Hi,

    na ja, gerade wenn man mit Microsoft Software zu tun hat kann es sinnvoll sein, Beides einzutragen;-)

    Für mich war wichtig zu versehen, dass ich zwar mehrere MS SQL Versionen habe, aber nur einen Eintrag in DBMS brauche.

    Bis denn

    Thomas Wallutis



  • Hi,

    da wir gerade so schön plaudern: die i-doit Installation hier läuft ja nun schon etwas länger und hat auch den Sprung auf 1.7 mitgemacht (also die Umstellung auf MariaDB).

    Was muss ich nun unter "Anwendung" bzw. "DBMS" eintragen? MySQL oder MariaDB?

    Bis denn

    Thomas Wallutis

    Nachtrag: sofern ich den Wikipedia-Eintrag richtig verstehe, dann müsste ich an beiden Stellen MariaDB eintragen, obwohl MySQL (scheinbar) weiter installiert ist und die Prozesse auch noch mysql lauten (ps ax | grep mysql).


  • administrators

    MariaDB ist richtig. MariaDB ist ein Fork von MySQL und sieht nach außen hin quasi wie MySQL aus, um maximale Kompatibilität zu bieten.



  • Hi,

    noch mal eine Frage zum Bild: sehe ich es richtig, das alle drei i-doit Installationen auf eine DB zugreifen?

    Bis denn

    Thomas Wallutis


  • administrators

    Ja. Das ist natürlich nur ein Beispiel… in der Realität eher unwahrscheinlich.



  • Hi,

    ich habe jetzt mal auf dem Kundensystem nachgeschaut (show databases). Dabei werden mir angezeigt:

    idoit_data
    idoit_system
    information_schema
    mysql
    performance_schema

    Das wären dann meine 5 Instanzen?

    Also:

    DBMS                    Instanz                                    Schema
    ======                ================            ================
    MariaDB                MariaDB auf Server01              idoit_data
                                                                                  idoit_system
                                                                                  information_schema
                                                                                  mysql
                                                                                  performance_schema

    Bis denn

    Thomas Wallutis



  • Hi,

    Mir ist gerade aufgefallen, dass bei dem Objekttyp "Datenbankinstanz" in der Übersicht auch der Punkt "Name (Instanz/ORACLE Datenbank) auftaucht. Was trägt man denn da ein? Das sieht jetzt irgendwie redundant aus.

    Bis denn

    Thomas Wallutis



  • Hi,

    und noch was: unter "DBMS" kann ich unter "Installation" das System aussuchen, auf dem die DB läuft. Allerdings kann ich bei "Datenbankschema" nur einen Eintrag machen, was ja wiederum der Definition von Datenbankschema widersoricht (oder ich habe es imemr noch nicht verstanden).

    Bis denn

    Thomas Wallutis


  • administrators

    Also nochmal im Detail:

    DBMS anlegen

    • Ich lege ein Objekt vom Typ "DBMS" an, Name "MariaDB"
    • Ich gehe in das Objekt "MariaDB" (Typ "DBMS") in die Kategorie "DBMS"/"Installation" und füge dort eine Installation hinzu auf "Server XYZ"

    Instanz Anlegen

    • Ich lege ein Objekt vom Typ Datenbankinstanz an, Name "Default-Instanz"

    a) - Ich gehe in das Objekt "Default Instanz" (Typ Datenbankinstanz) in die Kategorie "Instanz/Oracle Datenbank" und weise in dem Feld "DBMS" das Objekt "Server XYZ auf mir läuft MariaDB" (Typ Beziehung) zu
    Alternativ
    b) - Ich gehe in das Objekt "Default Instanz" (Typ Datenbankinstanz) in die Kategorie "Instanz/Oracle Datenbank" und weise in dem Feld "DBMS" das Objekt "MariaDB" (Typ DBMS) zu

    Schemata anlegen

    • Ich lege ein Objekt vom Typ Datenbankschema an, Name "idoit_system"
    • Ich gehe in das Objekt "idoit_system" (Typ Datenbankschema) in die Kategorie "Datenbankschema" (auf den Ordner klicken) und weise in dem Feld "Datenbankinstanz" das Objekt "Default Instanz" (Typ Datenbankinstanz) zu
    • Ich lege ein Objekt vom Typ Datenbankschema an, Name "idoit_data"
    • Ich gehe in das Objekt "idoit_data" (Typ Datenbankschema) in die Kategorie "Datenbankschema" (auf den Ordner klicken) und weise in dem Feld "Datenbankinstanz" das Objekt "Default Instanz" (Typ Datenbankinstanz) zu


  • Hi,

    bei der zweiten Variante für "Instanz" sehe ich dann aber doch nicht mehr (direkt), auf welchem Server die Instanz läuft, oder?

    Und ich habe meinem Verständnis nach ein DBMS namens MariaDB, ein oder mehrere Installationen auf verschiedenen Servern und dann pro Instanz ein oder mehrere Datenschemata (also Datenbanken), wobei auf verschiedenen Instanzen es durchaus auch gleichlautende Datenbankschemata gibt. Korrekt?

    Bis denn

    Thomas Wallutis


  • administrators

    Korrekt.



  • Hi,

    ich muss noch mal nachhaken…

    Ich habe MySQl als Anwendung eingetragen. Weise ich nun einem Server diese Anwendung zu, dann kann ich zwar ein Datenbankschema zuordnen; aber eben nur eins.

    Gemäß der Anmerkung oben gilt aber Datenbankschema = Datenbank. Und davon kann es ja Mehrere geben.

    Das verwirrt jetzt etwas...

    Bis denn

    Thomas Wallutis


  • administrators

    Ja,

    weil in der der Anwendungszuweisung nur dokumentiert wird, auf welches Datenbankschema eine Anwendung zugreift. Für die Art der Dokumentation, welche Datenbankschemata auf einem DBMS laufen, muss mit der Datenbankinstanz und dem DBMS gearbeitet werden - nicht mit der Anwendungszuweisung.


 


Datenschutz / Privacy Policy