Pud 2 Zusammen Fas Sung

Als pdf oder txt herunterladen
Als pdf oder txt herunterladen
Sie sind auf Seite 1von 11

PUD 2

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

Grundprinzip der Systementwicklung

Möglichkeiten der Datenhaltung


Notwendigkeit Datenbanksysteme

Problemstellung Erwartungen
Verschiedene Programme Performance (Schnelligkeit)
Verschiedene Benutzer Komfortabel nutzbar und in verschiedenen Sprachen

Weltweit verteilt Leicht anzubinden

Auf den gleichen Datenbestand zugreifen Einfach erweiterbar und skalierbar

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

Anforderung von Datenbanken


Anforderungen an Datenbanksystem Anforderungen von DBMS
Kurze Zugriffszeiten Bereitstellung von Technik und
Strukturdefinition und
Datenmanipulation
Minimale Redunanz Schutz der Datenbasis vor
inkonsistenten Änderungen
Anwendungen Realisierung der Nutzerschnittstellen
Persistent (Daten sind auch dann noch gespeichert, Organisation der
wenn Rechner ausfallen) und Konsistenz (Daten sind Mehrbenutzerbetriebs
nich widersprüchlich und nicht verloren gegangen) der
Daten
Trennung zw. Datenorga. und Anwendung

Datenbankmodelle
• Als Organisationsparadigma von Datenbanken
• Hierarchische Datenbankmodell
• Netzwerk-Modell
• Strukturierte Datenspeicher (NoSQ)
3 Schicht- Modell

Zusammenwirken von 3-
Schichten-Modell mit 3-
Ebenen-Architektur

Client - Server- Architektur


• Bestimmte Rechner stellen Server als Dienstleistung zur Verfügung
• Andere nehmen als Clients Dienste in Anspruch
• 3- Schicht Modell
• Benutzerschnittstelle: Schnittstelle zw. Benutzer und Maschine (Präsentationskomponente)
• Anwendungsfunktion: Durchführung der Verarbeitungsprozeduren (Logikkomponente)
• Datenverwaltung: Speicherung und Verwaltung der Daten (Datenkomponente)
• Bsp. Googlekalender

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

Ebene Inhalt Bedeutung Vorlesungsbereiche


Externe Ebene Benutzersicht Individuell auf Benutzer bzw. Anwendung SQL, Views
auf die Daten
Konzeptionelle Logische Datenmodell spezifiziert in DB enthaltenen Daten Modellierung, ERM,
Ebene Gesamtsicht der Unterscheidung : SERM
Daten • Konzeptuelles Schema (ERM)
• Logisches Datenbankschema (relationales Datenmodell)
Interne Ebene Physische Sicht Aufbau Datenstruktur auf physische Speicher und Indizien, Transaktionen
auf die Daten Zugriffsmechanismen

Komponenten eines relationalen Datenbanksystems


Datenbankmanagementsystem
• Relalionale Sprache
• Zentrale Funktionen für Reorganisation, Schutz, Sicherheit,
Nutzerzugriffe, Geschwindigkeit
Datenbankbasis
• Daten und Beziehungsinformationen in Tabellenform
• Beschreibungsdaten (Metadaten) und Systemtabellen
Data View
• Ziel: Optimierung Datenmanagement

Entity- Relationship- Modell (ERM)


Use Cases
• Modellierung der Entitäten und Relationships -> semantische Datenmodellierung
• dient als Grundlage von Datenbankentwurf (Enthält die Datenbankstruktur)
• ist systematische Lösung um Informationen zu modellieren
• Ein Relationship-Typ kann mit zwei bis beliebig vielen Entity-Typen in Verbindung stehen
• Attribute werden genau einem Typ zugeordnet
ERM Elemente
• Ein Relationship-Typ wird mit dem zugehörigen Entity-Typen verbunden
• Schwache Entity-Typ lassen sich nicht allein durch eigene Attribute bestimmen
• Voraussetzung 1:N Beziehung
Entitätstyp Attribut Name
Dinge/Objekte der Realwelt
Student Merkmale/Eigenschaften
Stellt eine (1,*)
Beziehung dar

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

Chen- Notation Min- Max Notationen


Einführung in die Wirtschaftsinformatik (EWI)
1:N -> ein Kunde kann mehrere Aufträge haben, aber
Professur für Wirtschaftsinformatik, insb. Business Engineering
Prof. Dr. Martin Wiener
Folie 12
(0,*) (1,*) = 0 bis unendlich viele -> muss
kein Auftrag hat mehrere Kunden mindestens einen geben
M:N -> ein Autor kann mehrere Bücher schreiben, ein (1,1) = es kann genau ein B geben, ohne ein A
Buch Ann von mehreren’Autoren geschrieben sein -> B kann ohne A existieren
In der Regel kann man sich merken, dass eine 1:N
Beziehung eine (0,*) (1,1) Beziehung ist

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 -

Names (Datentyp Integrationsbedigungens] -


z. B. Primärschlüssel
Attribut 2 Name Datentyp" [Integrationsbedigungen]
-

/integrationsbedingungen]; kann für die


ganze Tabelle festgelegtwerden

um ein Schema wieder zu löschen:

DROP SCHEMA Schema-Names;


:beachten!nur löschbar, wenn keine Tabellen mehr
zugeordnetsind
DROP TABLE Tabellen-Names;auch alle Daten darin werden
gelöscht

bereits bestehende Tabellen können Bearbeitetwerden


hinzufugen
·

ALTER TABLE Tabellen Names; -

ADD COLUMN AHribut Names (Datentyp> Integritätsbedingung2];


-

Attributwieder löschen
4 ALTER TABLE Tabellen Names; -

DROP COLUMN : Attribut -Name>;

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

SET :Atribut-Namens = >Wert- Ausdruck 1>

C..., Attributname wert


nc= -
Ausdruck nc]
[WHERE Bedingungs];
-Wenn keine
Bedingung gesetzt wird, werden alle Namen aufdenselben gesetzt
Löschen
Löschen von Datensätzen
·

DELETEFROM (Tabellen Name> -

[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

• Normalisierung eines relationalen Datenbankmodell ist die Chaos Ordnung


Aufteilung von Attributen in mehrere Relationen (Tabellen)
Redundanzen Eindeutigkeit
mithilfe der Normalisierungsregeln und deren Normalformen
WIE? Anomalien Korrektheit
- Lösch,-Änderungs,-
• Schrittweise zerlegen des gegeben Schemas ( Normalisierung) in ein Einfügeanomalien
äquivalentes Schema ohne Redundanz
Keine Flexibilität Wohldefiniert

Zusammengefasste Entwurfsziele von Relationalen Modellen:


• Vermeidung von Redundanzen
• Vermeidung von Anomalien
• Evtl. Einbeziehung von Effizienzüberlegungen

Komplexe Relationen-Modelle Förden systematisch Herangehensweise der Verbesserung


Vorgehen: siehe

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

2. Zweite Normalform: nicht-Schlüssel Merkmale vom Schlüssel abhängig


• Relation liegt in 1. NF vor und ein Attribut ist selber Schlüsselkandidat oder jedes nicht-
Schlüssel-Attribut ist von allen Schlüsselkandidaten voll funktional abhängig

3. Dritte Normalform: Es bestehen keine transitiven Abhängigkeiten


• Motivation: man möchte zunächst verhindern, dass Attribute von Nicht- Schlüsselattributen
funktional anhängig sind
• Relation liegt in 2.NF vor und kein nicht-Schlüssel-Attribut ist von einem Schlüsselkandidaten
transitiv abhängig

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

Abhängigkeiten bei der Normalisierung


• Funktionale Abhängigkeit
• Ein Attribut Y ist von einem Attribut X funktional abhängig, wenn zu jedem Wert X eindeutig
ein Wert Y bestimmt werden kann
Bsp.:
• eine kleine Universität hat Studenten, welche sie mit der Studenten-ID (Primärschlüssel) und
den nicht -Schlüssel Attributen: Name und Vorname ab speichert. Studenten -ID ist einzigartig,
somit können Name und Vorname eindeutig bestimmt werden -> Name und Vorname sind
funktional abhängig

• Voll funktionale Abhängigkeit


Bsp. Erweitert:
• Wenn die Noten der einzelnen Studenten erfasst werden sollen, dann muss die Studenten- ID
und das Fach als Primärschlüssel angegeben werden und ,Noten’ als nicht-Schlüssel-Attribut
Hier ist die Note voll funktional abhängig von der Attribut- Kombination Studenten -ID und
Fach und nicht nur von einem Teil davon -> wir brauchen beide Informationen um das nicht-
Schlüssel-Attribut zu bestimmen

• 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

Sicherheit In python kann eine Zwischenschicht zusätzliche Sicherheitsprüfungen


und Validierungen bieten

Abstraktion Wenn in python gearbeitet wird, können Bibliotheken verwendet werden,


um Abstraktion über SQL zu bieten
Erlauben es Datenbankoperationen auf höher Abstraktionsebene
auszuführen, was Komplexität reduziert und Code leserlicher macht

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

Migrationen Änderungen Datenbankstruktur können komplett und fehlerfällig sein


Mit Python- Bibliotheken können Datenmigrationen automatisiert und
verwaltet werden um Risiko von Fehlern zu reduzieren

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

Kompatibilität Verschiedene Python Bibliotheken unterstützen verschiedene


Datenbanken, was bedeutet, dass zwischen Datenbanksystemen
gewechselt werden kann, ohne viel code neu schreiben zu müssen

Testen Mehrere Bibliotheken zur Unterstützung beim automatisierten Testen.


Können dabei helfen fehlerfrei und robuste Anwendung zu erstellen. Ohne
Zwischenschicht könnte Testen schwieriger werden

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

• Definition: Abbildung der Laufzeitdaten eines in einer objektorientierten Sprache


geschriebene Programms auf die zugehörigen Daten in einer relationalen Datenbank und
umgekehrt

• Was ist OR- Mapping?


• Objekte als Datensätze in relationalen Datenbanken persistiert (abgespeichert)
• Datensätze können wieder in Objekt überführt werden, mit denen gearbeitet werden kann
• Objekte in korrespondierenden Datensätze verwaltet
• Kein manueller SQL -Code nötig
• ORM-Framework organisiert zugriff
• ORM-Framework sichert Konsistenz in DB
Try-Exceptions-Block
• Expect Fehlertyp:
• Wird dazu benutzt, um bestimmte Fehler abzufangen
• Wenn keine Fehlertypen angegeben ist, dann werden alle Fehler abgefangen
• Anweisungen
• Ausführung der entsprechenden Anweisung zur Fehlerbearbeitung
• Durchführung abschließender Anweisungen und Fortsetzung des Programmablaufs

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

Python und Clouds


• Django (Python Webframework) und Cloud-Datenbankdienste bieten zusammen
leistungsstarke Plattform für Entwicklung und Bereitstellung von Webanwendungen
• Django’s ORM
• ermöglich einfache Interaktion mit Datenbanken
• Eingebaute Funktionen können zur erhöhten Entwicklungsgeschwindigkeit beitragen und
Sicherheit gewährleisten
• Cloud-Datenbankdienste
• stellen Skalierbarkeit und Verfügbarkeit der zugrundeliegende Datenbankstruktur sicher
• Einfache Interaktion mit anderen Cloud-Diensten
• Führt zur verbesserten Effizienz und verkürzten Markteinführungszeit
• Herausforderungen
• Django’s ORM
• Kann Komplexe Anfragen oder Leistungsoptimierung einschränken
• Cloud-Datenbankdiensten
• Erhöhter Abhängigkeit von einzigen Anbietern ->eingeschränkte Flexibilität
• Sicherheitsbedenken -> sensible Daten an dritte übergeben

Integritätsbedingungen

NOT NULL

Powered by TCPDF (www.tcpdf.org)

Das könnte Ihnen auch gefallen