990 likes | 1.49k Vues
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
E N D
1. Datenbanksysteme am Beispiel von MICROSOFT SQL Server Design, Konzepte, Applikationen und neue Mglichkeiten
2. Ziel
3. Datenbanksysteme
4. Konventionelle Datenverarbeitung Daten-Programm-Abhngigkeit
Sehr starke Abhngigkeit, da Logik und Physik im Programm def.
Physische Datenabhngigkeit
Logische Datenabhngigkeit
Datenzugriff
wird von jedem Programm oder Anwender lokal gesteuert
keine zentrale Koordination mglich
Datenredundanz
Jedes Programm oder Anwender strukturiert die Daten nach seinen Belangen
Datenkonsistenz
redundante Daten mssen doppelt gepflegt werden
5. Konventionelle Datenverarbeitung - Beispiele
6. Konventionelle Datenverarbeitung
7. Datenbanksystem Eine Datenbank reprsentiert den gesamten Bestand an Informationen oder Daten
8. Datenbank-Managementsystem (DBMS) Wichtigste Funktionen des DBMS
Beschreibung der gespeicherten Daten
Zugriffsmglichkeiten (Prozesse)
Datenschutz
Physikalische Datenorganisation
Mehrbenutzerbetrieb
Datenintegritt
Plausibilittsprfungen
Transaktionen
9. Merkmale eines Datenbanksystems (I) Daten-Programm-Abhngigkeit
geringe Abhngigkeit, da Logik und Physik im DBMS def.
Physische nderungen -> keine Auswirkung auf Programm
Logische nderungen -> Programm mu nur geringfgig gendert werden
Jedes Programm erhlt 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 !!!)
Schlsselinformationen redundant
Datenkonsistenz
zentrale Verwaltung -> weniger Konsistenzprobleme
Transaktionen
Datensicherheit
? siehe folgende Folien
11. Datenbanksysteme - Sicherheit Datenschutz
Der Datenschutz berhrt die Probleme, die den Zugriff auf vertrauliche oder schutzwrdige Daten betreffen, wie Lohnabrechnung oder geheime Produktdaten.
rechtliche Aspekte
moralische Aspekte
Datensicherheit
Die Datensicherheit umfat alle Vorkehrungen, sowohl technischer als auch organisatorischer Art, um Daten vor Zerstrung, Verlust, Entstellung und Mibrauch zu sichern.
Datenintegritt
Zugriffsschutz
12. Datenintegritt Unter Datenintegritt wird der Zustand verstanden, in dem die gespeicherten Daten vollkommen und korrekt mit den realen bereinstimmen.
Die Vollstndigkeit und Korrektheit der Daten kann durch falsche Eingabe oder durch den Ausfall von Hard- bzw. Software gefhrdet werden.
Eingabefehler mssen im Vorfeld durch Plausibilittsprfungen vermieden werden.
Bereits entstandene Fehler mssen mit geringem Aufwand beseitigt werden knnen (Recovery).
Der Mehrbenutzerbetrieb muss durch Sperren (Locking) sicherstellen, dass das selbe Datum nicht von zwei Benutzern gleichzeitig bearbeitet wird.
13. Datenintegritt: Plausibilittsprfungen Feldbedingungen
Eindeutigkeit des Primrschlssels
Prfung von Feldinhalten gegen Domnen (Wertebereiche)
Logische / Funktionale Abhngigkeiten
Referentielle Integritt
Alle Schlsselinformationen mssen beim Einfgen vorhanden sein und angegeben werden.
Die Schlsselinformationen (Primrschlssel<-> Fremdschlssel) mssen konsistent sein und drfen nicht gendert werden (Cascading Update)
Oft benutztes Konzept -> Trigger
Trigger
fhren vordefinierte Aktionen (-sfolgen) aus
werden aktiviert auf Tabellenebene
INSERT, UPDATE oder DELETE
14. Datenintegritt: 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. Datenintegritt: Locking Im Mehrbenutzerbetrieb wird der konkurrierende Zugriff ber Sperren geregelt
Die Lockingalgorithmen sind von DBMS zu DBMS unterschiedlich
exclusive Lockskein Zugriff anderer Benutzer auf die gesperrten Daten
shared Locksandere Benutzer haben nur lesenden auf die gesperrten Daten
Die Granularitt kann auf der Datenbank, Tabelle, Zeile, Attribut und DB-Seite liegen
Verschiedene Strategien
optimistisch
pessimistisch
16. Zugriffsschutz Ebenso wichtig wie die Datenintegritt ist die Absicherung, des gesamten Systems aber auch von Teilen des Systems, vor nichtberechtigten Anwendern.
Zutrittskontrolle zu bestimmten Rumen 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, unabhngig von der Programmiersprache
ANSI/SPARC (1975) Datenbankkonzept auf drei Ebenen, unabhngig von Sprache und Hardware==> hat sich als Standard fr die Betrachtungsweise von Datenbanksystemen durchgesetzt
19. ANSI/SPARC - Datenbankkonzept Dieses Konzept untergliedert sich in die
Externe EbeneHier wird eine logische Beschreibung der Daten aus der Perspektive des Benutzers durchgefhrt (technikspezifisch)
Konzeptuelle bzw. konzeptionelle EbeneIn dieser Ebene wird aus Unternehmenssicht eine technikunabhngige, logische Beschreibung der realen Welt durchgefhrt
Interne EbeneDie 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 grundstzliche Speicherungsformen besprochen
Sequentieller Speicherungsform (kaum verwendet)
Index Sequentieller Speicherungsform
Das physische Datenmodell (internes Modell) legt fest, in welcher Form die Daten auf die externen Datentrger geschrieben werden und welche Zugriffsmglichkeiten bestehen
Ziel: Minimale Zugriffszeit bei optimaler Speichernutzung
24. Sequentielle Speicherungsform Die einzelnen Stze 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, Ablufe, Zusammenhnge)
Datenschutz und Datensicherheit (Zugriffsrechte, Kennwrter, Transaktionen)
29. ANSI/SPARC : Externe Ebene
30. Externe Ebene / Externes Modell Verschieden Sichten auf die Daten, wie die Anwender bzw. Programme sie bentigen.
Zum Erstellen muss das konzeptionelle Modell und das Anwendungsgebiet bekannt sein und welche Daten in welcher Form bentigt werden.
Datenschutz und Datensicherheitsaspekte knnen 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, Lnge und Verschlsselung (Key)
Regelung des Datenzugriffs
Plausibilittsprfungen
Transaktionsmechanismus mit Recovery Funktion
Daten abfragen, einfgen, ndern und lschen
Umsetzung dieser Aufgaben durch
eigenstndige Sprachen; fr 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. Domnen)
Attribute werden in Spalten dargestellt
Jede Tabelle kann eine oder mehrere Zeilen (Tupel) enthalten
Die einzelnen Tupel (Datenstze) knnen ber einen Schlssel 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 Primrschlssel identifiziert eindeutig eine Zeile und kann sein
einfach
z.B. bei einer Tabelle Kunden die Spalte KundeNr
zusammengesetzt (Gesamtschlssel / Composite Key)
z.B. in der Tabelle Bestellwesen die Spalten BestNr und ArtNr
Nichtschlssel
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 Nichtschlsselspalten BestDatum, LieferNr und LieferName sind vom Schlsselteil BestNr, jedoch nicht vom Gesamtschlssel abhngig. Daraus resultiert die Tabelle Bestellungen mit dem Primrschlssel BestNr.
Tabelle Bestelldaten
Die Spalten BestMenge und BestPreis sind von der BestNr und ArtNr abhngig. Damit ergibt sich die Tabelle Bestelldaten.
Tabelle Artikel
Die Nichtschlsselspalte ArtName ist vom Schlsselteil ArtNr abhngig. Sie wird deshalb in eine eigene Tabelle Artikel mit der Spalte ArtNr als Primrschlssel ausgelagert.
55. 3. Normalform (3NF)
56. 3. Normalform Tabelle Lieferanten
Die Nichtschlsselspalte LieferName ist ausschlielich von der Nichtschlsselspalte LieferNr abhngig. Deshalb wird eine autonome Tabelle Lieferanten mit dem Primrschlssel 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 Integritt (DRI)
Komplizierte Verwaltung (viele verschiedene Tools)
Ab Version 6.0 unabhngig von Sybase
Aber immer noch die gleiche Basis
Mit DRI
Einfhrung des Enterprise Managers zur Verwaltung
Version 6.5
Neue Funktionen: Sperren von Zeilen, Internet/Intranet Untersttzung, Distributed Transaction Coordinator
Version 7.0, 2000 (intern 8.0), 2005 (intern 9.0)
Vollstndige Neuentwicklung
Skalierbarkeit (PocketPC, Desktop, Server, Cluster, )
Webfhigkeit (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 anRegistrieren Sie den Server DBKURS mit Ihrer [UserID]
Legen Sie fr sich eine neue Datenbank anVerwenden Sie als Namen Ihre [UserID]
ffnen Sie ein Abfragefenster in Ihrer Datenbank
Fhren Sie die SQL Dateien basis_daten_modell.sql ausdownload von der WebSite http://dbkurs
berprfen 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 spter 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 untersttzt
ANSI 1994 ? SQL3wird teilweise von MS SQL Server 2000 untersttzt
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 sollenSollen mehrere Spalten angezeigt werden, mssen die Spaltennamen in einer Aufzhlung 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 knnen Sie die Selektion einer Tabelle einschrnken
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) Fgt Daten in eine Tabelle ein
Syntax: INSERT INTO tabellenname ([spaltenname {,spaltenname}]) VALUES (werteliste)
89. Aufgabe Fgen Sie 5 neue Mitarbeiter in die Tabelle Mitarbeiter ein
Geben Sie eine Liste aller Mitarbeiter sortiert nach Nachname aus
Fgen Sie 3 Abteilungen ein(z.B.: 13: Geschftsfhrung, 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) Lscht Daten aus einer Tabelle
Syntax: DELETE FROM tabellenname [WHERE suchbedingung]
93. Aufgaben Lschen Sie einen Mitarbeiter
Lschen Sie eine Abteilung
94. Join (I)
95. SQL - Join (kartesisches Produkt)
96. Join (II)
97. SQL - Join (einfach)
98. Aufgaben Fgen 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 ???