![Page 1: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/1.jpg)
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
![Page 2: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/2.jpg)
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
![Page 3: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/3.jpg)
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)
![Page 4: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/4.jpg)
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
![Page 5: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/5.jpg)
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
![Page 6: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/6.jpg)
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. ä.
![Page 7: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/7.jpg)
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)
![Page 8: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/8.jpg)
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
![Page 9: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/9.jpg)
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
![Page 10: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/10.jpg)
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 ..."
![Page 11: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/11.jpg)
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
![Page 12: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/12.jpg)
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
![Page 13: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/13.jpg)
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)
![Page 14: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/14.jpg)
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,
![Page 15: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/15.jpg)
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...
![Page 16: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/16.jpg)
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
![Page 17: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/17.jpg)
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
![Page 18: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/18.jpg)
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
![Page 19: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/19.jpg)
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
![Page 20: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/20.jpg)
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
![Page 21: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/21.jpg)
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
![Page 22: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/22.jpg)
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
![Page 23: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/23.jpg)
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
![Page 24: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/24.jpg)
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
![Page 25: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/25.jpg)
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
![Page 26: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/26.jpg)
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
![Page 27: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/27.jpg)
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
![Page 28: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/28.jpg)
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!
![Page 29: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/29.jpg)
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
![Page 30: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/30.jpg)
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)
![Page 31: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/31.jpg)
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
![Page 32: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/32.jpg)
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)
![Page 33: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/33.jpg)
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 ...
![Page 34: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/34.jpg)
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
![Page 35: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/35.jpg)
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
![Page 36: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/36.jpg)
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
![Page 37: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/37.jpg)
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...) ;-)
![Page 38: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/38.jpg)
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 ...
![Page 39: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/39.jpg)
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 ]
![Page 40: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/40.jpg)
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
![Page 41: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/41.jpg)
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'
![Page 42: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/42.jpg)
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
![Page 43: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/43.jpg)
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
![Page 44: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/44.jpg)
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
![Page 45: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/45.jpg)
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)
![Page 46: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/46.jpg)
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)
![Page 47: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/47.jpg)
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)
![Page 48: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/48.jpg)
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)
![Page 49: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/49.jpg)
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)
![Page 50: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/50.jpg)
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)
![Page 51: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/51.jpg)
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)
![Page 52: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/52.jpg)
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)
![Page 53: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/53.jpg)
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)
![Page 54: Contentmanagement. - uni-leipzig.deasv.informatik.uni-leipzig.de/uploads/document/file_link/219/SQ10CMV... · Institut für Informatik Automatische Sprachverarbeitung topicmapslab.de](https://reader033.vdocuments.net/reader033/viewer/2022041503/5e234d1b1dae5e1e62281308/html5/thumbnails/54.jpg)
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