EDIT WP5 Internet Platform for Cybertaxonomy

10
EDIT WP5 Internet Platform for Cybertaxonomy Data Modelling on UML Basis Gubányi A.-Kiss, V.-Kilián, I. (Hungarian Natural History Museum) Meeting: HNHM Budapest, 7- May-07.

description

EDIT WP5 Internet Platform for Cybertaxonomy. Data Modelling on UML Basis Gubá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 - PowerPoint PPT Presentation

Transcript of EDIT WP5 Internet Platform for Cybertaxonomy

Page 1: 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.

Page 2: EDIT  WP5 Internet Platform for Cybertaxonomy

Principles of Relational Data Modelling

Entity-Relationship Diagram Normal Forms

– NF1…3: practically eliminating redundant data storage, and determining dependency relationships among data pieces…

Page 3: EDIT  WP5 Internet Platform for Cybertaxonomy

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

Page 4: EDIT  WP5 Internet Platform for Cybertaxonomy

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*

Page 5: EDIT  WP5 Internet Platform for Cybertaxonomy

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

Page 6: EDIT  WP5 Internet Platform for Cybertaxonomy

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)

Page 7: EDIT  WP5 Internet Platform for Cybertaxonomy

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

Page 8: EDIT  WP5 Internet Platform for Cybertaxonomy

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:

Page 9: EDIT  WP5 Internet Platform for Cybertaxonomy

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

Page 10: EDIT  WP5 Internet Platform for Cybertaxonomy

Thank you for your attention!