DCL = Data Control Language |
DDL = Data Definition Language |
1. Datenbankobjekte
1.1. Views
Eine View ist eine virtuelle Tabelle, die auf den Ergebnissen einer Abfrage basiert. Views können dazu dienen, die Komplexität von Daten zu reduzieren, die Sicherheit zu erhöhen oder den Zugriff auf Daten zu erleichtern.
CREATE VIEW <VIEW_NAME> AS
SELECT <COL_1>, <COL_2>, <COL_n>
FROM <TABLE_NAME>
WHERE <CONDITION>
1.2. Indexe
Indexe können helfen, die Performance der Datenbank zu verbessern. Ein Index kann vor allem die Suche und das Sortieren nach bestimmten Feldern beschleunigen.
CREATE INDEX <INDEX_NAME>
ON <TABLE_NAME> (<COL_1>, <COL_2>, <COL_n)
1.3. Constraints
Constraints beschränken gewissen Datensätze, nur eingeschränkte Werte einzunehmen. Hierbei gibt es mehrere Arten von Constraints:
1.3.1. Primary Key
CREATE TABLE <TABLE_NAME> (
<COL_1> <DATATYPE> PRIMARY KEY,
<COL_2> <DATATYPE>,
<..>
);
Bei diesem Beispiel wird eine Tabelle erstellt, in der <COL_1>
als Primary Key definiert ist.
Der Primary Key wird normalerweise am Anfange eines create table statements angegeben. |
1.3.2. FOREIGN KEY
CREATE TABLE <TABLE_NAME> (
<COL_1> <DATATYPE>,
<COL_2> <DATATYPE>,
<..>,
FOREIGN KEY (<COL_1>)
REFERENCES <OTHER_TABLE> (<OTHER_COLUMN>)
)
Bei diesem Beispiel wird eine Tabelle erstellt, in der <COL_1>
als Foreign Key auf Tabelle <OTHER_TABLE>
mit der Spalte <OTHER_COLUMN>
definiert ist.
Foreign Key werden in einem create table statement normalerweise am Schluss angegeben. |
2. Datenbankoptimierung
2.1. Indizierung
Bei großen Datenbanken kann die Suche nach speziellen Daten eine gewisse Zeit in Anspruch nehmen. Durch das Erstellen von Indizes für spezielle Attribute oder Gruppen von Attributen kann eine Suche erheblich verbessert werden. Hier muss der DB Server nicht mehr in der gesamten Tabelle suchen, sondern nur noch innerhalb des Indizes, welches die Suchzeit stark verringert. Ein Index is vergleichbar mit dem Inhaltsverzeichnis eines Buches.
2.2. Caching
caching ist eine Methode, bei der häufiger genutzte Daten nahe am Ort ihrer Verwendung vorgehalten werden. Ein Datenbank-Cache ist so konfiguriert, dass er oft abgefragte Datenelemente speichert. Dadurch kann die Zeit reduziert werden, die notwendig wäre, um erneut auf den Datensatz zuzugreifen. Dieser Mechanismus verbessert sowohl die Geschwindigkeit als auch die Effizient des Gesamtsystems.
2.3. Anfragen optimierung (Query Optimization)
Bei komplexen Datenstrukturen kann die Art und Weise, wie eine Query gestellt wird, einen erheblichen Einfluss auf die Zeit haben, die für die Bearbeitung benötigt wird. Bei der Anfragenoptimierung geht es darum, die besten Ausführungspläne für eine gegebene Anfrage zu finden. Dies könnte beispielsweise bedeuten, dass die Reihenfolge geändert wird, in der Tabellen in die Abfrage einbezogen werden, oder dass dafür gesorgt wird, dass Indizes optimal genutzt werden.
2.4. Daten-Normalisierung
Durch die Durchführung der Daten-Normalisierung können redundante Daten entfernt werden, was dazu beitragen kann, die Integrität der Daten zu erhalten und zu verbessern
2.5. Partitionierung
Hierbei werden große Tabelle in kleinere, überschaubare Teile unterteilt. Diese werden separat verwaltet und abgefragt, was zu einer schnelleren Bearbeitungszeit auf der DB führt.
2.6. Andere Optimierungsmöglichkeiten
Zusätzlich gibt es dann noch die Möglichkeit, die Konfigurationen optimal für die Datenbank anzupassen. Wenn sich hierdurch Bottlenecks verhindern lassen, erhöht dies die Geschwindigkeit.
In echten Anwendungsfällen wird die Performance meist so optimiert: Der Chef wird nach einem bessern DB Server gefragt ;)
3. Rollen und Berechtigungen
Rollen und Berechtigungen in einer DB definieren, was eine Gruppe von Benutzern tun darf, und was nicht. In der Oracle DB, wie auch in vielen anderen, wird hier nach dem RBAC Prinzip gehandelt.
RBAC = Role Based Access Control |
Hierbei gibt es mehrere Berechtigungen, die vergeben werden können:
-
Lesen
-
Schreiben
-
Ändern
-
Löschen
Diese Berechtigungen werden allerdings nicht dem Benutzer, sondern der Rolle zugeteilt. Eine Rolle wird dann dem User zugeteilt. Dies vereinfacht die Benutzerverwaltung.
Ein Beispiel hierfür ist, dass alle Benutzer keine Löschrechte auf der Datenbank haben.
Somit muss nun nur der Rolle USER
das löschrecht weggenommen werden, und nicht jedem einzelnen Benutzer.
4. Data Definition Language (DDL)
DDL ist eine Reihe von SQL-Befehlen, die zum Definieren und Verwalten von Datenstrukturen in einer Datenbank verwendet werden. Die wichtigsten DDL-Befehle sind:
-
Create
-
Alter
-
Drop
CREATE TABLE Clerks (
ID NUMBER(10) PRIMARY KEY,
Name VARCHAR2(59),
Position VARCHAR2(50),
Department VARCHAR2(50)
);
ALTER TABLE Clerks
ADD (Email VARCHAR2(50));
DROP TABLE Clerks;
5. Data Control Language
CREATE ROLE read_write; (1)
GRANT SELECT, INSERT, UPDATE on Employees TO read_write; (2)
GRANT read_write TO user1; (3)
1 | Erstellen der Rolle read_write |
2 | Berechtigungen SELECT, INSERT, UPDATE der Rolle read_write zuteilen |
3 | Rolle read_write dem Benutzer user1 zuteilen. |
Nach diesem Beispiel sollte user1
Berechtigungen auf SELECT, INSERT & UPDATE in der Tabelle Employees haben.