Anwendungsdatenverwendung
In diesem Kapitel werden die Domänen für Datenanwendungsfälle und Schemaanmerkungen erläutert.
-
Data Use Case-Domains 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.
-
Schemaanmerkungen Für viele Anwendungen ist es wichtig, zusätzliche Eigenschaftsmetadaten für Datenbankobjekte wie Tabellen, Views, Tabellenspalten, Indizes und Domains zu verwalten.
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:
-
Wenn eine Tabelle ohne die
PURGE-Klausel gelöscht wurde, ist sie weiterhin im Papierkorb verfügbar (sofern der Papierkorb aktiviert ist), um eine potenzielle zukünftige Wiederherstellung zu ermöglichen. -
Wenn die Tabelle eine Spalte mit einem PL/SQL-Typ oder abstrakten Datentyp und einer anderen Spalte enthält, die mit einer Anwendungsfall-Domain verknüpft ist, gilt Folgendes:
-
Wenn Sie die Anwendungsfalldomain mit der
FORCE-Klausel löschen, kann die Tabelle weiterhin wiederhergestellt werden. Die Zuordnung der Anwendungsfalldomäne zur Spalte wird einfach aufgehoben. -
Wenn Sie den PL/SQL-Typ mit oder ohne die
FORCE-Klausel löschen, wird die Tabelle aus dem Papierkorb gelöscht, da sie nicht vollständig wiederhergestellt werden kann.
-
Merkmale von Anwendungsfalldomänen:
-
Constraints - Domains können verwendet werden, um Constraints für mehrere Tabellen und Spalten gemeinsam zu verwenden. Diese Einschränkungen können für verzögerbare Constraints deaktiviert werden. Constraints für Primärschlüssel und Fremdschlüssel sind in Domains nicht zulässig.
-
Datentypen - Alle integrierten Oracle-Datentypen sind zulässig, mit Ausnahme von Long-, Long Raw- und Objekttypen.
-
Standardausdruck - Standardausdrücke sind zulässig, die mit Spaltenstandardwerten identisch sind.
-
Suche ohne Berücksichtigung von Groß-/Kleinschreibung und Akzenten - Domains ermöglichen Suchvorgänge ohne Berücksichtigung der Groß-/Kleinschreibung, die in den Klauseln
WHEREundORDER BYverwendet werden können. -
Ausdruck anzeigen - Anzeigeausdrücke lassen benutzerdefinierte Anzeigeregeln zu. Beispiel: Sie zeigen Währungen im lokalen Format an.
-
Auftragsausdruck - Ein Auftragsausdruck ermöglicht eine komplexe Sortierung. Beispiel: Die Bestellung nach normalisierter Standardgeschäftswährung, wie US-Dollar-Beträgen.
Anwendungsfall-Domaintypen:
-
Einzelne Spalte: Gilt für eine einzelne Datenspalte.
-
Mehrspaltig - Gilt für mehrere Spalten, z.B. Währung.
-
Flexible Domains - basierend auf anderen Domains und müssen kompatible Datentypen mit den Subdomains sein. Ein Beispiel sind Adressformate für verschiedene Länder.
-
Aufzählung - besteht aus einer Gruppe von Namen und optional einem Wert, der einem Namen entspricht.
Streng vs. nicht streng:
-
Nicht streng - Eine nicht strenge Domain muss mit dem angegebenen Datentyp übereinstimmen, nicht jedoch mit der Länge oder Skalierung für numerische Daten.
-
Streng - erfordert, dass Datentyp, Länge und Skalierung exakt übereinstimmen. Beispiel: Währungscodes, die genau zwei oder drei Zeichen umfassen müssen.
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:
-
Anzeigelabel: Dies kann sich vom Spaltennamen unterscheiden (z.B. den Titel "Gehalt" aus einer Spalte mit dem Namen Employee_Salary anzeigen)
-
Spaltengruppe: In vielen Fällen ist eine Spalte "Gruppe" für eine Benutzeroberfläche interessant (z.B. um die Spalten "Straße", "Straße", "Ort" und "PLZ" in einer Adressgruppe zu gruppieren).
-
Formatmaske: Beispiel: Eine Anzeigemaske von
$99,999.99kann von einem Benutzeroberflächen-Tool verwendet werden, um 56434 als$56,434.00darzustellen -
Ausblenden: Gibt an, ob die Spalte in der Benutzeroberfläche einem Endbenutzer angezeigt werden soll (z.B. keine Spalten mit sensiblen Informationen oder vom System hinzugefügte Spalten für eine bestimmte Klasse von Endbenutzern)
-
Hervorhebung: Gibt an, ob die Spalte mit einer besonderen Hervorhebung angezeigt werden soll
-
Zulässige Vorgänge: Ermöglicht der Schnittstelle zu bestimmen, ob eine Spalte Sortierung, Gruppierung, Anzeige einer Werteliste und andere unterstützen kann.
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