Database - SQL. Database. Introduzione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Database - SQL. Database. Introduzione"

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

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1

Il 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

Dettagli

Algebra 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 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)

Dettagli

SQL. Definizione dei da6 in SQL. SQL: "storia" CREATE TABLE: esempio. CREATE TABLE: esempio

SQL. Definizione dei da6 in SQL. SQL: storia CREATE TABLE: esempio. CREATE TABLE: esempio SQL Atzeni, Ceri, Paraboschi, Torlone Basi di da6 Originariamente Structured Query Language, ora "nome proprio" Linguaggio con varie funzionalità: DDL Data Defini6on Language (insieme di comandi per la

Dettagli

DBMS (Data Base Management System)

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

Dettagli

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale Cenni sui DATABASE Cos'e' un database Un database puo' essere definito come una collezione strutturata di record (dati) I dati sono memorizzati su un computer in modo opportuno e possono essere recuperati

Dettagli

Esercitazione 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: 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

Dettagli

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Documentazione SQL Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Definizione tabella Definizione dominio Specifica di valori

Dettagli

INFORMATICA. 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. 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

Dettagli

Modello 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 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

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA 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

Dettagli

Corso di Laboratorio di Basi di Dati

Corso 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

Dettagli

TEORIA sulle BASI DI DATI

TEORIA 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

Dettagli

Linguaggi per basi di dati

Linguaggi 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

Dettagli

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il 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

Dettagli

Il linguaggio SQL: le basi

Il 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

Dettagli

SQL IL LINGUAGGIO DI INTERROGAZIONE

SQL IL LINGUAGGIO DI INTERROGAZIONE SQL IL LINGUAGGIO DI INTERROGAZIONE SQL! Originato da SEQUEL-XRM e System-R (1974-1977) dell IBM! Significato originario Structured Query Language! Standard de facto! Attuale standard ANSI/ISO è SQL:1999

Dettagli

Operazioni sui database

Operazioni 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

Dettagli

OR true null false true true true true null true null null false true null false NOT

OR 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,

Dettagli

Archivi e Basi di Dati

Archivi 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

Dettagli

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza:

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza: DOMANDE 1) Definire i concetti di schema e istanza di una base di dati, fornendo anche un esempio. Si definisce schema di una base di dati, quella parte della base di dati stessa che resta sostanzialmente

Dettagli

Informatica 2 Basi di dati

Informatica 2 Basi di dati Informatica 2 Basi di dati Prof. Giovanni Giuffrida e-mail: giovanni.giuffrida@dmi.unict.it DB - Introduzione 1 Recapiti Prof. Giuffrida Giovanni Email: giovanni.giuffrida@dmi.unict.it Info sul corso:

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi 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,

Dettagli

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia: Corso di Basi di Dati Spaziali Linguaggi: SQL Angelo Montanari Donatella Gubiani Storia Storia: 1974: prima proposta SEQUEL 1981: prime implementazioni 1983: standard di fatto 1986, 1989, 1992 e 1999:

Dettagli

----------------------------------------------------------------------------

---------------------------------------------------------------------------- APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna

Dettagli

Il linguaggio SQL. ing. Alfredo Cozzi 1

Il linguaggio SQL. ing. Alfredo Cozzi 1 Il linguaggio SQL ing. Alfredo Cozzi 1 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare

Dettagli

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

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 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.

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (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

Dettagli

SAP Business Objects XI R3.1

SAP Business Objects XI R3.1 SAP Business Objects XI R3.1 Sistemi Informa;vi Avanza; Anno Accademico 2012/2013 Corso di Laurea Magistrale in Ingegneria Ges3onale Reggio Emilia, 12 aprile 2013 UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO

Dettagli

Basi di dati. 2. Il modello relazionale. Il modello relazionale. Relazione: tre accezioni. 2.1 Basi di dati relazionali. Giuseppe De Giacomo

Basi di dati. 2. Il modello relazionale. Il modello relazionale. Relazione: tre accezioni. 2.1 Basi di dati relazionali. Giuseppe De Giacomo asi di dati Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Anno Accademico 2005/2006 Canale M-Z 2. Il modello relazionale 2.1 asi di dati

Dettagli

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Corso di Laurea Interfacoltà in Biotecnologie Lezione 3: Basi di Dati Lucido 1 Scopo della lezione Definire cos è una base di dati e un sistema di gestione della base di dati

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione 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

Dettagli

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf Il linguaggio SQL: le basi Versione elettronica: SQLa-basi.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che riunisce in sé funzionalità

Dettagli

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati Informatica B Introduzione alle Basi di Dati e ai DBMS Contenuti Introduzione a dati e basi dati DBMS Modello dei dati Informazioni e dati Dato: elemento semanticamente significativo (data, codice, ecc.),

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Basi 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

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione 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)

Dettagli

Introduzione all Algebra Relazionale

Introduzione 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

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati Facoltà di Lingue e Letterature Straniere Base di dati (accezione generica, metodologica) Insieme organizzato di dati utilizzati per il supporto

Dettagli

Basi di Dati: Corso di laboratorio

Basi 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

Dettagli

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

Informatica. 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

Dettagli

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti Istituto Angioy Informatica BASI DI DATI Prof. Ciaschetti Introduzione e prime definizioni Una Base di dati o Database è un archivio elettronico opportunamente organizzato per reperire in modo efficiente

Dettagli

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Basi 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

Dettagli

ITI Galilei Salerno Corso Database ed SQL

ITI Galilei Salerno Corso Database ed SQL ITI Galilei Salerno Corso Database ed SQL prof Carmine Napoli Introduzione Database: Si definisce Database un insieme di dati, di solito di notevoli dimensioni, raccolti, memorizzati ed organizzai in modo

Dettagli

Basi di dati. Microsoft Access. Cosa è. Pietro Pala (pala@dsi.unifi.it) Come iniziare. Aprire un database. Creare un database. Creare un database

Basi di dati. Microsoft Access. Cosa è. Pietro Pala (pala@dsi.unifi.it) Come iniziare. Aprire un database. Creare un database. Creare un database Cosa è Basi di dati Pietro Pala (pala@dsi.unifi.it) Microsoft Access Access è un DBMS relazionale in grado di supportare: Specifica grafica dello schema della base dati Specifica grafica delle interrogazioni

Dettagli

Istruzioni DML di SQL

Istruzioni DML di SQL Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,

Dettagli

Structured Query Language parte 1

Structured Query Language parte 1 Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Structured Query Language parte 1 Come interrogare una base di dati relazionale ed avere la risposta esatta Docente: Gennaro Pepe

Dettagli

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Basi 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

Dettagli

Il modello relazionale dei dati

Il modello relazionale dei dati Il modello relazionale dei dati Master Alma Graduate School Sistemi Informativi Home Page del corso: http://www-db.deis.unibo.it/courses/alma_si1/ Versione elettronica: 04Relazionale.pdf Obiettivi della

Dettagli

SQL come linguaggio di interrogazione. Basi di dati. Interrogazioni SQL. Interpretazione algebrica delle query SQL

SQL come linguaggio di interrogazione. Basi di dati. Interrogazioni SQL. Interpretazione algebrica delle query SQL SQL come linguaggio di interrogazione Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse,

Dettagli

BASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA

BASE 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

Dettagli

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

ESEMPI 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

Dettagli

SQL - Funzioni di gruppo

SQL - 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

Dettagli

Basi di dati. Informatica. Prof. Pierpaolo Vittorini pierpaolo.vittorini@cc.univaq.it

Basi di dati. Informatica. Prof. Pierpaolo Vittorini pierpaolo.vittorini@cc.univaq.it pierpaolo.vittorini@cc.univaq.it Università degli Studi dell Aquila Facoltà di Medicina e Chirurgia 18 marzo 2010 Un esempio di (semplice) database Quando si pensa ad un database, generalmente si immagina

Dettagli

Il linguaggio SQL e Access

Il linguaggio SQL e Access Il linguaggio SQL e Access 1 Linguaggio SQL Caratteristiche generali L SQL (structured query language) è un linguaggio utilizzato per definire, gestire, controllare e reperire dati di un DBMS; prevede

Dettagli

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

SQL: 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,

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, 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

Dettagli

Elena Baralis 2013 Politecnico di Torino 1

Elena 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

Dettagli

Partite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni

Partite 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ù

Dettagli

Sistemi per la gestione di database: MySQL ( )

Sistemi 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

Dettagli

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Vincoli 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

Dettagli

4 SQL : Interrogazioni nidificate

4 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

Dettagli

Interrogazioni complesse. SQL avanzato 1

Interrogazioni 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

Dettagli

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base Sistemi di Elaborazione delle Informazioni DB ed SQL Prof. Silvio Vassallo Modello Relazionale Il modello relazionale si basa sul concetto di RELAZIONE tra insiemi di oggetti. Dati n insiemi A 1,A 2, A

Dettagli

UN 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 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

Dettagli

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso 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:

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (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

Dettagli

Basi di Dati. Programmazione e gestione di sistemi telematici

Basi di Dati. Programmazione e gestione di sistemi telematici Basi di Dati. Programmazione e gestione di sistemi telematici Coordinatore: Prof. Paolo Nesi Docenti: Prof. Paolo Nesi Dr.sa Michela Paolucci Dr. Emanuele Bellini SQL SQL = Structured Query Language Linguaggio

Dettagli

Structured Query Language. Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172

Structured Query Language. Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172 Structured Query Language Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172 Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e

Dettagli

Definizione di domini

Definizione 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

Dettagli

DATA BASE MANAGEMENT SYSTEM

DATA BASE MANAGEMENT SYSTEM DATA BASE (1) Problematica gestione dati: oggetti delle elaborazioni, difficili da gestire, memorizzare, reperire, modificare; talvolta ridondanti/incongruenti; non sufficientemente protetti; spesso comuni

Dettagli

MAX, SUM, AVG, COUNT)

MAX, 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

Dettagli

Informatica Introduzione alle basi di dati

Informatica Introduzione alle basi di dati Informatica Introduzione alle basi di dati Prof. Giovanni Giuffrida e-mail: giovanni.giuffrida@dmi.unict.it 27 November 2014 Basi di Dati - Introd. - Prof. G. Giuffrida 1 Materiale didattico Atzeni,Ceri,Paraboschi,Torlone,

Dettagli

Introduzione alle Basi di Dati

Introduzione alle Basi di Dati 1 Introduzione alle Basi di Dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Sistema Azienda 2 Sistema organizzativo è costituito da una serie di risorse e di regole necessarie

Dettagli

MODULO 5 DATA BASE PROGRAMMA. Progettazione rapida introduzione alla progettazione di DB

MODULO 5 DATA BASE PROGRAMMA. Progettazione rapida introduzione alla progettazione di DB MODULO 5 DATA BASE MODULO 5 - DATA BASE 1 PROGRAMMA Introduzione: concetti generali di teoria Progettazione rapida introduzione alla progettazione di DB Utilizzo di Access pratica sulla creazione e l utilizzo

Dettagli

Le Basi di Dati. Le Basi di Dati

Le 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

Dettagli

Il Domino Character Il domino CHARACTER permette di definire attributi che contengono un singolo carattere o stringhe di caratteri di lunghezza

Il Domino Character Il domino CHARACTER permette di definire attributi che contengono un singolo carattere o stringhe di caratteri di lunghezza Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose

Dettagli

Introduzione. 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 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

Dettagli

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Uso 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

Dettagli

CAPITOLO 5: DATABASE INTRODUZIONE

CAPITOLO 5: DATABASE INTRODUZIONE CAPITOLO 5: DATABASE INTRODUZIONE Una base di dati (o database) è semplicemente una collezione di dati organizzati in qualche modo e con qualche criterio. Il modello più diffuso è quello relazionale, ovvero

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

INFORMATICA 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

Dettagli

Domini Numerici Esatti (1) I domini numerici esatti permettono di definire attributi che contenegono valori esatti interi o con parte frazionaria.

Domini Numerici Esatti (1) I domini numerici esatti permettono di definire attributi che contenegono valori esatti interi o con parte frazionaria. Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose

Dettagli

ISTITUTO DI ISTRUZIONE SUPERIORE Cigna Baruffi Garelli

ISTITUTO DI ISTRUZIONE SUPERIORE Cigna Baruffi Garelli Attività svolta 1. UNITÀ DI APPRENDIMENTO 1: INTRODUZIONE ALLA PROGRAMMAZIONE 1.1. Introduzione ai sistemi numerici: Sistema numerico decimale e binario. Conversioni binario-decimale e decimale binario.

Dettagli

Interrogazione della base di dati

Interrogazione della base di dati Interrogazione della base di dati SQL è un linguaggio di definizione e di manipolazione dei dati. In quanto linguaggio di manipolazione, SQL permette di selezionare dati di interesse dalla base e di aggiornarne

Dettagli

S.Q.L. Introduzione a Structured Query Language. I.T.C. "V.Emanuele II" - Perugia. Prof.Claudio Maccherani 1995-2005 INDICE

S.Q.L. Introduzione a Structured Query Language. I.T.C. V.Emanuele II - Perugia. Prof.Claudio Maccherani 1995-2005 INDICE S.Q.L. Introduzione a Structured Query Language I.T.C. "V.Emanuele II" - Perugia Prof.Claudio Maccherani 1995-2005 INDICE S.Q.L. - STRUCTURED QUERY LANGUAGE (SEQUEL)...1 ISTRUZIONI DI TIPO DDL (DATA DEFINITION

Dettagli

Corso di Basi di Dati. Linguaggi per basi di dati. Linguaggi per basi di dati. Linguaggi per basi di dati: Algebra Relazionale

Corso di Basi di Dati. Linguaggi per basi di dati. Linguaggi per basi di dati. Linguaggi per basi di dati: Algebra Relazionale Corso di Basi di Dati Linguaggi per basi di dati: lgebra Relazionale Donatella Gubiani Linguaggi per basi di dati Si possono distinguere diversi tipi di linguaggi per la gestione dei dati: Linguaggio di

Dettagli

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Sistema di Gestione di Basi di Dati DataBase Management System DBMS Base di dati (accezione generica) collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione (accezione specifica) collezione di dati

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

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

Dettagli

Il linguaggio SQL: viste e tabelle derivate

Il 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

Dettagli

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Il linguaggio SQL è stato originariamente dichiarativo, diventando nel tempo sempre

Dettagli

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Utilizzando 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

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti

Dettagli

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Il 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

Dettagli

Sistemi Informativi Aziendali II

Sistemi Informativi Aziendali II Modulo 2 Sistemi Informativi Aziendali II 1 Corso Sistemi Informativi Aziendali II - Modulo 2 Modulo 2 La gestione delle informazioni strutturate nell impresa: La progettazione di un Data Base; Le informazioni

Dettagli

SQL: Concetti Base -Prima Parte-

SQL: Concetti Base -Prima Parte- SQL: Concetti Base -Prima Parte- Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati: Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia Capitolo 4 SQL Structured Query Language Contiene: DDL (Data Definition

Dettagli

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Join 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

Dettagli

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione Data base relazionale ed SQL Modello relazionale dei data base e il linguaggio standard per la loro gestione Contenuti Modello relazionale Cenni sulla progettazione di un data base Normalizzazione delle

Dettagli