1 / 99

Datenbanksysteme am Beispiel von MICROSOFT SQL Server

Ziel. Am Ende des Workshops soll jeder Teilnehmer in der Lage sein, einen fachlichen Sachverhalt in einem logischen, relationalen Datenmodell zu beschreiben und zu lesen, ein relationales Datenmodell auf das MS SQL Sever RDBMS abzubilden, die Tools des MS SQL Servers zu kennen und mit

omer
Download Presentation

Datenbanksysteme am Beispiel von MICROSOFT SQL Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Datenbanksysteme am Beispiel von MICROSOFT SQL Server Design, Konzepte, Applikationen und neue Möglichkeiten

    2. Ziel

    3. Datenbanksysteme

    4. Konventionelle Datenverarbeitung Daten-Programm-Abhängigkeit Sehr starke Abhängigkeit, da Logik und Physik im Programm def. Physische Datenabhängigkeit Logische Datenabhängigkeit Datenzugriff wird von jedem Programm oder Anwender lokal gesteuert keine zentrale Koordination möglich Datenredundanz Jedes Programm oder Anwender strukturiert die Daten nach seinen Belangen Datenkonsistenz redundante Daten müssen doppelt gepflegt werden

    5. Konventionelle Datenverarbeitung - Beispiele

    6. Konventionelle Datenverarbeitung

    7. Datenbanksystem Eine Datenbank repräsentiert den gesamten Bestand an Informationen oder Daten

    8. Datenbank-Managementsystem (DBMS) Wichtigste Funktionen des DBMS Beschreibung der gespeicherten Daten Zugriffsmöglichkeiten (Prozesse) Datenschutz Physikalische Datenorganisation Mehrbenutzerbetrieb Datenintegrität Plausibilitätsprüfungen Transaktionen

    9. Merkmale eines Datenbanksystems (I) Daten-Programm-Abhängigkeit geringe Abhängigkeit, da Logik und Physik im DBMS def. Physische Änderungen -> keine Auswirkung auf Programm Logische Änderungen -> Programm muß nur geringfügig geändert werden Jedes Programm erhält seine externe Sicht auf die Daten Die Aufbereitung ein und der selben Daten in den externen Sichten kann sehr flexibel erfolgen Datenzugriff einheitliche, zentrale Schnittstelle Zugriff von mehreren Benutzern wird synchronisiert reibungsloser Ablauf von mehreren Anwendungsprogrammen gleichzeitig Definition von unterschiedlichen externen Sichten

    10. Merkmale eines Datenbanksystems (II) Datenredundanz weitgehend redundanzfrei (je nach Design !!!) Schlüsselinformationen redundant Datenkonsistenz zentrale Verwaltung -> weniger Konsistenzprobleme Transaktionen Datensicherheit ? siehe folgende Folien

    11. Datenbanksysteme - Sicherheit Datenschutz Der Datenschutz berührt die Probleme, die den Zugriff auf vertrauliche oder schutzwürdige Daten betreffen, wie Lohnabrechnung oder geheime Produktdaten. rechtliche Aspekte moralische Aspekte Datensicherheit Die Datensicherheit umfaßt alle Vorkehrungen, sowohl technischer als auch organisatorischer Art, um Daten vor Zerstörung, Verlust, Entstellung und Mißbrauch zu sichern. Datenintegrität Zugriffsschutz

    12. Datenintegrität Unter Datenintegrität wird der Zustand verstanden, in dem die gespeicherten Daten vollkommen und korrekt mit den realen übereinstimmen. Die Vollständigkeit und Korrektheit der Daten kann durch falsche Eingabe oder durch den Ausfall von Hard- bzw. Software gefährdet werden. Eingabefehler müssen im Vorfeld durch Plausibilitätsprüfungen vermieden werden. Bereits entstandene Fehler müssen mit geringem Aufwand beseitigt werden können (Recovery). Der Mehrbenutzerbetrieb muss durch Sperren (Locking) sicherstellen, dass das selbe Datum nicht von zwei Benutzern gleichzeitig bearbeitet wird.

    13. Datenintegrität: Plausibilitätsprüfungen Feldbedingungen Eindeutigkeit des Primärschlüssels Prüfung von Feldinhalten gegen Domänen (Wertebereiche) Logische / Funktionale Abhängigkeiten Referentielle Integrität Alle Schlüsselinformationen müssen beim Einfügen vorhanden sein und angegeben werden. Die Schlüsselinformationen (Primärschlüssel<-> Fremdschlüssel) müssen konsistent sein und dürfen nicht geändert werden (Cascading Update) Oft benutztes Konzept -> Trigger Trigger führen vordefinierte Aktionen (-sfolgen) aus werden aktiviert auf Tabellenebene INSERT, UPDATE oder DELETE

    14. Datenintegrität: Recovery Logische Fehler beziehen sich auf Anwendungsfehler (z.B. Daten von anderem User gesperrt) Reaktion mit Rollback-Recovery Hardwarefehler beziehen sich auf alle Anwendungsprogramme Reaktion mit Rollforward-Recovery, Transaktionsprotokoll manuell notwendig! System- oder Stromausfall bezieht sich auf alle Anwendungsprogramme Reaktion mit Auto-Recovery, Transaktionsprotokoll notwendig! Reaktion mit Rollforward-Recovery, Transaktionsprotokoll manuell notwendig!

    15. Datenintegrität: Locking Im Mehrbenutzerbetrieb wird der konkurrierende Zugriff über Sperren geregelt Die Lockingalgorithmen sind von DBMS zu DBMS unterschiedlich exclusive Locks kein Zugriff anderer Benutzer auf die gesperrten Daten shared Locks andere Benutzer haben nur lesenden auf die gesperrten Daten Die Granularität kann auf der Datenbank, Tabelle, Zeile, Attribut und DB-Seite liegen Verschiedene Strategien optimistisch pessimistisch

    16. Zugriffsschutz Ebenso wichtig wie die Datenintegrität ist die Absicherung, des gesamten Systems aber auch von Teilen des Systems, vor nicht berechtigten Anwendern. Zutrittskontrolle zu bestimmten Räumen und Rechnern Integrierte Benutzerverwaltung im DBMS (auch mit BS) Benutzerbezogene Berechtigungsvergabe auf Datenbanken, Tabellen und Spalten Funktionsbezogener Zugriffsschutz (Select, Insert, Update, Delete Berechtigungen)

    17. ??? Fragen ???

    18. Datenbanksysteme - Konzepte CODASYL (1969) Datenbankkonzept auf zwei Ebenen, unabhängig von der Programmiersprache ANSI/SPARC (1975) Datenbankkonzept auf drei Ebenen, unabhängig von Sprache und Hardware ==> hat sich als Standard für die Betrachtungsweise von Datenbanksystemen durchgesetzt

    19. ANSI/SPARC - Datenbankkonzept Dieses Konzept untergliedert sich in die Externe Ebene Hier wird eine logische Beschreibung der Daten aus der Perspektive des Benutzers durchgeführt (technikspezifisch) Konzeptuelle bzw. konzeptionelle Ebene In dieser Ebene wird aus Unternehmenssicht eine technikunabhängige, logische Beschreibung der realen Welt durchgeführt Interne Ebene Die interne oder physische Ebene beschreibt die Daten aus der Sicht der Datenbank Man spricht entsprechend dieser Ebenen von Modellen, die von den Datenbankadministratoren (DBA) entwickelt werden.

    20. ANSI/SPARC 3 Ebenen Modell

    21. ANSI/SPARC: Interne Ebene

    22. Interne Ebene / Internes Modell

    23. Datenbanksysteme - Internes Modell Hier werden zwei grundsätzliche Speicherungsformen besprochen Sequentieller Speicherungsform (kaum verwendet) Index Sequentieller Speicherungsform Das physische Datenmodell (internes Modell) legt fest, in welcher Form die Daten auf die externen Datenträger geschrieben werden und welche Zugriffsmöglichkeiten bestehen Ziel: Minimale Zugriffszeit bei optimaler Speichernutzung

    24. Sequentielle Speicherungsform Die einzelnen Sätze einer Tabelle werden physisch sequentiell gespeichert Die rein sequentielle Speicherungsform kommt allerdings selten zum Einsatz ? index-sequentielle Speicherung

    25. Index-Sequentielle Speicherungsform

    26. Index-Sequentielle Speicherungsform

    27. ANSI/SPARC : Konzeptuelle Ebene

    28. Konzeptuelle Ebene / Konzeptuelles Modell Mittelpunkt des Datenbankentwurfs -> Datenbankdesign Beschreibung aller Daten und Beziehungen zwischen ihnen Erfordert detaillierte Kenntnisse über das Unternehmen (Logik, Abläufe, Zusammenhänge) Datenschutz und Datensicherheit (Zugriffsrechte, Kennwörter, Transaktionen)

    29. ANSI/SPARC : Externe Ebene

    30. Externe Ebene / Externes Modell Verschieden Sichten auf die Daten, wie die Anwender bzw. Programme sie benötigen. Zum Erstellen muss das konzeptionelle Modell und das Anwendungsgebiet bekannt sein und welche Daten in welcher Form benötigt werden. Datenschutz und Datensicherheitsaspekte können so realisiert werden (View).

    31. Sprachen des konzeptuellen und externen Modells

    32. Aufgaben der Sprachen Aufgaben die Datenbank kreieren Tabellen erstellen Felder definieren, inkl. Datentyp, Länge und Verschlüsselung (Key) Regelung des Datenzugriffs Plausibilitätsprüfungen Transaktionsmechanismus mit Recovery Funktion Daten abfragen, einfügen, ändern und löschen Umsetzung dieser Aufgaben durch eigenständige Sprachen; für relationale Datenbanken ist das SQL Programmiersprachen;die durch die Integration der SQL Sprache die datenverarbeitenden Teile des Programms realisieren. Man spricht dann von Embedded SQL.

    33. Datenbanksysteme - Logisches Datenmodell Innerhalb der logischen Ebene im ANSI/SPARC Konzept unterscheidet man zwischen verschiedenen Datenmodellen Hierarchisches Datenmodell Netzwerk Datenmodell Relationales Datenmodell Objekt Datenmodell Mit der Festlegung auf ein bestimmtes Datenbanksystem ist das relevante Datenmodell vorgegeben SQL Server -> Relationales Modell

    34. ??? Fragen ???

    35. MS SQL Server Relationales Datenmodell

    36. Relationales Datenmodell Entwickelt von E.F. Codd, 1970 auf Basis der Relationentheorie Die Daten werden in sogenannten Tabellen (Relationen) verwaltet Tabellen bestehen aus einzelnen Datenfeldern (Attributen) Attribute definiert durch Datentypen (bzw. Domänen) Attribute werden in Spalten dargestellt Jede Tabelle kann eine oder mehrere Zeilen (Tupel) enthalten Die einzelnen Tupel (Datensätze) können über einen Schlüssel angesprochen werden Zwischen den Tabellen bestehen Beziehungen, die aber nur zur Laufzeit existieren

    37. Grundbegriffe (I)

    38. Grundbegriffe (II)

    39. Relationale Operationen

    40. Selektion

    41. Projektion

    42. Kombination Selektion/Projektion

    43. Join (I)

    44. Join (II)

    45. Union

    46. Intersect

    47. Minus

    48. Eigenschaften des Relationales Datenmodells Vorteile einfaches Datenmodell durch zweidimensionale Tabellen flexibel einheitliche Sprache (SQL, DDL, DML, DCL) Dynamische DB Definitionen und Änderungen Integrierter Systemkatalog (Dictionary) Nachteile Bei komplexen Abfragen sind SQL Statements komplex (3 NF) Bei komplexen Datenstrukturen relativ langsam

    49. Normalisierung Sinnvoller Datenaufbau durch Normalisierung Designtechnik um Relationale Datenbanken zu strukturieren Durch die Normalisierung wird ein Prozeß bzw. Informationseinheit in Tabellen zerlegt Regelsatz von E.F. Codd Legt nur die logische Datenbeschreibung fest externe Ebene konzeptuelle Ebene Zweck der Normalisierung: Vermeidung von Datenredundanz Drei sinnvolle Stufen der Normalisierung in der Praxis

    50. Normalisierung

    51. 1. Normalform (1NF)

    52. 1. Normalform Ein Primärschlüssel identifiziert eindeutig eine Zeile und kann sein einfach z.B. bei einer Tabelle Kunden die Spalte KundeNr zusammengesetzt (Gesamtschlüssel / Composite Key) z.B. in der Tabelle Bestellwesen die Spalten BestNr und ArtNr Nichtschlüssel „normale“ Attribute z.B. bei der Tabelle Bestellwesen die Spalten BestDatum, LieferNr, LieferName, ArtName, BestMenge und BestPreis

    53. 2. Normalform (2NF)

    54. 2. Normalform Tabelle Bestellungen Die Nichtschlüsselspalten BestDatum, LieferNr und LieferName sind vom Schlüsselteil BestNr, jedoch nicht vom Gesamtschlüssel abhängig. Daraus resultiert die Tabelle Bestellungen mit dem Primärschlüssel BestNr. Tabelle Bestelldaten Die Spalten BestMenge und BestPreis sind von der BestNr und ArtNr abhängig. Damit ergibt sich die Tabelle Bestelldaten. Tabelle Artikel Die Nichtschlüsselspalte ArtName ist vom Schlüsselteil ArtNr abhängig. Sie wird deshalb in eine eigene Tabelle Artikel mit der Spalte ArtNr als Primärschlüssel ausgelagert.

    55. 3. Normalform (3NF)

    56. 3. Normalform Tabelle Lieferanten Die Nichtschlüsselspalte LieferName ist ausschließlich von der Nichtschlüsselspalte LieferNr abhängig. Deshalb wird eine autonome Tabelle Lieferanten mit dem Primärschlüssel LieferNr erstellt

    57. Übung

    58. Zusammenfassung Datenbanksysteme -Konzepte Logische Modelle Interne Modelle Datenschutz und Datensicherheit Relationales Datenmodell

    59. ??? Fragen ???

    60. MS SQL Server Tools I

    61. MS SQL Server Tools I Historie SQL Server Management Studio Datenbank Verwaltung Sicherheit Interaktives Arbeiten

    62. MS SQL Server Historie Gemeinsame Basis mit Sybase bis zur Version 4.21 Fehlende deklarative refenzielle Integrität (DRI) Komplizierte Verwaltung (viele verschiedene Tools) Ab Version 6.0 unabhängig von Sybase Aber immer noch die gleiche Basis Mit DRI Einführung des Enterprise Managers zur Verwaltung Version 6.5 Neue Funktionen: Sperren von Zeilen, Internet/Intranet Unterstützung, Distributed Transaction Coordinator Version 7.0, 2000 (intern 8.0), 2005 (intern 9.0) Vollständige Neuentwicklung Skalierbarkeit (PocketPC, Desktop, Server, Cluster, …) Webfähigkeit (HTML, XML, …) Datawarehousing (Analysis Services, MDX, …)

    63. Aktuell SQL Server 2005: Management Studio

    64. Management Studio: Sicherheit

    65. Management Studio: Datenbanken

    66. Management Studio: Abfragefenster

    67. Management Studio: Abfragefenster

    68. ??? Fragen ???

    69. Wo finde ich das Management Studio

    70. Management Studio: Server registrieren

    71. Management Studio: Server registrieren

    72. ??? Fragen ???

    73. Management Studio: Neue Datenbank anlegen

    74. Management Studio: Neue Datenbank anlegen

    75. ??? Fragen ???

    76. Aufgaben Melden Sie sich mit dem Management Studio an dem SQL Server DBKURS an Registrieren Sie den Server DBKURS mit Ihrer [UserID] Legen Sie für sich eine neue Datenbank an Verwenden Sie als Namen Ihre [UserID] Öffnen Sie ein Abfragefenster in Ihrer Datenbank Führen Sie die SQL Dateien basis_daten_modell.sql aus download von der WebSite http://dbkurs Überprüfen Sie welche Tabellen es gibt Sehen Sie sich die Beschreibung der Tabellen an

    77. Basis Datenmodell

    78. MS SQL Server Die Sprache SQL

    79. SQL - Structured Query Language Mr. Codd hat bei IBM die Sprache SEQUEL entwickelt (Structured English QUery Language) - 1976 Daraus wurde dann später SQL Durch ANSI (American National Standards Institute) ANSI 1986 ? SQL 86 ANSI 1989 ? SQL 89 ANSI 1992 ? SQL 92 oder SQL2 wird bis auf wenige Ausnahmen von SQL Server 2000 unterstützt ANSI 1994 ? SQL3 wird teilweise von MS SQL Server 2000 unterstützt Mengenorientierte Sprache DDL, DCL und DML Befehle

    80. SQL - Structured Query Language

    81. Selektion

    82. Projektion

    83. Kombination Selektion/Projektion

    84. SQL (Teil I), Theorie SQL (Teil I) Select Insert Update Delete

    85. SQL - Select Anzeigen von Daten Syntax: SELECT {Spaltenname|*} (einfach) FROM {Tabellenname} Der * gibt an, dass alle Spalten einer Tabelle angezeigt werden sollen Sollen mehrere Spalten angezeigt werden, müssen die Spaltennamen in einer Aufzählung mit Komma getrennt angegeben werden.

    86. SQL - Select (sortiert) Sortier-Reihenfolgen werden durch die ORDER BY Klausel festgelegt Syntax: SELECT ma_nr, ma_vorname, ma_nachname FROM mitarbeiter ORDER BY ma_nr oder: SELECT ma_nr, ma_vorname, ma_nachname FROM mitarbeiter ORDER BY 1 DESC Aufsteigend =ASC (Standard) Absteigend = DESC

    87. SQL - Select (Bedingung) Mit der WHERE Bedingung können Sie die Selektion einer Tabelle einschränken Syntax: SELECT ma_nr, ma_vorname, ma_nachname FROM mitarbeiter WHERE ma_vorname=‘Elmar‘ oder: SELECT ma_nr, ma_vorname, ma_nachname FROM mitarbeiter WHERE ma_vorname=‘Elmar‘ AND ma_alter>20

    88. SQL - Insert (einfach) Fügt Daten in eine Tabelle ein Syntax: INSERT INTO tabellenname ([spaltenname {,spaltenname}]) VALUES (werteliste)

    89. Aufgabe Fügen Sie 5 neue Mitarbeiter in die Tabelle Mitarbeiter ein Geben Sie eine Liste aller Mitarbeiter sortiert nach Nachname aus Fügen Sie 3 Abteilungen ein (z.B.: 13: Geschäftsführung, 14: Vertrieb, 15: Entwicklung)

    90. SQL - Update (einfach) Ändert Daten in einer Tabelle Syntax: UPDATE tabellenname SET spaltenname=ausdruck [WHERE suchbedingung]

    91. Aufgaben Ordnen Sie die Mitarbeiter den einzelnen Abteilungen zu (beliebig) Die einzelnen Mitarbeiter sollen zu ihren jeweiligen Vorgesetzten zugeordnet werden (MA_MANAGER) MA 1 ist Vorgesetzter vom MA 2, MA 2 ist Vorgesetzter von MA 3. Geben Sie eine nach Nachnamen und Vornamen sortierte Liste aus

    92. SQL - Delete (einfach) Löscht Daten aus einer Tabelle Syntax: DELETE FROM tabellenname [WHERE suchbedingung]

    93. Aufgaben Löschen Sie einen Mitarbeiter Löschen Sie eine Abteilung

    94. Join (I)

    95. SQL - Join (kartesisches Produkt)

    96. Join (II)

    97. SQL - Join (einfach)

    98. Aufgaben Fügen Sie zwei neue Mitarbeiter ein (ohne Abteilung) Lassen Sie sich alle Mitarbeiter der Abteilung 13 sowie den Abteilungsnamen in der Ergebnismenge anzeigen Wie viele Mitarbeiter sind einer Abteilung zugeordnet? Lassen Sie sich alle Mitarbeiter sortiert nach Abteilungsnamen und Mitarbeiternummer ausgeben Ändern Sie einen Abteilungsnamen Lassen Sie sich alle Mitarbeiternamen und den Abteilungsnamen sortiert nach Abteilungsnamen und Mitarbeiternummer ausgeben

    99. ??? Fragen ???

More Related