SCHEMA S_Dynamische_Verkehrsdaten; (* Historie: 03.09.2009 - 1.014 Anpassung an die ASB Bestandsdaten, Stand 2009, gemäß N0116 Anpassung an die Anforderungen von VEMAGS-Statik gemäß N0118 Zusammenlegung der bisherigen Einzelschemata Umwandlung von DTV und MSV in Streckenobjekte 27.11.2008 - 1.013 Einführung der Objektarten "Verkehrslage" und "Verkehrsstau" gemäß N0094 09.10.2007 - 1.012 Einführung eines Metamodells gemäß N0092 Anpassung an die neue ASB, Teilsystem Bestandsdaten, gemäß N0074 Änderung der Schlüsseltabelle Stundengruppe gemäß N0089 Entfernung der örtlichen und der verwaltungstechnischen Zuordnung gemäß N0100 Änderung der Objektart "Kennwert zur Lärmberechnung" gemäß N0102 Einführung des Präfix "S_" für Schemanamen 02.08.2006 - 1.011 Einführung OKSTRA-ID gemäß N0073 09.09.2005 - 1.010 (1.010) Anpassung an ASB-ING, Stand 2004 Einführung der Ganglinie 29.06.2004 - 1.005 (1.009) Kürzung von Bezeichnern, veränderte Schlüssel (SQL) 03.09.2003 - 1.004 (1.008) Überarbeitung gemäß N0049 31.05.2002 - 1.003 (1.007) Erweiterung der Wertebereiche von Meter, Kilometer und Jahr 12.09.2001 - 1.002 (1.004) formale Versionierung durch Versionierung Verkehrsstaerke: Bezug zum Unfall hergestellt nach Überarbeitung der Unfalldaten 11.12.2000 - 1.001 (1.002) Symbolische Verweise integriert für Automatische_Dauerzaehlstelle, manuelle_Zaehlstelle Verlegung von oertliche_Zuordnung in das Schema Strassennetz Verlegung von verwaltungstechn_Zuordnung in das Schema Administration 15.10.1999 - 1.000 (1.000) Erste Version des OKSTRA verabschiedet *) REFERENCE FROM S_Strassennetz (Punktobjekt_stat,Punktobjekt_hist, Streckenobjekt_stat,Streckenobjekt_hist, Bereichsobjekt_stat,Bezugsrichtung, Orientierungsrichtung); REFERENCE FROM S_Administration (ASB_Objekt); REFERENCE FROM S_Verkehr (Fahrstreifen_Nummer); REFERENCE FROM S_Bauliche_Strasseneigenschaften (Teilhindernis); REFERENCE FROM S_Bauwerke (Bauwerk_Verkehrsstaerke); REFERENCE FROM S_Unfall (Angaben_zu_Unfallumstaenden); REFERENCE FROM S_Allgemeine_Objekte (OKSTRA_Objekt,OKSTRA_konzept_Objekt, OKSTRA_Schluesseltabelle,Jahr,Monat, Millisekunden,Prozent,Anzahl, Anzahl_zweistellig,Datum,ASB_Datum, Uhrzeit,Groesse,Stundenkilometer, Kilometer,Meter,Tonnen,Zeitpunkt,Dauer); ENTITY DTV_Basis SUPERTYPE OF (ONEOF(DTV)) SUBTYPE OF (Streckenobjekt_stat); --- Attribute : Fahrzeuge_pro_24h : INTEGER; Bezugsjahr : Jahr; Fahrzeugart : OPTIONAL Fahrzeugart; Fahrzeuggruppe : OPTIONAL Fahrzeuggruppe; --- Relationen : INVERSE von_Bauwerk_Verkehrsstaerke : SET [0:1] OF Bauwerk_Verkehrsstaerke FOR DTV_Kfz; WHERE Fahrzeugart_o_Fahrzeuggruppe : ( EXISTS(Fahrzeugart) XOR EXISTS(Fahrzeuggruppe) ); END_ENTITY; ENTITY DTV SUBTYPE OF (DTV_Basis); --- Attribute : Bezugsmonat : OPTIONAL Monat; Tagesgruppe : Tagesgruppe; Zaehltage : Anzahl; Gesamtstunden : Anzahl; Schaetzwert : BOOLEAN; hat_Bezugsrichtung : OPTIONAL Bezugsrichtung; --- Relationen : fuer_Fahrstreifen : OPTIONAL Fahrstreifen_Nummer; aus_Zaehlstelle : SET [1:?] OF Zaehlstelle_abstrakt; (* D *) INVERSE zu_Unfallumstaenden : SET [0:?] OF Angaben_zu_Unfallumstaenden FOR hat_DTV_im_Gesamtquerschnitt; WHERE Fahrstreifen_o_Bezugsrichtung : ( EXISTS(fuer_Fahrstreifen) XOR EXISTS(hat_Bezugsrichtung) ); END_ENTITY; ENTITY MSV SUBTYPE OF (Streckenobjekt_stat); --- Attribute : Fahrzeuge_pro_h : Anzahl; Bezugsjahr : Jahr; Tagesgruppe : Tagesgruppe; --- Relationen : hat_Bezugsrichtung : Bezugsrichtung; hat_Anteil_am_DTV : OPTIONAL SET [1:?] OF Anteil_am_DTV; aus_Zaehlstelle : SET [1:?] OF Zaehlstelle_abstrakt; (* D *) END_ENTITY; ENTITY Anteil_am_DTV SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Anteil : Prozent; Fahrzeuggruppe : Fahrzeuggruppe; --- Relationen : INVERSE zu_MSV : SET [0:?] OF MSV FOR hat_Anteil_am_DTV; von_Bauwerk_Verkehrsstaerke : SET [0:1] OF Bauwerk_Verkehrsstaerke FOR Anteil_DTV_SV; END_ENTITY; ENTITY Fahrzeugart SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(11); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Fahrzeugart VALUES ('nk Kfz','nicht klassifizierbare Fahrzeuge (Sonstige)') INSERT INTO Fahrzeugart VALUES ('Krad','Motorräder') INSERT INTO Fahrzeugart VALUES ('Pkw(grund)','Pkw') INSERT INTO Fahrzeugart VALUES ('Lfw','Lieferwagen') INSERT INTO Fahrzeugart VALUES ('Pkw','Krad + Pkw(grund) + Lfw') INSERT INTO Fahrzeugart VALUES ('PkwÄ','Pkw + nk Kfz') INSERT INTO Fahrzeugart VALUES ('PkwA','Pkw und Lfw mit Anhänger') INSERT INTO Fahrzeugart VALUES ('Lkw','Lkw mit einem zulässigen Gesamtgewicht von mehr als 3,5 t') INSERT INTO Fahrzeugart VALUES ('LkwA(grund)','Lkw mit Anhänger') INSERT INTO Fahrzeugart VALUES ('Sattel-Kfz','Sattelkraftfahrzeuge') INSERT INTO Fahrzeugart VALUES ('LkwA','LkwA(grund) + Sattel-Kfz') INSERT INTO Fahrzeugart VALUES ('Bus','Busse mit mehr als 9 Sitzplätzen') INSERT INTO Fahrzeugart VALUES ('LkwÄ','PkwA + Lkw + LkwA + Bus') INSERT INTO Fahrzeugart VALUES ('Kfz','PkwÄ + LkwÄ') END_SQL *) ENTITY Fahrzeuggruppe SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(10); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Fahrzeuggruppe VALUES ('PV','motorisierte Zweiräder, Pkw, Busse') INSERT INTO Fahrzeuggruppe VALUES ('GV','Lieferwagen, Lkw ohne Anhänger, Lastzüge') INSERT INTO Fahrzeuggruppe VALUES ('SV','Busse, Lkw ohne Anhänger, Lastzüge') INSERT INTO Fahrzeuggruppe VALUES ('KFZ','PV + GV') END_SQL *) ENTITY Tagesgruppe SUBTYPE OF (OKSTRA_konzept_Objekt); --- Attribute : Fahrtzweckgruppe : OPTIONAL Fahrtzweckgruppe; Normalzeitbereich : OPTIONAL Normalzeitbereich; weitere_Tagesgruppen : OPTIONAL weitere_Tagesgruppen; --- Relationen : WHERE ein_Wert : ( ( EXISTS(Fahrtzweckgruppe) AND NOT EXISTS(Normalzeitbereich) AND NOT EXISTS(weitere_Tagesgruppen) ) OR ( NOT EXISTS(Fahrtzweckgruppe) AND EXISTS(Normalzeitbereich) AND NOT EXISTS(weitere_Tagesgruppen) ) OR ( NOT EXISTS(Fahrtzweckgruppe) AND NOT EXISTS(Normalzeitbereich) AND EXISTS(weitere_Tagesgruppen) ) ); END_ENTITY; ENTITY Fahrtzweckgruppe SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(9); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Fahrtzweckgruppe VALUES ('W','Werktage') INSERT INTO Fahrtzweckgruppe VALUES ('U','Urlaubswerktage') INSERT INTO Fahrtzweckgruppe VALUES ('S','Sonn- und Feiertage') END_SQL *) ENTITY Normalzeitbereich SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(9); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Normalzeitbereich VALUES ('Mo','Montag') INSERT INTO Normalzeitbereich VALUES ('Di-Do','Dienstag-Donnerstag') INSERT INTO Normalzeitbereich VALUES ('Fr','Freitag') INSERT INTO Normalzeitbereich VALUES ('Sa','Samstag') INSERT INTO Normalzeitbereich VALUES ('So','Sonntag') END_SQL *) ENTITY weitere_Tagesgruppen SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(9); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO weitere_Tagesgruppen VALUES ('alle Tage','alle Tage') END_SQL *) ENTITY Zaehlstelle SUBTYPE OF (ASB_Objekt,Zaehlstelle_abstrakt,Punktobjekt_hist); --- Attribute : Art : Art_Zaehlstelle; Zaehlstellennummer : STRING(8); Richtung : Richtung_Zaehlstelle; Landesnummer : OPTIONAL STRING(10); Beginn : OPTIONAL ASB_Datum; Status : OPTIONAL Status_Zaehlstelle; --- Relationen : hat_Gueltigkeitsbereich : OPTIONAL SET [1:?] OF Gueltigkeitsbereich_ZS; zu_DTV : OPTIONAL SET [1:?] OF DTV; zu_MSV : OPTIONAL SET [1:?] OF MSV; zu_Kennw_zur_Laermberechnung : OPTIONAL SET [1:?] OF Kennwert_zur_Laermberechnung; zu_Jahresganglinientyp : OPTIONAL SET [1:?] OF Jahresganglinientyp; zu_Wochenganglinientyp : OPTIONAL SET [1:?] OF Wochenganglinientyp; zu_Tagesganglinientyp : OPTIONAL SET [1:?] OF Tagesganglinientyp; zu_Ganglinie : OPTIONAL SET [1:?] OF Ganglinie; stellt_Teilhindernis_dar : OPTIONAL SET [1:?] OF Teilhindernis; gibt_Verkehrslage_an : OPTIONAL SET [1:?] OF Verkehrslage; gibt_Verkehrsstau_an : OPTIONAL SET [1:?] OF Verkehrsstau; END_ENTITY; ENTITY Gueltigkeitsbereich_ZS SUBTYPE OF (ASB_Objekt,Streckenobjekt_hist); --- Attribute : --- Relationen : INVERSE zu_Zaehlstelle : SET [1:?] OF Zaehlstelle FOR hat_Gueltigkeitsbereich; (* D *) END_ENTITY; ENTITY Art_Zaehlstelle SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(2); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Art_Zaehlstelle VALUES ('01','automatische Dauerzählstelle') INSERT INTO Art_Zaehlstelle VALUES ('03','manuelle Zählstelle (SVZ)') INSERT INTO Art_Zaehlstelle VALUES ('04','manuelle Zählstelle (AVZ)') INSERT INTO Art_Zaehlstelle VALUES ('05','Geschwindigkeitsmessstelle') INSERT INTO Art_Zaehlstelle VALUES ('06','Achslastmessstelle') INSERT INTO Art_Zaehlstelle VALUES ('07','Verkehrslageerfassung') INSERT INTO Art_Zaehlstelle VALUES ('08','fiktive Zählstelle') INSERT INTO Art_Zaehlstelle VALUES ('09','Mautzählstelle (Toll)') INSERT INTO Art_Zaehlstelle VALUES ('99','Sonderzählstelle (landeseigene Definition)') END_SQL *) ENTITY Status_Zaehlstelle SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(1); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Status_Zaehlstelle VALUES ('0','unbekannt') INSERT INTO Status_Zaehlstelle VALUES ('1','aktiv (in Betrieb)') INSERT INTO Status_Zaehlstelle VALUES ('2','inaktiv (außer Betrieb)') INSERT INTO Status_Zaehlstelle VALUES ('4','geplant') END_SQL *) ENTITY Richtung_Zaehlstelle SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(1); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Richtung_Zaehlstelle VALUES ('0','Erfassung beider Richtungen') INSERT INTO Richtung_Zaehlstelle VALUES ('1','Erfassung in Stationierungsrichtung') INSERT INTO Richtung_Zaehlstelle VALUES ('2','Erfassung gegen Stationierungsrichtung') INSERT INTO Richtung_Zaehlstelle VALUES ('9','unbekannt') END_SQL *) ENTITY Zaehlstelle_abstrakt ABSTRACT SUPERTYPE OF (ONEOF(Zaehlstelle,Zaehlstelle_Symbol)); --- Attribute : --- Relationen : END_ENTITY; ENTITY Zaehlstelle_Symbol SUBTYPE OF (Zaehlstelle_abstrakt); --- Attribute : Kennung : STRING(10); -- Zählstellennummer + Art_Zählstelle-Kennung --- Relationen : END_ENTITY; ENTITY Kennwert_zur_Laermberechnung SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Stundengruppe : Stundengruppe; Kraftfahrzeuge_pro_h : Anzahl; Bezugsjahr : Jahr; --- Relationen : aus_Zaehlstelle : SET [1:?] OF Zaehlstelle_abstrakt; (* D *) hat_Anteil_Kennwert : OPTIONAL SET [1:?] OF Anteil_Kennwert; END_ENTITY; ENTITY Stundengruppe SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : INTEGER; Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Stundengruppe VALUES (1,'Tag (6h-22h)') INSERT INTO Stundengruppe VALUES (2,'Nacht (22h-6h)') INSERT INTO Stundengruppe VALUES (3,'day (6h-18h)') INSERT INTO Stundengruppe VALUES (4,'evening (18h-22h)') END_SQL *) ENTITY Anteil_Kennwert SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Anteil : Prozent; Fahrzeugart : OPTIONAL Fahrzeugart; Fahrzeuggruppe : OPTIONAL Fahrzeuggruppe; --- Relationen : INVERSE zu_Kennwert_z_Laermberechnung : SET [0:?] OF Kennwert_zur_Laermberechnung FOR hat_Anteil_Kennwert; WHERE Fahrzeugart_o_Fahrzeuggruppe : ( EXISTS(Fahrzeugart) XOR EXISTS(Fahrzeuggruppe) ); END_ENTITY; ENTITY Jahresganglinientyp SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Bezugsjahr : Jahr; Typ : Typ_Jahresganglinie; --- Relationen : aus_Zaehlstelle : SET [1:?] OF Zaehlstelle_abstrakt; (* D *) END_ENTITY; ENTITY Typ_Jahresganglinie SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(1); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Typ_Jahresganglinie VALUES ('A','Weitgehend ausgeglichene Ganglinie mit Rückgängen für Ferien- und Feiertagswochen.') INSERT INTO Typ_Jahresganglinie VALUES ('B','Weitgehend ausgeglichene Ganglinie, im Sommerhalbjahr etwas stärkerer Verkehr als im Winterhalbjahr.') INSERT INTO Typ_Jahresganglinie VALUES ('C','Im Sommerhalbjahr sichtbar stärkerer Verkehr als im Winterhalbjahr.') INSERT INTO Typ_Jahresganglinie VALUES ('D','Spitzen für Ferien- und Feiertagswochen.') INSERT INTO Typ_Jahresganglinie VALUES ('E','Wie Typ D, jedoch gleichmäßiger Verkehrsanstieg im 1. Halbjahr.') INSERT INTO Typ_Jahresganglinie VALUES ('F','Spitzen für Feiertagswochen und deutliche Spitzen für Ferienwochen.') END_SQL *) ENTITY Wochenganglinientyp SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Bezugsjahr : Jahr; Typ : Typ_Wochenganglinie; Bezugsrichtung : Bezugsrichtung; --- Relationen : aus_Zaehlstelle : SET [1:?] OF Zaehlstelle_abstrakt; (* D *) END_ENTITY; ENTITY Typ_Wochenganglinie SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : STRING(1); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Typ_Wochenganglinie VALUES ('A','Wochenende stark abfallend, ausgeprägtes Minimum Sonntag.') INSERT INTO Typ_Wochenganglinie VALUES ('B','Wochenende stark abfallend, Minimum Sonntag.') INSERT INTO Typ_Wochenganglinie VALUES ('C','Maximum Freitag, Wochenende abfallend.') INSERT INTO Typ_Wochenganglinie VALUES ('D','(Lokales) Maximum Montag, Freitag, Sonntag, Minimum Samstag.') INSERT INTO Typ_Wochenganglinie VALUES ('E','Maximum Freitag, Samstag überdurchschnittlich.') INSERT INTO Typ_Wochenganglinie VALUES ('F','Ausgeprägtes Maximum Sonntag.') END_SQL *) ENTITY Tagesganglinientyp SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Bezugsjahr : Jahr; Typ : Tagesgruppe_Typ; Bezugsrichtung : Bezugsrichtung; Stundenindex : OPTIONAL SET [1:?] OF INTEGER; --- Relationen : aus_Zaehlstelle : SET [1:?] OF Zaehlstelle_abstrakt; (* D *) END_ENTITY; ENTITY Tagesgruppe_Typ SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : INTEGER; Tagesgruppe : STRING(7); Buchstabe : STRING(1); Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Tagesgruppe_Typ VALUES (1,'Montag','A','Stark ausgeprägte Morgenspitze.') INSERT INTO Tagesgruppe_Typ VALUES (2,'Montag','B','Morgenspitze, geringe Nachmittagsspitze.') INSERT INTO Tagesgruppe_Typ VALUES (3,'Montag','C','Relativ ausgeglichene Verkehrsverteilung tagsüber.') INSERT INTO Tagesgruppe_Typ VALUES (4,'Montag','D','Doppelspitze (Morgen / Nachmittag).') INSERT INTO Tagesgruppe_Typ VALUES (5,'Montag','E','Nachmittagsspitze, geringe Morgenspitze') INSERT INTO Tagesgruppe_Typ VALUES (6,'Montag','F','Stark ausgeprägte Nachmittagsspitze.') INSERT INTO Tagesgruppe_Typ VALUES (7,'Montag','G','Überdurchschnittliche Anteilswerte frühmorgens, nach Morgenspitze stetig abfallend.') INSERT INTO Tagesgruppe_Typ VALUES (8,'Di - Do','A','Stark ausgeprägte Morgenspitze.') INSERT INTO Tagesgruppe_Typ VALUES (9,'Di - Do','B','Morgenspitze, geringe Nachmittagsspitze.') INSERT INTO Tagesgruppe_Typ VALUES (10,'Di - Do','C','Relativ ausgeglichene Verkehrsverteilung tagsüber.') INSERT INTO Tagesgruppe_Typ VALUES (11,'Di - Do','D','Doppelspitze (Morgen / Nachmittag).') INSERT INTO Tagesgruppe_Typ VALUES (12,'Di - Do','E','Nachmittagsspitze, geringe Morgenspitze.') INSERT INTO Tagesgruppe_Typ VALUES (13,'Di - Do','F','Stark ausgeprägte Nachmittagsspitze.') INSERT INTO Tagesgruppe_Typ VALUES (14,'Freitag','A','Stark ausgeprägte Morgenspitze.') INSERT INTO Tagesgruppe_Typ VALUES (15,'Freitag','B','Morgenspitze, gegenüber Mittag höhere Verkehrsstärken nachmittags.') INSERT INTO Tagesgruppe_Typ VALUES (16,'Freitag','C','Relativ ausgeglichene Verkehrsverteilung tagsüber.') INSERT INTO Tagesgruppe_Typ VALUES (17,'Freitag','D','Morgenspitze, breites Maximum am Nachmittag.') INSERT INTO Tagesgruppe_Typ VALUES (18,'Freitag','E','Breites Maximum am Nachmittag.') INSERT INTO Tagesgruppe_Typ VALUES (19,'Freitag','F','Stark ausgeprägtes, breites Maximum am Nachmittag.') INSERT INTO Tagesgruppe_Typ VALUES (20,'Samstag','A','Relativ ausgeglichene Verkehrsverteilung tagsüber.') INSERT INTO Tagesgruppe_Typ VALUES (21,'Samstag','B','Nach Vormittagsspitze stetig abfallend.') INSERT INTO Tagesgruppe_Typ VALUES (22,'Samstag','C','Doppelspitze (Vormittag / Nachmittag).') INSERT INTO Tagesgruppe_Typ VALUES (23,'Samstag','D','Breite Nachmittagsspitze.') INSERT INTO Tagesgruppe_Typ VALUES (24,'Samstag','E','Abendspitze.') INSERT INTO Tagesgruppe_Typ VALUES (25,'Samstag','F','Nach ausgeprägter Vormittagsspitze stetig abfallend.') INSERT INTO Tagesgruppe_Typ VALUES (26,'Samstag','G','Stetig ansteigend zu ausgeprägter Nachmittagsspitze, danach stetig fallend.') INSERT INTO Tagesgruppe_Typ VALUES (27,'Samstag','H','Stark ausgeprägte Abendspitze.') INSERT INTO Tagesgruppe_Typ VALUES (28,'Sonntag','A','Relativ ausgeglichene Verkehrsverteilung tagsüber.') INSERT INTO Tagesgruppe_Typ VALUES (29,'Sonntag','B','Mittagsspitze.') INSERT INTO Tagesgruppe_Typ VALUES (30,'Sonntag','C','Nachmittagsspitze.') INSERT INTO Tagesgruppe_Typ VALUES (31,'Sonntag','D','Abendspitze.') INSERT INTO Tagesgruppe_Typ VALUES (32,'Sonntag','E','Ausgeprägte Mittagsspitze.') INSERT INTO Tagesgruppe_Typ VALUES (33,'Sonntag','F','Ausgeprägte Nachmittagsspitze.') INSERT INTO Tagesgruppe_Typ VALUES (34,'Sonntag','G','Ausgeprägte Abendspitze.') END_SQL *) ENTITY Ganglinie SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Bezeichnung : STRING; fachliche_Bedeutung : STRING; Informationstext : OPTIONAL STRING; Datum : OPTIONAL Datum; Inhalt : OPTIONAL STRING; Intervall_Einheit : OPTIONAL Intervall_Einheit; Intervall_Dauer : OPTIONAL REAL; Intervall_Anzahl : OPTIONAL INTEGER; Wert_min : OPTIONAL REAL; Wert_max : OPTIONAL REAL; Einheit : OPTIONAL STRING; Bezugsrichtung : OPTIONAL Bezugsrichtung; --- Relationen : hat_Ganglinienwert : SET[1:?] OF Ganglinienwert; ist_Punktobjekt : OPTIONAL Ganglinie_Punktobjekt; ist_Bereichsobjekt : OPTIONAL Ganglinie_Bereichsobjekt; hat_Fahrstreifen : OPTIONAL SET[1:?] OF Fahrstreifen_Nummer; (* D *) aus_Zaehlstelle : OPTIONAL SET[1:?] OF Zaehlstelle_abstrakt; (* D *) WHERE Punktobjekt_o_Bereichsobjekt : (EXISTS(ist_Punktobjekt) XOR EXISTS(ist_Bereichsobjekt)); END_ENTITY; ENTITY Intervall_Einheit SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : INTEGER; Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Intervall_Einheit VALUES (1,'Stunden') INSERT INTO Intervall_Einheit VALUES (2,'Minuten') INSERT INTO Intervall_Einheit VALUES (3,'Sekunden') END_SQL *) ENTITY Ganglinie_Punktobjekt SUBTYPE OF (Punktobjekt_stat); --- Attribute : --- Relationen : INVERSE zu_Ganglinie : SET[1:?] OF Ganglinie FOR ist_Punktobjekt; END_ENTITY; ENTITY Ganglinie_Bereichsobjekt SUBTYPE OF (Bereichsobjekt_stat); --- Attribute : --- Relationen : INVERSE zu_Ganglinie : SET[1:?] OF Ganglinie FOR ist_Bereichsobjekt; END_ENTITY; ENTITY Ganglinienwert SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Startzeit : Uhrzeit; Startdatum : OPTIONAL Datum; Endzeit : OPTIONAL Uhrzeit; Enddatum : OPTIONAL Datum; Wert : REAL; --- Relationen : INVERSE gehoert_zu_Ganglinie : SET[1:?] OF Ganglinie FOR hat_Ganglinienwert; END_ENTITY; ENTITY Verkehrslage SUBTYPE OF (Punktobjekt_stat,Streckenobjekt_stat); --- Attribute : Bezeichnung : OPTIONAL STRING; Datum : Datum; Uhrzeit : Uhrzeit; Lkw_pro_Stunde : Anzahl; Pkw_pro_Stunde : Anzahl; v_Lkw : OPTIONAL Stundenkilometer; v_Pkw : OPTIONAL Stundenkilometer; Bezugsrichtung : Orientierungsrichtung; --- Relationen : auf_Fahrstreifen : OPTIONAL SET [1:?] OF Fahrstreifen_Nummer; aus_Zaehlstelle : OPTIONAL SET [1:?] OF Zaehlstelle_abstrakt; (* D *) END_ENTITY; ENTITY Verkehrsstau SUBTYPE OF (Punktobjekt_stat,Streckenobjekt_stat); --- Attribute : Bezeichnung : OPTIONAL STRING; Datum : Datum; Uhrzeit : Uhrzeit; Staulaenge : Kilometer; Verlustzeit : Dauer; Bezugsrichtung : Orientierungsrichtung; --- Relationen : auf_Fahrstreifen : OPTIONAL SET [1:?] OF Fahrstreifen_Nummer; aus_Zaehlstelle : OPTIONAL SET [1:?] OF Zaehlstelle_abstrakt; (* D *) END_ENTITY; ENTITY Erfassung_Geschwindigkeiten SUBTYPE OF (OKSTRA_Objekt); --- Attribute : zugehoerige_Fahrzeugklasse : INTEGER; --- Relationen : hat_V_Verteilungen : OPTIONAL SET [1:?] OF V_Verteilungen; hat_aggregierte_Werte : SET [1:?] OF aggregierte_Werte; END_ENTITY; ENTITY V_Verteilungen SUBTYPE OF (OKSTRA_Objekt); --- Attribute : --- Relationen : hat_Anzahl_V_Klassen : SET [1:?] OF Anzahl_V_Klassen; hat_V_Klassen : SET [1:?] OF V_Klassen; INVERSE von_Erfassung_Geschwindigktn : SET [0:?] OF Erfassung_Geschwindigkeiten FOR hat_V_Verteilungen; END_ENTITY; ENTITY Anzahl_V_Klassen SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Fahrzeugklasse : INTEGER; Anzahl_V_Klassen : Anzahl; --- Relationen : INVERSE von_V_Verteilungen : SET [0:?] OF V_Verteilungen FOR hat_Anzahl_V_Klassen; WHERE Fahrzeugklasse_positiv : Fahrzeugklasse >= 1; Anzahl_sinnvoll : Anzahl_V_Klassen <= 16; END_ENTITY; ENTITY V_Klassen SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Klassennummer : Anzahl_zweistellig; Klassengrenze : INTEGER; Klassenwert : INTEGER; --- Relationen : hat_abgel_Werte_und_Verteilgen: OPTIONAL SET [1:?] OF abgel_Werte_u_Verteilgen_VK; INVERSE von_V_Klassen : SET [0:?] OF V_Verteilungen FOR hat_V_Klassen; END_ENTITY; ENTITY abgel_Werte_u_Verteilgen_VK SUBTYPE OF (OKSTRA_Objekt); --- Attribute : --- Relationen : INVERSE von_V_Klassen : SET [0:?] OF V_Klassen FOR hat_abgel_Werte_und_Verteilgen; END_ENTITY; ENTITY aggregierte_Werte SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Standardabweichung : OPTIONAL Stundenkilometer; v85 : OPTIONAL Stundenkilometer; --- Relationen : hat_mittlere_Geschwindigkeit : mittlere_Geschwindigkeit; INVERSE von_Erfassung_Geschwindigkeit : SET [0:?] OF Erfassung_Geschwindigkeiten FOR hat_aggregierte_Werte; WHERE Standardabweichung_sinnvoll : Standardabweichung <= 255; v85_sinnvoll : v85 <= 254; END_ENTITY; ENTITY mittlere_Geschwindigkeit SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Geschwindigkeit : Stundenkilometer; --- Relationen : hat_abgeleitete_Werte : OPTIONAL SET [1:?] OF abgeleitete_Werte_VM; INVERSE von_aggregierten_Werten : SET [0:?] OF aggregierte_Werte FOR hat_mittlere_Geschwindigkeit; WHERE Geschwindigkeit_sinnvoll : Geschwindigkeit <= 255; END_ENTITY; ENTITY abgeleitete_Werte_VM SUBTYPE OF (OKSTRA_Objekt); --- Attribute : --- Relationen : INVERSE von_mittlerer_Geschwindigkeit : SET [0:?] OF mittlere_Geschwindigkeit FOR hat_abgeleitete_Werte; END_ENTITY; ENTITY Achslastdatenerfassung SUBTYPE OF (OKSTRA_Objekt); --- Attribute : --- Relationen : hat_GG_Verteilung_e_FZ_Klasse : SET [1:?] OF GG_Verteilung_einer_FZ_Klasse; hat_Achslastvertlg_e_Achstyps : SET [1:?] OF Achslastverteilung_e_Achstyps; hat_abgel_Werte_und_Vertlgen : OPTIONAL SET [1:?] OF abgel_Werte_und_Verteilungen; END_ENTITY; ENTITY abgel_Werte_und_Verteilungen SUBTYPE OF (OKSTRA_Objekt); --- Attribute : --- Relationen : INVERSE von_Achslastdatenerfassung : SET [0:?] OF Achslastdatenerfassung FOR hat_abgel_Werte_und_Vertlgen; END_ENTITY; ENTITY GG_Verteilung_einer_FZ_Klasse SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Fahrzeugklasse : INTEGER; Anzahl_der_GG_Klassen_FZ_Kl_3 : INTEGER; Anzahl_der_GG_Klassen_FZ_Kl_4 : INTEGER; Anzahl_der_GG_Klassen_FZ_Kl_5 : INTEGER; Anzahl_Ueberladungen : Anzahl; --- Relationen : hat_GG_Klasse : SET [1:?] OF GG_Klasse; INVERSE von_Achslastdatenerfassung : SET [0:?] OF Achslastdatenerfassung FOR hat_GG_Verteilung_e_FZ_Klasse; WHERE Fahrzeugklasse_zulaessig : { 3 <= Fahrzeugklasse <= 5 }; Anzahl_Ueberladungen_zulaessig: Anzahl_Ueberladungen <= 255; END_ENTITY; TYPE Klassenwert = Anzahl; WHERE Klassenwert_zulaessig : SELF <= 65535; END_TYPE; ENTITY GG_Klasse SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Klassennummer : INTEGER; Klassengrenze : Groesse; Klassenwert : Klassenwert; --- Relationen : INVERSE von_GG_Verteilung_e_FZ_Klasse : SET [0:?] OF GG_Verteilung_einer_FZ_Klasse FOR hat_GG_Klasse; WHERE Klassennummer_zulaessig : { 1 <= Klassennummer <= 8 }; END_ENTITY; ENTITY Achstyp SUBTYPE OF (OKSTRA_Schluesseltabelle); Kennung : INTEGER; Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; (* SQL : INSERT INTO Achstyp VALUES (1,'Einfachachse') INSERT INTO Achstyp VALUES (2,'Doppelachse') INSERT INTO Achstyp VALUES (3,'Dreifachachse') END_SQL *) TYPE Anzahl_Klassen = INTEGER; WHERE Anzahl_zulaessig : { 1 <= SELF <= 99 }; END_TYPE; ENTITY Achslastverteilung_e_Achstyps SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Achstyp : Achstyp; Anz_d_Klassen_f_Einzelachsen : Anzahl_Klassen; Anz_d_Klassen_f_Doppelachsen : Anzahl_Klassen; Anz_d_Klassen_f_Dreifachachsen: Anzahl_Klassen; --- Relationen : hat_Klasse_AL : Klasse_AL; INVERSE von_Achslastdatenerfassung : SET [0:?] OF Achslastdatenerfassung FOR hat_Achslastvertlg_e_Achstyps; END_ENTITY; ENTITY Klasse_AL SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Klassennummer : INTEGER; Klassengrenze : Groesse; Klassenwert : Klassenwert; --- Relationen : INVERSE von_Achslastvertlg_e_Achstyps : SET [0:?] OF Achslastverteilung_e_Achstyps FOR hat_Klasse_AL; WHERE Klassennummer_zulaessig : { 0 <= Klassennummer <= 99 }; END_ENTITY; ENTITY Einzelfahrzeugdaten SUBTYPE OF (OKSTRA_Objekt); --- Attribute : Geschwindigkeit : Stundenkilometer; Fahrzeugklasse : Fahrzeugklasse; Fahrzeuglaenge : OPTIONAL Meter; zugehoeriger_Zeitpunkt : Zeitpunkt; Abstand_zum_vorausfahrenden_FZ: OPTIONAL Meter; Nettozeitluecke_z_vorherig_FZ : OPTIONAL Millisekunden; Anzahl_der_Achsen : OPTIONAL Anzahl; Gesamtgewicht : OPTIONAL Tonnen; Ueberladung_vorhanden : OPTIONAL BOOLEAN; Ueberladung : OPTIONAL Tonnen; achsbezogene_Daten : OPTIONAL SET [1:?] OF achsbezogene_Daten; END_ENTITY; ENTITY Fahrzeugklasse SUBTYPE OF (OKSTRA_Schluesseltabelle); --- Attribute : Kennung : STRING; Langtext : STRING; UNIQUE Kennung_eindeutig : Kennung; END_ENTITY; ENTITY achsbezogene_Daten SUBTYPE OF (OKSTRA_konzept_Objekt); --- Attribute : Achsnummer : INTEGER; Achsabstand_zur_Vorderachse : Meter; Achslast : Tonnen; Achstyp : Achstyp; Ueberladung_vorhanden : OPTIONAL BOOLEAN; Ueberladung : OPTIONAL Tonnen; END_ENTITY; END_SCHEMA; -- S_Dynamische_Verkehrsdaten