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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Organizzazione degli archivi

Organizzazione 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

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

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

MODELLO RELAZIONALE. Introduzione

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

Dettagli

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

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

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

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

Dettagli

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

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

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

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Lo 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

Dettagli

Access. P a r t e p r i m a

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

Dettagli

Facoltà di Farmacia - Corso di Informatica

Facoltà 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

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

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

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

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 linguaggio SQL: query innestate

Il 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

Dettagli

Il database management system Access

Il 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

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

Progettazione di Basi di Dati

Progettazione 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

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

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I 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

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

Introduzione ai database relazionali

Introduzione 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

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

Capitolo 13. Interrogare una base di dati

Capitolo 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

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

OSSIF WEB. Manuale query builder

OSSIF 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

Dettagli

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Attributi 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à

Dettagli

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Basi 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

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

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI 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

Dettagli

Dispensa di database Access

Dispensa 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

Dettagli

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati

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

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

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

Il Modello Relazionale

Il 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

Dettagli

Database. Si ringrazia Marco Bertini per le slides

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

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

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

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

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso 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

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. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

MODELLO 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

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

Vincoli di integrità

Vincoli 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?

Dettagli

Informatica per le discipline umanistiche 2 lezione 10

Informatica 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

Dettagli

Elementi di Algebra Relazionale

Elementi 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

Dettagli

CONCETTO DI ANNIDAMENTO

CONCETTO 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

Dettagli

Introduzione al data base

Introduzione 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

Dettagli

BASI DI DATI - : I modelli di database

BASI 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à

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

ALGEBRA RELAZIONALE RIEPILOGO

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

Dettagli

SQL/OLAP. Estensioni OLAP in SQL

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

Dettagli

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

BASE 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

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

Secondo Compitino di Basi di Dati

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

(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

Dettagli

Basi di dati 9 febbraio 2010 Compito A

Basi 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

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento 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

Dettagli

Corso sul linguaggio SQL

Corso 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

Dettagli

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

Dettagli

Corso di Informatica (Basi di Dati)

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

Dettagli

Organizzazione delle informazioni: Database

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

Dettagli

Gestione delle tabelle

Gestione 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

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

Informatica I per la. Fisica

Informatica 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

Dettagli

Progettazione di un Database

Progettazione 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

Dettagli

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

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

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione 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

Dettagli

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

ECDL - 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?

Dettagli

Data Base. Prof. Filippo TROTTA

Data 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

Dettagli

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

N 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

Dettagli

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

Data 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

Dettagli

Sistemi di Elaborazione delle Informazioni (C.I. 15) Access

Sistemi 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

Dettagli

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Corso 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

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

DATABASE RELAZIONALI

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

Dettagli

Informatica (Basi di Dati)

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

Dettagli

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

Dettagli

Corso di Informatica RDBMS RDBMS. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

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

Dettagli

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Il 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

Dettagli

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione 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