| ||
Student Originated Software 1997-1998
| ||
A Software Engineering Course at The Evergreen State College | ||
|
Introduction to Database Systems SyllabusTuesday & Thursday, 9-12LIB 1316 & ACC In this advanced computer science course, we will study database systems and interoperablity. Database management has evolved from a specialized computer application to a central component of modern computing environments. This part of SOS is intended to give an understanding of fundamental concepts of database management, including database design, languages, and system implementation. Specific topics are: conceptual, logical and physical design (including entity relationship modeling); the relational data models (vs. network or hierarchical); the relational algebra and calculus, and SQL; integrity constraints and enforcement (including domain constraints, inclusion dependencies and functional dependencies); normalization; storage, file, and search structures; indexing and hashing; query processing and query optimization; logging and recovery and transaction management; and concurrency control. During the first five to six weeks we will explore traditional database concepts and their implementation in a relational system (Microsoft ACCESS). The five week introduction concepts and technology will start where our data modeling fall quarter left off. After studying the relational data model, we will see how a logical data model can be mapped onto it, and how the model can be refined or "normalized" so that the database design meets certain "goodness" criteria, e.g., "The key, the whole key and nothing but the key, so help me Codd". We will study SQL (Structured Query Language the de facto standard schema definition language) and see why the relational model meets important theoretical objectives that allow for query optimization and helps assure other desirable properties. Finally, we will look inside the DBMS -- at how they are built, and learn why DBMSs are like operating systems and compilers -- storage and file structures, indexing and hashing, query processing, transactions, concurrency control, recovery. Because this component of the program assumes some familiarity with basic data structures, computer organization, operating systems, and a high-level programming language, material will be presented at an advanced undergraduate level. Students will demonstrate knowledge of the material by participation in class discussions, homework assignments, an in-class examination, and a project. During the second half of the quarter, students can continue with an individual (or group) project in ACCESS or Visual BASIC , or participate in the Database and Interoperability Seminar. For the latter, we will meet to consider topics such as: database system architectures (client server, parallel DBMS, distributed databases), object-oriented databases and CORBA, persistent programming languages (e.g., Persistent Java, GemStone). Students taking the seminar will read an article per week, attend the database seminar, and complete a small database project. Wherever our topics coincide, we will meet with the UNIX Potluck group. TextKorth & Silberschatz, Database System Concepts (required); Access StepBy Step (or another ACCESS Manual (optional).Expectations and RequirementsTo earn credit, students need to attend class and labs regularly and participate in class discussions. They should complete the short examination (in class and open book), weekly homeworks, lab assignments. Students electing the seminar should demonstrate they have read the material by presenting in class; others should complete a short project (which may overlap with your year-long project).Reading AssignmentsCompleting the reading before the class when the material is scheduled to be discussed is essential to success! Not all assigned reading will be covered in lectures, but you will be responsible for it on homework and exams. Bring questions to class!HomeworkHomework is due at the beginning of class the Tuesday (one week) afer it is assigned. You can bring homework questions to the Thursday class, and you may confer with anyone about the homework. You must, however, write up your answers independently.LabsWe will meet twice weekly in labs, in the ACC. Dave Metzler is organizing these labs and will teach us Access. He has a series of exercises for us to complete.ProjectAn individual project will involve the design, implementation, population and querying of a small database, implemented on the system of your choice. I encourage you to find a project related to your year-long group project, or use this opportunity to work more intensively with Smalltalk, but I am open to other suggestions.Tentative ScheduleWeek 1
Week 2
Week 3
Week 4
Week 5
Week 6
Week 7
Week 8
Week 9
Week 10
Some papers to consider
|