Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Schlüsselqualifika6on 10
Contentmanagement
Dipl.-‐Inf. Benjamin Bock Topic Maps Lab, Universität Leipzig
[email protected]‐leipzig.de
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 2
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Datenbanken
... und warum wir Dank Ruby on Rails
nicht viel darüber wissen müssen
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Ziel des Moduls
• Grundlagen von Datenbanksystemen vermiWeln • Verwenden von ER-‐Diagrammen zur Defini6on von DB-‐
Schemas • Grundkenntnisse zu rela6onalen Datenbanken • Grundkenntnisse der Anfragesprache SQL • Möglichkeiten des Zugriffs auf Datenbanken aus
(Web-‐) Anwendungen • Grundkenntnisse Objekt-‐rela6onales Mapping
3
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Mo6va6on
4
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Datenbanken
http request
Server
Controller
http response View
Mo-del
Client Ruby on Rails
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 5
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Grundlagen von Datenbanksystemen
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 6
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Eigenschaden von Datenbanksystemen
• Generell: effiziente und flexible Verwaltung großer Mengen persistenter Daten
– Zentrale Kontrolle über die opera0onalen Daten – Hoher Grad an Datenunabhängigkeit – Hohe Leistung und Skalierbarkeit – Mäch0ge Datenmodelle und Anfragesprachen /
leichte Handhabbarkeit
– Transak0onskonzept (ACID), Datenkontrolle – Ständige BetriebsbereitschaJ (hohe Verfügbarkeit und
Fehlertoleranz) • 24-‐Stundenbetrieb • keine Offline-‐Zeiten für DB-‐Reorganisa6on u. ä.
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 7
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Eigenschaden von Datenbanksystemen
• Zentrale Kontrolle über die opera6onalen Daten – Alle (opera6onalen) Daten können/müssen gemeinsam benutzt
werden • keine verstreuten privaten Dateien
– Eliminierung der Redundanz • Vermeidung von Inkonsistenzen (keine unterschiedlichen Änderungsstände)
– Datenbankadministrator (DBA) hat zentrale Verantwortung für Daten
– einfache Entwicklung neuer Anwendungen auf der exis6erenden DB; Erweiterung/Anpassung der DB (Änderung des Informa6onsbedarfs)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 8
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Eigenschaden von Datenbanksystemen
• Hoher Grad an Datenunabhängigkeit (DU)
– DU = Maß für die Isola6on zwischen Anwendungsprogrammen und Daten
– Konven6onelle Anwendungsprogramme (AP) mit Dateizugriff • Nutzung von Kenntnissen der Datenorganisa6on und Zugriffstechnik • kann gutes Leistungsverhalten ermöglichen, aber ...
– Datenabhängige Anwendungen sind äußerst unerwünscht • verschiedene Anwendungen brauchen verschiedene Sichten auf dieselben Daten • Datenänderung erfordert Änderungen in Anwendungsprogrammen
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 9
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Eigenschaden von Datenbanksystemen
• Hohe Leistung und Skalierbarkeit
– hoher Durchsatz / kurze Antwortzeiten für DB-‐Opera6onen auf großen Datenmengen
– Leistungsverhalten • DBS-‐Problem, nicht Anwendungsproblem
• Zugriffsop6mierung für DB-‐Anfragen durch das DBS (Query-‐Op6mierung)
• Festlegung von Zugriffspfaden (Indexstrukturen), Datenalloka6on etc. durch den DBA (idealerweise durch das DBS)
– Hohe Skalierbarkeit • Anpassung an gewachsene Leistungsanforderungen (wachsende Datenmengen und
Anzahl der Benutzer)
• Nutzung zusätzlicher/schnellerer Hardware-‐Ressourcen
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 10
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Eigenschaden von Datenbanksystemen
• Mäch6ge Datenmodelle – Datenmodell/DBS-‐SchniWstelle
• Defini6on von Datenstrukturen (Data Defini6on Language, DDL), DB-‐Schemas • Defini6on von Integritätsbedingungen und Zugriffskontrollbedingungen (Datenschutz) • Opera6onen zum Aufsuchen und Verändern von Daten (Data Manipula6on Language DML)
– Datenstrukturierung • Beschreibung der logischen Aspekte der Daten, neutral gegenüber Anwendungen • Anwendung erhält logische auf ihren Bedarf ausgerichtete Sicht auf die Daten • Beschreibung der Objekte durch Satztyp, AWribute und AWributwerte (Si/Aj/AWk)
Bsp.: Satztyp: Ar6kel AWribut 1: Autor AWributwert: T. Böhme AWribut 2: Titel AWributwert: WCMS AWribut 3: Inhalt AWributwert: "WCMS haben sich ..."
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 11
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Eigenschaden von Datenbanksystemen
• Mäch6ge Anfragesprachen – formale Sprache – navigierend oder deskrip6v, abhängig von Datenmodell – satz-‐ oder mengenorien6ert – Strukturierung ermöglicht Einschränkung des Suchraumes für Anfragen
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 12
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Eigenschaden von Datenbanksystemen
• Transak6onskonzept – Kontrollstruktur: Transak6onen mit den vier ACID-‐Eigenschaden – Eine Transak6on besteht aus einer Folge von DB-‐Opera6onen, für die
das DBS folgende Eigenschaden garan6ert • Atomicity: Alles-‐oder-‐Nichts • Consistency: Gewährleistung der Integritätsbedingungen • Isolated Execu6on: „logischer Einbenutzerbetrieb“ • Durabiliy: Persistenz aller Änderungen
– Bsp.: Änderung von Inhalt und Änderungsdatum eines Ar6kels
Artikel 1: ÄD1, Txt1
BOT Update Txt
Fehler/ Abbruch Rollback
Update ÄD Commit
Artikel 1: ÄD1, Txt1
Artikel 1: ÄD2, Txt2
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 13
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Auyau eines Datenbanksystems
Datensystem
Speichersystem
Zugriffssystem
Transaktionsverwaltung:
Logging, Recovery
Synchronisation, Integritätssicherung
Zugriffskontrolle
Metadatenverwaltung
Satzzugriffe
Seitenzugriffe
Log, Archiv- kopien... DB DB Metadaten
DBMS
deskriptive Anfragen (Zugriff auf Satzmengen)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 14
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
3-‐Ebenen-‐Architektur nach ANSI-‐SPARC
Konzeptionelles Schema logische Gesamtsicht auf die
Struktur der Datenbank Beschreibungssprache: DDL abtrahiert von internem Schema
(physische DU)
Internes Schema: legt physische Struktur der
DB fest (physisches Satzformat, Zugriffspfade,...)
Beschreibungssprache: SSL (Storage Strukture Language)
Externes Schema: definiert spezielle Sicht auf DB-
Struktur (für Anwendungs-programm bzw. Endbenutzer)
abtrahiert von konzeptionellem Schema (ermöglicht partiell logische Datenunabhängigkeit
Artikellist
ArtikelID Titel
ArtikelAutor ArtID Autor
ArtikelHeadlines ArtNum Headline
Artikel ArtikelID : INTEGER Titel : VARCHAR(255) AutorName : CHAR(50) Inhalt : TEXT(1M)
STORED_ARTICLES LENGTH= INTERNAL_ID TYPE=BYTE(4), OFFSET=0 ANUM TYPE=BYTE(4), OFFSET=4, INDEX=ARTID AUTOR TYPE=BYTE(50) ,OFFSET=8,
Externe Schemata
Konzeptionelles Schema
Internes Schema
Artikellist ArtikelID Titel
ArtikelAutor ArtID Autor
ArtikelHeadlines ArtNum Headline
Artikel ArtikelID : INTEGER Titel : VARCHAR(255) AutorName : CHAR(50) Inhalt : TEXT(1M)
STORED_ARTICLES LENGTH= INTERNAL_ID TYPE=BYTE(4), OFFSET=0 ANUM TYPE=BYTE(4), OFFSET=4, INDEX=ARTID AUTOR TYPE=BYTE(50) ,OFFSET=8,
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 15
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Informa6onsmodellierung (ER-‐Modell)
Viel Theorie...
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 16
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Informa6ons-‐ und Datenmodellierung (DB-‐Entwurf)
• Ziele – modellha)e Abbildung eines anwendungsorien6erten AusschniWs der
realen Welt (Miniwelt) – Entwurf der logischen und physischen DB-‐Struktur (DB-‐Entwurf) – Nachbildung von Vorgängen durch Transak6onen
• Nebenbedingungen – Vollständigkeit – Korrektheit – Minimalität – Lesbarkeit – Modifizierbarkeit
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 17
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
En6ty-‐Rela6onship-‐Modell
• entwickelt von P. P. Chen (1976) • Konzepte:
– En6ty-‐Mengen – Beziehungsmengen (Rela6onship-‐Mengen) – AWribute – Wertebereiche – Primärschlüssel
• unterstützt folgende Abstrak6onskonzepte – Klassifika/on (Zusammenfassung gleichar6ger Objekte) – Aggrega/on (Zusammenfassung poten6ell unterschiedlicher
Teilobjekte / Komponenten zu neuem Objekt) • graphische Darstellung durch Diagramme • zahlreiche Erweiterungsvorschläge • weite Verbreitung über konzep6onellen DB-‐Entwurf
hinaus: Systemanalyse, Unternehmensmodellierung
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 18
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – En6ty-‐Mengen
• En/ty (En6tät, Gegenstand): repräsen6ert abtraktes oder physisches Objekt der realen Welt
• Gleichar6ge En66es (d. h. En66es mit gemeinsamen Eigenschaden) werden zu En6ty-‐Mengen (Gegenstandstypen, ObjekWypen) zusammengefasst (Klassifika6on) En66es sind Elemente einer (homogenen) Menge: e ∈ E
z. B. Personen, Mitarbeiter, Projekte ... Publika6onen, Ar6kel, Autoren ...
• DB enthält endlich viele En6ty-‐Mengen: E1, E2, ..., En ; nicht notwendigerweise disjunkt z. B. E1 ... Personen, E2 ... Mitarbeiter: E2 ⊆ E1
• Symbol für En6ty-‐Menge E: E
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 19
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – AWribute
• AWribute – Eigenschaden von En6ty-‐Mengen werden durch AWribute bes6mmt – Eigenschaden einzelner En66es sind durch AWributwerte festgelegt – Nullwert: spezieller AWributwert, dessen Wert unbekannt oder nicht möglich ist (z. B.
private Tel.Nr.) • Jedem AWribut ist ein Wertebereich (Domain) zugeordnet, der festlegt,
welche AWributwerte zulässig sind (Integritätsbedingung) • AWributsymbol in ER-‐Diagrammen:
Attr.Name
Tel.-Nummern Adresse
Ort
PLZ
Straße
zusammengesetztes Attribut mehrwertiges Attribut
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 20
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – Primärschlüssel
• Schlüsselkandidat oder kurz Schlüssel (key) – einwer6ges AWribut oder AWributkombina6on, die jedes En6ty einer
En6ty-‐Menge eindeu6g iden6fiziert (ggf. künstlich erzwungen) • Eigenschaden eines Schlüssels
– keine Nullwerte – minimal (Teilmenge der AWribute eines Schlüssels nicht selbst Schlüssel)
• En6ty-‐Menge kann mehr als einen Schlüsselkandidaten haben – Beispiel: Autor (AutorID, Vorname, Name, E-Mail)
• Primärschlüssel ist ein beliebig ausgewählter Schlüsselkandidat
• Darstellung PrimärschlüsselaWribute im ER-‐Diagramm:
AutorID
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 21
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – Rela6onships (Beziehungen)
• Rela6onship-‐Menge: Zusammenfassung von gleichar6gen Beziehungen (Rela6onships) zwischen En66es, die jeweils gleichen En6ty-‐Mengen angehören
• Beispiel: Beziehungen „Verwendung“ zwischen „Asset“ und „Publika6on“
• Symbol:
v2
A3
A2
A1
Assets
Verwendung
P3
P1
Publikationen
E1 E2 R
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 22
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – Rela6onships
• Rela6onship-‐Mengen können auch AWribute besitzen
• keine Disjunktheit der beteiligten En6ty-‐Mengen gefordert (rekursive Beziehungen)
Redakteure Assets bearbeitet
von bis
Personen Vorgesetzter
Mitarbeiter
Chef
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 23
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – Rela6onships
• mehrstellige Rela6onship-‐Mengen möglich
Redakteure Assets bearbeitet
Software
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 24
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – Kardinalität von Rela6onships
• Festlegung wich6ger struktureller Integritätsbedingungen
• Unterschiedliche Abbildungstypen für binäre Beziehung zwischen En6ty-‐Mengen Ei und Ej – 1:1 eineindeu6ge Funk6on (injek6ve Abbildung) – n:1 mathema6sche Funk6on (funk6onale Abbildung) – n:m mathema6sche Rela6on (komplexe Abbildung)
• Abbildungstypen implizieren nicht, dass für jedes e ∈ Ei auch tatsächlich ein e’ ∈ Ej exis6ert!
• Beispiel für 1:1 Abbildungstyp Personen Team leitet
1 1
leitet wird geleitet
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 25
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – Kardinalität von Rela6onships
• Beispiel für n:1 Abbildungstyp
– in einem Team arbeiten n Personen – eine Person arbeitet in genau einem Team
Personen Team arbeitet n 1
Redakteure Publikation arbeitet n m
Beispiel für n:m Abbildungstyp
an einer Publikation arbeiten n Redakteure ein Redakteur arbeitet an m Publikationen
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
ER-‐Modellierung – Überblick über Diagrammsymbole
26
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
A
E
A A
R E
E1 E2 R n 1
A1 A2 A3
A
Entity-Menge Relationship-Menge schwache Entity-Menge
Attribut Schlüsselattribut mehrwertiges Attribut zusammengesetztes Attribut
Kardinalitätsangaben
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 27
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – Generalisierung / Spezialisierung
• Is-‐A-‐Beziehung zwischen En6ty-‐Mengen
– E1 is-‐a E2 bedeutet, dass jedes En6ty e aus E1 auch ein En6ty aus E2 ist, jedoch mit zusätzlichen strukturellen Eigenschaden
– Subs/tu/onsprinzip: alle Instanzen einer Subklasse sind auch Instanzen der Superklasse • Generalisierung: BoWom-‐Up-‐Vorgehensweise • Spezialisierung: Top-‐Down-‐Vorgehensweise • Vererbung von Eigenschaden (AWribute, Methoden, ...) der Superklasse
an alle Subklassen – Wiederverwendbarkeit, Erweiterbarkeit – keine Wiederholung von Beschreibungsinforma6on, Fehlervermeidung
Superklasse
Subklasse2 Subklasse1 Artikel Foto
Asset
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 28
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – Aggrega6on
• Objekte werden als Zusammensetzung von anderen Objekten (En6ty-‐Mengen) angesehen
• Zwischen Komponentenobjekten besteht Part-‐of-‐Beziehung (Teil-‐von-‐Beziehung) – Elemente einer Subkomponente sind auch Elemente aller
Superkomponenten dieser Subkomponente – Referenzseman0k ermöglicht, dass ein Objekt gleichzei6g
Subkomponente von mehreren Superkomponenten sein – Werteseman6k (Komposi0on): Objekt gehört genau zu einem
Aggregat-‐Objekt; Existenzabhängigkeit!
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 29
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
ER-‐Modellierung – Aggrega6on
• Objekte werden als Zusammensetzung von anderen Objekten (En6ty-‐Mengen) angesehen
• Zwischen Komponentenobjekten besteht Part-‐of-‐Beziehung (Teil-‐von-‐Beziehung) – Elemente einer Subkomponente sind auch Elemente aller
Superkomponenten dieser Subkomponente – Referenzseman0k ermöglicht, dass ein Objekt gleichzei6g
Subkomponente von mehreren Superkomponenten sein – Werteseman6k (Komposi0on): Objekt gehört genau zu einem
Aggregat-‐Objekt; Existenzabhängigkeit! Aggregatklasse
Komp.klasse2 Komp.klasse1
Komposition
Aggregatklasse
Komp.klasse2 Komp.klasse1
Referenzsemantik
Publikation
Assets
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 30
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Rela6onales Modell
(noch mehr Theorie aber danach wird’s spannend)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 31
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Rela6onales Modell -‐ Datenbankmodelle
• Datenbankmodell: beschreibt Art und Weise, wie Daten prinzipiell gespeichert und manipuliert werden können – beinhaltet Datenstrukturen, Operatoren, Integritätsregeln
• Beispiele: – Hierarchisches Datenbankmodell
– Netzwerkmodell
– Rela6onales Modell
– Objektorien6ertes Datenbankmodell • Kapselung der Daten in Objekten • Zugriff über ID
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 32
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Rela6onales Modell – Grundlagen
• Vorschlag von E.F. Codd (1970) • Grundlage rela6onaler DBS (DB2, SQLServer, MySQL, ...) • Datenstruktur: Rela6on (Tabelle)
– einzige Datenstruktur (neben atomaren Werten) – alle Informa6onen ausschließlich durch Werte
dargestellt
• Operatoren auf (mehreren) Rela6onen – Vereinigung, Differenz – Kartesisches Produkt – Projek6on – Selek6on – zusätzlich: Änderungsopera6onen (Einfügen, Löschen, Ändern)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 33
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Rela6onales Modell – Grundlagen
• Grundregeln
– Jede Zeile (Tupel) ist eindeu6g und beschreibt ein Objekt (En6ty) der Miniwelt • Eindeu6gkeit durch Primärschlüssel • Rela6on ist eine Menge
– Die Ordnung der Zeilen ist ohne Bedeutung; durch ihre Reihenfolge wird keine für den Benutzer relevante Informa6on ausgedrückt
– Die Ordnung der Spalten ist ohne Bedeutung, da sie einen eindeu6gen Namen (AWributnamen) tragen
– Jeder Datenwert innerhalb einer Rela6on ist ein atomares Datenelement (nur einfache AWribute)
– Alle für den Benutzer bedeutungsvollen Informa6onen sind ausschließlich durch Datenwerte ausgedrückt
Titel
Kurzinformation
Das MML
Studienprogramm
Impressum
ArtID
1
2
3
4
Inhalt
Das ...
In der...
Eine ...
Die ...
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 34
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Rela6onales Modell – Grundlagen (Fremdschlüssel)
• Darstellung „rela6onenübergreifender“ Informa6on durch Fremdschlüssel (foreign key) – AWribut, das in Bezug auf den Primärschlüssel einer anderen (oder
derselben) Rela6on definiert ist (gleicher Defini6onsbereich) – Beziehungen werden durch Fremdschlüssel und zugehörigen
Primärschlüssel dargestellt
TNR TNAME ...
RE Redaktion ...
TE Technische Dienste ...
MANR NAME TNR W-ORT
123 766 Coy RE Halle
654 711 Abel TE Leipzig
196 481 Maier TE Delitzsch
226 302 Schulz RE Leipzig
Team Mitarbeiter
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 35
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Rela6onales Modell – Invarianten
• inhärente Integritätsbedingungen des Rela6onenmodells (Modellbedingungen)
– Primärschlüsselbedingung (En0ty-‐Integrität) • Eindeu6gkeit des Primärschlüssels • keine Nullwerte!
– Fremdschlüsselbedingung (referen0elle Integrität) • zugehöriger Primärschlüssel muss exis6eren • d.h. zu jedem Wert (ungleich Null) eines FremdschlüsselaWributs einer Rela6on R2
muss ein gleicher Wert des Primärschlüssels in irgendeinem Tupel von Rela6on R1 vorhanden sein
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Rela6onales Modell – Beispiel
36
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Statistik
URL
referenziertIn
WebPage
verweistAuf
WPStatistik
1
m n
n
1 1
ER-Diagramm
Relationales Schema
WID Titel erstelltAm geändertAm WebPage
URL überprüftAm Fehler URL verweistAuf
WebPage Zugriffe Größe STATISTIK URL REFSeite Anzahl URLREF
überprüftAm
Fehler
Anzahl
erstelltAm
geändertAm
Zugriffe
Größe
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 37
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
SQL
(zum Glück brauchen wir das für Rails nicht...) ;-)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 38
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
SQL
• Anfragesprache für rela6onale Datenbanken
• Standardisierung von SQL durch ANSI und ISO – erster ISO-‐Standard 1987
– 1992: Verabschiedung von „SQL2“ bzw. SQL-‐92
– 1999/2003: SQL:1999 („SQL3“) und SQL:2003 („SQL4“) mit objektorien6erten Erweiterungen etc. (-‐> objekt-‐rela6onale DBS)
• strukturierte Sprache, die auf englischen Schlüsselwörtern basiert • Basisanfrage
SELECT artid, inhalt
FROM Artikel
WHERE titel = 'Kurzinformation'
artid
1
2
3
4
inhalt
Das ...
In der...
Eine ...
Die ...
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 39
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
SQL – Anfragemöglichkeiten
• SELECT-‐Klausel – Auswahl auszugebender AWribute ( * steht für alle AWribute)
• FROM-‐Klausel – spezifiziert die Objekte (Rela6onen, Sichten), die verarbeitet werden sollen
• WHERE-‐Klausel – selek6ert auszugebende Datensätze aus den in FROM ausgewählten Rela6onen miWels Bedingungen (können NOT,
AND und OR enthalten) – Bedingungen können folgende Operatoren enthalten: = , <>, <, <=, >, >=, LIKE, IS NULL
• GROUP BY-‐Klausel – Gruppenbildung der selek6erten Datensätze nach angegebenen AWributen – pro Gruppe s6mmen alle Datensätze in den angegebenen AWributen überein – pro Gruppe ein Ergebnisdatensatz
• HAVING-‐Klausel: selek6ert Gruppen bzgl. der Bedingung • ORDER BY-‐Klausel: Sor6erung nach angegebenen AWributen (DESC abwärts, ASC aufwärts)
select-expression ::= SELECT [ALL | DISTINCT] select-item-list FROM table-ref-commalist [WHERE cond-exp] [GROUP BY column-ref-commalist] [HAVING cond-exp] [ORDER BY order-item-commalist ]
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 40
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
SQL – Beispieldatenbank
• SQL-‐Trainer: hWp://lots.uni-‐leipzig.de
autor
buch
schlag- wort
hat
n
n
m
m
verlag 1 n
autorid nachname initialen vornamen zusatz
verlagsid name ort
buchid titel isbn auflage
jahr preis
waehrung
signatur verlagsid
swid schlagwort
buchid autorid rolle rang
buchid swid
autor
verlag
buch
schlagwort
buch_aut
buch_sw
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 41
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
SQL – Beispielanfragen
Q1: Welche Autoren mit dem Vornamen Lutz gibt es?
Q2: Welche Bücher (Titel) erschienen vor 1980 in einer Neuauflage?
SELECT nachname
FROM autor
WHERE vorname = 'Lutz'
SELECT titel
FROM buch
WHERE jahr<1980 AND auflage='1. Auflage'
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 42
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
SQL – Beispielanfragen
Q3: Welche Bücher (Titel) wurden vom Verlag "Springer" verlegt?
Q4: Geben Sie zu jedem Buch den Titel und die Anzahl der Autoren aus.
SELECT b.titel
FROM buch AS b, verlag AS v
WHERE b.verlagsid=v.verlagsid AND v.name='Springer'
SELECT b.titel, count(*)
FROM buch AS b, autor AS a, buch_aut AS ba
WHERE b.buchid=ba.buchid AND ba.autorid=a.autorid
GROUP BY b.buchid, b.titel
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
SQL – Befehlsübersicht (Auswahl)
43
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Datenmanipulation (DML):
SELECT INSERT UPDATE DELETE Aggregatfunktionen: COUNT, SUM, AVG, MAX, MIN
Datendefinition (DDL):
CREATE SCHEMA CREATE DOMAIN CREATE TABLE CREATE VIEW ALTER TABLE DROP SCHEMA DROP DOMAIN DROP TABLE DROP VIEW
Datenkontrolle:
Constraints-Definitionen bei CREATE TABLE CREATE ASSERTION DROP ASSERTION GRANT REVOKE COMMIT ROLLBACK
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de 44
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Objekt-‐rela6onale Modellierung
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Mo6va6on • Rela6onales Datenmodell (Tabellen) eignet sich gut für
Speicherung, Transak6onen (ACID)
• Objekt-‐orien6erte Konzepte eignen sich besser für Modellierung als ER-‐Diagramme
• Objekt-‐orien6erte Konzepte können direkt mit Objekt-‐orien6erten Programmiersprachen (Ruby, Python, Java, C#, C++, ...) umgesetzt werden
beides Verbinden bringt die Vorteile von beidem
45
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Ziel • Datenhaltung in einer rela6onaler Datenbank • Datenverwendung mit objekt-‐orien6erten Klassen
• Möglichst einfache Modellierung • Möglichst automa6sche Generierung des Mapping
Codes
46
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Rela6onale Modellierung • Bereits behandelt (ER-‐Diagramme, SQL)
• Für ORM wich6g: – alle „Dinge“ vom gleichen Typ stehen in einer Tabelle – Jede Zeile ein „Ding“ – Jedes Ding (d.h. jede Zeile) hat eine eindeu6ge ID (meist Integer) – Jede Spalte ist eine Eigenschad des Dings – Beziehungen zu anderen „Dingen“ miWels Fremdschlüssel: die ID der
zugehörigen Zeile in anderer Tabelle wird in eine Spalte geschrieben
47
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Objekt-‐orien6erte Modellierung • zu verarbeitende Daten werden anhand ihrer
Eigenschaden und möglichen Opera6onen klassifiziert • gemeinsame Betrachtung von Eigenschaden und
Funk6onen soll entsprechende menschliche Organisa6onsmethoden aus der realen Welt besser nachzubilden
• für ORM werden nur Eigenschaden, nicht Funk6onen, betrachtet, da letztere sich nicht (direkt) im Rela6onenmodell abbilden lassen
48
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Objekt-‐rela6onales Mapping • SchniWpunkte zwischen RM und OOM werden
„verbunden“
• Tabellen <-‐> Klassen • Spalten <-‐> Eigenschaden • Zeilen <-‐> Objekte
49
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Objekt-‐rela6onales Mapping mit Ac6veRecord
• Einfache Eigenschaden werden nur in der Tabelle angegeben, nicht im Modell
• Komplexere Eigenschaden brauchen Fremdschlüssel
• Komplexere Eigenschaden brachen Deklara6on im Modell
• Wurde bereits in der Übung gemeinsam erarbeitet
50
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Objekt-‐rela6onales Mapping in Rails • Sowohl Datenbank-‐Tabellen, als auch Modell-‐Klassen
werden automa6sch angelegt • Verbindung Tabelle-‐Klasse usw. wird auf Basis einiger
Konven6onen automa6sch gemacht • Beziehungen zwischen Klassen untereinander müssen
manuell angelegt werden
• Konven6on 1: – Klassenname im Singular, dazugehörige Tabelle im Plural
• Konven6on 2: – Eigenschadsnamen gleich Spaltenname
51
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Rails Scaffolding • Rails Scaffolding erstellt Datenbank und Modellklassen
• Hilfe – ruby script/generate scaffold
• Verwendung – ruby script/generate scaffold SingularName spalte1:typ spalte2:typ
• Klasse class SingularName < ActiveRecord::Base end
• Tabelle PluralName (bzw. prak6sch: „SingularName“.pluralize => SingularNames)
52
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Modellklassen in Rails Erstellen: script/generate model Person firstname:string
lastname:string dob:date Code: class Person < Ac6veRecord::Base # keine Methoden hier
end
Verwendung p = Person.new p.firstname = "Benjamin" p.save
53
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
Einführung in Topic Maps
Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de
Vergleich: Datenbankeinbindung mit PHP („früher“)
• PHP – Die Webseite ist das Programm
54
SQ 10 – Contentmanagement, SS 2009 Benjamin Bock ([email protected]‐leipzig.de)
<html> <body> <h1>Employee #1</h1> <?php
$con = dbx_connect(DBX_PGSQL, “host“, “myDB”, “login”, “password”) or die(“Connection error!</body></html>“); $result = dbx_query($con, “SELECT * FROM Employees WHERE EmployeeID = 1“); if ( is_object($result) and ($result->rows > 0) ) {
?> <b>Name:</b> <?php echo $result->data[0][“Name”] ?><br> <b>Address:</b> <?php echo $result->data[0][“Address”] ?><br> <b>City/State/ZIP:</b> <?php echo $result->data[0][“City”] . “,“ . $result->data[0][“State”] . ““ . $result->data[0][“ZipCode”]
?><br> <?php } else { echo “Unknown employee!“; } ?>
</body> </html>
• Vermischung von Inhalt und Programmlogik