Datenbank

Aus Fachinformatiker Azubi
Wechseln zu: Navigation, Suche

Hier kommen alle Informationen über Datenbanken.

Fragen

Wie funktioniert eine Replikation?

Zuerst wird ein Abbild erstellt und auf andere DB repliziert. Soblad Daten verändert werden, dann wird dies Synchronisiert.

Wie verhält sich die Referentielle Integrität beim löschen?

Wegen der Dateninkonsistenz ist das löschen nicht problemlos möglich. Zuerst muss man alle Beziehung in Form der Fremdschlüssel löschen/ändern. Erst dann kann der Datensatz gelöscht werden.

Was ist ein Inner-Join?

Bei einem Inner-Join werden zwei Tabellen zusammengeführt. Sobald die Kriterien erfüllt sind, werden dann nur die Daten ausgegeben, wo der Bezug vorhanden ist.

Was hat ist mit Left- sowie Right-Join gemeint?

Es wird alle Selektiert von der linken/rechten Tabelle. Es muss dazu kein übereinstimmender Bezug/Wert vorhanden sein. Bei einer Selektion von Artikel und Artikelgruppen, wird z.B. alle Artikel ausgegeben auch wenn die in keiner Gruppe zugeordnet sind! (siehe http://www.bjoerns-choice.de/archives/20)

Was ist eine Procedure?

In mehreren Datenbanksystemen kann man Prozedure (Methoden) erstellen. Dadurch ist eine gewisse Sicherheit als Performance Verbesserung möglich.

Was ist ein Trigger?

Ein Trigger löst eine Funktion nach einem Insert, Update oder Delete aus. Diese Funktion prüft letztendlich ob die Aktion erlaubt ist oder nicht. Falls es erlaubt ist, wird die Aktion ausgeführt ansonsten nicht.

Was ist mit einer Transaktion gemeint?

Die Daten sollen bei der Aktion vollständig ausgeführt werden oder im Fehlerfall abgebrochen werden.

  • Gestartet wird eine transaktion mit beginn
  • Übernohmen mit commit
  • Änderungen zurücknehmen mit rollback
Was ist mit Persistenz gemeint?

Die Daten werden sind stehen Persistent (Dauerhaft) bereit. Es handelt sich nicht um einen flüchtigen Speicher, sodass nach einem Stromausfall die Daten Persistent (Dauerhaft) verfügbar sind.

Was ist mit dem Acid Prinzip gemeint?

siehe (http://de.wikipedia.org/wiki/Transaktion_(Informatik)#ACID-Prinzip)

Shell

show databases;
use mysql;
show tables;
describe user;


Weiteres

Mysql Create Database

1. Einloggen

mysql -u root -p

2. Datenbank erstellen

create database fachinformatiker_azbui;

3. Übersicht der Datenbanken

show databases;

Mysql SQL Import

Import einer SQL Datei mittels der Shell

mysql --default-character-set=utf8 -u root -p < 2011-02-23_19h51m.Mittwoch.sql

Import zu einer bestimmten Datenbank

mysql -u root -p DATA-BASE-NAME < import.sql

Import ohne entpacken

gunzip < db.sql.gz | mysql -u root -p DATA-BASE-NAME

Mysql Root Passwort ändern

Wenn Sie für den Benutzer root,das Benutzerpassword änder möchten:

mysqladmin --user=root --password=oldPassword password newPassword

Sollte Sie keine Shell haben dann können Sie dies benutzen:

UPDATE user SET Password=PASSWORD('newPassword') WHERE user='root';
flush privileges;

Mysql Datenbank sichern

Für die Shell

mysqldump --single-transaction -u root -pMEINPASSWORD --all-databases | gzip -9 > db.sql.gz

Eine DB

mysqldump --single-transaction --default-character-set=utf8 -u root -pMEINPASSWORD --databases mydbname | gzip > db.sql.gz

Eine DB - Plain ohne gzip

mysqldump --single-transaction --default-character-set=utf8 -u root -pMEINPASSWORD --databases mydbname > db.sql

DB Transfer

mysqldump --single-transaction --databases mydbname --single-transaction --compress --order-by-primary –u root -pMEINPASSWORD | mysql --host=hostname –-port=3306 –u root -pMEINPASSWORD

Mysql Administrieren

Auflistung jede Datenbankgröße:

SELECT table_schema "DB", SUM( data_length + index_length) / 1024 / 1024 
"Size in MB" FROM information_schema.TABLES GROUP BY table_schema;

Auflistung jede Tabellengröße der DB CHANGEME:

SELECT table_name AS "Tables", 
round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" 
FROM information_schema.TABLES 
WHERE table_schema = "CHANGEME"
ORDER BY (data_length + index_length) DESC;

Clustering

Sobald man die Datenbank replizieren möchte versucht meisten folgende Strategie:

  • Master (nur Schreibrechte)
  • Slave (nur Leserechte) Replziert