MEDED 598A: DB & Applications in the Health Sciences (3 credits).
Mon & Wed, 3pm - 4:20pm.
Fall, 2002.

Databases and Applications in the Health Sciences

Course description:

What is a relational database? How can I design a good database? These are the primary questions we will answer in this course. The aim for this course is to teach those without any formal computer science background some of the theory and practice of database system design. (The only prerequisite is that you may not have had any prior computer science class on databases.) Along the way, we will cover topics such as normalized database design, the UML modeling language, and the SQL query language. Time permitting, we may also cover more advanced topics such as concurrency control, query optimization, distributed databases, and XML databases. Although programming per se is not an expectation for this course, I will expect students to work hands-on with database design tools; my expectation is that students will use these exercises to explore the development of database applications (albeit toy ones) in the domain of Health Sciences (biology, medicine, nursing, & public health).

Textbook:
Database Management Systems: Designing & building business applications (2nd Edition). Gerald Post, 2001.
(available from Amazon.com) This textbook also comes with a (somewhat) useful page of web links designed to lead students to related resources.

Detailed Assignment List & Syllabus (for Fall '02)

Learning objectives:

  1. Understand relational database tables and the SQL language for retrieving information from those tables.
  2. Know how to design a database, and how to express that design with a UML class diagram.
  3. Know what it means for a database design to be normalized, and know how to analyze dependencies among relational tables to build normalized database designs.
  4. Understand something about the theory and logic behind SQL: relational algebra.
  5. Gain "hands-on" familiarity with some database tools, such as the user interfaces provided by Microsoft Access, PostGres, and MySQL, and the UML designing tool Poseidon.
  6. Understand a few things about database theory, database implementations, efficiency issues, and distributed databases.

Note that improving your programming ability is not a learning objective for this course.

Evaluation:
To provide hands-on experience with the topics covered in the classroom, there will be a series of homework assignments, probably on a weekly basis in the early portion of the quarter. There will also be a final project to be presented as a brief oral presentation during finals week. The assignments will be designed to be in the domain of biomedical and health applications, and likewise, I expect your final project to work with a (probably toy) database in this domain.

I will not require students to write programs for either the final project nor the homework assignments. However, you must be able to use database design and modeling tools -- these will be public domain tools, and/or installed and available for use in the BHI Instructional Lab (T-277).

There will be two exams to further evaluate student comprehension of the course material. These will probably be in weeks 4 and 8. Your grade will be based approximately 40 percent on the in-class exams, 25 percent on the final project and 35 percent on the homework exercises. Note that this distribution means that each exam is more like a big quiz, counting only 20 percent of your final grade.

Final grades will be selected from the set {4.0, 3.7, 3.3, 3.0, 2.7, 2.3, 2.0, 1.7}. This is a finite set -- I will not give final grades such as 3.1 or 3.8. I consider any grade below 3.0 to be "failing" in the graduate school sense of the word.

Academic Honesty - To prevent possible misunderstandings, students must read the University of Washington's Statement on Academic Honesty. All students are expected to follow high standards of academic honesty in all aspects of this course.

Approximate schedule:
The first four weeks cover more basic, fundamental material for relational database systems. The first exam will be sometime during week 4. The latter half of the course covers both more advanced theoretical topics, as well as models beyond other than relational databases. Chapters refer to the course textbook by Post. I will provide other readings (such as the section from Silberschatz in week 5) as handouts.

Week 1
Chapter 1 & 2

Motivation & Introduction: Why databases?
DB system components, database design concepts, UML

Week 2 Chapter 3 Normalization
Week 3 Chapter 4 (and 5?) SQL and querying
Week 4   Database Design principles: building (toy) applications
Week 5 Silberschatz excerpt Relational Algebra: The theory behind SQL
Week 6   Transaction Management and concurrency (Mel Oyler guest lecture)
Week 7 Chapter 11 Distributed databases
Week 8 Chapter 9 Physical organization of DBs; query optimization (time permitting)
Week 9  
E-A-V databases (Bryant Karras guest lecture)
Week 10   Other models: Knowledge bases, XML databases, Object Oriented databases