Prüfungsvorbereitung LB1
1 Recherche Auftrag und Einschätzung von einem "unbekannten" DBMS
DBMS: Db2
Db2 ist von IBM entwickelt und ist ein RDBMS. Db2 nutzt ACID und die Konsistenz und Verfügbarkeit des CAP-Theorems. Es ist also ähnlich zu MySQL.
2 Durchführung einer Installation
3 Anwendung von Storage Engines auf eine Tabelle
Alle anwendbare SE's anzeigen:
SHOW ENGINES;
MyISAM
auf Tabelle anwenden:
CREATE TABLE testtable (
id int
) ENGINE=MyISAM;
4 Anwendung von Security/Berechtigungen auf eine Umgebung
5 Transkationsisolation anwenden und konfigurieren
Derzeitige Transkationsisolation anzeigen:
SHOW VARIABLES LIKE "transaction_isolation";
Transkationsisolation global ändern:
SET PERSIST transaction_isolation='SERIALIZABLE';
Scopes:
- PERSIST (bleibt auch nach Neustart von MySQL)
- GLOBAL (setzt sich nach Neustart von MySQL zurück)
- SESSION (setzt sich nach ausloggen von MySQL zurück)
- ohne scope (nur für eine Transaktion)
Bei PERSIST
und GLOBAL
ist ein Ausloggen nötig.
6 Protokollierung langsamer Abfragen aktivieren
7 Umsetzung Referenzielle Integrität
Um die referenzielle Integrität umzusetzen, muss per Foreign Keys auf Primary Keys referenziert werden.
CREATE TABLE categories(
cat_id int not null auto_increment primary key,
cat_name varchar(255) not null,
cat_description text
) ENGINE=InnoDB;
CREATE TABLE products(
prd_id int not null auto_increment primary key,
prd_name varchar(355) not null,
prd_price decimal,
cat_id int not null,
FOREIGN KEY fk_cat(cat_id) REFERENCES categories(cat_id) -- Referenz setzen
ON UPDATE CASCADE -- was passieren soll wenn die Referenz geupdated wird
ON DELETE RESTRICT -- was passieren soll wenn die Referenz gelöscht wird
)ENGINE=InnoDB;
Hier werden zwei Tabellen erstellt categories
und products
. Der FK wird fk_cat
benannt und verlinkt cat_id
der beiden Tabellen. ON UPDATE
definiert was bei einem UPDATE
passieren soll. ON DELETE
definiert was bei DELETE
passieren soll.
Folgende Konfiguration sind möglich:
RESTRICT
/ NO ACTION
:
==> Änderung auf referenzierten Tabelle nicht erlaubt
CASCADE
:
==> Änderung auf referenzierten Tabelle werden synchronisiert
SET NULL
:
==> Bei Änderung auf referenzierten Tabelle, wird der FK's auf der Child-Tabelle auf NULL
gesetzt
8 Indexierungstypen aufgrund Anforderungen umsetzen
9 Datentypen sinngemäss richtig anwenden
10 Auftrag : Import und Export von verschiedenen Datentypen
11 Auftrag : Durchführung von Backup/Restore (nicht PITR)
12 Auftrag : Migration von Daten durchführen
13 Auftrag : Beispielapplikation installieren und Datenauslesen
14 Auftrag : Stored Procedures importieren, anzeigen, überarbeiten
15 Auftrag : Stored Procedures anwenden
16 Auftrag : Views importieren, anzeigen, überarbeiten
17 Auftrag : Views anwenden
18 Auftrag : Triggers importieren, anzeigen
19 Auftrag : (Theorie) Schlechte Query - verbessern Sie die Performance
20 Auftrag : (Praxis) Schlechte Query - verbessern Sie die Performance
21 Auftrag : (Theorie) - Vor- und Nachteile von MongoDB erläutern
Vorteile:
- Skalierbarkeit: MongoDB ist sehr skalierbar, was es ermöglicht gute Cluster zu bauen.
- Replikation: Daten können schnell und einfach auf mehrere Systeme kopiert werden.
- Speicherung: Auch grosse Daten können schnell gespeichert und gelesen werden.
- Benutzerfreundlichkeit: Einfach zu lernen und logisch aufgebaut.
Nachteile:
- Speicherverbrauch: MongoDB braucht vergleichsweise viel Speicher.
- Stored Procedures: existieren nicht
22 Auftrag : (Theorie) - Begrifflichkeiten von MongoDB vs. MySQL
23 Auftrag : (Praxis) - Installation von MongoDB
24 Auftrag : (Praxis) - Konfigurationsauftrag von MongoDB (Binding anpassen, Verzeichnisse anpassen)
25 Auftrag : Import und Export von verschiedenen Datensätzen
Export:
mongoexport --db=cities --collection=cities --out=export_cities.json
26 Auftrag : Backup und Restore durchführen
27 Inbetriebnahme (URI - Benutzer) einer vorgegebenen Applikation (inkl. Anpassungen/Korrekturen)
28 Umsetzung Referenzielle Integrität mit MongoDB
29 Design-Umsetzung von einem einfachen Beispiel (Regeln korrekt anwenden)
30 Umsetzung von Sharding und Replication
Tag 13 - Kapitel 1.3
Tag 13 - Kapitel 1.4
31 Umsetzung von Indexierungen anhand von einer Praxisaufgabe (inkl. explain()
)
Quellen: