![Page 1: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/1.jpg)
Anja Aue | 08.06.2018
SQLite – Nutzung in PythonLayout von Datenbanken
Firma
bestelltArtikel
Northwind
bietet an
liefert aus
![Page 2: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/2.jpg)
Einführung in die Programmbibliothek SQLite Seite 2
Entwurfsprozess einer Datenbank
Anforderungsanalyse
Konzeptionelle Phase
Logische Phase
Physische Phase
Beschreibung des Problems
FormalisierteBeschreibung
Implementierung
DatenbankschemaOptimierung
![Page 3: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/3.jpg)
Einführung in die Programmbibliothek SQLite Seite 3
Anforderungsanalyse
Welchen Ausschnitt aus der realen Welt soll die Datenbank abbilden?
Welche Anforderungen muss die Datenbank erfüllen? Welche Anforderungen können aus Datenschutzgründen, technischen Voraussetzungen und so weiter nicht erfüllt werden?
Iterativer Prozess zwischen Kunden und IT-Entwickler. Das Ergebnis kann mit Hilfe der Sprache UML (Unified
Modeling Language) dargestellt werden. Es können Lastenhefte oder Pflichtenhefte erstellt werden.
![Page 4: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/4.jpg)
Einführung in die Programmbibliothek SQLite Seite 4
Priorisierung von Anforderungen
Must have. Welche Informationen und Beziehungen müssen zwingend abgebildet werden? Informationen, die für die Funktionsfähigkeit der Datenbank unbedingt benötigt werden.
Should have. Abbildung von Informationen in dem Datenbankschema, die die Akzeptanz bei den Anwendern erhöhen. Die dargestellten Beziehungen sind für die Aufgabenstellung nicht unbedingt erforderlich.
Could have (nice to have). Wenn Zeit und Budget vorhanden ist, können die Informationen mit niedriger Priorität abgebildet werden.
Want have. Beziehungen und Informationen, die sinnvoll sind, aber momentan aufgrund von Zeitmangel und so weiter nicht abgebildet werden.
![Page 5: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/5.jpg)
Einführung in die Programmbibliothek SQLite Seite 5
Aufgabenstellung
Firma X Kunden
Ware
beauftragt bestellt
wird geliefert
![Page 6: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/6.jpg)
Einführung in die Programmbibliothek SQLite Seite 6
Priorisierung
Kunden
Welcher Artikel kann zu welchem Preis bestellt
werden?
Artikelbeschreibung zum Download
Online-Bestellung
Prozess-Verfolgung vom Versand bis zur Lieferung
Firma X
Welcher Artikel wird zu welchen Preis angeboten?
Automatische Bestandstransaktionen
Bilder der Artikel
Automatische Bestellung beim Lieferanten, wenn
Menge x unterschritten ist
Must have
Should have
Could have
Want have
![Page 7: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/7.jpg)
Einführung in die Programmbibliothek SQLite Seite 7
Konzeptionelle Phase
Entwicklung eines Datenbankschemas unabhängig von dem später eingesetzten Datenbank-Managementsystems.
Formalisierte Darstellung der benötigten Informationen. Diskussionsgrundlage zwischen Kunden und IT-Entwicklern.
![Page 8: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/8.jpg)
Einführung in die Programmbibliothek SQLite Seite 8
Informationen zum Bestellvorgang
Kunden
Wie hoch ist der Preis des gewünschten Artikels?
Wann kann die Bestellung geliefert werden?
Wie hoch sind die Versandkosten?
Firma X
Wie hoch ist der Einzelpreis der Bestellposten?
Ist der bestellte Artikel in genügender Menge im Lager
vorhanden?
Wohin wird die Bestellung verschickt?
Mit welcher Versandfirma kann die Bestellung verschickt werden?
![Page 9: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/9.jpg)
Einführung in die Programmbibliothek SQLite Seite 9
Entity Relationship (ER) - Model
Gegenstands-Beziehungsmodell nach Peter P. Chen. Standardmodell in dem konzeptionellen Entwurf. Konzept einer Datenbankstruktur. Visualisierung von Objekten und deren Beziehung in Bezug auf
die Anforderungsanalyse.
![Page 10: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/10.jpg)
Einführung in die Programmbibliothek SQLite Seite 10
Entity-Typ
Der Kunde „Müller“ bestellt den Artikel „Tomatensuppe“. Kategorisierende Substantive wie Kunde, Artikel etc., geben
einen Hinweis auf Entity-Typen. Entitäten werden mit Hilfe eines Rechtecks visualisiert.
Kunde Artikel
Lieferanten
![Page 11: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/11.jpg)
Einführung in die Programmbibliothek SQLite Seite 11
Beispiele
Gegenstände wie zum Beispiel Buchungsrechner, Artikel, Drucker.
Personen und Organisationen. Abbildung von Rollen wie zum Beispiel Besteller, Projektleiter,
Ausleihender. Rollen von Menschen und Systemen wie zum Beispiel KFZ-
Halter, Projektleiter, Ausleiher. Abbildung von organisatorischen Einheiten wie Bezirk,
Verkaufsgebiet, Region.
![Page 12: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/12.jpg)
Einführung in die Programmbibliothek SQLite Seite 12
Entity (Entität)
„Müller“ ist ein Kunde. Mit Hilfe von Begriffen werden verschieden Objekte zusammengefasst.
„Müller“ ist eine Entität, die allgemein mit Hilfe des Entity-Typs „Kunde“ beschrieben wird.
Der Entity-Typ ist eine Vorlage für ein konkretes Objekt.
Kunde Artikel
Lieferanten
![Page 13: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/13.jpg)
Einführung in die Programmbibliothek SQLite Seite 13
… in einer Datenbank
Entitäten beschreiben ein Objekt oder Gegenstand aus der realen Welt.
Entitäten mit gleichen Attributen werden in Tabellen zusammengefasst. Jedes Rechteck in einem ER-Modell stellt eine Tabelle dar.
In einer Tabelle wird zeilenweise ein Datensatz pro Entität abgelegt. Jeder Datensatz unterscheidet sich in mindestens einem Attribut-Wert von allen anderen Datensätzen.
![Page 14: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/14.jpg)
Einführung in die Programmbibliothek SQLite Seite 14
Attribute
Jeder Entity-Typ hat Attribute, die eine Entität kennzeichnen. Mit Hilfe von Eigenschaften wird ein konkretes Objekt
beschrieben, Darstellung als Ellipse.
Artikel Name
Beschreibung
Listenpreis
![Page 15: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/15.jpg)
Einführung in die Programmbibliothek SQLite Seite 15
… in einer Datenbank
Pro Spalte einer Tabelle wird ein Attribut einer Entität beschrieben.
Datenfelder in einem Datensatz enthalten den Wert einer Eigenschaft.
Jeder Datensatz unterscheidet sich mindestens in einem Attribut-Wert von allen anderen Datensätzen in einer Tabelle.
![Page 16: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/16.jpg)
Einführung in die Programmbibliothek SQLite Seite 16
Identifizierende Attribute
Ein Schlüssel kennzeichnet eine Entität von einem Typ eindeutig.
Ein Schlüssel kann sich aus mehreren Attributen zusammensetzen.
Identifizierende Attribute werden unterstrichen.
![Page 17: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/17.jpg)
Einführung in die Programmbibliothek SQLite Seite 17
… in einem ER-Modell
Artikel
NameBeschreibung
ListenpreisProduktcode
![Page 18: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/18.jpg)
Einführung in die Programmbibliothek SQLite Seite 18
… in der realen Welt
Ware A wird erstmalig in den Warenkorb aufgenommen. Ware A bekommt eine Artikelnummer.
Kunde X bestellt … Durch das Auslösen des Bestellvorgangs wird automatisiert eine Bestellnummer erzeugt.
A möchte erstmalig ein Buch ausleihen. A bekommt ein Bibliotheksausweis. Der Ausweis enthält eine Mitgliedsnummer.
Die Bestellung wird an das Haus … ausgeliefert. Das Haus wird durch die Straße, Hausnummer und Postleitzahl gekennzeichnet. Eine weitere Möglichkeit sind die GPS-Daten eines Hauses.
![Page 19: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/19.jpg)
Einführung in die Programmbibliothek SQLite Seite 19
… finden
Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal angelegt und nie wieder verändert werden.
Künstliche Attribute oder Aktenzeichen werden als Schlüssel genutzt. Die Entitäten existieren ohne diese Kennzeichnung in der realen Welt.
Substantive, die auf „Nummer“ enden. Zum Beispiel Auftragsnummer, Kundennummer, IBAN-Nummber, ISBN-Nummer etc.
![Page 20: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/20.jpg)
Einführung in die Programmbibliothek SQLite Seite 20
… in einer Datenbank
Schlüsselwerte in einer Datenbank kennzeichnen einen Datensatz in einer Tabelle eindeutig.
Jeder Wert in der Spalte „Schlüssel“ kommt nur einmal in der Tabelle vor.
Die Schlüsselwerte werden als Primary Key (Primärschlüssel) bezeichnet.
![Page 21: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/21.jpg)
Einführung in die Programmbibliothek SQLite Seite 21
Beziehungen (Relationship)
Verknüpfungen zwischen Entitäten. Abbildung von Aktionen wie zum Beispiel „Lieferant A liefert
Ware X“ oder „Person A leiht Buch X aus“. Die Anzahl der Beteiligten an einer Beziehung kann
beschrieben werden.
![Page 22: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/22.jpg)
Einführung in die Programmbibliothek SQLite Seite 22
… in einem ER-Modell
Raute, die zwei Entity-Typen verbindet. Mit Hilfe eines Verbs in der Raute kann die Beziehung
beschrieben werden. An den Enden der Verbindungslinien kann die Anzahl der
Beteiligten an der Beziehung definiert werden. An den Enden der Verbindungslinie kann die Rolle der Entität
beschrieben werden.
![Page 23: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/23.jpg)
Einführung in die Programmbibliothek SQLite Seite 23
Beispiel
Firma
bestelltArtikel
Northwind
bietet an
liefert aus
![Page 24: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/24.jpg)
Einführung in die Programmbibliothek SQLite Seite 24
… in einer Datenbank
Nutzung von Primärschlüssel – Fremdschlüssel in Tabellen. Die Tabelle Lieferant hat den Primärschlüssel Lieferanten-Nummer. Der Schlüssel identifiziert eindeutig einen Datensatz in dieser Tabelle.
In der Tabelle Auftrag wird dieser Schlüssel genutzt, um einem Auftrag eindeutig einem Lieferanten zu zuweisen. Der Fremdschlüssel ist in der Tabelle Lieferant definiert. Der Auftrag selber hat den Primärschlüssel Auftragsnummer.
![Page 25: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/25.jpg)
Einführung in die Programmbibliothek SQLite Seite 25
Rollen
Beschreibung von Objektgruppen. Generalisierung von Objektgruppen. Darstellung eines Entity-Typs.
![Page 26: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/26.jpg)
Einführung in die Programmbibliothek SQLite Seite 26
… in einem ER-Modell
Firma
versendet
Artikel
Versandfirma
liefertLieferant
![Page 27: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/27.jpg)
Einführung in die Programmbibliothek SQLite Seite 27
… sollte in dieses Modell umgesetzt werden
Lieferant
versendet
Artikel
liefert
Versandfirma
![Page 28: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/28.jpg)
Einführung in die Programmbibliothek SQLite Seite 28
Attribute einer Beziehung
In selten Fällen hat die Beziehung selber Attribute. Darstellung mit Hilfe von Ellipsen. Die Beziehung wird in einer gesonderten Tabelle in der
Datenbank abgebildet.
![Page 29: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/29.jpg)
Einführung in die Programmbibliothek SQLite Seite 29
… in einem ER-Modell
Kunde bestellt Artikel
Bestellnummer
Bestellmenge Einzelpreis
Rabatt
![Page 30: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/30.jpg)
Einführung in die Programmbibliothek SQLite Seite 30
Kardinalitäten
Abbildung des Beziehungstyps aus Sicht einer Entität. Wie viele Entitäten sind minimal und maximal an einer
Beziehung beteiligt? Wie oft darf der Fremdschlüssel in einer Tabelle genutzt
werden?
![Page 31: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/31.jpg)
Einführung in die Programmbibliothek SQLite Seite 31
… in einem ER-Modell
Jede Abteilung einer Firma hat einen Leiter.
Personen können maximal 4 Bücher ausleihen.
Abteilung hat Leiter[1,1] [1,1]
Person A leiht beliebig viele Bücher aus.
Person leiht Bücher[0,*] [0,4]
Person leiht Bücher[1,1] [0,*]
![Page 32: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/32.jpg)
Einführung in die Programmbibliothek SQLite Seite 32
… aus Sicht einer Enität
Person A leiht beliebig viele Bücher aus.
Ein Buch wird von einer Person ausgeliehen.
Buch Aus-geliehen Person
[1,1] [1,1]
Person leiht Bücher[1,1] [0,*]
![Page 33: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/33.jpg)
Einführung in die Programmbibliothek SQLite Seite 33
Angabe von Kardinalitäten
[min, max]. Die minimale und maximale Anzahl der Beteiligten an eine Beziehung wird angegeben. Die Angaben in den eckigen Klammern werden durch ein Komma getrennt.
[0,4]. Die häufigsten Werte für das Minimum sind 0 (keiner ist beteiligt) oder 1 (einer ist beteiligt).
[1,1]. Wenn beide Werte gleich sind, wird häufig nur die maximale Anzahl angegeben.
[0,*]. Das Sternchen ist ein Platzhalter für eine beliebige Anzahl von Beteiligten.
![Page 34: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/34.jpg)
Einführung in die Programmbibliothek SQLite Seite 34
1 : 1 - Beziehung
Einer Entität kann exakt eine andere Entität zugeordnet werden.
Jedes Land hat eine Hauptstadt. Die Hauptstadt kann exakt einem Land zugeordnet werden.
Die Entität Hauptstadt ist ein Attribut der Entität Land.
Land hat Hauptstadt[1,1] [1,1]
![Page 35: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/35.jpg)
Einführung in die Programmbibliothek SQLite Seite 35
1 : n - Beziehung
Häufigste Beziehung. Ein Land hat beliebig viele Städte. Die Städte Berlin, Hannover,
Hamburg, Celle liegen in Deutschland. Aber eine Stadt liegt in einem Land. Die Stadt Berlin liegt in Deutschland. Städte wie Frankfurt / Oder oder Görlitz, die in zwei Ländern liegen können nicht abgebildet werden.
Land hat Städte[1,1] [1,*]
![Page 36: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/36.jpg)
Einführung in die Programmbibliothek SQLite Seite 36
Angabe des maximalen Wertes
Eine Abteilung hat einen, maximal drei Abteilungsleiter. Einem Abteilungsleiter kann eine Abteilung zugeordnet werden.
Abteilung hat Ansprechpartner[1,1] [1,3]
![Page 37: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/37.jpg)
Einführung in die Programmbibliothek SQLite Seite 37
m : n - Beziehung
Eine oder beliebig viele Personen können an keinem Kurs oder beliebig vielen Kursen teilnehmen.
Ein Kurs hat keinen oder beliebig viele Teilnehmer. Jeder Entität aus der Gruppe A sind beliebig viele Datensätze
aus der Gruppe B zugeordnet. Aber jeder Entität aus der Gruppe B sind beliebig viele Entitäten aus der Gruppe A zugeordnet.
Abbildung über Pseudo-Tabellen.
Person Teil-nehmen Kurs
[1,*] [0,*]
![Page 38: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/38.jpg)
Einführung in die Programmbibliothek SQLite Seite 38
Logische Phase
Transformation des ER-Modells in ein relationales Datenbankmodell.
Auswahl des Datenbank-Managementsystems. Entsprechend des System werden die Typen der Datenfelder festgelegt.
Optimierung des Entwurfs mit Hilfe der Normalisierung.
![Page 39: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/39.jpg)
Einführung in die Programmbibliothek SQLite Seite 39
1 : 1 - Beziehung
Land hat Hauptstadt[1,1] [1,1]
Land
LänderkennungNameHauptstadt
![Page 40: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/40.jpg)
Einführung in die Programmbibliothek SQLite Seite 40
Hinweise zur Umsetzung
Zu einem Datensatz existiert exakt ein Datensatz in einer anderen Tabelle.
Die beiden Tabellen können in eine Tabelle zusammengeführt werden.
![Page 41: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/41.jpg)
Einführung in die Programmbibliothek SQLite Seite 41
… trennen
Land hat Hauptstadt[1,1] [1,1]
Land
LänderkennungName
Hauptstadt
LänderkennungHauptstadt
![Page 42: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/42.jpg)
Einführung in die Programmbibliothek SQLite Seite 42
Gründe für die Trennung der Tabellen
Die Anzahl der Datenfelder kann nicht auf einer Bildschirmseite dargestellt werden.
Einige Attribute werden nur von wenigen Entitäten genutzt. Die von allen Entitäten am häufigsten Attribute werden in einer Tabelle zusammengefasst. Alle anderen Attribute werden ausgelagert.
Daten werden vor den Zugriff einer bestimmten Personengruppe geschützt. Beispiel: Alle Mitarbeiter dürfen die Kontaktdaten einsehen. Aber nur die Personalabteilung sieht die Gehaltsstufe und -höhe.
![Page 43: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/43.jpg)
Einführung in die Programmbibliothek SQLite Seite 43
1 : n - Beziehung
Land hat Städte[1,1] [1,*]
Land
LänderkennungName
Stadt
LänderkennungName der StadtIst Hauptstadt?
![Page 44: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/44.jpg)
Einführung in die Programmbibliothek SQLite Seite 44
Hinweise zur Umsetzung
Zu einem Datensatz in einer Tabelle existieren beliebig viele Datensätze in einer anderen Tabelle.
Der Primärschlüssel in der Tabelle der „1-Seite“ wird als Fremdschlüssel in der Tabelle der „n-Seite“ übernommen.
Eine Einschränkung von „beliebig viele“ auf einen maximalen Wert kann nur mit Hilfe von Code etc. überprüft werden.
![Page 45: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/45.jpg)
Einführung in die Programmbibliothek SQLite Seite 45
m : n - Beziehung
Person Teil-nehmen Kurs
[1,*] [0,*]
Person
IDAnredeName der Person
Kurs
KursnummerKursnameBeschreibungDatumUhrzeitGebührTeilnahme
ID PersonKursnummerGebühr bezahlt
![Page 46: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/46.jpg)
Einführung in die Programmbibliothek SQLite Seite 46
Hinweise zur Umsetzung
Für jeden Entity-Typ wird eine Tabelle angelegt. Die Beziehung selber wird in einer Pseudo-Tabelle dargestellt.
In dieser Tabelle wird jeder Beteiligte an der Beziehung durch ein Schlüsselwert symbolisiert. Jeder Schlüsselwert in der Pseudo-Tabelle hat ein Gegenstück in einer der Tabellen, die eine Entity darstellt.
In der Pseudo-Tabelle werden Eigenschaften der Beziehungen spaltenweise definiert.
![Page 47: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/47.jpg)
Einführung in die Programmbibliothek SQLite Seite 47
Datentypen von Feldern
Datentypen legen den Speicherbedarf und den Wertebereich des Attribut-Wertes fest.
Datentypen beeinflussen die Weiterverarbeitung der gespeicherten Attribut-Werte.
Datentypen können in Abhängigkeit des Datenbank-Managementsystems einem Datenfeld zugeordnet werden.
![Page 48: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/48.jpg)
Einführung in die Programmbibliothek SQLite Seite 48
… angeben
Person
ID : integerAnrede : varcharName der Person : varchar
Kurs
Kursnummer : varcharKursname : varcharBeschreibung : varcharDatum : dateUhrzeit : timeGebühr : numericTeilnahme
ID Person : integerKursnummer : varcharGebühr bezahlt : boolean
![Page 49: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/49.jpg)
Einführung in die Programmbibliothek SQLite Seite 49
Möglichkeiten
Zeichenketten aus numerischen und alphanumerischen Zeichen: varchar oder character.
Ganzzahlen: integer, smallint oder bigint .
Gleitkommazahlen: float, real oder double precision.
Zahlen, die in kaufmännischen Berechnungen genutzt werden: numeric oder decimal.
Datums- und Zeitangaben: time, date und timestamp.
Ja / Nein: boolean.
![Page 50: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/50.jpg)
Einführung in die Programmbibliothek SQLite Seite 50
Hinweise
Einige Hersteller bieten Datentypen an, die nicht im Standard-SQL definiert sind.
Die Nutzung der Daten hilft häufig bei der Auswahl des Datentyps.
![Page 51: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/51.jpg)
Einführung in die Programmbibliothek SQLite Seite 51
Normalisierung von Daten
Optimierung von Tabellen durch Zerlegung. Vermeidung von Fehlern durch widersprüchlich gespeicherte
Daten. Daten werden nicht redundant in der Datenbank abgelegt. In einer Tabelle existieren keine Spaltengruppen.
![Page 52: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/52.jpg)
Einführung in die Programmbibliothek SQLite Seite 52
Spaltengruppen in Tabellen
Beispiel: Zu jedem Kunden kann keine oder maximal drei Telefonnummern abgelegt. Die Spaltengruppe Telefon besteht aus drei Datenfeldern. In der Tabelle Kunde werden in drei verschiedenen Datenfeldern Telefonnummern abgelegt.
Nachteil von Spaltengruppen: Alle drei Datenfelder enthalten den gleichen Typ von Information. Die Tabelle wächst in die Breite.
![Page 53: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/53.jpg)
Einführung in die Programmbibliothek SQLite Seite 53
Vermeidung von Anomalien bei der Eingabe
Beispiel: Bei jedem Auftrag werden die Angaben zu dem Lieferanten vollständig gespeichert.
Die Firma Johansen KG wird nochmals beauftragt. Als Lieferant wird die Firma Johansen eingetragen. Die Angabe KG wird vergessen.
Aus der Sicht der Datenbank ist der Auftrag an zwei verschiedene Lieferanten heraus gegangen.
![Page 54: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/54.jpg)
Einführung in die Programmbibliothek SQLite Seite 54
Vermeidung von Anomalien bei Änderung
Beispiel: Bei jedem Auftrag werden die Angaben zu dem Lieferanten vollständig gespeichert.
Die Firma Johansen KG ist von Hannover nach Braunschweig gezogen. Bei der Eingabe der Änderung wird die Adressänderung nicht bei allen Aufträgen durchgeführt.
Aus der Sicht der Datenbank ist der Auftrag an zwei verschiedene Lieferanten heraus gegangen.
![Page 55: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/55.jpg)
Einführung in die Programmbibliothek SQLite Seite 55
Vermeidung von Anomalien bei Löschung
Beispiel: Bei jedem Auftrag werden die Angaben zu dem Lieferanten vollständig gespeichert.
Aufträge, die älter als fünf Jahre sind, werden gelöscht. Wenn ein Lieferant, die letzten fünf Jahre keinen Auftrag erhalten hat, werden alle Informationen zu diesem Lieferanten gelöscht.
Die Firma Johansen KG stellt den Betrieb ein. Alle Aufträge der Firma werden gelöscht. Das gesamte Auftragsvolumen des Auftraggebers wird nicht korrekt berechnet werden.
![Page 56: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/56.jpg)
Einführung in die Programmbibliothek SQLite Seite 56
Auflösen von funktionalen Abhängigkeiten
Länderkennung → Ländername. Die Länderkennung definiert eindeutig ein Land. Über die Länderkennung kann der Name eines Landes eindeutig ermittelt werden.
Lieferanten-Nummer → Lieferanten-Name. Sobald die Lieferanten-Nummer bekannt ist, kann der Lieferanten-Name mit Hilfe einer SQL-Anweisung ermittelt werden.
Straße, Hausnummer, Ort → Postleitzahl (in Deutschland). Bei der Auflösung dieser funktionalen Abhängigkeit muss der Entwickler Aufwand und Nutzen abwägen.
![Page 57: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/57.jpg)
Einführung in die Programmbibliothek SQLite Seite 57
Nullte Normalform (Rohdaten)
Aufgenommen von
Bestelldatum
Lieferung zu
Bestellter Artikel
Versanddatum
Janet Leverling
07.04.2006
Cactus ComidasCerrito 333
Buenos Aires
50 x Craeb Meat
07.04.2006
Robert King
07.04.2006
Cactus ComidasCerrito 333
Buenos Aires
50 x Clam Chowder
08.04.2006
![Page 58: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/58.jpg)
Einführung in die Programmbibliothek SQLite Seite 58
Erste Normalform
Alle Attribute sind atomar. Jedes Attribut hat einen Attribut-Wert.
Eine Liste von Werten in einem Datenfeld wird durch Hinzufügung von Spalten aufgelöst.
Kein Datenfeld ist von einem anderem Datenfeld funktional abhängig.
![Page 59: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/59.jpg)
Einführung in die Programmbibliothek SQLite Seite 59
Beispiel
Aufgenommen von
Bestelldatum
Lieferung zu
Bestellter Artikel
Versanddatum
Janet Leverling
07.04.2006
Cactus Comidas
Craeb Meat
07.04.2006
Robert King
07.04.2006
Cactus Comidas
Clam Chowder
08.04.2006
Lieferung Straße Cerrito 333 Cerrito 333
Lieferung Stadt Buenos Aires Buenos Aires
Bestellmenge 50 50
![Page 60: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/60.jpg)
Einführung in die Programmbibliothek SQLite Seite 60
2. Normalform
Die Tabelle befindet sich in der ersten Normalform. Jedes Datenfeld, welches kein Schlüsselfeld ist, ist nur vom
Schlüsselfeld voll funktional abhängig. Zusammenfassung von Daten, die ein Objekt beschreiben. Für
jede Objektgruppe wird eine Tabelle angelegt.
![Page 61: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/61.jpg)
Einführung in die Programmbibliothek SQLite Seite 61
Beispiel „Aufgenommen von“
Mitarbeiter
Mitarbeiter-Nr.VornameNachname
Aufgenommen von Janet Leverling Robert King
![Page 62: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/62.jpg)
Einführung in die Programmbibliothek SQLite Seite 62
Beispiel „Ware“
Ware
Artikelnr.Name
Bestellter Artikel Craeb Meat Clam Chowder
![Page 63: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/63.jpg)
Einführung in die Programmbibliothek SQLite Seite 63
Beispiel „Lieferung zu“
Kunde
Kundenr.NameStraßeStadt
Lieferung zu Cactus Comidas Cactus Comidas
Lieferung Straße Cerrito 333 Cerrito 333
Lieferung Stadt Buenos Aires Buenos Aires
![Page 64: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/64.jpg)
Einführung in die Programmbibliothek SQLite Seite 64
Beispiel „Bestellung“
Bestellung
Bestellnr.Kundennr.Artikelnr.MengeBestellt amVersandt amID Mitarbeiter
Aufgenommen von
Bestelldatum
Lieferung zu
Bestellter Artikel
Versanddatum
Janet Leverling
07.04.2006
Cactus Comidas
Craeb Meat
07.04.2006
Lieferung Straße Cerrito 333
Lieferung Stadt Buenos Aires
Bestellmenge 50
![Page 65: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/65.jpg)
Einführung in die Programmbibliothek SQLite Seite 65
Dritte Normalform
Die zweite Normalform ist erfüllt. Jedes Datenfeld, welches kein Schlüsselfeld ist, ist nicht
transitiv vom Primärschlüssel abhängig. Aus keinem Nichtschlüsselattribut folgt kein anderes
Nichtschlüsselattribut.
![Page 66: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/66.jpg)
Einführung in die Programmbibliothek SQLite Seite 66
Beispiel „Lieferung zu“
Kunde
Kundenr.NameStraßeHausnummerStadt
Lieferung zu Cactus Comidas Cactus Comidas
Lieferung Straße Cerrito 333 Cerrito 333
Lieferung Stadt Buenos Aires Buenos Aires
Die Straße muss nicht geändert werden, wenn die Hausnummer geändert wird und umgekehrt.
![Page 67: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/67.jpg)
Einführung in die Programmbibliothek SQLite Seite 67
Beispiel „Mehrere Lieferadressen“
Kunde
Kundenr.Name
Lieferung zu Cactus Comidas Cactus Comidas
Lieferung Straße Cerrito 333 Cerrito 333
Lieferung Stadt Buenos Aires Buenos Aires
Adresse
ID AdresseStraßeHausnummerStadt
Zuordnung
Kundenr.ID Adresse
![Page 68: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/68.jpg)
Einführung in die Programmbibliothek SQLite Seite 68
Physische Phase
Implementierung einer leeren Datenbank mit Hilfe eines Datenbank-Managementsystems.
Umsetzung des Modells aus der logischen Phase mit Hilfe der Datendefinitionssprache SQL.
Festlegung von Zugriffsrechten auf die Datenbank.
![Page 69: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/69.jpg)
![Page 70: SQLite - Nutzung in Python · Einführung in die Programmbibliothek SQLite Seite 19 … finden Attribute, die bei der Erzeugung einer Entität oder bei Anlage einer Vorgangs einmal](https://reader030.vdocuments.pub/reader030/viewer/2022013019/5e1c8b76c1d95a17615c1361/html5/thumbnails/70.jpg)
Artikel / Ware
Produktcode : varchar
Produktname : varchar
Produktbeschreibung : varchar
Listenpreis : money
Kunde-Person
ID_KundePerson : int serialPS
Nachname : varchar
Anrede : varchar
Vorname : varchar
Bestellung
ID_Bestellnummer : varcharPS
id_Kunde-Firma : Integer
Bestelldatum : date
Versanddatum : date
Kunde-Firma
ID_KundeFirma : int serialPS
Firmen-Name : varchar
Straße : varchar
ID_KundeFirma : intFK
E-Mail : varchar
Telefonnummer : varcharPostleitzahl : varchar
Ort : varchar
Bestellung-Details
ID_Bestellposten : int serialPS
id_Ware : intFK
Bestellmenge : int
Rabatt : numeric
id_Bestellnummer : varcharFK
id_Zahlungsart : intFK
Zahlungsdatum : date
Zahlungsart
ID_Zahlungsart : int serialPS
Zahlungsart : varchar
id_Landkennung : varcharFK
Land
Landkennung : varcharPS
LandName : varchar
aufgenommen am : timestamp
Bestellpreis : money
aufgenommen am : timestamp
id_Kunde-Person : intFK
Lieferadresse
ID_Lieferadresse : int serialPS
Lieferung Straße: varchar
Lieferung Postleitzahl : varchar
Lieferung Ort : varchar
id_Kunde-Firma : intFK
Lieferung An
ID_BestellungLieferungAn : int serialPS
id_Bestellnummer : varcharFK
id_Lieferadresse : intFK
Lieferung am : date
Beschädigt : boolean
ID_Ware : int serialPS
Versandzeit : time