Graphorientierte und webbasierte Datenverwaltung Flashcards
Was sind Grenzen des relationalen Datenmanagements?
Häufige Änderungen/Erweiterungen zu erwarten
Schema zu Beginn nicht (vollständig) bekannt
Große oder dynamisch erweiterbare Attributmengen
(z.B. nur ein Produkt hat ein bestimmtes Attribut)
Was ist der Entity-Attribute-Value-Ansatz?
Die Grundidee hinter dem EAV Ansatz besteht darin, die im zu modellierenden Datenbestand vorkommenden Attribute nicht explizit im Datenbankschema zu kodieren, sondern stattdessen als Werte einer generischen Spalte namens Attribute zu listen.
Dazu wird eine Datenbanktabelle angelegt, die aus den drei Spalten Entity, Attribute und Value besteht, wobei alle drei Spalten den zusammengesetzten Primärschlüssel der Tabelle bilden.
Was enthält die Spalte Entity?
Die Spalte Entity enthält jeweils eine eindeutige Bezeichnung der Instanz eines Entitätstypen, also z B die ID einer Mitarbeitenden
Was enthält die Spalte Attribute?
Die Spalte Attribute enthält jeweils eine eindeutige Bezeichnung eines Attributs des Entitätstypen.
Dabei kann es sich um ein einfaches Attribut (z B birthdate) oder eine Referenz auf eine andere Entität (z B job_id) handeln
Was enthält die Spalte Value?
Die Spalte Value enthält schließlich den Wert des jeweiligen Attributs für die betreffende Entität,
also z B das Geburtsdatum oder die ID des von der Mitarbeitenden ausgeübten Berufs
Was erlaubt die Verwendung des EAV Schemas?
Im Prinzip alle zu verwaltenden Daten in einer einzigen
Tabelle zu speichern, deren Schema völlig unabhängig vom E/R Modell des Datenbestands ist.
Sämtliche Entitätstypen und Attribute können dynamisch definiert und eingefügt werden, ohne dass eine Festlegung des Schemas zu Beginn des Datenbankeinsatzes erforderlich ist.
Diese Vorgehensweise ist insbesondere dann geeignet, wenn sich das Datenbankschema häufig ändert oder es über eine so große Zahl an möglichen Attributen verfügt, dass eine herkömmliche Datenbanktabelle zu groß würde bzw zu viele Nullwerte enthalten würde
Warum sollte ein EAV Schema nur eingesetzt werden wenn die Voraussetzungen zutreffen?
Zugleich gehen durch die Verwendung des EAV Ansatzes jedoch zahlreiche Vorzüge relationaler Datenbanksysteme verloren, da durch das fehlende explizite Datenbankschema die Formulierung von
Integritätsbedingungen, insbesondere zur Wahrung referenzieller Integrität (= Korrektheit von Referenzen auf andere Entitäten) innerhalb der DB nicht mehr möglich ist.
Was sind Vorteile des EAV Ansatzes?
Erhöhte Flexibilität
Platzsparsame Speicherung von Datensätzen mit wenigen Attributwerten
Einfaches, selbsterklärendes Datenmodell (ist immer gleich)
Gute Unterstützung von Anfragen zu bestimmten Entitäten (Es müssen keine Verbünde von Tabellen gebildet werden)
Was sind Nachteile des EAV Ansatzes?
Erhöhter manueller Programmieraufwand (Keine referenzielle Integrität durch Fremdschlüssel)
Effizienzverlust bei Massenanfragen (Die Abfrage großer Datenmengen wird verlangsamt)
Komplexität attributbasierter Filter ( Filter auf der EAV Tabelle zu definieren ist nicht einfach)
Großer Overhead
(Fixkosten für Implementierung durch die Nachteile lohnen sich nicht für einfache Anwendungen.
Was bildet die Idee Daten in EAV Form zu modellieren?
Die Grundlage des Graphenmodells
Was ist ein gerichteter Graph?
Besteht aus einer Menge von Knoten und einer Menge von Knoten
Was stellt eine Kante dar?
Eine gerichtete Verbindung zwischen zwei Knoten des Graphen
Wie kann eine Instanz des E/R-Modells in das Graphenmodell überführt werden?
Jede Entität wird durch einen separaten Knoten mit eindeutiger Bezeichnung modelliert.
Jede Beziehung wird durch eine gerichtete Kante zwischen den betreffenden Knoten modelliert.
Die Attribute eines Entitätstypen stellen Eigenschaften der entsprechenden Knoten dar. Häufig werden Attribute ebenfalls als Kanten und Attributwerte als Knoten modelliert.
Was ist die Analogie Graphenmodell & EAV?
Jede Zeile der EAV Tabelle entspricht einer Verbindung zwischen zwei Knoten im Graphenmodell
Wie wird eine 1:1 Beziehung modelliert?
Der 1:1 Beziehungstyp wird durch eine gerichtete Kante zwischen den betroffenen Knoten modelliert, deren Richtung eindeutig zu definieren ist.
Dies geschieht analog zur Auswahl der Relation im Relationenmodell, die das Fremdschlüsselattribut enthält, welches die andere Relation referenziert
Wie wird eine 1:N Beziehung modelliert?
Der 1:N Beziehungstyp wird durch gerichtete Kanten zwischen den betroffenen Knoten modelliert, die den Knoten der 1 Seite als Startpunkt und den Knoten der N Seite als Endpunkte aufweisen
Wie wird eine N:M Beziehung modelliert?
Der M:N Beziehungstyp wird durch gerichtete Kanten zwischen den betroffenen Knoten modelliert, deren Richtung erneut eindeutig zu definieren ist
Wie wird das Graphenmodell implementiert?
Durch Graphdatenbanken
Welche Eigenschaften haben Graphdatenbanken?
Die Datenbasis der Graphdatenbank wird ebenso wie das Schema als Graph (entsprechend der graphentheoretischen Definition) abgebildet.
Dabei werden die Entitäten durch eindeutig
identifizierbare und ggf attribuierte Knoten und ihre Beziehungen zueinander durch entsprechende Kanten modelliert
Datenmanipulationen werden als Graph Transformationen ausgedrückt. Dabei handelt es sich
um Operationen, welche die Struktur des Graphen verändern, also Knoten oder Kanten hinzufügen oder löschen oder die Eigenschaften (also Namen oder Attribute) der Knoten oder Kanten verändern.
Was umfasst die Konsistenzprüfung bei Graphdatenbanken?
Im Falle der Graphdatenbanken umfasst die Konsistenzprüfung neben der Überprüfung der
referenziellen Integrität der Kanten unter anderem auch die Sicherstellung der folgenden strukturellen Integritätsbedingungen:
Eindeutigkeitsbedingung: Jeder Knoten und jede Kante kann im Graphen eindeutig identifiziert werden
Wertebereichsbedingung: Die Merkmale der Knoten sowie die Merkmale der Kanten unterliegen den spezifizierten Datentypen, d h sie stammen aus wohldefinierten Wertebereichen
Zusammenhang: Ein Graph wird zusammenhängend genannt, wenn es zu je zwei Knoten im Graphen einen Pfad gibt. Diese Eigenschaft wird für alle in der Graphdatenbank enthaltenen (Teil) Graphen garantiert
Was sind Vorteile der Graphdatenbanken?
Unterstützung impliziter Schemata
(Graphdatenbank kann ohne vorher bekanntes Schema erstellt/befüllt werden)
Indexfreie Nachbarschaft
(Nachbarn eines Knoten können ohne Indexstruktur schnell gefunden werden)
Triviale Vereinigung von Teilgraphen
Teilgraphen können durch Vereinigung von Knoten und Kantenmengen ohne Bildung von Joins vereinigt werden)
Indexe als Subgraphen
Indexe = Bäume = Graphen können also direkt innerhalb der Graphdatenbank gespeichert werden
Was sind Nachteile der Graphdatenbanken?
Nichtintuitives Datenmodell
Problematische Fragmentierung (Keine effizienten Algorithmen für die Zerteilung von Graphen zur dezentralen Speicherung)
Fehlende Transaktionssicherheit (Keine Realisierung des Transaktionskonzepts)
Keine einheitliche Zugriffsschnittstelle (Keine einheitliche Datenabfragesprache)
Was sind Probleme beim Einsatz zentralistischer DMBS in Unternehmen?
Begrenzte Hardwarekapazitäten des zentralen DB Servers
Begrenzter Durchsatz des Netzwerks an den der DB Server angeschlossen ist
Unterschiedliche Arten von Datensätzen/Schemata in einzelnen Unternehmensbereichen
Bereits existierende Datenmanagementsysteme in einzelnen Abteilungen des Unternehmens
Was sind Herausforderungen für das dezentrale Datenmanagement?
Welches Medium eignet sich für verteiltes Datenmanagement als Ersatz für zentrale DBMS?
Wie können Datensätze unternehmensweit (evtl sogar weltweit) eindeutig identifiziert werden?
Wie kann auch ohne zentrales DBMS eine einheitliche Zugriffsschnittstelle geschaffen werden,
die von verschiedenen Anwendungssystemen unterstützt wird?
Wie können Anwendungssysteme über eine solche Schnittstelle Daten austauschen und manipulieren?