07. Ottimizzare le istruzioni SQL
|
|
- Fausta Falcone
- 8 anni fa
- Visualizzazioni
Transcript
1 07. Ottimizzare le istruzioni SQL
2 Introduzione Union, subquery e Join Il piano di esecuzione L ottimizzatore Le statistiche Il comando EXPLAIN Gli Hint A.A Laboratorio di basi di dati - LB 2
3 La UNION (1) L operazione di UNION esegue l unione insiemistica di 2 query aventi le stesse colonne (numero e tipo). A.A Laboratorio di basi di dati - LB 3
4 La UNION (2) La UNION DISTINCT (è il default), ritorna l unione dei due insiemi senza duplicati. La UNION ALL, ritorna l unione dei due insiemi, senza effettuare la DISTINCT. A.A Laboratorio di basi di dati - LB 4
5 La UNION: ESEMPIO (1) select empno, ename from emp; empno ename bianchi 2 rossi 3 neri A.A Laboratorio di basi di dati - LB 5
6 La UNION: ESEMPIO (2) select mgrno, mgrname from manager; mgrno mgrname bianchi A.A Laboratorio di basi di dati - LB 6
7 La UNION: ESEMPIO (3) SELECT empno, ename FROM emp UNION DISTINCT SELECT mgrno, mgrname FROM manager; La clausola DISTINCT è opzionale. A.A Laboratorio di basi di dati - LB 7
8 La UNION: ESEMPIO (4) empno ename rossi 1 bianchi 3 neri rows in set (0.00 sec) La riga (1,bianchi) è ripetuta una sola volta (la UNION effettua la distinct) A.A Laboratorio di basi di dati - LB 8
9 La UNION: ESEMPIO (5) SELECT empno, ename FROM emp UNION ALL SELECT mgrno, mgrname FROM manager; A.A Laboratorio di basi di dati - LB 9
10 La UNION: ESEMPIO (6) empno ename rossi 1 bianchi 3 neri 1 bianchi rows in set (0.00 sec) La riga (1,bianchi) è ripetuta 2 volte (la UNION ALL non effettua la distinct) A.A Laboratorio di basi di dati - LB 10
11 Le subquery Una subquery è una query annidata (interna) in un altra query (esterna). Sono supportate in mysql a partire dalla versione >= 4.1. A.A Laboratorio di basi di dati - LB 11
12 Subquery semplici Una subquery che viene eseguita una sola volta per tutte le righe della query esterna è detta subquery semplice. Normalmente viene utilizzata con l operatore di uguaglianza (=) A.A Laboratorio di basi di dati - LB 12
13 Le SUBQUERY semplici : un ESEMPIO SELECT * FROM emp WHERE deptno=(select max(deptno) FROM dept); A.A Laboratorio di basi di dati - LB 13
14 Subquery correlate/dipendenti Una subquery che fa riferimento alle colonne della query esterna è detta correllata o dipendente. Viene eseguita n volte una per ogni riga della query esterna. Normalmente viene utilizzata con gli operatori IN, EXISTS A.A Laboratorio di basi di dati - LB 14
15 Le SUBQUERY dipendenti : un ESEMPIO SELECT * FROM emp e WHERE EXISTS ( SELECT 1 FROM dept d WHERE d.deptno=e.deptno); A.A Laboratorio di basi di dati - LB 15
16 Subquery derivate Una subquery utilizzata nella clausola FROM di una query esterna. E necessario assegnare un alias alla subquery. A.A Laboratorio di basi di dati - LB 16
17 Le SUBQUERY derivate : un ESEMPIO SELECT AVG(s.summed_salary) FROM (SELECT sum(salary) summed_salary FROM emp GROUP BY deptno) s; A.A Laboratorio di basi di dati - LB 17
18 Il Join Consente di selezionare e confrontare dati presenti in diverse tabelle con un unica operazione di SELECT. La condizione di join (quando presente) mette in relazione colonne comuni di 2 o più tabelle, tipicamente colonne legate da una Foreign-Key. A.A Laboratorio di basi di dati - LB 18
19 Il Join: la sintassi Esistono 2 sintassi (largamente diffuse ed utilizzate) per scrivere una operazione di join: Theta-style ANSI-style A.A Laboratorio di basi di dati - LB 19
20 Il Join: theta-style (1) Le tabelle in join sono elencate nella clausola FROM separate dalla, (virgola). All interno della clausola WHERE sono espresse sia le condizioni di join che altre eventuali condizioni di filtro. A.A Laboratorio di basi di dati - LB 20
21 Il Join: theta-style (2) NON permette l outer join (se non tramite estensioni non ANSI). E stato largamente utilizzato come sintassi standard dall rdbms oracle fino alla versione 9. A.A Laboratorio di basi di dati - LB 21
22 Theta-style join: un ESEMPIO SELECT e.ename, d.descr FROM emp e, dept d WHERE e.deptno=d.deptno AND e.ename like B% ; A.A Laboratorio di basi di dati - LB 22
23 Il Join: ansi-style (1) Le tabelle in join sono elencate nella clausola FROM separate dalla clausola JOIN. La clausola ON è utilizzata per esprimere le condizioni di join. La clausola WHERE è utilizzata per altre, eventuali, condizioni di filtro. A.A Laboratorio di basi di dati - LB 23
24 Il Join: ansi-style (2) E supportato da tutti i maggiori rdbms (alcuni hanno estensioni proprietarie). Permette tutti i tipi di join. A.A Laboratorio di basi di dati - LB 24
25 Ansi-style join: un ESEMPIO SELECT e.ename, d.descr FROM emp e JOIN dept d ON e.deptno=d.deptno WHERE e.ename like B% ; A.A Laboratorio di basi di dati - LB 25
26 I diversi tipi Join (1) L operazione di join può essere di tipo diverso a secondo di come le tabelle sono messe in join e di come sono trattate le righe che non soddisfano la condizione di join. A.A Laboratorio di basi di dati - LB 26
27 I diversi tipi Join (2) CROSS JOIN Non viene specificata alcuna condizione di join, ossia viene effettuato il prodotto cartesiano delle tabelle. INNER JOIN Vengono restituite solo le righe che soddisfano la condizione di join. A.A Laboratorio di basi di dati - LB 27
28 I diversi tipi Join (3) LEFT (OUTER) JOIN Vengono restituite tutte le righe della left-table che soddisfano o meno la condizione di join. Per le righe che non soddisfano la condizione di join, le colonne della right-table sono impostate a NULL. RIGHT (OUTER) JOIN Speculare al left-join. A.A Laboratorio di basi di dati - LB 28
29 I diversi tipi Join (4) FULL JOIN Vengono restituite tutte le righe delle tabelle in join, che soddisfano o meno la condizione di join. Per le righe che non soddisfano la condizione di join, le colonne della left/right-table sono impostate a NULL. NON è supportato come ANSI sql. A.A Laboratorio di basi di dati - LB 29
30 I diversi tipi Join (5) NATURAL JOIN La condizione di join è data dall uguaglianza di tutte le colonne in comune. E una estensione NON ANSI di Mysql. La query dipende dalla struttura delle tabelle (dalle colonne in comune). SELF JOIN Le tabella viene messa in join con se stessa. A.A Laboratorio di basi di dati - LB 30
31 tipi di join: un ESEMPIO (1) SELECT * FROM emp; empno ename deptno rossi 15 1 bianchi 10 3 bassi A.A Laboratorio di basi di dati - LB 31
32 tipi di join: un ESEMPIO (2) SELECT * FROM dept; deptno descr dept sales 20 dept A.A Laboratorio di basi di dati - LB 32
33 cross join: un ESEMPIO (1) SELECT e.ename, d.descr FROM emp e CROSS JOIN dept d WHERE d.descr like D% ; La clausola CROSS è opzionale. A.A Laboratorio di basi di dati - LB 33
34 cross join: un ESEMPIO (2) ename descr rossi dept 10 bianchi dept 10 bassi dept 10 rossi dept 20 bianchi dept 20 bassi dept Viene restituito il prodotto cartesiano. A.A Laboratorio di basi di dati - LB 34
35 inner join: un ESEMPIO (1) SELECT e.ename, d.descr FROM emp e JOIN dept d ON e.deptno=d.deptno WHERE d.descr like D% ; A.A Laboratorio di basi di dati - LB 35
36 inner join: un ESEMPIO (2) ename descr bianchi dept 10 bassi dept Vengono restituite le sole righe che hanno un match. A.A Laboratorio di basi di dati - LB 36
37 rigth outer join: ESEMPIO (1) SELECT e.ename, d.descr FROM emp e RIGHT OUTER JOIN dept d ON e.deptno=d.deptno WHERE d.descr like D% ; La clausola OUTER è opzionale. La colonna e.ename assumerà NULL per tutte le righe di dept che non soddisfano la condizione di join. A.A Laboratorio di basi di dati - LB 37
38 rigth outer join: ESEMPIO (2) ename descr bianchi dept 10 bassi dept 10 dept Vengono restituite le matching row e le non matching con le colonne della left-table a NULL. A.A Laboratorio di basi di dati - LB 38
39 natural join: un ESEMPIO (1) SELECT e.ename, d.descr FROM emp e NATURAL JOIN dept d WHERE d.descr like D% ; La condizione implicita di join è: e.deptno=d.deptno NON è ANSI SQL (ma una estensione di mysql) A.A Laboratorio di basi di dati - LB 39
40 natural join: un ESEMPIO (2) ename descr bianchi dept 10 bassi dept La condizione implicita di join è: e.deptno=d.deptno NON è ANSI SQL (ma una estensione di mysql) A.A Laboratorio di basi di dati - LB 40
41 self join: un ESEMPIO (1) SELECT e2.empno, e2.ename FROM emp e1 JOIN emp e2 ON e1.deptno=e2.deptno WHERE e1.ename = BIANCHI ; A.A Laboratorio di basi di dati - LB 41
42 self join: un ESEMPIO (2) empno ename bianchi 3 bassi A.A Laboratorio di basi di dati - LB 42
43 I diversi algoritmi di join Nested Loop Join Sort Merge Join Hash Join (*) (*) Non sono trattati nel corso. A.A Laboratorio di basi di dati - LB 43
44 Il Nested Loop Join E l unico algoritmo supportato da MySql Si definisce outer-table / driving-table la tabella esterna, ed inner-table la tabella interna. Per ogni riga della outer-table si cercano tutte le righe della inner-table che soddisfano la condizione di join. A.A Laboratorio di basi di dati - LB 44
45 Il Sort Merge Join NON è supportato da MySql Le due tabelle vengono prima ordinate rispetto alle colonne presenti nella condizione di join e successivamente vengono unite le righe delle 2 tabelle che soddisfano la condizione di join. A.A Laboratorio di basi di dati - LB 45
46 Quando utilizzare il Nested Loop Join (1) La query restituisce un numero limitato di righe. L obiettivo della query è minimizzare il tempo di restituzione della prima riga. Almeno una delle tabelle coinvolte nel join è piccola (rispetto alle dimensioni della cache). A.A Laboratorio di basi di dati - LB 46
47 Quando utilizzare il Nested Loop Join (2) Esiste un indice selettivo sulle colonne utilizzate nella condizione di join di almeno una delle 2 tabelle. La tabella con indice selettivo deve essere scelta come inner-table ed acceduta tramite l indice. La outer-table, normalmente, viene acceduta in full-table-scan. A.A Laboratorio di basi di dati - LB 47
48 Quando utilizzare il Sort MergeJoin(1) La query restituisce un numero grande di righe. L obiettivo della query è minimizzare il tempo di restituzione di tutte le righe. Le tabelle coinvolte nel join sono grandi (rispetto alla dimensione della cache). A.A Laboratorio di basi di dati - LB 48
49 Quando utilizzare il Sort MergeJoin(2) Se esistono degli indici selettivi sulle colonne utilizzate nella condizione di join può essere conveniente utilizzarli (per non effettuare il sort delle tabelle). A.A Laboratorio di basi di dati - LB 49
50 ESEMPIO: il Nested Loop Join T_DEPT T_OFFICE Per ogni riga della tabella T_DEPT viene scandita la tabella T_OFFICE ricercando un match (o viceversa). A.A Laboratorio di basi di dati - LB 50
51 ESEMPIO: il Sort Merge Join T_DEPT T_OFFICE Le tabelle T_DEPT e T_OFFICE vengono prima ordinate (rispetto alla colonna di join) e poi vengono unite le righe che rispettano la condizione di join. A.A Laboratorio di basi di dati - LB 51
52 Il linguaggio SQL E un linguaggio NON procedurale A.A Laboratorio di basi di dati - LB 52
53 Le fasi di un istruzione SQL PARSE BIND EXECUTE FETCH A.A Laboratorio di basi di dati - LB 53
54 L esecuzione di istruzioni SQL Per essere eseguita un istruzione SQL deve essere compilata e deve essere prodotto il codice eseguibile (detto piano di esecuzione). A.A Laboratorio di basi di dati - LB 54
55 Il piano di esecuzione E l insieme dei passi elementari che permettono l esecuzione di una istruzione SQL. Ogni istruzione ha diversi possibili piani di esecuzione. A.A Laboratorio di basi di dati - LB 55
56 L ottimizzatore (1) E il modulo dell rdbms che si occupa di determinare il miglior piano di esecuzione possibile di uno statement SQL. A.A Laboratorio di basi di dati - LB 56
57 L ottimizzatore (2) L ottimizzatore per poter determinare il piano di esecuzione migliore ha bisogno di conoscere le caratteristiche degli oggetti coinvolti nell istruzione SQL. A.A Laboratorio di basi di dati - LB 57
58 Le statistiche (1) Sono necessarie per conoscere la cardinalità e la distribuzione dei dati. E fondamentale che le statistiche siano mantenute aggiornate. A.A Laboratorio di basi di dati - LB 58
59 Le statistiche (2) Numero di righe Numero di valori distinti per ogni colonna (distribuzione uniforme) Dimensione della tabella/indice Lunghezza media delle colonne A.A Laboratorio di basi di dati - LB 59
60 Collezionare le statistiche ANALYZE TABLE <nome-tabella>; Il comando ANALYZE colleziona le statistiche per la tabella e per tutti gli indici definiti sulla tabella. Per InnoDB, il comando ANALYZE colleziona statistiche su un campione dei dati, quindi non esatte. A.A Laboratorio di basi di dati - LB 60
61 I limiti dell ottimizzatore E possibile che l ottimizzatore NON determini il migliore piano di esecuzione. Le istruzioni SQL devono essere ottimizzate da chi le scrive e non ci si deve affidare all ottimizzatore. A.A Laboratorio di basi di dati - LB 61
62 Il comando EXPLAIN (1) Permette di visualizzare il piano di esecuzione di una SELECT. MySql non permette di visualizzare il piano di esecuzione di una DML o di una DDL. A.A Laboratorio di basi di dati - LB 62
63 Il comando EXPLAIN (2) Altri rdbms hanno una implementazione diversa del comando EXPLAIN. Il comando EXPLAIN contiene dettagli che dipendono sia dall rdbms che dalla versione scelta. A.A Laboratorio di basi di dati - LB 63
64 EXPLAIN: esempio (1) CREATE TABLE t1 (a INT,b VARCHAR(20)); INSERT INTO t1 VALUES (1, a ); INSERT INTO t1 VALUES (2, b ); CREATE INDEX ix1_t1 ON t1(a); EXPLAIN SELECT * FROM t1 WHERE a=1 \G A.A Laboratorio di basi di dati - LB 64
65 EXPLAIN: esempio (2) ************** 1. row ************* id: 1 select_type: SIMPLE table: T1 type: ref possible_keys: IX1_T1 A.A Laboratorio di basi di dati - LB 65
66 EXPLAIN: esempio (3) key: IX1_T1 key_len: 5 ref: const rows: 1 Extra: Using where 1 row in set (0.01 sec) A.A Laboratorio di basi di dati - LB 66
67 EXPLAIN: le informazioni (1) Una query è composta da n passi, ossia da n query elementari. Data una query il comando EXPLAIN ritorna n righe, una per ogni passo da effettuare per portare a termine la query stessa. Ogni riga contiene le informazioni di dettaglio su come il singolo passo viene eseguito. A.A Laboratorio di basi di dati - LB 67
68 EXPLAIN: le informazioni (2) ID = identificativo select SELECT_TYPE = ruolo TABLE = nome tabella TYPE = tipo di accesso POSSIBLE_KEYS = indici possibili A.A Laboratorio di basi di dati - LB 68
69 EXPLAIN: le informazioni (3) KEY = indice utilizzato KEY_LEN = lunghezza chiave REF = colonne/valori per selezionare la chiave ROWS = numero di righe EXTRA = altro A.A Laboratorio di basi di dati - LB 69
70 EXPLAIN: ID Identificativo (progressivo) della select all interno dell intera query. Il suo significato è cambiato rispetto alla versione < 5.0. A.A Laboratorio di basi di dati - LB 70
71 EXPLAIN: SELECT_TYPE (1) Identifica il ruolo del singolo passo, ossia la sua funzione all interno della query principale. A.A Laboratorio di basi di dati - LB 71
72 EXPLAIN: SELECT_TYPE (2) SIMPLE query semplice (che non usa UNION o subquery). PRIMARY query più esterna. A.A Laboratorio di basi di dati - LB 72
73 EXPLAIN: SELECT_TYPE (3) UNION seconda (o successiva) select in una UNION. DEPENDENT UNION seconda (o successiva) select in una UNION, dipendente da una query esterna. UNION RESULT il risultato di una UNION. A.A Laboratorio di basi di dati - LB 73
74 EXPLAIN: SELECT_TYPE (4) SUBQUERY subquery semplice. DEPENDENT SUBQUERY subquery dipendente da una query esterna. DERIVED subquery in una FROM. A.A Laboratorio di basi di dati - LB 74
75 ESEMPIO (1): SELECT_TYPE=SIMPLE EXPLAIN SELECT * FROM emp WHERE empno=2\g A.A Laboratorio di basi di dati - LB 75
76 ESEMPIO (2): SELECT_TYPE=SIMPLE *********** 1. row ***** id: 1 select_type: SIMPLE table: EMP type: const possible_keys: PRIMARY key: PRIMARY key_len: 4 ref: const rows: 1 Extra: A.A Laboratorio di basi di dati - LB 76
77 ESEMPIO (1): SELECT_TYPE=PRIMARY EXPLAIN SELECT * FROM emp WHERE deptno= (SELECT max(deptno) FROM dept)\g A.A Laboratorio di basi di dati - LB 77
78 ESEMPIO (2): SELECT_TYPE=PRIMARY *********** 1. row ***** id: 1 select_type: PRIMARY table: emp... *********** 2. row ***** id: 2 select_type: SUBQUERY table: NULL... A.A Laboratorio di basi di dati - LB 78
79 ESEMPIO: (1) SELECT_TYPE=UNION EXPLAIN SELECT * FROM emp UNION ALL SELECT * FROM manager \G A.A Laboratorio di basi di dati - LB 79
80 ESEMPIO: (2) SELECT_TYPE=UNION *********** 1. row ****** id: 1 select_type: PRIMARY table: emp... *********** 2. row ****** id: 2 select_type: UNION table: manager A.A Laboratorio di basi di dati - LB 80
81 ESEMPIO: (3) SELECT_TYPE=UNION *********** 3. row ****** id: NULL select_type: UNION RESULT table: <union1,2>... A.A Laboratorio di basi di dati - LB 81
82 ESEMPIO: (1) SELECT_TYPE=SUBQUERY EXPLAIN SELECT * FROM emp WHERE deptno=(select max(deptno) FROM dept)\g A.A Laboratorio di basi di dati - LB 82
83 ESEMPIO: (2) SELECT_TYPE=SUBQUERY *********** 1. row ***** id: 1 select_type: PRIMARY table: emp... *********** 2. row ***** id: 2 select_type: SUBQUERY table: dept... A.A Laboratorio di basi di dati - LB 83
84 ESEMPIO: (1) SELECT_TYPE = DEPENDENT SUBQUERY EXPLAIN SELECT * FROM emp e WHERE EXISTS ( SELECT 1 FROM dept d WHERE d.deptno=e.deptno)\g A.A Laboratorio di basi di dati - LB 84
85 ESEMPIO: (2) SELECT_TYPE = DEPENDENT SUBQUERY *********** 1. row ***** id: 1 select_type: PRIMARY table: e... *********** 2. row ***** id: 2 select_type: DEPENDENT SUBQUERY table: d... A.A Laboratorio di basi di dati - LB 85
86 ESEMPIO: (1) SELECT_TYPE=DERIVED EXPLAIN SELECT AVG(s.summed_salary) FROM (SELECT sum(salary) summed_salary FROM emp GROUP BY deptno) s \G A.A Laboratorio di basi di dati - LB 86
87 ESEMPIO: (2) SELECT_TYPE=DERIVED *********** 1. row ***** id: 1 select_type: PRIMARY table: <derived2>... *********** 2. row ***** id: 2 select_type: DERIVED table: emp... A.A Laboratorio di basi di dati - LB 87
88 EXPLAIN: TYPE (1) Identifica il tipo di accesso effettuato sulla tabella del passo n-esimo, ossia informazioni di dettaglio su come la tabella viene acceduta. A.A Laboratorio di basi di dati - LB 88
89 EXPLAIN: TYPE (2) ALL si accede a tutte le righe di una tabella, ossia in FULL TABLE SCAN. INDEX si accede a tutte le chiavi di un indice, ossia in FULL INDEX SCAN. A.A Laboratorio di basi di dati - LB 89
90 EXPLAIN: TYPE (2) RANGE si accede alla tabella tramite un indice per un range di valori possibili. CONST una sola riga soddisfa le condizioni. La tabella viene acceduta una sola volta all interno dell intera query. A.A Laboratorio di basi di dati - LB 90
91 EXPLAIN: TYPE (3) EQ_REF la tabella ha una matching-row per ogni riga ritornata al passo precedente (quando in un join la tabella viene acceduta tramite una PK). REF la tabella ha più matching-row per ogni riga ritornata al passo precedente, (quando in un join la tabella viene acceduta tramite un indice non univoco). A.A Laboratorio di basi di dati - LB 91
92 EXPLAIN: TYPE (4) INDEX_MERGE si accede alla tabella utilizzando più indici e poi si effettua il merge degli stessi per recuperare le righe richieste. E utilizzato quando all interno della condizione di WHERE ci sono delle espressioni in AND/OR. Questa feature è disponibile dalla versione >= 5.0, in precedenza ogni singolo passo poteva utilizzare un solo indice. A.A Laboratorio di basi di dati - LB 92
93 ESEMPIO: (1) TYPE=ALL EXPLAIN SELECT distinct(ename) FROM emp \G *********** 1. row ***** id: 1 select_type: SIMPLE table: emp type: ALL possible_keys: NULL key: NULL... A.A Laboratorio di basi di dati - LB 93
94 ESEMPIO: (1) TYPE=INDEX EXPLAIN SELECT count(*) FROM emp \G *********** 1. row ***** id: 1 select_type: SIMPLE table: emp type: index possible_keys: NULL key: PRIMARY... A.A Laboratorio di basi di dati - LB 94
95 ESEMPIO: (1) TYPE=RANGE EXPLAIN SELECT * FROM emp WHERE empno BETWEEN 10 AND 100 \G *********** 1. row ***** id: 1 select_type: SIMPLE table: EMP type: range possible_keys: PRIMARY key: PRIMARY... A.A Laboratorio di basi di dati - LB 95
96 ESEMPIO: (1) TYPE=CONST EXPLAIN SELECT * FROM emp WHERE empno=2\g *********** 1. row ***** id: 1 select_type: SIMPLE table: EMP type: const possible_keys: PRIMARY key: PRIMARY... A.A Laboratorio di basi di dati - LB 96
97 ESEMPIO: (2) TYPE=CONST EXPLAIN SELECT * FROM emp WHERE deptno = (SELECT deptno FROM dept WHERE deptno=7) \G A.A Laboratorio di basi di dati - LB 97
98 ESEMPIO: (3) TYPE=CONST *********** 1. row ***** id: 1 select_type: PRIMARY table: EMP... *********** 2. row ***** id: 2 select_type: SUBQUERY table: dept type: const possible_keys: PRIMARY key: PRIMARY... A.A Laboratorio di basi di dati - LB 98
99 ESEMPIO: (1) TYPE=EQ_REF EXPLAIN SELECT /*! STRAIGHT_JOIN */ * FROM emp e, dept d WHERE e.deptno=d.deptno \G A.A Laboratorio di basi di dati - LB 99
100 ESEMPIO: (2) TYPE=EQ_REF *********** 1. row ***** id: 1 select_type: SIMPLE table: e... *********** 2. row ***** id: 2 select_type: SIMPLE table: d type: eq_ref possible_keys: PRIMARY key: PRIMARY... A.A Laboratorio di basi di dati - LB 100
101 ESEMPIO: (1) TYPE=REF EXPLAIN SELECT /*+ STRAIGHT_JOIN */ * FROM dept d, emp e WHERE e.deptno=d.deptno \G A.A Laboratorio di basi di dati - LB 101
102 ESEMPIO: (2) TYPE=REF *********** 1. row ***** id: 1 select_type: SIMPLE table: d... *********** 2. row ***** id: 2 select_type: SIMPLE table: e type: ref possible_keys: FK_EMP_DEPT key: FK_EMP_DEPT... A.A Laboratorio di basi di dati - LB 102
103 ESEMPIO: (1) TYPE=INDEX_MERGE EXPLAIN SELECT * FROM emp /*! FORCE INDEX (PRIMARY,fk_emp_dept) */ WHERE empno=10 or deptno=20 \G A.A Laboratorio di basi di dati - LB 103
104 ESEMPIO: (2) TYPE=INDEX_MERGE *********** 1. row ***** id: 1 select_type: SIMPLE table: emp type: index_merge possible_keys: PRIMARY,fk_emp_dept key: PRIMARY,fk_emp_dept key_len: 4,5 ref: NULL rows: 2 Extra: Using union... A.A Laboratorio di basi di dati - LB 104
105 EXPLAIN: POSSIBLE_KEYS/KEY POSSIBLE_KEYS La lista degli indici che possono essere utilizzati per portare a termine la singola query. KEY La lista degli indici effettivamente utilizzati per portare a termine la singola query. A.A Laboratorio di basi di dati - LB 105
106 ESEMPIO: (1) POSSIBLE_KEYS/KEY EXPLAIN SELECT * FROM emp WHERE empno=10 or deptno=20 \G A.A Laboratorio di basi di dati - LB 106
107 ESEMPIO: (2) POSSIBLE_KEYS/KEY *********** 1. row ***** id: 1 select_type: SIMPLE table: emp type: ALL possible_keys: PRIMARY,fk_emp_dept key: NULL key_len: NULL ref: NULL... Gli indici PRIMARY e fk_emp_dept NON sono utilizzati. A.A Laboratorio di basi di dati - LB 107
108 EXPLAIN: ROWS ROWS il numero di righe che mysql crede di dover esaminare per eseguire la query. A.A Laboratorio di basi di dati - LB 108
109 EXPLAIN: EXTRA (1) Contiene informazioni di dettaglio su come viene eseguito il singolo passo. Nelle prossime slide vengono elencati i valori più significativi. A.A Laboratorio di basi di dati - LB 109
110 EXPLAIN: EXTRA (2) USING FILESORT Viene utilizzato un file temporaneo per effettuare un ordinamento. USING TEMPORARY Viene utilizzata una tabella temporanea per memorizzare i risultati parziali. A.A Laboratorio di basi di dati - LB 110
111 EXPLAIN: EXTRA (3) USING INDEX Viene utilizzato il solo indice per recuperare le informazioni richieste. Non è necessario accedere alla tabella. USING WHERE Viene utilizzata una condizione di where come filtro per restituire le sole righe richieste. A.A Laboratorio di basi di dati - LB 111
112 ESEMPIO: (1) EXTRA=USING FILESORT EXPLAIN SELECT * FROM emp ORDER BY ename\g La select è costretta ad effettuare un sort perché non esiste un indice sulla colonna (ENAME). A.A Laboratorio di basi di dati - LB 112
113 ESEMPIO: (2) EXTRA=USING FILESORT *********** 1. row ***** id: 1 select_type: SIMPLE table: emp type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 3 Extra: Using filesort A.A Laboratorio di basi di dati - LB 113
114 ESEMPIO: (1) EXTRA=USING TEMPORARY EXPLAIN SELECT DISTINCT ename FROM emp WHERE deptno=10\g La select utilizza una tabella temporanea per poter effettuare la DISTINCT, perchè non esiste un indice sulle colonne (DEPTNO,ENAME). A.A Laboratorio di basi di dati - LB 114
115 ESEMPIO: (2) EXTRA=USING TEMPORARY *********** 1. row ***** id: 1 select_type: SIMPLE table: emp type: ref possible_keys: fk_emp_dept key: fk_emp_dept key_len: 5 ref: const rows: 1 Extra: Using where; Using temporary A.A Laboratorio di basi di dati - LB 115
116 ESEMPIO: (1) EXTRA=USING INDEX EXPLAIN SELECT deptno FROM emp WHERE deptno >= 10\G La select utilizza il solo indice per recuperare i dati, NON deve accedere alla tabella. A.A Laboratorio di basi di dati - LB 116
117 ESEMPIO: (2) EXTRA=USING INDEX *********** 1. row ***** id: 1 select_type: SIMPLE table: emp type: index possible_keys: fk_emp_dept key: fk_emp_dept key_len: 5 ref: NULL rows: 3 Extra: Using where; Using index A.A Laboratorio di basi di dati - LB 117
118 Tuning delle istruzioni SQL Scrivere istruzioni SQL semplici. Verificare i piani di esecuzione. Ottimizzare l accesso alla singola tabella. Ottimizzare l ordine dei passi. Riscrivere la query. A.A Laboratorio di basi di dati - LB 118
119 Scrivere istruzioni SQL semplici Istruzioni SQL con una logica complessa sono difficili da ottimizzare e da manutenere. Query complesse sono il risultato di una progettazione fisica non corretta (mancata denormalizzazione). A.A Laboratorio di basi di dati - LB 119
120 Verificare i piani di esecuzione E fondamentale, per ogni query, verificare i piani di esecuzione per ottimizzare gli accessi. I piani di esecuzione possono essere forzati mediante l uso di HINT. A.A Laboratorio di basi di dati - LB 120
121 Ottimizzare l accesso alla singola tabella (1) Un accesso per indice è preferibile se la quantità dei dati selezionati è inferiore al 10% (del totale), altrimenti è preferibile un full table scan. La percentuale varia a secondo della engine. Per MyIsam è conveniente un accesso per indice fino al 30% delle righe selezionate. A.A Laboratorio di basi di dati - LB 121
122 Ottimizzare l accesso alla singola tabella (2) Per tabelle con poche righe è, normalmente, preferibile un accesso in full table scan. Se necessario/conveniente aggiungere degli indici per selezionare e ordinare i dati. A.A Laboratorio di basi di dati - LB 122
123 Nota La tabella EMP utilizzata negli esempi successivi ha un elevato numero di righe (circa ), mentre la tabella DEPT è di dimensioni ridotte ( < 100). A.A Laboratorio di basi di dati - LB 123
124 Ottimizzare l accesso alla singola tabella: un esempio (1) DESC emp; Field Type Null Key empno int(11) PRI ename varchar(255) YES deptno int(11) YES MUL A.A Laboratorio di basi di dati - LB 124
125 Ottimizzare l accesso alla singola tabella: un esempio (2) SELECT * FROM emp WHERE ename LIKE 'nome14045%'; empno ename deptno nome row in set (1.76 sec) A.A Laboratorio di basi di dati - LB 125
126 Ottimizzare l accesso alla singola tabella: un esempio (3) EXPLAIN SELECT * FROM emp WHERE ename LIKE 'nome14045% \G *********** 1. Row **** id: 1 select_type: SIMPLE table: emp type: ALL... A.A Laboratorio di basi di dati - LB 126
127 Ottimizzare l accesso alla singola tabella: un esempio (4) CREATE INDEX IX_ENAME ON emp(ename); A.A Laboratorio di basi di dati - LB 127
128 Ottimizzare l accesso alla singola tabella: un esempio (5) SELECT * FROM emp WHERE ename LIKE 'nome14045%'; empno ename deptno nome row in set (0.33 sec) A.A Laboratorio di basi di dati - LB 128
129 Ottimizzare l accesso alla singola tabella: un esempio (6) EXPLAIN SELECT * FROM emp WHERE ename LIKE 'nome14045% \G *********** 1. Row **** id: 1 select_type: SIMPLE table: emp type: range possible_keys: IX_ENAME key: IX_ENAME A.A Laboratorio di basi di dati - LB 129
130 Ottimizzare l accesso alla singola tabella: un esempio (7) Spiegazione: la creazione di un indice sulla colonna ENAME, velocizza le query che utilizzano l indice in modo SELETTIVO (ossia che recuperano poche righe). A.A Laboratorio di basi di dati - LB 130
131 Ottimizzare l accesso alla singola tabella: un esempio (8) SELECT count(*) FROM emp WHERE ename LIKE 'nome%'; count(*) row in set (1.32 sec) A.A Laboratorio di basi di dati - LB 131
132 Ottimizzare l accesso alla singola tabella: un esempio (9) EXPLAIN SELECT count(*) FROM emp WHERE ename LIKE 'nome% \G *********** 1. Row **** id: 1 select_type: SIMPLE table: emp type: range possible_keys: IX_ENAME key: IX_ENAME A.A Laboratorio di basi di dati - LB 132
133 Ottimizzare l accesso alla singola tabella: un esempio (10) DROP INDEX IX_ENAME ON emp; A.A Laboratorio di basi di dati - LB 133
134 Ottimizzare l accesso alla singola tabella: un esempio (11) SELECT count(*) FROM emp WHERE ename LIKE 'nome%'; count(*) row in set (0.88 sec) A.A Laboratorio di basi di dati - LB 134
135 Ottimizzare l accesso alla singola tabella: un esempio (12) EXPLAIN SELECT count(*) FROM emp WHERE ename LIKE 'nome%' \G *********** 1. Row **** id: 1 select_type: SIMPLE table: emp type: ALL A.A Laboratorio di basi di dati - LB 135
136 Ottimizzare l accesso alla singola tabella: un esempio (13) Spiegazione: la creazione di un indice sulla colonna ENAME, rallenta le query che utilizzano l indice in modo NON SELETTIVO (ossia che recuperano molte righe tramite l indice). A.A Laboratorio di basi di dati - LB 136
137 Ottimizzare l ordine dei passi (1) La scelta dell ordine in cui le tabelle sono messe in join è fondamentale se si usa l algoritmo di Nested Loop Join. E particolarmente importante quando si effettua il join di molte tabelle. A.A Laboratorio di basi di dati - LB 137
138 Ottimizzare l ordine dei passi (2) In caso di inner join un qualsiasi ordine di join è possibile, l ordine NON è determinato dall ordine in cui le tabelle appaiono nella clausola FROM. In caso di outer join l ordine è fissato dalla condizione di outer-join. A.A Laboratorio di basi di dati - LB 138
139 Ottimizzare l ordine dei passi (3) In genere è conveniente scegliere come driving-table (outer-table) la tabella con la condizione di filtro più selettiva. La selettività deve essere considerata anche rispetto al join con le altre tabelle. A.A Laboratorio di basi di dati - LB 139
140 Ottimizzare l ordine dei passi (4) La driving-table può essere acceduta in full-table-scan o tramite un indice selettivo sulle colonne di filtro. La inner-table deve essere acceduta tramite un indice, preferibilmente univoco, sulle colonne di join. A.A Laboratorio di basi di dati - LB 140
141 Ottimizzare l ordine dei passi (5) Nell ottimizzare gli accessi al disco, si deve considerare la cache dei dati/indici. Se la inner-table è piccola rispetto alle dimensioni della cache ci si può aspettare che i blocchi della tabella (e dei suoi indici) siano prevalentemente in cache. A.A Laboratorio di basi di dati - LB 141
142 Ottimizzare l ordine dei passi: un esempio (1) SELECT e.ename, d.descr FROM emp e, dept d WHERE e.deptno=d.deptno AND e.ename like 'nome12345%'; rows in set (3.05 sec) A.A Laboratorio di basi di dati - LB 142
143 Ottimizzare l ordine dei passi: un esempio (2) EXPLAIN SELECT e.ename, d.descr FROM emp e, dept d WHERE e.deptno=d.deptno AND e.ename like 'nome12345% \G A.A Laboratorio di basi di dati - LB 143
144 Ottimizzare l ordine dei passi: un esempio (3) *********** 1. row *** id: 1 select_type: SIMPLE table: d type: ALL *********** 2. row **** id: 1 select_type: SIMPLE table: e type: ref possible_keys: FK_EMP_DEPT key: FK_EMP_DEPT A.A Laboratorio di basi di dati - LB 144
145 Ottimizzare l ordine dei passi: un esempio (4) SELECT /*! STRAIGHT_JOIN */ e.ename, d.descr FROM emp e, dept d WHERE e.deptno=d.deptno and e.ename like 'nome12345%'; rows in set (0.40 sec) A.A Laboratorio di basi di dati - LB 145
146 Ottimizzare l ordine dei passi: un esempio (5) EXPLAIN SELECT /*! STRAIGHT_JOIN */ e.ename, d.descr FROM emp e, dept d WHERE e.deptno=d.deptno AND e.ename like 'nome12345% \G A.A Laboratorio di basi di dati - LB 146
147 Ottimizzare l ordine dei passi: un esempio (6) *********** 1. row *** id: 1 select_type: SIMPLE table: e type: ALL *********** 2. row **** id: 1 select_type: SIMPLE table: d type: eq_ref possible_keys: PRIMARY key: PRIMARY A.A Laboratorio di basi di dati - LB 147
148 Ottimizzare l ordine dei passi: un esempio (7) Spiegazione: L accesso tramite un indice (per ogni riga della tabella DEPT) alla tabella EMP è un accesso casuale ( alto seek time). E preferibile accedere prima alla tabella EMP (che ha un numero elevato di righe) in modo sequenziale e poi alla tabella DEPT tramite la sua PK. A.A Laboratorio di basi di dati - LB 148
149 Ottimizzare l ordine dei passi: un esempio (8) Nota: Se la condizione sulla colonna ename è selettiva, si può ottimizzare ulteriormente la query creando un indice sulla colonna ename della tabella EMP ed evitando in questo modo il fulltable-scan sulla tabella stessa. A.A Laboratorio di basi di dati - LB 149
150 Ottimizzare l ordine dei passi: un esempio (9) SELECT e.ename, d.descr FROM emp e, dept d WHERE e.deptno=d.deptno AND d.descr like ufficio 6% AND e.ename like 'nome12345%';... 3 rows in set (0.05 sec) A.A Laboratorio di basi di dati - LB 150
151 Ottimizzare l ordine dei passi: un esempio (10) EXPLAIN SELECT e.ename, d.descr FROM emp e, dept d WHERE e.deptno=d.deptno AND d.descr like ufficio 6% AND e.ename like 'nome12345% \G A.A Laboratorio di basi di dati - LB 151
152 Ottimizzare l ordine dei passi: un esempio (11) *********** 1. row *** id: 1 select_type: SIMPLE table: d type: ALL *********** 2. row **** id: 1 select_type: SIMPLE table: e type: ref possible_keys: FK_EMP_DEPT key: FK_EMP_DEPT A.A Laboratorio di basi di dati - LB 152
153 Ottimizzare l ordine dei passi: un esempio (12) SELECT /*! STRAIGHT_JOIN */ e.ename, d.descr FROM emp e, dept d WHERE e.deptno=d.deptno and d.descr like ufficio 6% AND e.ename like 'nome12345%'; rows in set (0.35 sec) A.A Laboratorio di basi di dati - LB 153
154 Ottimizzare l ordine dei passi: un esempio (13) EXPLAIN SELECT /*! STRAIGHT_JOIN */ e.ename, d.descr FROM emp e, dept d WHERE e.deptno=d.deptno AND d.descr like ufficio 6% AND e.ename like 'nome12345% \G A.A Laboratorio di basi di dati - LB 154
155 Ottimizzare l ordine dei passi: un esempio (14) *********** 1. row *** id: 1 select_type: SIMPLE table: e type: ALL *********** 2. row **** id: 1 select_type: SIMPLE table: d type: eq_ref possible_keys: PRIMARY key: PRIMARY A.A Laboratorio di basi di dati - LB 155
156 Ottimizzare l ordine dei passi: un esempio (15) Spiegazione: L utilizzo della tabella DEPT come driving-table è conveniente se il filtro applicato (ossia le righe selezionate dalla DEPT) comporta l uso selettivo dell indice definito sulla FK della tabella EMP. A.A Laboratorio di basi di dati - LB 156
157 Ottimizzare l ordine dei passi: un esempio (16) Nota: Nell esempio riportato l uso della tabella DEPT come driving-table è conveniente perché poche righe della tabella EMP sono legate ad un dipartimento la cui descrizione inizia con la stringa ufficio 6. A.A Laboratorio di basi di dati - LB 157
158 Riscrivere la query Spesso le query possono essere scritte in diversi modi, tra loro equivalenti. E preferibile scrivere la query in modo opportuno, l ottimizzatore non sempre riesce ad individuare la query più performante. A.A Laboratorio di basi di dati - LB 158
159 Riscrivere la query: un esempio (1) SELECT * FROM emp WHERE (ename like 'nome12345%') OR (empno = 10000); rows in set (0.81 sec) A.A Laboratorio di basi di dati - LB 159
160 Riscrivere la query: un esempio (2) EXPLAIN SELECT * FROM emp WHERE (ename like 'nome12345%') OR (empno = 10000) \G A.A Laboratorio di basi di dati - LB 160
161 Riscrivere la query: un esempio (3) *********** 1. row ** id: 1 select_type: SIMPLE table: emp type: ALL possible_keys: PRIMARY,ix_ename key: NULL... A.A Laboratorio di basi di dati - LB 161
162 Riscrivere la query: un esempio (4) SELECT * FROM emp WHERE (ename like 'nome12345%') UNION SELECT * FROM emp WHERE (empno = 10000); rows in set (0.01 sec) A.A Laboratorio di basi di dati - LB 162
163 Riscrivere la query: un esempio (5) EXPLAIN SELECT * FROM emp WHERE (ename like 'nome12345%') UNION SELECT * FROM emp WHERE (empno = 10000) \G A.A Laboratorio di basi di dati - LB 163
164 Riscrivere la query: un esempio (6) *********** 1. row ******* id: 1 select_type: PRIMARY table: emp type: range possible_keys: ix_ename key: ix_ename... A.A Laboratorio di basi di dati - LB 164
165 Riscrivere la query: un esempio (7) *********** 2. row ****** id: 2 select_type: UNION table: emp type: const possible_keys: PRIMARY key: PRIMARY... A.A Laboratorio di basi di dati - LB 165
166 Riscrivere la query: un esempio (8) *********** 3. row ***** id: NULL select_type: UNION RESULT table: <union1,2> type: ALL possible_keys: NULL key: NULL... A.A Laboratorio di basi di dati - LB 166
167 Riscrivere la query: un esempio (9) Spiegazione: MySql utilizza un solo indice per query (nella versione < 5.0). Se non può utilizzare nessun indice per soddisfare tutte le condizione effettua un full table scan. Se la query viene divisa in più union ha la possibilità di utilizzare un indice per ogni union. A.A Laboratorio di basi di dati - LB 167
168 Gli Hint (1) E un suggerimento all ottimizzatore per guidarlo verso la scelta di un piano di esecuzione. A.A Laboratorio di basi di dati - LB 168
169 Gli Hint (2) Non è uno standard SQL, ogni rdbms ha una sintassi proprietaria. Permettono di ridurre il tempo di PARSE. Permettono (se corretti) di impostare il piano di esecuzione ottimale. A.A Laboratorio di basi di dati - LB 169
170 Gli Hint (3) E fortemente consigliabile racchiudere gli HINT tra /*! HINT */ La maggior parte degli rdbms considerano tutto quello che si trova tra /* e */ un commento, quindi non segnalano un errore sintattico. A.A Laboratorio di basi di dati - LB 170
171 I principali HINT STRAIGHT_JOIN USE INDEX IGNORE INDEX FORCE INDEX A.A Laboratorio di basi di dati - LB 171
172 L hint STRAIGHT_JOIN Forza l ottimizzatore ad effettuare il JOIN nella sequenza specificata nella clausola FROM. A.A Laboratorio di basi di dati - LB 172
173 STRAIGHT_JOIN: la sintassi SINTASSI: SELECT /*! STRAIGHT_JOIN */ <column-list> FROM A.A Laboratorio di basi di dati - LB 173
174 ESEMPIO: STRAIGHT_JOIN (1) EXPLAIN SELECT /*! STRAIGHT_JOIN */ * FROM emp e, dept d WHERE e.deptno=d.deptno \G A.A Laboratorio di basi di dati - LB 174
175 ESEMPIO: STRAIGHT_JOIN (2) *********** 1. row ***** id: 1 select_type: SIMPLE table: e... *********** 2. row ***** id: 1 select_type: SIMPLE table: d... Accede prima alla tabella EMP (E) e alla DEPT (d) A.A Laboratorio di basi di dati - LB 175
176 Gli hint INDEX Forza l ottimizzatore a valutare (USE), ignorare (IGNORE) o utilizzare (FORCE) l uso di un indice. Non sono validi per forzare il piano di esecuzione di ORDER BY o GROUP BY. A.A Laboratorio di basi di dati - LB 176
177 Hint INDEX: la sintassi SINTASSI: SELECT FROM <table> [/*! {USE INDEX IGNORE INDEX FORCE INDEX} (index-list) */] A.A Laboratorio di basi di dati - LB 177
178 ESEMPIO: hint INDEX (1) SELECT count(*) FROM emp WHERE ename like nome% ;... 1 row in set (1.57 sec) A.A Laboratorio di basi di dati - LB 178
179 ESEMPIO: hint INDEX (1) EXPLAIN SELECT count(*) FROM emp WHERE ename like nome% \G A.A Laboratorio di basi di dati - LB 179
180 ESEMPIO: hint INDEX (3) *********** 1. row ***** id: 1 select_type: SIMPLE table: emp type: range possible_keys: ix_ename key: ix_ename... A.A Laboratorio di basi di dati - LB 180
181 ESEMPIO: hint INDEX (4) SELECT count(*) FROM emp /*! IGNORE INDEX (ix_ename) */ WHERE ename like nome% ;... 1 row in set (0.40 sec) A.A Laboratorio di basi di dati - LB 181
182 ESEMPIO: hint INDEX (5) EXPLAIN SELECT count(*) FROM emp /*! IGNORE INDEX (ix_ename) */ WHERE ename like nome% \G A.A Laboratorio di basi di dati - LB 182
183 ESEMPIO: hint INDEX (6) *********** 1. row ***** id: 1 select_type: SIMPLE table: emp type: ALL possible_keys: NULL key: NULL... A.A Laboratorio di basi di dati - LB 183
184 Riepilogo Union, subquery e Join Il piano di esecuzione L ottimizzatore Le statistiche Il comando EXPLAIN Gli Hint A.A Laboratorio di basi di dati - LB 184
Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6
Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica
DettagliOSSIF WEB. Manuale query builder
OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI
DettagliIl linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
DettagliIl linguaggio SQL: query innestate
Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento
DettagliCorso sul linguaggio SQL
Corso sul linguaggio SQL Modulo L2B (SQL) 2.2 Comandi sulle tabelle 1 Prerequisiti Introduzione ai DB Tabelle, relazioni e attributi Chiave primaria Chiave esterna Vincoli di integrità 2 1 Introduzione
DettagliEsercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:
Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare
DettagliESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7
ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni
DettagliDBMS (Data Base Management System)
Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire
DettagliEsercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica
Istituto di Istruzione Superiore Alessandrini - Marino 1 Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Descrizione Un azienda commerciale che vende prodotti IT (computers,
DettagliUso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26
Uso delle variabili di alias SQL slide aggiuntive Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione educazione Non solo per disambiguare la notazione
DettagliCorso sul linguaggio SQL
Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio
DettagliAppunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.
Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco
DettagliBasi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,
DettagliSQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12
SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2011/12 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.
DettagliIstruzioni DML di SQL
Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,
DettagliCONCETTO DI ANNIDAMENTO
LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di
DettagliInsegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati
Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliCapitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
DettagliVolumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
DettagliUser Tools: DataBase Manager
Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview
DettagliHBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?
NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui
DettagliJoin in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a
Join in SQL (primo modo) Informatica Lezione 7 Laurea magistrale in Psicologia Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 09- Per formulare interrogazioni che coinvolgono
DettagliIl linguaggio SQL: viste e tabelle derivate
Il linguaggio SQL: viste e tabelle derivate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLd-viste.pdf Sistemi Informativi L-A DB di riferimento
DettagliIntroduzione a MySQL
Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da
DettagliSQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:
SQL Linguaggio di interrogazione per basi di dati relazionali Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL: Creazione delle tabelle Interrogazione della base di dati
DettagliBasi di Dati Corso di Laura in Informatica Umanistica
Basi di Dati Corso di Laura in Informatica Umanistica Appello del 10/09/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione
DettagliLaboratorio di Basi di Dati e Web
Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio
DettagliIl linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf
Il linguaggio SQL: viste e tabelle derivate Versione elettronica: SQLd-viste.pdf DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile Citta E001 Rossi S01 Analista
DettagliAbilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere
Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.
DettagliDefinizione di domini
Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain
DettagliSQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"
SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali,
DettagliCorso di Laboratorio di Basi di Dati
Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs
DettagliCorso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.
Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per
DettagliMetodi per la Gestione dei Dati (lezioni di laboratorio)
Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze della Comunicazione e dell Economia Corso di Laurea in Comunicazione e Marketing Anno Accademico 2005/06 Metodi per la Gestione dei Dati
DettagliOR true null false true true true true null true null null false true null false NOT
Il linguaggio SQL è un linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali ed ha le seguenti caratteristiche: è dichiarativo; opera su multiset di tuple,
DettagliIstruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5
Istruzioni SQL Istruzioni SQL 1 Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5 Query di inserimento 5 INSERT INTO 5 Query di
DettagliMySQL Command Line Client: operazioni fondamentali
MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliConcetti fondamentali dei database database Cos'è un database Principali database
Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione
DettagliData Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004
DB2 Data Management Software Il linguaggio SQL Raggruppamenti Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute in questa
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliI comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER
Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella
DettagliMAX, SUM, AVG, COUNT)
INTRODUZIONE A SQL Definizione di tabelle e domini Alcuni vincoli di integrità Struttura base SELECT FROM WHERE Funzioni di aggregazione (MIN, MAX, SUM, AVG, COUNT) Query da più tabelle (FROM R1, Rk) Join
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle
DettagliSQL (STRUCTURED QUERY LANGUAGE)
SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura
DettagliSQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:
SQL SQL (pronunciato anche come l inglese sequel: acronimo di Structured Query Language (linguaggio di interrogazione strutturato Linguaggio completo che presenta anche proprietà di: DDL (Data Definition
DettagliPROGRAMMA DI CLASSE 5AI
Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA
DettagliUtilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi
Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni
DettagliIndice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base... 45 Variabili, operatori e commenti... 47 Array...
Prefazione...xiii A chi si rivolge il libro... xiv Struttura e contenuti del libro... xiv Dove trovare aiuto... xvii Le newsletter di SitePoint... xviii I vostri commenti... xviii Convenzioni adottate
DettagliDatabase Manager Guida utente DMAN-IT-01/09/10
Database Manager Guida utente DMAN-IT-01/09/10 Le informazioni contenute in questo manuale di documentazione non sono contrattuali e possono essere modificate senza preavviso. La fornitura del software
DettagliDDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione
SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni
Dettagli1.Tutte 2.Spesso P.IVAe le CF volte che si visualizza i dati un fornitore si mostranoanche. La mensa. La mensa
Ristrutturare Osservazioni seguenti che possano indicazioni emergere lo schema sulle ER operazioni della slide frequenti successiva e indicando tenendo presenti i vincoli le 1.Tutte 2.Spesso P.IVAe le
DettagliPreparazione. Introduzione a MySQL: costruzione di una base di dati e gestione degli accessi. Accesso all area condivisa. Avvio Server MySQL
Introduzione a MySQL: costruzione di una base di dati e gestione degli accessi Stefania Marrara Elisa Quintarelli Lezione 1 2 ore a.a 2004/05 Preparazione Accesso all area condivisa Start -> Programs ->MySQL
DettagliInformatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing
Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Informatica 3 Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su
DettagliMySQL Database Management System
MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare
DettagliIl linguaggio SQL: le basi
Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali
DettagliGestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza
DettagliData warehouse in Oracle
Data warehouse in Oracle Viste materializzate ed estensioni al linguaggio i SQL per l analisi li i dei dati presenti nei data warehouse Estensioni al linguaggio SQL per l analisi dei dati presenti nei
DettagliInformatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL
Informatica Basi di dati parte 4 SQL Lezione 13 Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 2012 2013 1 Interrogazioni in
DettagliUso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database
Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,
DettagliMySQL Database Management System
MySQL Database Management System II parte Progetto gestione booking prenotazioni on-line 1. Progettazione e creazione struttura database che chiameremo booking. 2. Progettazione e creazione di un form
DettagliOperazioni sui database
Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle
DettagliSQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server
SQL Server 7.0 1 SQL Server SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server 2 Strumenti per la gestione Enterprise Manager
DettagliSQL/OLAP. Estensioni OLAP in SQL
SQL/OLAP Estensioni OLAP in SQL 1 Definizione e calcolo delle misure Definire una misura significa specificare gli operatori di aggregazione rispetto a tutte le dimensioni del fatto Ipotesi: per ogni misura,
DettagliLe Basi di Dati. Le Basi di Dati
Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione
INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : (1) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione
Dettagli4 SQL : Interrogazioni nidificate
Corso di Laurea in Ingegneria Gestionale SAPIENZA Università di Roma Esercitazioni del corso di Basi di Dati Prof.ssa Catarci e Prof.ssa Scannapieco Anno Accademico 2010/2011 Andrea Marrella Ultimo aggiornamento
DettagliDBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)
(DataBase Management System) Sistemi di ges3one di basi di da3 Un Database Management System è un sistema software progettato per consentire la creazione e manipolazione efficiente di database (collezioni
DettagliCorso di Informatica Generale 1 IN1. Linguaggio SQL
Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:
DettagliINFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.
INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed
DettagliArchivi e Basi di Dati
Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati
DettagliSistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliMECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliGiovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema
Giovanna Rosone 04/03/2010 04/03/2010 SQL, Istruzioni per la modifica dello schema 1 Riepilogo Impiegato Pagamenti Nome colonna PAG_COD PAG_MATR Tipo dati CHAR(6) CHAR(6) Nome colonna Tipo dati PAG_STIPENDIO
DettagliInformatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati
Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità
DettagliOracle PL/SQL. Motivazioni
Oracle PLSQL Motivazioni Supponiamo che nella gestione del database Azienda ci venga chiesto di apportare le modifiche necessarie a far sì che ad ogni impiegato possa essere assegnato, alla fine di ogni
DettagliL architettura di un DBMS
L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze
DettagliSQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE
SQL e ACCESS Prof. Salvatore Multazzu (salvatoremultazzu@tiscali.it) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)
DettagliMon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente
Prerequisiti Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente L opzione Provvigioni agenti è disponibile per le versioni Vendite, Azienda Light e Azienda Pro. Introduzione
DettagliI database relazionali (Access)
I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale
DettagliCosa è un foglio elettronico
Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti
DettagliARCHIVI E DATABASE (prof. Ivaldi Giuliano)
ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).
DettagliUNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME
UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME 14 maggio 2009 1 Progettazione di basi di dati Si vuole
DettagliA intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
DettagliEsercitazione sulle libpq - libreria C per PostgreSQL
Esercitazione sulle libpq - libreria C per PostgreSQL Roberto Tronci roberto.tronci@diee.unica.it Basi di Dati A.A. 2007/2008 Tronci ( roberto.tronci@diee.unica.it ) Esercitazione libpq Basi di Dati 2007/2008
DettagliAl giorno d oggi, i sistemi per la gestione di database
Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,
DettagliDatabase Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento
Sommario - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento Introduzione - Un database è un archivio strutturato di dati che può essere manipolato con dei comandi nel linguaggio
DettagliSuggerimenti per lo Sviluppo delle Applicazioni con PL/SQL. Simona Rotolo
Suggerimenti per lo Sviluppo delle Applicazioni con PL/SQL Simona Rotolo 2 Questo documento, rivolto a chi sviluppa codice in PL/Sql, è stato redatto al fine di fornire degli standard di sviluppo che aiuteranno
DettagliSQL. Alcune note sulla definizione dei dati
SQL Alcune note sulla definizione dei dati Domini Domini elementari (predefiniti) Domini definiti dall'utente (riutilizzabili, possono servire per specificare vincoli di dominio propri di una certa applicazione)
DettagliIL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI
IL LINGUAGGIO SQL Il linguaggio SQL ( Structured Query Languages) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione dei database relazionali. Il linguaggio procedurale
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include
DettagliINDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:
Date le tabelle: Clienti := < id, nome, cognome, indirizzo,città > Ordini := < id, data_ora_ordine, id_prodotto, id_cliente, quantità> Prodotti := < id, nome, descrizione, costo,scorte > INDICI Prevediamo
DettagliMetodi per la Gestione dei Dati (lezioni di laboratorio)
Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze della Comunicazione e dell Economia Corso di Laurea in Comunicazione e Marketing Titolare del corso: ing. Stefano SETTI Lezioni di laboratorio
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliIntroduzione al corso
Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia
DettagliProgettazione di Basi di Dati
Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello
Dettagli1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.
Esame di Stato Istituto Tecnico Industriale Proposta di soluzione della seconda prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2003-2004 1. Schema concettuale della base di dati Lo schema
DettagliRegione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
Dettagli