Anwendungsdatenverwendung

In diesem Kapitel werden die Domänen für Datenanwendungsfälle und Schemaanmerkungen erläutert.

Datenanwendungsfalldomänen

Eine Data Use Case Domain ist ein Dictionary-Objekt auf hoher Ebene, das zu einem Schema gehört und eine Gruppe optionaler Eigenschaften und Constraints kapselt.

Datenbanken haben in der Regel nur begrenzte Kenntnisse darüber, wie Daten tatsächlich von Anwendungen verwendet werden. Datenbanken speichern Daten mit primitiven Typen wie VARCHAR2, NUMBER oder DATE, während das Wissen, dass ein gespeicherter Wert beispielsweise eine Kreditkartennummer oder ein Geburtsdatum darstellt, nur innerhalb von Metadaten oder Kontext auf Anwendungsebene vorhanden ist. Dieser Ansatz erhöht die Komplexität der einzelnen Anwendungen, fragmentiert die Nutzung von Tools und Anwendungen und führt die Möglichkeit divergenter Semantik ein.

Frühere Versuche, dieser Divergenz entgegenzuwirken, waren es, mehr nutzungsspezifische integrierte Datentypen zu Datenbanken hinzuzufügen und benutzerdefinierte Typen zur Erweiterbarkeit zu unterstützen. Aufwendigere Datenbanktypsysteme haben eine begrenzte Akzeptanz erhalten, da sie die Unstimmigkeit mit den Anwendungssprachentypen erhöhen, nicht portierbaren Anwendungscode erstellen und die Komplexität der Entwicklung erhöhen, da Vorgänge mit verschiedenen Typen eingeschränkt sind.

Solche Einschränkungen bei der Darstellung der Datennutzung können vermieden werden, indem das erweiterte Domainkonzept von Oracle AI Database gemäß der Definition im SQL-Standard verwendet wird. Mit diesem Ansatz kann eine Spalte sowohl mit einem primitiven Datentyp wie NUMBER als auch mit einer Domain für die Datennutzung wie "Temperature" oder "Credit Score" deklariert werden. Eine solche Anwendungsfalldomain kann optional mit verschiedenen Nutzungseigenschaften wie Check Constraints, Anzeigeeigenschaften, Sortierregeln und anderen verknüpft werden. Am wichtigsten ist, dass zentralisierte Domäneninformationen von Anwendungen verwendet werden können, um Vorgänge zu standardisieren, ohne dass Metadaten auf Anwendungsebene erforderlich sind. Beispiel: Kreditkartennummern maskieren, Telefonnummern und Währungswerte formatieren, Prozentwerte in einer Spalte als Tortendiagramm anzeigen usw.

Anwendungsfalldomains ändern den zugrunde liegenden Datentyp nicht und können daher auch vorhandenen Daten hinzugefügt werden, ohne Anwendungen zu beschädigen oder Portabilitätsprobleme zu verursachen. Eine Anwendungsfall-Domain kann für eine oder mehrere Spalten in einer Tabelle deklariert werden. Sie kann auch verwendet werden, um Szenarios für die variable Nutzung darzustellen, in denen die tatsächliche Nutzung von Daten von Daten in anderen Spalten abhängt. Anwendungsfalldomänen können als einfache Typenmodifizierer betrachtet werden, die die beabsichtigte Datennutzung für Anwendungen zentral dokumentieren. Außerdem können Anwendungsfalldomains zum Freigeben von Annotationen verwendet werden.

Das Löschen einer Tabelle mit einer verknüpften Anwendungsfall-Domain kann zu anderen Ergebnissen führen als das Löschen einer Tabelle mit einem verknüpften PL/SQL-Typ. Die folgenden Regeln gelten, wenn Sie eine Tabelle löschen, die mit einer Anwendungsfall-Domain oder einem PL/SQL-Typ verknüpft ist:

Merkmale von Anwendungsfalldomänen:

Anwendungsfall-Domaintypen:

Streng vs. nicht streng:

Sie können eine Enumerationsdomain mit Oracle SQL erstellen. Im Gegensatz zu regulären Domains verfügt eine Enumerationsdomain über ein Standard-CHECK-Constraint sowie einen Anzeigeausdruck. Die Namen innerhalb einer Aufzählungsdomain können überall dort verwendet werden, wo ein Literal in einem skalaren SQL-Ausdruck zulässig ist, und die Domain selbst kann in der FROM-Klausel einer SELECT-Anweisung verwendet werden, als wäre es eine Tabelle. Eine Aufzählungsdomain ist ein spezieller Typ von Nutzungsdomain und kann wie jede einzelne Spaltendomain verwendet werden.

Eine Aufzählungsdomain besteht aus einer Gruppe von Namen und optional einem Wert, der einem Namen entspricht. Der Name muss ein gültiger SQL-Bezeichner sein, und jeder angegebene Wert muss ein Literal oder, im Falle einer mehrspaltigen Aufzählung, eine Liste von Literalen sein. Die Werte können einen beliebigen Datentyp aufweisen, der für eine Datenanwendungsfalldomain unterstützt wird. Sie müssen jedoch alle denselben Datentyp aufweisen.

Beispiel: Der Benutzer SCOTT, dem zuvor die Berechtigung CREATE DOMAIN erteilt wurde, erstellt eine Enumerated Domain mit einer Spalte für die Tätigkeit.

CREATE DOMAIN Job_Title AS
  ENUM (
    Clerk                  = 'CLERK',
    Salesman = SalesPerson = 'SALESMAN',
    Manager                = 'MANAGER',
    Analyst                = 'ANALYST',
    President              = 'PRESIDENT'
  );

Die Domain Job_Title kann jetzt als Datentyp beim Erstellen der Tabelle EMP verwendet werden. Beispiel:

CREATE TABLE emp
( empno     NUMBER(4)     CONSTRAINT emp_pk PRIMARY KEY,
  ename     VARCHAR2(10),
  job       Job_Title,
  mgr       NUMBER(4)     CONSTRAINT emp_mgr_fk REFERENCES emp(empno),
  hiredate  DATE,
  sal       NUMBER(7,2)
);

Beim Einfügen einer neuen Datenzeile kann die aufgezählte Domain verwendet werden, um den Wert für die Spalte JOB anzugeben. Die folgenden drei INSERT-Anweisungen sind gleichwertig.

INSERT INTO emp VALUES (8000, 'PATEL', Job_Title.Salesman, 7698, TO_DATE('11-MAR-2024', 'DD-MON-YYYY'), 3500);
INSERT INTO emp VALUES (8000, 'PATEL', Job_Title.SalesPerson, 7698, TO_DATE('11-MAR-2024', 'DD-MON-YYYY'), 3500);
INSERT INTO emp VALUES (8000, 'PATEL', 'SALESMAN', 7698, TO_DATE('11-MAR-2024', 'DD-MON-YYYY'), 3500);

Verwandte Themen

Schemaannotationen

Bei vielen Anwendungen müssen zusätzliche Eigenschaftsmetadaten für Datenbankobjekte wie Tabellen, Views, Tabellenspalten, Indizes und Domains verwaltet werden.

Während Domains integrierte Nutzungseigenschaften wie Check Constraints, Sortierungen, benutzerdefinierte Sortierreihenfolge und andere enthalten, bietet die Oracle-Datenbank zur Erweiterbarkeit auch die Möglichkeit, benutzerdefinierte Eigenschaften über den Mechanismus ANNOTATIONS für Datenbankmetadaten hinzuzufügen - einschließlich Tabellenspalten, Tabellen, Indizes und mehr. Anwendungen müssen häufig zusätzliche Eigenschaftsmetadaten verwalten, insbesondere zum Rendern von Benutzeroberflächen oder zum Anpassen der Anwendungslogik.

Beispiele für Verwendungseigenschaften auf Spaltenebene:

Tabellenebenen-Verwendungseigenschaften können ähnlich verwendet werden, um Anwendungen aufzuzeichnen, ob eine Tabelle vertrauliche Informationen enthält, wie ihr Anzeigename lauten soll, welche Module in der Anwendung, deren Eigentümer sie ist oder von der sie verwaltet wird, usw.

Die meisten Anwendungen erstellen eigene Repositorys für diese Art von Nutzungsmetadaten, was zu Entwicklerkomplexität und der Möglichkeit von Divergenzen zwischen Anwendungen, Modulen und Microservices führt.

Oracle AI Database-Schemaannotationen sind eine einfache deklarative Funktion, mit der Entwickler Nutzungseigenschaften für Datenbankschemaobjekte zentral registrieren können. Annotationen werden direkt in der Datenbank in Dictionary-Tabellen neben der Datenmodelldefinition und den Daten selbst gespeichert und stehen allen Anwendungen zur Verfügung, um das Verhalten über gemeinsame Daten hinweg zu standardisieren. Sie werden jedoch in keiner Weise von der Datenbank interpretiert. Sie sollten als leichtgewichtiges standardisiertes Markup für Datenbankmetadaten betrachtet werden, mit dem Anwendungen erweiterte und benutzerdefinierte Nutzungseigenschaften registrieren und verarbeiten können.

Verwandte Themen