Grundlagen der Informatik Peter Micheuz, slidefinder.net machts möglich … Konzept Datenbanken Produkt  (MS)ACCESS
Einleitung <ul><li>Datenbankmanagementsystem (DBMS) </li></ul><ul><ul><li>Programm zur Verwaltung der Datenbank </li></ul>...
Unterschiedliche Sichten <ul><li>Die externe Sicht  (externes Schema) </li></ul><ul><ul><li>Unterschiedliche Sicht der Anw...
Das Entity-Relationship-Modell  (konzeptionelles Schema) <ul><li>Basiskonstrukte des ER-Modell </li></ul><ul><ul><li>Entit...
Schlüssel und Primärschlüssel <ul><li>Schlüssel  </li></ul><ul><ul><li>Attribut welches zur eindeutigen Identifizierung ei...
Beziehungen <ul><li>1:1 Beziehung </li></ul><ul><ul><li>Jeder Entity des einen Entity-Typs ist eine Entiy eines anderen En...
<ul><li>Entwerfen und diskutieren Sie gemeinsam ein konzeptionelles Modell für eine Datenbank zur Projektverwaltung in ein...
Das relationale Datenmodell <ul><li>Zur Abbildung des konzeptionellen Modells in eine Datenbank </li></ul><ul><li>Wird von...
Überführung des ER-Modells in relationales Datenbankschema <ul><li>Entity-Typen </li></ul><ul><ul><li>Jeder Entity-Typ wir...
Beziehungen zwischen Tabellen in Access
Datenbankanomalien <ul><li>Einfüge-Anomalie </li></ul><ul><li>Lösch-Anomalie </li></ul><ul><li>Änderungsanomalie </li></ul...
Herstellen der Normalformen
Datenbank-Abfragesprache - SQL <ul><li>SQL -> Structured Query Language </li></ul><ul><li>seit 1986 SQL ANSI - Standard </...
Bestandteile von SQL <ul><li>Angaben der Spalten, die in die Ergebnistabelle übernommen werden </li></ul><ul><ul><ul><li>S...
Einfache  SELECT - Anweisung <ul><li>Syntax: </li></ul><ul><ul><ul><li>SELECT [DISTINCT] {*|<ausdruck-1>} [,...] FROM <tab...
SELECT- Anweisung <ul><li>Beispiele: </li></ul><ul><ul><ul><li>Ausgabe der gesammten Mitarbeiter-Tabelle SELECT * FROM Mit...
WHERE -Klausel <ul><li>SELECT ... </li></ul><ul><ul><ul><li>WHERE <bedingung> </li></ul></ul></ul><ul><li>Erläuterung </li...
<ul><li>IN-Operator </li></ul><ul><ul><li>SELECT * FROM mitarbeiter WHERE nachname IN (‘Meyer’,’Schulze’,’Lehmann’); </li>...
Aggregationsfunktionen <ul><li>MIN(<spalten-name>) Minimum </li></ul><ul><ul><li>SELECT MIN(auftragsvolumen) FROM projekte...
Nächste SlideShare
Wird geladen in …5
×

Relationale Datenbanken Access

4.050 Aufrufe

Veröffentlicht am

Veröffentlicht in: Bildung, Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
4.050
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
15
Aktionen
Geteilt
0
Downloads
31
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Relationale Datenbanken Access

  1. 1. Grundlagen der Informatik Peter Micheuz, slidefinder.net machts möglich … Konzept Datenbanken Produkt (MS)ACCESS
  2. 2. Einleitung <ul><li>Datenbankmanagementsystem (DBMS) </li></ul><ul><ul><li>Programm zur Verwaltung der Datenbank </li></ul></ul><ul><ul><li>Datenbank definieren und ändern </li></ul></ul><ul><ul><li>Daten speichern und ändern </li></ul></ul><ul><ul><li>Anfragen an die Datenbank weiterleiten </li></ul></ul><ul><ul><li>Hilfsmittel für Eingabe und Präsentation </li></ul></ul><ul><ul><li>Zugriff regeln Benutzer verwalten </li></ul></ul><ul><ul><li>Transaktionen überwachen </li></ul></ul><ul><li>Was ist überhaupt eine Datenbank? </li></ul><ul><ul><li>Ansammlung von Daten in strukturierter Form </li></ul></ul><ul><ul><li>Speicherung in Datenfeldern von bestimmten Datentyp </li></ul></ul><ul><ul><li>Zusammfassung von Datenfeldern in Datensätzen </li></ul></ul><ul><ul><li>Zusammenfassung von Datensätzen in Tabellen </li></ul></ul><ul><ul><li>Verknüpfung der Tabellen über Schlüssel </li></ul></ul>
  3. 3. Unterschiedliche Sichten <ul><li>Die externe Sicht (externes Schema) </li></ul><ul><ul><li>Unterschiedliche Sicht der Anwendergruppen auf die Daten </li></ul></ul><ul><ul><li>Je nach Anwendungsinteresse unterschieden </li></ul></ul><ul><ul><li>Orientiert auf Schutz der Daten vor Mißbrauch und Fehlern z.B. braucht der Koch nur zu Wissen wieviele Mitarbeiter im Betrieb arbeiten, aber der Betriebswirt muß wissen welches Gehalt sie gerade bekommen </li></ul></ul><ul><li>Die logische Gesamtsicht (konzeptuelles Schema) </li></ul><ul><ul><li>unabhängig von der EDV-spezifischen Darstellung </li></ul></ul><ul><ul><li>Beschreibung der Objekte in der Datenbank </li></ul></ul><ul><ul><li>Beschreibung der gegenseitigen Beziehungen </li></ul></ul><ul><ul><li>Besonders wichtig für den Datenbankentwurf </li></ul></ul><ul><li>Die interne Sicht (internes Schema) </li></ul><ul><ul><li>Den Anwendern i.d.R. verborgen </li></ul></ul><ul><ul><li>EDV-spezifische Organisation der Daten auf den Speichermedien des Datenbanksystems </li></ul></ul><ul><ul><li>Systemspezifische Methoden und Organisation des Zugriffs auf die Daten </li></ul></ul>
  4. 4. Das Entity-Relationship-Modell (konzeptionelles Schema) <ul><li>Basiskonstrukte des ER-Modell </li></ul><ul><ul><li>Entitys </li></ul></ul><ul><ul><ul><li>Abgrenzbares Objektder realen Welt z.B. der </li></ul></ul></ul><ul><ul><ul><li>Mitarbeiter “Schröder”, das Geschäftshaus </li></ul></ul></ul><ul><ul><ul><li>“ Rose”, eine Adresse, Urbanprojekt xy </li></ul></ul></ul><ul><ul><li>Entity-Typen </li></ul></ul><ul><ul><ul><li>Menge aller Entitys, die die gleichen Eigenschaften haben </li></ul></ul></ul><ul><ul><ul><li>z.B. Personen, Gebäude, Adressen, Projekte </li></ul></ul></ul><ul><ul><li>Beziehungen und Beziehungstypen </li></ul></ul><ul><ul><ul><li>Beziehungen zwischen Entitys oder Entity-Typen </li></ul></ul></ul><ul><ul><ul><li>z.B. ist die Beziehung zwischen “Schröder” und Geschäftshaus “Rose”: </li></ul></ul></ul><ul><ul><ul><li>“ arbeitet in” und Gebäude “haben” eine Adresse stellt einen </li></ul></ul></ul><ul><ul><ul><li>Beziehungstyp dar </li></ul></ul></ul><ul><ul><li>Attribute </li></ul></ul><ul><ul><ul><li>Eigenschaften, die jedem {Entity|Beziehung} desselben {Entity|Beziehungs} -Typs </li></ul></ul></ul><ul><ul><ul><li>zukommen z.B. ist das Gehalt ein Attribut von einem Mitarbeiter und das Ein- </li></ul></ul></ul><ul><ul><ul><li>stellungsdatum ein Attribut der Beziehung zwischen dem Mitarbeiter und dem </li></ul></ul></ul><ul><ul><ul><li>Unternehmen </li></ul></ul></ul>Das ER-Modell analysiert die Beziehungen unterschiedlicher Typen von Objekten der Realwelt und hält sie für eine konzeptionellen Sicht fest.
  5. 5. Schlüssel und Primärschlüssel <ul><li>Schlüssel </li></ul><ul><ul><li>Attribut welches zur eindeutigen Identifizierung einer Entity von einem Entity-Typ dient z.B. Personalausweisnummer, Mitarbeiternummer </li></ul></ul><ul><ul><li>Darf nur einmal für einen {Entity|Beziehungs}-Typ vorkommen </li></ul></ul><ul><li>Primärschlüssel </li></ul><ul><ul><li>Bei vorkommen mehrerer Schlüssel wird einer als Primärschlüssel festgelegt </li></ul></ul><ul><li>Fremdschlüssel </li></ul><ul><ul><li>Attribut einer {Entity|Beziehung}, welches ein Primärschlüssel einer {Entity|Beziehung} einer anderen {Entity|Beziehungs}-Typ darstellt </li></ul></ul>
  6. 6. Beziehungen <ul><li>1:1 Beziehung </li></ul><ul><ul><li>Jeder Entity des einen Entity-Typs ist eine Entiy eines anderen Entity-Typs zugeordnet und umgekehrt </li></ul></ul><ul><ul><li>z.B. Person-Mitarbeiter (Jede Person kann nur ein Mitarbeiter sein und umgekehrt [anders wenn er mehr Arbeitsverhältnisse hat] ) </li></ul></ul><ul><li>1:n Beziehungen </li></ul><ul><ul><li>Jede Entity eines erste Entity-Typs ist mit beliebig vielen Entitys eines zweiten Entity-Typs zugeordnet. Jedoch ist jede Entity des zweiten Entity-Typs nur genau einem Entiy des ertsten Entity-Typs zugeordnet. </li></ul></ul><ul><li>n:m Beziehungen </li></ul><ul><ul><li>Jeder Entiy eines Entity-Typs sind beliebig viele Entitys eines anderen Entity-Typs zugeordnet und umgekehrt </li></ul></ul>
  7. 7. <ul><li>Entwerfen und diskutieren Sie gemeinsam ein konzeptionelles Modell für eine Datenbank zur Projektverwaltung in einem Planungsbüro! </li></ul>Welche Entity-Typen wählen Sie für die vorkommenden Objekte z.B. Personen, Mitarbeiter, Gebäude, Geschäftshaus, Projekte, Kunden und welche Attribute und Beziehungen würden Sie für ein Planungsbüro wählen?
  8. 8. Das relationale Datenmodell <ul><li>Zur Abbildung des konzeptionellen Modells in eine Datenbank </li></ul><ul><li>Wird von den meisten derzeitigen Datenmodellen in RDBMS (relationalen DBMS) unterstützt </li></ul><ul><li>{Entity|Beziehungs}-Typen aus der Realwelt werden durch Relationen modelliert </li></ul><ul><li>Jede Relation wird als Tabelle dargestellt </li></ul><ul><li>Das Ergebnis einer Abfrage an eine Datenbank stellt eine Ergebnisrelation dar </li></ul><ul><li>Datenbank-Abfragesprache -> SQL (Structured Query Language) </li></ul>
  9. 9. Überführung des ER-Modells in relationales Datenbankschema <ul><li>Entity-Typen </li></ul><ul><ul><li>Jeder Entity-Typ wird in eine Tabelle überführt </li></ul></ul><ul><ul><ul><li>Name des Typs -> Tabellenname </li></ul></ul></ul><ul><ul><ul><li>Seine Attribute -> Spalten der Tabelle </li></ul></ul></ul><ul><ul><ul><li>Die Attributnamen -> Spaltennamen </li></ul></ul></ul><ul><ul><ul><li>Entitys des Typs -> in den Zeilen der Tabelle (Inhalt) </li></ul></ul></ul><ul><li>n:m-Beziehungstypen </li></ul><ul><ul><li>Einführung einer zusätzlichen Beziehungstabelle </li></ul></ul><ul><ul><ul><li>Enthält die Primärschlüssel der verbundenen Entitys </li></ul></ul></ul><ul><ul><ul><li>Kombination daraus bildet Primärschlüssel der Beziehungstabelle </li></ul></ul></ul><ul><li>n:1-Beziehungstypen </li></ul><ul><ul><li>Keine zusätzliche Tabelle, Primärschlüssel der Tabelle auf der 1-Seite als Fremdschlüssel in der Tabelle auf der n-Seite </li></ul></ul><ul><li>1:1- Beziehungstypen </li></ul><ul><ul><li>wie 1:n Seite egal </li></ul></ul>
  10. 10. Beziehungen zwischen Tabellen in Access
  11. 11. Datenbankanomalien <ul><li>Einfüge-Anomalie </li></ul><ul><li>Lösch-Anomalie </li></ul><ul><li>Änderungsanomalie </li></ul>Normalform <ul><li>Erste Normalform </li></ul><ul><ul><li>Kein Attribut stellt eine untergeordnete Relation dar </li></ul></ul><ul><ul><li>alle Attribute enthalten nur atomare Werte </li></ul></ul><ul><li>Zweite Normalform </li></ul><ul><ul><li>In erster Normalform und zusätzlich alle Attribute sind voll funktional abhängig vom Primärschlüssel der eigenen Relation </li></ul></ul><ul><li>Dritte Normalform </li></ul><ul><ul><li>In zweiter Normalform und zusätzlich keine Abhängikteiten zwischen Nicht-Schlüsselattributen </li></ul></ul>
  12. 12. Herstellen der Normalformen
  13. 13. Datenbank-Abfragesprache - SQL <ul><li>SQL -> Structured Query Language </li></ul><ul><li>seit 1986 SQL ANSI - Standard </li></ul><ul><li>1998 SQL2 als Standard verabschiedet </li></ul><ul><li>SQL3 - Standard in Bearbeitung </li></ul><ul><li>Syntaktische Symbole: </li></ul><ul><ul><li>SCHLÜSSELWORT: Schlüsselwörter werden Groß geschieben </li></ul></ul><ul><ul><li>variable Variablen, d.h. zu ersetzende Bezeichnungen werden klein geschrieben und mit “<“ und “>” abgeschlossen </li></ul></ul><ul><ul><li>{A|B} A oder B muß angegeben werden </li></ul></ul><ul><ul><li>[A] A kann fehlen </li></ul></ul>
  14. 14. Bestandteile von SQL <ul><li>Angaben der Spalten, die in die Ergebnistabelle übernommen werden </li></ul><ul><ul><ul><li>SELECT ... </li></ul></ul></ul><ul><li>Angabe der Ausgangstabellen </li></ul><ul><ul><ul><li>FROM ... </li></ul></ul></ul><ul><li>Auswahl von Zeilen die bestimmten Bedingungen genügen </li></ul><ul><ul><ul><li>WHERE ... </li></ul></ul></ul><ul><li>Gruppierungen von Zeilen auf der Basis gleicher Werte in Spalten </li></ul><ul><ul><ul><li>GROUP BY ... </li></ul></ul></ul><ul><li>Auswahl von Gruppen, die bestimmten Bedingungen genügen </li></ul><ul><ul><ul><li>HAVING ... </li></ul></ul></ul><ul><li>Sortierung der Zeilen der Ergebnistabelle auf der Basis von Spalten </li></ul><ul><ul><ul><li>Order BY ... </li></ul></ul></ul>
  15. 15. Einfache SELECT - Anweisung <ul><li>Syntax: </li></ul><ul><ul><ul><li>SELECT [DISTINCT] {*|<ausdruck-1>} [,...] FROM <tab-name-liste> [WHERE <bedingung>]; </li></ul></ul></ul><ul><li>Erläuterung: </li></ul><ul><ul><li>DISTINCT Zeilen mit gleichen Werten werden nur einmal ausgegeben </li></ul></ul><ul><ul><li><ausdruck-1> [,...] Auswahl einzelner Spaltennamen oder Ausdrücke </li></ul></ul><ul><ul><li>ALL oder * alle Spalten der in der FROM Klausel angegebenen Tabellen </li></ul></ul><ul><ul><li><tab-name-liste> enthält die Namen einer oder mehrerer Tabellen </li></ul></ul><ul><ul><li><bedingung> eine oder mehrere Bedingungen, die die Auswahl der Zeilen aus der Tabelle bestimmen </li></ul></ul>
  16. 16. SELECT- Anweisung <ul><li>Beispiele: </li></ul><ul><ul><ul><li>Ausgabe der gesammten Mitarbeiter-Tabelle SELECT * FROM Mitarbeiter </li></ul></ul></ul><ul><ul><ul><li>Ausgabe der in Projekttabelle vorkommenden Ansprechpartner SELECT DISTINCT ansprechpartner FROM projekte </li></ul></ul></ul>
  17. 17. WHERE -Klausel <ul><li>SELECT ... </li></ul><ul><ul><ul><li>WHERE <bedingung> </li></ul></ul></ul><ul><li>Erläuterung </li></ul><ul><ul><ul><li>= gleich </li></ul></ul></ul><ul><ul><ul><li><> oder != ungleich </li></ul></ul></ul><ul><ul><ul><li>> größer als </li></ul></ul></ul><ul><ul><ul><li>< kleiner als </li></ul></ul></ul><ul><ul><ul><li>>= größer gleich </li></ul></ul></ul><ul><ul><ul><li><= kleiner gleich </li></ul></ul></ul><ul><ul><ul><li>!> nicht größer als </li></ul></ul></ul><ul><ul><ul><li>!< nicht kleiner als </li></ul></ul></ul><ul><li>Syntax </li></ul><ul><ul><li>[NOT] <bedingung-1> {AND|OR} [NOT] <bedingung-2> </li></ul></ul><ul><li>Erklärung </li></ul><ul><ul><li>AND Konjunktion (logisches UND) </li></ul></ul><ul><ul><li>OR Disjunktion (logisches ODER) </li></ul></ul><ul><ul><li>NOT Negation </li></ul></ul><ul><li>Prioritäten können durch Klammern gesetzt werden </li></ul><ul><li>Beispiel </li></ul><ul><ul><ul><li>SELECT nachname FROM Mitarbeiter WHERE alter >= 40 AND geschlaecht = ‘männlich’; </li></ul></ul></ul>
  18. 18. <ul><li>IN-Operator </li></ul><ul><ul><li>SELECT * FROM mitarbeiter WHERE nachname IN (‘Meyer’,’Schulze’,’Lehmann’); </li></ul></ul><ul><li>BETWEEN-Operator </li></ul><ul><ul><li>SELECT * FROM projekte WHERE auftragsvolumen BETWEEN 15000 AND 30000; </li></ul></ul><ul><li>LIKE-Operator </li></ul><ul><ul><li>SELECT * FROM mitarbeiter WHERE nachname NOT LIKE ‘Mustermann’; </li></ul></ul><ul><li>NULL-Operator </li></ul><ul><ul><li>SELECT * FROM mitarbeiter WHERE email IS NOT NULL; </li></ul></ul>Weitere Operatoren der WHERE -Klausel
  19. 19. Aggregationsfunktionen <ul><li>MIN(<spalten-name>) Minimum </li></ul><ul><ul><li>SELECT MIN(auftragsvolumen) FROM projekte </li></ul></ul><ul><li>MAX(<spalten-name>) Maximum </li></ul><ul><ul><li>SELECT MAX(auftragsvolumen) FROM projekte </li></ul></ul><ul><li>SUM([DISTINCT] <spalten-name>) Summierung </li></ul><ul><ul><li>SELECT SUM(auftragsvolumen) FROM projekte </li></ul></ul><ul><li>AVG([DISTINCT] <spalten-name>) arithmetisches Mittel </li></ul><ul><ul><li>SELECT AVG(alter) FROM mitarbeiter </li></ul></ul><ul><li>COUNT({[DISTINCT] <spalten-name>|*}) Zählungsfunktion </li></ul><ul><ul><li>SELECT COUNT(auftrag_id) FROM auftraege WHERE begin <= <heute> AND ende >= <heute> </li></ul></ul>

×