VL 2.1 SemistrukturierteDatenmodelle1 Flashcards
Warum heißt es semistrukturierte Datenmodelle‘?
Man kann Schema haben, muss aber nicht.
Welche 2 Bestandteile hat ein Datenmodell?
Zwei Bestandteile:
Beschreibung der zulässigen Zustände der Datenbasis. (Was ist ein Schema im jeweiligen Modell? Relationales Schema, Schema in NF2 usw.).
Beschreibung der zulässigen Zustandsübergänge, in Form der anwendbaren Operatoren.
Was ist der Unterschied Typsystem und Polymorphes Typsystem?
Zustände einer Datenbasis
- (1) Grundgedanke:
- Datentyp = Menge zulässiger Zustände.
- Typ: Menge von Objekten gleicher mathematischer Struktur. (Eigentlich dasselbe wie ‚Schema‘.)
- Ausprägung (Instanz): Element eines Typs. Zustände einer Datenbasis
- (2) Typsystem
- Hier eher: Menge von Typen und Festlegung der Zusammenhänge zwischen ihnen.
- (3) Polymorphes Typsystem
- Menge von Typen, i. d. R. beschrieben durch atomare Typen, Typkonstruktoren und polymorphe Konsistenzbedingungen. Festlegung von atomaren Typen, z. B. int = Menge der ganzen Zahlen, bool = {true, false}, date = Menge der Daten des Gregorianischen Kalenders. Zustände einer Datenbasis (
- 4)Typkonstruktoren, mit denen Typen zu neuen Typen kombiniert werden können, z. B.
- record(t1,t2,…,tn): Menge der Tupel mit Komponenten aus t1, t2, …, tn,
- set(t) = Menge der Mengen mit Elementen aus t,
- list(t) = Menge der Listen mit Elementen aus t. Welche Typkonstruktoren im relationalen Modell?
Was ist der Unterschied Typsystem und Polymorphes Typsystem? Kurzversion
Typsystem: Hier(Datenbankkontext) = Menge von Typen und Festlegung ihres Zusammenspiels,
also welche Operationen es gibt um Instanzen von einem Typ in einen anderen Typ zu überführen
Polymorphes Typsystem = (Das will man in komplexen Systemen haben
- Keine starre Menge von atomarer Typen, sondern Typkonstruktoren, die erlauben Typen aus bestehenden Typen abzuleiten
- Also:
- Menge von Typen,
- Typkonstruktoren und
- polymorphe Konsistenzbedingungen.
⇒Ein polymorphes Typsystem
hat zwingend polymorphe Operatoren.
Was hat es mit dem Typkonstruktor auf sich wie ist er im relationalen Modell integriert?
Angabe von Typkonstruktoren, mit denen Typen zu neuen Typen kombiniert werden können, z. B.
⇒ Im relationalen Fall in wesentlichen nur diese 2:
- record(t1,t2,…,tn)
- erlaubt uns einzelne Tupel zu konstruieren
- set(t)
- Mehrere Tupel gleicher Struktur zu einer Relation zusammenfassen [Relationen aus Menge von Tupeln generieren]
Nenne Beispiele für komplexe Typen, und Typen die durch Typkonstruktor erzeugt werden ?! (nicht sicher)
- DVD ist ein polymorpher Typ der aus atomaren Typen zusammengestellt
- Menge ist ein Typkonstruktor, mit dem Typen zu neuen Typen kombiniert werden können
- hier DVDs aus menge von DVD usw. // menge hier Typkonstruktor
⇒Wichtig hier: Struktureller aufbau gleich: 2 mal String, einmal int, trotzdem unterschiedliche Typen
⇒ Allein durch die unterschiedliche Bezeichnung erreichen wir, dass es sich um unterschiedliche Typen handelt
Was sind polymorphe Konsistenzbedingungen?
Einschränkende generische Bedingungen:
polymorphe Konsistenzbedingungen Beispiel
Schlüsseleigenschaft:
- nicht definiert für einen bestimmten Typ, sondern Prinzip, dass auf beliebige Typen anwendbar ist.
Wie werden neben der Struktur Zustandsübergänge erwirkt? Und welche 2 Arten gibt es hierbei?
(B) Welche weiteren monomorphen Operatoren fallen Ihnen ein?
Zustandsübergänge mittels Operatoren
Monomorphe Operatoren
⇒ können nur auf Elemente eines Typs angewendet werden
-
and, or, not
- nur boolsche Werte
- Differenz zw. Typ “Bankarbeitstage”
- Differenz nur für diesen Typ möglich
- Ganzzahl-Division
Polymorphe Operatoren
⇒können auf Elemente unterschiedlicher
(wenn auch nicht immer aller) Typen angewendet werden (
-
=, <,:
- anwendbar auf Zahlen, Daten, Zeichenketten,
- Mengenoperatoren: Schnittm. oder Vereinigun
- auf Typen, die duch set-Typkonstr. entstanden sind.
(B)
Ganzzahl-Division, Restberechnung,
Operator zur Berechnung der Bank-Tage zwischen zwei Daten
Welche unterschiedlichen Datenmodelle haben wir uns bisher angesehen und wie kann man diese vergleichen?
Relationales Datenmodell
NF²
Möglichkeiten des Vergleichs:
-
Strukturelle Mächtigkeit (bzgl. Typkons.)
- (1) Anzahl/Menge verfügbarer polymorpher Typen(konstruktoren).
-
Strukturelle Orthogonalität (bzgl. Typkons.)
- (2) Kombinierbarkeit polymorphe Typen.
Z. B. Mengenmodell: Bescheidene Orthogonalität. Nur atomare Werte zu Datensätzen und Datensätze zu Mengen kombinierbar. Aber z. B. Mengen nicht selbst wieder Untermengen von Mengen.
-
(3)Operationelle Verknüpfbarkeit //
- Bezogen auf Operatoren (!=Typkonstruktor)
- Hoch wenn viele Operatoren zur Überführung
- Bezogen auf Operatoren (!=Typkonstruktor)
Beispiel: Nest-/Unnest-Operatoren im NF2-Modell erhöhen operationelle Verknüpfbarkeit.
- (4)Operationelle Generizität
- Position der Operatoren im Spektrum zwischen Polymorphie und Monomorphie.
Zum Bild:
Vergleiche relationale Algebra und NF2 hinsichtlich ihrer Ausdrucksmächtigkeit!
Bsp rDM –> : record(), set()
VERGLEICH rDM - NF
Anzahl polymorpe Typkonstruktoren:
- (1)Anzahl gleich
- (2)Art der Anwendbarkeit ist unterschiedlich/flexibler
Also
- (1) Strukturelle Mächtigkeit –> gleich
- (2) Strukturelle Orthogonalität –> nicht gleich,
- NF² flexiebler, mächtiger. siehe unten
ABER: in NF²+bestehende Relationen als Attributwert verwenden>>Typen, die mit set()-Typkonstruktor generiert werden können wiederum Input für den record()-Typkonstruktor sein! –> Bild einfügen / Menge,Datensatz,atom.Wert Erinnerung: rec. [Tupel aus Menge von Typen generieren] set [Relationen aus Menge von Tupeln]
Wie kann die Datenmodelle miteinander vergleichen. Welche Beschreibungskriterien gibt es? (Kurzfassung)
- Strukturelle Mächtigkeit
- mehr Typkonstruktoren i.d.R. besser
- Strukturelle Orthogonalität
- mehr Anwendbarkeit der Typk. i.d.R. besser
- z.b Nf2 Attribut kann wieder Menge von Attributen sein
- mehr Anwendbarkeit der Typk. i.d.R. besser
- Operationelle Verknüpfbarkeit
- // mehr Operatoren i.d.R. besser
- Operationelle Generizität // Vergleichend
- Position der Operatoren im Spektrum zwischen Polymorphie und Monomorphie.
Welche beiden Unterscheidungen zu Markup gibt es? Und warum bekommen Nutzer Markup nicht zu Gesicht?
Markup allgemein:
- Zusätzliche Information, die in Dokumenttext eingefügt wird
Generalized Markup im speziellen:
- spezifiziert nicht das Aussehen des Dokuments, identifiziert logische Strukturbestandteile des Dokuments,
- ⇒XML // logischer Markup z.b. <author> ... </author>
⇒ logisch Markup auf Layout Markup kein Problem, anders herum schon!
⇒ Maschinen sind leistungsstark und verstecken den Markup vor dem Benutzer
Wie sieht es mit Informationsbedürnissen beim logischen vs. Layout Markup aus?
Informationsbedürfnisse sind weitaus präziser bei logischem Markup zu formuliern // bsp XML Suche nach Autor “Braun” logischer Markup = präzise (auf Grund Element ) layout Markup = nicht präzise –> kann Farbe sein
Wozu Trennung von logischer und Layout-Struktur? Warum will man mit Generalized Markup arbeiten?
Dokument mit logischem Markup enthält i. Allg. mehr Information, leichteres kooperatives Arbeiten bzw. bessere Dokumentation eigener Arbeitsschritte.
- (1)Trennung zwischen logischer und Layout-Struktur führt zu höherer Flexibilität.
- (2)Man kann unterschiedliche Darstellungen für unterschiedliche Benutzer und unterschiedliche Anforderungen erzeugen
-
Bsp2. Langenscheid Wörderbuch /
- 15 Ausführungen je nach Mächtigekeit - versch. viele Übersetzungen pro Wort nach wichtigkeit mit logischem Markup markiert –> auf einem “globalen” Dokument werden die 15 verschiedenen Versionen erstellt und eine Änderung wäre nur im Hauptdokument nötig
-
Bsp2. Langenscheid Wörderbuch /
weitere Beispiele
- Beispiel Digitalisierung von Kunstwördebuchband
- ⇒ kursive Schrift kann 24 Gründe haben
- ⇒ Grund durch logischen Markup darstellen
- Bsp. Anforderung: Speziell die Nachnamen der Künstler auf Richtigkeit überprüfen
- ⇒Mit logischem Markup können wir speziell für diesen Fall eine Version des Dokuments generieren, in denen genau die Künstlernachnamen in rot/fett/blinkend dargestellt werden
Was ist das Ziel von XML und was nicht?
Ziel von XML –
-
nicht Standardisierung des Generalized Markups.
- Man will unterschiedliche Dokumenttypen haben, mit jeweils unterschiedlichem Markup.
- // Bsp Bookstore vs. Rezept, aber Darstellung gleich in etc. Also: Darstellung des Markups vereinheitlichen
- Man will unterschiedliche Dokumenttypen haben, mit jeweils unterschiedlichem Markup.
Ziel von XML:
- Standardisierung (Syntaxebene),
- Standardisierung der Festlegung, welcher Markup wo im Dokument zulässig, (Schema –> DTD= Dokumettypdefiniton)
•z. B. Kochrezept muss Zutaten enthalten, Zutaten müssen vor der Zubereitung kommen. •Nicht obligatorisch, solche Festlegungen zu treffen. Beispiele: Inventarliste Buchhandlung, Kochrezept.