Express (Datenmodellierungssprache)
AUSDRÜCKEN ist ein Standard Datenmodellierung Sprache zum Produkt Daten. Express wird im ISO -Standard für den Austausch des Produktmodells formalisiert Schritt (ISO 10303)und standardisiert als ISO 10303-11.[1]
Überblick
Datenmodelle formell definieren Datenobjekte und Beziehungen zwischen Datenobjekten für einen interessierenden Bereich. Einige typische Anwendungen von Datenmodellen umfassen die Unterstützung der Entwicklung von Datenbanken und Aktivierung des Datenaustauschs für einen bestimmten Interessenbereich. Datenmodelle werden in einer Datenmodellierungssprache angegeben.[2] Express ist eine in ISO 10303-11 definierte Datenmodellierungssprache, dem Express-Sprachreferenzhandbuch.[3]
Ein Express -Datenmodell kann auf zwei Arten definiert werden, textuell und grafisch. Für die formelle Überprüfung und als Eingabe für Tools wie z. SDAI die Textdarstellung innerhalb eines ASCII Datei ist die wichtigste. Die grafische Darstellung dagegen ist oft besser für menschliche Verwendung wie Erklärungen und Tutorials geeignet. Die grafische Darstellung, Express-G, kann nicht alle Details darstellen, die in der Textform formuliert werden können.
Express ähnelt den Programmiersprachen wie z. Pascal. Innerhalb eines Schemas können verschiedene Datenatypen zusammen mit strukturellen Einschränkungen und algorithmischen Regeln definiert werden. Ein Hauptmerkmal von Express ist die Möglichkeit, eine Population von Datenatypen formell zu validieren. Dies dient darin, alle strukturellen und algorithmischen Regeln zu überprüfen.
Express-G
Express-G ist eine Standard-Grafikbeschreibung für Informationsmodelle.[4] Es ist ein Begleiter der Expresssprache für die Anzeige von Entität und Typdefinitionen, Beziehungen und Kardinalität.[5] Diese grafische Notation unterstützt eine Teilmenge der Expresssprache. Einer der Vorteile der Verwendung von Express-G über Express besteht darin, dass die Struktur eines Datenmodells verständlicher dargestellt werden kann. Ein Nachteil von Express-G besteht darin, dass komplexe Einschränkungen nicht formell angegeben werden können. Abbildung 1 ist ein Beispiel. Das in Abbildung angegebene Datenmodell könnte verwendet werden, um die Anforderungen einer Datenbank für eine Audio Compact Disc (CD) -Kollektion (CD) anzugeben.[2]
Einfaches Beispiel
Ein einfaches Express -Datenmodell sieht aus wie Abb. 2 und der Code wie diesen:
Schema -Familie; Entitätsperson abstrakter Supertyp von (Oneof (männlich, weiblich)); Name: String; Mutter: Optionale Frau; Vater: Optionaler Mann; End_entity; Entität weiblicher Subtyp von (Person); End_entity; Entität männlicher Subtyp von (Person); End_entity; End_schema;
Das Datenmodell ist in das Express -Schema eingeschlossen Familie. Es enthält eine Supertyp -Einheit Person mit den beiden Subtypen Männlich und Weiblich. Seit Person wird als abstrakt deklariert, nur vorhanden von beiden (eins) des Subtyps Männlich oder Weiblich kann existieren. Jedes Auftreten einer Person hat eine obligatorische Name Attribut und optional Attribute Mutter und Vater. Es gibt einen festen Lesenstil für Attribute eines Entitätstyps:
- a Weiblich kann die Rolle von spielen Mutter Für ein Person
- a Männlich kann die Rolle von spielen Vater Für ein Person
Ausdruck Bausteine
Datentypen
Express bietet eine Reihe von Datenatypen mit spezifischen Datentypsymbolen der Express-G-Notation:[2]
- Entität Datentyp: Dies ist der wichtigste Datentyp in Express. Es wird unten ausführlicher behandelt. Entitätsdatenatypen können auf zwei Arten in einem Sub-Superype-Baum und/oder nach Attributen verwandt werden.
- Aufzählungsdatentyp: Aufzählungswerte sind einfache Zeichenfolgen wie Rot, Grün und Blau für eine RGB-Enumeration. In dem Fall, dass ein Aufzählungstyp aus erweiterbar erklärt wird, kann er in anderen Schemata verlängert werden.
- Definierter Datentyp: Dies spezialisiert andere Datenatypen - z.
- Datentyp auswählen: Wählt eine Wahl oder eine Alternative zwischen verschiedenen Optionen aus. Am häufigsten verwendeten werden zwischen verschiedenen Entity_Types ausgewählt. Seltenere sind Auswahl, die definierte Typen enthalten. In dem Fall, dass ein Aufzählungstyp ausgiebig erklärt wird, kann er in anderen Schemata verlängert werden.
- Einfacher Datentyp
- String: Dies ist der am häufigsten verwendete einfache Typ. Express -Saiten können jede Länge haben und jedes Zeichen (ISO 10646/Unicode) enthalten.
- Binär: Dieser Datentyp wird nur sehr selten verwendet. Es deckt eine Reihe von Bits ab (nicht Bytes). Für einige Implementierungen ist die Größe auf 32 Bit begrenzt.
- Logisch: Ähnlich wie der boolesche Datentyp Ein logisches hat die möglichen Werte wahr und falsch und zusätzlich unbekannt.
- Boolean: mit den booleschen Werten wahr und falsch.
- Nummer: Der Zahlendatentyp ist ein Supertyp sowohl von Integer als auch Real. Die meisten Implementierungen verwenden einen Doppelart, um einen real_type darzustellen, auch wenn der tatsächliche Wert eine Ganzzahl ist.
- Ganzzahl: Express -Ganzzahlen können im Prinzip jede Länge haben, aber die meisten Implementierungen haben sie auf einen signierten 32 -Bit -Wert beschränkt.
- Real: Idealerweise ist ein ausdrücklicher echter Wert in Genauigkeit und Größe unbegrenzt. In der Praxis wird ein echter Wert jedoch durch einen schwimmenden Punktwert des Typ -Double dargestellt.
- Aggregationsdatentyp: Die möglichen Arten von Aggregation_Types sind festgelegt, Taschen, Liste und Array. Während Set und Tasche nicht ordnungsgemäß sind, werden Liste und Array bestellt. Eine Tasche kann mehr als einmal einen bestimmten Wert enthalten, dieser ist nicht für ein Set zulässig. Ein Array ist das einzige Aggregat, das möglicherweise nicht festgelegte Mitglieder enthält. Dies ist nicht möglich für Set, Liste, Tasche. Die Mitglieder eines Aggregats können jeden anderen Datentyp haben.
Ein paar allgemeine Dinge sind für Datenatypen zu erwähnen.
- Konstruierte Datenatypen können in einem Express -Schema definiert werden. Sie werden hauptsächlich zum Definieren von Entitäten und zum Festlegen der Art von Entitätsattributen und aggregierenden Mitgliedern verwendet.
- Datenatypen können rekursiv verwendet werden, um immer komplexere Datentypen aufzubauen. Z.B. Es ist möglich, eine Liste eines Arrays einer Auswahl einiger Entitäten oder anderer Datenatypen zu definieren. Wenn es sinnvoll ist, solche Datenatypen zu definieren, ist eine andere Frage.
- Express definiert einige Regeln, wie ein Datentyp weiter spezialisiert werden kann. Dies ist wichtig, um Attribute von Entitäten neu zu deklarieren.
- Generische Datentypen können für Verfahren, Funktionen und abstrakte Entitäten verwendet werden.
Entitätsattribute
Entitätsattribute ermöglichen es, Entitäten "Eigenschaften" hinzuzufügen und eine Entität mit einer anderen in einer bestimmten Rolle in Beziehung zu setzen. Der Name des Attributs gibt die Rolle an. Die meisten Datentypen können direkt als Typ eines Attributs dienen. Dies schließt auch die Aggregation ein.
Es gibt drei verschiedene Arten von Attributen, explizite, abgeleitete und inverse Attribute. Und all dies kann in einem Subtyp neu deklariert werden. Darüber hinaus kann ein explizites Attribut als in einem Subtyp abgeleitet eingestuft werden. Es ist keine andere Änderung der Art von Attributen möglich.
- Explizite Attribute sind diejenigen mit direkten Werten, die in einer Schrittmeldung sichtbar sind.
- Abgeleitete Attribute erhalten ihre Werte aus einem Ausdruck. In den meisten Fällen bezieht sich der Ausdruck auf andere Attribute dieser Instanz. Der Ausdruck kann auch Expressfunktionen verwenden.
- Inverse Attribute fügen einer Entität keine "Informationen" hinzu, sondern nur ein explizites Attribut für ein Entität aus dem anderen Ende.
Spezifische Attributsymbole der Express-G-Notation:[2]
Supertypen und Subtypen
Eine Entität kann als Subtyp eines oder mehreren anderen Einheiten definiert werden (Mehrfacherbe ist erlaubt!). Ein Supertyp kann eine beliebige Anzahl von Subtypen haben. Es ist eine sehr häufige Praxis im Schritt, sehr komplexe Sub-Superype-Diagramme zu erstellen. Einige Grafiken beziehen sich auf 100 und mehr Entitäten miteinander.
Eine Entitätsinstanz kann entweder für eine einzelne Entität (falls abstrakt) oder für eine komplexe Kombination von Entitäten in einem solchen Teil des Sub-Superype-Diagramms konstruiert werden. Für die großen Grafiken wird die Anzahl möglicher Kombinationen wahrscheinlich in astronomischen Bereichen wachsen. Um die möglichen Kombinationen einzuschränken, wurden spezielle Supertyp -Einschränkungen eingeführt, wie z. B. eins und insgesamt. Darüber hinaus kann ein Unternehmen als abstrakt erklärt werden, um durch diese Entität, jedoch nur, wenn es einen nicht abstrakten Subtyp enthält.
Algorithmische Einschränkungen
Entitäten und definierte Datentypen können weiter eingeschränkt werden mit WO Regeln. WO Regeln sind auch Teil der globalen Regeln. EIN WO Regel ist ein Ausdruck, der auf True bewertet wird, sonst ist eine Population eines Expressschemas nicht gültig. Wie abgeleitete Attribute können diese Expression ausdrücklichen Funktionen aufnehmen, die weiter ausdrücklichen Verfahren aufnehmen können. Die Funktionen und Verfahren ermöglichen die Formulierung komplexer Aussagen mit lokalen Variablen, Parametern und Konstanten - sehr ähnlich einer Programmiersprache.
Die ausdrückliche Sprache kann lokale und globale Regeln beschreiben. Zum Beispiel:
EINHEIT Area_unit Subtyp VON (Named_unit); WO WR1: (SELBST\Named_unit.Maße.Länge_exponent = 2) UND (SELBST\Named_unit.Maße.Mass_exponent = 0) UND (SELBST\Named_unit.Maße.time_exponent = 0) UND (SELBST\Named_unit.Maße.ELECTRE_CURRENT_EXPONENT = 0) UND (SELBST\Named_unit.Maße. thermodynamic_temperature_exponent = 0) UND (SELBST\Named_unit.Maße.STARM_OF_SUBSTANCE_EXPONENT = 0) UND (SELBST\Named_unit.Maße.luminous_intensity_exponent = 0); End_entity; - Area_unit
Dieses Beispiel beschreibt, dass die Entität von Area_unit einen quadratischen Wert der Länge haben muss. Zu diesem Zweck muss die Attributabmessungen.length_Exponent gleich 2 sein und alle anderen Exponenten der grundlegenden Si -Einheiten müssen 0 sein.
Ein anderes Beispiel:
TYP DAY_IN_WEEK_NUMBER = GANZE ZAHL; WO WR1: (1 <= SELBST) UND (SELBST <= 7); End_type; - DAY_IN_WEEK_NUMBER
Das heißt, dass der wöchentliche Wert 7 nicht überschreiten darf.
Und so können Sie einige Regeln für Ihre Entitäten beschreiben. Weitere Einzelheiten zu den angegebenen Beispielen finden Sie in ISO 10303-41
Siehe auch
- ISO -verwandte Themen
- ISO 10303: ISO-Standard für die computerinterpretierbare Darstellung und den Austausch von Industrieproduktdaten.
- ISO 10303-21: Datenaustauschform des Schritts mit einer ASCII -Struktur
- ISO 10303-22: Standard -Datenzugriffsschnittstelle, Teil der Implementierungsmethoden des Schritts
- ISO 10303-28: Step-XML Gibt die Verwendung der erweiterbaren Markup-Sprache (XML) zur Darstellung des Express-Schemas an
- ISO 13584-24: Das logische Modell von PLIB ist in Express spezifiziert
- ISO 13399: ISO -Standard für die Datenrepräsentation und den Austausch von Werkzeugen
- ISO/PAS 16739: Branchenfundamentkurse sind in Express spezifiziert
- Liste der Teile von Schritt (ISO 10303)
- Andere verwandte Themen
- CAD -Datenaustausch
- EDIF: Elektronisches Design -Austauschformat
- Diagramm
- Allgemeine Modellierung
- Modellierungssprache
- Wirth -Syntax -Notation
- Punkt (Graph Beschreibung Sprache)
Verweise
Dieser Artikel enthältPublic Domain Material von dem Nationales Institut für Standards und Technologie Webseite https://www.nist.gov.
- ^ ISO 10303-11: 2004 Industrial Automation Systems und Integration - Produktdatendarstellung und Austausch- Teil 11: Beschreibung Methoden: Das Express-Sprachreferenzhandbuch
- ^ a b c d Michael R. McCaleb (1999). "Ein konzeptionelles Datenmodell von Datum Systems". Nationales Institut für Standards und Technologie. August 1999.
- ^ ISO International Standard 10303-11: 1994, Industrial Automation Systems and Integration-Produktdatenrepräsentation Andexchange-Teil 11: Beschreibung Methoden: Das Express-Sprachreferenzhandbuch, internationale Organisation für Standardisierung, Genf, Schweiz (1994).
- ^ 4 Express-G-Sprachübersicht Archiviert 2008-11-09 bei der Wayback -Maschine. Zugriff auf den 9. November 2008.
- ^ Informationen zur Express-G-Notation erhalten Sie von Anhang B des Express-Sprachreferenzhandbuchs (ISO 10303-11).