BINF 650 Introduction to Bioinformatics Database Design

Instructor: Jason M. Kinser

Email: jkinser@gmu.edu

Schedule: Wednesday, 4:30 – 7:10, Prince William Campus



Prerequisites

Basic understanding of computers. Some programming experience is preferred but not required.

Book

No textbook is required.

Some parts of the lecture will come from H. Garcia-Molina, J. D. Ullman, J. Widom, Database Systems: The Complete Book, 2nd Edition, Prentice-Hall, 2009

Course Content

This course will cover an introduction to databases and some database theory. Applications of the knowledge will be applied to bioinformatics databases. By the end of the course the students will be able to construct a web page interface to a database, where anonymous users can produce queries and receive results.

Projected Syllabus

1 Course Operations

1.1 Office Hours

1.2 Blackboard

1.3 Homework and Blackboard

1.4 Life Intervention

1.5 Extra Credit

1.6 Grading

1.7 Honor Code

2 Spreadsheets

2.1 Storing Data in a Spreadsheet

2.2 Simple Queries in a Spreadsheet

2.3 Involved Queries

2.4 Queries Across Different Tables

3 Justification of Databases

3.1 Real Queries

3.2 Size of Databases

3.3 The Need for a Server

3.4 Controlled Access

4 Data for this Class

4.1 SNP Database

4.1.1 Tables

4.2 Rauko Database

5 Software

5.1 MS Access

5.2 OpenOffice Base

5.3 MySQL for Windows

5.4 MySQL Query Browser

5.5 MySQL on Unix

6 Tables

6.1 Rules

6.2 Keys

6.3 A Database

6.4 Creating a Database

6.5 Data Types

6.6 Creating a Table

6.7 Modifications

6.8 Keys

6.9 Loading Data into a Table

6.9.1 The INSERT Command

6.9.2 Fromt a Spreadsheet

6.9.3 From an ASCII File

7 Simple Queries

7.1 Basic Query

7.2 Combinations

7.3 Math

8 Efficient Tables

8.1 The Wrong Way

8.2 Duplication

8.3 Keys

8.4 Functional Dependencies

8.5 Keys and Superkeys

8.6 Rules about Functional Dependencies

8.7 Design of Relational Databases

8.8 Entity-Relationship Model

8.9 Design Principles

8.10 E/R Model

8.11 Unified Model Language

9 More Queries

9.1 Similarities

9.2 Sorting

10 Sub-Queries and Joins

10.1 Sub-Queries

10.2 Joins

11 Views

12 Constraints and Triggers

13 Python and CGI

13.1 Basic Python

13.2 MySQLdb

13.3 Web Interface – CGI

13.4 Project