Βάσεις Δεδομένων II (Θ) Ενότητα 9: Συναλλαγές (Transactions) στο προϊόν mySQL Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τέλος Ενότητας.
Advertisements

Μεταγλωττιστές (Compilers) (Θ) Ενότητα 13: Επαναληπτικό μάθημα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Το περιεχόμενο του μαθήματος διατίθεται.
Βασικές αρχές ευρετηρίασης
Η ανοσοαποτύπωση ως επιβεβαιωτική μέθοδος
Τριφασικά συμμετρικά δίκτυα σε συνδεσμολογία Υ (1/2)
Περιλήψεις Γιατί; Πως; Τι είναι; Ποιος τις κάνει;
Αυτοματοποιημένη ευρετηρίαση
Διαμόρφωση πεδίων Περιγραφικά πεδία Διαχειριστικά πεδία Δομικά πεδία.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 11: Βελτιστοποίηση Ενδιάμεσου Κώδικα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα.
Άσκηση με αντίσταση Είναι ο οποιοσδήποτε τύπος ενεργητικής άσκησης στον οποίο η δυναμική ή στατική μυϊκή σύσπαση βρίσκει αντίσταση από μία εξωτερική.
Γενικά Ανιχνεύει μη αναμενόμενα (όχι του συστήματος ΑΒΟ) αλλοαντισώματα ή/και αυτοαντισώματα σε δείγμα ορού ασθενή. Ελέγχεται ο ορός σε 2-3 δείγματα.
Πολιτική πληροφόρησης Ενότητα 11: Ανακεφαλαίωση Μέρος Ι Δρ Αλέξανδρος Κουλούρης Τμήμα Βιβλιοθηκονομίας & Συστημάτων Πληροφόρησης Ανοικτά Ακαδημαϊκά Μαθήματα.
Η αναγκαιότητα συνθετικής προσέγγισης 1/6
Διάνοιξη πόρων Με ακτινοβολούμενη θερμότητα. Θερμαινόμενα σίδερα.
Έλεγχος Ροής με την Εντολή Επανάληψης FOR 1/9
Καμπυλότητα Φακού P c
Δράση μάσκας Μείωση ερεθισμού και επαναφορά των διασταλμένων πόρων.
Παράγοντες που επηρεάζουν τη δύναμη ενός μυός 1/2
Ορισμός Μάλαξη είναι ένα σύστημα μηχανικών χειρισμών που εκτελούνται στην επιφάνεια του ανθρώπινου σώματος (εδώ στο πρόσωπο), με τα χέρια ή με ειδικά μηχανήματα.
Αλκίνια Χαρακτηριστική ομάδα: τριπλός δεσμός.
Περιγραφή Είναι κύματα που εκπέμπονται σε πολύ μεγάλες συχνότητες.
Αλδεΰδες και Κετόνες Δομή και ιδιότητες.
Σύσταση και Ανάλυση Γλευκών και Οίνων (Θ)
Συστήματα Θεματικής Πρόσβασης (Θ) Ενότητα 5: Θεματική επεξεργασία απεικονιστικών τεκμηρίων Δάφνη Κυριάκη-Μάνεση Τμήμα Βιβλιοθηκονομίας και Συστημάτων Πληροφόρησης.
Μέρη μηχανής φύλλου όφσετ
ΜΙΚΡΟΟΙΚΟΝΟΜΙΚΗ Ενότητα 1: Αγορά Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός.
Υπηρεσίες Πληροφόρησης Ενότητα 7: Είδη υπηρεσιών πληροφόρησης – Εξυπηρέτηση (β’ μέρος) Δρ. Ευγενία Βασιλακάκη Τμήμα Βιβλιοθηκονομίας και Συστημάτων Πληροφόρησης.
Διατροφή- Διαιτολογία Ενότητα 18: Διατροφή και δυσλιπιδαιμίες Αναστασία Κανέλλου, καθηγήτρια Τμήμα Νοσηλευτικής Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Τεχνολογία οφθαλμικών φακών Ι (Ε) Ενότητα 2: Διόρθωση αμετρωπιών με οφθαλμικούς φακούς Θεμιστοκλής Γιαλελής, Οπτικός, MSc, PhD candidate ΕΔΙΠ του τμήματος.
Τεχνολογία οφθαλμικών φακών Ι (Ε) Ενότητα 5: Έγχρωμοι φακοί Θεμιστοκλής Γιαλελής, Οπτικός, MSc, PhD candidate ΕΔΙΠ του τμήματος Οπτικής και Οπτομετρίας.
Eιδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων
Κανόνες Ασφαλείας Εργοταξίων
ΟΙΚΟΝΟΜΙΚΑ ΤΟΥ ΕΛΕΓΧΟΥ ΤΗΣ ΡΥΠΑΝΣΗΣ
Άλλες μορφές νευρώσεων
Επικοινωνιακός Προγραμματισμός Ι
Άσκηση 8 (1 από 3) Προβολές 1. Να επιλέξετε ένα θέμα βασισμένο σε κάποια παράγραφο / υποπαράγραφο του κεφαλαίου 6 των σημειώσεων και να κάνετε μια εργασία.
Υπολογιστική Γεωμετρία και Εφαρμογές στις ΒΧΔ
Ταυτότητα και περίγραμμα μαθήματος
Δίκτυα Υπολογιστών ΙΙ (Ε)
Άσκηση 7 (1 από 5) Υπολογισμοί μηκών τόξων σφαίρας. Το έτος 2035 μ.Χ., μετά από πυρηνική καταστροφή και λόγω του φαινομένου του θερμοκηπίου, που πήρε εκρηκτικές.
ΠΡΟΤΥΠΟ ΕΛΟΤ EN ISO 3251 Ζύγιση μάζας υγρού μελανιού (m1 g)
Ενότητα 13 Αξιολόγηση μαθήματος και διδάσκοντος από την εφαρμογή της Μονάδας Ολικής Ποιότητας (ΜΟΔΙΠ) του ΤΕΙ Αθήνας Αξιολόγηση του μαθήματος Αξιολόγηση.
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση δηλώσεων SQL που περιλαμβάνουν EXIST, ANY, ALL. Χ. Σκουρλάς.
Άσκηση 9 (1 από 2) Ανακαλύψτε στο χάρτη σας μερικά χαρτογραφικά αντικείμενα που να ανήκουν στις παρακάτω κατηγορίες : φυσικά, τεχνητές κατασκευές, αφηρημένα.
Σκοπός Μαθήματος Σκοπός του μαθήματος είναι να παρουσιάσει τις έννοιες των Συναλλαγών (Transactions) στο προϊόν mySQL. 1.
Τοπολογικές σχέσεις 1/3 Βρείτε και περιγράψτε τις τοπολογικές σχέσεις σύμφωνα με τους (Pantazis, Donnay 1996) για τα παρακάτω γεω-γραφικά αντικείμενα:
Επιλογή φλέβας για λήψη φλεβικού αίματος 1/7
Επικοινωνιακός Προγραμματισμός Ι
Εικαστικές συνθέσεις - Χρώμα στο χώρο
Γενική και Μαθηματική Χαρτογραφία (Ε)
Οργάνωση και Διοίκηση Πρωτοβάθμιας (Θ)
Λιθογραφία – Όφσετ (Θ) Ενότητα 8.2: Εκτυπωτική Διαδικασία Μηχανής
Επικοινωνιακός Προγραμματισμός Ι
Ενότητα 9: Συστήματα Υγείας στην Ευρώπη: Σουηδία
Αισθητική Σώματος Ι (Ε)
Αισθητική Σώματος Ι (Ε)
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας
Ειδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -E
Γενική και Μαθηματική Χαρτογραφία (Ε)
Αισθητική Σώματος Ι (Ε)
Ενότητα 8: Συστήματα Υγείας στην Ευρώπη: Γαλλία
Eιδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -Θ
Ψυχιατρική Ενότητα 7: Συνέχεια σταδίων
Ανοσολογία (Ε) Ενότητα 3: Αιμοσυγκόλληση Πέτρος Καρκαλούσος
Γενική και Μαθηματική Χαρτογραφία (Ε)
Οργανική Χημεία (Ε) Ενότητα 2: Προσδιορισμός σημείου τήξης
Ενότητα 1: ……………….. Όνομα Επώνυμο Τμήμα __
Σύσταση και Ανάλυση Γλευκών και Οίνων (Θ)
Αισθητική ηλεκτροθεραπεία σώματος
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

Βάσεις Δεδομένων II (Θ) Ενότητα 9: Συναλλαγές (Transactions) στο προϊόν mySQL Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σκοπός Μαθήματος Σκοπός του μαθήματος είναι να παρουσιάσει τις έννοιες των Συναλλαγών (Transactions) στο προϊόν mySQL. 1

Συναλλαγές (SQL Transactions)στη mySQL Η συμπεριφορά της MySQL εξαρτάται από την χρησιμοποιούμενη μηχανή (database engine). Επομένως, αυτό το τμήμα της παρουσίασης εστιάζει σε MySQL/InnoDB τη μηχανή που υποστηρίζει Συναλλαγές. 2

Σε περιβάλλον mySQL Δείτε τις μηχανές Χρησιμοποιήστε InnoDB engine Να πως βλέπουμε τις μηχανές: show engines; -- shows all the engines Να πως θα δημιουργήσουμε έναν πίνακα με χρήση της InnoDB engine: SHOW DATABASES; -- if TestDB is found then DROP DATABASE TestDB; -- CREATE DATABASE TestDB; USE TestDB; -- create table 3

4

Η MYsql ξεκινά σε Autocommit mode, δηλαδή κάθε εντολή εκτελείται και το αποτέλεσμά της καταγράφεται στη βάση. Στα screenshots στη συνέχεια βλέπουμε εντολή HELP και εντολή ROLLBACK η οποία όμως δεν έχει κάποια επίδραση λόγω Autocommit mode. 5

Κάθε εντολή INSERT, UPDATE, DELETE σε Autocommit mode εκτελείται και το αποτέλεσμά της καταγράφεται άμεσα στη βάση 6

Πρώτος πειραματισμός με συναλλαγές START TRANSACTION START TRANSACTION; -- εκκίνηση (έναρξη) συναλλαγής INSERT INTO T (id, s) VALUES (2, 'second'); SELECT * FROM T ; ROLLBACK; SELECT * FROM T; -- So, what we learned about transaction? Η εντολή ROLLBACK αναίρεσε τις μεταβολές στη βάση δεδομένων και όπως θα δούμε τερμάτισε τη συναλλαγή (transaction) 7

Τι θα συμβεί στη συνέχεια; Είμαστε και πάλι σε Autocommit mode και κάθε εντολή INSERT, UPDATE, DELETE έχει «οριστικό» χαρακτήρα, δεν αναιρείται. Η συναλλαγή που αρχίζει με START TRANSACTION τελειώνει με την εκτέλεση COMMIT/ROLLBACK. 8

Ξαναγυρίζουμε στο σημείο εκκίνησης. Στα παραδείγματα παρακάτω θα κάνουμε πάντα το ίδιο. Σταματάμε το Autocommit mode. Σχεδόν σε όλα τα επόμενα παραδείγματα θα χρησιμοποιήσουμε αυτή την απενεργοποίηση της Autocommit mode. Τότε μπορούμε να έχουμε πολλές transactions. Κάθε συναλλαγή τερματίζεται με COMMIT ή ROLLBACK και αρχίζει η επόμενη. Θα εξετάσουμε αν οι εντολές της Data Definition Language προκαλούν αυτόματο Commit. 9

Μετά την εντολή CREATE TABLE εκτελέστηκε αυτόματα δήλωση COMMIT ενώ η επόμενη εντολή INSERT αναιρέθηκε από τη δήλωση ROLLBACK. 10

Επαναφορά Θα εξετάσουμε αν λανθασμένες εντολές INSERT, UPDATE, DELETE οδηγούν σε αυτόματο ROLLBACK 11

Οι λανθασμένες εντολές INSERT, UPDATE, DELETE δεν οδηγούν σε αυτόματο ROLLBACK 12

Τι θα συμβεί στην περίπτωση βίαιου τερματισμού του client; 13

Η γραμμή που είχαμε προσθέσει δεν καταγράφηκε μόνιμα (αναιρέθηκε). 14

Περίπτωση mySQL Θα εξετάσουμε τι ισχύει για το constraint CHECK. Θα δοκιμάσουμε μεταφορά ποσού ανάμεσα σε λογαριασμούς Experimenting with Transaction Logic Experiment: COMMIT and ROLLBACK -- DROP TABLE Accounts; CREATE TABLE Accounts ( acctID INTEGER NOT NULL PRIMARY KEY, balance INTEGER NOT NULL, CONSTRAINT unloanable_account CHECK (balance >= 0)); INSERT INTO Accounts (acctID,balance) VALUES (101,1000); INSERT INTO Accounts (acctID,balance) VALUES (202,2000); SELECT * FROM Accounts; COMMIT; 15

Αναιρέθηκε η μεταφορά. 16

Ας δοκιμάσουμε να δούμε αν δουλεύει το CHECK constraint 17

Το CHECK constraint δε δουλεύει αλλά η εντολή ROLLBACK δούλεψε. 18

Πειραματισμός με ταυτόχρονες συναλλαγές (Concurrent Transactions) Θα ανοίξουμε δύο τερματικά (πχ θα χρησιμοποιήσουμε ταυτόχρονα περισσότερες από μία φορές το client command line) στον υπολογιστή μας Experimenting with Concurrent Transactions For concurrency experiments we will open two parallel -- mysql client sessions in different terminal windows. -- To start with fresh contents we enter following commands on -- one mysql client session 19

20

-- client A starts SET AUTOCOMMIT = 0; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; SELECT balance FROM Accounts WHERE acctID = 101; -- client B starts SET AUTOCOMMIT = 0; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; SELECT balance FROM Accounts WHERE acctID = 101; -- client A continues UPDATE Accounts SET balance = balance WHERE acctID = 101; 21

-- client B continues UPDATE Accounts SET balance = balance WHERE acctID = 101; 22

-- client A continues SELECT acctID, balance FROM Accounts WHERE acctID = 101; COMMIT; -- client B continues 23

SET TRANSACTION Syntax (InnoDB tables) SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL { REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE } 24

Προσομοίωση «Τυφλής αντικατάστασης» (Blind Overwriting) MySQL’s default lock timeout = 90 seconds

SSession ASession B 1SET AUTOCOMMIT=0; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -- amount to be transfered by A = 200; = 0; -- init value SELECT balance FROM Accounts WHERE acctID = 101; 2SET AUTOCOMMIT=0; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -- amount to be transfered by B = 500; = 0; -- init value SELECT balance FROM Accounts WHERE acctID = 101; 3UPDATE Accounts SET balance WHERE acctID = 101; 26

SSession ASession B 4UPDATE Accounts SET balance WHERE acctID = 101; 5SELECT acctID, balance FROM Accounts WHERE acctID = 101; COMMIT; 6SELECT acctID, balance FROM Accounts WHERE acctID = 101; COMMIT; 27

SSession ASession B 7SELECT * FROM Accounts; 8 28

using “sensitive updates” in SELECT-UPDATE scenarios without local variables StepSession ASession B 1USE TestDB; SET AUTOCOMMIT=0; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SELECT balance FROM Accounts WHERE acctID = 101; 2 USE TestDB; SET AUTOCOMMIT=0; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SELECT balance FROM Accounts WHERE acctID = 101; 3UPDATE Accounts SET balance = balance WHERE acctID = 101; 4 UPDATE Accounts SET balance = balance WHERE acctID = 101; 5SELECT acctID, balance FROM Accounts WHERE acctID = 101; COMMIT; SELECT acctID, balance FROM Accounts WHERE acctID = 101; COMMIT; 29

Απόπειρα εμφάνισης dirty read SSession ASession B 1USE TestDB; SET AUTOCOMMIT = 0; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; UPDATE Accounts SET balance = balance WHERE acctID = 101; UPDATE Accounts SET balance = balance WHERE acctID = 202; 2 USE TestDB; SET AUTOCOMMIT = 0; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM Accounts; COMMIT WORK; 3ROLLBACK; SELECT * FROM Accounts; COMMIT; What if ‘READ UNCOMMITTED’ is replaced by RC / RR’ / S in transaction B? 30

The non-repeatable read anomaly SSession ASession B 1USE TestDB; SET AUTOCOMMIT = 0; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; SELECT * FROM Accounts WHERE balance > 500; 2 USE TestDB; SET AUTOCOMMIT = 0; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; UPDATE Accounts SET balance = balance WHERE acctID = 101; UPDATE Accounts SET balance = balance WHERE acctID = 202; COMMIT WORK; 3-- repeating the same query SELECT * FROM Accounts WHERE balance > 500; COMMIT; Τι θα συμβεί αν θέσουμε στην transaction A το επίπεδο απομόνωσης (isolation level) ίσο με REPEATABLE READ; 31

Απόπειρα εμφάνισης insert phantom DELETE FROM Accounts; INSERT INTO Accounts (acctID,balance) VALUES (101,1000); INSERT INTO Accounts (acctID,balance) VALUES (202,2000); SELECT * FROM Accounts; COMMIT WORK; 32

Ερωτήσεις α) Η συναλλαγή Β πρέπει να περιμένει τη συναλλαγή A; β) Είναι η (πρόσφατα εισαχθείσα από τη συναλλαγή Β) γραμμή acctID = 303 ορατή στο περιβάλλον της συναλλαγής Α; γ) Επηρεάζεται το σύνολο αποτελεσμάτων (resultset) του βήματος 4, αν αλλάξετε τη σειρά των βημάτων 2 και 3; StepSession ASession B 1USE TestDB; SET AUTOCOMMIT = 0; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ ; 2-- Accounts having balance > 1000 euros; SELECT * FROM Accounts WHERE balance > 1000; 3USE TestDB; SET AUTOCOMMIT = 0; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; INSERT INTO Accounts (acctID, balance) VALUES (303,3000); COMMIT; -- Can we see the new account 303? SELECT * FROM Accounts WHERE balance > 1000; COMMIT; 33

Τέλος Ενότητας Η εισήγηση βασίζεται σε σειρά μαθημάτων του Χ. Σκουρλά για θέματα “SQL Transactions” (σε συνεργασία με Δ. Δέρβο) στο πλαίσιο του “DBTech VET Teacher programme.

Σημειώματα

Σημείωμα Αναφοράς Copyright Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας, Χρήστος Σκουρλάς Χρήστος Σκουρλάς. «Βάσεις Δεδομένων II (Θ). Ενότητα 9: Συναλλαγές (Transactions) στο προϊόν mySQL». Έκδοση: 1.0. Αθήνα Διαθέσιμο από τη δικτυακή διεύθυνση: ocp.teiath.gr.ocp.teiath.gr

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Επεξήγηση όρων χρήσης έργων τρίτων Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. © διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. διαθέσιμο με άδεια CC-BY-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. διαθέσιμο με άδεια CC-BY-NC-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. χωρίς σήμανσηΣυνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει:  το Σημείωμα Αναφοράς  το Σημείωμα Αδειοδότησης  τη δήλωση Διατήρησης Σημειωμάτων  το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

Σημείωμα Χρήσης Έργων Τρίτων Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: “SQL Transactions” Educational and Training Content, The DBTech VET Teachers (EU LLP Transfer of Innovation) project, 1/10/2012 – 30/9/2014. Retrieved 14 May διαθέσιμο με άδεια CC BY-NC-SA BY-NC-SA 3.0

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.