Verteiltes DBMS - Datenbanksteuerung

Die Datenbanksteuerung bezieht sich auf die Aufgabe, Vorschriften durchzusetzen, um authentischen Benutzern und Anwendungen einer Datenbank korrekte Daten bereitzustellen. Damit den Benutzern korrekte Daten zur Verfügung stehen, sollten alle Daten den in der Datenbank definierten Integritätsbeschränkungen entsprechen. Außerdem sollten Daten von nicht autorisierten Benutzern ferngehalten werden, um die Sicherheit und den Datenschutz der Datenbank zu gewährleisten. Die Datenbanksteuerung ist eine der Hauptaufgaben des Datenbankadministrators (DBA).

Die drei Dimensionen der Datenbanksteuerung sind -

  • Authentication
  • Zugangsrechte
  • Integritätsbedingungen

Authentifizierung

In einem verteilten Datenbanksystem ist die Authentifizierung der Prozess, durch den nur legitime Benutzer Zugriff auf die Datenressourcen erhalten können.

Die Authentifizierung kann auf zwei Ebenen erzwungen werden:

  • Controlling Access to Client Computer- Auf dieser Ebene ist der Benutzerzugriff eingeschränkt, während Sie sich beim Client-Computer anmelden, der dem Datenbankserver eine Benutzeroberfläche bietet. Die häufigste Methode ist eine Kombination aus Benutzername und Passwort. Für hochsichere Daten können jedoch komplexere Methoden wie die biometrische Authentifizierung verwendet werden.

  • Controlling Access to the Database Software- Auf dieser Ebene weist die Datenbanksoftware / der Administrator dem Benutzer einige Anmeldeinformationen zu. Mit diesen Anmeldeinformationen erhält der Benutzer Zugriff auf die Datenbank. Eine der Methoden besteht darin, ein Anmeldekonto auf dem Datenbankserver zu erstellen.

Zugangsrechte

Die Zugriffsrechte eines Benutzers beziehen sich auf die Berechtigungen, die dem Benutzer für DBMS-Vorgänge gewährt werden, z. B. die Rechte zum Erstellen einer Tabelle, Löschen einer Tabelle, Hinzufügen / Löschen / Aktualisieren von Tupeln in einer Tabelle oder Abfragen der Tabelle.

In verteilten Umgebungen ist es nicht möglich, Benutzern individuelle Zugriffsrechte zuzuweisen, da es eine große Anzahl von Tabellen und dennoch eine größere Anzahl von Benutzern gibt. DDBMS definiert also bestimmte Rollen. Eine Rolle ist ein Konstrukt mit bestimmten Berechtigungen innerhalb eines Datenbanksystems. Sobald die verschiedenen Rollen definiert sind, wird den einzelnen Benutzern eine dieser Rollen zugewiesen. Oft wird eine Hierarchie von Rollen gemäß der Hierarchie der Autorität und Verantwortung der Organisation definiert.

Die folgenden SQL-Anweisungen erstellen beispielsweise eine Rolle "Accountant" und weisen diese Rolle dann dem Benutzer "ABC" zu.

CREATE ROLE ACCOUNTANT; 
GRANT SELECT, INSERT, UPDATE ON EMP_SAL TO ACCOUNTANT; 
GRANT INSERT, UPDATE, DELETE ON TENDER TO ACCOUNTANT; 
GRANT INSERT, SELECT ON EXPENSE TO ACCOUNTANT; 
COMMIT; 
GRANT ACCOUNTANT TO ABC; 
COMMIT;

Semantische Integritätskontrolle

Die semantische Integritätskontrolle definiert und erzwingt die Integritätsbeschränkungen des Datenbanksystems.

Die Integritätsbeschränkungen sind wie folgt:

  • Integritätsbeschränkung für Datentypen
  • Integritätsbeschränkung für Entitäten
  • Einschränkung der referenziellen Integrität

Datentyp-Integritätsbeschränkung

Eine Datentypeinschränkung schränkt den Wertebereich und die Art der Operationen ein, die auf das Feld mit dem angegebenen Datentyp angewendet werden können.

Nehmen wir zum Beispiel an, dass eine Tabelle "HOSTEL" drei Felder enthält - die Hostelnummer, den Hostelnamen und die Kapazität. Die Hostel-Nummer sollte mit dem Großbuchstaben "H" beginnen und darf nicht NULL sein. Die Kapazität sollte nicht mehr als 150 betragen. Der folgende SQL-Befehl kann zur Datendefinition verwendet werden:

CREATE TABLE HOSTEL ( 
   H_NO VARCHAR2(5) NOT NULL, 
   H_NAME VARCHAR2(15), 
   CAPACITY INTEGER, 
   CHECK ( H_NO LIKE 'H%'), 
   CHECK ( CAPACITY <= 150) 
);

Entity Integrity Control

Die Entitätsintegritätskontrolle erzwingt die Regeln, sodass jedes Tupel von anderen Tupeln eindeutig identifiziert werden kann. Hierzu wird ein Primärschlüssel definiert. Ein Primärschlüssel ist eine Reihe von Minimalfeldern, mit denen ein Tupel eindeutig identifiziert werden kann. Die Integritätsbedingung für Entitäten besagt, dass keine zwei Tupel in einer Tabelle identische Werte für Primärschlüssel haben dürfen und dass kein Feld, das Teil des Primärschlüssels ist, den Wert NULL haben darf.

In der obigen Hosteltabelle kann beispielsweise die Hostelnummer über die folgende SQL-Anweisung (ohne Berücksichtigung der Überprüfungen) als Primärschlüssel zugewiesen werden.

CREATE TABLE HOSTEL ( 
   H_NO VARCHAR2(5) PRIMARY KEY, 
   H_NAME VARCHAR2(15), 
   CAPACITY INTEGER 
);

Referenzielle Integritätsbeschränkung

Die Einschränkung der referenziellen Integrität legt die Regeln für Fremdschlüssel fest. Ein Fremdschlüssel ist ein Feld in einer Datentabelle, das der Primärschlüssel einer verwandten Tabelle ist. Die referenzielle Integritätsbeschränkung legt die Regel fest, dass der Wert des Fremdschlüsselfelds entweder zu den Werten des Primärschlüssels der referenzierten Tabelle gehören oder vollständig NULL sein sollte.

Betrachten wir zum Beispiel einen Schülertisch, an dem sich ein Schüler für ein Hostel entscheiden kann. Um dies einzuschließen, sollte der Primärschlüssel der Hosteltabelle als Fremdschlüssel in die Schülertabelle aufgenommen werden. Die folgende SQL-Anweisung enthält Folgendes:

CREATE TABLE STUDENT (  
   S_ROLL INTEGER PRIMARY KEY, 
   S_NAME VARCHAR2(25) NOT NULL, 
   S_COURSE VARCHAR2(10), 
   S_HOSTEL VARCHAR2(5) REFERENCES HOSTEL 
);