ERM – Das Entity-Relationship-Modell neu erklärt

Was ist ein ERM ? Eigentlich sollte allen Software-Entwicklern und -Consultants das Entity-Relationship-Modell ein Begriff sein.

Hier eine spassige Erklärung:

Hier eine fundierte Erklärung aus der Wikipedia:

Das Entity-Relationship-Modell oder auch Gegenstands-Beziehungs-Modell (engl. Entity Relationship Model), kurz ER-Modell oder ERM, dient dazu, im Rahmen der Datenmodellierung einen Ausschnitt der realen Welt zu beschreiben. Das ER-Modell besteht meistens aus einer Grafik und einer Beschreibung der darin verwendeten einzelnen Elemente (siehe nachfolgend unter ER-Diagramme). Es dient zum einen in der konzeptionellen Phase der Anwendungsentwicklung der Verständigung zwischen Anwendern und Entwicklern, wobei ausschließlich das Was, also die Sachlogik, und nicht das Wie, also die Technik, wesentlich ist.

Zum Anderen dient das ER-Modell in der Implementierungsphase als Grundlage für das Design der Datenbank.

via Administrator’s Blog

Kontrollierte Benutzerzugriffe auf eine Oracle-Datenbank

Heute beschäftigte ich mich mal mit dem Logon-Trigger, weil der mir vor kurzem auch mal über den Weg lief.

Um unkontrollierte Benutzerzugriffe auf eine Oracle-Datenbank , durch bestimmte Benutzer, oder durch bestimmte Rechner, zu unterbinden, kann als wirksame Maßnahme, ein Logon-Trigger auf der Oracle-Datenbank angelegt werden. Somit kann sich der Benutzer auch nicht anmelden, falls er den User und das Passwort weiß. ;-)

Der Logon-Trigger ist ähnlich aufgebaut, wie die Insert-, Update-, Delete-Trigger, die auf einer Tabelle liegen. Allerdings zündet der Logon-Trigger, bei der Anmeldung eines Benutzers an die Datenbank. Hier kann er eine Aktion ausführen, wie zum Beispiel eine Benutzer- oder Rechnernamenüberprüfung. Hierfür liest sich die Stored Procedure des Triggers den Benutzernamen und den Rechnernamen aus der Systemumgebung aus und überprüft diesen gegen einen festen Wert oder einen Tabelleneintrag und schaut, ob die Anmeldung berechtigt ist. Falls diese berechtigt ist, wird der Zugriff auf die Datenbank freigegeben, falls nicht, wird eine Fehlermeldung angezeigt.


CREATE OR REPLACE TRIGGER SYSTEM.checkUserLogon 
AFTER LOGON ON DATABASE 
DECLARE
 rechnername  VARCHAR2(80);    -- Variable für Rechnernamen
 os_username  VARCHAR2(80);    -- Variable für Username
 errormessage  VARCHAR2(1000); -- Error message to be printed
 userException EXCEPTION;      -- Zugriffs-Exception
 
BEGIN
 
 -- Holt die Informationen  aus dem USERENV context
 rechnername  := sys_context('USERENV','TERMINAL');-- Rechner 
 os_username   := sys_context('USERENV','OS_USER');-- User
 -- Zieht nur bei Oracle-User (Schema) = 'SCOTT'
 IF ( user LIKE 'SCOTT%' ) THEN

 -- Zugriff für Benutzer 'fred' auf dem Rechner 'JUPITER'
   IF ( os_username != 'fred' OR rechnername != 'JUPITER') THEN

    RAISE userException ;

   END IF;
END IF;

EXCEPTION

 WHEN userException THEN
  errormessage := 'Sie haben leider keine Berechtigung für ';
  errormessage := errormessage || 'diese Datenbank !';
  RAISE_APPLICATION_ERROR(-20002,errormessage);

 WHEN OTHERS THEN
  errormessage := 'FATAL ERROR - checkUserLogon - Bitte ';
  errormessage := errormessage || 'kontaktieren Sie den Help';
  errormessage := errormessage || 'desk' || CHR(10) || SQLERRM;
  RAISE_APPLICATION_ERROR(-20003, errormessage);

END;
/

Dieses Beispiel sollte auf allen Oracle-Datenbanken ab der Version 9.0 ohne Veränderungen lauffähig sein. Getestet habe ich den Logon-Trigger auf einer Oracle 9i-RDBMS-Datenbank (Version 9.2.0.6).

Achtung:
Bei der Benutzung von Logon Triggern, muß man Vorsicht walten lassen, denn ein fehlerhafter Logon Trigger kann verhindern, dass sich noch ein Benutzer an der Datenbank anmelden kann. Glücklicherweise zünden Logon Trigger nicht für den Benutzer SYS, der dann in dieser Notsituation den Trigger wieder löschen oder anpassen kann.

Weitere Infos zu Logon-Triggern findet Ihr hier:
MuniQSoft – Oracle Logon Trigger

Why Isn’t Oracle Using My Index?!

Wer sich, wie so viele in einem der MetaLink-Foren, die Frage stellt, warum die Oracle-Datenbank gerade den mühsam angelegten Index nicht benutzt, der findet in diesem Artikel vielleicht Hilfe und eine Antwort.

Artikel: Why Isn’t Oracle Using My Index?!

Understanding Oracle System Statistics

Wer in letzter Zeit von einer Oracle 8i auf eine Oracle 9i gewechselt ist, oder noch wechseln wird oder vielleicht auch gleich auf die aktuelle Oracle 10g geht, der sollte sich diesen Artikel mal durchlesen. Seit der Oracle 9i gibt es nämlich jetzt im Paket dbms_stats die Funktion gather_system_stats. Wenn Systemstatistiken vorhanden sind, “weiß” Oracle ungefähr, wie die Maschine hardwaremäßig da steht und kann entscheiden, ob Sie auf die Festplatte zugreift oder vielleicht doch lieber einen vorhandenen Index im Speicher nimmt.

Artikel: Understanding Oracle System Statistics

Oracle stellt finale Version der 10g XE Datenbank vor

Nun ist es endlich soweit, nachdem Oracle bereits Ende Oktober des letzten Jahres die Beta-Version seiner Oracle 10g Express Edition (XE) veröffentlichte, ist heute der Tag, an dem die finale Version für jeden bereitsteht. Die kostenlose Datenbank wendet sich vorallem an Entwickler, Studenten, Software- und Hardware-Anbieter. Aktuell steht Oracle 10g Express sowohl in einer Windows-Version, als auch in einer Linux-Version auf der x86-Architektur zur Verfügung.

Die Oracle 10g XE basiert auf demselben Kern wie die anderen Oracle-10g-Editionen des Release 2. Allerdings ist die Express Edition mit einigen Einschränkungen versehen: Die Benutzerdatenbanken dürfen maximal 4 GByte groß sein, es kann nur eine Instanz gleichzeitig laufen und zusätzlich nutzt Oracle 10g XE nur einen Prozessor sowie maximal 1 GByte RAM.

Support für die 10g-Express-Version erhalten jedoch nur registrierte Benutzer, die sich in einem von Oracle-Spezialisten moderierten Web-Forum, Hilfe holen können.

Sehr interessant ist diese Version vorallem für Indepentent Software Vendors (ISV), da sie die Oracle 10g Express Version kostenlos in ihre Anwendungen integrieren können. Hier ist ausschliesslich auf die oben erwähnten Einschränkungen zu achten. Wer hiermit leben kann und bereits schon Oracle-KnowHow aufgebaut hat, ist denke ich mit dieser kostenlosen Datenbank sehr gut bedient.

Hier noch einige Infos zur 10g XE:
Oracle Database 10g Express Edition Website
Oracle Database 10g Express Edition Tutorial

Quelle: www.golem.de

IBM stellt gratis Datenbank DB2 Express-C vor

Der Softwareriese IBM möchte ab Ende Januar seine kostengünstige Express-Version seiner DB2-Datenbank, unter der Bezeichnung DB2 Express-C, gratis unter die Leute bringen. Auf diesen Sachverhalt wies bereits gestern Heise-News in einem Artikel hin. IBM möchte mit dieser Entscheidung, gegen die, vor kurzem erschienenen, kostenfreien Datenbank-Server von Microsoft SQL Server und Oracle 10g Express und die zahlreichen Opensource- Datenbanken, wie MySQL und PostgreSQL, antreten und auch in diesem Marktsegment wieder Boden gut machen und seine Marktposition stärken.

Es gäbe “Keine Begrenzung für Datenbankumfang, Benutzerzahl oder Instanzen je Server, außerdem einen freier Zugang zur neu eingerichteten DB2-Web-Community-Website, kostenlos verteilbar als Bestandteil eigener Anwendungen”, bewirbt der Software-Riese laut Heise seine jüngste Datenbank-Engine, die sowohl auf 32- und 64-Bit-Maschinen unter Windows sowie Linux laufen soll.

Einschränkungen gibt es nur bei der Anzahl der Prozessoren, die auf 2 Prozessoren begrenzt sind, und beim Hauptspeicher mit vier GByte Speicher. Diese Einschränkungen sind genau die gleichen, wie bei der weiterhin angebotenen kommerziellen Express-Edition, wobei diese noch weitere Features, wie Support und Spezial-Optionen wie HADR (High Availability/Disaster Recovery), Zubehör zum Verwalten von Data Warehouses oder Web-basierende Admin-Tools, mitbringt, worauf die kostenlose Version der DB2-Datenbank leider verzichten muß .

IBM bietet allerdings keinen Support für seine DB2 Express-C-Datenbank an, hat dafür aber ein passendes Forum für die User eingerichtet.

Einen Link zu einer IBM-Produktseite gibt es leider noch nicht. Aber schaut euch hier mal um: IBM DB2 Universal Database for Linux, UNIX and Windows

Quelle: Heise-News

Update vom 30.01.2006:
Inzwischen gibt es eine Download-Adresse für die IBM DB2 Express-C-Datenbank. Unter Download-Link findet Ihr den Download für die IBM DB2 Express-C-Datenbank.

Update vom 31.01.2006:
Heute berichtet auch Golem.de in einem Artikel auf die neue IBM DB2 Express-C-Datenbank hin. Golem.de weist in seinem heutigen Beitrag auch darauf hin, dass IBM für die nächste Version Ihrer kostenlosen Datenbank angekündigt hat, dass diese einen hybriden Datenserver ent-halten werde, der sowohl relationale als auch XML-Daten verwalten kann.

Pages: Prev 1 2 3