19
Peter Micheuz, slidefinder.net machts möglich … Grundlagen der Informatik Konzept Datenbanken Produkt (MS)ACCESS

Relationale Datenbanken Access

Embed Size (px)

Citation preview

Page 1: Relationale Datenbanken Access

Peter Micheuz, slidefinder.net machts möglich …

Grundlagen der Informatik

Konzept Datenbanken

Produkt (MS)ACCESS

Page 2: Relationale Datenbanken Access

2

Einleitung

Datenbankmanagementsystem (DBMS)

– Programm zur Verwaltung der Datenbank– Datenbank definieren und ändern– Daten speichern und ändern– Anfragen an die Datenbank weiterleiten– Hilfsmittel für Eingabe und Präsentation– Zugriff regeln Benutzer verwalten– Transaktionen überwachen

Was ist überhaupt eine Datenbank?– Ansammlung von Daten in strukturierter Form– Speicherung in Datenfeldern von bestimmten Datentyp– Zusammfassung von Datenfeldern in Datensätzen– Zusammenfassung von Datensätzen in Tabellen– Verknüpfung der Tabellen über Schlüssel

Page 3: Relationale Datenbanken Access

3

Unterschiedliche Sichten Die externe Sicht (externes Schema)

– Unterschiedliche Sicht der Anwendergruppen auf die Daten– Je nach Anwendungsinteresse unterschieden– 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

Die logische Gesamtsicht (konzeptuelles Schema)– unabhängig von der EDV-spezifischen Darstellung– Beschreibung der Objekte in der Datenbank– Beschreibung der gegenseitigen Beziehungen– Besonders wichtig für den Datenbankentwurf

Die interne Sicht (internes Schema)– Den Anwendern i.d.R. verborgen– EDV-spezifische Organisation der Daten auf den Speichermedien des

Datenbanksystems– Systemspezifische Methoden und Organisation des Zugriffs auf die Daten

Page 4: Relationale Datenbanken Access

4

Das Entity-Relationship-Modell (konzeptionelles Schema)

Basiskonstrukte des ER-Modell– Entitys

Abgrenzbares Objektder realen Welt z.B. derMitarbeiter “Schröder”, das Geschäftshaus“Rose”, eine Adresse, Urbanprojekt xy

– Entity-TypenMenge aller Entitys, die die gleichen Eigenschaften habenz.B. Personen, Gebäude, Adressen, Projekte

– Beziehungen und BeziehungstypenBeziehungen zwischen Entitys oder Entity-Typenz.B. ist die Beziehung zwischen “Schröder” und Geschäftshaus “Rose”:“arbeitet in” und Gebäude “haben” eine Adresse stellt einenBeziehungstyp dar

– AttributeEigenschaften, die jedem {Entity|Beziehung} desselben {Entity|Beziehungs}

-Typszukommen z.B. ist das Gehalt ein Attribut von einem Mitarbeiter und das Ein-stellungsdatum ein Attribut der Beziehung zwischen dem Mitarbeiter und

demUnternehmen

Das ER-Modell analysiert die Beziehungen unterschiedlicher Typen von Objekten der Realwelt und hält sie für eine konzeptionellen Sicht fest.

Page 5: Relationale Datenbanken Access

5

Schlüssel und Primärschlüssel Schlüssel

– Attribut welches zur eindeutigen Identifizierung einer Entity von einem Entity-Typ dient z.B. Personalausweisnummer, Mitarbeiternummer

– Darf nur einmal für einen {Entity|Beziehungs}-Typ vorkommen

Primärschlüssel– Bei vorkommen mehrerer Schlüssel wird einer als Primärschlüssel

festgelegt

Fremdschlüssel– Attribut einer {Entity|Beziehung}, welches ein Primärschlüssel einer

{Entity|Beziehung} einer anderen {Entity|Beziehungs}-Typ darstellt

Page 6: Relationale Datenbanken Access

6

Beziehungen

1:1 Beziehung– Jeder Entity des einen Entity-Typs ist eine Entiy eines anderen Entity-

Typs zugeordnet und umgekehrt– z.B. Person-Mitarbeiter (Jede Person kann nur ein Mitarbeiter sein und

umgekehrt [anders wenn er mehr Arbeitsverhältnisse hat])

1:n Beziehungen– 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.

n:m Beziehungen– Jeder Entiy eines Entity-Typs sind beliebig viele Entitys eines anderen

Entity-Typs zugeordnet und umgekehrt

Page 7: Relationale Datenbanken Access

7

Entwerfen und diskutieren Sie gemeinsam ein konzeptionelles Modell für eine Datenbank zur Projektverwaltung in einem Planungsbüro!

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?

Page 8: Relationale Datenbanken Access

8

Das relationale Datenmodell

Zur Abbildung des konzeptionellen Modells in eine Datenbank

Wird von den meisten derzeitigen Datenmodellen in RDBMS (relationalen DBMS) unterstützt

{Entity|Beziehungs}-Typen aus der Realwelt werden durch Relationen modelliert

Jede Relation wird als Tabelle dargestellt Das Ergebnis einer Abfrage an eine Datenbank stellt eine

Ergebnisrelation dar Datenbank-Abfragesprache -> SQL (Structured Query

Language)

Page 9: Relationale Datenbanken Access

9

Überführung des ER-Modells inrelationales Datenbankschema

Entity-Typen– Jeder Entity-Typ wird in eine Tabelle überführt

Name des Typs -> TabellennameSeine Attribute -> Spalten der TabelleDie Attributnamen -> SpaltennamenEntitys des Typs -> in den Zeilen der Tabelle (Inhalt)

n:m-Beziehungstypen– Einführung einer zusätzlichen Beziehungstabelle

Enthält die Primärschlüssel der verbundenen EntitysKombination daraus bildet Primärschlüssel der

Beziehungstabelle

n:1-Beziehungstypen– Keine zusätzliche Tabelle, Primärschlüssel der Tabelle auf der 1-Seite

als Fremdschlüssel in der Tabelle auf der n-Seite

1:1- Beziehungstypen– wie 1:n Seite egal

Page 10: Relationale Datenbanken Access

10

Beziehungen zwischen Tabellen in Access

Page 11: Relationale Datenbanken Access

11

Datenbankanomalien

Einfüge-Anomalie Lösch-Anomalie Änderungsanomalie

Normalform Erste Normalform

– Kein Attribut stellt eine untergeordnete Relation dar– alle Attribute enthalten nur atomare Werte

Zweite Normalform– In erster Normalform und zusätzlich alle Attribute sind voll

funktional abhängig vom Primärschlüssel der eigenen Relation

Dritte Normalform– In zweiter Normalform und zusätzlich keine Abhängikteiten

zwischen Nicht-Schlüsselattributen

Page 12: Relationale Datenbanken Access

12

Herstellen der Normalformen

Name Vorname Gehalt ProjektGomer Rolf 2541 1-1999, 2-1999Romer Werner 2400 1-1999, 1-2001,4-2001

Name Vorname Gehalt Projekt AuftragsvolumenGomer Rolf 2541 1-1999 12500Gomer Rolf 2541 2-1999 25000Romer Werner 2400 1-1999 100000Romer Werner 2400 1-2001 13500Romer Werner 2400 4-2001 25000

Person_ID Name Vorname Gehalt1 Gomer Rolf 25412 Romer Werner 2400

Personen Projekt_nr Auftragsvolumen1-1999 125002-1999 250001-2001 1000002-2001 135003-2001 20004-2001 25000

Projekte

Person_ID Projekt_ID1 1-19991 2-19992 1-19992 1-20012 4-2001

Personen2Projekte

Page 13: Relationale Datenbanken Access

13

Datenbank-Abfragesprache - SQL

SQL -> Structured Query Language seit 1986 SQL ANSI - Standard 1998 SQL2 als Standard verabschiedet SQL3 - Standard in Bearbeitung

Syntaktische Symbole:SCHLÜSSELWORT: Schlüsselwörter werden Groß geschiebenvariable Variablen, d.h. zu ersetzende Bezeichnungen

werden klein geschrieben und mit “<“ und “>” abgeschlossen

{A|B} A oder B muß angegeben werden[A] A kann fehlen

Page 14: Relationale Datenbanken Access

14

Bestandteile von SQL

Angaben der Spalten, die in die Ergebnistabelle übernommen werden

SELECT ... Angabe der Ausgangstabellen

FROM ... Auswahl von Zeilen die bestimmten Bedingungen genügen

WHERE ... Gruppierungen von Zeilen auf der Basis gleicher Werte in

SpaltenGROUP BY ...

Auswahl von Gruppen, die bestimmten Bedingungen genügenHAVING ...

Sortierung der Zeilen der Ergebnistabelle auf der Basis von Spalten

Order BY ...

Page 15: Relationale Datenbanken Access

15

Einfache SELECT- Anweisung

Syntax:SELECT [DISTINCT]{*|<ausdruck-1>} [,...]FROM <tab-name-liste>[WHERE <bedingung>];

Erläuterung:DISTINCT Zeilen mit gleichen Werten werden nur

einmal ausgegeben<ausdruck-1> [,...] Auswahl einzelner Spaltennamen

oder AusdrückeALL oder * alle Spalten der in der FROM Klausel

angegebenen Tabellen<tab-name-liste> enthält die Namen einer oder mehrerer

Tabellen<bedingung> eine oder mehrere Bedingungen, die

die Auswahl der Zeilen aus der Tabelle bestimmen

Page 16: Relationale Datenbanken Access

16

SELECT-Anweisung

Beispiele:

Ausgabe der gesammten Mitarbeiter-TabelleSELECT * FROM Mitarbeiter

Ausgabe der in Projekttabelle vorkommenden AnsprechpartnerSELECT DISTINCT ansprechpartner FROM projekte

Page 17: Relationale Datenbanken Access

17

WHERE-Klausel

SELECT ...

WHERE <bedingung>

Erläuterung= gleich

<> oder != ungleich

> größer als

< kleiner als

>= größer gleich

<= kleiner gleich

!> nicht größer als

!< nicht kleiner als

Syntax[NOT] <bedingung-1> {AND|

OR}[NOT] <bedingung-2>

ErklärungAND Konjunktion (logisches

UND)

OR Disjunktion (logisches ODER)

NOT Negation

Prioritäten können durch Klammern gesetzt werden Beispiel

SELECT nachname FROM MitarbeiterWHERE alter >= 40 AND geschlaecht = ‘männlich’;

Page 18: Relationale Datenbanken Access

18

IN-OperatorSELECT * FROM mitarbeiter

WHERE nachname IN (‘Meyer’,’Schulze’,’Lehmann’);

BETWEEN-OperatorSELECT * FROM projekte

WHERE auftragsvolumen BETWEEN 15000 AND 30000;

LIKE-OperatorSELECT * FROM mitarbeiter

WHERE nachname NOT LIKE ‘Mustermann’;

NULL-OperatorSELECT * FROM mitarbeiter

WHERE email IS NOT NULL;

Weitere Operatoren der WHERE-Klausel

Page 19: Relationale Datenbanken Access

19

Aggregationsfunktionen

MIN(<spalten-name>) MinimumSELECT MIN(auftragsvolumen) FROM projekte

MAX(<spalten-name>) MaximumSELECT MAX(auftragsvolumen) FROM projekte

SUM([DISTINCT] <spalten-name>) SummierungSELECT SUM(auftragsvolumen) FROM projekte

AVG([DISTINCT] <spalten-name>) arithmetisches MittelSELECT AVG(alter) FROM mitarbeiter

COUNT({[DISTINCT] <spalten-name>|*}) Zählungsfunktion SELECT COUNT(auftrag_id) FROM auftraege

WHERE begin <= <heute> AND ende >= <heute>