EDIT WP5 Internet Platform for Cybertaxonomy
-
Upload
melvin-holman -
Category
Documents
-
view
27 -
download
3
description
Transcript of EDIT WP5 Internet Platform for Cybertaxonomy
EDIT WP5 Internet Platform for
Cybertaxonomy
Data Modelling on UML BasisGubányi A.-Kiss, V.-Kilián, I. (Hungarian Natural History Museum)Meeting: HNHM Budapest, 7-May-07.
Principles of Relational Data Modelling
Entity-Relationship Diagram Normal Forms
– NF1…3: practically eliminating redundant data storage, and determining dependency relationships among data pieces…
Example: an RDMBS data modelclass RiedeATB IRDBMS
data_Det
«column»* det_ID: Long record_ID: Long event_ID: Text(50) loc_ID: Text(50) det_Genus: Text(255) det_Species: Text(50) det_Common_name: Text(80) det_Order: Text(80) det_Subfamily: Text(80) det_Family: Text(80) det_Specimen: Text(80) det_Sex: Text(50) det_Notes: Text(255) det_Det: Text(255) det_Date: Text(32) ImageURL: Memo
data_Ev ent
«column» FK event_ID: Text(50) loc_ID: Long event_Method: Text(50) event_Notes: Text(255) event_Day: Long event_Month: Long event_Year: Long event_Members: Text(255)
data_Locality
«column»* loc_Code: Long FK loc_ID: Long loc_Name: Text(255) loc_Habitat: Text(50) loc_Pop_place: Text(255) loc_Country: Text(50) loc_Country2char: Text(2) loc_Lat: Double loc_Long: Double loc_Radius: Long loc_Alt: Long loc_Alt_unit: Text(50) loc_Waypoint: Text(50) loc_ImageURL: Memo
data_Record
«column»*FK record_ID: Long record_Type: Text(50) record_Type_notes: Text(255) event_ID: Text(50) loc_ID: Long record_Order: Text(80) record_Phylum: Text(80) record_Specimen: Text(80) record_Coll: Text(255) record_Image: Memo
support_Experts
«column» HigherTaxon: Text(80) IdentifierTeam: Text(100)
support_Participants
«column» Name: Text(100)
0..*
1
0..*
10..*
1
Example: an UML model – (persistent) Entities
class RiedeATB IUML
Locality
+ altitude: Altitude+ circle: WorldCircle+ code: int+ habitat: String+ image: Image+ name: String+ populationPlace: + WayPoint:
Event
+ date: DateRange+ method: + notes: String
Record
+ coll: + image: Image+ order: Order+ phylum: Phylum+ specimen: + type: RecordTypeKind+ typeNotes: String
Det
+ commonName: String+ date: Date+ det: + family: Family+ genus: Genus+ notes: String+ order: Order+ sex: Sex+ species: Species+ specimen: + subfamily: Subfamily
Country
1* 1* 1*
An UML model – (transient) attribute typesclass RiedeATB IUML
Altitude
+ unit: AltitudeUnit+ value: Real
«enumeratio...AltitudeUnit
«enum» meter feet
WorldPoint
+ lat: Real+ long: Real
WorldCircle
+ origo: WorldPoint+ radius: Length
«enumeratio...RecordTypeKind
UML based data modelling
1. UML entity model (classes, attributes, associations)
2. Projecting class model to ER diagram Projection by hand Projection by a runtime tool (Java Hybernate)
Principles of projecting Class Model to ER Diagrams
UML Modelling principles:– TransientPersistent classes Scalar types– Attribute types: ONLY transients and scalars– Otherwise: associations, aggregations, compositions
ClassesTables AttributesFields Associations
– 1..n associations to (nullable) foreign keys– N..m associations to tables
Notes for Claus Riede’s ATBI model
Volume/content/complexity General technical notes
– Description of database scheme is necessary– Enumerations described or stored in tables– Constraints should be set
Concrete notes– support_Experts support_Participants– data_Record.loc_ID: redundant field– data_record.members:
class nbnDict
ADMIN_AREA
«column» PK ADMIN_AREA_KEY: Text(16) ITEM_NAME: Text(60) FK ADMIN_TYPE_KEY: Text(16) PARENT: Text(16) SHORT_CODE: Text(10) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: Text(50)* SYSTEM_SUPPLIED_DATA: YesNo NUTS code: Text(50)
ADMIN_AREA_SOURCES
«column» PK SOURCE_LINK_KEY: Text(16) FK ADMIN_AREA_KEY: Text(16) SOURCE_KEY: Text(16)* ORIGINAL: YesNo
ADMIN_RELATION
«column» PK ADMIN_RELATION_KEY: Text(16) ADMIN_AREA_KEY_1: Text(16) ADMIN_AREA_KEY_2: Text(16) RELATION_1_TO_2: Text(20) RELATION_2_TO_1: Text(20) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
ADMIN_TYPE
«column» PK ADMIN_TYPE_KEY: Text(16) SHORT_NAME: Text(20) LONG_NAME: Text(100) DESCRIPTION: Memo AUTHORITY: Text(100) DATE_FROM: DateTime DATE_TO: DateTime ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
BIOTOPE
«column» PK BIOTOPE_KEY: Text(16) SHORT_TERM: Text(60) FULL_TERM: Text(200)* TERM_CURRENT: YesNo ORIGINAL_CODE: Text(20) TERM_STATUS: Text(10) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
BIOTOPE_CLASSIFICATION
«column» PK BIOTOPE_CLASSIFICATION_KEY: Text(16) LONG_NAME: Text(200) SHORT_NAME: Text(50) COMMISSIONED_BY: Text(60) CREATED_BY: Text(60) CREATED_VAGUE_DATE_START: DateTime CREATED_VAGUE_DATE_END: DateTime CREATED_VAGUE_DATE_TYPE: Text(2) OBJECTIVES: Memo DESIGNATION_ACRONYM: Text(20) FK BT_CL_TYPE_KEY: Text(16) ENTRY_DATE: DateTime ENTERED_BY: Text(16) CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
BIOTOPE_CLASSIFICATION_TYPE
«column» PK BT_CL_TYPE_KEY: Text(16) SHORT_NAME: Text(20) LONG_NAME: Text(100) DESCRIPTION: Memo ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
BIOTOPE_CLASSIFICATION::BIOTOPE_CLASSIFICATION_VERSION
«column» PK BT_CL_VERSION_KEY: Text(16) REVISION_NUMBER: Integer REVISION_DATE: DateTime FK BIOTOPE_CLASSIFICATION_KEY: Text(16)* VERSION_IS_AMENDMENT: YesNo ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
BIOTOPE_DESIGNATION
«column» PK BIOTOPE_DESIGNATION_KEY: Text(16) DATE_FROM: DateTime DATE_TO: DateTime STATUS_CONSTRAINT: Memo STATUS_GEOGRAPHIC_AREA: Memo DESCRIPTION: Memo FK BIOTOPE_LIST_ITEM_KEY: Text(16) FK BIOTOPE_DESIGNATION_TYPE_KEY: Text(16) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo SOURCE_KEY: Text(16)
BIOTOPE_DESIGNATION_TYPE
«column» PK BIOTOPE_DESIGNATION_TYPE_KEY: Text(16) SHORT_NAME: Text(20) LONG_NAME: Text(100) DESCRIPTION: Memo CONTROLLING_AUTHORITY: Text(50) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_DATE: DateTime CHANGED_BY: Text(16)* SYSTEM_SUPPLIED_DATA: YesNo
BIOTOPE_FACT
«column» PK BIOTOPE_FACT_KEY: Text(16) FK BIOTOPE_KEY: Text(16) TYPE: Text(1) DATA: Memo FACT_VAGUE_DATE_START: DateTime FACT_VAGUE_DATE_END: DateTime FACT_VAGUE_DATE_TYPE: Text(2) TITLE: Text(50) ENTRY_DATE: DateTime ENTERED_BY: Text(16) CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo SOURCE_KEY: Text(16)
BIOTOPE_LIST_ITEM
«column» PK BIOTOPE_LIST_ITEM_KEY: Text(16) SORT_CODE: Integer FK BIOTOPE_KEY: Text(16) FK PARENT: Text(16) FK BT_CL_VERSION_KEY: Text(16) BT_CL_VERSION_TO: Text(16) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
BIOTOPE_SOURCES
«column» PK SOURCE_LINK_KEY: Text(16) FK BIOTOPE_KEY: Text(16) SOURCE_KEY: Text(16)* ORIGINAL: YesNo
TAXON
«column» PK TAXON_KEY: Text(16) ITEM_NAME: Text(60) AUTHORITY: Text(65) INTRODUCED_VAGUE_DATE_START: DateTime INTRODUCED_VAGUE_DATE_END: DateTime INTRODUCED_VAGUE_DATE_TYPE: Text(2) LANGUAGE: Text(2) FK TAXON_NAME_TYPE_KEY: Text(16) ABBREVIATION: Text(5) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
TAXON_BIOTOPE_ASSOCIATION
«column» PK ASSOCIATION_KEY: Text(16) ASSOCIATION: Text(50) STRENGTH: Text(10) GEOGRAPHIC_CONTEXT: Text(100) BIOTOPE_KEY: Text(16) FK TAXON_VERSION_KEY: Text(16) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo SOURCE_KEY: Text(16)
TAXON_COMMON_NAME
«column» PK TAXON_LIST_ITEM_KEY: Text(16) TAXON_VERSION_KEY: Text(16)
TAXON_DESIGNATION
«column» PK TAXON_DESIGNATION_KEY: Text(16) DATE_FROM: DateTime DATE_TO: DateTime STATUS_GEOGRAPHIC_AREA: Text(100) STATUS_CONSTRAINT: Text(100) DETAIL: Memo FK TAXON_DESIGNATION_TYPE_KEY: Text(16) TAXON_LIST_ITEM_KEY: Text(16)* STATUS_EXCLUSION: YesNo ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo SOURCE_KEY: Text(16)
TAXON_DESIGNATION_TYPE
«column» PK TAXON_DESIGNATION_TYPE_KEY: Text(16) SHORT_NAME: Text(40) LONG_NAME: Text(100) DESCRIPTION: Memo KIND: Text(20) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
TAXON_FACT
«column» PK TAXON_FACT_KEY: Text(16) TITLE: Text(50) TYPE: Text(1) DATA: Memo FK TAXON_VERSION_KEY: Text(16) FACT_VAGUE_DATE_START: DateTime FACT_VAGUE_DATE_END: DateTime FACT_VAGUE_DATE_TYPE: Text(2) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo SOURCE_KEY: Text(16)
TAXON_LIST
«column» PK TAXON_LIST_KEY: Text(16) ITEM_NAME: Text(200) DESCRIPTION: Memo AUTHORITY: Text(50) FK TAXON_LIST_TYPE_KEY: Text(16)* LOCAL_DISK: YesNo UPDATE_MECHANISM: Text(150) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
TAXON_LIST_ITEM
«column» PK TAXON_LIST_ITEM_KEY: Text(16) TAXON_VERSION_KEY: Text(16) TAXON_LIST_VERSION_KEY: Text(16) TAXON_LIST_VERSION_TO: Text(16) PREFERRED_NAME: Text(16) SORT_CODE: Long LST_ITM_CODE: Text(35) PARENT: Text(16) TAXON_RANK_KEY: Text(16) CODE_SOURCE: Text(16) NOTE: Text(50) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
TAXON_DESIGNATION_TYPE::TAXON_LIST_TYPE
«column» PK TAXON_LIST_TYPE_KEY: Text(16) SHORT_NAME: Text(20) LONG_NAME: Text(100) DESCRIPTION: Memo* SCHEDULE: YesNo ENTERED_BY: Text(16) ENTRY_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
TAXON_LIST_VERSION
«column» PK TAXON_LIST_VERSION_KEY: Text(16) FK TAXON_LIST_KEY: Text(16) VERSION: Long AUTHORITY: Text(50) VAGUE_DATE_START: DateTime VAGUE_DATE_END: DateTime VAGUE_DATE_TYPE: Text(2) DESCRIPTION: Memo* VERSION_IS_AMENDMENT: YesNo QUALITY: Memo SOURCE_KEY: Text(16) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
TAXON_NAME_TYPE
«column» PK TAXON_NAME_TYPE_KEY: Text(16) SHORT_NAME: Text(20) LONG_NAME: Text(100) DESCRIPTION: Memo AUTHORITY: Text(50) ENTERED_BY: Text(16) ENTRY_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
TAXON_RANK
«column» PK TAXON_RANK_KEY: Text(16) SEQUENCE: Integer SHORT_NAME: Text(20) LONG_NAME: Text(100) DESCRIPTION: Memo* LIST_FONT_ITALIC: YesNo IMAGE: OLEObject* DISPLAY_IN_DETAILS: YesNo ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
TAXON_SOURCES
«column» PK SOURCE_LINK_KEY: Text(16) FK TAXON_KEY: Text(16) SOURCE_KEY: Text(16)* ORIGINAL: YesNo
TAXON_TAXON_ASSOCIATION
«column» PK ASSOCIATION_KEY: Text(16) TAXON_VERSION_KEY_1: Text(16) TAXON_VERSION_KEY_2: Text(16) ASSOCIATION: Text(50) GEOGRAPHIC_CONTEXT: Text(100) COMMENT: Text(50) VAGUE_DATE_START: DateTime VAGUE_DATE_END: DateTime VAGUE_DATE_TYPE: Text(2) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
TAXON_VERSION
«column» PK TAXON_VERSION_KEY: Text(16) FK TAXON_KEY: Text(16) ATTRIBUTE: Text(10) AUTHORITY: Text(40) DATE_FROM: DateTime DATE_TO: DateTime COMMENT: Memo VALIDATION_LEVEL: Integer* UK_NATIVE: YesNo QUALITY: Text(50) SOURCE_KEY: Text(16) ENTERED_BY: Text(16) ENTRY_DATE: DateTime CHANGED_BY: Text(16) CHANGED_DATE: DateTime* SYSTEM_SUPPLIED_DATA: YesNo
0..*
+KeyIndex 1
0..*
+KeyIndex 1
0..*
+KeyIndex 1
0..*
+KeyIndex 1
0..*
+KeyIndex
1
0..*
+KeyIndex
1
0..*
+KeyIndex
1
0..*
+KeyIndex 1
0..*
+KeyIndex 1
0..*
+KeyIndex 1
+{2C85C0DB-6EA1-4B9E-B1F3-7C29A8A20329}
0..*
(TAXON_KEY = TAXON_KEY)
+KeyIndex
1
0..*
+KeyIndex 1
0..*
+KeyIndex
1
0..*
+KeyIndex 1
0..*
+KeyIndex 1
0..*
+KeyIndex 1
0..*
+KeyIndex 1
0..*
+KeyIndex 1
0..*
+KeyIndex 1
Thank you for your attention!