MSSQL-Script Datei - moodle@bztf

Werbung
BZT Frauenfeld
Modul 141 : Datenbanksystem in
Betrieb nehmen
Unterrichtsmaterial
Christian Inauen
BZT Frauenfeld
[email protected]
BZT Frauenfeld
Juli 2015
Abstract
Das Modul 141 findet jeweils im HS des 3ten Lehrjahres statt. Im Moment
werden folgende Technologien eingesetzt:
• MySQL Version 5.6 auf einem Ubuntu Image 14.04
• MSSQL Server 2012 auf einem Windows Server 2012
• MonogoDB auf einem Ubuntu Images 14.04
Technische Grundvoraussetzung ist eine funktionierende USB3 SSD-Disk
um die Uebungen auch zuhause bearbeiten zu können.
Inhaltsverzeichnis
Abstract
1
List of Tables
5
List of figures
6
1 Einführung MSSQL
8
1.1 Neueste Features . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.2 Komponenten des MSSQL-Server . . . . . . . . . . . . . . . . . . 10
1.3 Versionen des MSSQL-Servers . . . . . . . . . . . . . . . . . . . . 12
1.3.1 Enterprise Edition
. . . . . . . . . . . . . . . . . . . . . . 12
1.3.2 Business Intelligence . . . . . . . . . . . . . . . . . . . . . 12
1.3.3 Standard Edition . . . . . . . . . . . . . . . . . . . . . . . 12
1
1.3.4 Web Edition . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.5 Express Edition . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.6 LocalDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.7 Developer Edition . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Komponenten UM einen MSSQL-Server . . . . . . . . . . . . . . 13
2 Voraussetzungen MSSQL
2.1 Hardware
16
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Betriebssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Bedienung MSSQL
18
3.1 Das Management Studio . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Server registieren . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.2 Der Objekt-Explorer . . . . . . . . . . . . . . . . . . . . . 22
3.1.3 Der Abfrageeditor . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.4 Praxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Das Kommandozeilentool: SQLCMD . . . . . . . . . . . . . . . . 26
3.3 Der Konfigurations-Manager . . . . . . . . . . . . . . . . . . . . 27
3.4 System-Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . 28
A Datentypen in MySQL 5.6
31
A.1 Ganzzahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
A.2 Fliesskommazahlen . . . . . . . . . . . . . . . . . . . . . . . . . . 32
A.2.1 Decimal / Beschreibung . . . . . . . . . . . . . . . . . . . 32
A.3 Spezielle Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . 33
A.4 Datum und Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . 35
A.5 Zeichenketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
A.6 Räumliche Datentypen . . . . . . . . . . . . . . . . . . . . . . . . 37
B References
38
C Gruppenübung “Integrität”
39
D Übungen : ER-Modelle und Transformation
40
D.1 Vorlesungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . 40
D.2 Theorie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
D.3 Theorie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
D.4 Kardinalitäten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
D.5 Modellfirma / ERM erstellen . . . . . . . . . . . . . . . . . . . . . 42
2
D.6 Transformationsübung 1 . . . . . . . . . . . . . . . . . . . . . . . 42
D.7 Transformationsübung 2 . . . . . . . . . . . . . . . . . . . . . . . 42
D.8 Transformationsübung 3 . . . . . . . . . . . . . . . . . . . . . . . 44
E Übung: Normalisierung
45
E.1 Theorie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
E.2 Theorie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
E.3 Normalisierungsübung 1 . . . . . . . . . . . . . . . . . . . . . . . 45
E.4 Normalisierungsübung 2 . . . . . . . . . . . . . . . . . . . . . . . 46
E.5 Normalisierungsübung 3 . . . . . . . . . . . . . . . . . . . . . . . 46
E.6 Normalisierungsübung 4 . . . . . . . . . . . . . . . . . . . . . . . 46
E.7 Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
F Übung: Eigene Datenbank, von A-I
48
F.1 Beispielauftrag (oder Ihr eigenes Beispiel) . . . . . . . . . . . . 49
F.2 ERM erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
F.3 Transformieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
F.4 Normalisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
F.5 Storage Engine wählen . . . . . . . . . . . . . . . . . . . . . . . . 50
F.6 Definition / Repetition der Datentypen . . . . . . . . . . . . . . . 50
F.7 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
F.8 Integrität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
F.9 Installationsscript erstellen . . . . . . . . . . . . . . . . . . . . . 51
F.10 System-Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
F.10.1 Kontrolle der Serverdienste . . . . . . . . . . . . . . . . . 51
F.10.2 Root-Passwort . . . . . . . . . . . . . . . . . . . . . . . . . 52
F.11 Installation ausführen . . . . . . . . . . . . . . . . . . . . . . . . 52
F.12 Benutzerzugriff einschränken
. . . . . . . . . . . . . . . . . . . 52
F.12.1 Benutzer definieren . . . . . . . . . . . . . . . . . . . . . 52
F.12.2 Zugriffe einschränken / austesten . . . . . . . . . . . . . 52
F.13 Weiterführende Arbeiten / mögliche Ideen . . . . . . . . . . . . 53
F.13.1 Apache2 einrichten . . . . . . . . . . . . . . . . . . . . . . 53
F.13.2 PHP Script erstellen . . . . . . . . . . . . . . . . . . . . . . 53
F.14 Zusatz: Workbench installieren auf Ubuntu 14.04 . . . . . . . . 53
G Übung zu Performance / mysqlslap und explain
54
G.1 mysqlslap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
G.2 explain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3
H Übung zu Performance / PHP
56
H.1 PHP - Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
H.2 Sysbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
I
J
Übung : MySQL / Import und Export
58
I.1
Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
I.2
mysqldump / lokal . . . . . . . . . . . . . . . . . . . . . . . . . . 58
I.3
mysqldump / remote . . . . . . . . . . . . . . . . . . . . . . . . . 59
I.4
mysqldump / remote und ssh-gesichert . . . . . . . . . . . . . . 59
I.5
Weiterführendes : FIFO-Datei . . . . . . . . . . . . . . . . . . . . 60
Übung : Backup in MySQL
61
J.1
Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
J.2
Backup mit File-Copy . . . . . . . . . . . . . . . . . . . . . . . . . 61
J.3
Backup / Point in Time Restore . . . . . . . . . . . . . . . . . . . 62
J.4
Erweitert : Script mit mysqldump . . . . . . . . . . . . . . . . . 62
K Übung : PHP und Bilder aus einer Datenbank
63
K.1 Datenbank vorbereiten . . . . . . . . . . . . . . . . . . . . . . . . 63
K.2 Images uploaden . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
K.3 Images anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
L Übung: Datenbank importieren und exportieren
67
L.1 Import von Datenbanken (Registrierung) . . . . . . . . . . . . . 67
L.2 Bedingung der verschiedenen Zugriffsmethoden . . . . . . . . 68
L.3 Export von Datenbanken (Import und Export-Assistent) . . . . 68
M LBV Beschreibung
72
M.1 Grobbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . 72
M.2 Teil 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
M.3 Teil 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
M.4 Teil 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
N Images
76
N.1 Ubuntu 14.04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
N.2 Windows 2012 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
O Lernziele Modulnummer 141
78
O.1 Handlungsziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
P Semesterplan
81
4
List of Tables
Tabellenverzeichnis
A.1 Datentypen / Ganzzahlen . . . . . . . . . . . . . . . . . . . . . . 32
A.2 Datentypen / Fliesskommazahlen . . . . . . . . . . . . . . . . . . 32
A.3 Speicherbedarf bei einem Decimal . . . . . . . . . . . . . . . . . 33
A.4 Datentypen / Spezielle Datentypen . . . . . . . . . . . . . . . . . 35
A.5 Datentypen / Datum und Uhrzeit . . . . . . . . . . . . . . . . . . 36
A.6 Datentypen / Zeichenketten . . . . . . . . . . . . . . . . . . . . . 37
A.7 Datentypen / Räumliche Datentypen . . . . . . . . . . . . . . . . 37
P.1 Semesterplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5
List of figures
Abbildungsverzeichnis
1.1 Komponenten des MSSQL-Servers . . . . . . . . . . . . . . . . . 11
1.2 Komponenten um eine MSSQL-Datenbank . . . . . . . . . . . . 14
1.3 Werkzeuge um eine MSSQL-Datenbank . . . . . . . . . . . . . . 15
3.1 Anmeldebildschirm / Managementstudio . . . . . . . . . . . . . 20
3.2 Managementstudio . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Objektexplorer
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4 SQLCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5 SQLCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.6 Systemdatenbanken . . . . . . . . . . . . . . . . . . . . . . . . . 29
D.1 Vorlesungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . 40
D.2 Musterrechnung
. . . . . . . . . . . . . . . . . . . . . . . . . . . 42
D.3 Transformationsübung 1 . . . . . . . . . . . . . . . . . . . . . . . 43
D.4 Transformationsübung 2
. . . . . . . . . . . . . . . . . . . . . . 43
D.5 Transformationsübung 3
. . . . . . . . . . . . . . . . . . . . . . 44
E.1 Normalisierungsübung 1
. . . . . . . . . . . . . . . . . . . . . . 46
E.2 Normalisierungsübung 2
. . . . . . . . . . . . . . . . . . . . . . 46
E.3 Normalisierungsübung 3
. . . . . . . . . . . . . . . . . . . . . . 46
E.4 Normalisierungsübung 4
. . . . . . . . . . . . . . . . . . . . . . 47
E.5 Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6
L.1 Datenquelle auswählen . . . . . . . . . . . . . . . . . . . . . . . 70
L.2 Option für Export . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
L.3 Quellen wählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7
Kapitel 1
Einführung MSSQL
Nach Wikipedia:
Der Microsoft SQL Server (auch kurz MSSQLServer) ist ein relationales
Datenbankmanagementsystem von Microsoft. Microsoft SQL Server entstand aus einer Zusammenarbeit der Firmen Microsoft und Sybase Ende
der 1980er Jahre.
1989 wurde die erste Version für das von Microsoft und IBM entwickelte
Betriebssystem OS/2 veröffentlicht. Das Produkt entsprach prinzipiell dem
Sybase SQL Server 4.0 für Unix und VMS.
1992 erschien der Microsoft SQL Server 4.2 für OS/2 1.3. Im Anschluss mit
dem Release von Windows NT im Jahr 1993 erschien schon bald Microsoft
SQL Server 4.21, der anstatt auf OS/2 auf Windows NT als Betriebssystem
setzte. In dieser Zeit lockerte sich ausserdem die Kooperation zwischen
Microsoft und Sybase.
Im Jahr 1995 erschien mit Microsoft SQL Server 6.0 eine eigenständige
Weiterentwicklung der Kooperation, dem 1996 die Version 6.5 folgte. Mit
der Version 7.0, die im Jahr 1999 erschien, verabschiedete sich Microsoft
von der mit Sybase entwickelten Codebasis und brachte eine vollkommen
neue Datenbank-Engine auf den Markt. Diese war auch Basis in den
darauffolgenden Versionen SQL Server 2000 (Versionsnummer 8.0), SQL
Server 2005 (Versionsnummer 9.0), SQL Server 2008 (Versionsnummer
10.0), SQL Server 2008 R2 (Versionsnummer 10.50) und SQL Server 2012
(Versionsnummer 11.0) und SQL Server 2014 (Versionsnummer 12.0)
8
1.1
Neueste Features
SQL Server 2012
Der unter dem Codenamen Denali entwickelte SQL Server 2012 wurde am
6. März 2012 veröffentlicht. Bei den Editionen liess Microsoft die erst beim
Vorgänger eingeführte Datacenter Edition wieder wegfallen und führte
stattdessen eine neue Edition Business Intelligence ein. Die Neuerungen
oder Verbesserungen fanden in allen Bereichen des SQL Servers statt,
darunter
• im Datenbankmodul,
• dem Analyse Service,
• dem Reporting Service und
• der Replikation.
Zu den wichtigsten Änderungen bzw. Neuerungen gehören unter anderem
• Performanceoptimierung für SharePoint,
• die Hochverfügbarkeitslösung “Always On”,
• die Cloud-Lösung “Azure”,
• die Data Quality Services “DQS”,
• Contained Database und
• Columnstore Index.
Ausserdem wurde die SQL-eigene Programmierschnittstelle T-SQL um weitere Funktionen ergänzt.
SQL Server 2014
Die aktuelle Version 2014 (Codename Hekaton, freigegeben am 1.
April 2014) des SQL Servers wurde in Hinblick auf die performante
Verarbeitung grosser Datenmengen weiter optimiert, um die EchtzeitTransaktionsverarbeitung zu verbessern. Hierzu gehören die Fähigkeit,
Tabellen oder ganze Datenbanken komplett im Hauptspeicher zu
halten (In-Memory-Datenbank) sowie eine verbesserte Handhabung
spaltenbasierter Indexe.
Es ist nun auch möglich, SQL-Server-Datendateien in Azure abzulegen und
eine SQL-Server-Datenbank auf einem virtuellen Computer in Azure zu hosten.
9
1.2
Komponenten des MSSQL-Server
Der SQL Server beschränkt sich keinesfalls auf die Datenbank-Engine. SQL
Server ist mittlerweile eine komplette Produktfamilie, die sich um den Kern
schart. Damit ist der SQL Server nicht nur ein reines Datenbanksystem. Er
bietet auch Lösungen für viele Anwendungen im Datenbankumfeld.
Die Zusatzprodukte, oft unter dem Begriff Business Intelligence (BI) zusammengefasst, sind folgende Dienste:
• Integration Services: Die Integration Services (IS) sind ein umfassendes Werkzeug, um zum Beispiel Daten von A nach B zu transferieren. Dabei sind komplexe Workflows mit Verzweigungen und unzähligen Möglichkeiten realisierbar. Reporting Services: Aufgabe dieser
Services ist es, Berichte, die auf Daten aus der Datenbank basieren, in
verschiedenen Formen zur Verfügung zu stellen. Das kann zum Beispiel eine HTML-Seite oder ein PDF-Dokument sein, das per E-Mail
verschickt wird. Ziel ist es, das gesamte Berichtswesen eines Unternehmens abbilden zu können. Daher sind diese Berichte auch nicht
statisch. Vielmehr erlauben sie es einem Benutzer, durch die Eingabe
von Parametern das Ergebnis zu verändern oder über einen definierten Drill Down immer detailliertere Daten abzurufen. Ein wichtiger
Bestandteil der Reporting Services ist neben der Berichtserstellung die
Berichtsverteilung. Reporting Services lassen sich sehr gut in Share
Point integrieren.
• Analysis Services: Diese dienen der Realisierung von Data-WarehouseLösungen. Geschäftsleitung, Controller und Marketingmanager benötigen immer anspruchsvollere Analysen und Trendinformationen.
Die Basis dafür liegt zu einem Grossteil in den bereits auf Servern
gespeicherten Unternehmensdaten. In der Praxis werden zur Lösung
dieser Aufgabenstellung OLAP-Systeme (Online Analytical Processing;
deutsch: analytische Online-Verarbeitung) benötigt, indem auf einfache Weise Informationszusammenstellungen aus OLTP-Daten erstellt
werden, die dann für anspruchsvolle Datenanalysen genutzt werden
können. Die Analysis Services bieten diese Funktionalität auf einem
sehr hohen Niveau und haben den SQL Server in diesem Bereich zu
einem der führenden Produkte gemacht.
• Service Broker: Dieser Service zielt auf grosse verteilte Anwendungen ab. Der Service Broker verwaltet Warteschlangen, die mit
10
SQL-Anweisungen “gefüttert” werden können. Die Inhalte der Warteschlange werden dann der Reihe (englisch: queue) nach abgearbeitet.
Diese Warteschlangen können nicht nur am lokalen Server positioniert sein, sondern auch remote abgearbeitet werden.
• Master Data Services: Darunter versteht man, wenn Organisationen
ihre Stammdaten unternehmensweit zentralisiert vereinheitlichen
und für gezielte Analysen bereitstellen.
• Data Quality Services: Dies ist ein in dieser Version neues Tool, mit
dessen Hilfe die Datenqualität in bestehenden Systemen verbessert
werden kann. Lücken in Datenbeständen können damit besser aufgefunden und bereinigt werden. Dies können Fragestellungen sein wie:
“Sind alle notwendigen Relationen vorhanden und gesetzt?”
Die Abbildung 1.1 auf der Seite 11 stellt die verschiedenen Komponenten
graphisch dar.
Abbildung 1.1: Komponenten des MSSQL-Servers
11
1.3
Versionen des MSSQL-Servers
In der folgenden Tabelle sind die verschiedenen Versionen, in der der
MSSQL-Server angeboten wird, aufgelistet.
1.3.1 Enterprise Edition
Dies ist die von Featureseite umfangreichste SQL Server-Edition, die optimal für grosse Unternehmen und hochkomplexe Anforderungen geeignet
ist und mit der hohe Anforderungen an das Datenbankmanagement erfüllt
werden können. Dazu zählt die Unterstützung sehr grosser OLTP-Systeme,
hochkomplexer Datenanalysen, von Data-Warehousing-Systemen und von
Webanwendungen für Unternehmen.
1.3.2 Business Intelligence
Diese Edition steht zwischen der Standard und Enterprise Edition. Sie bietet den Grossteil der Features im Bereich von Business Intelligence, aber
verfügt im Gegensatz zur Enterprise Edition nicht über die vollen Möglichkeiten im Bereich der Hochverfügbarkeit und fortgeschrittenen Sicherheit.
1.3.3 Standard Edition
Dieses Angebot richtet sich an kleine und mittelständische Unternehmen,
welche die erweiterten Leistungsoptionen der SQL Server 2014 Enterprise
Edition nicht benötigen. Im Lieferumfang der Edition sind die wesentlichen
Funktionen von Business Intelligence enthalten.
1.3.4 Web Edition
Die Web Edition unterscheidet sich von der Standard Edition in erster Linie
durch die Lizenzierung, die ausschliesslich auf CPU-Basis erfolgt.
12
1.3.5 Express Edition
Die Express Edition ist eine frei erhältliche Datenbank, die einfach zu verwenden und zu verwalten ist. Sie ist auch in Microso Visual Studio integriert
und für die Entwicklung von datengesteuerten Anwendungen geeignet. Die
Datenbank kann sowohl als eine Clientdatenbank als auch als einfache Serverdatenbank eingesetzt werden. SQL Server Express wendet sich an kleinere Softwarehersteller und Serverbenutzer sowie Entwickler, die nicht
hauptberuflich Webanwendungen entwickeln. Die Express Edition gibt es
auch als Variante mit Tools und mit Advanced Services. Express Edition mit
Tools enthält zusätzlich bereits mit dem Management Studio eine grafische
Entwicklungs- und Verwaltungsumgebung. Die Express Edition mit Advanced Services erlaubt zusätzlich noch, eine Volltextsuche einzusetzen, und
enthält ein Frontend, um Berichte für die SQL Server Reporting Services zu
erstellen.
1.3.6 LocalDB
Die LocalDB wird eingesetzt, wenn SQL Server in eine andere Anwendung
eingebettet werden soll. Sie kommt mit minimalen Ressourcen aus und läu
nicht als Service, sondern ist in den Prozess eingebettet. Daher ist sie für
den Einsatz von mobilen Anwendungen geeignet, bei denen kein MultiuserZugriff auf die Datenbank benötigt wird, denn dieser ist nicht möglich.
1.3.7 Developer Edition1
Die Developer Edition ist eine sehr kostengünstige Edition für Ent wickler.
Diese Edition darf keine Produktivsysteme hosten; sie entspricht aber ihrem Umfang nach der Enterprise Edition.
1.4
Komponenten UM einen MSSQL-Server
In der Praxis benötigen Sie keine Datenbank, sondern eine Datenbankanwendung. Auch wenn die Datenbank als “Motor” einer Anwendung o die
1
Die
Developer-Version
können
de/evalcenter/dn205290 beziehen
Sie
13
von
http://technet.microso
.com/de-
wichtigste Komponente darstellt, ist ein Motor ohne ein Chassis o nur wenig von Nutzen. Das Chassis ist die Anwendung, die aus einer Datenbank eine Datenbankanwendung macht. Eine Anwendung wird mit einer Entwicklungsumgebung erstellt und grei über standardisierte Schnittstellen mithilfe von SQL auf ein Datenbanksystem zu. Einen Überblick über einsetzbare
Programmiersprachen und Schnittstellen zeigt die Abbildung 1.2 auf Seite
14.
Abbildung 1.2: Komponenten um eine MSSQL-Datenbank
Eine Datenbankanwendung besteht in der Regel aus folgenden Komponenten:
• Datenbankmanagementsystem als Backend für die Verwaltung der
Daten
• User-Interface als Frontend für die Bedienung der Anwendung
• Server- und/oder clientseitige Programmierung für die Abbildung von
Logiken
Die Abbildung 1.3 auf Seite 15 zeigt mögliche, beteiligte Komponenten bei
einer Umsetzung einer datenbankgestützten Applikation.
14
Abbildung 1.3: Werkzeuge um eine MSSQL-Datenbank
15
Kapitel 2
Voraussetzungen MSSQL
2.1
Hardware
Voraussetzung für die Nutzung von Microso SQL Server 2014 ist eine fehlerfreie Installation. Dazu muss Ihr Computer bestimmte Systemanforderungen bezüglich Hardware und Betriebssystem erfüllen.
• Speicherplatz: Der benötigte Festplattenspeicher hängt von den zu
installierenden Komponenten ab. Das Datenbankmodul braucht dabei ca. 811 MB. Weitere 591 MB benötigen jeweils die Integration Services und 304 MB sind für die Reporting Services erforderlich. Die
Clientkomponenten beanspruchen mit 1823 MB viel Kapazität. Weitere 375 MB werden von der Online-Dokumentation benötigt. Während
des Setups sind auf dem Systemlaufwerk mindestens 6 GB freier Platz
nötig.
• Arbeitsspeicher: Hier unterscheiden sich die Varianten Express Edition und die übrigen Editionen. Für die Express Edition wird 1GB empfohlen - für die die restliche Konfigurationen werden 4GB empfohlen.
• Prozessor: Sie benötigen für 32-Bit-Versionen des SQL Servers 2014
einen Pentium III-Prozessor mit mindestens 1,0 GHz Taktfrequenz
(2 GHz oder mehr wird empfohlen). Für eine 64-Bit-Version benötigen Sie mindestens einen Pentium IV- oder Xeon-Prozessor mit
64-Bit-Unterstützung und 1,4 GHz Taktfrequenz.
16
2.2
Betriebssysteme
Die folgende Tabelle zeigt die verschiedenen OS/Software-Kombinationen
auf:
Editionen
OS
Enterprise, BI,
Windows Server 2008 SP2, Windows Server 2008 R2
Web
SP1, Windows Server 2012, Windows Server 2012 R2
Standard,
Windows Server 2008 SP2, Windows Server 2008 R2
Developer,
SP1, Windows Server 2012, Windows Server 2012 R2,
Express
Windows 7 SP1, Windows 8, Windows 8.1
2.3
Software
Für die Installation von SQL Server 2014 sind ausserdem erforderlich:
• .NET Framework 3.5 SP1
• .NET Framework 4.0 (dieses wird, wenn nicht vorhanden, mit installiert)
Für die Clientkomponenten wird zusätzlich benötigt:
• Windows PowerShell 2.0
Fehlt das .NET Framework 4.0, erledigt das SQL Server Setup-Programm
dies für Sie. Das .NET-Framework 3.5 SP1 und PowerShell 2.0 müssen Sie
selber installieren oder je nach verwendetem Betriebssystem auch nur aktivieren.
ACHTUNG : Wollen Sie eine deutschsprache Version
von SQL-Server installieren, muss das OS die Sprache
Deutsch/Deutschland aktiviert haben. Nach der Installation kann die Sprache wieder gewechselt werden auf
Deutsch/Schweiz
17
Kapitel 3
Bedienung MSSQL
Es gibt eine Reihe von graphischen (und auch konsolenbasierten) Tools um
den MSSQL-Server bedienen und administrieren zu können. In der Folge
möchte ich Ihnen die wichtigsten Tools kurz vorstellen.
Die Liste der Möglichkeiten um den MSSQL-Server zu bedienen ist sehr
gross, hier die komplette Auswahl:
• SQL Server Management Studio: Das Management Studio ist quasi
das Hauptwerkzeug des SQL Server 2014. Es basiert auf der Shell vom
Visual Studio und kommt daher Entwicklern von der Optik und der
Handhabung her o bekannt vor. Es ist sowohl das Haupttool zur Verwaltung als auch dasjenige zur Entwicklung. Der integrierte Abfrageeditor dient zum Erstellen und Generieren von Abfragen und kann
somit auch von Nichtspezialisten verwendet werden. In der Vollversion unterstützt es nicht nur das Datenbankmodul, sondern auch andere Dienste wie zum Beispiel die Integration oder Analysis Services. In
der einfachen Installationsvariante, die bei der freien Express Edition
zum Einsatz kommt, wird ausschliesslich das Datenbankmodul unterstützt, sozusagen der Bereich der klassischen relationalen Datenbank.
• SQL Server-Konfigurations-Manager: Der Konfigurations-Manager
dient zur Einstellung der verwendeten Netzwerkprotokolle und zur
Konfiguration der SQL Server-Dienste.
• SQLCMD: Das Tool SQLCMD (SQL Command) ist das Kommandozeilentool für den Einsatz von SQL und Transact-SQL.
• SQL Server-Installationscenter: Das Installationscenter wird für das
nachträgliche Ergänzen von Features zu einer existierenden Installa18
tion verwendet.
• SQL Server Profiler: Der Profiler dient zur Überwachung von Anweisungen und Prozessen auf dem Server. In erster Linie übernimmt er
die Auswertung der Leistung und die Analyse der ausgeführten Anweisungen.
• Datenbankoptimierungsratgeber:
Mithilfe
des
Optimierungs-
ratgebers können Sie Ihre Datenbank analysieren und Tipps für
Verbesserungen der Leistung erhalten.
• SQL Server Data Tools: Dieses Tool bietet Entwicklern die Möglichkeit, mit einem Tool alle Bereiche der Datenbankentwicklung abzudecken. Ausserdem ermöglicht es das Entwickeln von .Net-Prozeduren
ohne eine Vollversion des Visual Studios.
• SQL Server Data Tools BI: Dieses Tool hat in der Version 2012 den Namen Visual Studio Shell und davor den Namen Business Intelligence
Development Studio getragen. Über diese spezielle Form des Visual
Studio werden Projekte für Analysis Services, Integration Services und
Reporting Services erstellt.
• Import/Export-Assistent: Ein komfortabler Assistent für den einfachen Import und Export von Daten in oder aus einer Datenbank.
Bereitstellungsassistent für Integration Services: Mit diesem Assistenten können Integration Services-Projekte einfach in einen Integration
Services-Katalog auf einem Server übertragen werden.
• Projektkonvertierungs-Assistent: Mit diesem Assistenten können Integration Services Pakete von Vorversionen für die aktuelle Version
konvertiert werden.
3.1
Das Management Studio
Beim Starten des Management Studios müssen Sie sich erstmalig anmelden.
In der Regel melden Sie sich am Datenbankmodul (Database Engine) an.
Melden Sie sich am Datenbankmodul über Windows-Authentifizierung
oder über SQL Server-Authentifizierung mit Eingabe Ihres Benutzernamens und Ihres Kennwortes an (Abbildung 3.1 auf Seite 20).
Nach erfolgter Anmeldung werden Ihnen im Management Studio folgende
Fenster angezeigt (Abbildung 3.2 auf Seite 21):
• Objekt-Explorer: Hier sehen Sie alle Objekte des Servers, an dem Sie
19
Abbildung 3.1: Anmeldebildschirm / Managementstudio
20
sich angemeldet haben.
• Details zum Objekt-Explorer: Hier werden Details zur jeweiligen
Auswahl im Objekt-Explorer angezeigt. Manchmal wird dieser nicht
angezeigt, dann können Sie die Details über das Menü Ansicht oder
die Taste (F7) einblenden. Der Vorteil dieser Details ist nicht nur,
dass man mehr an Informationen auf einen Blick sieht als im ObjektExplorer, sondern dass es in manchen Situationen praktisch ist,
mehrere Objekte gleichzeitig markieren und bearbeiten zu können.
Abbildung 3.2: Managementstudio
Neben den beiden erwähnten Fenstern können noch folgende Fenster sinnvollerweise angezeigt werden:
• Registrierte Server
• Vorlagen-Explorer
• Projektmappen-Explorer
• Eigenschaftsfenster
AUFTRAG: Betrachten Sie die Auswahl der Fenster und finden
Sie deren Verwendung selbst heraus! Die Fenster lassen sich,
windows-typisch, verschieben und an anderen Orten andocken.
21
3.1.1 Server registieren
Wenn Sie mit mehreren Servern arbeiten, können Sie diese Verbindungen
über das Fenster Ansicht\Registrierte Server organisieren.
AUFTRAG: Arbeiten Sie mit einem Klassenkameraden zusammen und registrieren Sie den Server Ihres Klassenkameraden in
Ihrem MGMT-Studio
3.1.2 Der Objekt-Explorer
Der Objekt-Explorer ist die Ansicht die Sie wohl am meisten verwenden
werden (Abbildung 3.3 auf Seite 23).
Im Objekt-Explorer haben Sie vor allem folgende wichtige Objekte im Zugriff:
• Datenbanken: Neben den Benutzerdatenbanken werden die Systemdatenbanken sowie Datenbank-Momentaufnahmen (Snapshots) in eigenen Ordnern angezeigt. Datenbank-Snapshots speichern Momentauszüge aus der Datenbank, die nur gelesen und beispielsweise für Auswertungen verwendet werden können. Über die einzelnen Datenbanken gelangen Sie in weiterer Folge zu allen Datenbankobjekten. Lesen
Sie hierzu mehr in den folgenden Kapiteln.
• Sicherheit: Hier werden Objekte wie Anmeldungen und Serverrollen
verwaltet, die für die Organisation der Sicherheit und der Zugriffsberechtigungen auf dem Datenbankserver benötigt werden. Ausserdem
finden Sie an dieser Stelle die Features Überwachungen und die Kryptografie vor (nicht Express Edition).
• Serverobjekte: Hier finden Sie Sicherungsmedien, Endpunkte (nicht
Express Edition) und Verbindungsserver (Linked Server). Letztere benötigen Sie für die Verbindung mehrerer Server miteinander. Sind
Server auf diese Art miteinander verlinkt, können Sie in einer Abfrage auf mehrere Datenbankserver gleichzeitig zugreifen. Ausserdem
finden Sie in der Rubrik Serverobjekte noch Trigger, womit hier im
Speziellen die DDL-Trigger gemeint sind.
• Replikation: Hier können Sie Objekte erstellen und verwalten, die Sie
für verteilte Datenbanken benötigen. Die Bedeutung der Replikation
22
Abbildung 3.3: Objektexplorer
23
hat allerdings in den letzten Jahren stark abgenommen. Durch die Verfügbarkeit von schnellen Datenleitungen, sowohl in terrestrischer als
auch mobiler Form, wird nämlich häufig der einfachere Onlinezugriff
auf eine zentrale Datenbank dem Verteilen und Abgleichen der Datenbestände mit all seinen Synchronisationsproblemen vorgezogen. Die
Express Edition kann hierbei nur der Abonnent (Empfänger), nicht
der Verleger sein.
• Hohe Verfügbarkeit mit AlwaysOn: Bei AlwaysOn handelt es sich
um ein Feature, hinter dem sich eine bedeutende Weiterentwicklung
für Hochverfügbarkeitsszenarien verbirgt. Daher steht dieses Feature
auch nur bei der Enterprise Edition zur Verfügung.
Im Menüpunkt Verwaltung sind folgende Punkte zusammengefasst:
• Richtlinienverwaltung: Sie können zum Beispiel Richtlinien für die
Benennung von Objekten erstellen. Diese werden dann bei der Erstellung von Datenbankobjekten erzwungen.
• Datensammlung: Dieses Feature – früher als Datenauflistung
bezeichnet – erlaubt es, Konfigurationen für ein Verwaltungs-DataWarehouse vorzunehmen (nicht Express Edition).
• Ressourcenkontrolle: Um zu verhindern, dass einzelne Prozesse den
ganzen Server blockieren, gibt es dieses Feature. Hierbei können die
beanspruchten Ressourcen für einzelne Prozesse limitiert und optimiert werden. Auch dieses Feature steht bei der Express Edition nicht
zur Verfügung.
• Erweiterte Ereignisse: Hier bekommen Sie Informationen darüber,
ob Ihr System in Ordnung ist, vor allem in Zusammenhang mit AlwaysOn.
• Wartungspläne: Wartungspläne führen Wartungsarbeiten wie zum
Beispiel Sicherungen, Index-Reorganisationen oder Prüfungen der Datenbankintegrität gemeinsam oder getrennt zu festgelegten Zeiten aus.
Wartungspläne gibt es bei der Express Edition nicht, da sie den hier
fehlenden Server-Agent benötigen.
• SQL Server-Protokolle: Hier werden unterschiedliche Vorgänge protokolliert – wie zum Beispiel Anmeldungen oder das Anfügen und das
Sichern von Datenbanken. Vor allem Fehler unterschiedlichster Art
werden hier festgehalten.
24
• Datenbank-E-Mail: Über den SQL Server können SMTP-Mails versendet werden. Diese lassen sich zum Beispiel für Benachrichtigungen
aus Datenbanken heraus verwenden oder um Administratoren in bestimmten Situationen zu informieren. In der Express Edition müssen
Sie auf dieses Feature verzichten.
• Distributed Transaction Coordinator: Dieser Dienst wird benötigt,
wenn Sie Transaktionen verwenden, bei denen mehr als ein Server
beteiligt ist.
• Legacy: Hier finden Sie Komponenten, die zur Gewährleistung der Abwärtskompatibilität benötigt werden. Hierzu gehören beim SQL Server 2014 nur mehr die alten Datenbankwartungspläne.
AUFTRAG: Arbeiten Sie sich durch Menüpunkte des Objektexplorers und verifizieren Sie die Möglichkeiten!
3.1.3 Der Abfrageeditor
Eine Kernkomponente des Management Studios ist der Abfrageeditor.
Dieser dient zum Erstellen und Absetzen von SQL- und Transact-SQLAnweisungen. Er enthält auch einen grafischen Editor, der beim Schreiben
von Statements hilfreich ist.
Um ein Abfrageeditor-Fenster zu öffnen, wählen Sie eine der folgenden Varianten:
• Markieren Sie eine Datenbank im Objekt-Explorer und wählen Sie im
Kontextmenü den Befehl Neue Abfrage. Die bereits bestehende Anmeldung des im Objekt-Explorer markierten Servers wird dann verwendet. Auch die markierte Datenbank wird im Abfrageeditor-Fenster als
Vorgabe übernommen.
• Wählen Sie den Befehl Datei\Neu\Abfrage mit aktueller Verbindung.
Die bereits bestehende Anmeldung des im Objekt-Explorer markierten Servers wird dann ebenso verwendet. Es muss auch gar nicht das
Server-Objekt selber markiert sein, es kann ein beliebiges Objekt im
Baum darunter ausgewählt sein.
• Wählen Sie im Menü Datei den Befehl Neu\Datenbankmodul-Abfrage.
Sie werden daraufhin zur Eingabe neuer Anmeldeinformationen aufgefordert.
25
Im neuen Abfrageeditor-Fenster können Sie nun SQL- und Transact-SQLAnweisungen eingeben und ausführen. Anweisungen werden hierbei über
das Ausführen-Symbol mit dem Ausrufezeichen oder über die Taste (F5)
ausgeführt. Das Ergebnis wird im unteren Bildschirmbereich angezeigt.
AUFTRAG: Testen Sie den Abfrageneditor aus!
3.1.4 Praxis
Natürlich können Sie das Management-Studio auch unabhängig des SQLServers installieren - und das wird in der Praxis auch häufig gemacht. Damit können DB-Administratoren von Ihrem Arbeitsplatz aus bequem alle
SQL-Server im Netzwerk bedienen und administrieren ohne jedes Mal eine
Remote-Desktop Verbindung herstellen zu müssen. Voraussetzung dafür ist
natürlich, dass die Remote-Verbindungsprotokolle aktiviert sind und auch
die Firewalls diese Verbindungen erlauben.
3.2
Das Kommandozeilentool: SQLCMD
Ab und zu ist es hilfreich, auch von der Kommandozeile aus auf den SQL
Server zuzugreifen, zum Beispiel wenn SQL-Skripte als Bestandteile anderer Verwaltungsaufgaben – zum Beispiel auf Betriebssystemebene – ausgeführt werden sollen (Abbildung 3.4 auf Seite 27).
Parameter
Bedeutung
-S server
Name oder IP-Adresse des Servers. Wird dieser
Parameter weggelassen, wird die lokale
Standardinstanz verwendet.
-U anmelde-
Anmeldename bei einer Anmeldung mit SQL
name
Server-Authentifizierung
-P kennwort
Kennwort bei einer Anmeldung mit SQL
Server-Authentifizierung
-E
Anmeldung mittels Windows-Authentifizierung
-d datenban-
Name der Datenbank, zu der nach der Anmeldung
kname
gewechselt werden soll
26
Parameter
Bedeutung
-i
Pfad zur SQL-Skript-Datei, die nach dem Anmelden
eingabedatei
ausgeführt werden soll. Wird diese Option verwendet,
wird SQLCMD nach dem Ausführen des Skripts wieder
beendet.
-o
Name einer Datei, in welche die Ausgaben geschrieben
ausgabedatei
werden. Dies ist mit der Option Ausgabe in Datei im
Management Studio vergleichbar.
Ein Beispielaufruf könnte zum Beispiel so aussehen: sqlcmd -U user -P
passwort -S srvsql2014
Abbildung 3.4: SQLCMD
3.3
Der Konfigurations-Manager
Der Konfigurations-Manager (Abbildung 3.5 auf Seite 28) ist ein Snap-in der
Microso Management-Konsole. Als solches kann er entweder direkt über
27
das Windows-Startmenü oder über die Verwaltung des Arbeitsplatzes aufgerufen werden.
Der Konfigurations-Manager hat drei Aufgaben:
• Verwaltung der SQL Server-Dienste: Die einzelnen Dienste können
gestartet und beendet, ihre Startart und ihr Dienstkonto festgelegt werden. Am Symbol ist zu erkennen, ob ein Dienst gestartet ist oder nicht.
Bei gestarteten Diensten ist in einem weissen Kreis ein grünes Dreieck
abgebildet. Ist ein Dienst nicht gestartet, ist an dieser Stelle ein rotes
Viereck zu sehen.
• Netzwerkkonfiguration für den Server: Hier können Sie Netzwerkprotokolle für den Server aktivieren und deaktivieren. In der Regel
verwenden Sie dies nach dem Setup, um TCP/IP für den Remotezugriff zu aktivieren. Für dieses Protokoll lassen sich hier weitere Einstellungen vornehmen; beispielsweise zum Port, der standardmässig
mit 1433 belegt ist.
• Protokolle für den Client: Für diesen Rechner als Client können Sie
hier die verwendbaren Protokolle einstellen. Sind mehrere aktiv, wird
eine Reihenfolge festgelegt, nach der der Client versucht, mit dem jeweiligen Protokoll eine Verbindung zu einem Server aufzubauen.
Abbildung 3.5: SQLCMD
3.4
System-Datenbanken
Microsoft-SQL Server-Systeme verfügen über vier Systemdatenbanken (Abbildung 3.6 auf der Seite 29):
28
• master
• model
• msdb
• tempdb
Im Management Studio werden diese zur besseren Unterscheidung von den
benutzererstell- ten Datenbanken durch den eigenen Ordner Systemdatenbanken getrennt.
Abbildung 3.6: Systemdatenbanken
master-Datenbank
Die master-Datenbank enthält eine Aufzeichnung aller Informationen, die
auf Systemebene für ein SQL Server-System wichtig sind. Dazu zählen
• alle Anmeldekonten und alle Systemkonfigurationseinstellungen,
• das Vorhandensein aller anderen Datenbanken, einschliesslich der
Speicherorte der Datenbankdateien,
• die Initialisierungsinformationen für den SQL Server.
model-Datenbank
Die model-Datenbank wird als Vorlage für alle Datenbanken verwendet,
die in einem System erstellt werden. Bei der Neuanlage einer Datenbank
29
wird der erste Teil der Datenbank derart erstellt, dass der Inhalt der modelDatenbank kopiert wird. Anschliessend wird der verbleibende Teil der neuen Datenbank mit leeren Seiten aufgefüllt. Wichtig ist: Da die Datenbank
tempdb bei jedem Start von SQL Server neu erstellt wird, muss die modelDatenbank immer in einem SQL Server-System vorhanden sein.
msdb-Datenbank
Die msdb-Datenbank wird vom SQL Server-Agent verwendet, um Termine
für Warnungen und Aufträge zu planen und Operationen aufzuzeichnen.
Auch Integration Services-Pakete können in dieser Datenbank gespeichert
werden, damit sie direkt am Server ausgeführt werden können.
Jede Datenbank, einschliesslich der Systemdatenbanken, verfügt über einen eigenen Satz von Dateien. Diese Dateien werden nicht mit anderen Datenbanken gemeinsam verwendet.
tempdb-Datenbank
Die Datenbank tempdb nimmt alle temporären Tabellen und andere temporäre Objekte auf. Diese Datenbank wird darüber hinaus in allen anderen
Situationen verwendet, in denen temporärer Speicherplatz benötigt wird,
beispielsweise für Arbeitstabellen, die von SQL Server erzeugt werden.
tempdb ist eine globale Ressource. Die temporären Tabellen und temporär
gespeicherten Prozeduren für alle Benutzer, die eine Verbindung zum System hergestellt haben, werden in dieser Datenbank gespeichert. tempdb
wird bei jedem Start von SQL Server neu erstellt; das System startet somit
mit einer leeren Kopie dieser Datenbank. Da temporäre Tabellen und
temporär gespeicherte Prozeduren beim Trennen von Verbindungen automatisch gelöscht werden und keine Verbindung aktiv ist, wenn das System
heruntergefahren wird, enthält tempdb niemals Inhalte, die von einer
SQL Server-Sitzung bis zur nächsten gespeichert werden. Standardmässig
wird tempdb während der Ausführung von SQL Server nach Bedarf vergrössert. Anders als andere Datenbanken wird tempdb jedoch bei jedem
Start des Datenbankmoduls durch das Neuerstellen auf die Anfangsgrösse
zurückgesetzt.
30
Anhang A
Datentypen in MySQL 5.6
A.1
Ganzzahlen
Datentyp
Speicherplatz
Beschreibung
TINYINT
1 Byte
Bereich mit Vorzeichen: -128 bis 127
Bereich ohne Vorzeichen: 0 bis 255
SMALLINT
2 Bytes
Bereich mit Vorzeichen: -32.768 bis
32.767
Bereich ohne Vorzeichen: 0 bis 65.535
MEDIUMINT 3 Bytes
Bereich mit Vorzeichen: -8.388.608 bis
8.388.607
Bereich ohne Vorzeichen: 0 bis
16.277.215
INT
4 Bytes
Bereich mit Vorzeichen:
-2.147.483.648 bis 2.147.483.647
Bereich ohne Vorzeichen: 0 bis
4.294.967.295
BIGINT
8 Bytes
Bereich mit Vorzeichen:
-9.223.372.036.854.775.808 bis
9.223.372.036.854.775.807
Bereich ohne Vorzeichen: 0 bis
18.446.744.073.709.551.615
SERIAL
8 Bytes
Ein Alias für BIGINT UNSIGNED NOT
NULL AUTO_INCREMENT UNIQUE
31
Datentyp
Speicherplatz
Beschreibung
Tabelle A.1: Datentypen / Ganzzahlen
A.2
Fliesskommazahlen
Datentyp
Speicherplatz
Beschreibung
DECIMAL
variiert
Fixkommazahlen (M, D)
Die maximale Anzahl an Ziffern (M)
ist 65 (Standard: 10), die maximale
Anzahl an Nachkommastellen (D) ist
30 (Standard: 0)
FLOAT
4 Bytes
Erlaubte Werte sind -3,402823466 x
1038 bis -1,175494351 x 10−38 , 0 und
1,175494351 x 10−38 bis 3,402823466 x
1038
DOUBLE
8 Bytes
Erlaubte Werte sind
-1,7976931348623157 x 10308 bis
-2,2250738585072014 x 10−308 , 0 und
2,2250738585072014 x 10−308 bis
1,7976931348623157 x 10308
REAL
8 Bytes
Synonym für DOUBLE
Tabelle A.2: Datentypen / Fliesskommazahlen
A.2.1 Decimal / Beschreibung
Die Deklarations-Syntax für eine DECIMAL-Spalte funtioniert über
DECIMAL(M, D)
Die Werte M und D:
• M Ist die maximale Anzahl an Zeichen (Precision). Sie hat einen Bereich von 1-65 Zeichen.
32
• D Ist die Anzahl der Zeichen die rechts vom Decimal-Punkt platziert
werden sollen. D muss zwischen 0-30 sein und darf nicht grösser als
M sein
Die Berechnung des Speicherplatzes funktioniert anhand der Zeichen die
verwendet werden. Folgende Tabelle beschreibt den Speicherbedarf pro
Zeichen:
Zeichen
Anzahl Bytes
0
0
1–2
1
3–4
2
5–6
3
7–9
4
Tabelle A.3: Speicherbedarf bei einem Decimal
Folgende Beispiele:
• DECIMAL(18,9) Hier werden total 18 Zeichen verwendet - 9 Stellen
vor und 9 Stellen nach dem Komma. Entsprechend werden 4 Bytes für
die Zahl vor dem Komma, und 4 Bytes für die Zahl nach dem Komma
eingesetzt
• DECIMAL(20,6) Hier werden total 20 Zeichen verwendet - 14 Stellen
vor und 6 Stellen nach dem Komma. Entsprechend werden 7 Bytes (9
Stellen und 5 Stellen) für die Zahl vor dem Komma, und 3 Bytes für die
Zahl nach dem Komma eingesetzt
ACHTUNG: Die Implementation des DECIMALS wurden in den
verganenen MySQL-Version immer mal wieder überarbeitet. Sie
müssen diesen Datentyp bei einer allfälligen Migration umbedingt
im Auge behalten
A.3
Spezielle Datentypen
33
Datentyp
Speicherplatz
Beschreibung
BIT
ca.(M+7)/8B
Ein Bitfeld-Typ (M), der M Bits pro
Wert speichert (Standard ist 1,
Maximum ist 64)
BOOLEAN
1 Byte
Ein Synonym für TINYINT(1), ein
Null-Wert wird als falsch angesehen,
Nicht-Null-Werte werden als Wahr
angesehen
BINARY
L Byte(s)
Ähnlich wie der CHAR-Typ, speichert
aber binäre Byte-Zeichenketten
anstelle von nicht-binären
Buchstaben-Zeichenketten
VARBINARY L+1 Byte(s)
Ähnlich wie der VARCHAR-Typ,
speichert aber binäre
Byte-Zeichenketten anstelle von
nicht-binären
Buchstaben-Zeichenketten
TINYBLOB
L+1 Byte(s)
BLOB-Spalte mit einer maximalen
Länge L von 255 Zeichen
Gespeichert mit einem
Ein-Byte-Präfix, der die Länge des
Wertes in Bytes angibt
BLOB
L+2 Byte(s)
BLOB-Spalte mit einer maximalen
Länge von 65.535 Zeichen
Gespeichert mit einem
Zwei-Byte-Präfix, der die Länge des
Wertes in Bytes angibt
MEDIUMBLOB
L+3 Byte(s)
BLOB-Spalte mit einer maximalen
Länge von 16.777.215 Zeichen
Gespeichert mit einem
Drei-Byte-Präfix, der die Länge des
Wertes in Bytes angibt
LONGBLOB L+4 Byte(s)
BLOB-Spalte mit einer maximalen
Länge von 4.294.967.295 oder 4 GiB
Zeichen
34
Datentyp
Speicherplatz
Beschreibung
Gespeichert mit einem
Vier-Byte-Präfix, der die Länge des
Wertes in Bytes angibt
ENUM
1-2 Byte(s)
Aufzählung
Gewählt aus einer Liste von bis zu
65.535 Werten
SET
1, 2, 3, 4
String-Objekt
oder 8Byte
Ein einzelner Wert gewählt aus
einem Satz von bis zu 64 Einträgen
Tabelle A.4: Datentypen / Spezielle Datentypen
A.4
Datum und Uhrzeit
Datentyp
Speicherplatz
Beschreibung
DATE
3 Bytes
Datum
Unterstützter Bereich ist 1000-01-01
bis 9999-12-31
DATETIME
8 Bytes
Kombination aus Datum und Uhrzeit
Unterstützter Bereich ist 1000-01-01
00:00:00 bis 9999-12-31 23:59:59
TIMESTAMP 4 Bytes
Zeitstempel
Unterstützter Bereich ist 1970-01-01
00:00:01 UTC bis 2038-01-09 03:14:07
UTC
Gespeichert als Anzahl der Sekunden
seit Beginn der UNIX-Epoche
(1970-01-01 00:00:00 UTC)
TIME
3 Bytes
Uhrzeit
Unterstützter Bereich ist -838:59:59
bis 838:59:59
YEAR
1 Byte
Jahr
35
Datentyp
Speicherplatz
Beschreibung
Vier- (4, Standard) oder zweistelliges
(2) Format
Erlaubte Werte sind 70 (1970) bis 69
(2069) oder 1901 bis 2155 und 0000
Tabelle A.5: Datentypen / Datum und Uhrzeit
A.5
Zeichenketten
Datentyp
Speicherplatz
Beschreibung
CHAR
L Byte(s)
Zeichenkette mit fester Länge (0 bis
255, Standard: 1) L
Rechts wird immer bis zur
angegebenen Länge mit Leerzeichen
aufgefüllt
VARCHAR
L+1 Byte(s)
Zeichenkette mit variabler Länge (0
bis 65.535) L
Die tatsächliche maximale Länge
hängt von der maximalen Anzahl an
Zeilen ab
TINYTEXT
L+1 Byte(s)
TEXT-Spalte mit einer maximalen
Länge von 255 Zeichen
Gespeichert mit einem
Ein-Byte-Präfix, der die Länge des
Wertes in Bytes angibt
TEXT
L+2 Byte(s)
TEXT-Spalte mit einer maximalen
Länge von 65.535 Zeichen
Gespeichert mit einem
Zwei-Byte-Präfix, der die Länge des
Wertes in Bytes angibt
MEDIUMTEXTL+3 Byte(s)
TEXT-Spalte mit einer maximalen
Länge von 16.777.215 Zeichen
36
Datentyp
Speicherplatz
Beschreibung
Gespeichert mit einem
Drei-Byte-Präfix, der die Länge des
Wertes in Bytes angibt
LONGTEXT
L+4 Byte(s)
TEXT-Spalte mit einer maximalen
Länge von 4.294.967.295 oder 4 GiB
Zeichen
Gespeichert mit einem
Vier-Byte-Präfix, der die Länge des
Wertes in Bytes angibt
Tabelle A.6: Datentypen / Zeichenketten
A.6
Räumliche Datentypen
Datentyp
Beschreibung
GEOMETRY
Typ, der die Geometrie irgendeinen
Typs speichern kann
POINT
Punkt im 2-dimensionalen Raum
LINESTRING
Kurve mit linearer Interpolation
zwischen Punkten
POLYGON
Vieleck (Polygon)
MULTIPOINT
Punkte-Sammlung
MULTILINESTRING
Kurven-Sammlung mit linearer
Interpolation zwischen Punkten
MULTIPOLYGON
Polygon-Sammlung
GEOMETRY
Sammlung von Geometrie-Objekten
irgendeinen Typs
COLLECTION
Tabelle A.7: Datentypen / Räumliche Datentypen
37
Anhang B
References
38
Anhang C
Gruppenübung “Integrität”
Quelle: http://help.sap.com/abapdocu_70/de/ABENDB_INTEGRITY.htm
Phase 1 : Expertenrunde / Einarbeitung (15min)
Erarbeiten Sie sich in Ihrer Gruppe das Wissen zu einem der drei 3 Themenbereiche und finden Sie ein einfaches Beispiel um es später weitergeben zu
können.
Erstellen Sie dabei ein Dokument als Zusammenfassung.
Phase 2 : Austauschrunde (ca. 10min)
Formieren Sie die Gruppen neu, so dass Sie nur noch aus “Themenfremden”
Mitgliedern besteht. Erklären Sie nun, der Reihe nach, Ihre Themenbereich
Ihren neuen Gruppenmitgliedern.
Formieren Sie sich zu Gruppen zu folgenden Themen:
1. Thema 1: Semantische Integrität
2. Thema 2: Relationale Integrität
3. Thema 3: Operationale Integrität
39
Anhang D
Übungen : ER-Modelle und
Transformation
D.1
Vorlesungsbeispiel
Betrachten Sie die Abbildung D.1 auf Seite 40.
Abbildung D.1: Vorlesungsbeispiel
D.2
Theorie 1
Wie würden Sie die folgenden Begriffe definieren:
40
Entity : . . .
Attribute : . . .
Relationship : . . .
D.3
Theorie 2
Nennen Sie drei verschiedene Ausprägungen von Kardinalitäten.
1. : …
2. : …
3. : …
D.4
Kardinalitäten
Die folgende Tabelle zeigt jeweils zwei Entitätstypen und den zugehörigen
Beziehungstyp. Geben Sie für jede Beziehung die Kardinalität an.
Schüler hat Tutor.
Schüler bekommt heute Zeugnis.
Schüler darf arbeiten an Computer.
Schüler hat ausgeliehen Buch.
Schüler besucht Kurs.
Schüler ist befreundet mit Schüler.
41
D.5
Modellfirma / ERM erstellen
Betrachten Sie die Rechnung in Abbildung D.2 auf Seite 42 als Muster einer
Modellfirma.
Abbildung D.2: Musterrechnung
1. Stellen Sie fest, welche Entitätstypen und Beziehungen sich daraus ableiten lassen.
2. Skizzieren Sie ein Modell der Modellfirma.
3. Formulieren Sie Geschäftsregeln für die Modellfirma.
D.6
Transformationsübung 1
Betrachten Sie die Abbildung D.3 auf Seite 43.
Transformieren Sie das Beispiel in die geeigneten Tabellen.
D.7
Transformationsübung 2
Ueberführen Sie das ERM aus Abbildung D.4 auf Seite 43 in DB-Tabellen.
Bemerkung zum „Diagram-Dialekt“:
• Der durchgezogene Strich bedeutet genau einer (EINS)
• Der gestrichelte einer oder keiner
• Der Krähenfuß auf der anderen Seite bedeutet einer oder mehrere
42
Abbildung D.3: Transformationsübung 1
Abbildung D.4: Transformationsübung 2
43
D.8
Transformationsübung 3
Betrachten Sie die Abbildung D.5 auf Seite 44.
Abbildung D.5: Transformationsübung 3
Transformieren Sie das Beispiel in die geeigneten Tabellen.
44
Anhang E
Übung: Normalisierung
E.1
Theorie 1
Formulieren Sie in ein, zwei kurzen Sätzen die Definitionen der ersten bis
dritten NF:
1 NF : . . .
2 NF : . . .
3 NF : . . .
E.2
Theorie 2
Was ist Normalisierung (1)? Und welches Ziel wird damit verfolgt (2)?
1:…
2:…
E.3
Normalisierungsübung 1
Betrachten Sie die Tabelle in der Abbildung E.1 auf Seite 46. Bringen Sie sie
in die 1 Normalform.
45
Abbildung E.1: Normalisierungsübung 1
E.4
Normalisierungsübung 2
Betrachten Sie die Tabelle in der Abbildung E.2 auf Seite 46. Bringen Sie sie
in die 1 Normalform.
Abbildung E.2: Normalisierungsübung 2
E.5
Normalisierungsübung 3
Betrachten Sie die Tabelle in der Abbildung E.3 auf Seite 46. Bringen Sie sie
in die 3 Normalform.
Abbildung E.3: Normalisierungsübung 3
E.6
Normalisierungsübung 4
Betrachten Sie die Tabelle in der Abbildung E.4 auf Seite 47. Bringen Sie sie
in die 3 Normalform.
E.7
Interpretation
Es die Datenbank aus Abbildung E.5 auf Seite 47 gegeben. Was passiert nun
in folgenden Fällen:
1 : Ein neues Fach Kunst soll eingeführt werden, jedoch ist noch kein Lehrer
dafür verfügbar. …
46
Abbildung E.4: Normalisierungsübung 4
2 : Lehrer Jagger (Jag) wird pensioniert. …
3 : Das Fach Info wird der Fachhelfer Lotech durch den Fachhelfer Heiend
. . . ersetzt.
Abbildung E.5: Interpretation
47
Anhang F
Übung: Eigene Datenbank, von
A-I1
• Form : Arbeiten Sie an Ihrem Projekt alleine. Konstruktive Diskussionen zwischen den Lernenden ist erlaubt und erwünscht - beachten Sie
aber: Mit dieser Übung können Sie Ihre eigenen Wissenlücken entdecken. Das ist eine Chance!
• Zeit : 3 Lektionen
• Auftrag : Erstellen Sie eine (kleine) Datenbank von von A bis I (von
A bis Installation) selbst. Bearbeiten Sie die notwendigen Schritte
der Reihe nach - wir folgen thematisch den Kapitel 4 und 5 aus
dem Buch. Sie dürfen für diese Aufgabe ein eigenes Projekt wählen (z.Bsp. Musiksammlung usw.) oder Sie verwenden die Vorgabe
(Student/Kurs-Datenbank). Die Lösungen und Hinweise welche abschliessend zugänglich sind wurden für die Student/Kurs-Datenbank
erstellt.
Achtung: Beachten Sie den Aufwand!!
Ziel : Ziel soll es sein, dass Sie die Handlungen in den gelesenen Kapitel 4 bis
5 aus einem eigenen Ideenkonstrukt selbstständig durchführen und somit
sämtlich Tätigkeiten in einem neuen Zusammenhang selbstständig umsetzen. Als Abschluss der Übungen erhalten Sie einen Datenbank, angereichert
mit Testdaten. Der Zugriff auf die Testdaten sind für einige Benutzer eingeschänkt.
1
Es ist “nur” A bis I weil uns noch ein paar Dinge fehlen. Wie z.Bsp Views…etc.
48
Weiterführende Arbeiten : Auf dieser Testdatenbank werden wir weiterführende Aufgaben in ähnlicher Weise umsetzen (Backup / Views / Stored
Procedures).
F.1
Beispielauftrag (oder Ihr eigenes Beispiel)
Erstellen Sie eine Datenbank die die Informationen einer Schulorganisation
abbildet. Teil “unserer” Schule sind Schüler, die über eine Schülernummer
identifiziert werden. Ebenfalls müssen für die Schüler die Informationen
über ihren Adresse und Ihr Geburtsdatum gespeichert werden.
Die Schule selbst organisiert sich in Kursen in welche sich die Schüler einschreiben können und für den die Schüler Punkte bekommen. Die Kurse
selbst werden über eine Kursnummer identifiziert. Weitere Eigenschaften
eines Kurses sind:
• Fach : Das ist eine 5-stellige Kursbezeichnung
• Thema : Das ist eine Fachbeschreibung in Stichworten. Sie umfasst 50
Zeichen.
• Art : Ein Kurs kann entweder ein Leistungskurs (LK) oder ein Grundkurs (GK) sein
• Halbjahr : Die Eigenschaft Halbjahr bezeichnet in einem Freitext (10
Zeichen) eindeutig den Zeitpunkt des Kurses (z.Bsp. HS2015 - Herbstsemester 2015)
• Stunden : Die Eigenschaft Stunden beschreibt wieviele Lektionen das
Fach benötigt. Im Maximum werden für ein Fach 100 Lektion eingesetzt
Der Chefsekretär wünscht eine schnelle Suche auf der Datenbasis der Schüler. Er verwendet zur Suche immer die Kombination aus Geburtsdatum und
Nachname des Schülers.
F.2
ERM erstellen
Erstellen Sie aus den gegebenen Information ein ERM das die Situation am
Besten beschreibt. Benutzen Sie dazu ein ERM Ihrer Wahl - ein mögliches
Produkt ist Staruml (http://staruml.io)
49
F.3
Transformieren
Transformieren Sie nun Ihr ERM nach den Transformationsregeln (versuchen Sie sich wirklich an die Regeln zu erinnern und nicht einfach nur zu
“wursteln”) in möglich Datenbanktabellen. Die Darstellung dieser Tabellen
bleibt Ihnen überlassen.
F.4
Normalisieren
Es ist nun möglich, dass Ihr Design nicht optimal in unser RDBMS MySQL
passt. Gehen Sie Schritt für Schritt durch die Normalisierungsschritte und
normalisieren Sie für Ihr Projekt sinnvoll.
F.5
Storage Engine wählen
Es stehen Ihnen in MySQL verschiedene Storage Engine Typen zur Auswahl
- jede mit Vor- und Nachteilen. Vergleichen Sie die SE im Buch ab Seite 55
miteinander und entscheiden Sie sich bei jeder Tabelle für eine SE. Begründen Sie Ihre Wahl und notieren Sie sich die Gedanken dazu.
F.6
Definition / Repetition der Datentypen
Vergleichen Sie die Anforderungen aus der Projektbeschreibung mit den
zu Verfügung stehenden Attributtypen für MySQL und entscheiden Sie sich
für jedes Attribut für einen Typ. Notieren Sie sich auch hier die Entscheidungen.
F.7
Index
Lesen Sie gegebenenfalls die Informationen zu den verschiedenen Indextypen nochmals durch. Brauchen Sie allenfalls Indextypen auf speziellen
Attributen? Chefsekretär?
50
F.8
Integrität
Betrachten Sie Integritätsbedingungen - haben Sie welche die Sie auf Ihrer
Datenbank erzwingen wollen?
In unserem Beispiel werden keine “Datenleichen” geduldet. Sprich:
1. Ein Kurs kann nicht gelöscht werden solange Schüler eingeschrieben
sind
2. Wenn ein Schüler gelöscht wird, müssen auch seine Einschreibungen
gelöscht werden
F.9
Installationsscript erstellen
Sie haben nun alle Informationen zusammen um ein komplettes Installationsskript für Ihre neue Datenbank zu schreiben. Folgende Vorgaben:
• Das Script muss “bedingt” arbeiten
• Das Script muss komplett “reproduzierbar” sein
F.10
System-Arbeiten
Kümmern wir uns um unser DBMS - zuerst sind ein paar Vorbereitungen
nötig, bevor wir unser Script einsetzen können.
F.10.1 Kontrolle der Serverdienste
1. Kontrollieren Sie den Status des MySQL-Serverdienstes.
2. Kontrollieren Sie die Remote-Verbindungsmöglichkeiten des MySQLServers. Auf welchen Ports hört der MySQL-Server?
3. Finden Sie die Log-Dateien des MySQL-Servers? Gibt es auffällige Meldungen darin?
Notieren Sie sich die Informationen.
51
F.10.2 Root-Passwort
Sie hatten sehr erholsame Sommerferien und haben leider das Passwort
des Root-Users für das DBMS vergessen. Setzen Sie es zurück auf “admin”.
F.11
Installation ausführen
Installieren Sie nun die Datenbank wie im Buch beschrieben über das
Script.
F.12
Benutzerzugriff einschränken
In unserem Beispiel ist eine Benutzereinschränkung zwingend. Wir werden mit mehreren technischen Benutzern arbeiten.
F.12.1 Benutzer definieren
Wir arbeiten in unserem Beispiel mit folgenden Benutzern:
1. schuelerdbadmin : Datenbank-Admin für die Schüler/Kursdatenbank.
Alle Rechte auf dieser einen Datenbank (aber nicht in allen Datenbanken auf dem DBMS!)
2. appadmin : Technischer Benutzer für eine spätere PHP-Anbindung.
Rechte um alle Dateninhalten zu verändern/löschen/erstellen. Darf
Kurse erstellen
3. appuser : Technischer Benutzer für eine spätere PHP-Anbindung.
Rechte um alle Dateninhalten zu lesen und in der Tabelle Schüler
Änderungen vor zu nehmen. Nur Lese-Rechte auf den Kursinhalten
F.12.2 Zugriffe einschränken / austesten
Erstellen Sie nun die Benutzer gemäss den Vorgaben und testen Sie die
Wirksamkeit der Einschänkungen aus.
52
F.13
Weiterführende Arbeiten / mögliche Ideen
Wir können eine einfaches Webfrontend für unsere neue Datenbank dazuentwickeln.
F.13.1 Apache2 einrichten
Installieren Sie apache2 gemäss der Anleitung (ohne phpmyadmin): https://
www.howtoforge.com/ubuntu-lamp-server-with-apache2-php5-mysql-on-14.
04-lts
F.13.2 PHP Script erstellen
Erstellen Sie mittels mysqli2 (PHP-Bibliothek) eine erste, einfach Verbindung mit der Datenbank:
F.14
Zusatz: Workbench installieren auf Ubuntu 14.04
Die Installation von MySQL-Workbench ist in diesem Ubuntu-Release mit
dieser MySQL-Version nicht ganz trivial. Bei Fragen weshalb : fragen. Die
nachstehende Anleitung hilft Ihnen die Software zu installieren:
1. Auf Image kopieren: mysql-workbench-community-6.3.4-1ubu1404amd64.deb
2. Abhängigkeiten installieren:
apt-get install libctemplate2 libgtkmm-2.4-1c2a libtinyxml2.6.2 libzip2
python-paramiko
3. Installieren von DEB-Package:
sudo dpkg -i mysql-workbench-community-6.3.4-1ubu1404-amd64.deb
4. Starten mit
mysql-workbench
2
Doku unter http://php.net/manual/en/book.mysqli.php
53
Anhang G
Übung zu Performance /
mysqlslap und explain
Sie haben die Verwendung der beiden Methoden
• mysqlslap und
• explain
im Unterricht kennen gelernt. Die Software mysqlslap ist in der MySQLInstallation im bin-Verzeichnis enthalten. EXPLAIN selbst ist ein SQL-Befehl
der hilft SQL-Selects zu analysieren.
Im folgenden lernen wir die Commands auf unseren Datenbanken anzuwenden.
Diese Übung wird Ihr VM-Image erheblich belasten. Erstellen Sie zur
Sicherheit im vorneherein einen Snapshot (so das Sie im Notfall den
Stecker ziehen können)
Bemerkung: Über das Zeichen “>” lässt sich der Output eines Befehls in eine
Textdatei umleiten.
G.1 mysqlslap
Eine Hilfestellung für die Software erhalten Sie über “man mysqlslap”
54
1. Suchen Sie in Ihrer Server-Installation nach der Software mysqlslap.
Wo liegt die Datei auf Ihrem Server?
2. Die Software mysqlslap kann als allgemeinen Befehl (ohne spezifische
Datenbank)
3. Erweitern Sie Ihren Befehl um die Optionen und notieren Sie die Testresultate :
• –concurrency
• –iterations
• –number-of-queries
4. Über die Software top oder htop lässt sich das Verhalten des Servers
bei den Lasttests gut beobachten
5. Seien Sie nett, und spendieren Sie Ihrer VM etwas mehr Memory und
CPU. Führen Sie die Tests von oben nochmals durch. Stellen Sie Unterschiede fest?
6. Versuchen Sie nun die Tests auf eine unserer Testdatenbanken (zum
Beispiel einen speziellen SQL)
G.2 explain
Der SQL-Befehl EXPLAIN wird im Abschnitt 7.3.3 im Buch ausführlich erklärt. Führen Sie das Beispiel aus dem Buch auf der Datenbank der Videothek durch. Haben Sie die verschiedenen Parameter verstanden?
Notieren Sie in eigenen Worten den Sinn der Spalten:
• id :
• select_type :
• table :
• possible_keys :
• key_len :
• ref :
• rows :
• extra :
55
Anhang H
Übung zu Performance / PHP
Sie erhalten für diese Übung zwei Dateien:
• testscript.php (PHP-Script das hilft unsere Umgebung zu testen)
• createsql.sql (Erstellt unsere Testumgebung)
H.1
PHP - Script
1. Es gibt eine globale Variable $loop mit der die Iterationen gesteuert
werden können
2. Es gibt im testscript.php ein Beispiel-Funktion doInsertInnodb(). Sie
dient als Beispiel für den Aufruf eines Inserts in unsere innodbTaballe. Verstehen Sie sie?
3. Erstellen Sie auf der Basis von doInsertInnodb() eine Funktion doInsetMyISAM() die (der Name sagt es) Testdaten in die MyISAM-Taballe
einspielt
4. Testen Sie Ihre Funktion - alles okay? Kontrollieren Sie ob die Daten
wirklich eingespielt wurden
5. Erstellen Sie nun eine Zeitvergleich zwischen den beiden Funktionen,
in dem Sie die (siehe “TESTDURCHFUEHREN”) mehrfach für Ihre Funktionen ausführen
56
H.2
Sysbench
1. Sie haben aus der Testreihe mit dem PHP-Script von vorhin ein paar
Messresultate erhalten. Sind wir ehrlich: Ihrer VM ist relativ langweilig. Ändern Sie das über die Verwendung der Software sysbench
2. Installieren Sie die Software sysbench über das Kommando: “sudo aptget install sysbench”
3. Weitere Informationen zur Verwendung der Software erhalten Sie
über “man sysbench”
4. Führen Sie die Lasttests mit PHP unter der Belastung durch Sysbench
• CPU
• Memory
• File I/O
57
Anhang I
Übung : MySQL / Import und
Export
I.1
Voraussetzungen
Arbeiten Sie mit Ihrem MySQL-Server und einer Datenbank Ihrer Wahl.
Alternativ können Sie die auch die “World-Datenbank” nach Anleitung von
der Seite http://dev.mysql.com/doc/index-other.html installieren.
Erstellen Sie sicherheitshalber einen Snap-Shot Ihrer VM!
I.2
mysqldump / lokal
1. Erstellen Sie in einem ersten Schritt ein einfaches Backup Ihrer Datenbank mit den “mysqldump”-Kommando
2. Wir testen jetzt eine Reihe von verschiedenen Optionen durch. Die entsprechenden Beschreibungen entnehmen Sie bitte der Man-Page zum
Kommando.
1. Suchen Sie die Option, damit Sie alle Datenbanken auf Ihrem Server in einem Kommando-Aufruf exportieren können. Betrachten
Sie Ihr Export-File. Was passiert wenn Sie dieses wiederholt auf
einer bestehenden Datenbank einlesen?
2. Exportieren Sie nochmals alle Datenbanken, allerdings mit der
Option, dass zu jeder Datenbank auch ein Drop-Befehl eingefügt
58
wird. Kontrollieren Sie diese Export-Datei - sind alle Daten
enthalten? Importieren Sie nun diesen Export auf Ihre bestehende Datenbank
3. Manchmal ist es notwendig, dass nur bestimmte Tabellen aus bestimmten Datenbanken exportiert werden können. Suchen Sie
die entsprechenden Optionen und testen Sie sie aus.
4. Exportieren Sie Daten vom letzten Schritt in eine CSV-Datei. Öffnen Sie die Datei mit Excel - ist es brauchbar?
I.3
mysqldump / remote
In diesem Abschnitt arbeiten Sie mit Ihrem Banknachbarn zusammen. Wir
wollen Datenbanken über das Netzwerk exportieren und importieren. Damit das funktioniert, müssen gewisse Optionen in der my.cnf (Repetition)
und der Datenbanksecurity aktiviert sein (ebenfalls Repetition). Bei Fragen:
bitte fragen!
Aktivieren Sie die entsprechenden Optionen und testen Sie sie mit einem
einfachen mysql -u root -p -h IP aus!
1. Versuchen Sie in einem ersten Schritt den Export von einer beliebigen
Datenbank des entfernten Servers auf Ihrer lokalen Datenbank zu importieren.
2. Drehen Sie nun den Spiess um: Testen Sie auch den anderen Weg!
Frage: Was muss netzwerktechnisch gegeben sein, dass diese Zugriff funktionieren? Wie sehen die Zugriffe in Ihrem Unternehmen bezgl. den Netzwerkservern aus?
I.4
mysqldump / remote und ssh-gesichert
Manchmal sind direkt Zugriffe auf DBMS-System nicht gegeben - aber oft
ist es möglich per SSH auf die Server zugreifen zu können. Sie haben eine
Möglichkeit kennen gelernt, wie Sie das bezgl. DBMS ausnutzen können.
Damit diese Übung funktioniert, müssen Sie SSH-Zugriff haben auf den entfernten Server. Testen Sie das aus! Wenn es nicht klappen sollte - bitte melden!
59
1. Versuchen Sie in einem ersten Schritt den Export von einer beliebigen
Datenbank des entfernten Servers auf Ihrer lokalen Datenbank zu importieren - per SSH!
2. Drehen Sie nun den Spiess um: Testen Sie auch den anderen Weg!
I.5
Weiterführendes : FIFO-Datei
Da ein Export und Import über das Netzwerk unter Umständen ziemlich
lange dauern kann (und das Netzwerk nicht immer zu Verfügung stehen
muss), gibt es die Möglichkeit den Export auf eine FIFO-Datei umzuleiten
und den Import von dieser FIFO-Datei konsumieren zu lassen.
Das erhöht die Stabilität enorm!
Lesen Sie sich in die Verwendung von FIFO-Dateien ein (Recherche / Google)
und testen Sie die Übungen von oben mit dieser FIFO-Datei aus.
60
Anhang J
Übung : Backup in MySQL
J.1
Voraussetzungen
Arbeiten Sie mit Ihrem MySQL-Server und einer Datenbank Ihrer Wahl.
Alternativ können Sie die auch die “World-Datenbank” nach Anleitung von
der Seite http://dev.mysql.com/doc/index-other.html installieren.
Erstellen Sie sicherheitshalber einen Snap-Shot Ihrer VM!
J.2
Backup mit File-Copy
Sie haben verschiedene Backup-Möglichkeiten im Unterricht kennen gelernt - eine davon ist das file-basierende Backup. Welche Einschränkungen
kennen Sie hier?
1. Suchen Sie auf Ihrem MySQL-Server die entsprechenden Dateien.
Stoppen Sie den Server und erstellen Sie eine Sicherheitskopie Ihrer
Daten. Repetition: Welche Storage Engines haben Sie im Einsatz?
2. Stoppen Sie den MySQL-Server. Löschen Sie nun die Daten auf Ihrem
Orginal-Speicherplatz und kopieren Sie die Daten von Ihrem Partner
an dessen Stelle. Starten Sie den MySQL-Server erneut. Kontrollieren
Sie die Daten auf Ihrem Server.
61
J.3
Backup / Point in Time Restore
1. Modifizieren Sie die /etc/mysql/my.cnf derart, dass der Server neu
Binary-Logs erstellt
2. Starten Sie den MySQL-Server neu und kontrollieren Sie ob neu die
Binary-Logs geschrieben werden
3. Führen Sie mittels mysqldump ein Full-Backup der Datenbank Ihrer
Wahl aus und speichern Sie die Datei als fullbackup.sql. Ändern Sie
nun einige Dinge in Ihrer Datenbank (Inserts / Updates usw.). Als Abschluss löschen Sie eine Tabelle
4. Stoppen Sie den MySQL-Server
5. Konvertieren Sie das Binary-Log in ein SQL-File (mittels mysqlbinlog)
und speichern Sie das File als mysqllog.sql. Suchen Sie darin nach dem
Zeitpunkt, in welchem Sie “versehentlich” die Tabelle gelöscht hatten.
6. Extrahieren Sie aus mysqllog.sql den Teil, bevor Sie die Tabelle gelöscht haben und speichern diesen Teil (mittels mysqlbinlog) als mysqllog_extrakt.sql
7. Führen Sie einen Restore der Datei fullbackup.sql aus.
8. Führen Sie anschliessen den Restore für mysqllog_extrakt.sql aus
9. Verifizieren Sie, dass der Restore funktioniert hat
J.4
Erweitert : Script mit mysqldump
Da mysqldump nur ein dummes CLI-Kommando ist, können Sie es natürlich
nach Belieben in Bash-Scripts nutzen.
Erstellen Sie ein Bash-Script das einen Export von allen Datenbanken auf
Ihrem DBMS ausführt und rufen Sie Ihr Script aus CRON auf.
62
Anhang K
Übung : PHP und Bilder aus
einer Datenbank
Wir werden in dieser Übung Bilder in einer Datenbank ablegen und über
eine andere Webseite wieder anzeigen lassen. Wir benutzen dazu unser
Linux-Image - diesese muss allerdings mit folgenden zwei Komponenten
ausgestattet werden:
1. Webserver (typischerweise Apache oder Nginx)
2. PHP im Webserver mit MySQL-Unterstützung
Folgen Sie der Anleitung unter (https://www.howtoforge.de/anleitung/ubuntu14.04-linux-apache-mysql-php-lamp/)[https://www.howtoforge.de/anleitung/ubuntu14.04-linux-apache-mysql-php-lamp/] um die beiden Komponenten zu
installieren.
Passen Sie in den Beispieldateien jeweils Ihre Angaben an
(Datenbank, Tabelle, Benutzer und Passwort)
K.1
Datenbank vorbereiten
Damit die Datenbank die Bilder überhaupt speichern kann, benötigen wir
ein entsprechendes Datenmodell. Erstellen Sie eine neue Tabelle (und/oder
eine neue Datenbank) mit folgenden Attributen:
63
1. imageId tinyint(3), not null, autoincrement
2. imageType varchar(25), not null, default ”
3. imageDate mediumblob, not null
K.2
Images uploaden
Damit wir ein Image in der Datenbank einfügen können, folgen wir folgenden 3 Schritten:
1. Image hochladen
2. Image Eigenschaften auslesen
3. Image in Blob speichern
Betrachten Sie dazu die komplette Datei : imageUpload.php
1
2
// --> Image als Binarydaten
3
$imgData =addslashes(
file_get_contents($_FILES[’userImage’][’tmp_name’]));
4
5
6
// --> Eigenschaften des Bildes auslesen
7
$imageProperties =
getimageSize($_FILES[’userImage’][’tmp_name’]);
8
9
10
// --> Alles in der DB speichern
11
$sql = ”INSERT INTO output_images(imageType ,imageData)
VALUES(’{$imageProperties[’mime’]}’, ’{$imgData}’)”;
12
Die restlichen Code-Fragmente sind HTML- oder PHP-spezifisch. Verstehen
Sie sie? Wenn nicht: Fragen!
K.3
Images anzeigen
Damit wir das Bild aus der Datenbank in einer Webseite anzeigen können,
folgen wir folgenden Schritten:
64
1. Image Informationen und Binäre Daten aus dem BLOB auslesen
2. Content-Type in HTML setzen (image/jpg, image/gif, …) mittels PHP
header()
3. Zusammen anzeigen
Betrachten Sie dazu die kompletten Datein : imageView.php, listimages.php
imageView.php : Reines Auslesen der Image-Informationen. Wird aufgerufen von listimages.php
1
2
// --> Select auf das entsprechende Bild
3
$sql = ”SELECT imageType,
4
imageData FROM output_images
5
WHERE imageId=” . $_GET[’image_id’];
6
7
// ...diverses
8
9
10
// --> Resultat auslesen / Contenttype setzen und Bild-Daten ausgeben
$row = mysql_fetch_array($result);
11
header(”Content-type: ” . $row[”imageType”]);
12
echo $row[”imageData”];
listimages.php : HTML-Informationen, alle Bilder selektieren und dann einzeln (über imageView.php) ausgeben
1
2
// --> Alle IDs von den Bildern holen
3
$sql = ”SELECT imageId FROM
output_images ORDER BY imageId DESC”;
4
5
$result = mysql_query($sql);
6
7
// ...diverses
8
9
// --> PHP-Funktion im Body um die Bilder nun
10
// einzeln aus der Datenbank zu holen
11
<?php
12
while($row = mysql_fetch_array($result)) {
13
?>
65
14
<img src=
15
”imageView.php?image_id=<?php echo $row[”imageId”]; ?>” />
16
<br/>
17
<?php
18
}
19
mysql_close($conn);
20
?>
66
Anhang L
Übung: Datenbank
importieren und exportieren
Die Beispieldatenbank zum Unterricht können Sie auf verschiedene Arten
auf Ihr System bekommen. Die wichtigsten drei Arten sind:
1. Erstellen Sie eine neue Datenbank mit dem Beispielskript
2. Sie verwenden ein Backup der Datenbank, um diese damit wieder herzustellen
3. Sie verwenden die Datenbankdateien, um diese am Server zu registrieren
Wir werden jetzt eine Kurzvariante der dritten Variante durchspielen.
L.1
Import von Datenbanken (Registrierung)
1. Kopieren Sie die Dateien wawi_data.mdf und wawi_log.ldf in ein lokales Verzeichnis auf Ihrem Rechner, zum Beispiel in den StandardDatenbankordner MSSQL12.MSSQLSERVER\MSSQL\DATA.
2. Starten Sie das SQL Server Management Studio und melden Sie sich
am zuvor installierten SQL Server mit der Windows-Authentifizierung
an.
3. Klicken Sie auf den Ordner Datenbanken mit der rechten Maustaste
und wählen Sie den Befehl Anfügen . . . aus.
67
4. Klicken Sie auf Hinzufügen . . . und wählen Sie die gewünschte Datenbank, beispiels- weise die primäre Datendatei wawi_data.mdf der Datenbank wawi.
5. Nach einem Klicken auf OK wird die gewählte Datenbank im Dialog
angezeigt.
6. Bestätigen Sie abermals mit OK , um den Vorgang erfolgreich abzuschliessen.
7. Als Ergebnis wird die neue Datenbank wawi im Objekt-Explorer angezeigt.
L.2
Bedingung der verschiedenen Zugriffsmethoden
Nachdem Sie die Datenbank im vorhergehenden Schritt importiert haben,
können Sie nun den
• Abfrageeditor und
• die SQLCMD-Konsole
ausprobieren.
Erstellen Sie verschiedene SQL-Befehle und testen Sie sie in den beiden
Werkzeugen aus!
L.3
Export von Datenbanken (Import und ExportAssistent)
Ein sehr praktisches Tool ist der Import/Export-Assistent. Er erlaubt es in
wenigen Schritten, Daten in oder aus einer SQL Server-Datenbank zu bringen. Er kann wahlweise aus dem Management Studio heraus oder auch direkt über Start gestartet werden. Der Import/Export-Assistent basiert auf
der Technologie der Integration Services.
Nutzen wir ihn in der ersten Variante, um die Artikeltabelle aus der Beispieldatenbank wawi nach Excel zu exportieren.
1. Markieren Sie die Datenbank wawi und wählen Sie im Kontextmenü
den Befehl Tasks/Daten exportieren . . . aus. Der Assistent startet mit
68
einem Startbildschirm, den Sie für spätere Starts des Assistenten auch
deaktivieren können. Fahren Sie gleich mit der Schaltfläche Weiter
fort.
2. Der erste eigentliche Schritt ist die Auswahl der Datenquelle für den
Export. In der Version 2014 wird standardmässig nicht mehr der SQL
Server Native Client, sondern der .Net Framework Data Provider für
ODBC dazu vorgeschlagen. Übernehmen Sie dazu die Optionen wie in
Abbildung L.1 auf Seite 70 vorgeschlagen wird.
3. Im nächsten Schritt ist das Ziel für den Export auszuwählen. Die zur
Verfügung stehende Auswahl ist teilweise davon abhängig, ob die entsprechenden Programme auch auf dem Rechner installiert sind. So
können Sie ohne installiertes Access und Excel in diese Formate nicht
exportieren. Führen Sie anfänglich einen Export nach einem beliebigen Format aus. Probieren Sie alle Formate durch!
4. Der nächste Schritt ist die Auswahl, welche Daten aus der gewählten
Datenbank exportiert werden sollten. Wie Sie in Abbildung L.2 auf
Seite 70 sehen, haben Sie dazu prinzipiell die zwei Möglichkeiten, entweder eine Tabelle oder Sicht auszuwählen oder ein SQL-Statement
zu verwenden. Für ein SQL Statement steht allerdings innerhalb des
Assistenten nur ein einfaches Eingabefeld ohne jeglichen Komfort zur
Verfügung.
5. Wählen Sie aus der Auflistung die Tabelle artikel für den Export aus.
Über die Schaltfläche Zuordnungen bearbeiten . . . könnten Sie Spaltennamen und Datentypen anpassen (Abbildung L.3 auf Seite 71).
6. Sollten aus Sicht des Assistenten mögliche Probleme bei den Datentypzuordnungen zwischen Quell- und Zielspalten auftauchen, werden
diese als Warnungen im nachfolgenden Dialog angezeigt.
7. Schliessen Sie den Assistenten mit den abschliessenden Zusammenfassungen ab.
69
Abbildung L.1: Datenquelle auswählen
Abbildung L.2: Option für Export
70
Abbildung L.3: Quellen wählen
71
Anhang M
LBV Beschreibung
M.1 Grobbeschreibung
• Anzahl Jahre Gültig X Jahre
• Detailbeschreibung Der Lernende wird darauf vorbereitet, DatenbankmanagementSysteme nach Vorgaben und Anforderungen in auszuwählen, in Betrieb zu nehmen und anschliessen auch zu betreiben. Betrachtet werden während des Moduls zwei verschiedene DatenbankmanagemntSysteme um auch Verknüpfungen besser herstellen zu können.
• Ergänzung Die Leistungsbeurteilung (LB) besteht aus drei benoteten
Bewertungsblöcken:
– Bewertungsblock 1, bestehend aus einer schriftlichen Leistungsbeurteilung (Theoretische Komponenten des Themas schriftlich
bearbeiten)
– Bewertungsblock 2, bestehend aus einer schriftlichen und
praktischen Leistungsbeurteilung (Installation von DBMS / Konfiguration DBMS und Anbindung von Applikationen)
– Bewertungsblock 3, bestehend aus einer schriftlichen und praktischen Leistungsbeurteilung (Installation von DBMS / Konfiguration DBMS und Anbindung von Applikationen)
72
M.2 Teil 1
• Form Schriftliche Einzelprüfung / Schriftlicher Test
• Zeitpunkt für dieses Element in Bezug auf die Lektionen (ca. im
Modulverlauf) 20%
• Gewichtung 20%
• Dauer in Lektionen (ca. Anteil der Unterrichtszeit) 1
• Element-Beschreibung Schriftliche Einzelarbeit bestehend aus:
– Mulitple-Choice Aufgaben
– Schriftliche Fragenstellungen
– Schriftliche Aufgabenstellung (Uebungen)
• Hilfsmittel Es dürfen keine Hilfsmittel benutzt werden
• Bewertung 20%
• Zu überprüfende Handlungsziele
– 1.1 / 1.3
– 2.2
– 5.1
– 6.1
M.3 Teil 2
• Form Schriftliche Einzelprüfung / Schriftlicher Test zum DBMS 1
• Zeitpunkt für dieses Element in Bezug auf die Lektionen (ca. im
Modulverlauf) 60%
• Gewichtung 40%
• Dauer in Lektionen (ca. Anteil der Unterrichtszeit) 2
• Element-Beschreibung Schriftliche Einzelarbeit bestehend aus 2 Teilen, einem reinem theoretischem und einem praktischen Teil.
• Hilfsmittel
73
– Für den theortischen Teil dürfen keine Unterlagen verwendet
werden
– Für den praktischen Teil dürfen alle Unterlagen verwendet werden
• Bewertung
– 1/3 der Punkte für den Theorie-Teil
– 2/3 der Punkte für den Praxis-Teil
• Zu überprüfende Handlungsziele
– 1.2 / 1.3
– 2.1 / 2.3
– 3.1 / 3.2 / 3.3
– 4.1
– 5.2 / 5.3 / 5.4
M.4 Teil 3
• Form Schriftliche Einzelprüfung / Schriftlicher Test zum DBMS 2
• Zeitpunkt für dieses Element in Bezug auf die Lektionen (ca. im
Modulverlauf) 100%
• Gewichtung 40%
• Dauer in Lektionen (ca. Anteil der Unterrichtszeit) 2
• Element-Beschreibung Schriftliche Einzelarbeit bestehend aus 2 Teilen, einem reinem theoretischem und einem praktischen Teil.
• Hilfsmittel
– Für den theortischen Teil dürfen keine Unterlagen verwendet
werden
– Für den praktischen Teil dürfen alle Unterlagen verwendet werden
• Bewertung
74
– 1/3 der Punkte für den Theorie-Teil
– 2/3 der Punkte für den Praxis-Teil
• Zu überprüfende Handlungsziele
– 1.2 / 1.3
– 2.1 / 2.3
– 3.1 / 3.2 / 3.3
– 4.1
– 5.2 / 5.3 / 5.4
75
Anhang N
Images
Folgende Inhalte müssen auf den Images installiert und entsprechend verteilt werden.
N.1
Ubuntu 14.04
Software:
• MySQL 5.6
• PHPmySQL
• MongoDB
• MongoDB-Frontend?
• Minimalistic Unity-GUI
• PERL und PHP
• Apache2.0
• PDF-Reader
• Shutter
• Tastatur kontrollieren
Unterlagen:
• PDF zu Linux
76
N.2
Windows 2012
Software:
• .NET
Unterlagen:
• Ebooks?
• Tastatur und Regionen konrollieren
• Patchen abstellen
• Firewall abstellen
77
Anhang O
Lernziele Modulnummer 141
Name : Datenbanksystem in Betrieb nehmen Kompetenzen:
• Datenbanksystem installieren
• Datenbanksystem konfigurieren
• Urladung durchführen
• Funktionalität sicherstellen und Übergabe in den produktiven Betrieb
durchführen.
O.1
Handlungsziele
1. Datenbanksystem nach Vorgaben (zB. Anzahl Benutzer, Speicherbedarf, Transaktionsvolumen, Verfügbarkeitsanforderungen) installieren und für den produktiven Betrieb einrichten bzw. vorbereiten.
Handlungsnotwendige Kenntnisse:
1. Kennt Arten von Datenbanken (zB. relationale-, objektorientierte, hierarchische, Verteilte DB) und deren typische Merkmale der
physischen Datenorganisation.
2. Kennt wichtige Parameter zur Konfigurierung eines Datenbanksystems und deren Bedeutung für die Funktionalität und Performance.
3. Kennt eine Vorgehensweise um ein Datenbanksystem nach Vorgaben umzusetzen.
78
2. Datenbank und Tabellen nach Vorgabe einrichten. Testdaten laden
und geforderte Funktionalität überprüfen. Urladung/Datenmigration
vorbereiten, dokumentieren und durchführen.
Handlungsnotwendige Kenntnisse:
1. Kennt die grundlegenden Aktionen und ihre Abfolgen, welche
zum Aufsetzen einer Datenbank in einem Datenbanksystem
notwendig sind.
2. Kennt den Normalisierungsprozess zur Überführung von logischen Schemas in Datenbankschemas.
3. Kennt die Bedeutung von Funktionen und Komponenten des Data
Dictionary (Katalog der Metadaten) in einem Datenbanksystem.
3. Datenbanksystem für den operativen Betrieb vorbereiten, Security-,
Backup-, Restart- und Recovery-Prozeduren (Scripts) bereitstellen und
testen. Systemtests (Volumen-, Stress- und Crash-Tests) durchführen.
Handlungsnotwendige Kenntnisse:
1. Kennt Sinn und Zweck von Security-, Backup-, Restart- und
Recovery-Prozeduren in einem Datenbanksystem für die Sicherstellung des operativen Betriebs.
2. Kennt die wesentlichen Schritte, die bei einem Test durchlaufen
werden.
3. Kennt spezifische Testmethoden für Datenbanksysteme zur Überprüfung von Performance und Verfügbarkeit.
4. Mittels Standardreports Performance und Verfügbarkeit überprüfen
und interpretieren und. Erforderliche Optimierungsmassnahmen
durchführen.
Handlungsnotwendige Kenntnisse:
1. Kennt mögliche Optimierungsmassnahmen zur Verbesserung
der Performance und Verfügbarkeit.
5. Grundberechtigungen für den produktiven Einsatz einrichten und
Standardreports in Form von Views, Stored Procedure endbenutzergerecht zur Verfügung stellen.
Handlungsnotwendige Kenntnisse:
79
1. Kennt die Vorgehensweise für die Inbetriebnahme und Betriebsfreigabe einer Datenbank.
2. Kennt Möglichkeiten zur Vergabe von Zugriffsrechten.
3. Kennt das Vorgehen um Business Logik in Stored Procedures abzubilden.
4. Kennt das Vorgehen um Abfragen in Views zur Verfügung zu stellen.
6. Übergabe in die operative Umgebung planen durchführen und Abnahmeprotokoll erstellen.
Handlungsnotwendige Kenntnisse:
1. Kennt den Inhalt und Aufbau einer Dokumentation (zB.
Installations-, Lizenz-, Betriebs- und Wartungsdokumentation).
80
Anhang P
Semesterplan
Wochennr.
Inhalt / Lernziele
Aufgaben
33
Begrüssung, Administratives
Grundlegendes
Kapitel 1
nachlesen bis
Kapitel 2.4
vorbereiten
34
Normalisierung,
Uebungen zur
Normalisierung,
ER-Modelle, Transformation
Uebungen zur
Transformation,
Kapitel 2 fertig
lesen
35
Repetition ERM, Transformation,
Erster Kontakt mit MySQL (Kapitel 3 -
Prüfungsvorbereitung
4.1 ausführen)
Kapitel 3 - 4.1
fertig machen
36
SCHILF : SCHULFREI
37
LB 1
Datenbankzugriff einschränken
Kapitel 4 auf
(Theorie und Praxis)
Image
abschliessen
81
Wochennr.
Inhalt / Lernziele
Aufgaben
38
Selbstständige Arbeit an Projekt
Abschluss
selbständige
Arbeit/Projekt
Workbench-Installation
39
Prüfungsbesprechung
Theorie zu SQL-Joins / Teil 1
40
Kapitel 5.1 lesen
Theorie zu SQL-Joins / Teil 2
Theorie zu SP / Views
Praxis zu SP / Views auf
Kapitel 5.1 auf
Videodatenbank
DB ausführen
41
HERBSTFERIEN
42
HERBSTFERIEN
43
Repetition SP / Views auf eigener DB
44
Theorie zu Storage Engines /
Kapitel 7
Performance
vorbereiten
Praxis zu Storage Engines /
Performance
45
Systemeigenschaften (Filesystem /
/ Zugriffsmög-
ini-Files / Security
lichkeiten)
PHP - Connection
Kapitel 6
Theorie und Praxis zu Import / Export
Theorie zu Backup
Theorie-Backup
vorbereiten
46
Praxis Backup
Attribute /
Datentypen
repetieren
Attribute
47
Google / Cloud-Service
Prüfungsvorbereitung
48
LB 2
KEINE
49
Installation MSSQL
Theorie Hintergrund MSSQL
82
Wochennr.
Inhalt / Lernziele
Aufgaben
50
Prüfungsbesprechung LB 2
Import, Export und Backup bei
MSSQL
51
MSSQL :
52
WEIHNACHTSFERIEN
53
WEIHNACHTSFERIEN
1
LB3
Prüfungsvorbereitung
2
Reservetermin
Prüfungsvorbereitung
3
Modulprüfung
KEINE
4
Prüfungsbesprechung, Abschluss
E
xkurs NOSQL
Tabelle P.1: Semesterplan
83
Herunterladen