Raghu Ramakrishnan and Johannes Gehrke
Database Management Systems , Third Edition
You can find more information about the book at the homepage of the book.
The Cornell Database Group currently offers four regular courses in database systems. Introductory material is covered in a course in relational database technology (CS4320) with an associated practicum (CS4321). More advanced material is covered in a graduate course on advanced database systems (CS6320) while another graduate course focuses on enterprise information architectures (CS5300).
CS4320: Introduction to Database Systems.
An introduction to modern relational database systems concentrating on the internals of relational database systems. Concepts covered include query languages (SQL, relational algebra and relational calculus), storage structures, access methods, query processing, query optimization, and database design, as well as more recent developments such as NoSQL and MapReduce. This course is usually offered in the fall semester.
CS4321: Practicum in Database Systems.
CS4321 is the practicum associated with CS4320. It consists of several large programming assignments where students build part of a small relational database system.
CS5300: The Architecture of Large-Scale Information Systems.
This course deals with the architecture of large-scale information systems, with special emphasis on Internet-based systems. Topics covered include three-tier architectures, edge caches, distributed transaction management, web services, workflows, high-availability architectures, and content management. The course will also include a significant number of programming assignments in the context of three-tier architectures, involving web servers, application servers and database systems. You will learn and extensively use technologies such as .Net, JSPs, ASPs, Servlets, Enterprise Java Beans (EJBs), XML, and SOAP. This course is usually offered in the spring semester; it has CS4320 as a prerequisite.
CS6320: Advanced Database Systems.
This course reviews recent trends and foundational work in the area of databases and large-scale data analysis. Starting from the foundations of relational databases, we review recent research aimed at making data analysis and transaction processing more efficient (e.g., column stores, query compilation, approximate querying, NoSQL and NewSQL databases), handling diverse data formats (e.g., graph and stream data management systems), or improving usability (e.g., natural language interfaces, automated data visualization). Part of the course is extensive paper reading and discussion of the papers in class. A major part of the course is a research project.