SCHEMA Manuelle_Zaehlstelle;

REFERENCE FROM Strassennetz (TK25_Blattnummer, Streckenobjekt_stat);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (verwaltungstechn_Zuordnung, oertliche_Zuordnung, Anzahl, Kilometer);

ENTITY manuelle_Zaehlstelle
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    TK25_Blattnummer: TK25_Blattnummer;
    Zaehlstellennummer: INTEGER;
--- Relationen :
    hat_Erfassung_Gesamtverkehr: SET [1: ?] OF Erfassung_Gesamtverkehr;
    hat_Erfassung_Auslaenderverk: OPTIONAL Erfassung_Auslaenderverkehr;
    hat_keine_Erfassung_AV: OPTIONAL keine_Erfassung_AV;
    hat_verwaltungstechn_Zuordnung: verwaltungstechn_Zuordnung_MZ;
    hat_Hochrechnungsergebnisse: SET [1: ?] OF Hochrechnungsergebnisse;
    hat_Charakteristik: Charakteristik;
    hat_oertliche_Zuordnung: oertliche_Zuordnung_MZ;
    hat_Bezugszaehlstelle_Auslverk: OPTIONAL SET [1: ?] OF Bezugszaehlstelle_Auslverkehr;
    hat_Bezugszaehlstelle_Gesamtvk: OPTIONAL SET [1: ?] OF Bezugszaehlstelle_Gesamtverk;
    hat_Angaben_zur_letzten_Zaehlg: Angaben_zur_letzten_Zaehlung;
WHERE
    Erfassung_AV_konsistent: NOT(EXISTS(hat_keine_Erfassung_AV)AND EXISTS(hat_Erfassung_Auslaenderverk));
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Erfassung_Gesamtverkehr
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
    Abschnittslaenge: Kilometer;
--- Relationen :
INVERSE
    von_manueller_Zaehlstelle: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_Erfassung_Gesamtverkehr;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Erfassung_Auslaenderverkehr;
--- Attribute :
    Abschnittslaenge: Kilometer;
--- Relationen :
    hat_Gueltigkeitsbereich: SET [1: ?] OF Gueltigkeitsbereich_AV;
INVERSE
    von_manueller_Zaehlstelle: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_Erfassung_Auslaenderverk;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Gueltigkeitsbereich_AV
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Beginn: INTEGER;
    Ende: INTEGER;
--- Relationen :
INVERSE
    von_Erfassung_Auslaenderverk: SET [0: ?] OF Erfassung_Auslaenderverkehr FOR hat_Gueltigkeitsbereich;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY keine_Erfassung_AV;
--- Attribute :
    Erfassungsart: BOOLEAN;
--- Relationen :
INVERSE
    von_manueller_Zaehlstelle: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_keine_Erfassung_AV;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY verwaltungstechn_Zuordnung_MZ;
--- Attribute :
--- Relationen :
    hat_verwaltungstechn_Zuordnung: verwaltungstechn_Zuordnung;
    hat_Verwaltungskennziffern: SET [1: ?] OF Verwaltungskennziffern;
INVERSE
    von_manueller_Zaehlstelle: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_verwaltungstechn_Zuordnung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Verwaltungskennziffern;
--- Attribute :
    Regionskennziffer_1: INTEGER;
    Regionskennziffer_2: INTEGER;
    Kreiskennziffer: INTEGER;
    Kennziffer_SM_AM: INTEGER;
--- Relationen :
INVERSE
    von_verwaltungstechn_Zuordnung: SET [0: ?] OF verwaltungstechn_Zuordnung_MZ FOR hat_Verwaltungskennziffern;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Hochrechnungsergebnisse
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Fahrradzaehlung: BOOLEAN;
    Kradzaehlung: BOOLEAN;
    Fahrzeuggruppen: OPTIONAL SET [1: ?] OF STRING(99);
    Datenbeschreibung: OPTIONAL SET [1: ?] OF STRING(99);
--- Relationen :
INVERSE
    von_manueller_Zaehlgruppe: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_Hochrechnungsergebnisse;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Charakteristik;
--- Attribute :
    Charakteristik_1: Tab_Charakteristik;
    Charakteristik_2: Tab_Charakteristik;
    Charakteristik_3: Tab_Charakteristik;
    Lagekennung: Lagekennung;
    Netzknotenangaben: BOOLEAN;
--- Relationen :
    hat_Angaben_z_Strassenquerschn: SET [1: ?] OF Angaben_z_Strassenquerschnitt;
    hat_Richtungskennung: SET [1: ?] OF Richtungskennung;
    hat_Bemerkungskennziffern: SET [1: ?] OF Bemerkungskennziffern;
INVERSE
    von_manueller_Zaehlstelle: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_Charakteristik;
WHERE
    Charakteristik_3_mind_3: Charakteristik_3>=3;
    Charakteristik_2_mind_2: Charakteristik_2>=2;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Tab_Charakteristik;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'Kreuzung')
   (2,'Einmündung')
   (3,'Ein-/Ausfahrt Grundstück')
   (4,'Steigung/Gefälle')
   (5,'Kuppe')
   (6,'Kurve')
   (7,'frei')
   (8,'Steigung')
   (9,'Gefälle')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Lagekennung;
--- Attribute :
    Kennung: STRING(1);
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   ('F','Freie Strecke')
   ('O','Ortsdurchfahrt')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Angaben_z_Strassenquerschnitt
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Anzahl_Fahrstreifen: Anzahl;
    Anzahl_Standstreifen: Anzahl;
    Anzahl_Mehrzweckstreifen: Anzahl;
    Anzahl_Radwege: Anzahl;
    Anzahl_Gleise: Anzahl;
    Anzahl_Breitenklasse: Anzahl;
--- Relationen :
INVERSE
    von_Charakteristik: SET [0: ?] OF Charakteristik FOR hat_Angaben_z_Strassenquerschn;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Richtungskennung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Kennung: Tab_Richtungskennung;
--- Relationen :
INVERSE
    von_Charakteristik: SET [0: ?] OF Charakteristik FOR hat_Richtungskennung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Tab_Richtungskennung;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (0,'GQ')
   (1,'N')
   (2,'O')
   (3,'S')
   (4,'W')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Bemerkungskennziffern
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Kennziffer_1: Kennziffer_1;
    Kennziffer_2: Kennziffer_2;
--- Relationen :
INVERSE
    von_Charakteristik: SET [0: ?] OF Charakteristik FOR hat_Bemerkungskennziffern;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Kennziffer_1;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'keine aktuelle Zählung')
   (2,'manuelle und automatische Zählung')
   (3,'nur automatische Zählung')
   (4,'Knotenzählstelle')
   (5,'rechnerisch')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Kennziffer_2;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'neue Zählstelle')
   (2,'Silhouettenzählstelle')
   (3,'Ergänzungszählstelle')
   (4,'neue und Ergänzungszählstelle')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY oertliche_Zuordnung_MZ;
--- Attribute :
    Sortiernummer: INTEGER;
--- Relationen :
    hat_oertliche_Zuordnung: oertliche_Zuordnung;
    hat_benachbarte_Anschlstellen: SET [2: ?] OF benachbarte_Anschlussstellen;
INVERSE
    von_manueller_Zaehlstelle: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_oertliche_Zuordnung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY benachbarte_Anschlussstellen
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    AS_von: STRING(50);
    AS_bis: STRING(50);
--- Relationen :
INVERSE
    von_oertlicher_Zuordnung: SET [0: ?] OF oertliche_Zuordnung_MZ FOR hat_benachbarte_Anschlstellen;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Bezugszaehlstelle_Auslverkehr
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Land: INTEGER;
    Bauamt: INTEGER;
    TK25_Nummer: TK25_Blattnummer;
    Zaehlstellennummer: INTEGER;
--- Relationen :
INVERSE
    von_manueller_Zaehlstelle: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_Bezugszaehlstelle_Auslverk;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Bezugszaehlstelle_Gesamtverk
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Land: INTEGER;
    Bauamt: INTEGER;
    TK25_Nummer: TK25_Blattnummer;
    Zaehlstellennummer: INTEGER;
--- Relationen :
INVERSE
    von_manueller_Zaehlstelle: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_Bezugszaehlstelle_Gesamtvk;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Angaben_zur_letzten_Zaehlung;
--- Attribute :
    Land: INTEGER;
    Bauamt: INTEGER;
    Zaehlstellennummer: INTEGER;
    TK25_Nummer: TK25_Blattnummer;
    Strassenklasse: STRING(1);
    Strassennummer: INTEGER;
    Zusatz_Strassennummer: STRING(1);
--- Relationen :
INVERSE
    von_manueller_Zaehlstelle: SET [0: ?] OF manuelle_Zaehlstelle FOR hat_Angaben_zur_letzten_Zaehlg;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

END_SCHEMA; -- Manuelle_Zaehlstelle