NEW IN 2010: Updated slides on db4o to reflect the API of the latest version. Extended the discussion of OQL in the lecture about ODMG 3. In-depth presentation of commercial systems (Versant Object Database, ObjectStore and Objectivity/DB) in completely new and dedicated lectures #8, #9 and #10. To increase diversity, Versant is coupled with Java, ObjectStore with C++ and Objectivity/DB with C#. Finally, LINQ has been introduced into the course as part of the Objectivity/DB lecture.
PART 1: BASICS OF OBJECT DATABASES
Lecture #1: Introduction (Course Overview; Evolution/History of Database Management Systems; Requirements of Object-Oriented Data Management Systems)
Lecture #2: Object Persistence (Object-Relational Mappings and Frameworks; Serialisation; Persistent Programming Languages)
Lecture #3: db4o: Part 1 (Basics: Managing databases, Storing and Retrieving Objects; Querying Objects: Query by Example, Native Queries, SODA; Simple and Structured Objects; Object Hierarchies; Activation; Transactions: Concurrent Transactions, Semaphores)
Lecture #4: db4o: Part 2 (Configuration and Tuning: Configuration Interface, Indexes; Distribution and Replication: Client/Server Model, dRS; Schema Evolution: Refactoring, Inheritance Evolution; Callbacks and Translators)
PART 2: ADVANCED CONCEPTS OF OBJECT DATABASES
Lecture #5: Version Models (Temporal Databases; Engineering Databases (CAD and CAM); Software Configuration Systems (CASE))
Lecture #6: Storage and Indexing (Type Hierarchy Indexing; Aggregation Path Indexing; Collection Operations)
Lecture #7: ODMG Standard (Object Model; Object Definition Language (ODL); Object Query Language (OQL); Programming Language Bindings)
Lecture #8: Commercial OODBMS: Versant (Versant Object Database for Java; Java Versant Interface (JVI); Versant Query Language (VQL))
Lecture #9: Commercial OODBMS: ObjectStore (ObjectStore PSE Pro for C++; Virtual Memory Mapped Architecture; Managing Persistent Object Data)
Lecture #10: Commercial OODBMS: Objectivity/DB (Objectivity/DB for .NET; Logical Storage Model: Federated Databases; Language Integrated Queries (LINQ))
PART 3: THE OMS FAMILY OF OBJECT DATABASES
Lecture #11: The OM Data Model (Multiple Inheritance, Instantiation and Classification; Collections and Associations; Cardinality, Classification and Evolution Constraints)
Lecture #12: Object Model Language: OML (Collection Algebra; Language Design; Data Definition, Manipulation and Query Language)
Lecture #13: Design and Implementation: OMS Avon (Architecture; Storage, Model and Interface Layer; Database Modules)
Lecture #14: Course Review (Exam Information; Summary; OODBMS Architectures)
COURSE DESCRIPTION: The course examines the principles and techniques of providing data management in object-oriented programming environments. It is divided into three parts that cover the road from simple object persistence, to object database management systems and to advanced data management. The lecture notes contain 446 slides that are split into 14 lectures of 90 minutes each. At ETH Zurich, the course is accompanied by weekly exercises based on db4o, Versant Object Database, ObjectStore, Objectivity/DB and OMS Avon. Further details are available at http://www.globis.ethz.ch/education/oodb.
TARGET GROUP: Students of Computer Science in the 5th semester or higher.
PREREQUISITES: Database design and implementation, Object-oriented design and programming.