DBS (2. Semester) Erben Seite 1 von 5 1. Überblick Listen in Excel KEINE Redundanzfreiheit (Vermeidung mehrfachen Speicherns von Daten) KEINE Verknüpfungen von Tabellen nur kleine Datenmengen KEINE Schutz- und Sicherheitsfunktionen Datenbanken redundanzfreie Speicherung von Daten verknüpfte Tabellen DatenBankSystem (DBS) aus DatenBankManagementSystem (DBMS) DatenBank (DB) DBMS = Management Programmsystem Regelung des Datenzugriffs kurze Zugriffszeiten flexible Möglichkeiten der Verknüpfung von Daten Werkzeuge zur Auswertung, Analyse, Präsentation von Daten Vielfachzugriff durch unterschiedliche Benutzer Kontrolle der Zugriffsrechte ETC Anwendungsgebiete Verwaltung großer Datenmengen Verfügung durch mehrere Benutzer z.B. Buchungssysteme, Lagerverwaltungssysteme, Dokumentenverwaltungssysteme wichtigsten Anforderungen Verwaltung großer Datenmengen (im Giga-/Terabyte-Bereich ) Redundanzfreiheit (kein mehrfaches Speichern gleicher Information) Gewährleistung der Datenintegrität (stets widerspruchsfreier Daten) Unabhängigkeit des Speicherformats vom Anwendungsprogramm kurze Zeiten für Abfrage und Änderung des Datenbestands Schutz vor unbefugtem Zugriff auf Daten Ausfallsicherheit (Daten nach Systemausfall erhalten) Mehrbenutzerbetrieb hohe Verfügbarkeit Skalierbarkeit (Anpassbarkeit an Größe und Leistungsanforderung) Unterschiede zu Dateisystemen hohe Redundanzen Dadurch Datenpflege fehleranfällig (Änderungen Inkonsistenzen) keine Mehrbenutzer-Synchronisation keine automatische Sicherung bei Systemabstürzen enge Abhängigkeiten zwischen Programmen und Dateien ineffizienter Zugriff bei großen Datenmengen Arten der Nutzung Direkte Nutzung Nutzung über Anwendungsprogramm (mit Schnittstelle) DBS (2. Semester) Erben Seite 2 von 5 Zugriff auf Daten Datenbanksprachen professionelle Benutzer Suchen und Ändern von Datensätzen (FIND, ERASE ...) Abfragesprachen (Query Languages) Benutzer ohne Kenntnisse Abrage von Daten, Generieren von Berichten z. B. SQL (Structured Query Language) SELECT FROM WHERE Datenbankmodelle Hierarchische Datenbank Baumstruktur – übergeordnete Datensätze enthalten mehrere Untergeordnete Suchanfragen nur „von oben nach unten“ möglich Relationale Datenbank Daten in Tabellen Beziehungen zwischen Tabellen Suchen in „alle Richtungen“ in allen Tabellen Dreischichtenmodell interne Schicht physikalische Speicherung, Datenorganisation, Zugriffspfade konzeptionelle Schicht logische Sicht der Gesamtheit aller Daten und ihrer Beziehungen extere Schicht externe Sichten, Views – Sicht eines Benutzers (Zugriffsrechte...) 2. Grundbegriffe zu relationalen Datenbanken Entities – Entitäten individuelles und identifizierbares Exemplar eines Objekts, einer Person, eines Begriffes... Beispiele: • die Leiterin des Studiengangs MK/DM an der BA Ravensburg • das Auto mit dem amtlichen Kennzeichen KN-A 6360 Attribute Charakterisierung und Identifizierung mit Namen und Wert (z.B. Vorname: Larissa, Nachname: Erben Entities mit gleichen Attributen werden unter einem Entitytyp zusammengefasst z.B. Entitityp: Student aus Attributen: Name, Vorname, Matrikelnr. etc. Tabelle (Relation) = 2dimensionale Darstellung eines Entitytyps 1 Entity = 1 Tupel oder 1 Datensatz Primärschlüssel jede Tabelle 1 Primärschlüssel eindeutige Identifizierung jedes Tupels (z.B. Matrikelnr.) z.B. auch zusammengesetzter Primärschlüssel (MatrNr+PrüfungsNr Note) Sekundärschlüssel (Indexe) zur Sortierung nicht nach Primärschlüssel (z.B. nicht MatrNr sonder nach Name) Beziehung Verknüpfung von Entitäten (RH studiert Digitale Medien) Beziehungstyp (studiert, bestellt) DBS (2. Semester) Erben Seite 3 von 5 Kardinalität von Beziehungstypen 1:n studiert: 1 Student + 1 Studiengang aber 1 Studiengang + VIELE Studenten Umsetzung: 2 Tabellen (Student+Studiengang) studiert=Fremdschlüssel mit Verweis auf Primärschlüssel in anderer Tabelle m:n bestellt: 1 Kunde + VIELE Artikel und 1 Artikel + VIELE Kunden Umsetzung: 3 Tabellen (Kunde, Bestellungen, Artikel) Primärschlüssel in Bestellungen aus Fremdschlüsseln KdNr. und ArtNr. 3. Datenbankentwurf Bedarfsanalyse welche Informationen? welche Gegenstände, Begriffe, Eigenschaften? Konzeptueller Entwurf genaue Beschreibung der Daten, Attribute und Beziehungen projektierter Anwendungsbereich (die „Mini-Welt“) wird strukturiert und modelliert aus Anwendersicht unabhängig vom späteren Datenbanksystem Standard = Entity-Relationship-Modell (ERM) Gegenstände und Beziehungen werden abstrahiert. Darstellung durch Entity-Relationship-Diagramme reines Beschreibungsmodell mit graphischer Notation Logischer Entwurf Abbildung des konzeptionellen Entwurfs auf rechnergestützt interpretierbares Modell Transformation in logisches DBModell (hierarchisch/ relational ...) relational in Tabellen, Verknüpfungen, Primärschlüssel, Indexe etc. vor allem aber Normalisierung zur Vermeidung von Redundanzen Normalisierung 1. Normalform = Werte der Attribute elementar 2. Normalform = zur Identifizierung jedes Nichtschlüsselfeldes alle Attribute des Primärschlüssels notwendig 3. Normalform = kein Nichtschlüsselfeld von anderem Nichtschlüsselfeld abhängig ist Indizierung schnellerer Zugriff auf Datensätze Verwendung von Feldern, in denen häufig gesucht wird / nach denen häufig sortiert wird mit Duplikaten (identische Einträge erlaubt) ohne Duplikate (eindeutig; im Primärschlüssel) Referenzielle Integrität Fremdschlüssel in abhängiger Relation = Primärschlüssel in Mutterrelation Integritätswahrung beim Löschen und Ändern von Tupeln entweder Löschverbot oder Löschen von abhängigen Sätzen (kaskadierendes Löschen) DBS (2. Semester) Erben Seite 4 von 5 entweder Änderungsverbot oder Weitergabe von Änderungen an abhängige Tabellen in Access eigene Felder für Verbot+Änderung+Löschen 4. Relationenalgebra und SQL-Abfragen Relation z.B. als Tabelle darstellbar Menge von Tupeln keine zwei Tupel identisch Reihenfolge unwichtig Relationenalgebra aus vorhandenen Relationen werden neue erzeugt: Selektion (Auswahl von Tupeln aus einer Relation) Projektion (Beschränkung auf ausgewählte Attribute) (Inner) Join (Verbindung mehrerer Relationen über gemeinsame Attribute) Datenbankabfragesprache SQL Structured Query Language SQL in 1970ern von IBM entwickelt 3 Sprachelemente: DDL (Data Definiton Language) (Erstellen von Datenbanken etc.) DML (Data Manipulation Language) (Löschen, Ändern von Datensätzen) DQL (Data Query Language) (Abfrage von Daten) SELECT-Anweisung SELECT Angabe der gewünschten Spalten FROM Angabe der zu verknüpfenden Tabellen [ ORDER BY ] Sortierfolge der Tupel in der Ergebnistabelle [ WHERE ] Selektionsbedingung für Tupel [ GROUP BY ] Gruppenbildung bei gleichen Werten spaltenliste DISTINCT/ALL tabelle spalte DESC/ASC bedingung PLZ=“87477“ OR Ort=“Ried“ WHERE-Klausel Vergleichsoperatoren =<> WHERE Menge*Preis < 500 logische Operatoren NOT, AND, OR WHERE NOT (PLZ='23863'ANDOrt='Ried') Wertebereichsangaben BETWEEN, IN, LIKE WHERE Datum BETWEEN #4/30/2000# AND #12/31/2002# WHERE ArtikelNr IN ('K001','G002','K003') WHERE Bezeichnung LIKE '*Tee' Einfügung virtueller Spalten SELECT *, Preis*1.19 AS Bruttopreis FROM Artikel WHERE MwSt=2; SELECT Count(ArtikelNr) AS Anzahl, Sum(Preis) AS Preissumme, Avg(Preis) AS Durchschnitt, Min(Preis) AS Minimum, DBS (2. Semester) Erben Seite 5 von 5 FROM Max(Preis) AS Maximum Artikel; Select mit Gruppenbildung SELECT KundenNr, Count(KundenNr) Anzahl FROM Bestellung GROUP BY KundenNr; AS SELECT mit GROUP BY und HAVING SELECT ArtikelNr, Sum(Menge) AS Gesamtmenge FROM Position GROUP BY ArtikelNr HAVING Sum(Menge) > 8; Natural (=Inner) Join mit SELECT SELECT Name, BestellNr, Datum FROM Kunde INNER JOIN Bestellung ON Kunde.KundenNr = Bestellung.KundenNr ORDER BY Name, Datum; Outer (Left) Join mit SELECT SELECT Name, BestellNr, Datum FROM Kunde LEFT JOIN Bestellung ON Kunde.KundenNr = Bestellung.KundenNr ORDER BY Name, Datum; Auch Kunden, zu denen keine Bestellungen existieren, werden angezeigt. Unterabfragen (Verschachtelung) SELECT * FROM Kunde WHERE Kunde.KundenNr IN ( SELECT Bestellung.KundenNr FROM Bestellung ); SELECT KundenNr, Name FROM Kunde WHERE NOT EXISTS (SELECT KundenNr FROM Bestellung WHERE Kunde.KundenNr = Bestellung.KundenNr );