Η Γλώσσα SQL. Μέρος β. Η Γλώσσα SQL Σελίδα 1
|
|
- Ευτέρπη Δασκαλόπουλος
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Η Γλώσσα SQL Μέρος β Η Γλώσσα SQL Σελίδα 1
2 SQL -- Πλήρης Μορφή select [ distinct ] target_list from tuple_variable_list [ where predicate ] [ group by grouping_attributes ] [ having group_condition ] [ order by target_list_subset ] Η Γλώσσα SQL Σελίδα 2
3 ιαγραφή - Deletion Εντολή DELETE delete from relation_name where-qualification SEMANTICS: Εκτέλεσε την ανάλογη SELECT εντολή και έπειτα διάγραψε τις πλειάδες του αποτελέσµατος από τη Σχέση Η Γλώσσα SQL Σελίδα 3
4 Παραδείγµατα ιαγραφής (1) Delete all account records at the Perryridge branch delete from account where branch-name = Perryridge Delete all accounts at every branch located in Needham city. delete from account where branch-name in (select branch-name from branch where branch-city = Needham ) delete from depositor where account-number in (select account-number from branch, account where branch-city = Needham and branch.branch-name = account.branch-name) Η Γλώσσα SQL Σελίδα 4
5 Παραδείγµατα ιαγραφής (2) Delete the record of all accounts with balances below the average at the bank. delete from account where balance < (select avg (balance) from account) Πρόβληµα: όσο σβήνουµε tuplesαπό το account,αλλάζει το µέσο υπόλοιπο λογαριασµού Λύση στην SQL: 1. Πρώτα υπολογίζεται το avg balance και βρίσκονται όλα τα tuplesπρος διαγραφή 2. Μετά σβήνουµε όλα τα tuples που βρήκαµε παραπάνω Η Γλώσσα SQL Σελίδα 5
6 Εισαγωγή - Insertion Εντολή INSERT insert into relation_name select-statement ή insert into relation_name values (value_list) Η Γλώσσα SQL Σελίδα 6
7 Παραδείγµατα Εισαγωγής (1) Πρόσθεσε νέο tuple στο account insert into account values ( A-9732, Perryridge,1200) ή ισοδύναµα: insert into account (branch-name, balance, account-number) values ( Perryridge, 1200, A-9732 ) Πρόσθεσε νέο tuple στο account µε balance ίσο µε null insert into account values ( A-777, Perryridge, null) Η Γλώσσα SQL Σελίδα 7
8 Παραδείγµατα Εισαγωγής (2) Provide as a gift for all loan customers of the Perryridge branch, a $200 savings account. Let the loan number serve as the account number for the new savings account insert into account select loan-number, branch-name, 200 from loan where branch-name = Perryridge insert into depositor select customer-name, loan-number from loan, borrower where branch-name = Perryridge and loan.account-number = borrower.account-number Το select from where αποτιµάται πριν τα αποτελέσµατά του να εισαχθούν στη σχέση (αλλιώς queries σαν αυτό insert into table1 select * from table1 θα δηµιουργούσαν πρόβληµα) Η Γλώσσα SQL Σελίδα 8
9 Εντολή UPDATE update relation_name set target_list where qualification Ενηµερώσεις - Update SEMANTICS: Εκτέλεσε την ανάλογη SELECT, διάγραψε τις πλειάδες και τέλος, κάνε εισαγωγή των νέων Η Γλώσσα SQL Σελίδα 9
10 Modification of the Database Updates Increase all accounts with balances over $10,000 by 6%, all other accounts receive 5%. Write two update statements: update account set balance = balance 1.06 where balance > Η σειρά έχει σηµασία update account set balance = balance 1.05 where balance Μπορεί να γίνει καλύτερα µε το case statement Η Γλώσσα SQL Σελίδα 10
11 Case Statement για Ενηµερώσεις υπό όρους Increase all accounts with balances over $10,000 by 6%, all other accounts receive 5%. update account set balance = case when balance <= then balance *1.05 else balance * 1.06 end Η Γλώσσα SQL Σελίδα 11
12 Data Definition Language (DDL) Επιτρέπει τον ορισµό σχέσεων αλλά και πληροφοριών για κάθε σχέση: Το σχήµα κάθε σχέσης Τα πεδία τιµών κάθε γνωρίσµατος Περιορισµούς ακεραιότητας είκτες που διατηρούνται για κάθε σχέση Πληροφορίες για ασφάλεια και εξουσιοδότηση για κάθε σχέση Τη δοµή αποθήκευση στον δίσκο για κάθε σχέση Η Γλώσσα SQL Σελίδα 12
13 SQL Data Definition H Γλώσσα Ορισµού (DDL) της SQL χρησιµοποιείται για CREATE DROP ALTER Η Γλώσσα SQL Σελίδα 13
14 Τύποι πεδίου τιµών στην SQL char(n): Συµβολοσειρά σταθερού µήκους n. varchar(n) : Συµβολοσειρά µεταβλητού µήκους µε µέγιστο µήκος n. int : Integer (machine-dependent). smallint : Small integer numeric(p,d): εκαδικός αριθµός σταθερής υποδιαστολής, µε p ψηφία και n ψηφία δεξιά από την υποδιαστολή real, double precision:κινητής υποδιαστολής και διπλής ακρίβειας αριθµοί (machine-dependent) float(n): Κινητής υποδιαστολής, µε ακρίβεια τουλάχιστον n ψηφίων Οι τιµές null επιτρέπονται σε όλους τους τύπους πεδίου τιµών Αν ένα γνώρισµα οριστεί not nullτότε απαγορεύονται οι τιµές null για το γνώρισµα αυτό Η Γλώσσα SQL Σελίδα 14
15 Τύποι Date/Time στην SQL date. Ηµεροµηνίες που περιέχουν (4 digit) year, month and date E.g. date time. Χρόνος σε ώρες, λεπτά, δευτερόλεπτα E.g. time 09:00:30 timestamp: ηµεροµηνία και ώρα E.g. timestamp :00:30.75 Interval: χρονική περίοδος E.g. Interval 1 day Η αφαίρεση ανάµεσα σε τιµές date/time/timestamp δίνουν interval Τιµές interval µπορούν να προστεθούν σε date/time/timestamp Εξαγωγή τιµών από µεµονωµένα πεδία του date/time/timestamp E.g. extract (year from r.starttime) cast string σε date/time/timestamp E.g. cast <string-valued-expression> as date Η Γλώσσα SQL Σελίδα 15
16 Ορισµός νέων τύπων πεδίου τιµών Το create domainστη SQL-92 ορίζει νέο τύπο (από άλλους υπάρχοντες) create domain person-name char(20) not null create domain Dollars numeric(12, 2) create domain Euros numeric(12,2) εν µπορούµε να συγκρίνουµε µια τιµή τύπου Dollars µε µια τιµή τύπου Euros. However, we can convert type as below (cast r.a as Pounds) (Should also multiply by the dollar-to-pound conversion-rate) Η Γλώσσα SQL Σελίδα 16
17 Περιορισµοί Πεδίου Τιµών Το check clause στην SQL-92 επιτρέπει επιπλέον περιορισµούς: Έλεγχος ότι ένα πεδίο τιµών επιτρέπει µόνο τιµές που είναι µεγαλύτερες από κάποιο ελάχιστο. create domain hourly-wage numeric(5,2) constraint value-test check(value > = 4.00) Το constraint value-testείναι προαιρετικό, αλλά χρήσιµο για να δείχνει που ενδεχοµένως γίνεται µια παραβίαση. Μπορεί να είναι αρκετά σύνθετο create domain AccountType char(10) constraint account-type-test check (value in ( Checking, Saving )) check (branch-name in (select branch-name from branch)) Η Γλώσσα SQL Σελίδα 17
18 Create Table Μια SQL σχέση ορίζεται µε την εντολή create table: create table r (A 1 D 1, A 2 D 2,..., A n D n, (integrity-constraint 1 ),..., (integrity-constraint k )) r το όνοµα της σχέσης Κάθε A i είναι το όνοµα ενός γνωρίσµατος στο σχήµα της σχέσης r D i είναι ο τύπος δεδοµένων των πεδίων τιµών του γνωρίσµατος A i Παράδειγµα: create table branch (branch-name branch-city assets char(15) not null, char(30), integer) Η Γλώσσα SQL Σελίδα 18
19 not null Περιορισµοί ακεραιότητας στο Create Table primary key (A 1,..., A n ) check (P),όπου Pένα predicate Παράδειγµα: Ορισµός branch-nameως πρωτεύοντος κλειδιού του branch και έλεγχος ότι οι τιµές των assets είναι θετικές create table branch (branch-name char(15), branch-city char(30) assets integer, primary key (branch-name), check (assets >= 0)) Ο ορισµός primary key σε ένα γνώρισµα αυτόµατα ορίζει και not null από την SQL-92 και µετά Η Γλώσσα SQL Σελίδα 19
20 Αναφορική Ακεραιότητα στην SQL Κύρια / Υποψήφια κλειδιά και αναφορική ακεραιότητα ορίζονται στην SQL µε την εντολή create table: Το primary key clause για γνωρίσµατα του κύριου κλειδιού. Tο unique key clause για γνωρίσµατα του υποψήφιου κλειδιού. Το foreign key clause για γνωρίσµατα του εξωτερικού κλειδιούκαι το όνοµα της σχέσης που αναφέρεται από το εξωτερικό κλειδί Ένα εξωτερικό κλειδί αναφέρεται στο κύριο κλειδί της αναφερόµενης σχέσης foreign key (account-number) references account Είναι δυνατή και η σύντµηση account-number char (10) references account Επίσης, µπορεί να γραφεί σε πλήρη µορφή (ρητή αναφορά σε γνώρισµα) Πάντα αναφέρεται σε κύριο ή υποψήφιο κλειδί foreign key (account-number) references account(account-number) Η Γλώσσα SQL Σελίδα 20
21 Αναφορική Ακεραιότητα στην SQL Παράδειγµα create table customer (customer-name char(20), customer-street char(30), customer-city char(30), primary key (customer-name)) create table branch (branch-name char(15), branch-city char(30), assets integer, primary key (branch-name)) create table account (account-number char(10), branch-name char(15), balance integer, primary key (account-number), foreign key (branch-name) references branch) create table depositor (customer-name char(20), account-number char(10), primary key (customer-name, account-number), foreign key (account-number) references account, foreign key (customer-name) references customer Η Γλώσσα SQL Σελίδα 21
22 Drop Table Η εντολή: drop table branch διαγράφει τον πλήρη πίνακα branch και τον ορισµό του (δεν είναι δυνατή πλέον η χρήση του για ενηµερώσεις, κλπ.) Η Γλώσσα SQL Σελίδα 22
23 Alter table H εντολή alter tableπροσθέτει νέα γνωρίσµατα σε υπάρχουσα σχέση alter table r add A D όπου Aτο όνοµα του attribute που θα προστεθεί στη σχέση r και D το domain του A. Όλες οι τιµές για τα νέα γνωρίσµατα είναι αρχικά null Αργότερα µπορούν να αλλάξουν µε την εντολή update H εντολή alter tableχρησιµοποιείται και για την αφαίρεση attributes alter table r drop A όπου A το όνοµα γνωρίσµατος της σχέσης r εν υποστηρίζεται από τις περισσότερες βάσεις Η Γλώσσα SQL Σελίδα 23
24 Περιορισµοί στο Σχεσιακό Μοντέλο Όταν υποστηρίζεται ένας περιορισµός ακεραιότητας, αρκετές ενέργειες πρέπει να γίνουν από το DBMS. Αυτές είναι, η διαδοχική τροποποίηση (cascade delete)και η διαδοχική ενηµέρωση (cascade update.) Μερικά DBMSs υποστηρίζουν άµεσα τα παραπάνω (Access) Άλλα DBMSs απαιτούν από τον χρήστη να γράψει triggers (διαδικασίες) για την υποστήριξη αυτών (SQL Server) Περιορισµοί Πεδίων υποστηρίζονται µερικώς (ενίοτε και από strong-typing ή άλλους ισχυρούς µηχανισµούς) Περιορισµοί που ορίζονται από τον Χρήστηέχουν περιληφθεί σε νεώτερες εκδόσεις της τυποποίησης της SQL (SQL-92) µε assertions (ειδικοί κανόνες) Η Γλώσσα SQL Σελίδα 24
25 Assertions - Παραδείγµατα Κάθε Υπάλληλος είναι είτε Άνδρας ή Γυναίκα CREATE ASSERTION gender CHECK Sex= m OR Sex= f Οι Μισθοί πρέπει να ξεπερνούν το 1,000,000 CREATE ASSERTION salary_bound CHECK Salary > Αν κάποιος επιχειρήσει την παρακάτω εισαγωγή: insert into EMPLOYEE (select Name= tom,.., Salary= , ) η εισαγωγή ΑΛΛΑΖΕΙ εµπεδώνοντας τον κανόνα assert σε: insert into EMPLOYEE (select Name= tom,.., Salary= where > ) Η Γλώσσα SQL Σελίδα 25
26 Assertions Παραδείγµατα (2) The sum of all loan amounts for each branch must be less than the sum of all account balances at the branch. create assertion sum-constraint check (not exists (select * from branch where (select sum(amount) from loan where loan.branch-name = branch.branch-name) >= (select sum(amount) from account where loan.branch-name = branch.branch-name))) Η Γλώσσα SQL Σελίδα 26
27 Triggers To triggerείναι µια εντολή που εκτελείται αυτόµατα από το σύστηµα σαν παρενέργεια (εκπυρσοκρότηση) µιας τροποποίησης της Βάσης εδοµένων Για να σχεδιαστεί ένας µηχανισµός trigger χρειάζεται να Γραφούν οι συνθήκες εκτέλεσης του trigger Γραφούν οι πράξεις που γίνονται όταν το trigger εκτελείται. Τα Triggers επίσηµα ορίστηκαν µε την τυποποίηση της SQL το 1999, αλλά προϋπήρχαν και σε παλαιότερα DBMS Τα Triggers ΕΝ ΣΥΝΙΣΤΑΝΤΑΙ (εκτός αν είναι απολύτως απαραίτητα) διότι µπορεί να έχουν αναπάντεχα αποτελέσµατα όταν δεν έχουν σχεδιαστεί καλά Η Γλώσσα SQL Σελίδα 27
28 Παράδειγµα Trigger στην SQL:1999 create trigger overdraft-trigger after update on account referencing new row as nrow for each row when nrow.balance < 0 begin atomic insert into borrower (select customer-name, account-number from depositor where nrow.account-number = depositor.account-number); insert into loan values (n.row.account-number, nrow.branch-name, nrow.balance); update account set balance = 0 where account.account-number = nrow.account-number end Η Γλώσσα SQL Σελίδα 28
29 Χρήση των triggers για Εξωτερικές πράξεις Π.χ., κάνε νέα παραγγελία για ένα προϊόν του οποίου η ποσότητα στην αποθήκη λιγοστεύει µετά από µια τροποποίηση. create trigger reorder-trigger after update of amount on inventory referencing old row as orow, new row as nrow for each row when nrow.level < = (select level from minlevel where minlevel.item = orow.item) and orow.level > (select level from minlevel where minlevel.item = orow.item) begin end insert into orders (select item, amount from reorder where reorder.item = orow.item) Η Γλώσσα SQL Σελίδα 29
30 ηµιουργία Ευρετηρίων στην SQL Στις περισσότερες περιπτώσεις µια Σχέση Βάσης αντιστοιχεί σε αποθηκευµένο αρχείο Η εντολή create index χρησιµοποιείται για τον προσδιορισµό ευρετηρίου (index) που έχει ονοµασία (index name) create index LN_INDEX on EMPLOYEE (Name); Για τον προσδιορισµό ενός περιορισµούευρετηρίου κλειδιούστο γνώρισµα (γνωρίσµατα) κλειδιού χρησιµοποιείται το UNIQUE create unique index S_IND on EMPLOYEE (SSN); Για τον προσδιορισµό ενός ευρετηρίου συστάδων (clustering index) χρησιµοποιείται το CLUSTER create index D_IN on EMPLOYEE(DNumber) cluster; Στα περισσότερα DBMS, κάποια παραλλαγή των B+-tree χρησιµοποιείται για την υλοποίηση ευρετηρίων Η Γλώσσα SQL Σελίδα 30
31 Σχεσιακές Όψεις και SQL Η αρχιτεκτονική 3-επιπέδων στα DBMS, έχει σαν αποτέλεσµα διαφορετικοί χρήστες να βλέπουν διαφορετικάεξωτερικά σχήµατα (όψεις) - αυτό επιτυγχάνεται στο σχεσιακό µοντέλο µε την έννοια του view External External External Schema 1 Schema 2... Schema N RELATIONAL VIEWS Conceptual Schema RELATIONAL DATABASE SCHEMA (RELATIONS) Internal Schema Η Γλώσσα SQL Σελίδα 31
32 Σχεσιακές Όψεις Ορισµός (1) Μια όψη (view) είναι µια Σχέση που ΕΝ είναι στοιχείο του Εννοιολογικού Σχήµατοςαλλά είναι προσβάσιµηως µια ιδεατή (virtual) σχέση Ο χρήστης δεν µπορεί να ξεχωρίσει αν µια Σχέση είναι Σχέση Βάσης ή είναι Όψη Η Όψη ΕΝ αποθηκεύεται (materialized) στην Βάση εδοµένων Τα περιεχόµενα της Όψης προσδιορίζονται από τον (αποθηκευµένο) ορισµό τηςσαν µια συνάρτηση των περιεχοµένων της Μια Όψη ορίζεται σε Σχέσεις Βάσης ή σε άλλες Όψεις µε κάποιο query Πράξεις (queries, ενηµερώσεις) σε Όψεις µεταφράζονται σε Πράξεις στις ορίζουσες (την Όψη) Σχέσεις Βάσης ΕΝ υπάρχουν περιορισµοί στα Queries σε Όψεις Ελάχιστες ενηµερώσεις σε Όψεις επιτρέπονται Μια Όψη αλλάζει δυναµικά µε τη Βάση δεδοµένων Η Γλώσσα SQL Σελίδα 32
33 Όψεις Μηχανισµός για να κρύψεις δεδοµένα από συγκεκριµένες οµάδες χρηστών. όπου: create view v [ ( view_column_list ) ] as <query expression> <query expression> οποιαδήποτε έκφραση Vτο όνοµα της όψης view_column_list τα νέα ονόµατα των γνωρισµάτων Η Γλώσσα SQL Σελίδα 33
34 Παράδειγµα όψης A view consisting of branches and their customers create view all-customer as (select branch-name, customer-name from depositor, account where depositor.account-number = account.account-number) union (select branch-name, customer-name from borrower, loan where borrower.loan-number = loan.loan-number) Find all customers of the Perryridge branch select customer-name from all-customer where branch-name = Perryridge Η Γλώσσα SQL Σελίδα 34
35 Παράδειγµα όψης (2) Μια Όψη είναι δυνατόν να έχει διαφορετικά γνωρίσµατα (νέα) από το Εννοιολογικό Σχήµα Πληροφορίες για υποκαταστήµατα Create view branch-info (branch-name, NoOfAccounts, AvgBalance) as select branch-name, COUNT(*), AVG(balance) from branch b, account a where b.branch-name = a. branch-name group by branch-name ; Η Γλώσσα SQL Σελίδα 35
36 Ενηµέρωση όψης ηµιούργησε ένα view όλων των πληροφοριών της σχέσης loan, κρύβοντας το γνώρισµα amount create view branch-loan as select branch-name, loan-number from loan Πρόσθεσε νέο tuple στο branch-loan insert into branch-loan values ( Perryridge, L-307 ) αυτή η εισαγωγή αντιστοιχεί µε την εισαγωγή του στο loan ( L-307, Perryridge, null) Ενηµερώσεις σε πιο πολύπλοκες όψεις είναι δύσκολο ή και αδύνατο να µεταφραστούν στο αρχικό σχήµα, οπότε απαγορεύονται Οι περισσότερες υλοποιήσεις της SQL επιτρέπουν ενηµερώσεις µόνο σε απλές όψεις που ορίζονται σε µια µόνο σχέση Η Γλώσσα SQL Σελίδα 36
37 Σχεσιακές Όψεις - Εκτέλεση Όπως ήδη ειπώθηκε, το σύστηµα µεταφράζει πράξεις σε όψεις σε πράξεις σε Σχέσεις Βάσης. Πώς; ΧΑΖΗ Προσπάθεια 1: ηµιούργησε (Materialize) την Όψη (προσωρινός πίνακας) και εκτέλεσε το query σε αυτήν. ΧΑΖΗ Προσπάθεια 2: Κράτα συνεχώς ενήµερη την Όψη -- δηλαδή, κράτησέ την δηµιουργηµένη (ονοµάζεται, snapshot) και όποτε σχετικές ενηµερώσεις γίνονται στις Σχέσεις Βάσης, τότε πέρασε αυτές και στην Όψη. Εκτέλεσε το query στο snapshot. ΣΩΣΤΗ Προσπάθεια: Άλλαξε το query αντικαθιστώντας την Όψη µε το query σε Σχέσεις Βάσης που την ορίζει, καιεκτέλεσε το query σε αυτές τις Σχέσεις Βάσης. Η Γλώσσα SQL Σελίδα 37
38 Σχεσιακές Όψεις Παραδείγµατα Εκτέλεσης Για παράδειγµα, το query στην Όψη branch-loan : select branch-name from branch-loan where loan-number = L-1212 Τροποποιείται ανάλογα και το παρακάτω query εκτελείται: select from branch-name loan where loan-number = L-1212 Η Γλώσσα SQL Σελίδα 38
39 Σχεσιακές Όψεις - Ενηµερώσεις Γενικά, υπάρχουν σοβαροί περιορισµοίστις ενηµερώσεις Μια ενηµέρωση Όψηςείναι αναµφίβοληαν µια µοναδική ενηµέρωσηστις Σχέσεις Βάσης µπορεί να εκπληρώσει το ζητούµενο αποτέλεσµα στην Όψη ΠΑΡΑΤΗΡΗΣΕΙΣ: Μια όψη που ορίζεται σε µια (ακριβώς) Σχέση Βάσης είναι ενηµερώσιµη αν τα γνωρίσµατα της Όψης περιέχουν το Κύριο Κλειδί Όψεις που ορίζονται σε πολλαπλές Όψεις είναι γενικά µη-ενηµερώσιµες Όψεις που περιέχουν Συναθροιστικές Συναρτήσεις είναι σίγουρα µηενηµερώσιµες Οι Ενηµερώσεις των Όψεων παραµένουν ένα ενδιαφέρον ανοικτό ερευνητικό θέµα / πρόβληµα (π.χ., Data Warehouses) Η Γλώσσα SQL Σελίδα 39
40 Σχεσιακές Όψεις - Σχόλια To WITH CHECK OPTION χρησιµοποιείται σε ενηµερώσιµες όψειςγια να αντιµετωπίσει το πρόβληµα των γραµµών που εξαφανίζονται (vanishing rows) Για παράδειγµα, θεωρήστε την Όψη: CREATE VIEW V AS select * from R where A = X Έστω η ενηµέρωση: UPDATE V set A = Y Η ενηµέρωση θα προχωρήσει κανονικά, αλλά οι πλειάδες που ήταν πριν προσβάσιµες στην V θα εξαφανιστούν! (προφανώς, δεν θα ικανοποιούν πλέον την συνθήκη της WHERE-πρότασης) Η Γλώσσα SQL Σελίδα 40
41 Εµφύτευση της SQL σε Γλώσσα Προγραµµατισµού Εντολές DML συχνάεµφυτεύονται σε προγράµµατα γλώσσας προγραµµατισµού (host) Η εµφυτευµένη SQL εντολή διακρίνεται από εντολές της Γλώσσας Προγραµµατισµού µε ειδικό τρόπο, π.χ. µε πρόθεµα Υπάρχουν δυο τρόποι εµφύτευσης: 1.- Επέκταση της Γλώσσας Προγραµµατισµού (αλλαγή του Compiler) Ενδεικτικά, RIGEL, MODULA-R, Gemstone, Orion, κλπ.) Ονοµάζονται database programming languages 2.- Χρήση ενός προ-επεξεργαστή της Γλώσσας για τις εντολές DML Ο προ-επεξεργαστής αντικαθιστά τις εντολές DML µε κλήσεις στην host γλώσσα, οι οποίες εκτελούνται Η Γλώσσα SQL Σελίδα 41
42 Εµφυτευµένη (Embedded) SQL Η SQL µπορεί να εµφυτευτεί σε πληθώρα γλωσσών προγραµµατισµού (Pascal, PL/I, Fortran, C, Cobol ). Η γλώσσα στην οποία εµφυτεύονται τα SQL queries λέγεται host language, και οι δοµές SQLπου επιτρέπονται στην host language λέγονται embedded SQL. EXEC SQL χρησιµοποιείται για να σηµατοδοτήσει ένα embedded SQL request στον preprocessor EXEC SQL <embedded SQL statement > END-EXEC Note: µπορεί να διαφέρει ανάλογα µε τη γλώσσα. π.χ. στην Java # SQL {. } ; Η Γλώσσα SQL Σελίδα 42
43 Εµφύτευση της SQL SQL εντολές καλούνται µέσα από ένα πρόγραµµα µιας host γλώσσας (π.χ., C ή COBOL) Οι εντολές της SQL µπορούν να αναφέρονται σε host µεταβλητές Πρέπει να περιλαµβάνουν µια εντολή γιασύνδεσµο µε την σωστή βάση. Οι SQL Σχέσεις είναι σύνολα εγγραφών, χωρίς προκαθορισµένο (a priori)όριο στον αριθµό των εγγραφών. εν υπάρχουν τέτοιες δοµές στην C! Για να αντιµετωπίσει αυτή την δυσκολία η SQL υποστηρίζει ένα µηχανισµό που λέγεται cursor Η Γλώσσα SQL Σελίδα 43
44 Cursors Η εντολή open έχει ως αποτέλεσµα την αποτίµηση ενός query EXEC SQL open c END-EXEC To fetch βάζει την τιµή ενός tuple του αποτελέσµατος στη µεταβλητή της host language EXEC SQL fetch c into :cn, :cc END-EXEC Επαναλαµβανόµενες κλήσεις της fetchφέρνουν διαδοχικά tuples του αποτελέσµατος Η εντολή close διαγράφει οποιαδήποτε προσωρινή σχέση της βάσης που κρατάει αποτελέσµατα του query. EXEC SQL close c END-EXEC Note: Οι λεπτοµέρειες µπορεί να διαφέρουν ανά γλώσσα.π.χ., στην Java έχουµε iterators Η Γλώσσα SQL Σελίδα 44
45 Παράδειγµα Μέσω host language, βρες τα ονόµατα και τις πόλεις των πελατών µε περισσότερα στον λογαριασµό τους από τη µεταβλητή amount Specify the query in SQL and declare a cursor for it EXEC SQL declare c cursor for select customer-name, customer-city from depositor, customer, account where depositor.customer-name = customer.customer-name and depositor account-number = account.account-number and account.balance > :amount END-EXEC Η Γλώσσα SQL Σελίδα 45
46 Updates Through Cursors Can update tuples fetched by cursor by declaring that the cursor is for update declare c cursor for select * from account where branch-name = Perryridge for update To update tuple at the current location of cursor update account set balance = balance where current of c Η Γλώσσα SQL Σελίδα 46
47 Εµφύτευση της SQL σε C -- Παράδειγµα char SQLSTATE[6]; EXEC SQL BEGIN DECLARE SECTION char c_nονοµα[20]; short c_minrating; float c_age; EXEC SQL END DECLARE SECTION c_minrating = random(); EXEC SQL DECLARE sinfo CURSOR FOR SELECT S.Ονοµα, S.age FROM ΝΑΥΤΙΚΟΣ S WHERE S.rating > :c_minrating ORDER BY S.Ονοµα; do { EXEC SQL FETCH sinfo INTO :c_ονοµα, :c_age; printf( %s is %d years old\n, c_nονοµα, c_age); } while (SQLSTATE!= ); EXEC SQL CLOSE sinfo; Η Γλώσσα SQL Σελίδα 47
48 υναµική SQL Επιτρέπει σε προγράµµατα να κατασκευάζουν και να στέλνουν SQL επερωτήσεις σε run time Παράδειγµα χρήσης δυναµικής SQL από ένα πρόγραµµα C char * sqlprog = update account set balance = balance * 1.05 where account-number =? EXEC SQL prepare dynprog from :sqlprog; char account [10] = A-101 ; EXEC SQL execute dynprog using :account; Το δυναµικό SQL πρόγραµµα περιέχει ένα?, που θα συµπληρωθεί από τον χρήστη όταν το SQL πρόγραµµα εκτελείται Η Γλώσσα SQL Σελίδα 48
49 API Βάσης εδοµένων: Εναλλακτικός της Εµφύτευσης τρόπος πρόσβασης Αντί να αλλάζει ο compiler, προστίθεται µια βιβλιοθήκη µε Κλήσεις στη Βάση εδοµένων (API) Application Programming Interface Ειδικές ιαδικασίες / Αντικείµενα Περνά τις SQL εντολές σαν character strings από τη γλώσσα και παρουσιάζει τα αποτελέσµατα µε φιλικό (για τη γλώσσα) τρόπο Το ODBC της Microsoft έχει γίνει το C/C++ standard στα Windows Το JDBC της SUN είναι το ανάλογο για τη Java Ανεξάρτητα του DBMS» Ένας οδηγός παγιδεύει τις κλήσεις και τις µεταφράζεισε κώδικα για το DBMS» Η Βάση µπορεί να είναι στο ίκτυο Η Γλώσσα SQL Σελίδα 49
50 ODBC Open DataBase Connectivity(ODBC) standard Standard για επικοινωνία εφαρµογής µε database server application program interface (API) για» Άνοιγµα σύνδεσης µε βάση,,» Αποστολή ερωτηµάτων και ενηµερώσεων,» Λήψη αποτελεσµάτων Applications such as GUI, spreadsheets, etc. can use ODBC Η Γλώσσα SQL Σελίδα 50
51 ODBC (Cont.) Κάθε σύστηµα που υποστηρίζει ODBC παρέχει µια βιβλιοθήκη "driver" που συνδέεται µε το πρόγραµµα του πελάτη Όταν το πρόγραµµα του πελάτη κάνει µια κλήση στο ODBC API, ο κώδικας στη βιβλιοθήκηεπικοινωνεί µε τον serverγια να εκτελέσει την πράξει που θέλει ο χρήστης και να ανακτήσει τα αποτελέσµατα Ανοίγει σύνδεση µε τη βάση µε SQLConnect().Παράµετροι για SQLConnect: connection handle, the server to which to connect the user identifier, password Η Γλώσσα SQL Σελίδα 51
52 JDBC Το JDBC είναι ένα Java API για επικοινωνία µε συστήµατα βάσεων που υποστηρίζουν SQL Υποστηρίζει αναζήτηση, ενηµέρωση και ανάκτηση δεδοµένων Υποστηρίζει ανάκτηση metadata, όπως ερωτήσεις για υπάρχουσες σχέσεις, ονόµατα και τύπους γνωρισµάτων Επικοινωνία µε τη βάση: Ανοίγει σύνδεση ηµιουργεί ένα αντικείµενο statement Εκτελεί ερωτήµατα χρησιµοποιώντας το αντικείµενο statement και ανακτά τα αποτελέσµατα Έχει µηχανισµούς exception για διαχείριση σφαλµάτων Η Γλώσσα SQL Σελίδα 52
53 JDBC Code public static void JDBCexample(String dbid, String userid, String passwd) { try { Class.forName ("oracle.jdbc.driver.oracledriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@aura.belllabs.com:2000:bankdb", userid, passwd); Statement stmt = conn.createstatement(); } Do Actual Work. stmt.close(); conn.close(); } catch (SQLException sqle) { System.out.println("SQLException : " + sqle); } Η Γλώσσα SQL Σελίδα 53
54 JDBC Code (Cont.) Update to database try { stmt.executeupdate( "insert into account values ('A-9732', 'Perryridge', 1200)"); } catch (SQLException sqle) { } System.out.println("Could not insert tuple. " + sqle); Execute query and fetch and print results ResultSet rset = stmt.executequery( "select branch_name, avg(balance) from account group by branch_name"); while (rset.next()) { System.out.println( rset.getstring("branch_name") + " " + rset.getfloat(2)); } Η Γλώσσα SQL Σελίδα 54
55 Μειονεκτήµατα των Host Programming Languages Ανάµιξη των ιαδικαστικώνκαι ηλωτικώνγλωσσών (το γνωστό language mismatchπρόβληµα) ιαφορετικοίπρο-επεξεργαστέςαπαιτούνται για διαφορετικές γλώσσες Οι Σχέσεις δεν αποτελούν πολίτες Α κατηγορίας στην γλώσσα (π.χ., µια Σχέση δεν περνιέται σαν παράµετρος σε διαδικασία) Η HOST γλώσσα πιθανόν να µην υποστηρίζει χρήσιµες δοµές (π.χ., η FORTRAN δεν υποστηρίζει εγγραφές) Οι database programming languagesκέρδισαν πολύ έδαφος, ειδικά σε object-oriented DBMSs Η Γλώσσα SQL Σελίδα 55
56 Μειονεκτήµατα της SQL Η SQL δεν υποστηρίζει strong typing, inheritance, etc. Οι SQL πίνακες ΕΝ ΕΙΝΑΙ ΣΧΕΣΕΙΣ (επιτρέπουν διπλές πλειάδες) Οι SQL πίνακες δεν εµφωλιάζονται (δεν αποτελούν τιµές για άλλους πίνακες) Η SQL δεν υποστηρίζει πολλές πράξεις, όπως: generalized restriction, division, forall Η SQL δεν υποστηρίζει 3-V logic (Λογική 3 τιµών αληθείας) Η SQL δεν υποστηρίζει συναρτησιακές εξαρτήσεις (functional dependencies) Η SQL δεν υποστηρίζει περιορισµούς ακεραιότητας σε Όψεις ΠΑΡΟΛΑ ΑΥΤΑ, η SQL είναι η STANDARD ΓΛΩΣΣΑ Η Γλώσσα SQL Σελίδα 56
57 Query-by-Example (QBE) Μια Γλώσσα για ερωταποκρίσεις που αναπτύχθηκε στην IBM (από τον Moshe Zloof) και παρουσιάζεται σε ένα προϊόν (QMF) (που είναι εναλλακτικός τρόπος διεπαφής για το DB2) Ευκολότερη από την SQL για τον µέσο χρήστη (ΟΠΤΙΚΗ και ΙΣ ΙΑΣΤΑΤΗ) ΚΕΝΤΡΙΚΗ Ι ΕΑ: Το Σύστηµα παρέχει στον χρήστη τη δυνατότητα να δει το περίγραµµα τωνσχέσεων στη Βάσηκαι ο Χρήστης συµπληρώνει τους πίνακες δίνοντας παραδείγµατα για το πώς θέλει να είναι η απάντηση Η Γλώσσα SQL Σελίδα 57
58 QBE ΣΥΝΟΨΗ Οι Αρχές της Γλώσσας Ο χρήστηςδεν απαιτείταινα θυµάταιτα ονόµατα των γνωρισµάτων και των σχέσεων Στην διατύπωση της ερωταπόκρισης, δεν απαιτείται να τηρούνται ανελαστικοί κανόνες Στηρίζεται στον σχεσιακό λογισµό πεδίου (µεταβλητές είναι οι στήλες) Σχεσιακά πλήρης διατύπωση Πως Λειτουργεί Σύµβολα µε _ να προηγείται, είναι µεταβλητές Σύµβολαχωρίς _ να προηγείταιείναι σταθερές (υποδηλώνουν µια συνθήκη για επιλογή - equality selection-condition) Το πρόσηµο P. χρησιµοποιείται για να υποδειχθεί ποια γνωρίσµατα θα τυπωθούν (υποδηλώνει µια προβολή - projection) Η Γλώσσα SQL Σελίδα 58
59 QBE Σύνοψη Η διαδικασία ιαδικασία ερωταπόκρισης Πρώτα, ο χρήστης διαλέγει τις σχέσεις (πίνακες) που χρειάζεται για το query Παρουσιάζονται τα περιγράµµατα των πινάκων που διαλέχτηκαν Ο χρήστης «πηγαίνει» στις κατάλληλες στήλες (µε ειδικά πλήκτρα) Τιµές-παραδείγµατα (µεταβλητές), σταθερές, κλπ., δακτυλογραφούνται Άλλοι συγκριτικοί τελεστές (πέραν της ισότητας που είναι αυτόµατη για σταθερές τιµές) πρέπει να δακτυλογραφηθούν (όπως, >, <, κλπ.) πιοπολύπλοκες συνθήκεςµπαίνουν σε ένακουτί-συνθηκών (condition box) Συνθήκες στην ίδια σειρά υποδηλώνουν το Boolean AND Συνθήκες σε διαφορετικές σειρές υποδηλώνουν το Boolean OR Η άρνηση (negation - Boolean NOT) προσδιορίζεται µε το σύµβολο Οι Συνενώσεις (JOINS)εκφράζονται µε τη χρήσηκοινών παραδειγµατικών τιµών σε πολλαπλούς πίνακες Η Γλώσσα SQL Σελίδα 59
60 QBE περιγράµµατα για το παράδειγµα της τράπεζας (1) Η Γλώσσα SQL Σελίδα 60
61 QBE περιγράµµατα για το παράδειγµα της τράπεζας (1) Η Γλώσσα SQL Σελίδα 61
62 Queries σε µια σχέση Find all loan numbers at the Perryridge branch. _x είναι µεταβλητή (προαιρετικό, µπορεί να παραληφθεί στο παραπάνω query) Το P. σηµαίνει δείξε (display) οι διπλές εγγραφές αφαιρούνται by default Για να διατηρηθούν τα διπλότυπα χρησιµοποιούµε P.ALL Η Γλώσσα SQL Σελίδα 62
63 Queries σε µια σχέση (2) είξε όλες τι λεπτοµέρειες των δανείων Method 1: P._x P._y P._z Method 2: Shorthand notation Η Γλώσσα SQL Σελίδα 63
64 Queries σε µια σχέση (3) Find the loan number of all loans with a loan amount of more than $700 Find names of all branches that are not located in Brooklyn Η Γλώσσα SQL Σελίδα 64
65 Queries σε πολλές σχέσεις (1) Find the names of all customers who have a loan from the Perryridge branch. Η Γλώσσα SQL Σελίδα 65
66 Queries σε πολλές σχέσεις (2) Find the names of all customers who have both an account and a loan at the bank. Η Γλώσσα SQL Σελίδα 66
67 Άρνηση στην QBE Find the names of all customers who have an account at the bank, but do not have a loan from the bank. means there does not exist Η Γλώσσα SQL Σελίδα 67
68 Άρνηση στην QBE Find all customers who have at least two accounts. means not equal to Η Γλώσσα SQL Σελίδα 68
69 Κουτί συνθηκών Επιτρέπει την έκφραση περιορισµών σε µεταβλητές πεδίου που δεν εκφράζονται (εύκολα) µε πίνακες-περιγράµµατα Περίπλοκες συνθήκες µέσα σε κουτιά συνθηκών E.g. Find the loan numbers of all loans made to Smith, to Jones, or to both jointly Η Γλώσσα SQL Σελίδα 69
70 Κουτί συνθηκών (2) Find all account numbers with a balance between $1,300 and $1,500 Find all account numbers with a balance between $1,300 and $2,000 but not exactly $1,500. Η Γλώσσα SQL Σελίδα 70
71 Η σχέση Result Find the customer-name, account-number, and balance for alll customers who have an account at the Perryridge branch. We need to:» Join depositor and account.» Project customer-name, account-number and balance. To accomplish this we:» Create a skeleton table, called result, with attributes customer-name, account-number, and balance.» Write the query. Η Γλώσσα SQL Σελίδα 71
72 The Result Relation (Cont.) The resulting query is: Η Γλώσσα SQL Σελίδα 72
73 Ordering the Display of Tuples AO = ascending order; DO = descending order. E.g. list in ascending alphabetical order all customers who have an account at the bank When sorting on multiple attributes, the sorting order is specified by including with each sort operator (AO or DO) an integer surrounded by parentheses. E.g. List all account numbers at the Perryridge branch in ascending alphabetic order with their respective account balances in descending order. Η Γλώσσα SQL Σελίδα 73
74 Aggregate Operations The aggregate operators are AVG, MAX, MIN, SUM, and CNT The above operators must be postfixed with ALL (e.g., SUM.ALL.or AVG.ALL._x) to ensure that duplicates are not eliminated. E.g. Find the total balance of all the accounts maintained at the Perryridge branch. Η Γλώσσα SQL Σελίδα 74
75 Aggregate Operations (Cont.) UNQ is used to specify that we want to eliminate duplicates Find the total number of customers having an account at the bank. Η Γλώσσα SQL Σελίδα 75
76 Query Examples Find the average balance at each branch. The G in P.G is analogous to SQL s group by construct The ALL in the P.AVG.ALL entry in the balance column ensures that all balances are considered To find the average account balance at only those branches where the average account balance is more than $1,200, we simply add the condition box: Η Γλώσσα SQL Σελίδα 76
77 Modification of the Database Deletion Deletion of tuples from a relation is expressed by use of a D. command. In the case where we delete information in only some of the columns, null values, specified by, are inserted. Delete customer Smith Delete the branch-city value of the branch whose name is Perryridge. Η Γλώσσα SQL Σελίδα 77
78 Modification of the Database Insertion Insertion is done by placing the I. operator in the query expression. Insert the fact that account A-9732 at the Perryridge branch has a balance of $700. Η Γλώσσα SQL Σελίδα 78
79 Modification of the Database Insertion (Cont.) Provide as a gift for all loan customers of the Perryridge branch, a new $200 savings account for every loan account they have, with the loan number serving as the account number for the new savings account. Η Γλώσσα SQL Σελίδα 79
80 Modification of the Database Updates Use the U. operator to change a value in a tuple without changing all values in the tuple. QBE does not allow users to update the primary key fields. Update the asset value of the Perryridge branch to $10,000,000. Increase all balances by 5 percent. Η Γλώσσα SQL Σελίδα 80
81 Microsoft Access QBE Microsoft Access supports a variant of QBE called Graphical Query By Example (GQBE) GQBE differs from QBE in the following ways Attributes of relations are listed vertically, one below the other, instead of horizontally Instead of using variables, lines (links) between attributes are used to specify that their values should be the same.» Links are added automatically on the basis of attribute name, and the user can then add or delete links» By default, a link specifies an inner join, but can be modified to specify outer joins. Conditions, values to be printed, as well as group by attributes are all specified together in a box called the design grid Η Γλώσσα SQL Σελίδα 81
82 Παράδειγµα σε Microsoft Access QBE Example query: Find the customer-name, account-number and balance for all accounts at the Perryridge branch Η Γλώσσα SQL Σελίδα 82
83 Κλείνοντας Η QBE είναι µια κοµψή και φιλική προς το χρήστη γλώσσα που βασίζεται στο σχεσιακό λογισµό πεδίου Είναι ιδιαίτερα εκφραστική (σχεσιακά πλήρης, αν και οι ενηµερώσεις ληφθούν υπόψη). Απλές ερωταποκρίσεις είναι εξαιρετικά εύκολο να εκφραστούν στην QBE, µε ένα ελάχιστο συντακτικό που πρέπει κανείς να θυµάται Η QBE Έχει επηρεάσει σε µεγάλο βαθµό τις γραφικές διευκολύνσεις για queries που σήµερα προσφέρονται σε πολλά προϊόντα, περιλαµβανοµένης και της Microsoft Access. Η Γλώσσα SQL Σελίδα 83
QUERY-BY-EXAMPLE. Η Γλώσσα SQL Σελίδα 1
QUERY-BY-EXAMPLE Η Γλώσσα SQL Σελίδα 1 Query-by-Example (QBE) Μια Γλώσσα για ερωταποκρίσεις που αναπτύχθηκε στην IBM (από τον Moshe Zloof) και παρουσιάζεται σε ένα προϊόν (QMF) (που είναι εναλλακτικός
Η Γλώσσα SQL. Μέρος β. Η Γλώσσα SQL Σελίδα 1
Η Γλώσσα SQL Μέρος β Η Γλώσσα SQL Σελίδα 1 Διαγραφή - Deletion Εντολή DELETE delete from relation_name where-qualification Σημασιολογία: Εκτέλεσε την ανάλογη SELECT εντολή και έπειτα διάγραψε τις πλειάδες
SQL Data Definition. REFERENCES (foreign key), CHECKκαι PRIMARY KEY (key)
Κεφάλαια 4, 4, 5, 5, 6 - Ορισµός Βάσεων εδοµένων µε SQL DDL -ΠεριορισµοίΑκεραιότηταςστην SQL -Περιβάλλοντα Χρήσης της SQL (API) - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. ΣχεσιακέςΓλώσσες Εµφύτευση /
Κεφάλαιο 5. Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.
Κεφάλαιο 5 Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.84 SQL Data Definition H Γλώσσα Ορισµού (DDL) της SQL χρησιµοποιείται
Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων
Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Περιορισμοί πεδίου τιμών Περιορισμοί ακεραιότητας
Κεφάλαιο 5. Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.
Κεφάλαιο 5 Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.90 SQL Data Definition H Γλώσσα Ορισµού (DDL) της SQL χρησιµοποιείται
(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2
Η Γλώσσα SQL (Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Η γλώσσα SQL H SQL έχει διάφορα τµήµατα: Γλώσσα Ορισµού εδοµένων (ΓΟ ) Γλώσσα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQL- Μέρος Β Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos
SQL: Συναρτήσεις Συνάθροισης
SQL: Συναρτήσεις Συνάθροισης Συναρτήσεις Συνάθροισης (Aggregate Functions) Εφαρμόζονται πάνω σε σύνολα τιμών γνωρισμάτων. count, max, min, avg, sum Περιορισμοί: η συνάρτηση count μπορεί να εφαρμοστεί σε
Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Query by Example QBE Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos CMU)
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με
H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων
Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού Δεδομένων (ΓΟΔ) Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ) Ενσωματωμένη
Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL Ευαγγελία Πιτουρά 1 Τι έχουμε δει Μοντελοποίηση Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)
Βελτιστοποίηση ερωτημάτων Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη
Βελτιστοποίηση ερωτημάτων Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Εισαγωγή (1) Εναλλακτικοί τρόποι για
H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων
H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων Πηγή διαφανειών Ε. Πιτουρά «Βάσεις Δεδομένων», A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5th edition Η γλώσσα SQL SQL αποτελείται από:
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Oracle SQL Developer An Oracle Database stores and organizes information. Oracle SQL Developer is a tool for accessing and maintaining the data
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 3ο Μάθημα: Εισαγωγή στην SQL Δρ. Κωνσταντίνος Χ. Γιωτόπουλος SQL Background SQL Structured Query Language Standard query γλώσσα για
Query-by-Example (QBE)
Φροντιστήριο 8 o Χειµερινό Εξάµηνο 2009-10 Τµήµα Μηχανικών Η/Υ και Πληροφορικής Πολυτεχνική Σχολή, Πανεπιστήµιο Πατρών Πέµπτη, 3 εκεµβρίου 2009 Τι είναι η QBE; Γλώσσα επερωτήσεων σε σχεσιακές ϐάσεις δεδοµένων
Η Γλώσσα SQL. Μέρος α. Η Γλώσσα SQL Σελίδα 1
Η Γλώσσα SQL Μέρος α Η Γλώσσα SQL Σελίδα 1 SQL - ΕΙΣΑΓΩΓΗ SQL (Structured Query Language) είναι η τυποποιηµένη standard γλώσσα στις Σχεσιακές Βάσεις. Η πρώτη χρήση ήταν στο πρότυπο σύστηµα της IBM, που
ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη
ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο SQL Examples Ξένου Ρουμπίνη 1 SQL-DDL Data Definition/Description Language (DDL): προσδιορίζουν τη δομή ή το σχήμα των δεδομένων.
ΣΧΕΣΙΑΚΟΣ ΛΟΓΙΣΜΟΣ. Tο Σχεσιακό Μοντέλο Σελίδα 1
ΣΧΕΣΙΑΚΟΣ ΛΟΓΙΣΜΟΣ Tο Σχεσιακό Μοντέλο Σελίδα 1 Τι θα δούµε Σχεσιακός Λογισµός Παραδείγµατα Σχεσιακή Πληρότητα Tο Σχεσιακό Μοντέλο Σελίδα 2 Εισαγωγή στον Σχεσιακό Λογισµό Ο Σχεσιακός Λογισµός (Relational
Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)
Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Παύλος Εφραιμίδης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1 SQL - Structured Query Language (1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης
Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)
Βάσεις Δεδομένων Η γλώσσα SQL Structured Query Language) Παύλος Εφραιμίδης SQL - Structured Query Language 1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης των Σχεσιακών ΒΔ Εξασφαλίζει μεταφερσιμότητα
Αρχεία και Βάσεις Δεδομένων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αρχεία και Βάσεις Δεδομένων Διάλεξη 11η: Περιορισμοί Ακεραιότητας - Κανονικές Μορφές Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Αποτελούν μηχανισμό για τον
Τμήμα Διοίκησης Επιχειρήσεων
Τμήμα Διοίκησης Επιχειρήσεων «Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα» «Σημειώσεις για την SQL» ΕΞΑΜΗΝΟ: ΣΤ Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Πάτρα, Νοέμβριος 2010 SQL Create Table Η CREATE TABLE
Η Γλώσσα SQL. Παράδειγμα ΒΔ (Τράπεζα)
Η Γλώσσα SQL Βασική δομή Συνήθεις τύποι ερωτημάτων Συνδέσεις (joins) Θεωρήσεις (views) και παραγόμενες σχέσεις Τροποποίηση της βάσης δεδομένων Η SQL ως γλώσσα ορισμού δεδομένων Ακεραιότητα δεδομένων Βασική
Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.
Κεφάλαιο 5 Η γλώσσα SQL 5.1 Εισαγωγή Η γλώσσα SQL (Structured Query Language) είναι η πιο διαδεδομένη διαλογική γλώσσα ερωταπαντήσεων που χρησιμοποιείται για την επικοινωνία του χρήστη με σχεσιακές ΒΔ.
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,
Σχεδιασμός Βάσεων Δεδομένων
Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 4 Δρ. Βασιλική Κούφη Περιεχόμενα Υλοποίηση Βάσεως Δεδομένων Εκτέλεση ερωτημάτων SQL στην Βάση Δεδομένων BHMA 1. Σχεδιασμός
Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Περιορισμοί Σχεσιακού Μοντέλου και Σχεσιακά Σχήματα Πράξεις Ενημερώσεων
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model SQL Μαθ. #11 Ε-R Model for a COMPANY database The COMPANY relational database schema A relational database instance of the COMPANY schema SQL Μια γλώσσα σχεσιακής βάσης
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:
Ενότητα 3: Σχεσιακό Μοντέλο. Από το ιδεατό στο λογικό (σχεσιακό) μοντέλο. Από το λογικό στο φυσικό (SQL) μοντέλο Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)
Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα) Μοντέλα, οµές (Σχήµα) και Αντιπρόσωποι (Data Models, Schema, and Instances) DBMS αρχιτεκτονική ιάφοροι τύποι γλωσσών και διεπαφές
ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων
ΗΓλώσσαSQL Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων Εισαγωγή Η δομημένη γλώσσα ερωτημάτων SQL (Structured Query Language) χρησιμοποιείται για τους χρήστες του ΣΔΒΔ
Κεφ 4: Προχωρημένες Εντολές SQL
Κεφ 4: Προχωρημένες Εντολές SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Σύνδεση σχέσεων (join) Οι λειτουργίες Join παίρνουν ως είσοδο δυο σχέσεις και επιστρέφουν
Βάσεις Δεδομένων (Databases)
Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Δημιουργία Πεδίων Ορισμού Πεδίο Ορισμού είναι συστατικό του σχήματος για τον ορισμό των μακροεντολών
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2012 SQL Structured Query Language Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Πράξεις της σχεσιακής άλγεβρας ΠΡΑΞΗ ΣΚΟΠΟΣ
Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1
Ενεργές ΒΔ Παύλος Εφραιμίδης pefraimi ee.duth.gr Βάσεις Δεδομένων Ενεργές ΒΔ 1 Active Databases Υποστηρίζουν την αυτόματη εκτέλεση ενεργειών όταν συμβούν συγκεκριμένα γεγονότα Ένας διαδεδομένος μηχανισμός
ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ
ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Πίνακας Πεδίο Τύπος Κύριο κλειδί Αναφορική ακεραιότητα οντοτήτων Ξένο κλειδί Αναφορική ακεραιότητα δεδομένων Δρ. Κεραμόπουλος Ευκλείδης 2 ΚΥΡΙΟ ΚΛΕΙΔΙ ΦΟΙΤΗΤΗΣ ΑΜ CHAR(5) ΟΝΟΜΑ VARCHAR(20)
Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών
Βάσεις Δεδομένων Ενότητα 6: Γλώσσα Structured Query Language -SQL Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Πληροφοριακά Συστήµατα
Nell Dale John Lewis Chapter 12 Πληροφοριακά Συστήµατα Στόχοι Ενότητας Η κατανόηση της έννοιας «Πληροφοριακό Σύστηµα» Επεξήγηση της οργάνωσης λογιστικών φύλλων (spreadsheets) Επεξήγηση της ανάλυσης δεδοµένων
Εισαγωγή στις βασικές έννοιες των Βάσεων εδοµένων
Εισαγωγή στις βασικές έννοιες των Βάσεων εδοµένων Βάσεις εδοµένων ΙΙ Μάθηµα 1 ο ιδάσκων: Μαρία Χαλκίδη *based on slides by Silberschatz, Korth and Sudarshan (Database System Concepts, 2001 ) Σύστηµα ιαχείρισης
Κεφάλαιο 3. ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ B Μέρος. Tο Σχεσιακό Μοντέλο Σελίδα 1
Κεφάλαιο 3 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ B Μέρος Tο Σχεσιακό Μοντέλο Σελίδα 1 Το Σχεσιακό Μοντέλο ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ Σχεσιακή Άλγεβρα Επέκταση της Σχεσιακής Άλγεβρας Παραδείγµατα Όψεις Κανόνες Ακεραιότητας Πράξεις Αλλαγών
Βάσεις Δεδομένων 2η εργαστηριακή άσκηση
Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Εισαγωγή στο περιβάλλον της oracle Δημιουργία πινάκων Δρ. Εύη Φαλιάγκα 1. Login Χρησιμοποιώντας έναν web explorer, μπαίνετε στο http://10.0.0.6:8080/apex και συμπληρώνετε
Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )
Department of Computer Science University of Cyprus EPL342 Databases Lecture 8: RM II Relational Model (Chapter 5.2-5.3) ιδάσκων: Παναγιώτης Ανδρέου http://www.cs.ucy.ac.cy/courses/epl342 8-1 Περιεχόμενο
ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:
ΘΕΜΑΤΑ Θέμα 1 ο Σε μία βάση δεδομένων χρηματιστηριακών συναλλαγών υπάρχουν οι παρακάτω πίνακες που αποτελούνται από τα εξής πεδία : : ΚΣ, ΗΜΝΙΑ, ΩΡΑ, ΚΜ, ΤΙΜΗ ΜΕΤΟΧΗ : ΚΜ, ΟΝΟΜΑ, ΕΤΟΣ_ΙΔΡΥΣΗΣ, ΚΚ, ΚΑΤΗΓΟΡΙΑ
Εισαγωγή στις βασικές έννοιες των Βάσεων Δεδομένων
Εισαγωγή στις βασικές έννοιες των Βάσεων Δεδομένων Σχεδιασμός Βάσεων Δεδομένων Μάθημα 1 ο Μαρία Χαλκίδη ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ Σχεσιακό Μοντέλο Κανονικοποίηση Μοντέλο Οντοτήτων-Σχέσεων Κύκλος ζωής Βάσεων
2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1
2 ο Σύνολο Ασκήσεων Οι βαθμοί θα ανακοινωθούν αύριο μαζί με τους βαθμούς της προγραμματιστικής άσκησης Τα αστεράκια δείχνουν τον εκτιμώμενο βαθμό δυσκολίας (*) εύκολο (**) μέτριο (***) δύσκολο Βάσεις Δεδομένων
Το σχεσιακό μοντέλο βάσεων δεδομένων
ΕΣΔ232 Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας Το σχεσιακό μοντέλο βάσεων δεδομένων Περιεχόμενα Περιεχόμενα - Βιβλιογραφία Ενότητας Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί
Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2
Η Γλώσσα SQL Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Η γλώσσα SQL What men or gods are these? What maidens loth? What mad pursuit? What struggle to escape? What pipes and timbrels? What wild ectasy?
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΤΡΙΤΟ Foreign key, Index, DML Ερωτήµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Foreign Key... 1 Index... 4 DML Ερωτήµατα... 6 INSERT...
ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor
ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται
Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr
Βάσεις δεδομένων (10 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Ευρετήρια Σκανδάλες PL/SQL Δείκτες/Δρομείς 2 Αποθήκευση δεδομένων Πρωτεύουσα αποθήκευση Κύρια μνήμη (main memory) ή κρυφή μνήμη
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Procedures and Functions Stored procedures and functions are named blocks of code that enable you to group and organize a series of SQL and PL/SQL
Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με
Βάσεις Δεδομένων (Databases)
Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) θεωρητικές Γλώσσες Ερωτήσεων (Formal Query Languages): Σχεσιακή Άλγεβρα Τελεστές Θεωρίας Συνόλων
ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL
ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΛΙΛΙΤΣΗΣ ΠΡΟΔΡΟΜΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών Βάσεων
Εργαστήριο Βάσεων Δεδομένων. Triggers
Εργαστήριο Βάσεων Δεδομένων Triggers CREATE TRIGGER Δήλωση δημιουργίας Trigger: CREATE [DEFINER = { user CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt
ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL
ΓΙΑΝΝΗΣ ΑΓΑΘΑΓΓΕΛΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL SQL SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών
Εισαγωγή στην πληροφορική
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 6: Εισαγωγή στις βάσεις δεδομένων (Μέρος Β) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης
Βάσεις δεδομένων. (8 ο μάθημα) Ηρακλής Βαρλάμης
Βάσεις δεδομένων (8 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα SQL (συνέχεια) Φωλιασμένες υπο-ερωτήσεις Δημιουργία όψεων Πράξεις ενημέρωσης και περιορισμοί 1/5/2014 Βάσεις Δεδομένων 2 Από το
Βάσεις Δεδομένων (Databases)
Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Περιεχόμενο Διάλεξης Κεφάλαιο 5: Το Σχεσιακό Μοντέλο Δεδομένων Περιορισμοί Σχεσιακού Μοντέλου
Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα
Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use Παράδειγμα Σχέσης attributes
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Views, Triggers Γιώργος Μαρκοµανώλης Περιεχόµενα Όψη... 1 ηµιουργία όψης... 2 Επιλογή CHECK... 3 Όψεις µόνο για εµφάνιση
ΙΚΤΥΩΤΟ ΜΟΝΤΕΛΟ (Network Model) Μαθ. # 15
ΙΚΤΥΩΤΟ ΜΟΝΤΕΛΟ (Network Model) Μαθ. # 15 DBTG Γλώσσα επεξεργασίας Σκελετός ενός προγράµµατος Βρες την εγγραφή FIND FIND...... FIND Ανάκτησε την τιµή εγγραφής στον κατάλληλο επίγραµµα τύπου GET RECORD
Εισαγωγή Mια από τις βασικές λειτουργίες ενός σχεσιακού συστήµατος διαχείρισης βάσεων δεδοµένων είναι η διαχείριση του πληροφοριακού περιεχοµένου που
ΤΕΙ ΑΘΗΝΩΝ ΣΧΟΛΗ Σ Ο ΤΜΗΜΑ ΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2009-2010 Η/Υ ΙΙΙ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ (Θεωρία) ΜΑΘΗΜΑ 4ο Η γλώσσα βάσεων δεδοµένων SQL, η γλώσσα QBE. Αθανασίου Ειρήνη, MSc 1 Εισαγωγή Mια
Οψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 55 Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη 1 3 η ενότητα: Εισαγωγή στις Βάσεις Δεδομένων και στην MySQL
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Stored procedures, Exceptions, ιακιώµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Stored Procedures... 1 Exceptions... 1 Εντολή
Η Γλώσσα SQL. What is the average salary in the Toy department? Anonymous SQL user
Η γλώσσα SQL Η Γλώσσα SQL What men or gods are these? What maidens loth? What mad pursuit? What struggle to escape? What pipes and timbrels? What wild ectasy? John Keats, Ode on a Grecian Urn What is the
ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις
10 η Διάλεξη Python Βάσεις δεδομένων στη python
10 η Διάλεξη Python Βάσεις δεδομένων στη python ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Η standard διεπαφη της python για βάσεις δεδομένων βασίζεται στο DB-API Python Database API υποστηρίζει ένα ευρύ φάσμα βάσεων δεδομένων
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2 Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Φεβρουάριος 2008 Περιεχόμενα SQL Language
Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)
Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο JDBC JDBC is a set of classes and interfaces written in Java that allows Java programs to send SQL statements to a database like Oracle JDBC
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQLΜέρος Α Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...
Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.
Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/
SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)
Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη My (1) Η (Structured Query Language) είναι μια πλήρης γλώσσα Βάσεων Δεδομενων Είναι δομημένη σε βάσεις που περιέχουν πίνακες Οι πίνακες αποτελούνται από γραμμές
Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004
Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Θέλουµε να φτιάξουµε µια βάση στην οποία θα καταχωρούνται οι φοιτητές του τµήµατος Μαθηµατικών,
Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Βάσεις Δεδομένων Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr Βασικές πράξεις της Σχεσιακής Αλγεβρας Σχεσιακό Μοντέλο Δεδομένων Ορισμός Βάσης
Θεωρία Κανονικοποίησης
Θεωρία Κανονικοποίησης Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Βασική
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10 Πράξεις Αλλαγής εδοµένων INSERT (εισαγωγή) Αυτός ο τελεστής παρέχει µια λίστα από πεδία τιµών για µια καινούργια πλειάδα η οποία θα εισαχθεί σε µια σχέση R
Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι
Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/
Διάλεξη 18: Προγραμματισμός Βάσης Δεδομένων ΙΙ. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 18: Προγραμματισμός Βάσης Δεδομένων ΙΙ Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Σκανδάλες (Triggers) σε TSQL Ευρετήρια (Indexes) σε TSQL Εισαγωγή στον διαδικαστικό
ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη
ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη 1 SQL(DML) - Query Example 1 Query:1 Βρείτε τα ονόματα των έργων που δεν αφορούν το τμήμα research
ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ
ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Μία διαδικασία την οποία δηλώνει ο Διαχειριστής της Βάσης Δεδομένων και η οποία ενεργοποιείται αυτόματα από το ΣΔΒΔ κάθε φορά που συμβαίνουν μεταβολές ορισμένου τύπου στα δεδομένα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Περιορισμοί Ακεραιότητας (Integrity Constraints) Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6 Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Φεβρουάριος 2008 Περιεχόμενα JOIN συνέχεια
Βάσεις Δεδομένων (Databases)
Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Δομημένη Γλώσσα Ερωτήσεων SQL - DDL SQL Περίληψη SQL Τύποι δεδομένων DDL Δηλώσεις - Εντολές
SQL Data Manipulation Language
SQL Data Manipulation Language Τελεστής union συνδυάζει subselects τα οποία παράγουν συμβατές σχέσεις γενική μορφή: subselect {union [all] subselect} περιορισμός: τα subselects δεν μπορούν να περιέχουν
S Q Q L L -- SQL (Structured Query Language) select insert update delete 2.47
Κεφάλαιο 4 Η Γλώσσα SQL και Σχεσιακός Λογισµός Ι.Β. Σχεσιακός Λογισµός και η Γλώσσα SQL Σελίδα 2.46 SQL -ΕΙΣΑΓΩΓΗ SQL (Structured Query Language) είναι η τυποποιηµένη standard γλώσσα στις Σχεσιακές Βάσεις.
Ηλεκτρονικοί Υπολογιστές II
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Όψεις (views) στην SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
SQL. Πριν µια σύντοµη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τµήµατα: Γλώσσα Χειρισµού εδοµένων (ΓΧ )
Εισαγωγή Πως θα υλοποιήσουµε (προγραµµατίσουµε) την εφαρµογή µας χρησιµοποιώντας ένα σχεσιακό Σ Β : SQL Γλώσσα Ορισµού (του σχήµατος) Γλώσσα Χειρισµού εδοµένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή πλειάδων)
Προσοµοίωση τροχιάς σε Oracle Spatial 8i DBMS
Στη συνέχεια παρατίθενται ορισµένα συµπληρωµατικά στοιχεία σχετικά µε την προσοµοίωση της τροχιάς κινούµενων αντικειµένων, όπως υλοποιήθηκε σε περιβάλλον Oracle Spatial 8i DBMS. i. ηµιουργία της δοµής
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Αρχιτεκτονική
9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):
9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers Σκοπός της παρούσας εργαστηριακής άσκησης, είναι η εξοικείωση του σπουδαστή με τη δημιουργία αποθηκευμένων διαδικασιών (Stored Procedures) και σκανδάλης