Pud 2 Zusammen Fas Sung
Pud 2 Zusammen Fas Sung
Pud 2 Zusammen Fas Sung
Wirtschaftsinformatik
• Befasst sich mit Aufgaben, welche Personen und ,,Maschinen’’ in Kooperation erfüllen
• Bsp. Informations- und Kommunikationssystem (IKS) in Wirtschaft und Verwaltung
eingesetzt
• Prozesse strukturieren
• Aufgaben effizient erfüllen
• Daten speichern und verarbeiten
• In privaten Haushalten als soziotechnische Informationssysteme (IS)
• Smart Devices
• Banking Apps
• Alexa
Problemstellung Erwartungen
Verschiedene Programme Performance (Schnelligkeit)
Verschiedene Benutzer Komfortabel nutzbar und in verschiedenen Sprachen
Datenbanksysteme
• Geordnete Menge von logisch zusammengehörigen Daten
• Werden von Datenbankmanagementsystem (DBMS) elektronisch verwaltet
• Ziele des Einsatzes
• Standardisierung der Datenverwaltung
• Umgang mit großen Datenmengen
• Komplexitätsreduktion der Anwendungssoftware
• Portierbarkeit der Anwendungssoftware
Datenbankmodelle
• Als Organisationsparadigma von Datenbanken
• Hierarchische Datenbankmodell
• Netzwerk-Modell
• Strukturierte Datenspeicher (NoSQ)
3 Schicht- Modell
Zusammenwirken von 3-
Schichten-Modell mit 3-
Ebenen-Architektur
3 Ebenen Architektur
• Nach ANSI/SPARC
• 1975 verabschiedeter Standart für Architektur von Datenbanken
• ANSI: American national Standards Institut
• SPARC: Standards Planning and Requirements Committee
• Ziel: Datenbankkonzept -> Unabhängigkeit von Programmiersprache, Datenschema und
Hardware erreichen
• Physische, Logische Datenunabhängigkeit
Relationstyp Schlüsselattribut
schreibt MatrNr
Relation/logische Eindeutige Identifizierung der
Verknüpfung von Entitäten Entitäten
Partizipation
Entität partiell (einfacher Zusammengesetztes Vorname
Strich) oder vollständig Attribut
(doppelter Strich) in der Name
Relation involviert
Nachname
Datenbankentwurf
• !! Datenhaltung für mehrere Anwendungssysteme und mehrere Jahre!!
1. Anforderungsanalyse : Anforderungen an Entwurf
• Anwendungsdaten jeder Anwendung sollen aus Daten der Datenbank (effizient) ableitbar sein
• Nur ,,vernünftig“ (wirklich benötigte) Daten speichern
• Nicht-redundante Speicherung (nichts doppelt oder mehrfach vorhanden)
2. Konzeptionelle Modellierung
3. Logischer Entwurf
4. Datendefinition
5. Physischer Entwurf
Datenbank SQL- Shorts
SQL-Structured Query
language
schema
·
um Tabellen zur erstellen braucht
man ein Schema
SCHEMA
>CREATE <Schema-Name>;
·
danach können
benötigte werden
Tabellen erstellt
>
CREATE TABLE Tabellen Names -
Attribut1 -
Attributwieder löschen
4 ALTER TABLE Tabellen Names; -
Einfügen .
in Tabelle
Datensätze einfügen
ISERT INTO <Tabellen -
Name) (CAHribut - Name..*.13
VALUES (Werts, ....);
man keine
Wenn man alle Attribute einsetzen möchte, dann braucht angeben, denn es
werden alle automatisch ausgewählt
Andern
·
Datensätze verändern
UPDATE <Tabellen -
Name s
[WHERE <Bedingung>];
-Wenn
Bedingung nicht
angegeben wird, dann werden alle Datensätze gelöscht
Datenbank -SQL
• Drei wesentliche Bereiche unterteilt
• Datendefiniton
• Anlegen (CREATE{SCHEMA|DATABASE}, CREATE TABLE)
• Ändern (ALTER{SCHEMA|DATABASE}, ALTER TABLE)
• Löschen (DROP {SCHEMA| DATABASE} DROP TABLE)
von Datenbank - Strukturen
• Datenmanipulation
• Einfügen (INSERT INTO)
• Ändern ( UPDATE)
• Löschen (DELETE FROM)
von Datensätzen
• Datenabfrage
• Lesen/Abfragen (SELECT)
von Datensätzen
ACID
Was versteht man darunter?
• Charakterisierung von Transaktionen
• ACID Eigenschaften, die eine Transaktion aufweisen sollte
Elemente und Bedeutung im Kontext mit Datenbanken
• Atomicity: ,,Alles oder Nichts’’ Prinzip, Atomarität, Abgeschlossenheit
• Consistency: Konsistente Zustandszuführung mittels Sperren
• Isolation: Parallele Transaktionen mittels Sperren
• Durability: Transaktionserfolg = Datenpersistenz, Dauerhaftigkeit, Speicherungsgarantie
Was versteht man in diesem Zusammenhang unter einer Transaktion?
• Transaktion = Folge von Operationen , die ‚ACID' ist
• Gewährleistung Integrität der Daten
- Daten müssen sicher und vollständig / unverändert sein
- Daten müssen gleich zw. Absender und Empfänger sein
• Mehrbenutzerbetrieb erfordert Transaktionsverwaltung
- Regelungen bzgl. Zugriffen mehrerer Transaktionen
- Simulierter Einzelnutzbetrieb je Transaktion
Was kann schief gehen bei parallelen Transaktionen?
• Dirty Read
• Phantom Read
• Non-Repeatable Read
• Lost Update
Deep Dive - Normalisierung
• Motivation: gut durchdachtes ER - Modell liefert bereits weitgehend normalisierte Tabellen
• Ist in gewisser weise eine Alternative zum ER- Modell
Ohne Normalisierung Mit Normalisierung
Use Cases
• Verbesserung der Effizienz der Datenbank : Reduktion des benötigten Speicherplatzes,
Verbesserung der Geschwindigkeit von Abfragen
• Reduktion der Datenanomalie : update Anomalien und insert Anomalien
• Erleichterung der Datenpflege : Verringerung der Wahrscheinlichkeit von Fehlern und
Inkonsistenzen
• Vereinfachung des Datenbankdesigns : Durch die Zerlegung einer komplexen Datenstruktur in
viele kleine Teile werden Zusammenhänge leichter verständlich
Normalformen
1. Erste Normalform:
• Alle Attributwerte liegen elementar / atomar vor (Zeichenfolge, ganze Zahlen(integer),
Dezimalzahlen, Datumsangaben etc.)
• Keine multiplen Eigenschaften
Normalisierung kann schädlich für die Performance sein, weil Joins ,,sehr teuer’’ auszuwerten sind
Schlüssel
• Ein Schlüssel ist eine Menge von Attributen, mit dem eine Datenzeile eindeutig identifiziert
werden kann.
• Ein Schlüsselkandidat ist ein Schlüssel mit minimaler Attribut- Anzahl.
• Eine Tabelle / Relation kann mehrere Schlüssel- Kandidaten haben.
• Ein Primärschlüssel ist ein beliebig ausgewählt Schlüsselkandidat.
• Eindeutigkeit bedeutet, dass keine zwei verschiedenen Tupel die den selben Schlüssel besitzen
• Ein Fremdschlüssel ist ein Attribut, welches auf einen anderen Datensatz einer anderen Tabelle
verweist
• Ein Primär ist ein einmaliger Wert, der jeden Datensatz eindeutig kennzeichnet
• Minimalist bedeutet, dass es keine Teilmenge der Schlüsselattribute gibt, die bereits Eindeutig
sind
• Partielle Abhängigkeit
• Nicht-Schlüsselattribute, die von einem Teil des Primärschlüssels funktional abhängig sind
• Transitive Abhängigkeit
• Ein Attribut Z ist von einem Attribut x transitiv abhängig, wenn ein Attribut Y existiert von dem
Z funktional abhängig ist, wobei Y selbstfunktional von X abhängig ist
Bsp. Erweitert:
• Neben der Studenten-ID, dem Vornamen und Nachnamen wird nun auch der Studiengang und
der dazugehörige Dekan in eine Tabelle eingetragen.
• Der Dekan ist transitiv abhängig zur Studenten-ID, denn Studenten -ID stellt Studiengang (Y)
und diese den Dekan (Z). Z ist funktional abhängig vom Studiengang (Y) -> mit Studiengang
finden wir Dekan heraus -> Studiengang funktional abhängig von Studenten, welche man über
die Studenten-ID findet
SQL und Python
Vorteile
Wartung und Skalierbarkeit Zwischenschicht in python können Strukturen und Organisation des
Codes besser kontrolliert werden
Klare Trennung von Zuständigkeiten (Separation of Concerns), was
Wartung und Skalierbarkeit der Anwendung verbessert
Wiederverwendbarkeit und Python Module und Pakete erstellt werden, welche in verschiedene Teilen
Schnelligkeit der Anwendung genutzt werden. Dies beschleunigt die Entwicklung und
fördert einen konsistenten Code
ORM (object Relational Mehrere ORM Bibliotheken die es erlauben Daten als Objekte und nicht
Mapping) als Tabellen und SQL zu behandeln
Oft intuitiver und vereinfacht den Code
Verbindung herstellen
• Trennung von Programm und Datenbank
• Realisierung mithilfe einer Bibliothek : SQLAlchemy
Objekt Relationales Mapping
• Granularität
• Detailgenauigkeit von Objekten
• Hohe Granularität : Bsp. Auto E-Commerce ORM-Modell: jedes einzelne Fahrzeug -> ein
separates Objekt mit eignen Attributen und Methoden ->Auto(id, name, preis, beschreibung,
kategorie)
• Niedrige Granularität: aggregierte Objekte werden moderiert -> SalesReport(Giant, Verkäufe,
alle_verkaeufe) -> jedes SalesReport stellt Zusammenfassung von Verkaufsinformationen für
bestimmten Monat dar
• Vererbung
• Objektorientierung und Klassen in Datenbanken
• Vererbung wird benutz um Basisklasse zu erstellen, die allgemeine Felder und Methoden
enthält, die dann von spezifischen Klassen erweitert oder überschrieben werden können
• Identität
• Eindeutigkeit eines Objektes
• Daten können konsistent und richtig verwaltet werden durch die ID
• Assoziation
• Beziehungen zwischen Methoden
• Fremdschlüssel-Feldtypen um Assoziation darzustellen
• Komplexe Datenstrukturen und -beziehungen können moduliert werden, die Anforderungen an
reale Welt widerspiegeln
Cloud Computing
• Revolutioniert Art und Weise wie Unternehmen auf Technologie zugreifen
• ermöglich Computing Ressourcen über das internet zu mieten
• Datenbankdienste in cloud bieten viele Vorteile
• Skalierbarkeit
• Kosteneffizienz
• Verwaltung der Infrastruktur auf Anbieter verlagern
• Herausforderungen
• Sicherheitsbedenken
• Abhängigkeit von einem Anbieter
• Potenzielle Latenzprobleme
Integritätsbedingungen
NOT NULL