Database - SQL. Database. Introduzione
|
|
- Fabia Angelini
- 8 anni fa
- Visualizzazioni
Transcript
1 Database Introduzione
2 Mo1vazioni In numerosi contes1 applica1vi la ges1one delle informazioni riveste un ruolo chiave: Banking: informazioni sui clien1, i con1 corren1, i mutui, bonifici e transazioni bancarie in genere Linee aeree: prenotazioni ed orario dei voli. Università: info su studen1, corsi, docen1, esami sostenu1, diplomi. Carte di credito: ges1one transazioni, monitoraggio dei limi1 di spesa, invio estrae conto Telecomunicazioni: memorizzare le chiamate effehuate estrarre bollehe periodiche, ges1re sistemi di carte prepagate Finanza: aggiornare la quotazione delle società di borsa in base agli scambi, memorizzare informazioni su quotazione e volumi a fine giornata Supermerca1: info su clien1 (carte fedeltà), prodoe, ordini, acquis1 pagamento e spedizione Risorse umane: info su impiega1, salario base, benefit, tasse, pagamento s1pendi Pagine Web: motori di ricerca, riviste online, blogs, forum,
3 Mo1vazioni Nei sistemi informa1ci le informazioni vengono rappresentate per mezzo di da1 I da1 non sono l informazione
4 Esempio: ci viene deho che i da1 rela1vi alla disponibilità di prodoe nel magazzino di una società che vende televisori sono contenu1 nel file qui mostrato 4:TOSHIBA:15VL34G:1:349,00 5:SINUDYNE:20250MFV:1:399,00 2:SAMSUNG:LE15S51B:1:399,00 2:SHARP:LC15SH1E:1:399,00 1:PHILIPS:20PF7835:1:449,00 0:JVC:LT17E31BU:1:449,00 4:QUASAR:Plasma 42":2:1.299,00 3:SAMSUNG:PS42V4S:2:1.790,00 0:PANASONIC:TH37PA50:2:1.790,00 2:PHILIPS:BDS4221:2:1.799,00 4:ROADSTAR:CTV1434TS:2:79,90 3:SINUDYNE:14605:2:89,90 0:PHILIPS:14PT1547:2:99,00 3:ROADSTAR:CTV2039TS:2:109,00 5:ROADSTAR:CTV2034TS:2:119,90 Che informazioni posso estrarre da ques1 da1?
5 Nell esempio, l informazione è estraha associando una seman1ca alla struhura con cui i da1 sono memorizza1: Il carahere : è usato per separare da1 diversi Il primo dato rappresenta il numero di prodoe disponibili Il secondo dato rappresenta la marca del prodoho Il terzo dato rappresenta il modello di prodoho Il quarto dato rappresenta il 1po di prodoho (1:LCD, 2:PLASMA, 3:CRT) Il quinto dato rappresenta il costo del prodoho
6 La ges1one del magazzino potrebbe essere effehuata ahraverso un programma gest_tv (per esempio scriho in linguaggio c, C++ o Java) che leggendo e scrivendo sul file di testo consenta di: Visualizzare il numero di prodoe in magazzino Aggiornare il numero di prodoe in magazzino Aggiornare il costo dei prodoe Aggiungere/rimuovere prodoe dal magazzino
7 L u1lizzo di file per la memorizzazione di informazioni, comporta grosse limitazioni legate a: Esecuzione di 2 o più processi gest- TV da terminali diversi Quan1tà dei da1 da memorizzare Solidità rispeho a crash di sistema Protezione di uten1 ed operazioni Aggiornamento delle funzionalità di gest- TV
8 Base di da1 Queste cri1cità possono essere superate ahraverso l introduzione di un modulo sofware (DBMS) che operi da intermediario tra le applicazioni ed i da1 sul disco Un database è quindi un insieme di da1 ges1to da un DBMS
9 DataBase Management System DBMS Sistema (prodoho sofware) in grado di ges1re collezioni di da1 che siano (anche): grandi persisten1 garantendo affidabilità privatezza efficienza condivisione
10 Modello dei da1 Tipologie di modelli: Modelli logici: u1lizza1 nei DBMS per l organizzazione dei da1 (relazionale, re1colare, gerarchico, a oggee ) descrivono i da1 in modo da specificare come i programmi possono estrarli Rendono i da1 indipenden1 dalle struhure fisiche di memorizzazione Modelli concequali: permehono di rappresentare i da1 in modo indipendente da ogni DBMS (il più noto è il modello En1ty- Rela1onship) Cercano di descrivere i concee del mondo reale Sono u1lizza1 nella prima fase della progehazione
11 Modello relazionale Il modello logico più diffuso è quello relazionale Informazioni organizzate in una o più relazioni (tabelle): insiemi di record a struhura fissa
12 Linguaggi per basi di da1 Un altro contributo all efficacia dei DBMS è dato dalla disponibilità di vari linguaggi e interfacce per la loro ges1one: comandi testuali interaevi (SQL) comandi SQL immersi in un linguaggio ospite (Pascal, C, C++, Cobol, JAVA, etc.) comandi SQL immersi in un linguaggio ad hoc, con anche altre funzionalità (p.es. per grafici o stampe struhurate), anche con l ausilio di strumen1 di sviluppo (p. es. per la ges1one di maschere) con interfacce grafiche (senza linguaggio testuale)
13 Alcuni DBMS in commercio Oracle IBM DB2 Microsof SQLServer Informix Sybase Ingres Interbase Access MySQL PostgreSQL Firebird SapDB / MaxDB
14 Database Modello relazionale
15 DBMS e modelli logici Modelli logici tradizionali: gerarchico re1colare relazionale Più recen1: a oggee object- rela1onal
16 Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei da1 è disponibile in DBMS reali dal 1981 Si basa su uno sviluppo del conceho matema1co di relazione Le relazioni hanno una naturale rappresentazione per mezzo di tabelle
17 Tabelle e relazioni Una tabella rappresenta una relazione (nel modello relazionale) se: i valori di ogni colonna sono fra loro omogenei le righe sono diverse fra loro le intestazioni delle colonne sono diverse tra loro In una tabella che rappresenta una relazione l ordinamento tra le righe è irrilevante l ordinamento tra le colonne è irrilevante
18 Tabelle e relazioni Ogni colonna di una tabella descrive un "ruolo" (proprietà) della relazione: Il nome di ogni colonna viene chiamato ATTRIBUTO Ogni riga di una tabella, cos1tuisce una tupla della relazione Un insieme di tuple si dice n- upla
19 Modello basato su valori Il modello relazionale è un modello basato sui valori: i riferimen1 fra da1 in relazioni diverse sono rappresenta1 per mezzo dei valori di alcuni ahribu1
20 Modello basato su valori Esempio: organizzare le informazioni rela1ve agli studen1 di un CdL: Nome, Cognome e Data di nascita di ciascuno studente Nome dei corsi del CdL Esami supera1 da ciascuno studente e rela1vo voto
21 Modello basato su valori
22 Modello basato su valori Vengono introdoe dei da1 aggiun1vi (dei codici), non necessariamente richies1 all aho della descrizione del contesto da modellare Il valore dei codici è usato per correlare i da1 presen1 su tabelle diverse Nei modelli gerarchico e re1colare al posto di tali codici erano impiega1 dei puntatori
23 StruQure nidificate Spesso i da1 da rappresentare non sono in relazione uno ad uno: Uno studente e gli esami che ha sostenuto Un cantautore e le canzoni che ha composto Una persona ed i suoi recapi1 telefonici In ques1 casi, per una rappresentazione efficiente dei da1 bisogna fare ricorso a più tabelle
24 StruQure nidificate Esempio: rappresentare i da1 sui cantautori e le canzoni che hanno composto Informazioni vincolate a ciascun cantautore: nome, cognome, cod.fiscale, data nascita Informazioni vincolate a ciascuna canzone: 1tolo, anno composizione
25 StruQure nidificate Sarebbe vantaggioso combinare tuhe le informazioni in una sola tabella? NO: Ridondanza, con conseguen1 anomalie di funzionamento Vengono mescola1 in una sola tabella due gruppi di da1 dis1n1: quelli specifici sugli autori e quelli specifici sulle canzoni
26 StruQure nidificate Bisogna mantenere su tabelle dis1nte i da1 di ciascun gruppo logico Come fare per tenere traccia delle canzoni scrihe da ciascun cantautore? Si usa una tabella in più contenente
27 Informazione incompleta ll modello relazionale impone ai da1 una struhura rigida: le informazioni sono rappresentate per mezzo di ennuple solo alcuni forma1 di ennuple sono ammessi: quelli che corrispondono agli schemi di relazione (ai domini degli ahribu1) TuHavia, i da1 disponibili possono non corrispondere al formato previsto
28 Informazione incompleta: mo[vazioni Per esempio, il dato sul numero di telefono potrebbe non essere disponibile Come faccio ad immehere le informazioni a disposizione nella base da1 se alcune sono incomplete?
29 Informazione incompleta nel modello relazionale Soluzione: si introduce un nuovo valore valore nullo: denota l assenza di un valore del dominio (e non è un valore del dominio) E necessario imporre restrizioni sulla presenza di valori nulli
30 Informazione incompleta nel modello relazionale Essendo il modello relazionale basato su valori, la presenza di valori nulli può rendere non correlabili informazioni presen1 su relazioni diverse
31 Tipi di valore nullo Il valore nullo può essere impiegato in tre casi differen1: valore sconosciuto (esiste ma non lo conosco) valore inesistente (so che non esiste) valore senza informazione (non so se esiste o no) TuHavia, i DBMS non dis1nguono i 1pi di valore nullo
32 Una base di da[ "scorreqa"
33 Vincolo di integrità Proprietà che deve essere soddisfaha dalle istanze per rappresentare informazioni correhe rela1vamente ad un determinato contesto Un vincolo è una funzione booleana (un predicato) che associa ad ogni istanza il valore vero o falso
34 Vincoli di integrità Ad una base da1 possono essere associa1 un insieme di vincoli In questo caso saranno correhe le istanze della base da1 che soddisfano TUTTI i vincoli
35 Da[ inconsisten[
36 Chiave insieme di ahribu1 che iden1ficano le ennuple di una relazione Una generica relazione può avere più chiavi: anche insiemi di ahribu1 disgiun1 Un ahributo (o un insieme di ahribu1) si dice superchiave se è univoco (non ci sono valori uguali fra loro) Una superchiave si dice minimale se è composta da 1 solo ahributo
37 Matricola è una chiave: è superchiave con1ene un solo ahributo e quindi è minimale
38 Esistenza delle chiavi Data una relazione, questa può non avere chiavi? NO!
39 Importanza delle chiavi l esistenza delle chiavi garan1sce l accessibilità a ciascun dato della base di da1 le chiavi permehono di correlare i da1 in relazioni diverse: modello basato su valori
40 Chiavi e valori nulli La presenza di valori nulli nei valori della chiave rende cri1ca: Iden1ficazione delle ennuple Definizione di corrispondenze tra ennuple in relazioni diverse
41 Chiave primaria Chiave su cui non sono ammessi valori nulli
42 Integrità referenziale informazioni in relazioni diverse sono correlate ahraverso valori comuni in par1colare, valori delle chiavi (primarie) le correlazioni debbono essere "coeren1"
43
44 Vincolo di integrità referenziale Un vincolo di integrità referenziale ( foreign key ) fra gli ahribu1 X di una relazione R1 e un altra relazione R2 impone ai valori su X in R1 di comparire come valori della chiave primaria di R2 Può verificarsi che alcuni valori presen1 nella PK di R2 non siano presen1 in X? SI Può verificarsi che valori presen1 in X non siano presen1 nella PK di R2? NO R1: tabella interna R2: tabella esterna
45 Operazioni di aggiornamento e violazione dei vincoli Il modello relazionale prevede due classi di operazioni: Operazioni di ricerca (querying) CostruE dell algebra relazionale ed SQL Operazioni di aggiornamento (update) CostruE per l inserimento, cancellazione e modifica di tuple
46 Operazioni di aggiornamento Inserimento: È usato per inserire nuove tuple in una relazione Cancellazione: È usata per cancellare tuple da una relazione Modifica: È usato per cambiare il valore di alcuni ahribu1 nelle tuple di una relazione Le operazioni di aggiornamento devono rispehare i vincoli di integrità specifica1 nello schema della base da1
47 Operazioni e violazione dei vincoli A fronte della richiesta di esecuzione di una operazione che viola un vincolo di integrità il sistema può: Bloccare l esecuzione dell operazione no1ficando un messaggio d errore Eseguire l operazione gestendo la violazione del vincolo con opportune azioni compensa1ve
48 Azioni compensa[ve Esempio: L eliminazione di una ennupla dalla tabella esterna può causare una violazione del vincolo di integrità referenziale Azioni Rifiuto dell'operazione Eliminazione in cascata Introduzione di valori nulli
49 Eliminazione in cascata
50 Introduzione di valori nulli
51 Esercizio Definire uno schema di base da1 per organizzare le informazioni di una azienda che ha impiega1 (ognuno con codice fiscale, nome, cognome e data di nascita), filiali (con codice, sede e direhore, che è un impiegato). Ogni impiegato lavora presso una o più filiali. Indicare le chiavi ed i vincoli di integrità referenziale dello schema.
52 Linguaggi di interrogazione per il modello relazionale Algebra relazionale: procedurale Calcolo relazionale: dichiara1vo (teorico) SQL (Structured Query Language): parzialmente dichiara1vo (reale) QBE (Query by Example): dichiara1vo (reale)
53 Algebra relazionale Cos1tuito da un insieme di operatori defini1 su relazioni e che producono relazioni come risulta1 Gli operatori possono essere compos1 in cascata per formulare interrogazioni complesse
54 Operatori dell'algebra relazionale Unione, intersezione, differenza (operatori insiemis1ci) Ridenominazione, selezione, proiezione (operatori monadici, agiscono su una sola relazione) Join: join naturale, prodoho cartesiano, theta- join (operatori su due o più relazioni)
55 Operatori insiemis[ci Dato che le istanze di relazioni sono insiemi ha senso considerare gli operatori defini1 per gli Insiemi TuHavia una relazione nel modello relazionale differisce da una generica relazione insiemis1ca per la presenza dello schema Per evitare risulta1 non coeren1, l applicazione degli operatori unione, intersezione, differenza deve essere limitata a relazioni definite sugli stessi ahribu1
56 Unione L unione tra due relazioni R1 ed R2 definite sullo stesso insieme di ahribu1 X è indicata con R1 R2 ed è una relazione su X contenente le n- uple che appartengono ad R1 o ad R2 o ad entrambe Siccome in una relazione non possono esserci due n- uple uguali, le n- uple che sono presen1 in entrambe le relazioni di partenza vengono rappresentate una sola volta nell unione
57 Unione
58 Intersezione L intersezione tra due relazioni R1 ed R2 definite sullo stesso insieme di ahribu1 X è indicata con R1 R2 ed è una relazione su X contenente le n- uple che appartengono sia ad R1 che ad R2
59 Differenza La differenza tra una relazione R1 ed una relazione R2 definite sullo stesso insieme di ahribu1 X è indicata con R1 - R2 ed è una relazione su X contenente le n- uple di R1 che non appartengono ad R2 La differenza NON È commuta1va
60 Ridenominazione operatore monadico (con un argomento) "modifica lo schema" di una relazione cambiando il nome di uno o più ahribu1 e lasciando inalterata l'istanza Vincoli: Non si può assegnare ad un ahributo un nome che compare già come nome di un ahributo della relazione
61 Selezione operatore monadico produce un risultato che: ha lo stesso schema dell'operando con1ene un sohoinsieme delle ennuple dell'operando: quelle che soddisfano una condizione si selezione
62 Selezione Una condizione di selezione su un insieme di ahribu1 X è una formula proposizionale su X ohenuta combinando con i conneevi logici AND( ), OR( ) e NOT( ) condizioni atomiche del 1po AχB o Aχc dove: χ è un operatore di confronto (=,<,>, ) A e B sono ahribu1 di X su cui χ abbia senso c è una costante compa1bile con il dominio di A
63 Proiezione operatore monadico produce un risultato che È definito su un sohoinsieme Y degli ahribu1 dell'operando con1ene n- uple ohenute considerando i valori su Y delle n- uple dell'operando
64 Proiezione PROJ Matricola, Cognome (Impiega[)
65 Selezione e proiezione Combinando selezione e proiezione, possiamo estrarre interessan1 informazioni da una relazione
66 Join Combinando selezione e proiezione, possiamo estrarre informazioni da una relazione Non possiamo però correlare informazioni presen1 in relazioni diverse Il JOIN è l'operatore dell'algebra relazionale che permehe di correlare da1 in relazioni diverse
67 Join naturale operatore binario (generalizzabile) produce una relazione le cui righe sono ohenute concatenando le tuple degli operandi sulla base di valori uguali in ahribu1 con lo stesso nome Il risultato del JOIN è definito sull'unione degli ahribu1 degli operandi
68 Join naturale
69 JOIN Completo Se ogni n- upla delle due relazioni contribuisce al risultato il JOIN si dice completo Altrimen1 il join è non competo
70 Un join non completo
71 JOIN vuoto Un caso par1colare del JOIN non completo è il JOIN vuoto che dà come risultato la relazione vuota
72 Join esterno Il join esterno estende, con valori nulli, le ennuple che verrebbero tagliate fuori da un join (interno) esiste in tre versioni: sinistro, destro, completo
73 Join esterno sinistro: man1ene tuhe le ennuple del primo operando, estendendole con valori nulli, se necessario destro:... del secondo operando... completo: di entrambi gli operandi...
74
75
76
77 ProdoQo cartesiano Che succede se eseguo un join naturale tra relazioni che non hanno ahribu1 in comune? Ogni n- pla della prima relazione può combinarsi con ognuna delle n- ple della seconda Il risultato con1ene sempre un numero di n- ple pari al prodoho delle cardinalità degli operandi In questo caso il JOIN diventa il prodoho cartesiano tra i due operandi
78
79 Il prodoho cartesiano, in pra1ca, ha senso solo se seguito da selezione: SEL Condizione (R1 JOIN R2) L'operazione viene chiamata theta- join e indicata con R1 JOIN Condizione R2
80 Perché "theta- join"? La condizione C è spesso una congiunzione (AND) di atomi di confronto A1ϑ A2 dove ϑ è uno degli operatori di confronto (=, >, <, ) se l'operatore è sempre l'uguaglianza (=) allora si parla di equi- join
81
82 JOIN naturale ed equi- join Il JOIN naturale può essere ohenuto per mezzo di operatori di ridenominazione, equi- join e proiezione
83 SQL
84 SQL: "storia Sviluppato nella metà degli anni sehanta (1974) presso il laboratorio di ricerca IBM di S.Josè (Repubblica della Costa Rica) Dal 1983 ca. standard di faho E il linguaggio di riferimento per l interrogazione di DBMS relazionali
85 SQL Structured Query Language con[ene sia il DDL che DML DDL: DML: CREATE TABLE, ALTER TABLE, DROP TABLE Estrazione da[: SELECT Aggiornamento da[: INSERT, DELETE, UPDATE
86 SQL Tre diverse standardizzazioni ANSI. SQL- 89, SQL- 92 (SQL- 2), SQL- 99 (SQL- 3) Spesso i sistemi offrono funzionalità aggiun[ve non previste dallo standard: regole ajve o trigger (specificano comportamen[ ajvi del DBMS per la ges[one di even[) Interfacce grafiche per la specifica delle interrogazioni (tradoqe automa[camente in SQL)
87
88 Istruzione SELECT Nella sua forma più semplice l estrazione di da[ avviene aqraverso il seguente comando: SELECT ListaAQribu[ FROM Tabella Che ha come effeqo quello di estrarre da una tabella i valori rela[vi ad un soqoinsieme degli aqribu[ della tabella stessa
89
90 Istruzione SELECT Tale operazione è equivalente alla PROIEZIONE nell algebra relazionale L effeqo dell istruzione Select nome, cognome, dipart From impiegato è quello di proieqare sugli aqribu[ nome, cognome e dipart il contenuto della tabella impiegato La lista di aqribu[ che segue la keyword SELECT è deqa target list
91 Istruzione SELECT Se al posto della lista di aqribu[ compare il simbolo * il risultato con[ene i da[ rela[vi a tuj gli aqribu[ della tabella: Select * from impiegato presenta il contenuto dell intera tabella impiegato
92 Istruzione SELECT L istruzione select può essere estesa in modo da effequare una SELEZIONE delle righe che devono comparire nel risultato Questo richiede la specifica di una condizione di selezione: Una formula booleana da calcolarsi (riga per riga) in base al valore di alcuni aqribu[ Il risultato conterrà solo quelle righe per le quali la condizione di selezione dà valore vero
93
94
95 SELECT SQL Nella target list possono comparire generiche espressioni aritme[che sul valore degli aqribu[ di ciascuna riga selezionata. Sia gli aqribu[ che le tabelle possono essere rinomina[ per mezzo di Alias con il costruqo as.
96
97 SELECT SQL La clausola where ammeqe come argomento un'espressione booleana costruita combinando predica[ atomici con gli operatori and, or e not. La sintassi assegna la precedenza all operatore not ma non definisce una relazione di precedenza tra gli operatori and e or.
98
99 JOIN Tipicamente, le informazioni memorizzate in un database sono organizzate su più tabelle I legami tra righe di tabelle diverse sono mantenu[ aqraverso codici aqraverso cui correlare le righe L estrazione di informazioni contenute su più tabelle richiede pertanto la specifica di: Quali siano le tabelle da prendere in considerazione Quale sia il criterio per correlare le righe delle diverse tabelle
100 JOIN Questa operazione prende il nome di JOIN (o più precisamente theta- join) tra le tabelle e viene eseguita aqraverso due passi: ProdoQo cartesiano tra le due tabelle Concatenare ogni riga della prima tabella con ogni riga della seconda tabella Selezione delle righe conformi al criterio di correlazione
101 JOIN Supponiamo di voler estrarre i da[ rela[vi a ciascun impiegato ed al dipar[mento presso cui lavora
102 JOIN Il criterio per correlare le righe presen[ nelle due tabelle è cos[tuito dall avere il valore dell aqributo Nome nella tabella Dipar[mento uguale al valore dell aqributo Dipart nella tabella Impiegato
103
104
105
106
107
108 Invece che riscrivere il nome per intero delle tabelle, è possibile associare degli alias al nome delle tabelle. Estrarre i nomi degli impiega[ e le ciqà in cui lavorano:
109
110
111 SQL Valori nulli SQL fornisce un predicato per la ges[one dei valori nulli. La sintassi è: AQributo is [ not ] null e risulta vero solo se l aqributo ha valore nullo (o non nullo se usato nella forma is not null).
112
113 Duplica[ Nel modello relazionale non si ammeqe che una relazione possa contenere righe uguali SQL possono esserci più righe uguali (deqe duplica[) nel risultato di una select: eliminare i duplica[ è costoso (richiede tempo) e spesso non necessario SQL esegue la rimozione dei duplica[ solo quando esplicitamente richiesto nell interrogazione CostruQo select dis[nct
114
115
116 Join interni ed esterni Sino ad ora la specifica della condizione di JOIN (theta- join) è stata inclusa nella clausola where Una sintassi alterna[va permeqe di dis[nguere le condizioni di join da quelle di selezione tra le righe. In questo modo è anche possibile specificare le forme esterne dell operatore di join.
117 Join interni ed esterni la condizione di join non compare nella clausola where ma nella clausola from: TipoJoin specifica quale [po di join u[lizzare: inner (valore di default, è il theta- join dell algebra relazionale), right, lew, full (ques[ ul[mi tre possono essere segui[ dalla parola chiave outer).
118
119
120 SELECT SQL Un estensione di SQL- 2 permeqe di far precedere ad ogni join la parola chiave natural. In questo modo si consente la specifica del join natural presente nell algebra relazionale, che prevede di u[lizzare nel join di due tabelle una condizione di implicita uguaglianza su tuj gli aqribu[ caraqerizza[ dallo stesso nome.
121 Ordinamento In SQL è possibile specificare che i risulta[ di una interrogazione siano ordina[ sulla base del valore di alcuni aqribu[. Questo è consen[to aqraverso l uso della clausola order by posta a seguire la clausola where. Sintassi:
122
123 SQL Operatori aggrega1, insiemis1ci ed interrogazioni nidificate
124 Operatori aggrega1 Gli operatori dell algebra relazionale consentono di estrarre informazioni contenute in singole tuple delle tabelle su cui operano: il risultato di una operazione è sempre qualcosa che compare in qualcuna delle tuple degli operandi (o ne è una funzione). Una operazione impossibile: Contare le tuple di una relazione. Per esempio: quan1 impiega1 lavorano nel dipar1mento Produzione? E una operazione impossibile perché il numero di tuple non è un dato che compare esplicitamente in qualcuna delle tuple
125 Operatori aggrega1 Gli operatori aggrega1 consentono di estrarre informazioni che rappresentano proprietà di gruppi di tuple. Per esempio, proprietà calcolabili ahraverso operazioni di conteggio: Calcolare il numero di impiega1 operazioni di somma: Calcolare la somma degli s1pendi degli impiega1 operazioni sta1s1che: Calcolare valor medio e deviazione standard degli s1pendi degli impiega1
126
127 Operatori aggrega1 Gli operatori aggrega1 vengono ges11 dopo aver risolto l interrogazione in base alle clausole from e where Lo standard SQL prevede cinque operatori aggrega1: count, sum, max, min, avg
128 La sintassi: L opzione * res1tuisce il numero di righe L opzione dis1nct res1tuisce il numero di righe con valore diverso e non nullo degli ahribu1 in ListaAHribu1 L opzione all (è il valore di default) res1tuisce il numero di righe con valore non nullo degli ahribu1 in ListaAHribu1
129
130
131 Interrogazioni con raggruppamento In generale, capita spesso di voler applicare l operatore aggregato non ad una intera tabella ma a sohoinsiemi di tuple della tabella La somma degli s1pendi degli impiega1 che lavorano nel dip. Amministrazione, in quello Produzione, Sviluppo In SQL, l esecuzione di queste operazioni richiede la specifica di: Un criterio in base al quale definire gruppi di tuple all interno di una relazione Un operatore aggregato da calcolare separatamente su ciascun gruppo di tuple (count, sum, max, min, )
132 Interrogazioni con raggruppamento La specifica della lista di ahribu1 su cui effehuare il raggruppamento avviene ahraverso la clausola group by La query raggrupperà le righe che possiedono valori uguali sull insieme di ahribu1 della clausola group by Il valore di eventuali operatori aggrega1 sarà valutato separatamente per ciascun gruppo
133
134 Predica1 sui gruppi Con la clausola group by le righe possono essere raggruppate in sohoinsiemi. Le condizioni da verificare a livello di singole tuple compaiono nella clausola where. TuHavia può essere necessario verificare delle condizioni a livello di gruppi. Per esempio: Quali dipar1men1 hanno più di 5 impiega1? Questa interrogazione non può essere risolta imponendo una condizione nella clausola where perché il numero di impiega1 di ciascun dipar1mento non compare come ahributo di una singola tupla Inoltre i gruppi vengono costrui1 dopo aver eliminato le righe che non rispehano la clausola where
135 Predica1 sui gruppi Le condizioni da verificare a livello di gruppo sono specificate ahraverso un nuovo costruho: la clausola having. Questa consente la specifica di un predicato in cui compaiono gli operatori aggrega1.
136
137 Predica1 sui gruppi La condizione espressa nella clausola having viene valutata al termine dell interrogazione In presenza di una clausola where e di una clausola having, la prima ha precedenza sulla seconda: i gruppi vengono compos1 dopo aver verificato la clausola where e solo dopo la composizione dei gruppi si valuta la clausola having
138
139 SELECT SQL La forma generale di un interrogazione SQL che includa le clausole sin'ora viste (altre le vedremo in seguito) è:
140 Operatori aggrega1 In generale, gli operatori aggrega1 non possono essere nidifica1: SELECT avg( count(*) ) SELECT max( sum(valore) ) SELECT avg( sum(valore) ) Sono tuhe espressioni SBAGLIATE L estrazione di questo 1po di informazioni richiede il ricorso a costrue diversi: SELECT nidificate Viste
141 Interrogazioni di 1po insiemis1co SQL mehe a disposizione i seguen1 operatori insiemis1ci: union (unione), intersect (intersezione), except (o minus, differenza). Mentre i risulta1 di intersezione e differenza possono essere espressi u1lizzando altri costrue del linguaggio (interrogazioni nidificate), l operatore di unione arricchisce il potere espressivo di SQL permehendo di scrivere interrogazioni altrimen1 non formulabili.
142 Interrogazioni di 1po insiemis1co Sintassi: SelectSQL { < union [ all ] intersect except > SelectSQL } Gli operatori insiemis1ci assumono come default l eliminazione dei duplica1 (se si vogliono mantenere i duplica1 basta includere la clausola all).
143 Interrogazioni di 1po insiemis1co SQL non richiede che gli schemi su cui vengono effehuate le operazioni insiemis1che siano iden1ci ma solo che gli ahribu1 siano in ugual numero e che abbiano domini compa1bili. La corrispondenza tra ahribu1 si basa sulla loro posizione. In presenza di ahribu1 con nome diverso il risultato ha normalmente il nome del primo operando.
144
145 Interrogazioni nidificate Sino ad ora abbiamo visto interrogazioni in cui l argomento della clausola where si basa su condizioni espresse da predica1 semplici: Confronto riga per riga tra il valore di un ahributo ed una costante o il valore di un altro ahributo Ci sono tuhavia interrogazioni che richiedono una modalità di specifica più complessa, che consenta di effehuare la selezione in base al risultato di una seconda interrogazione Esempio: estrarre nome e cognome dell impiegato che guadagna lo s1pendio massimo Da un analisi riga per riga non siamo in grado di sapere se lo s1pendio di un impiegato è maggiore di quello di tue gli altri
146 Interrogazioni nidificate La soluzione consiste nell estendere il 1po di confron1 che possono essere specifica1 nella clausola where Confronto riga per riga tra il valore di un ahributo ed una costante il valore di un ahributo ed un altro ahributo il valore di un ahributo ed il risultato di una select Nell ul1mo caso, l interrogazione usata per il confronto viene definita direhamente all interno del predicato della clausola where e si parla di interrogazioni nidificate
147
148
149 Interrogazioni nidificate Nell esempio visto, il risultato della select nidificata era un singolo valore (il massimo) TuHavia, non sempre è così. In generale, nelle interrogazioni nidificate può esserci una disomogeneità (un confliho d impedenza) tra i termini messi a confronto nella clausola where: da una parte il valore dell ahributo per una par1colare tupla ( where s1pendio = ) dall altra un insieme di tuple (il risultato dell interrogazione nidificata).
150 Interrogazioni nidificate SQL ges1sce questa disomogeneità con le parole chiave any e all che estendono gli operatori di confronto relazionale (=, <>, <, >, <=, >=). Con any la condizione risulta vera se il confronto tra ahributo e risultato è vero per almeno uno degli elemen1 res1tui1 dall interrogazione. Con all la condizione risulta vera se il confronto tra ahributo e risultato è vero per tue gli elemen1 res1tui1 dall interrogazione. Deve esserci compa1bilità di dominio tra l ahributo oggeho del confronto ed il risultato dell interrogazione.
151
152
153
154
155
156
157
158
159 Le query nidificate consentono di esprimere in modo equivalente interrogazioni che richiedono l uso degli operatori intersezione e differenza. Il ricorso alle query nidificate è molto frequente su quei DBMS che non supportano gli operatori insiemis1ci
DBMS (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
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
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
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,
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
DettagliBasi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati
Basi di dati Il Modello Relazionale dei Dati Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza
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.
DettagliIntroduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico
Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle
DettagliModello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli
Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli gerarchico e reticolare sono più vicini alle strutture
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
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
DettagliBASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA
BASE DI DATI: sicurezza Informatica febbraio 2015 5ASA Argomenti Privatezza o riservatezza Vincoli di integrità logica della base di dati intrarelazionali interrelazionali Principio generale sulla sicurezza
DettagliAlgebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia
Algebra e calcolo relazionale Ripasso Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia I 4 Livelli di astrazione Le Tabelle Livello fisico (o interno)
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
DettagliLezione V. Aula Multimediale - sabato 29/03/2008
Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)
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
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
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
DettagliIntroduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei
Introduzione Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei. ESEMPI DI INSIEMI DI DATI DA ORGANIZZARE ED USARE IN MANIERA EFFICIENTE Introduzione Più utenti con
DettagliMODELLO RELAZIONALE. Introduzione
MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)
DettagliIl linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1
Il linguaggio SQL Structured Query Language SQL è un linguaggio di interrogazione per database proge
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
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
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.
DettagliIntroduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni
Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono
DettagliBasi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale
Basi di Dati e Sistemi Informativi Progettazione logica: Il modello relazionale Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Introduzione Basato sul lavoro di Codd (~1970) E attualmente
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
DettagliLo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.
Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei
DettagliAccess. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
DettagliFacoltà di Farmacia - Corso di Informatica
Basi di dati Riferimenti: Curtin cap. 8 Versione: 13/03/2007 1 Basi di dati (Database, DB) Una delle applicazioni informatiche più utilizzate, ma meno conosciute dai non informatici Avete già interagito
DettagliTEORIA sulle BASI DI DATI
TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere
DettagliElena Baralis 2013 Politecnico di Torino 1
Modello relazionale Docente M2170 Fondamenti di informatica Verdi M4880 Sistemi di elaborazione Bianchi F0410 Basi di dati Neri Docenti Nome Dipartimento Telefono Verdi Informatica 123456 Bianchi Elettronica
DettagliLinguaggi per basi di dati
ALGEBRA RELAZIONALE Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento 2 Linguaggi
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
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
DettagliIl database management system Access
Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio
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
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
DettagliData 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
DettagliI database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:
Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare
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
DettagliIntroduzione ai database relazionali
Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita
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 (, ,
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
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
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
DettagliAttributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota
Attributi e domini Assumiamo un universo infinito numerabile U = {A 0, A 1, A 2...} di attributi. Denotiamo gli attributi con A, B, C, B 1, C 1... e gli insiemi di attributi con X, Y, Z, X 1,... per brevità
DettagliBasi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007
Basi di dati Concetti introduttivi Ultima modifica: 26/02/2007 ESEMPIO INSEGNAMENTI Fisica, Analisi, Informatica Aule Docenti Entità Relazioni Interrogazioni St udent i Database 2 Tabella (I) STUDENTE
DettagliBasi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale
Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente
DettagliSISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione
SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi
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
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à
DettagliIntroduzione all Algebra Relazionale
Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente
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,
DettagliIl Modello Relazionale
Il Modello Relazionale Il modello relazionale 1 Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981
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
DettagliSistemi per la gestione di database: MySQL ( )
Sistemi per la gestione di database: MySQL ( ) Relational Database e Relational Database Management System Un database è una raccolta di dati organizzata in modo da consentire l accesso, il reperimento
DettagliDatabase: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro
Database relazionali: un'introduzione Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro Rappresentazione astratta di aspetti del mondo reale (Universe
DettagliCorso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati
Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente
DettagliInterrogazioni complesse. SQL avanzato 1
Interrogazioni complesse SQL avanzato Classificazione delle interrogazioni complesse Query con ordinamento Query con aggregazione Query con raggruppamento Query binarie Query annidate SQL avanzato 2 Esempio
DettagliMODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE
MODELLO RELAZIONALE Definizione di relazione Schema e istanza Chiave Valori nulli Predicati e vincoli di integrità Vincolo di integrità referenziale cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE
DettagliUN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database
UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database Per comprendere al meglio cosa sia un database, dobbiamo prima introdurre il concetto di
DettagliVincoli di integrità
Vincoli di integrità Non tutte le istanze di basi di dati sintatticamente corrette rappresentano informazioni plausibili per l applicazione di interesse Studenti Matricola Nome Nascita 276545 Rossi 23-04-72?
DettagliInformatica per le discipline umanistiche 2 lezione 10
Informatica per le discipline umanistiche 2 lezione 10 Parte III: il computer come strumento per l interazione e la comunicazione Si è parlato di identità Parte III: il computer come strumento per l interazione
DettagliElementi di Algebra Relazionale
Note dalle lezioni di INFORMATICA (per gli allievi della classe quinta - indirizzo MERCURIO) Elementi di Algebra Relazionale prof. Stefano D.L.Campanozzi I.T.C. Giulio Cesare Bari - a.s. 2008-2009 1 Introduzione
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
DettagliIntroduzione al data base
Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli
DettagliBASI DI DATI - : I modelli di database
BASI DI DATI - : I modelli di database DAL 1960 ci si e' orientati verso 3 direzioni: 1 MODELLO GERARCHICO Se i dati si presentano naturalmente in una struttura ad albero (ES. File System) Limiti: rigidità
DettagliPartite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni
Perché studiare il Modello Relazionale? Capitolo 2 Il modello relazionale È il modello più largamente usato Produttori: IBM, Informix, Microsoft, Oracle, Sybase, etc. Sistemi proprietari nei modelli più
DettagliALGEBRA RELAZIONALE RIEPILOGO
ALGEBRA RELAZIONALE RIEPILOGO PROIEZIONE: (notazione ) Operatore unario per estrarre colonne da una relazione: lista_attributi (R) Lo schema del risultato contiene i soli attributi contenuti in lista_attributi.
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,
DettagliBASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015
BASE DI DATI: introduzione Informatica 5BSA Febbraio 2015 Di cosa parleremo? Base di dati relazionali, modelli e linguaggi: verranno presentate le caratteristiche fondamentali della basi di dati. In particolare
DettagliVincoli di Integrità Approccio dichiarativo alla loro implementazione
Vincoli di Integrità Approccio dichiarativo alla loro implementazione Antonella Poggi Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico
DettagliSecondo Compitino di Basi di Dati
Secondo Compitino di Basi di Dati 10 Giugno 2004 NOME: COGNOME: MATRICOLA: Esercizio Punti previsti 1 18 2 12 3 3 Totale 33 Punti assegnati Esercizio 1 (Punti 18) Si vuole realizzare un applicazione per
Dettagli(anno accademico 2008-09)
Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato
DettagliBasi di dati 9 febbraio 2010 Compito A
Basi di dati 9 febbraio 2010 Compito A Domanda 0 (5%) Leggere e rispettare le seguenti regole: Scrivere nome, cognome, matricola (se nota), corso di studio e lettera del compito (ad esempio, A) sui fogli
DettagliTelerilevamento e GIS Prof. Ing. Giuseppe Mussumeci
Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme
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
DettagliBASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone
BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell
DettagliCorso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati) Lezione 1 (12 dicembre 2008) Introduzione alle Basi di Dati Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini,
DettagliOrganizzazione delle informazioni: Database
Organizzazione delle informazioni: Database Laboratorio Informatico di base A.A. 2013/2014 Dipartimento di Scienze Aziendali e Giuridiche Università della Calabria Dott. Pierluigi Muoio (pierluigi.muoio@unical.it)
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
DettagliSQL - Funzioni di gruppo
una funzione di gruppo permette di estrarre informazioni da gruppi di tuple di una relazione le funzioni di gruppo si basano su due concetti: partizionamento delle tuple di una relazione in base al valore
DettagliInformatica I per la. Fisica
Corso di Laurea in Fisica Informatica I per la Fisica Lezione: Software applicativo II Fogli elettronici e Data Base Software: software di sistema (BIOS) sistema operativo software applicativo ROM Dischi
DettagliProgettazione di un Database
Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di
DettagliModello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi
Modello Relazionale Modello Relazionale Proposto agli inizi degli anni 70 da Codd Finalizzato alla realizzazione dell indipendenza dei dati Unisce concetti derivati dalla teoria degli insiemi (relazioni)
DettagliIntroduzione alla teoria dei database relazionali. Come progettare un database
Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare
DettagliECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2
ECDL - Database European Computer Driving Licence - Modulo 5 - Database LEZIONE 2 Ripasso Introduzione - Ripasso Cosa si intende per dbms? e cosa per database? Quali sono gli elementi che lo compongono?
DettagliData Base. Prof. Filippo TROTTA
Data Base Definizione di DataBase Un Database può essere definito come un insieme di informazioni strettamente correlate, memorizzate su un supporto di memoria di massa, costituenti un tutt uno, che possono
DettagliN ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )
Invia modulo Basi di Dati + Laboratorio INSEGNAMENTO 214-215 ANNO ACCADEMICO Informatica Triennale sede di Brindisi CORSO DI LAUREA IN Paolo Buono DOCENTE 2 1 ANNO DI CORSO SEMESTRE 7 N CREDITI LEZIONI
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
DettagliSistemi di Elaborazione delle Informazioni (C.I. 15) Access
Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Sistemi di Elaborazione delle Informazioni (C.I. 15) Anno Accademico 2009/2010 Docente: ing. Salvatore Sorce Access C.d.L. in Igiene
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
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
DettagliDATABASE RELAZIONALI
1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.
DettagliInformatica (Basi di Dati)
Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Introduzione alle Basi di Dati Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati
DettagliIl seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:
Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto: Tabella Cliente: Tabella NumTel: Tabella Dati_Cliente: L'esempio è per ragioni di chiarezza
DettagliCorso di Informatica RDBMS RDBMS. Corso di Laurea in Conservazione e Restauro dei Beni Culturali
Corso di Laurea in Conservazione e Restauro dei Beni Culturali Corso di Informatica Gianluca Torta Dipartimento di Informatica Tel: 011 670 6782 Mail: torta@di.unito.it RDBMS un Relational DBMS (RDBMS)
DettagliIl linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf
Il linguaggio SQL: trigger Sistemi Informativi T Versione elettronica: 04.7.SQL.trigger.pdf DBMS attivi Un DBMS si dice attivoquando dispone di un sottosistema integrato per definire e gestire regole I
DettagliOttimizzazione delle interrogazioni (parte I)
Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di
Dettagli