============ Assignment 1 ============ Answers to the questions in points 2, 3, and 4 should be submitted not later than 18.10.2015 23:59 using the provided template. Submission: Send an email to 'dbabgabe@cosy.sbg.ac.at' with a title '{postgresql|mysql|db2|sqlite|oracle}-a1' and a single attachment '{postgresql|mysql|db2|sqlite|oracle}-a1.pdf'. -------- 1. Teams -------- Split into teams (maximum 3 people each). Each team will perform assignments on one of the following DBMSs: PostgreSQL, MySQL, Oracle, DB2, SQLite, MS SQL Server. Tips for splitting into teams: - The choice of a DBMS can be based on your experience (you feel comfortable working with it) or learning wishes (you'd like to try out something new). - Some of you participated in Database Tuning course. It may be profitable if each team has such a person. Starting pointers to the documentation: PostgreSQL http://www.postgresql.org/docs/9.4/static/mvcc.html MySQL http://dev.mysql.com/doc/refman/5.6/en/innodb-transaction-model.html Oracle (Express) http://docs.oracle.com/cd/E11882_01/server.112/e10713/intro.htm#CNCPT963 http://docs.oracle.com/cd/E11882_01/server.112/e10713/consist.htm#CNCPT020 http://docs.oracle.com/cd/E11882_01/server.112/e10713/transact.htm#CNCPT016 MS SQL Server (Express) https://msdn.microsoft.com/en-us/library/ms190612(v=sql.100).aspx https://msdn.microsoft.com/en-us/library/ms180799(v=sql.100).aspx https://msdn.microsoft.com/en-us/library/dn479429.aspx DB2 (Express-C) https://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.perf.doc/doc/c0005266.html https://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.perf.doc/doc/c0005267.html SQLite https://www.sqlite.org/atomiccommit.html ---------------------------- 2. Learn your DBMS (1 point) ---------------------------- Install your team's DBMS. (At this point locally, on your personal computer. We're working on a server setup.) Answer the following question: - What are the keywords to manually begin and commit a transaction in your system? Give an example. ----------------------------------------- 3. Investigate isolation levels (1 point) ----------------------------------------- The ISO standard specifies certain isolation levels which should be implemented in a DBMS. Answer the following questions: - Are all isolation levels specified in the ISO standard implemented in your DBMS? - What is the default isolation level in your DBMS? - How to manually specify a certain isolation level in your DBMS? ------------------------------------- 4. Understanding phenomena (3 points) ------------------------------------- Consider the three undesired phenomena defined by the ISO standard regarding concurrency. For each phenomenon, provide a minimal example that triggers the phenomenon if the isolation level is too low (1 point for each phenomenon).