6.11 Exercises

Exercise 6.1

What's the difference between a database and a database management system? What's the difference between MySQL and Oracle?

Exercise 6.2

What are the limitations of the simple built-in Perl hash database DBM compared to a relational database? Its strengths?

Exercise 6.3

Is my homologs database, which was placed into second normal form, also in third normal form?

Exercise 6.4

Write a program that checks if a relation is in second normal form.

Exercise 6.5

RebaseDB.pm is written to specify a MySQL database. Rewrite the module so it can specify another relational database supported by DBI.

Exercise 6.6

The parse_rebase method of the RebaseDB.pm module uses several database queries per input line as part of the logic of avoiding duplicate entries for palindromes and reverse complements. Compare it with the parse_rebase method in Rebase.pm. Make a new parse_rebase method that works for both DBM and DBI database storage and will improve the efficiency of the DBI method by minimizing database queries.

Exercise 6.7

RebaseDB.pm is a port of the earlier version Rebase.pm that used the DBM hash database. Make a version of this module that handles both DBM and MySQL databases depending on the arguments passed to the new method.

Exercise 6.8

Compare MySQL with some other relational database management system; include such management issues as cost of purchase, cost of maintenance, availability of skilled personnel, stability of vendor in the marketplace, and customer support.

Exercise 6.9

Given the many possible alternate forms of a small set of simple relations, would you say that the relational model is not specific enough? What constraints might you add to improve the quality and reduce the number of possible relational designs?

Exercise 6.10

Name two bioinformatics problems that are ill-served by the data structures of a relational database.

Exercise 6.11

Implement a relational database that supports a project in your wet lab.