The main goal of the course is to teach students modern data management techniques for both relational and non-relational database systems. Topics such as: database design, database implementation, SQL language, physical storage and request processing, and optimization will be studied. Emphasis will be placed on both understanding the internal operation and architecture of modern data management systems and developing applications in a programming environment. Also, principles of distributed and parallel databases will be presented, as well as modern non-relational systems that achieve high efficiency and scalability. Through this course, students are expected to acquire important technical skills in large-scale data management and learn to design and implement applications that will manage huge volumes of data.
Database management systems architecture
Key features of database management systems (DMS). Advantages. SBD removal levels. Structure of an SDBD.
Design relational databases
Entity-correlation model (O / S). Basic concepts, entities, correlations, characteristics, key constraints, participation constraints. The concept of relationship. Integrity restrictions. Logical design NW. Conversion of O / S model to relational.
The SQL (LAB) language
Pension. Types of requests. Nested requests. Rally operators. Triggers. Saved procedures.
Development of applications NW (LAB)
Access to NW from applications. Application independence-NW. JDBC driver. Application development.
Indexes and optimization
Physical storage. Organize files on disk. Indexing methods. The B + Tree. Calculation of relational operators. Optimization.
Incentives for non-relational databases (NoSQL). Comparison with relational databases. ACID properties. BASE properties. Possible data consequence. Key value pair warehouses (REDIS). Document Warehouses (MongoDB). Expandable record stores (Google’s BigTable, HBase, Cassandra). Graph data storage (OrientDB).
Document-oriented NW development
Modeling and storing data in the form of documents. Document structure design. Deregulate to improve the processing performance of complex requests.
The non-relational MongoDB database (LAB)
Presentation of MongoDB. MongoDB architecture. Writing commands in MongoDB. Features supported by MongoDB.
The non-relational ElasticSearch database (LAB)
Unstructured data management. Challenges related to text management. Text indexing and search Rating. Weighting terms. The vector space model. The ElasticSearch system.
Principles of distributed and parallel data management
Store in rows and columns. Local and global indexes. Partitioning techniques. Distributed query processing. Query optimization. Load balancing.
- Vasilakopoulos G. (2009): Database Design, Self-published.
- Ramakrishnan R. & Gehrke J. (2002): Database Management Systems, Volume I, 2nd Edition (translated), Jiola Publications / McGraw Hill.
- Özsu, M. T., Valduriez P. (2011): Principles of Distributed Database Systems, Third Edition. Springer, ISBN 978-1-4419-8833-1, pp. I-XIX, 1-845.
- Jagadish, H. V., Gehrke, J., Labrinidis, A., Papakonstantinou, Y., Patel, J. M., Ramakrishnan, R., Shahabi, C. (2014): Big Data and Its Technical Challenges. Communications of the ACM, Vol. 57 No. 7, pages 86-94.
- Catell, R. (2010): Scalable SQL and NoSQL data stores. ACM SIGMOD Record, Volume 39 Issue 4, December 2010, pages 12-27.
- Davoudian, A., Chen, L., Liu, M. (2018): A Survey on NoSQL Stores. ACM Comput. Surv. 51 (2): 40: 1-40: 43.