• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Бакалаврская программа «Прикладной анализ данных»

Databases

2021/2022
Учебный год
ENG
Обучение ведется на английском языке
5
Кредиты
Статус:
Курс обязательный
Когда читается:
3-й курс, 1, 2 модуль

Преподаватели

Course Syllabus

Abstract

The course attendants should develop skills and understanding in: the design methodology for databases and verifying their structural correctness; implementing databases and applications software in the relational model as well as in map/reduce paradigm; using querying languages, primarily SQL, and other database supporting software; applying the theory behind various database models and query languages; implementing security and integrity policies relating to databases; working in group settings to design and implement database projects.
Learning Objectives

Learning Objectives

  • Can design conceptual, logical and physical relational data models.
  • Can compose queries to relational databases using relational algebra, tuple relational calculus and SQL.
  • Apply methods of database design, including entity-relationship approach and normalization-based approach.
  • Knows and is able to apply database application design and development methods usable for object-oriented program systems, including object-relational mappers, its advantages and disadvantages.
  • May reason on database systems performance based on knowledge models and methods of internal organization of relational databases including file storage, indexing, query processing and transaction management issues.
Expected Learning Outcomes

Expected Learning Outcomes

  • Able to build conceptual data models
  • Able to compose SQL queries using set (and bag) operators.
  • Able to decompose tables into BCNF and/or 3NF compliant tables.
  • Able to express queries using relational algebra
  • Able to find keys given a set of functional dependencies
  • Able to identify tables that are not normalized
  • Able to translate query from English to SQL
  • Able to write Java programs that interacts with a DBMS server via the JDBC API.
  • Able to write single table SQL queries.
  • Able to write SQL aggregation queries involving GROUP BY and HAVING clauses.
  • Able to write SQL queries with correlated subqueries.
  • Able to write SQL statements to change (insert/update/delete) data in tables
  • Can analyze the performance of different storage and indexing strategies
  • Have an idea of Databases as discipline
  • Know 3-level X3/SPARC database architecture.
  • Know advantages and applicability of distributed database systems
  • Know applicability of early data models: hierarchical and network.
  • Know applicability of inverted index for data access
  • Know basic relational model concepts
  • Know distinct features and applicability of object-oriented data model
  • Know distinct features and applicability of object-relational data model
  • Know how to use UML class diagrams to represent conceptual data models
  • Know method of entity-relationship modeling
  • Know relational algebra operators under set semantics
  • Know software components and functions of distributed DBMS.
  • Know the history of data management approaches
  • Understand 1NF, 2NF, BCNF and 3NF
  • Understand client-server computing in the context of DBMSs
  • Understand difference between SQL and procedural SQL-based languages
  • Understand distributed query processing.
  • Understand functional dependencies and their relationship to keys
  • Understand how a host programming language environment interacts with the SQL environment
  • Understand how data is stored using storage media in a DBMS
  • Understand how different indexing techniques work
  • Understand how queries are processed, optimized and evaluated in a DBMS.
  • Understand how query execution plans are transformed/re-written.
  • Understand how the cost of a query execution plan is estimated.
  • Understand notion of data independence
  • Understand Recovery techniques used to recover from crashes
  • Understand relational algebra operators including extended operators under both set and bag semantics
  • Understand relational data model concepts and principles
  • Understand relational integrity constraints
  • Understand set semantics and bag semantics
  • Understand storage media and their basic properties
  • Understand the anomalies that occur without ACID
  • Understand the basic concepts of database systems.
  • Understand the difference between different types of query languages
  • Understand the locking protocols used to ensure Isolation
  • Understand the logging techniques used to ensure Atomicity and Durability
  • Understand transactions and their properties (ACID)
  • Understand triggers creation and usage in SQL
  • Understand views creation and usage in SQL
  • Understand what indexes are for and how to use them.
  • Understand what is a query execution plan
  • Understand why and how data needs to be indexed
Course Contents

Course Contents

  • Введение в управление данными
  • Моделирование данных
  • Проектирование баз данных: диаграммы сущность-связь
  • Реляционная модель данных
  • Проектирование реляционных баз данных
  • Реляционные языки запросов
  • Язык SQL: DDL
  • Язык SQL: Запросы
  • Язык SQL: DML
  • Процедурные расширения SQL
  • Доступ к базам данных из приложений
  • Файловые структуры хранения данных
  • Индексы
Assessment Elements

Assessment Elements

  • non-blocking midterm test
  • non-blocking essay
  • non-blocking quiz
  • non-blocking group project
    Students will work in groups of up to 5 students towards designing and development of a relational database. Topics might be suggested by lecturer as well as proposed by students.
  • non-blocking written exam
  • non-blocking Work on seminars
Interim Assessment

Interim Assessment

  • 2021/2022 2nd module
    0.28 * group project + 0.07 * midterm test + 0.3 * written exam + 0.14 * Work on seminars + 0.14 * essay + 0.07 * quiz
Bibliography

Bibliography

Recommended Core Bibliography

  • Foster, E. C., & Godbole, S. (2016). Database Systems : A Pragmatic Approach (Vol. Second edition). [United States]: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1174505
  • Petrov, A., & O’Reilly for Higher Education (Firm). (2019). Database Internals : A Deep Dive Into How Distributed Data Systems Work (Vol. First edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2250514

Recommended Additional Bibliography

  • Celko, J. (2014). Joe Celko’s SQL for Smarties : Advanced SQL Programming (Vol. Fifth edition). Amsterdam: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=924899
  • Connolly, T. M., & Begg, C. (2015). Database Systems: A Practical Approach to Design, Implementation, and Management, Global Edition (Vol. Sixth edition, Global edition). Harlow: Pearson. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1419568
  • Databases reference sheets: Date with Java, SQL, XML, JAXB, JDBC, JPA, JPA Inheritance / Rodrigo García Carmona. (2016). Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.991AD36F
  • Date, C. J. (2015). SQL and Relational Theory : How to Write Accurate SQL Code (Vol. Third edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1099367
  • Date, C. J. (2016). The New Relational Database Dictionary : Terms, Concepts, and Examples (Vol. New and expanded edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1136522
  • Haq, Q. M. R. U. (2016). Data Mapping for Data Warehouse Design. Amsterdam: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1115852
  • Jukic, N., Vrbsky, S., & Nestorov, S. (2017). Database Systems : Introduction to Databases and Data Warehouses. Burlington, Virginia: Prospect Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1562389
  • Mohanty, H., Bhuyan, P., & Chenthati, D. (2015). Big Data : A Primer. New Delhi: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1020194
  • Ottinger, J. B., Linwood, J., & Minter, D. (2016). Beginning Hibernate : For Hibernate 5 (Vol. Fourth edition). [United States]: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1360349
  • Rad, R. (2016). Mastering Hibernate. Birmingham, UK: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1239416