| Literature DB >> 14713655 |
Abstract
BACKGROUND: The complexity and the rapid evolution and expansion of the domain of clinical information make development and maintenance of clinical databases difficult. Whenever new data types are introduced or existing types are modified in a conventional relational database system, the physical design of the database must be changed accordingly. For this reason, it is desirable that a clinical database be flexible and allow for modifications and for addition of new types of data without having to change the physical database schema. The ideal clinical database would therefore implement a highly-detailed logical database schema in a completely-generic physical schema that stores the wide variety of clinical data in a small and constant number of tables.Entities:
Mesh:
Year: 2003 PMID: 14713655 PMCID: PMC1550574 DOI: 10.2196/jmir.5.4.e27
Source DB: PubMed Journal: J Med Internet Res ISSN: 1438-8871 Impact factor: 5.428
Conventional relational database design (example)
| PatientID | Name | Date of Birth |
| 1 | Jens Hansen | 1956-Aug-01 |
| 2 | Hans Jensen | 1974-Sept-04 |
EAV (Entity-Attribute-Value) database design
| PatientID | Attribute | Value |
| 1 | Name | Jens Hansen |
| 1 | DateOfBirth | 1956-Aug-01 |
| 2 | Name | Hans Jensen |
| 2 | DateOfBirth | 1974-Sept-04 |
Figure 1Simple EAV schema for a clinical database. (The crows-foot symbol—3 small lines at the end of a relationship line—illustrates a one-to-many relationship between patient and data, and between attribute and data. Text in each ellipse identifies table type.)
Database tables for the simple EAV schema in Figure 1
| patientID | name | Date of Birth | gender |
| 1 | Jens Hansen | 1956-08-01 | Male |
| patientID | date | attributeID | Value |
| 1 | 2003-07-01 | 1 | Influenza |
| 1 | 2003-07-01 | 2 | 2003-07-11 |
| attributeID | attributeName | dataType | |
| 1 | Diagnosis | Text | |
| 2 | EndDate | Date |
* Conventional table for patient demographics.
† EAV table for clinical events (data).
‡ Metadata table defining attributes available to the EAV table.
Data table with a column for each data type, as a strategy for storing binary objects
| patientID | date | attributeID | textValue | numericValue | longValue | dateValue |
| 1 | 2003-07-01 | 1 | Influenza | |||
| 1 | 2003-07-01 | 2 | 2003-07-11 |
Data table segregated into multiple tables based on the data type of the attribute, as a strategy for storing binary objects
| patientID | date | dataID |
| 1 | 2003-07-01 | 1 |
| 1 | 2003-07-01 | 2 |
| 1 | 2 | 2003-07-11 |
| dataID | attributeID | value |
| 2 | 1 | Influenza |
Figure 2Enhanced EAV schema with grouping of attributes for form display. (Text in each ellipse identifies table type.)
Figure 3EAV schema with classes and relations (EAV/CR). Simplified from Nadkarni et al [5]. (Text in each ellipse identifies table type.)
Database tables as an example of the EAV schema with classes and relations (EAV/CR) in Figure 3
| className | ||
| Person | ||
| Patient | ||
| Doctor | ||
| superClassID | subClassID | |
| Person | Patient | |
| Person | Doctor | |
| classID | attributeName | dataType |
| Person | Name | Text |
| Person | Date-of-birth | Date |
| Patient | Doctor | Class: Doctor |
| Patient | Gender | Text |
| Doctor | Position | Text |
| objectName | classID | |
| Patient01 | Patient | |
| Doctor01 | Doctor | |
| objectID | attributeID | value |
| Patient01 | Name | Jens Hansen |
| Patient01 | Date-of-birth | 1956-08-01 |
| Patient01 | Doctor | Doctor01 |
| Patient01 | Gender | Male |
| Doctor01 | Name | Doc |
| Doctor01 | Date-of-birth | 1960-03-12 |
| Doctor01 | Position | Head |