SCHEMA Strassenzustandsdaten;

REFERENCE FROM Strassennetz (Streckenobjekt_stat);

REFERENCE FROM Verkehr (Verkehrsrichtung, Fahrstreifen_Nummer);

REFERENCE FROM Bauliche_Strasseneigenschaften (Querschnittstreifen);

REFERENCE FROM Allgemeine_Objekte (Zeitraum, Datum);

ENTITY ZEB_Objekt
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
    ZEB_Objekt: OPTIONAL STRING(30);
    Objektnummer: OPTIONAL INTEGER;
    hat_Verkehrsrichtung: Verkehrsrichtung;
--- Relationen :
    gilt_fuer_Querschnittstreifen: SET [1: ?] OF Querschnittstreifen;
    gilt_fuer_Fahrstreifen: SET [1: ?] OF Fahrstreifen_Nummer;
    von_ZEB_Projekt: SET [1: ?] OF ZEB_Projekt;
    hat_Art_des_ZEB_Objektes: SET [1: ?] OF Art_des_ZEB_Objektes;
INVERSE
    hat_ZEB_Parameterwert: SET [0: ?] OF ZEB_Parameterwert FOR von_ZEB_Objekt;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Projekt;
--- Attribute :
    Kurzbezeichnung_ZEB_Kamp: OPTIONAL STRING(8);
    ZEB_Projekt: OPTIONAL STRING(20);
    Hauptmessverfahren: OPTIONAL STRING(20);
    Zweck: OPTIONAL STRING(100);
    Umfang: OPTIONAL STRING(200);
--- Relationen :
    hat_ZEB_Parameterliste: ZEB_Parameterliste;
    hat_Zeitraum: SET [1: ?] OF Zeitraum;
    hat_ZEB_Ereignis: SET [1: ?] OF ZEB_Ereignis;
    hat_ZEB_Subjekt: SET [1: ?] OF ZEB_Subjekt;
INVERSE
    hat_ZEB_Objekt: SET [0: ?] OF ZEB_Objekt FOR von_ZEB_Projekt;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Parameterwert
ABSTRACT SUPERTYPE OF (ONEOF(Wert_einer_Zustandsgroesse , Wert_eines_Zustandswertes , Wert_eines_Teilwertes , Wert_eines_Gesamtwertes , Wert_eines_Rohdatums ));
--- Attribute :
    Wert: OPTIONAL STRING;
--- Relationen :
    von_ZEB_Objekt: ZEB_Objekt;
    von_ZEB_Parameter: ZEB_Parameter;
    von_ZEB_Ereignis: ZEB_Ereignis;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Art_des_ZEB_Objektes;
--- Attribute :
    Kurzbezeichnung_Objektart: OPTIONAL STRING(8);
    ZEB_Objektart: OPTIONAL STRING(30);
--- Relationen :
INVERSE
    von_ZEB_Objekt: SET [0: ?] OF ZEB_Objekt FOR hat_Art_des_ZEB_Objektes;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Wert_einer_Zustandsgroesse
SUBTYPE OF (ZEB_Parameterwert);
--- Attribute :
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Wert_eines_Zustandswertes
SUBTYPE OF (ZEB_Parameterwert);
--- Attribute :
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Wert_eines_Teilwertes
SUBTYPE OF (ZEB_Parameterwert);
--- Attribute :
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Wert_eines_Gesamtwertes
SUBTYPE OF (ZEB_Parameterwert);
--- Attribute :
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Wert_eines_Rohdatums
SUBTYPE OF (ZEB_Parameterwert);
--- Attribute :
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Parameter;
--- Attribute :
    Kurzbezeichnung_Paramgroesse: OPTIONAL STRING(8);
    Parametergroesse: OPTIONAL STRING(30);
    Parameternummer: OPTIONAL INTEGER;
    Einheit: OPTIONAL STRING(8);
    Art_ZEB_Parameter: Art_ZEB_Parameter;
    Art_ZEB_Methode: Art_ZEB_Methode;
--- Relationen :
    hat_ZEB_Dokument: ZEB_Dokument;
INVERSE
    von_ZEB_Parameterliste: SET [0: ?] OF ZEB_Parameterliste FOR hat_ZEB_Parameter;
    hat_ZEB_Parameterwert: SET [0: ?] OF ZEB_Parameterwert FOR von_ZEB_Parameter;
WHERE
    einfach_in_ZEB_Parameterliste: VALUE_UNIQUE(von_ZEB_Parameterliste);
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Dokument;
--- Attribute :
    Kurzbezeichnung_ZEB_Dokument: OPTIONAL STRING(8);
    ZEB_Dokument: OPTIONAL STRING(20);
    Datum_der_Erstellung: OPTIONAL Datum;
    Ersteller: OPTIONAL STRING(30);
    Art_des_Dokumentes: OPTIONAL STRING(20);
--- Relationen :
INVERSE
    von_ZEB_Ereignis: SET [0: ?] OF ZEB_Ereignis FOR hat_ZEB_Dokument;
    von_ZEB_Parameter: SET [0: ?] OF ZEB_Parameter FOR hat_ZEB_Dokument;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Ereignis;
--- Attribute :
    Kurzbezeichnung_ZEB_Ereignis: OPTIONAL STRING(8);
    ZEB_Ereignis: OPTIONAL STRING(20);
--- Relationen :
    hat_ZEB_Dokument: OPTIONAL ZEB_Dokument;
    hat_Zeitraum: SET [1: ?] OF Zeitraum;
    hat_ZEB_Subjekt: SET [1: ?] OF ZEB_Subjekt;
INVERSE
    von_ZEB_Projekt: SET [0: ?] OF ZEB_Projekt FOR hat_ZEB_Ereignis;
    hat_ZEB_Parameterwert: SET [1: ?] OF ZEB_Parameterwert FOR von_ZEB_Ereignis;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Erfasser
SUBTYPE OF (ZEB_Subjekt);
--- Attribute :
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Bewerter
SUBTYPE OF (ZEB_Subjekt);
--- Attribute :
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Veranlasser
SUBTYPE OF (ZEB_Subjekt);
--- Attribute :
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Subjekt
ABSTRACT SUPERTYPE OF (ONEOF(ZEB_Erfasser , ZEB_Bewerter , ZEB_Veranlasser ));
--- Attribute :
    Kurzbezeichnung_Subjekt: OPTIONAL STRING(8);
    Subjekt: OPTIONAL STRING(20);
    Adresse_Subjekt: OPTIONAL STRING(100);
--- Relationen :
INVERSE
    von_ZEB_Ereignis: SET [1: ?] OF ZEB_Ereignis FOR hat_ZEB_Subjekt;
    von_ZEB_Projekt: SET [0: ?] OF ZEB_Projekt FOR hat_ZEB_Subjekt;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY ZEB_Parameterliste;
--- Attribute :
    Kurzbezeichnung_ZEB_Paramliste: OPTIONAL STRING(8);
    Bezeichnung_ZEB_Parameterliste: OPTIONAL STRING(20);
--- Relationen :
    hat_ZEB_Parameter: SET [1: ?] OF ZEB_Parameter;
INVERSE
    von_ZEB_Projekt: SET [0: ?] OF ZEB_Projekt FOR hat_ZEB_Parameterliste;
WHERE
    einfache_ZEB_Parameter: VALUE_UNIQUE(hat_ZEB_Parameter);
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Art_ZEB_Parameter;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING(20);
--- Relationen :
END_ENTITY;


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

   (1,'Zustandsgroesse')
   (2,'Zustandswert')
   (3,'Teilwert')
   (4,'Gesamtwert')
   (5,'Rohdatum')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Art_ZEB_Methode;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING(40);
--- Relationen :
END_ENTITY;


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

   (1,'Zustandsmessverfahren')
   (2,'ZEB_visuell_sensit_Wahrnehmung')
   (3,'Aggregationsmethode')
   (4,'Normierungsmethode')
   (5,'Kombinationsmethode')
   (6,'Klassifizierungsmethode')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION <<

END_SCHEMA; -- Strassenzustandsdaten