Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας

Slides:



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

Οργάνωση πληροφοριών Ταξινόμηση (Θ) Ενότητα 9: Qualified Dublin Core Δάφνη Κυριάκη-Μάνεση Τμήμα Βιβλιοθηκονομίας και Συστημάτων Πληροφόρησης Το περιεχόμενο.
Βασικές αρχές ευρετηρίασης
Η ανοσοαποτύπωση ως επιβεβαιωτική μέθοδος
Οργάνωση πληροφοριών Ταξινόμηση (Θ) Ενότητα 4: Αρχιτεκτονική της Ευρετηρίασης (β μέρος) Δάφνη Κυριάκη-Μάνεση Τμήμα Βιβλιοθηκονομίας και Συστημάτων Πληροφόρησης.
Περιλήψεις Γιατί; Πως; Τι είναι; Ποιος τις κάνει;
Αυτοματοποιημένη ευρετηρίαση
Διαμόρφωση πεδίων Περιγραφικά πεδία Διαχειριστικά πεδία Δομικά πεδία.
Βάσεις Δεδομένων I (Θ) Ενότητα 11: Ενιαίο παράδειγμα σχεδίασης σχεσιακής βάσης δεδομένων και υλοποίησης με Γλώσσα SQL Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής.
Διάνοιξη πόρων Με ακτινοβολούμενη θερμότητα. Θερμαινόμενα σίδερα.
Καμπυλότητα Φακού P c
Βάσεις Δεδομένων II (Θ) Ενότητα 6: Τεχνολογία PL/SQL - cursors Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το.
Σχεδίαση Ολοκληρωμένων Κυκλωμάτων
Βάσεις Δεδομένων I (Θ) Ενότητα 8: Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα.
Βάσεις Δεδομένων I (Θ) Ενότητα 9: Yλοποίηση σχεσιακών βάσεων δεδομένων - Σύνθετες εντολές SQL Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά.
Βάσεις Δεδομένων I Ενότητα 8: Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων Χ. Σκουρλάς Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο.
Βάσεις Δεδομένων I Ενότητα 9: Yλοποίηση σχεσιακών βάσεων δεδομένων - Σύνθετες εντολές SQL Χ. Σκουρλάς Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο.
Zωολογία Ι Ενότητα 19: Εχινόδερμα Εργαστηριακή Άσκηση: Συστηματική Εχινοδέρμων Κυρίτση – Κρικώνη Βασιλική, ΕΔΙΠ Σχολή Θετικών Επιστημών Τμήμα Βιολογίας.
Τεχνολογία οφθαλμικών φακών Ι (Ε) Ενότητα 5: Έγχρωμοι φακοί Θεμιστοκλής Γιαλελής, Οπτικός, MSc, PhD candidate ΕΔΙΠ του τμήματος Οπτικής και Οπτομετρίας.
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι να παρουσιάσει τις απαραίτητες έννοιες ώστε οι φοιτητές να κατανοήσουν την τεχνολογία των βάσεων δεδοµένων.
Σύντομη περιγραφή Μια περιήγηση σε αφυπνιζόμενα προγράμματα (triggers), δηλαδή προγράμματα ενεργοποιούμενα από ενέργειες INSERT, UPDATE, DELETE στη βάση.
Συμπλήρωση Προτύπου Διδακτικού Σχεδιασμού
Eιδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων
Κανόνες Ασφαλείας Εργοταξίων
Περιγραφή Ενότητας Σκοπός του μαθήματος αυτού και κεντρικός σκοπός του μαθήματος των Βάσεων Δεδομένων Ι είναι η παρουσίαση των απαραίτητων εννοιών ώστε.
ΟΙΚΟΝΟΜΙΚΑ ΤΟΥ ΕΛΕΓΧΟΥ ΤΗΣ ΡΥΠΑΝΣΗΣ
Άλλες μορφές νευρώσεων
Διαχείριση παραγωγής εντύπων 1/2
Επικοινωνιακός Προγραμματισμός Ι
Άσκηση 8 (1 από 3) Προβολές 1. Να επιλέξετε ένα θέμα βασισμένο σε κάποια παράγραφο / υποπαράγραφο του κεφαλαίου 6 των σημειώσεων και να κάνετε μια εργασία.
Τεχνολογία οφθαλμικών φακών Ι (Ε)
Υπολογιστική Γεωμετρία και Εφαρμογές στις ΒΧΔ
Ταυτότητα και περίγραμμα μαθήματος
ΠΡΟΤΥΠΟ ΕΛΟΤ EN ISO 3251 Ζύγιση μάζας υγρού μελανιού (m1 g)
Φυσικοθεραπεία σε ειδικές πληθυσμιακές μονάδες (Ε)
Ενότητα 13 Αξιολόγηση μαθήματος και διδάσκοντος από την εφαρμογή της Μονάδας Ολικής Ποιότητας (ΜΟΔΙΠ) του ΤΕΙ Αθήνας Αξιολόγηση του μαθήματος Αξιολόγηση.
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση των απαραίτητων εννοιών αλλά και των δηλώσεων SQL ώστε οι φοιτητές να κατανοήσουν σε κάποιο.
Τεχνολογία οφθαλμικών φακών Ι (Ε)
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση δηλώσεων SQL που περιλαμβάνουν EXIST, ANY, ALL. Χ. Σκουρλάς.
Άσκηση 9 (1 από 2) Ανακαλύψτε στο χάρτη σας μερικά χαρτογραφικά αντικείμενα που να ανήκουν στις παρακάτω κατηγορίες : φυσικά, τεχνητές κατασκευές, αφηρημένα.
Φιλοσοφία της Ιστορίας και του Πολιτισμού
Ο Πλάτων και ο Αριστοτέλης για την ψυχή
ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ Ενότητα 9 (PART A): Σχέση Ηθικής και Δικαιοσύνης
Τοπολογικές σχέσεις 1/3 Βρείτε και περιγράψτε τις τοπολογικές σχέσεις σύμφωνα με τους (Pantazis, Donnay 1996) για τα παρακάτω γεω-γραφικά αντικείμενα:
Κανονικοποίηση ΤΙ ΕΙΝΑΙ ; Τεχνική Διαδικασία
Επικοινωνιακός Προγραμματισμός Ι
Εικαστικές συνθέσεις - Χρώμα στο χώρο
Γενική και Μαθηματική Χαρτογραφία (Ε)
Οργάνωση και Διοίκηση Πρωτοβάθμιας (Θ)
Εισαγωγή στις εικαστικές τέχνες
Λιθογραφία – Όφσετ (Θ) Ενότητα 8.2: Εκτυπωτική Διαδικασία Μηχανής
Επικοινωνιακός Προγραμματισμός Ι
Τηλεοπτική και Ραδιοφωνική Παραγωγή
Αισθητική Σώματος Ι (Ε)
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας
Ειδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -E
Γενική και Μαθηματική Χαρτογραφία (Ε)
Αισθητική Σώματος Ι (Ε)
Μυθος και Τελετουργία στην Αρχαία Ελλάδα
Ενότητα 8: Συστήματα Υγείας στην Ευρώπη: Γαλλία
Eιδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -Θ
Συστήματα Θεματικής Πρόσβασης (Θ)
Γενικὴ Ἐκκλησιαστικὴ Ἱστορία Α´
Ανοσολογία (Ε) Ενότητα 3: Αιμοσυγκόλληση Πέτρος Καρκαλούσος
Γενική και Μαθηματική Χαρτογραφία (Ε)
Ενότητα 1: ……………….. Όνομα Επώνυμο Τμήμα __
Βάσεις Δεδομένων ΙΙ Ενότητα 6: Τεχνολογία PL/SQL - cursors Χ. Σκουρλάς
Ενότητα 5: Σχεδίαση βάσεων δεδομένων - Κανονικοποίηση Χ. Σκουρλάς
Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Δυτικής Αττικής
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

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

Περιγραφή Ενότητας Σκοπός του μαθήματος αυτού και κεντρικός σκοπός του μαθήματος των Βάσεων Δεδομένων Ι είναι η παρουσίαση των απαραίτητων εννοιών ώστε οι φοιτητές να κατανοήσουν την τεχνολογία υλοποίησης βάσεων δεδομένων. Γίνεται παρουσίαση, με τη βοήθεια παραδειγμάτων, της υλοποίησης µε γλώσσα SQL. Χ. Σκουρλάς

Στόχος Ενότητας Κύριος στόχος του μαθήματος είναι να εφοδιάσει τους φοιτητές µε εισαγωγικές γνώσεις έτσι ώστε να κατανοήσουν βασικά θέματα υλοποίησης απλών βάσεων με χρήση SQL. Λέξεις κλειδιά: Υλοποίηση σχεσιακής βάσης δεδομένων, SQL, MySQL, Oracle

Εισαγωγή στην υλοποίηση βάσεων δεδομένων Εισαγωγή στην υλοποίηση βάσεων δεδομένων Γλώσσα SQL Είναι η γλώσσα διαχείρισης βάσεων δεδομένων και περιλαμβάνει τρεις υπογλώσσες: 1) Γλώσσα Ορισμού Δεδομένων - DDL (Data Definition Language) CREATE TABLE – δημιουργία πίνακα, ALTER TABLE - αλλαγή στηλών πίνακα, DROP TABLE – διαγραφή πίνακα, CREATE INDEX – δημιουργία ευρετηρίου 2) Γλώσσα Χειρισμού Δεδομένων - DML (Data Manipulation Language): INSERT – εισαγωγή γραμμών, UPDATE – αλλαγή γραμμών, DELETE – διαγραφή γραμμών, SELECT – εμφάνιση γραμμών.

Εισαγωγή στην υλοποίηση βάσεων δεδομένων - SELECT Πρέπει να μάθετε να προγραμματίζετε βάσεις δεδομένων με τις εντολές της γλώσσας SQL: Είδατε σε κάποιο βάθος έως τώρα τις εντολές CREATE, INSERT. Τώρα θα τις χρησιμοποιήσουμε για να ορίσουμε μία βάση 4 πινάκων: emp–πίνακας με στοιχεία υπαλλήλων, dept- πίνακας με στοιχεία τμημάτων, project- πίνακας με στοιχεία έργων, assign- πίνακας που δείχνει σε ποια έργα εργάζονται οι υπάλληλοι. Μετά θα εστιάσουμε κυρίως στην εντολή SELECT.

Εισαγωγή στη χρήση της γλώσσας SQL και στον προγραμματισμό εφαρμογών βάσεων δεδομένων Θα χρησιμοποιήσουμε το Σχεσιακό Σύστημα (προϊόν) Διαχείρισης Βάσεως Δεδομένων (ΣΔΒΔ) της Oracle (http://www.oracle.com) και συγκεκριμένα τη συνιστώσα SQL*PLUS για την υλοποίηση σχεσιακής βάσης Διεύθυνσης Προσωπικού. Επιπλέον, θα χρησιμοποιήσουμε το Σχεσιακό Σύστημα (προϊόν) mySQL για την ίδια εφαρμογή.

SQL Η γλώσσα SQL είναι μία γλώσσα διαχείρισης βάσεων δεδομένων και περιλαμβάνει τρεις υπογλώσσες: τη Γλώσσα Ορισμού Δεδομένων - DDL (Data Definition Language), τη Γλώσσα Χειρισμού Δεδομένων - DML (Data Manipulation Language), τη Γλώσσα Ελέγχου Δεδομένων - DCL (Data Control Language).

project (πίνακας έργων) assign (πίνακας που καταχωρεί ποιοί υπάλληλοι απασχολούνται σε ποιά έργα) Empno Proj_code A_Time 10 100 40 200 60 15 20 30 project (πίνακας έργων) Proj_code Description 100 PAYROLL 200 PERSONNEL 300 SALES emp (πίνακας υπαλλήλων) Empno Ename Job Hiredate Mgr Sal Comm Deptno 10 Codd ANALYST 1/1/89 15 3000   Elmasri 2/5/95 1200 150 20 Navathe SALESMAN 7/7/77 2000 30 Date PROGRAMMER 4/5/04 1800 200 dept (πίνακας τμημάτων) Deptno Dname Loc 10 ACCOUNTING ATHENS 20 SALES LONDON 30 RESEARCH 40 PAYROLL

Δημιουργία Βάσης (χρήση ORACLE) /* Πρόγραμμα δημιουργίας της βάσης. */ SQL> EDIT e:CREATE.SQL Καλείται ο προκαθορισμένος screen editor του συστήματος και εκεί πληκτρολογούμε τις SQL εντολές δημιουργίας των πινάκων: /* Δημιουργία πινάκων */ CREATE TABLE DEPT(DEPTNO NUMBER(2) NOT NULL, DNAME VARCHAR2(14), LOC VARCHAR2(14), PRIMARY KEY(DEPTNO)); CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2), PRIMARY KEY(EMPNO), FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO)); Για να εκτελέσουμε το πρόγραμμα - script πληκτρολογούμε την παρακάτω εντολή. SQL> @e:CREATE.SQL

Πως βλέπουμε τις στήλες των πινάκων SQL> DESCR emp; Name Null? Type ----------------------------------------------------- -------- --------------- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) SQL> DESCR dept; DEPTNO NOT NULL NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13)

Εισαγωγή γραμμών (δεδομένων, στοιχείων) στους πίνακες /* Εντολές εισαγωγής στοιχείων */ SQL> EDIT A:INSERT.SQL /* Εισαγωγή στοιχείων στους πίνακες */ INSERT INTO DEPT(DEPTNO, DNAME, LOC) VALUES (10, 'ACCOUNTING', 'NEW YORK'); VALUES (20, 'RESEARCH', 'DALLAS'); VALUES (30, 'SALES', 'CHICAGO'); VALUES (40, 'OPERATIONS', 'BOSTON');

INSERT INTO EMP(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7369, 'SMITH', 'CLERK', 7902, '17/12/1980', 800, NULL, 20); VALUES (7499, 'ALLEN', 'SALESMAN', 7698, '20/02/1981', 1600, 300, 30); VALUES (7521, 'WARD', 'SALESMAN', 7698, '22/02/1981', 1250, 500, 30); VALUES (7566, 'JONES', 'MANAGER', 7839, '02/04/1981', 2975, NULL, 20); VALUES (7654, 'MARTIN', 'SALESMAN', 7698, '28/10/1981', 1250, 1400, 30); VALUES (7698, 'BLAKE', 'MANAGER', 7839, '01/05/1981', 2850, NULL, 30); VALUES (7782, 'CLARK', 'MANAGER', 7839, '09/06/1981', 2450, NULL, 10); VALUES (7788, 'SCOTT', 'ANALYST', 7566, '19/04/1987', 3000, NULL, 20); VALUES (7839, 'KING', 'PRESIDENT', NULL, '17/11/1981', 5000, NULL, 10); VALUES (7844, 'TURNER', 'SALESMAN', 7698, '08/10/1981', 1500, 0, 30); VALUES (7876, 'ADAMS', 'CLERK', 7788, '23/05/1987', 1100, NULL, 20); VALUES (7900, 'JAMES', 'CLERK', 7698, '03/12/1981', 950, NULL, 30); VALUES (7902, 'FORD', 'ANALYST', 7566, '03/12/1981', 3000, NULL, 20); VALUES (7934, 'MILLER', 'CLERK', 7782, '23/01/1982', 1300, NULL, 10); VALUES (7999, 'BATES', 'ANALYST', 7566, '23/01/2004', 1300, NULL, NULL); /* τέλος εντολών */ Για να εκτελέσουμε το πρόγραμμα πληκτρολογούμε την παρακάτω εντολή. SQL> @e:INSERT.SQL

SQL> EDIT e:SELECT. SQL SELECT. FROM EMP; SELECT SQL> EDIT e:SELECT.SQL SELECT * FROM EMP; SELECT * FROM DEPT; Για να εκτελέσουμε το πρόγραμμα πληκτρολογούμε την παρακάτω εντολή. SQL> @e:SELECT.SQL

Θυμηθείτε τις διαφορές στην υλοποίηση βάσεων δεδομένων – Oracle, mySQL

mySQL vs Oracle mySQL Oracle CREATE DATABASE new_personnel;   USE new_personnel; CREATE TABLE DEPT( DEPTNO INT(2) NOT NULL, DNAME VARCHAR(14), LOC VARCHAR(14)); DEPTNO NUMBER(2) NOT NULL, DNAME VARCHAR2(14), LOC VARCHAR2(14)); CREATE TABLE EMP( EMPNO INT(4) NOT NULL, ENAME VARCHAR(10), JOB VARCHAR(25), HIREDATE DATE, MGR INT(4), SAL FLOAT(7,2), COMM FLOAT(7,2), DEPTNO INT(2)); EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(25), MGR NUMBER(4), SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2)); INSERT INTO DEPT(DEPTNO, DNAME, LOC) VALUES (10, 'ACCOUNTING', 'NEW YORK'); INSERT INTO EMP VALUES (10, 'CODD', 'ANALYST', '1989/01/01', 15, 3000, NULL, 10); VALUES (10, 'CODD', 'ANALYST', '01/01/1989', 15, 3000, NULL, 10); SELECT * FROM EMP; SELECT * FROM DEPT; DROP TABLE EMP; DROP TABLE DEPT; DROP DATABASE NEW_PERSONNEL; SHOW TABLES; SELECT * FROM Tab;

Μοντέλο οντοτήτων συσχετίσεων με συμβολισμό Navathe-Elmasri (απλοποιημένο, συζήτηση για attribute mgr)

Μοντέλο οντοτήτων συσχετίσεων με συμβολισμό Navathe-Elmasri (απλοποιημένο)

Μοντέλο οντοτήτων συσχετίσεων με συμβολισμό Navathe-Elmasri (επέκταση με νέα οντότητα και άλλες μικροαλλαγές)

Δημιουργία της βάσης με mySQL Οι πίνακες δημιουργούνται με κύρια και ξένα κλειδιά CREATE DATABASE new_personnel; USE new_personnel; CREATE TABLE DEPT(DEPTNO INT(2) NOT NULL, DNAME VARCHAR(14), LOC VARCHAR(14), PRIMARY KEY(DEPTNO)); CREATE TABLE EMP(EMPNO INT(4) NOT NULL, ENAME VARCHAR(10), JOB VARCHAR(25), HIREDATE DATE, MGR INT(4), SAL FLOAT(7,2), COMM FLOAT(7,2), DEPTNO INT(2), PRIMARY KEY(EMPNO), FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO)); CREATE TABLE PROJ (projno INT(3) NOT NULL, pname VARCHAR(15), budget FLOAT(12,2), PRIMARY KEY(projno)); CREATE TABLE ASSIGN( EMPNO INT(4) NOT NULL, PROJNO INT(3) NOT NULL, PTIME INT(3), PRIMARY KEY(EMPNO,PROJNO), FOREIGN KEY(EMPNO) REFERENCES EMP(EMPNO), FOREIGN KEY(PROJNO) REFERENCES PROJ(PROJNO)); SHOW TABLES;

INSERT INTO DEPT(DEPTNO, DNAME, LOC) VALUES (10, 'ACCOUNTING', 'NEW YORK'); VALUES (20, 'RESEARCH', 'DALLAS'); VALUES (30, 'SALES', 'CHICAGO'); VALUES (40, 'OPERATIONS', 'BOSTON'); INSERT INTO EMP VALUES (10, 'CODD', 'ANALYST', '1989/01/01', 15, 3000, NULL, 10); VALUES (15, 'ELMASRI', 'ANALYST', '1995/05/02', 15, 1200, 150, 10); VALUES (20, 'NAVATHE', 'SALESMAN', '1977/07/07', 20, 2000, NULL, 20); VALUES (30, 'DATE', 'PROGRAMMER', '2004/05/04', 15, 1800, 200, 10); INSERT INTO proj(projno, pname, budget) VALUES(100, 'PAYROLL', 100000); INSERT INTO proj(projno, pname, budget) VALUES(200, 'PERSONNEL',200000 ); INSERT INTO proj(projno, pname, budget) VALUES(300, 'SALES', 150000); INSERT INTO assign(empno, projno, ptime) VALUES(10,100, 40); INSERT INTO assign(empno, projno, ptime) VALUES(10, 200, 60); INSERT INTO assign(empno, projno, ptime) VALUES(15, 100, 100); INSERT INTO assign(empno, projno, ptime) VALUES(20, 200, 100); INSERT INTO assign(empno, projno, ptime) VALUES(30, 100, 100);

Πως βλέπουμε τα δεδομένα SELECT * FROM DEPT; SELECT * FROM EMP; SELECT * FROM PROJ; SELECT * FROM ASSIGN; DROP TABLE assign; DROP TABLE emp; DROP TABLE proj; DROP TABLE dept; Η διαγραφή της βάσης γίνεται με την εντολή: DROP DATABASE NEW_PERSONNEL;

Εντολή SELECT Συνηθισμένη σύνταξη της εντολής SELECT:   SELECT ονόματα στηλών ή αριθμητικές εκφράσεις κ.λπ. FROM όνομα πίνακα ή ονόματα πινάκων WHERE συνθήκη ORDER BY όνομα_πίνακα.όνομα_στήλης ASC ή DESC ή τίποτα, κ.λπ. Παράδειγμα SELECT ename, job, sal+100 FROM emp WHERE job IN ('ANALYST', 'PROGRAMMER') AND sal>= 1000 AND sal<=7000 ORDER BY job, ename;

SELECT * FROM dept Deptno Dname loc 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 10 CODD ANALYST 15 01/01/1989 3000 - ELMASRI 02/05/1995 1200 150 20 NAVATHE SALESMAN 07/07/1977 2000 30 DATE PROGRAMMER 04/05/2004 1800 200 SELECT * FROM proj SELECT * FROM assign PROJNO PNAME BUDGET 100 PAYROLL 100000 200 PERSONNEL 200000 300 SALES 150000 EMPNO PROJNO PTIME 10 100 40 200 60 15 20 30

Αναζητήσεις που περιλαμβάνουν υπολογισμούς, πράξεις σε strings κλπ. Για να υπολογίσεις αθροίσματα, γινόμενα, μέσους όρους κλπ. μπορείς να χρησιμοποιήσεις κατά την επιλογή στηλών: 1) αριθμητικούς τελεστές (+, -, *, /), 2) συναρτήσεις (όπως NVL-Null Value, POWER-ύψωση σε δύναμη, ROUND-στρογγύλευση, TRUNC-αποκοπή, SUBSTR-substring, UPPER-μεταγραφή σε κεφαλαία, AVG-μέσος όρος κλπ), 3) παρενθέσεις, 4) τελεστή DISTINCT Οι συναρτήσεις συχνά διαφέρουν από προϊόν σε προϊόν: (MySQL) IFNULL, POWER, ROUND, TRUNCATE, SUBSTR/SUBSTRING, UPPER, AVG

Πως σχηματίζουμε σύνθετες συνθήκες σε υποπρόταση WHERE Τελεστές σύγκρισης, Aριθμητικοί, Boole, LIKE, NOT LIKE, BETWEEN ...AND, NOT BETWEEN ...AND, σύνολα (ΙΝ) Για να σχηματίσουμε συνθήκες μπορούμε να χρησιμοποιήσουμε: τελεστές σύγκρισης (>, <, >=, <=, != , <>,^ =), όπου οι τρεις τελευταίοι (ή και άλλοι ανάλογα με το προϊόν) συμβολίζουν το διάφορο. αριθμητικούς (+, -, /, *), τελεστές Boole (AND, OR, NOT), τελεστή LIKE ή NOT LIKE (π.χ. ENAME NOT LIKE '%ΑΣ'), τελεστές BETWEEN ...AND ή NOT BETWEEN ...AND (π.χ. SAL BETWEEN 2500 AND 3000) σύνολα τιμών (τελεστής ΙΝ) (π.χ. JOB IN ('ΠΩΛΗΤΗΣ', 'ΑΝΑΛΥΤΗΣ ΣΥΣΤΗΜΑΤΩΝ')), παρενθέσεις.

Πως σχηματίζουμε συνθήκες που περιλαμβάνουν υποαναζήτηση (SELECT) Για το σχηματισμό συνθήκης με υποαναζήτηση μπορείς να χρησιμοποιήσεις: τελεστές σύγκρισης (>, <, >=, <=, =, !=, <> , ^ =) τελεστές Boole (AND, OR, NOT) παρενθέσεις τελεστές ANY, ALL, IN, EXIST συναρτήσεις.

Αναζήτηση στοιχείων με διάταξη των αποτελεσμάτων - υποπρόταση ORDER Η συνηθισμένη μορφή σύνταξης της εντολής SELECT που ταξινομεί τα αποτελέσματα είναι: SELECT ονόματα στηλών ή αριθμητικές εκφράσεις των στηλών ή .. FROM όνομα πίνακα ή ονόματα πινάκων ή .... WHERE συνθήκη ORDER BY όνομα_πίνακα.όνομα_στήλης ASC ή DESC ή τίποτα, όνομα_πίνακα.όνομα_στήλης κτλ.;

Πίνακες στους οποίους θα δοκιμάσουμε τις εντολή SELECT Στήλες του Πίνακα emp. Στον πίνακα καταχωρίζουμε τα στοιχεία του υπαλλήλου. Empno-κωδικός υπαλλήλου, ename-όνομα υπαλλήλου, job-θέση υπαλλήλου, mgr-ποιος είναι ο επικεφαλής του υπαλλήλου, hiredate-ημερομηνία πρόσληψης, sal-μισθός, comm-προμήθεια, deptno-κωδικός τμήματος στο οποίο εργάζεται ο υπάλληλος Στήλες του Πίνακα dept. Στον πίνακα καταχωρίζουμε τα στοιχεία των τμημάτων. Deptno-κωδικός τμήματος, dname-όνομα τμήματος, loc-έδρα τμήματος

SELECT * FROM emp;   EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT * FROM dept; DEPTNO DNAME LOC --------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON

Διαγραφή πινάκων (oracle) /* Εντολές διαγραφής πινάκων */ SQL> EDIT e:DROP.SQL DROP TABLE EMP; DROP TABLE DEPT; /* τέλος εντολών */ Για να εκτελέσουμε το πρόγραμμα (script) πληκτρολογούμε την παρακάτω εντολή: SQL> @e:DROP.SQL

Δοκιμάστε τις εντολές SELECT Ποιό το αποτέλεσμα;

/. Να γράψετε απλές εντολές SELECT που θα βασίζονται σε ένα πίνακα /* Να γράψετε απλές εντολές SELECT που θα βασίζονται σε ένα πίνακα. Στις εντολές αυτές θα χρησιμοποιήσετε στοιχεία που φαίνονται στην παρακάτω γενική μορφή: SELECT απλές στήλες, τίτλους στα αποτελέσματα, πράξεις μεταξύ στηλών, συναρτήσεις, τελεστή DISTINCT FROM όνομα ενός πίνακα WHERE συνθήκη Οπού η συνθήκη ανάλογα και με την εντολή θα περιλαμβάνει παρενθέσεις, τελεστές Boole (AND,OR,NOT), BETWEEN … AND, LIKE, τελεστές σύγκρισης (>, <, >=, <=, <>),φωλιασμένη αναζήτηση ORDER BY κριτήρια ταξινόμησης;

Προσπαθήστε να προβλέψετε το αποτέλεσμα SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT empno, ename,job, sal FROM EMP WHERE job IN ('ANALYST', 'PROGRAMMER');

Αποτελέσματα εντολής SELECT SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT empno, ename,job, sal FROM EMP WHERE job IN ('ANALYST', 'PROGRAMMER');

Προσπαθήστε να προβλέψετε το αποτέλεσμα SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT empno, ename, job, sal FROM EMP WHERE job IN ('ANALYST', ‘SALESMAN');

Προσπαθήστε να προβλέψετε το αποτέλεσμα στις εντολές SELECT που ακολουθούν

SELECT empno "κωδικός",ename "όνομα",job "θέση", sal "αμοιβή", SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT empno "κωδικός",ename "όνομα",job "θέση", sal "αμοιβή", sal+NVL(comm, 0) "σύνολο" FROM EMP WHERE job IN ('ANALYST', 'PROGRAMMER') ORDER BY job, ename; SELECT empno "κωδικός",ename "όνομα",job "θέση", sal "αμοιβή", sal+NVL(comm, 0) "σύνολο" WHERE job='ANALYST' OR job='PROGRAMMER' MySQL: IFNULL

SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT AVG(sal), MIN(sal), MAX(sal), SUM(sal), COUNT(sal), SUM((sal+NVL(comm,0))), COUNT(sal), COUNT(*) FROM EMP; MySQL: IFNULL

WHERE job='ANALYST‘ OR job=‘SALESMAN‘ ; SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT AVG(sal), MIN(sal), MAX(sal), SUM(sal), COUNT(sal), SUM(sal), COUNT(sal), COUNT(comm), COUNT(*) FROM EMP WHERE job='ANALYST‘ OR job=‘SALESMAN‘ ;

SELECT AVG(sal), MIN(sal), MAX(sal), SUM(sal), COUNT(sal), SUM(sal), SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT AVG(sal), MIN(sal), MAX(sal), SUM(sal), COUNT(sal), SUM(sal), COUNT(sal), COUNT(*) FROM EMP WHERE job='ANALYST';

SELECT DISTINCT deptno, job ORDER BY deptno, job; SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT DISTINCT job FROM EMP ORDER BY job;   SELECT DISTINCT deptno, job ORDER BY deptno, job;

WHERE job IN ('ANALYST', 'PROGRAMMER') SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT ename, job, sal FROM EMP WHERE job IN ('ANALYST', 'PROGRAMMER') AND sal>= 1000 AND sal<=7000;   WHERE (job IN ('ANALYST', 'PROGRAMMER')) AND (sal>= 1300 OR sal+NVL(comm,0)>= 1500) ORDER BY job, ename, sal;

WHERE job IN ('ANALYST', 'PROGRAMMER') AND ename LIKE ‘%ES’ SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT ename, job, sal FROM EMP WHERE job IN ('ANALYST', 'PROGRAMMER') AND ename LIKE ‘%ES’ AND sal BETWEEN 1000 AND 7000;

--------- -------------- ------------- 10 ACCOUNTING NEW YORK SELECT * FROM emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7999 BATES ANALYST 7566 23-JAN-04 1300 SELECT * FROM dept; DEPTNO DNAME LOC --------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SELECT ename, job, sal, deptno FROM EMP WHERE sal > (SELECT MIN(sal) WHERE deptno IN (10, 20)) ORDER BY deptno, ename;

Τέλος Ενότητας Ερωτήσεις;

Σημειώματα

Σημείωμα Αναφοράς Copyright Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας, Χ. Σκουρλάς 2017. Χ. Σκουρλάς. «Βάσεις Δεδομένων Ι. Ενότητα 8: Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων ». Έκδοση: 3.0. Αθήνα 2017. Διαθέσιμο από τη δικτυακή διεύθυνση: pyles.teiath.gr.

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

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

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