Database Technology

General

Educational goals

The course is a sequel to the course 'Database Management Systems' and focuses on: (a) database management through programming languages, (b) database server programming, (c) transaction programming and concurrency control, (d) query optimization in the relational model, and (e) non-relational database models. Upon successful completion of the course the student will be able to:

  • Apply SQL code embedding techniques to programming language code using JDBC technology, software frameworks such as Hybernate, Spring, and object-binding APIs such as JPA, JDO
  • Defines and manage stored procedures and triggers in the database server
  • Design and implement online data management services using stored procedures
  • Explain concepts and practices related to modern non-relational models, such as Object Relational Model (SQL3) and NoSQL databases, recognizes the basic concepts and practices of organization, management and processing technologies of semi-structured data and related technologies (XML, XPath, XML Schema , XQuery, SQL2008)
  • Analyze and compare different database models and select the appropriate solution for each data management case
  • Explain concepts and practices related to the implementation and application of a simultaneous transaction control policy in the modern DBMS. It also recognizes and distinguishes the different implementation technologies of concurrency control in popular DBMS environments like MySQL/MariaDB, Oracle, IBM DB2, MS SQLServer, and PostgreSQL
  • Write a programming code with emphasis on transaction management and, through it, ensuring that database content is properly updated. It also simulates and explains problems related to the lack of simultaneous execution of transactions. Also, the extent to which these problems are addressed by imposing levels of isolation on transactions and the use of good practice in developing the relevant programming code, taking advantage of the capabilities offered / supported by the modern BAS environment.
General Skills
  • Search, analyze and synthesize data and information, using the necessary technologies
  • Decision making
  • Independent work
  • Teamwork
  • Exercising criticism and self-criticism
  • Promoting free, creative and inductive thinking

Course Contents

  • Embedding SQL code in third generation programming environments.
  • The Open Access Architecture using JDBC. Create integrated applications using popular DBMSs, such as Oracle, PostgreSQL, Microsoft SQL Server and MySQL.
  • Frameworks and Object Connection APIs, created in an object-oriented programming language such as Java, with relational database systems or other forms of information management, such as Hybernate, Spring, JPA, JDO and more.
  • Stored procedures and triggers on the database server.
  • Online data management services: Explain the design of data web services, their implementation through stored SQL procedures and SQL commands.
  • Designing databases for an object-relational database system, extending the relational model, embedded collections, the SQL3 query language, and in particular its object-relational extensions, implementing a complete example in Oracle.
  • Study of the main types of NoSQL databases and their most popular implementations, such as google firebase, mongo db, Neo4j, db4o and more.
  • Semi-structured data organization technologies such as XML, XML Schema, SQL2008, XQuery, Xpath. Support XML formatting and management of corresponding data in ORDBMS and in native XML environments such as BaseX.
  • Transaction as a logical unit of work in the DBMS client / server environment.
  • Errors and diagnostics when executing SQL code.
  • SQL error and exception handling
  • Transaction anomalies: lost update, dirty read, non-repeatable read, phantoms/ghosts.
  • ACID properties, the ideal transaction.
  • Transaction isolation levels.
  • Technologies / mechanisms for implementing simultaneous control of transaction execution: Multi-Granular Locking Concurrency Control (MGLCC), Multi-Versioning Concurrency Control (MVCC), Optimistic Concurrency Control (OCC).

Teaching Methods - Evaluation

Teaching Method
  • Person to person theoretical teaching (lecture, discussion, problem solving).
Use of ICT means
  • Using slide show software.
  • Using an online learning platform (moodle).
  • Digital communication with students.
  • Availability of selected course lectures in digital video formatting, via the department Video on Demand server.
  • Use of Virtual Machine Interface of International partnership DBTechNet, with various pre-installed RDBMS software: IBM DB2 Express-C, Oracle Express, PostgreSQL, MySQL. Using the educational content of the course "Transactions in SQL" of the DBTechNet International Partnership (http://dbtech.uom.gr/mod/resource/view.php?id=1064).
Teaching Organization
Activity Semester workload
Lectures52
Writing and presenting bibliographic work25
Εκπόνηση μελέτης και υλοποίησης λογισμικού40
Individual study and analysis of literature63
Total 180
Students evaluation

Student assessment is based on final written examination and assignments. Assessment criteria are accessible to students on the course web site.

Recommended Bibliography

Recommended Bibliography through "Eudoxus"
  1. R. Elmasri και S.B. Navathe, 2016. “Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων”, (7η έκδοση), Εκδόσεις Δίαυλος, ISBN 978-960-531-343-2, Κωδικός Βιβλίου στον Εύδοξο: 50662846.
  2. J. Hoffer, V, Ramesh, Heiki Topi, 2017. “ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ: ΣΥΓΧΡΟΝΗ ΔΙΑΧΕΙΡΙΣΗ”, (11η Έκδοση), Εκδόσεις Τζιόλα, ISBN 978-960-418-502-3, Κωδικός Βιβλίου στον Εύδοξο: 50656016.
  3. R. Ramakrishnan και J. Gehrke, 2012. “Συστήματα Διαχείρισης Βάσεων Δεδομένων”, (3η έκδοση), Εκδόσεις Τζιόλα, ISBN 978-960-418-411-8, Κωδικός Βιβλίου στον Εύδοξο: 22694245.
Complementary greek bibliography
  1. J.D. Ullman, J. Widom, Βασικές Αρχές για τα Συστήματα Βάσεων Δεδομένων, Εκδόσεις 'Κλειδάριθμος', Αθήνα 2008
  2. Ι. Μανωλόπουλος, Α. Παπαδόπουλος, Συστήματα Βάσεων Δεδομένων: Θεωρία και Πρακτική Εφαρμογή, Εκδόσεις Νέων Τεχνολογιών, Αθήνα 2006
  3. T. Connolly, C. Begg, και A. Strachan, Συστήματα Βάσεων Δεδομένων: Μια πρακτική προσέγγιση στο σχεδιασμό, υλοποίηση και διεύθυνση, τόμοι Α και Β, Εκδόσεις Ίων, Αθήνα 2001
  4. Χ. Σκουρλάς, Σχεσιακές Βάσεις Δεδομένων, Εκδόσεις Νέων Τεχνολογιών, Αθήνα 2000
  5. M. Laiho, D.A. Dervos, K. Silpio, SQL Transactions: Θεωρία και Ασκήσεις Πρακτικής Εφαρμογής, Έκδοση DBTechNet, ISBN 978-952-93-2421-7, Ανάκτηση από (30/6/2019): http://150.214.214.5/DBTechVETProd/sites/default/files/sql-transactions_handbook_gr_2014-11-12.pdf
  6. Α. Σταυρακούδης, Βλασεις Δεδομένων και SQL: Μία Πρακτική Προσέγγιση, 2η Έκδοση, Εκδόσεις Κλειδάριθμος, Αθήνα 2015
Complementary international bibliography
  1. W. Lemahieu, S. Van Den Broucke, B. Baesens, Principles of Database Management: The Practical Guide to Storing, Managing, and Analyzing Big and Small Data, Cambridge University Press, 2018
  2. T. Connolly, C. Begg, Database Systems: A Practical Approach to design, Implementation, and Management, 5th Edition, Addison Wesley, 2010
  3. R. Elmasri και S.B. Navathe, Fundamentals of Database Systems, 5th Edition, Addison-Wesley 2006
  4. R. Ramakrishnan και J. Gehrke, Database Management Systems, 3rd Edition, Mc Graw-Hill, 2002
  5. J.D. Ullman, J. Widom, A First Course in Database Systems, Prentice-Hall, 2007