Water Data in the Unified Modeling Language
Xitian Cai
Center for Research in Water ResourcesThe University of Texas at Austin
CUAHSI-HIS Status
• Facilitate better interoperability and promote better dissemination, understanding and collaboration between water data users
• Make possible access to hydrological data sets by other interested domains
• OGC Hydrology working group; World Meteorological Organization (WMO)
• An international standard• UML
WaterML
LocationsVariable Codes
Date Ranges
GetSiteInfoGetVariableInfoGetValues
WaterOneFlowWeb Service
Client
STORET
NAMNWIS
DataRepositories
Data
DataData
EXTRACTTRANSFORMLOAD
WaterML
WaterML is an XML language for communicating water data(Maidment, 2007)
eXtensible Markup Language (XML)
• XML was designed to transport and store data
• Environmental Markup Language (EML) • Earth Science Markup Language (ESML)• Mathematical Markup Language (MathML)• Field Data Markup Language (FDML)• Geography Markup Language (GML)
Previous Work
Enterprise Architect
class CuahsiTimeSeries _v1_0
«XSDcomplexType»SiteInfoType
«XSDelement»+ siteName: string+ elevation_m: double [0..1]+ verticalDatum: string [0..1]+ altname: string
«XSDcomplexType»SiteInfoType::siteCode
«XSDattribute»+ defaultId: boolean+ network: normalizedString+ siteID: normalizedString+ agencyCode: normalizedString+ agencyName: normalizedString
string
«XSDsimple...string
«XSDcompl ...SiteInfoType::geoLocation
«XSDcomplexType»SiteInfoType::geoLocation::
localSiteXY
«XSDelement»+ X: double+ Y: double+ Z: double [0..1]
«XSDattribute»+ projectionInformation: string
«XSDcomplexType»TsValuesSingleVariableType
«XSDattribute»+ timeZoneShiftApplied: boolean+ count: nonNegativeInteger+ unitsAreConverted: boolean
«XSDcompl ...VariableInfoType
«XSDsequence»ModelGroup1
«XSDelement»+ variableName: string [0..1]+ variableDescription: string [0..1]+ NoDataValue: string [0..1]
«XSDcompl ...ModelGroup1::
related
«XSDcompl ...ModelGroup1::
related::parentID
«XSDcompl...ModelGroup1::
related::relatedID
«XSDcomplexType»ModelGroup1::timeSupport
«XSDelement»+ timeInterval: int [0..1]«XSDattribute»+ isRegular: boolean
«XSDcomplexType»QueryInfoType
«XSDelement»+ creationTime: dateTime [0..1]+ queryURL: string [0..1]+ querySQL: string [0..1]
«XSDcomplexType»QueryInfoType::criteria
«XSDelement»+ locationParam: string [0..1]+ variableParam: string [0..1]
«XSDcomplexType»QueryInfoType::criteria::
timeParam
«XSDelement»+ beginDateTime: string [0..1]+ endDateTime: string [0..1]
«XSDtopLev...variables
«XSDcomplexT...variables::
ComplexTypeClass1
«XSDattributeGr...VocabularyAttributes
«XSDattribute»+ network: string+ vocabulary: string+ default: boolean
«XSDattributeGroup»DbIdentifiers
«XSDattribute»+ oid: normalizedString+ metadataDateTime: dateTime
«XSDtopLev...timeZoneInfo
«XSDcomplexType»timeZoneInfo::ComplexTypeClass2
«XSDattribute»+ siteUsesDaylightSavingsTime: boolean
«XSDcomplexTy.. .timeZoneInfo::
ComplexTypeClass2::defaultTimeZone
«XSDcomplexType»timeZoneInfo::
ComplexTypeClass2::daylightSavingsTimeZone
«XSDattributeGroup»ValueAttr
«XSDattribute»+ qualifiers: string+ dateTime: dateTime+ methodID: int+ sourceID: int+ accuracyStdDev: double+ codedVocabulary: boolean+ codedVocabularyTerm: string+ sampleID: int
«XSDattributeGroup»timeZoneAttr
«XSDattribute»+ ZoneAbbreviation: normalizedString+ ZoneOffset: string
«XSDtopLev...optionGroup
«XSDcomplexT...optionGroup::
ComplexTypeClass3
«XSDcomplexT...DocumentationType
token
«XSDunion»DocumentationEnumTypes
«enumeration»DocumentationEnumTypes::
SimpleTypeClass1
funding history processing_level rights summary
«XSDattribut...XLinkAttr
«XSDattribute»+ href: string+ title: string+ show: string
«XSDtopLev...options
«XSDcomplexT...options::
ComplexTypeClass4
«XSDcompl .. .SourceInfoType
«XSDcomplexType»DataSetInfoType
«XSDelement»+ dataSetIdentifier: string+ dataSetDescription: string
«XSDtopLev.. .datasetInfo
«XSDcompl ...TimePeriodType
«XSDcomplexType»TimeIntervalType
«XSDelement»+ beginDateTime: dateTime+ endDateTime: dateTime
«XSDcomplexType»TimeSingleType
«XSDelement»+ timeSingle: dateTime+ beginDateTime: dateTime+ endDateTime: dateTime
«XSDcomplexType»TimePeriodRealTimeType
«XSDelement»+ realTimeDataPeriod: duration+ beginDateTime: dateTime+ endDateTime: dateTime
«XSDcompl...GeogLocationType
«XSDattribute»+ srs: string
«XSDcompl...LatLonPointType
«XSDtopLev...latLonPoint
«XSDcompl...LatLonBoxType
«XSDtopLev...latLonBox
double
«XSDsimple...Longitude
double
«XSDsimple...Latitude
«XSDcomplexType»seriesCatalogType
«XSDattribute»+ menuGroupName: string+ serviceWsdl: anyURI
«XSDcomplex...seriesCatalogType::
series
«XSDcomplexType»seriesCatalogType::series::
valueCount
«XSDattribute»+ countIsEstimated: boolean
int
«XSDsimple.. .int
«XSDattributeGroup»offsetAttr
«XSDattribute»+ offsetValue: double+ offsetTypeID: int+ offsetDescription: string+ offsetUnitsAbbreviation: string+ offsetUnitsCode: string
«enumeratio...CensorCodeEnum
lt gt nc nd pnq
«XSDcompl ...QualifiersType
«XSDcomplexType»QualifiersType::qualifier
«XSDelement»+ qualifierCode: token«XSDattribute»+ qualifierID: int
«XSDcompl...TimeSeriesType
«XSDattribute»+ name: string
«XSDtopLevelE...variablesResponse
«XSDtopLevelEl ...timeSeriesResponse
«XSDtopLev...sitesResponse
«XSDcompl...NoteType
«XSDattribute»+ type: string
«XSDtopLev...option
«XSDcomplexType»option::ComplexTypeClass5
«XSDattribute»+ name: normalizedString+ optionID: integer+ optionCode: token
«XSDtopLev...variableCode
«XSDcomplexType»variableCode::
ComplexTypeClass6
«XSDattribute»+ variableID: integer
«XSDtopLev...units
«XSDcomplexT...units::
ComplexTypeClass7
«XSDattributeGroup»unitsAttr
«XSDattribute»+ unitsAbbreviation: normalizedString+ unitsCode: token
«enumeration»UnitsTypeEnum
Angle Area Dimensionless Energy Energy Flux Flow Force Frequency Length Light Mass Permeability Power Pressure/Stress Resolution Scale Temperature Time Velocity Volume
«XSDcomplexTy...ValueSingleVariable
decimal
«XSDsimple...decimal
«XSDtopLev.. .qualifier
«XSDcomplexType»QualifiersType::qualifier::
ComplexTypeClass8
«XSDattribute»+ qualifierCode: token+ qualifierID: integer
anyType
«XSDtopLev...extension
«XSDcomplexType»VariablesResponseType
«XSDcomplexType»TimeSeriesResponseType
«XSDcomplexTyp...SiteInfoResponseType
«XSDtopLev...site
«XSDcomplexT.. .site::
ComplexTypeClass9
«enumeration»QualityControlLevelEnum
Raw data Quality controlled data Derived products Interpreted products Knowledge products Unknown
«XSDtopLevel...qualityControlLevel
«XSDcomplexType»qualityControlLevel::ComplexTypeClass10
«XSDelement»+ qualityControlLevelID: normalizedString«XSDattribute»+ qualityControlLevelCode: string
«XSDcomplexType»QualityControlLevelType
«XSDattribute»+ qualityControlLevelID: int
«enumeration»SampleMediumEnum
Surface Water Ground Water Sediment Soil Air Tissue Precipitation Unknown Other Snow Not Relevant
«enumeration»generalCategoryEnum
Water Quality Climate Hydrology Geology Biota Unknown Inst rumentation
«enumeration»dataTypeEnum
Continuous Instantaneous Cumulative Incremental Average Maximum Minimum Constant Over Interval Categorical Best Easy Systematic Estimator Unknown Variance Median Mode Best Easy Systematic Estimator Standard Deviat ion Skewness Equivalent Mean Sporadic Unknown
«enumeratio...sampleTypeEnum
FD FF FL LF GW PB PD PE PI PW RE SE SR SS SW TE TI TW VE VI VW Grab Unknown No Sample
«enumeration»valueTypeEnum
Field Observation Sample Model Simulation Result Derived Value Unknown
«XSDcomplexType»UnitsType
«XSDelement»+ UnitName: string+ UnitDescription: string+ UnitAbbreviation: string
«XSDattribute»+ UnitID: int
«XSDcomplexType»MethodType
«XSDelement»+ MethodDescription: string+ MethodLink: string
«XSDattribute»+ methodID: int
«XSDcomplexType»SampleType
«XSDelement»+ labSampleCode: string«XSDattribute»+ sampleID: int
«XSDcomplexType»LabMethodType
«XSDelement»+ labName: string [0..1]+ labOrganization: string [0..1]+ LabMethodName: string [0..1]+ labMethodDescription: string [0..1]+ labMethodLink: string
«XSDattribute»+ labMethodID: int
«XSDcomplexType»SourceType
«XSDelement»+ Organization: string [0..1]+ SourceDescription: string [0..1]+ SourceLink: anyURI [0..1]
«XSDattribute»+ sourceID: int
«XSDcomplexType»ContactInformationType
«XSDelement»+ ContactName: string+ TypeOfContact: string [0..1]+ Phone: string [0..1]+ Email: string [0..1]+ Address: anyType [0..1]
«XSDcomplexType»MetaDataType
«XSDelement»+ TopicCategory: string [0..1]+ Title: string [0..1]+ Abstract: string [0..1]+ ProfileVersion: string [0..1]+ MetadataLink: anyURI [0..1]
«XSDcomplexType»OffsetType
«XSDelement»+ offsetValue: float+ offsetDescription: string+ offsetIsVertical: boolean [0..1]+ offsetHorizDirectionDegrees: int [0..1]
«XSDattribute»+ offsetTypeID: int
«XSDextension»
«XSDextension»
+note 1..*
1..1
+variable
0..*
+censorCode«XSDattribute»
+qualityControlLevel«XSDattribute»
1..*+type«XSDattribute»
1..1
0..1
0..*
0..1
+note
0..*
+dataSetLocation
0..11..1
«XSDextension» «XSDextension» «XSDextension»
«XSDextension»
+latitude 1..1 +longitude 1..1
«XSDextension»
«XSDextension»
0..1 +geogLocation 1..1
+note
0..*+note 0..*
1..1
+value
1..*0..*0..*
+method
0..*
+unit
0..1
+offset
0..*
+south 1..11..*
+valueType
0..1
+dataType
0..1+generalCategory
0..1
+sampleMedium 0..1
0..10..1
+note
0..*
«XSDextension»«XSDextension»
+source
0..*
+queryInfo
1..1
+unitsType«XSDattribute»
«XSDextension»
«XSDextension»
+queryInfo 1..11..1
«XSDextension»
+timeSeries
1..1
0..*
+siteInfo
1..1
+seriesCatalog 1..*
1..1
«XSDextension»
+UnitType
1..1
+SampleType
1..1
+LabMethod 0..1
+Metadata 0..1+ContactInformation 0..1
+queryInfo 1..1+Source 0..1
+west 1..1+north 1..1 +east 1..1
+note
0..*+dataType
0..1
+variable
1..1
«XSDextension»
+variableTimeInterval
1..1
+valueType 0..1+general Category 0..1
+Method
0..1
1..1 +QualityControlLevel 0..1+sourceInfo 1..1
+variable
1..1 +values
1..1
«XSDextension»«XSDextension»
«XSDextension»
+sampleMedium 0..1
class CuahsiTimeSeries_v1_0C...
Time and Measured Values
UnitsWeb Method Queries
Variables
Space
«XSDcomplexType»SiteInfoType
«XSDelement»+ altname: string+ elevation_m: double [0..1]+ siteName: string+ verticalDatum: string [0..1]
«XSDcomplexType»TsValuesSingleVariableType
«XSDattribute»+ count: nonNegativeInteger+ timeZoneShiftApplied: boolean+ unitsAreConverted: boolean
«XSDcomplexTyp...VariableInfoType
«XSDsequence»ModelGroup1
«XSDelement»+ NoDataValue: string [0..1]+ variableDescription: string [0..1]+ variableName: string [0..1]
«XSDcomplexType»ModelGroup1::
timeSupport
«XSDattribute»+ isRegular: boolean
«XSDelement»+ timeInterval: int [0..1]
«XSDcomplexType»QueryInfoType
«XSDelement»+ creationTime: dateTime [0..1]+ querySQL: string [0..1]+ queryURL: string [0..1]
«XSDtopLev...variables
«XSDcomplexTyp...variables::
ComplexTypeClass1
«XSDattributeGroup»DbIdentifiers
«XSDattribute»+ metadataDateTime: dateTime+ oid: normalizedString
«XSDtopLevelElement»timeZoneInfo
«XSDtopLevelElement»options
«XSDcomplexType»SourceInfoType
«XSDcomplexType»DataSetInfoType
«XSDelement»+ dataSetDescription: string+ dataSetIdentif ier: string
«XSDtopLevelElement»datasetInfo
«XSDcomplexType»TimePeriodType
«XSDcomplexType»GeogLocationType
«XSDattribute»+ srs: string
«XSDcomplexType»seriesCatalogType
«XSDattribute»+ menuGroupName: string+ serviceWsdl: anyURI
«XSDcomplexType»seriesCatalogType::series
«XSDcomplexType»TimeSeriesType
«XSDattribute»+ name: string
«XSDtopLevelE...variablesResponse
«XSDtopLevelElem...timeSeriesResponse
«XSDtopLevelElement»sitesResponse
«XSDtopLevelElement»variableCode
string
«XSDcomplexType»units::
ComplexTypeClass7
«XSDattributeGroup»unitsAttr
«XSDattribute»+ unitsAbbreviation: normalizedString+ unitsCode: token
«enumeration»UnitsTypeEnum
Angle Area Dimensionless Energy Energy Flux Flow Force Frequency Length Light Mass Permeability Pow er Pressure/Stress Resolution Scale Temperature Time Velocity Volume
decimal
«XSDcomplexType»ValueSingleVariable
«XSDtopLevelElement»qualifier
«XSDcomplexType»VariablesResponseType
«XSDcomplexType»TimeSeriesResponseType
«XSDcomplexType»SiteInfoResponseType
«XSDtopLevelElement»site
«XSDcomplexType»site::ComplexTypeClass9
«XSDtopLevelElement»qualityControlLevel
string
«XSDcomplexType»QualityControlLevelType
«XSDattribute»+ qualityControlLevelID: int
«enumeration»SampleMediumEnum
Surface Water Ground Water Sediment Soil Air Tissue Precipitation Unknow n Other Snow Not Relevant
«enumeration»generalCategoryEnum
Water Quality Climate Hydrology Geology Biota Unknow n Instrumentation
«enumeration»dataTypeEnum
Continuous Instantaneous Cumulative Incremental Average Maximum Minimum Constant Over Interval Categorical Best Easy Systematic Estimator Unknow n Variance Median Mode Best Easy Systematic Estimator Standard Deviation Skew ness Equivalent Mean Sporadic Unknow n
«enumeration»valueTypeEnum
Field Observation Sample Model Simulation Result Derived Value Unknow n
«XSDcomplexType»UnitsType
«XSDelement»+ UnitAbbreviation: string+ UnitDescription: string+ UnitName: string
«XSDattribute»+ UnitID: int
«XSDcomplexType»MethodType
«XSDelement»+ MethodDescription: string+ MethodLink: string
«XSDattribute»+ methodID: int
«XSDcomplexType»SourceType
«XSDelement»+ Organization: string [0..1]+ SourceDescription: string [0..1]+ SourceLink: anyURI [0..1]
«XSDattribute»+ sourceID: int «XSDcomplexType»
OffsetType
«XSDelement»+ of fsetDescription: string+ of fsetHorizDirectionDegrees: int [0..1]+ of fsetIsVertical: boolean [0..1]+ of fsetValue: f loat
«XSDattribute»+ of fsetTypeID: int
1..*
+dataSetLocation 0..1 0..1
«XSDextension»
+variable
0..*
+unit 0..1
0..1
+sampleMedium
0..1
+generalCategory
0..1
«XSDextension»
+valueType
0..1
+variableTimeInterval
1..1
+offset 0..*
+source
0..*
+method
0..*
0..*
0..*
+value
1..*
0..1
+dataType
0..1
+seriesCatalog 1..*
+siteInfo
1..1
0..*
+queryInfo
1..1
+timeSeries 1..1
+queryInfo
1..1
1..1
+queryInfo
1..1
+unitsType«XSDattribute»
+dataType
0..1
+variable
1..1
+values
1..1
+variable 1..1
+sourceInfo
1..1
+QualityControlLevel 0..1
+Source 0..1
+Method
0..1
+sampleMedium
0..1
+generalCategory
0..1
+valueType
0..1
+UnitType
1..1
Web Method Queries
Space (Site)
class ODM...
Data Qualifiers
Data Collection Methods
Data Sources
Value Grouping
ODM Version
Observation Values
Variables
OffsetsUnits
Monitoring Site Locations
Categories
«column»*FK VariableID: int* DataValue: float* CategoryDescription: nvarchar(MAX)
«FK»+ FK_Categories_Variables(int)
CensorCodeCV
«column»*PK Term: nvarchar(50) Definition: nvarchar(MAX)
«PK»+ PK_CensorCodeCV_Term(nvarchar)
«check»+ CK_CensorCodeCV_Term()
DataTypeCV
«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)
«PK»+ PK_DataTypeCV_Term(nvarchar)
«check»+ CK_DataTypeCV_Term()
DataValues
«column»*PK ValueID: int* DataValue: float ValueAccuracy: f loat* LocalDateTime: datetime* UTCOffset: f loat* DateTimeUTC: datetime*FK SiteID: int*FK VariableID: int OffsetValue: float FK OffsetTypeID: int*FK CensorCode: nvarchar(50) = ('nc') FK Qualif ierID: int*FK MethodID: int = ((0))*FK SourceID: int FK SampleID: int DerivedFromID: int*FK QualityControlLevelID: int = ((-9999))
«PK»+ PK_DataValues_ValueID(int)
«unique»+ UNIQUE_DataValues(float, f loat, datetime, f loat, datetime, int, int, f loat, int, nvarchar, int, int, int, int, int, int)
«FK»+ FK_DataValues_CensorCodeCV(nvarchar)+ FK_DataValues_Methods(int)+ FK_DataValues_OffsetTypes(int)+ FK_DataValues_Qualif iers(int)+ FK_DataValues_QualityControlLevels(int)+ FK_DataValues_Samples(int)+ FK_DataValues_Sites(int)+ FK_DataValues_Sources(int)+ FK_DataValues_Variables(int)
DerivedFrom
«column»* DerivedFromID: int*FK ValueID: int
«FK»+ FK_DerivedFrom_DataValues(int)
GeneralCategoryCV
«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)
«PK»+ PK_GeneralCategoryCV_Term(nvarchar)
«check»+ CK_GeneralCategoryCV_Term()
GroupDescriptions
«column»*PK GroupID: int GroupDescription: nvarchar(MAX)
«PK»+ PK_GroupDescriptions_GroupID(int)
Groups
«column»*FK GroupID: int*FK ValueID: int
«FK»+ FK_Groups_DataValues(int)+ FK_Groups_GroupDescriptions(int)
ISOMetadata
«column»*PK MetadataID: int*FK TopicCategory: nvarchar(255) = ('Unknow n')* Title: nvarchar(255) = ('Unknow n')* Abstract: nvarchar(MAX) = ('Unknow n')* Prof ileVersion: nvarchar(255) = ('Unknow n') MetadataLink: nvarchar(500)
«PK»+ PK_ISOMetadata_MetadataID(int)
«check»+ CK_ISOMetadata_Title()+ CK_ISOMetadata_Prof ileVersion()
«FK»+ FK_ISOMetadata_TopicCategoryCV(nvarchar)
LabMethods
«column»*PK LabMethodID: int* LabName: nvarchar(255) = ('Unknow n')* LabOrganization: nvarchar(255) = ('Unknow n')* LabMethodName: nvarchar(255) = ('Unknow n')* LabMethodDescription: nvarchar(MAX) = ('Unknow n') LabMethodLink: nvarchar(500)
«PK»+ PK_LabMethods_LabMethodID(int)
«check»+ CK_LabMethods_LabName()+ CK_LabMethods_LabOrganization()+ CK_LabMethods_LabMethodName()
Methods
«column»*PK MethodID: int* MethodDescription: nvarchar(MAX) MethodLink: nvarchar(500)
«PK»+ PK_Methods_MethodID(int)
ODMVersion
«column»* VersionNumber: nvarchar(50)
«check»+ CK_ODMVersion_VersionNumber()
OffsetTypes
«column»*PK OffsetTypeID: int*FK OffsetUnitsID: int* OffsetDescription: nvarchar(MAX)
«PK»+ PK_OffsetTypes_OffsetTypeID(int)
«FK»+ FK_OffsetTypes_Units(int)
Qualifiers
«column»*PK Qualif ierID: int Qualif ierCode: nvarchar(50)* Qualif ierDescription: nvarchar(MAX)
«PK»+ PK_Qualif iers_Qualif ierID(int)
«check»+ CK_Qualif iers_Qualif ierCode()
QualityControlLevels
«column»*PK QualityControlLevelID: int* QualityControlLevelCode: nvarchar(50)* Definition: nvarchar(255)* Explanation: nvarchar(MAX)
«PK»+ PK_QualityControlLevels_QualityControlLevelID(int)
«check»+ CK_QualityControlLevels_QualityControlLevelCode()+ CK_QualityControlLevels_Definition()
SampleMediumCV
«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)
«PK»+ PK_SampleMediumCV_Term(nvarchar)
«check»+ CK_SampleMediumCV_Term()
Samples
«column»*PK SampleID: int*FK SampleType: nvarchar(255) = ('Unknow n')* LabSampleCode: nvarchar(50)*FK LabMethodID: int = ((0))
«PK»+ PK_Samples_SampleID(int)
«check»+ CK_Samples_LabSampleCode()
«FK»+ FK_Samples_LabMethods(int)+ FK_Samples_SampleTypeCV(nvarchar)
SampleTypeCV
«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)
«PK»+ PK_SampleTypeCV_Term(nvarchar)
«check»+ CK_SampleTypeCV_Term()
SeriesCatalog
«column»*PK SeriesID: int SiteID: int SiteCode: nvarchar(50) SiteName: nvarchar(255) VariableID: int VariableCode: nvarchar(50) VariableName: nvarchar(255) Speciation: nvarchar(255) VariableUnitsID: int VariableUnitsName: nvarchar(255) SampleMedium: nvarchar(255) ValueType: nvarchar(255) TimeSupport: float TimeUnitsID: int TimeUnitsName: nvarchar(255) DataType: nvarchar(255) GeneralCategory: nvarchar(255) MethodID: int MethodDescription: nvarchar(MAX) SourceID: int Organization: nvarchar(255) SourceDescription: nvarchar(MAX) Citation: nvarchar(MAX) QualityControlLevelID: int QualityControlLevelCode: nvarchar(50) BeginDateTime: datetime EndDateTime: datetime BeginDateTimeUTC: datetime EndDateTimeUTC: datetime ValueCount: int
«PK»+ PK_SeriesCatalog_SeriesID(int)
Sites
«column»*PK SiteID: int* SiteCode: nvarchar(50)* SiteName: nvarchar(255)* Latitude: f loat* Longitude: f loat*FK LatLongDatumID: int = ((0)) Elevation_m: f loat FK VerticalDatum: nvarchar(255) LocalX: f loat LocalY: float FK LocalProjectionID: int PosAccuracy_m: f loat State: nvarchar(255) County: nvarchar(255) Comments: nvarchar(MAX)
«PK»+ PK_Sites_SiteID(int)
«unique»+ AK_Sites_SiteCode(nvarchar)
«check»+ CK_Sites_SiteCode()+ CK_Sites_SiteName()+ CK_Sites_Latitude()+ CK_Sites_Longitude()+ CK_Sites_State()+ CK_Sites_County()
«FK»+ FK_Sites_SpatialReferences(int)+ FK_Sites_SpatialReferences1(int)+ FK_Sites_VerticalDatumCV(nvarchar)
Sources
«column»*PK SourceID: int* Organization: nvarchar(255)* SourceDescription: nvarchar(MAX) SourceLink: nvarchar(500)* ContactName: nvarchar(255) = ('Unknow n')* Phone: nvarchar(255) = ('Unknow n')* Email: nvarchar(255) = ('Unknow n')* Address: nvarchar(255) = ('Unknow n')* City: nvarchar(255) = ('Unknow n')* State: nvarchar(255) = ('Unknow n')* ZipCode: nvarchar(255) = ('Unknow n')* Citation: nvarchar(MAX) = ('Unknow n')*FK MetadataID: int = ((0))
«PK»+ PK_Sources_SourceID(int)
«check»+ CK_Sources_Organization()+ CK_Sources_ContactName()+ CK_Sources_Phone()+ CK_Sources_Email()+ CK_Sources_Address()+ CK_Sources_City()+ CK_Sources_State()+ CK_Sources_ZipCode()
«FK»+ FK_Sources_ISOMetaData(int)
SpatialReferences
«column»*PK SpatialReferenceID: int SRSID: int* SRSName: nvarchar(255) IsGeographic: bit Notes: nvarchar(MAX)
«PK»+ PK_SpatialReferences_SpatialReferenceID(int)
«check»+ CK_SpatialReferences_SRSName()
SpeciationCV
«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)
«PK»+ PK_SpeciationCV_Term(nvarchar)
«check»+ CK_SpeciationCV_Term()
sysdiagrams
«column»* name: nvarchar(128)* principal_id: int*PK diagram_id: int version: int def inition: varbinary(MAX)
«PK»+ PK__sysdiagrams__3A81B327(int)
«unique»+ UK_principal_name(int, nvarchar)
TopicCategoryCV
«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)
«PK»+ PK_TopicCategoryCV_Term(nvarchar)
«check»+ CK_TopicCategoryCV_Term()
Units
«column»*PK UnitsID: int* UnitsName: nvarchar(255)* UnitsType: nvarchar(255)* UnitsAbbreviation: nvarchar(255)
«PK»+ PK_Units_UnitsID(int)
«check»+ CK_Units_UnitsName()+ CK_Units_UnitsType()+ CK_Units_UnitsAbbreviation()
ValueTypeCV
«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)
«PK»+ PK_ValueTypeCV_Term(nvarchar)
«check»+ CK_ValueTypeCV_Term()
VariableNameCV
«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)
«PK»+ PK_VariableNameCV_Term(nvarchar)
«check»+ CK_VariableNameCV_Term()
Variables
«column»*PK VariableID: int* VariableCode: nvarchar(50)*FK VariableName: nvarchar(255)*FK Speciation: nvarchar(255) = ('Not Applicable')*FK VariableUnitsID: int*FK SampleMedium: nvarchar(255) = ('Unknow n')*FK ValueType: nvarchar(255) = ('Unknow n')* IsRegular: bit = ((0))* TimeSupport: f loat = ((0))*FK TimeUnitsID: int = ((103))*FK DataType: nvarchar(255) = ('Unknow n')*FK GeneralCategory: nvarchar(255) = ('Unknow n')* NoDataValue: float = ((-9999))
«PK»+ PK_Variables_VariableID(int)
«unique»+ AK_Variables_VariableCode(nvarchar)
«check»+ CK_Variables_VariableCode()
«FK»+ FK_Variables_DataTypeCV(nvarchar)+ FK_Variables_GeneralCategoryCV(nvarchar)+ FK_Variables_SampleMediumCV(nvarchar)+ FK_Variables_SpeciationCV(nvarchar)+ FK_Variables_Units(int)+ FK_Variables_Units1(int)+ FK_Variables_ValueTypeCV(nvarchar)+ FK_Variables_VariableNameCV(nvarchar)
VerticalDatum CV
«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)
«PK»+ PK_VerticalDatumCV_Term(nvarchar)
«check»+ CK_VerticalDatumCV_Term()
«stored procedures»OD
«proc»+ sp_alterdiagram(sysname(128), int, int, varbinary)+ sp_creatediagram(sysname(128), int, int, varbinary)+ sp_dropdiagram(sysname(128), int)+ sp_helpdiagramdefinition(sysname(128), int)+ sp_helpdiagrams(sysname(128), int)+ sp_renamediagram(sysname(128), int, sysname(128))+ sp_upgraddiagrams()+ spUpdateSeriesCatalog()
+FK_Samples_LabMethods
0..*
(LabMethodID =LabMethodID)
+PK_LabMethods_LabMethodID 1
+FK_DataValues_CensorCodeCV 0..*
(CensorCode =Term)
+PK_CensorCodeCV_Term 1
+FK_DataValues_Methods
0..*
(MethodID =MethodID)
+PK_Methods_MethodID 1+FK_DataValues_OffsetTypes
0..*(OffsetTypeID=OffsetTypeID)
+PK_OffsetTypes_OffsetTypeID
1
+FK_DataValues_Qualifiers
0..*
(QualifierID =Qualif ierID)
+PK_Qualifiers_Qualif ierID
1
+FK_DataValues_QualityControlLevels
0..*
(QualityControlLevelID=QualityControlLevelID)
+PK_QualityControlLevels_QualityControlLevelID
1
+FK_DataValues_Samples0..*
(SampleID =SampleID)
+PK_Samples_SampleID
1
+FK_DataValues_Sites
0..*(SiteID =SiteID)
+PK_Sites_SiteID
1
+FK_DataValues_Sources
0..*(SourceID =SourceID)
+PK_Sources_SourceID
1
+FK_DataValues_Variables
0..*
(VariableID =VariableID)
+PK_Variables_VariableID
1 +FK_DerivedFrom_DataValues 0..*
(ValueID =ValueID)
+PK_DataValues_ValueID 1
+FK_Groups_DataValues
0..*
(ValueID =ValueID)
+PK_DataValues_ValueID 1
+FK_Groups_GroupDescriptions
0..*
(GroupID =GroupID)
+PK_GroupDescriptions_GroupID
1
+FK_Categories_Variables 0..*
(VariableID =VariableID)
+PK_Variables_VariableID 1
+FK_OffsetTypes_Units
0..*(OffsetUnitsID =UnitsID)
+PK_Units_UnitsID
1
+FK_Variables_VariableNameCV 0..*(VariableName =Term)
+PK_VariableNameCV_Term
1
+FK_Samples_SampleTypeCV
0..* (SampleType =Term)
+PK_SampleTypeCV_Term
1
+FK_Sites_SpatialReferences
0..*(LatLongDatumID =SpatialReferenceID)
+PK_SpatialReferences_SpatialReferenceID
1
+FK_Sites_SpatialReferences1
0..*(LocalProjectionID=SpatialReferenceID)
+PK_SpatialReferences_SpatialReferenceID
1
+FK_Sites_VerticalDatumCV
0..*(VerticalDatum =Term)
+PK_VerticalDatumCV_Term
1
+FK_Sources_ISOMetaData
0..*(MetadataID =MetadataID)
+PK_ISOMetadata_MetadataID
1
+FK_Variables_DataTypeCV0..*
(DataType = Term)
+PK_DataTypeCV_Term
1
+FK_Variables_GeneralCategoryCV
0..*
(GeneralCategory = Term)
+PK_GeneralCategoryCV_Term
1
+FK_Variables_SampleMediumCV
0..*(SampleMedium = Term)
+PK_SampleMediumCV_Term
1
+FK_Variables_SpeciationCV
0..*(Speciation = Term)
+PK_SpeciationCV_Term
1
+FK_Variables_Units
0..*
(VariableUnitsID =UnitsID)
+PK_Units_UnitsID
1
+FK_Variables_Units1
0..*
(TimeUnitsID =UnitsID)
+PK_Units_UnitsID
1
+FK_Variables_ValueTypeCV 0..*
(ValueType = Term)
+PK_ValueTypeCV_Term
1
+FK_ISOMetadata_TopicCategoryCV
0..*(TopicCategory =Term)
+PK_TopicCategoryCV_Term
1
Generate XML Schema
Conclusion
• UML provide a standard platform to build and visualize a system's architectural blueprints
• Enterprise Architect is powerful dealing with diagram and code– C, C++, C#, Delphi, Java, PHP, Python, Visual Basic and
VB.NET• It is an opportunity to create international
standard for hydrological data• This term project currently don’t relate to GIS
Questions?
Thanks!
Top Related