14.06.2013 Views

Databases and Systems

Databases and Systems

Databases and Systems

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

When the procedure completes, LabFlow uses put to store its results in the database<br />

as a LabBase Step, <strong>and</strong> to move the Material to its next State.<br />

285<br />

In addition to get <strong>and</strong> put, LabBase provides the following operations: count<br />

returns the number of objects satisfying a condition; delete removes from the<br />

database a set of objects satisfying a condition; update changes the values of<br />

selected fields in an object or struct; set_states changes the States of Materials<br />

satisfying a condition.<br />

Every LabBase operation executes as an atomic transaction. For applications<br />

requiring more control over transaction boundaries, the system provides operations to<br />

begin, commit, <strong>and</strong> rollback transactions.<br />

Figure 2: Interactions Among LabBase Operations, Materials, Steps, <strong>and</strong> States.<br />

LabBase Summary<br />

The facilities provided by LabBase make it easier to create a laboratory database by<br />

automating commonly occurring database design tasks. Since Steps are<br />

automatically connected to Materials, the database designer need not be concerned<br />

with how these links are maintained. Since Steps are automatically preserved in a<br />

chronological history, the designer need not be concerned with preventing updates<br />

from overwriting previous data. Since Step-data can be queried via Materials, the<br />

designer need not be concerned with storing laboratory results inside Materials, nor<br />

with providing views for this purpose. Since objects can contain lists <strong>and</strong> subobjects,<br />

the designer need not be concerned with creating “link-tables” or similar<br />

devices to implement these structures.<br />

It would be useful to extend the system to h<strong>and</strong>le commonly occurring rela-<br />

tionships involving Materials. Our example illustrates several situations in which one<br />

Material is derived from another; it would be useful for the system to “underst<strong>and</strong>”<br />

such relationships <strong>and</strong> to propagate Step-data from a derived Material to its source<br />

<strong>and</strong> vice versa. Grouping is another common case, such as when a set of samples are<br />

arrayed in a plate or on a chip. Part/whole relationships are common also.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!