Databases

Lecturers: Sergey Chidemyan, Anna Malkhasyan
Classes: 1 lecture and 1 practical class per week

Short description

This course will cover basic knowledge necessary for constructing and using Database Systems. The course will start with intensive introduction of SQL language. Then, we will pass to the architectural elements of database systems, i.e. how to store database systems, how to execute and optimize requests.
The second half of the course will focus on work with databases using ADO.NET technology

Requirements

Basic knowledge: Knowledge of higher mathematics at the level of first year engineering.
Homework:: Assignments will be given once a week or once in two weeks. The answers must be submitted within 1-2 weeks. Deadlines will be announced during classes. At the end of the 2nd term, the students must do a software project.

Assessment

50% of grading is based on homework, the other 50% is based on two on-going tests.

Textbooks

  1. Abraham Silberschatz, Henry Korth, S. Sudarshan: “Database System Concepts”
  2. Raghu Ramakrishnan, Johannes Gehrke : “Database management systems, 3-rd edition”
  3. Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom: “Database Systems: The Complete Book“
  4. ADO.NET

    Content
    First term
    1. ER model
    2. Relational database design
    3. Simple SQL queries
    4. Theory of normal forms
    5. Grouping data with SQL
    6. Relational Algebra
    7. Joins, Subqueries
    8. Physical Storage of database. Files, Indices
    9. Query Processing
    10. Logical and physical operators. Mapping of logical operators to physical operators
    11. Query optimization

    Second term
    1. Connection object in ADO.NET
    2. Connection Pooling. .NET framework Data Providers
    3. Command object in ADO.NET, DataReaders. MARS feature in ADO.NET
    4. DataSet and DataAdapter objects
    5. Introduction to LINQ