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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

2 Contenuti Modello relazionale Cenni sulla progettazione di un data base Normalizzazione delle relazioni A cosa serve e che cos e un DBMS I linguaggi per Data Base SQL

3 Il modello relazionale: concetti fondamentali/1 Il DB relazionale, proposto all inizio degli anni 70 da E.Codd, deve il suo nome al fatto che e basato sul concetto matematico di relazione. Dati n insiemi A1 An si dice relazione un sottoinsieme finito del loro prodotto cartesiano quindi l insieme delle ennuple a1... an con ai appartenente ad Ai (i = 1 n).

4 Il modello relazionale: concetti fondamentali/2 Il numero n si chiama grado della relazione Gli insiemi Ai si chiamano domini Il numero delle n-uple e la cardinalita della relazione.

5 Il modello relazionale: concetti fondamentali/3 Una relazione rappresenta un entita ed e rappresentata da una tabella. I nomi dei domini rappresentano gli attributi dell entita o anche le colonne della relazione Ciascuna n-upla rappresenta un istanza dell entita e quindi una riga della tabella

6 Confronto con gli archivi classici DB relazionale DB classico Tabella Righe Colonne File Record Campo

7 Esempio di relazione/1 A partire dai seguenti insiemi: 1 Insieme di tutte le stringhe che rappresentano nomi e cognomi 2 Insieme di tutte le stringhe che rappresentano le vie di Milano 3 Insieme delle stringhe che rappresentano numeri di telefono...

8 Esempio di relazione/2...si puo costruire la relazione Cittadino che puo essere formalmente definita come: Cittadino(nome, indirizzo, num-tel.) e in forma di tabella: Cittadino nome indirizzo num.tel. Stucchi Ciro Via Accursi Rossi Mario Via Veneto Valeri Carla Via Fonte

9 DB relazionali: requisiti fondamentali/1 1 - Ogni tabella e definita da un unico insieme di colonne corrispondenti agli attributi. 2 - Gli attributi contengono dati di tipo atomico (a singolo valore), non sono ammessi attributi i cui dati sono costituiti da un insieme di valori o da vettori. 3 - La successione delle righe nella tabella e irrilevante

10 DB relazionali: requisiti fondamentali/2 4 - Ogni colonna deve contenere dati omogenei cioe tutti gli elementi della colonna devono essere dello stesso tipo. 5 - In ogni tabella deve esistere un attributo o una combinazione di attributi di valore non nullo la cui combinazione identifica univocamente ciascuna riga della tabella (chiave primaria). 6 - Tutte le righe sono distinte tra loro.

11 Cenni di progettazione DB Livello concettuale: modella la realta dei dati con uno schema in cui vengono individuate le entita, le relazioni che intercorrono tra esse e gli attributi Livello logico: rappresenta il modo con cui i dati sono organizzati negli archivi elettronici. Lo schema logico e derivato dallo schema concettuale applicando opportune regole di derivazione. Livello fisico: e l implementazione del livello logico sui supporti per la registrazione fisica dei dati.

12 Dal modello concettuale a quello logico: regole di derivazione Ogni entita diventa una tabella. Ogni attributo diventa il nome di una colonna della tabella. L associazione 1 a 1 diventa un unica tabella che contiene gli attributi delle due entita. Nell associazione 1 a molti, la chiave primaria dell entita di partenza diventa chiave esterna dell entita di arrivo associata.

13 Operatori relazionali Gli operatori relazionali consentono di effettuare interrogazioni al DB per ottenere i dati desiderati estraendo da una tabella una sottotabella oppure combinando tra loro due o piu tabelle. I piu importanti sono: Selezione Proiezione Congiunzione

14 Operatori relazionali: selezione selezione La selezione (Select) applicata ad una tabella, genera una nuova tabella costituita da tutte le colonne della tabella originale e da un sottoinsieme di righe selezionate in base a delle condizioni prefissate. Le condizioni riguardano i valori che devono essere presenti in una o piu colonne della tabella.

15 Operatori relazionali: proiezione Proiezione L operazione di proiezione (project) applicata ad una tabella genera una tabella risultante contenente tutte le righe e solo un sottoinsieme delle colonne.

16 Operatori relazionali: congiunzione a1 a2 a3 b1 b2 b3 b1 b2 b3 c1 c2 c3 join a1 a2 a3 b1 b2 b3 c1 c2 c3 L operazione di congiunzione (join), applicata a due o piu tabelle aventi uno o piu attributi in comune, genera una tabella risultante contenente tutte le righe delle tabelle combinate secondo i valori uguali dell attributo comune.

17 Normalizzazione Normalizzare le tabelle di un DB relazionale significa verificare la struttura delle tabelle al fine di evitare ripetizione, ridondanza e quindi inconsistenza dei dati. Le tabelle normalizzate facilitano le operazioni di aggiunte, modifica e cancellazione dei dati. Sono individuati tre livelli basilari di normalizzazione o tre forme normali.

18 Prima forma normale/1 Una tabella e in prima forma normale (1 FN) se la sua struttura rispetta le seguenti regole: Gli attributi rappresentano informazioni elementari. I valori che compaiono in una colonna sono dello stesso tipo, cioe appartengono allo stesso dominio. Ogni riga e diversa da tutte le altre. L ordine con cui le righe compaiono nella tabella e irrilevante.

19 Prima forma normale/2 Esempio 1: la relazione: Studente(cognome, nome, classe) non e 1FN. Infatti l attributo classe e composto a sua volta da anno e sezione. Soluzione: la tabella normalizzata e : Studente(cognome, nome, anno, sezione).

20 Prima forma normale/3 Esempio 2: La relazione Dipendente(matricola, nome indirizzo, familiari-a-carico) non e 1FN infatti l attributo familiari-a-carico e costituito da un gruppo di attributi dello stesso tipo. Dipendente Matricola Nome Indirizzo Familiari a carico

21 Prima forma normale/4 Soluzione: Possiamo convertire la relazione in 2 tabelle: Dipendente(matricola,nome, indirizzo) Familiare(cod-fam, nome-fam, matr-dip) Dipendente Matricola Nome Indirizzo Familiare Cod-Fam Nome-fam Matr-dip

22 Prima forma normale/4 Le tabelle cosi individuate facilitano l inserimento di un nuovo figlio a carico del dipendente aggiungendo una nuova riga alla tabella Familiare, senza modificarne la struttura. Possiamo inoltre ritrovare le informazioni relative al capo famiglia con un operazione di congiunzione tra la tabella Dipendente e la tabella Familiare sull attributo comune Matricola del dipendente.

23 Seconda forma normale/1 Una relazione e in seconda forma normale (2FN) quando: e in prima forma normale tutti gli attributi non chiave dipendono dall intera chiave e non solo da una parte di essa (si riferisce a relazioni con chiavi multiple).

24 Esempio: Seconda forma normale/2 Consideriamo il problema dell inventario delle merci che si trovano in alcuni magazzini dislocati in varie localita. Le informazioni essenziali possono essere rappresentate con la seguente relazione: Merce(Cod, Magazzino, Qta, Indir_Magazzino) Codice Magazzino Quantita Ind.Mag.

25 Seconda forma normale/3 La chiave e composta da : Codice e Magazzino in quanto solo il codice non identifica la merce che puo trovarsi in magazzini differenti. L attributo indirizzo magazzino dipende solo da una parte della chiave, la tabella non e 2FN. Soluzione: Merce (Codice, Magazzino, Quantita ) Deposito (Magazzino,Ind-Mag) Codice Magazzino Quantita Magazzino Ind. Mag.

26 Terza forma normale/1 Una relazione e in terza forma normale (3FN) quando: e in seconda forma normale tutti gli attributi non chiave dipendono direttamente dalla chiave, cioe non possiede attributi non chiave che dipendono da altri attributi non chiave (la 3FN elimina la dipendenza transitiva degli attributi dalla chiave. )

27 Terza forma normale/2 Esempio: Consideriamo l anagrafica di un associazione di studenti di scuole diverse. Le informazioni relative a ciascun studente possono essere rappresentate dalla relazione: Studente(Matr., Nome, Scuola, telscuola) Matr. Nome Scuola Tel.Scuola

28 Terza forma normale/3 L attributo telscuola dipende da Scuola e quindi solo transitivamente da Matr. che e la chiave della tabella studente. Soluzione: Studente Matricola Nome Scuola Istituto Scuola Telefono

29 DBMS Il DBMS (Data Base Management System) e il SW che consente di costruire e gestire un DB realizzandolo su memoria di massa. Utenti finali Programmi applicativi DB DBMS

30 Funzioni del DBMS Implementazione del modello logico sul sistema di elaborazione Manipolazione e interrogazione sul DB Controllo dell integrita dei dati Sicurezza e protezione Gestione del Dizionario

31 Linguaggi del DBMS DDL (Data Definition Language) per la descrizione dei dati, delle tabelle e delle viste (creazione DB). DML (Data Manipulation Language) per il trattamento dei dati nel DB (inserimento,modifica o cancellazione dati) DCL (Data Control Language) per stabilire le autorizzazioni agli accessi e i tipi di permessi consentiti agli utenti. Query Language per le interrogazioni all DB.

32 SQL SQL (Structured Query Language) e un linguaggio non procedurale diventato uno standard tra i linguaggi per la gestione dei DB relazionali.

33 SQL: storia /1 Anni 70: IBM introduce System R che e un prototipo di ricerca Anni 80: il prototipo fu adottato con il nome SQL come linguaggio per i SW DBMS prodotti dall IBM (DB2 e SQL/DS) : l ANSI (American National Standards Institute) pubblico il primo standard SQL.

34 SQL: storia /2 1987: l ISO (International Standard Organization) pubblico il suo standard SQL. 1992: furono pubblicati gli aggiornamenti degli standard da ANSI (Ansi X3.135) e da ISO (ISO 9075)

35 SQL: storia /3 Oggi :I prodotti SW DBMS come Oracle, Informix, Dbase, Access utilizzano SQL come linguaggio di comandi per l utente del DB. N.B.: Ci sono delle differenze rispetto allo standard SQL facilmente individuate attraverso la documentazione elettronica o cartacea fornita con i prodotti SW.

36 SQL: caratteristiche SQL offre all utente comandi di: DDL (definizione della struttura del DB). DML (inserimento, variazione e cancellazione dei dati nel DB). DCL (gestione del controllo degli accessi e dei permessi per gli utenti). Query Language (interrogazioni al DB).

37 SQL: identificatori Identificatori: sono sequenze di caratteri che identificano tabelle e attributi. Lo standard prevede una lunghezza max di 18 caratteri. Devono inziare sempre con una lettera.

38 SQL: dati /1 Dati: nella dichiarazione di una tabella occorre specificare il tipo di dati scelto per gli attributi. Alcuni dei tipi standard sono: Charachter (n) (Stringa di lunghezza n) Date (MM/GG/AA) Time (HH:MM) Integer(p) (Numero intero con precisione p) Smallint (Numero intero con precisione 5)

39 SQL: dati /2 Integer (Numero intero con precisione 10) Float(p)(Numero reale con mantissa di precisione p) Real (Numero reale con mantissa di precisione 7) Double precision (Numero reale con mantissa di precisione 15) ecc.

40 SQL: dati/3 Alcune versioni di SQL in specifici ambienti DBMS differiscono dallo standard. Esempio: In Access per Windows si possono trovare i seguenti tipi di dati : BIT (sta per BOOLEAN) Counter (contatore: si autoincrementa ad ogni inserimento di riga nella tabella)

41 SQL: dati/4 Currency (valuta: utile per eseguire calcoli su valori monetari e su numeri a virgola fissa) Longtext (memo: testi di notevoli dimensioni fino a caratteri) Datatime(al posto di DATA e TIME) Single (al posto di REAL)

42 SQL: dati/5 Double (al posto di DOUBLE PRECISION e FLOAT) Long (al posto di INTEGER) Text (al posto di CHARACTER)

43 Definizione tabelle/1 Create table nome tabella (nome attributo1 tipo, nome attributo2 tipo, nome attributo3 tipo,... );

44 Definizione tabelle/2 Create table Personale (Matricola char(5), Cognome char(30), Nome char(20), CodFisc char(16) not null, Assunto date, Filiale smallint, Funzione char(15), Livello smallint, StipBase integer, Via char(25), Cap char(5), Citta char(20), Prov char(2), Dirigente char(5));

45 Definizione tabelle/3 La clausola NOT NULL accanto alla definizione di un attributo indica che in tutte le righe della tabella quella colonna deve essere riempita con un valore non nullo. ATTENZIONE: il valore null e diverso da zero per i dati numerici e dalla stringa vuota per i dati alfanumerici. Assumono valore null tutti gli attributi che hanno un valore non definito o non disponibile.

46 Definizione tabelle/4 Si puo utilizzare lo stesso nome di attributo in tabelle diverse. Per distinguere gli attributi con nome uguale si usa la notazione: Tabella.Attributo

47 Modifica struttura delle tabelle Per modificare la struttura di una tabella gia definita si usa il comando ALTER TABLE con le clausole ADD e DROP. Alter Table Personale add Nascita date; Aggiunge l attributo Nascita di tipo data alla tabella personale. Alter Table Personale drop StipBase ; Toglie l attributo StipBase dalla tabella personale.

48 Indici/1 Create index nome-indice on nome-tabella (Lista-attributi); Se si vuole che gli attributi associati all indice non possano essere duplicati in righe diverse della tabella si utilizza la clausola UNIQUE. Create unique index nome-indice on nome-tabella (Lista-attributi);

49 Indici/2 Create unique index Ipers on Personale (Cognome, Nome); Crea un indice di nome Ipers sulla tabella Personale secondo gli attributi Cognome e Nome. La clausola UNIQUE indica che nella tabella non possono esistere coppie di valori uguali per gli attributi Cognome e Nome.

50 Cancellazione Tabelle e Indici Drop table Personale; Elimina definitivamente la tabella Personale dal DB. Analogamente: Drop index Ipers on Personale; Elimina l indice Ipers dalla tabella Personale;

51 Manipolazione dei Dati Insert e un comando che permette di inserire nuovi dati in una tabella. Update permette di aggiornare dati gia esistenti Delete permette di cancellare dati da una tabella.

52 Manipolazione dei Dati Insert into Personale INSERT (Matricola, Cognome, Nome, CodFisc, Nascita, Assunto,Filiale, Funzione, Livello, StipBase, Via, Cap, Citta, Prov) values ( AB541, ROSSI, MARIO, RSSMRA65M20R341E, 08/20/1965, 08/15/1997, 3, IMPIEGATO, 5, , VIA ROMA 34, 00010, MENTANA, RM ); Inserisce una nuova riga nella tabella Personale.

53 Manipolazione dei Dati UPDATE Update Personale set Livello = 6 where Matricola = AA345 ; Cambia il livello del dipendente con matricola AA345 a 6. Update Personale set StipBase= StipBase * 1.05 where Livello > 5; Aumenta del 5% lo stipendio base di tutti i dipendenti al di sopra del quinto livello.

54 Manipolazione dei Dati Delete from Personale DELETE where Matricola = AA345 ; Cancella la riga relativa al dipendente con matricola AA345. Delete from Personale where StipBase< 760; Elimina dalla tabella Personale tutti i dati relativi ai dipendenti con uno stipendio base minore di 760.

55 Il comando Select/1 In SQL le operazioni di interrogazioni al DB vengono effettuate tramite il potente e versatile comando Select. Tramite questo comando l utente non ha bisogno di sapere dove sono collocati fisicamente i dati: deve specificare al sistema solo quali dati vuole ottenere. Il risultato di ogni interrogazione e una tabella contenente i dati richiesti dall utente.

56 Il comando Select/2 Select [all / distinct] lista colonne from nome tabella o vista [where condizione di ricerca] [group by nome colonna [nome colonna...]] [having condizione di ricerca] [order by nome colonna [asc / desc] [, nome colonna [asc / desc]]...];

57 Il comando Select/3 From Select * La clausola where definisce una tabella intermedia formata solo dalle righe che soddisfano la condizione imposta. L asterisco sostituisce la lista di tutti gli attributi della tabella specificata dopo la parola from.

58 Il comando Select/4 Select * from Personale where prov = MI ; Ottiene tutti i dati dei dipendenti che abitano in provincia di Milano. Equivale a: Select all * from Personale where prov = MI ;

59 Il comando Select/5 Select distinct Funzione from Personale; Ottiene tutte le professioni presenti tra i dipendenti della tabella Personale specificando una sola volta il tipo di funzione anche se e riferita a piu dipendenti.

60 Il comando Select/6 Select Funzione from Personale; Ottiene tutte le professioni presenti tra i dipendenti della tabella Personale, ripetendo la stessa funzione tante volte quanti sono i dipendenti che svolgono quella funzione.

61 Il comando Select/7 Select Cognome, Nome, StipBase as Attuale, StipBase*1.05 as Nuovo from Personale; Visualizza le colonne relative a StipBase con l intestazione Attuale e accanto una colonna con l intestazione Nuovo con i risultati del calcolo dell espressione specificata (cioe in questo caso lo stipendio base aumentato del 5% per ciascun dipendente) il risultato dell interrogazione e visualizzato nel seguente modo:

62 Il comando Select/8 Nome Cognome Attuale Nuovo Rossi Paolo Bianchi Fabrizio Neri Aldo Verdi Antonio

63 Operazioni relazionali: selezione La selezione (Select) applicata ad una tabella, genera una nuova tabella costituita da tutte le colonne della tabella originale e da un sottoinsieme di righe selezionate in base a delle condizioni prefissate. Le condizioni in SQL sono espresse tramite la clausola where. Select * from Personale where Funzione = Dirigente ; selezione

64 Operazioni relazionali: proiezione L operazione di proiezione applicata ad una tabella genera una tabella risultante contenente tutte le righe e solo un sottoinsieme delle colonne. Select Cognome, Nome from Personale; Proiezione

65 Create table Filiali (CodFil smallint, Descrizione char(20), Indirizzo char(25)); Operazioni relazionali: congiunzione/1 Tra la tabella Filiali e la tabella Personale viene stabilita un associazione uno a molti e l attributo Filiale nella tabella Personale diventa chiave esterna. Select * from Personale, Filiali where Filiale = CodFil;

66 Operazioni relazionali: congiunzione/2 Per maggiore chiarezza: Select * from Personale, Filiali where Filiale = CodFil; Personale Matricola Cognome Nome... Filiale... AB001 Rossi Paolo 03 AB003 Verdi Luigi 07 AC002 Carli Amedeo Filiali CodFil Descrizione Indirizzo 03 Sede di Potenza Via Piave 3 04 Sede di Roma Via Napoli 4 05 Sede di Verona Via Roma 5 07 Sede di Padova Via Loreto 6 08 Sede di Palermo Via Monti

67 Operazioni relazionali: congiunzione/3 L operazione di congiunzione genera la tabella contenente tutte le righe di Personale e quelle di Filiali combinate secondo i valori uguali dell attributo comune che e il codice della filiale cui appartiene il dipendente. Personale join Filiali Matricola Cognome Nome... Filiale AB001 Rossi Paolo 03 AB003 Verdi Luigi 07 AC002 Carli Amedeo Descrizione Indirizzo Sede di Potenza Via Piave 3 Sede di Padova Via Loreto 6 Sede di Palermo Via Monti

68 Operazioni relazionali: congiunzione/4 Select Tab1.Cognome,Tab1.Nome, Tab2.Cognome from Personale as Tab1, Personale as Tab2 where Tab1.Dirigente = Tab2.Matricola; Questo comando permette di realizzare una self join. L attributo Dirigente della tabella Personale contiene la matricola della persona che svolge il ruolo di dirigente rispetto a quel dipendente. Le informazioni sui dirigenti sono contenute nella stessa tabella Personale perche anche essi sono dipendenti.

69 Operazioni relazionali: congiunzione/5 Sono da notare l utilizzo degli alias (as) per indicare con due nomi diversi la stessa tabella. Personale Matricola Cognome Nome... Funzione... Dirigente AB101 Rossi Paolo... Impiegato AD501 AB348 Verdi Mario... Manager AD506 AD506 Lucci Luigi... Dirigente AD601 AD501 Ferreri Marco Dirigente AM807 AD601 Risi Anna Dirigente AM AM807 Bianco Laura Amm.Del. null

70 Operazioni relazionali: congiunzione/6 L interrogazione che realizza la self join produce una lista di questo tipo in cui sono elencati il nome e il cognome degli impiegati e il cognome del rispettivo dirigente: Cognome Nome Cognome (Dirigente) Rossi Paolo Ferreri Verdi Mario Lucci Lucci Luigi Risi Ferreri Marco Bianco Risi Anna Bianco Bianco Laura null

71 Operazioni relazionali: congiunzione/7 Select Personale.Cognome, Personale.Nome, Filiali.Descrizione, Filiali.Indirizzo from Personale, Filiali where Personale.Filiale = Filiali.CodFil and Personale.Funzione = Impiegato ; Il risultato e l elenco con il cognome, nome di tutti i dipendenti che hanno la funzione di impiegato inseam alla descrizione e l indirizzo della filiale dove lavorano.

72 Operazioni relazionali/1 Le Tabelle risultanti dalle operazioni relazionali NON vengono memorizzate in alcun modo ma solo visualizzate. Se si desidera memorizzare questi risultati in una tabella si utilizza la clausola into.

73 Operazioni relazionali/2 Select * into Manager from Personale where Funzione = Dirigente ; Crea una nuova tabella di nome Manager con gli stessi attributi, formati e nomi della tabella Personale contenente le informazioni solo dei dipendenti che hanno la funzione di Dirigente.

74 Funzioni statistiche Sono funzioni predefinite usate all interno del comando select. Agiscono su valori contenuti in insiemi di righe. Le funzioni che esamineremo sono: COUNT SUM AVG MIN, MAX

75 Funzioni statistiche: COUNT /1 Count: calcola il numero di righe presenti in una tabella.richiede come argomento * o il nome di un attributo: Select count (*) from Personale; Restituisce il numero di righe presenti nella tabella personale.

76 Funzioni statistiche: COUNT/2 Select count (Funzione) from Personale; Restituisce il numero di righe nelle quali e specificata l attributo Funzione della tabella Personale. In questo caso NON vengono conteggiate le righe in cui il campo Funzione e null.

77 Funzioni statistiche: COUNT /3 La clausola distinct permette di ottenere il numero di valori diversi dell attributo specificato. Select count(distinct Funzione) from Personale where Prov = MI ; Restituisce il numero di differenti professioni dei dipendenti che abitano in provincia di Milano.

78 Funzioni statistiche: SUM /1 La funzione SUM restituisce la somma di tutti i valori contenuti in una colonna di tipo numerico. Gli attributi che sono null vengono considerati zero. Select sum (StipBase) from Personale where Livello = 5; Restituisce la somma degli stipendi base di tutti i dipendenti di quinto livello.

79 Funzioni statistiche: SUM /2 L argomento della funzione SUM puo essere anche un espressione numerica. Select sum (StipBase * 1.05) as Totale from Personale where Livello = 5; Restituisce la somma degli stipendi base aumentati del 5% di tutti i dipendenti di quinto livello con l intestazione specificata dalla clausola as.

80 Funzioni statistiche: AVG La funzione AVG (dall inglese Average) calcola la media aritmetica dei valori contenuti in una colonna di tipo numerico. I valori di tipo null non sono inclusi nel calcolo. Select AVG (StipBase) from Personale where Livello = 5; Restituisce la media degli stipendi base di tutti i dipendenti di quinto livello

81 Funzioni statistiche: MIN e MAX /1 Le funzioni MIN e MAX restituiscono rispettivamente il valore minimo e il valore massimo tra i valori della colonna specificata come argomento. Select MIN (StipBase), MAX (StipBase ) from Personale; Calcola il valore minimo e il valore massimo degli stipendi di tutti i dipendenti.

82 Funzioni statistiche: MIN e MAX /2 I valori possono essere anche di tipo alfanumerico. Select MIN (Cognome), MAX (Cognome ) from Personale; Restituisce il primo e l ultimo cognome dei dipendenti in ordine alfabetico.

83 Operatore di ordinamento /1 La clausola order by all interno di un comando select (solitamente alla fine), consente di ottenere i risultati dell interrogazione in ordine crescente (i numeri dal minore al maggiore e le stringhe dalla A alla Z) oppure decrescente (i numeri dal maggiore al minore e le stringhe dalla Z alla A).

84 Operatore di ordinamento /2 L ordinamento crescente si ottiene specificando la parola chiave ASC. L ordinamento decrescente si ottiene specificando la parola chiave DESC. L ordinamento e crescente per default il che significa che bisogna specificare la clausola DESC se si vuole un ordinamento decrescente e niente se si vuole un ordinamento crescente.

85 Operatore di ordinamento /3 Select Cognome, Nome, Funzione, Livello from Personale order by Cognome, Nome; Produce l elenco alfabetico dei dipendenti con il cognome, nome, funzione e livello. A parita di cognome le righe sono ordinate per nome.

86 Operatore di ordinamento /4 Select Cognome, StipBase from Personale order by StipBase desc, Cognome; Produce l elenco dei dipendenti in ordine decrescente di stipendio. A parita di stipendio in ordine alfabetico di cognome.

87 Operatore di raggruppamento/1 La clausola group by consente di raggruppare un insieme di righe aventi lo stesso valore nelle colonne indicate. Con l uso delle funzioni di aggregazione si possono elaborare le informazioni contenute in ogni gruppo di righe producendo una riga di risultato per ciascuno.

88 Operatore di raggruppamento /2 In presenza di una group by tutti gli attributi che compaiono accanto alla parola Select devono essere inclusi nella clausola group by oppure devono essere argomento di una funzione di aggregazione. Select Funzione, sum (StipBase), count(*) from Personale group by Funzione;

89 Operatore di raggruppamento /3 Le righe aventi lo stesso valore nel campo Funzione sono concettualmente raggruppate. Per ciascuno dei gruppi cosi formati si calcola la somma degli stipendi base e il numero delle righe di quel gruppo. Il risultato e l elenco delle funzioni con la somma degli stipendi e il numero dei dipendenti che svolgono quella funzione.

90 Operatore di raggruppamento /4 Select Livello, count (Livello) as Conteggio from Personale where Funzione = Impiegato group by Livello; Questo comando produce in output la lista dei livelli esistenti tra i dipendenti che hanno funzione di impiegato con il numero di dipendenti per ciascun livello. La clausola as permette di visualizzare il risultato della funzione count con l intestazione Conteggio.

91 Operatore di raggruppamento /5 La clausola having viene usata a completamento del group by per sottoporre al controllo di una o piu condizioni i gruppi creati. E analoga al where con la differenza che con where vengono poste condizioni sulle righe della tabella, con la clausola having il controllo delle condizioni e fatto su gruppi di righe.

92 Operatore di raggruppamento /6 Select Funzione, AVG(StipBase) from Personale group by Funzione having count(*) > 2; Con questo comando si ottiene la lista delle diverse funzioni dei dipendenti insieme alla media degli stipendi per ciascuna funzione, purche i dipendenti con quella funzione siano piu di due.

93 Condizioni di ricerca /1 Le condizioni di ricerca utilizzate da having e where possono essere costruite con gli operatori di confronto: <, >, =, <>, <=, >= e con gli operatori logici and, or e not. L ordine di applicazione degli operatori e il seguente: il not viene applicato prima di and e and prima di or.

94 Condizioni di ricerca /2 Altri strumenti di ricerca sono parole del linguaggio SQL che indicano operatori o predicati: between in like is null

95 Condizioni di ricerca /3 Select Cognome, Nome, Funzione from Personale where Assunto between 01/01/85 and 12/31/95; Questo comando ottiene l elenco dei dipendenti con cognome, nome e funzione che sono stati assunti tra le date indicate.

96 Condizioni di ricerca /4 Select * from Personale where Prov in ( MI, MS, BS, BO ); Questo comando ottiene l elenco di tutti i dati dei dipendenti risiedono in una delle province indicate tra le parentesi..

97 Condizioni di ricerca /5 L operatore like confronta il valore di un attributo di tipo carattere con un modello di stringa che puo contenere caratteri jolly o metacaratteri. I caratteri jolly sono: _ (underscore) che indica un singolo carattere % (percento)per indicare una sequenza qualsiasi di caratteri.

98 Condizioni di ricerca /6 like xyz% : vengono ricercate tutte le stringhe che iniziano per xyz. like % xyz :vengono ricercate tutte le stringhe che finiscono per xyz. like % xyz% : vengono ricercate tutte le stringhe che contengono i caratteri xyz. like _ABC : controlla tutte le stringhe di 4 caratteri che finiscono con ABC.

99 Condizioni di ricerca /7 Select Cognome, Nome from Personale where Cognome like Ros% ; Questo comando ottiene la lista con il cognome e nome dei dipendenti il cui cognome che inizia con Ros (Rossi, Rossini, Rosi, ecc.)

100 Condizioni di ricerca /8 Select Cognome, Nome from Personale where Cap is not null; Questo comando ottiene la lista con cognome e nome di tutti i dipendenti per i quali e indicato il cap cioe e avvalorato e non nullo. Select Cognome, Nome from Personale where Prov is null; Questo comando ottiene la lista con cognome e nome di tutti i dipendenti per i quali non e indicata la provincia.

101 Data Control Language/1 Grant concede permessi specificando: tipo di accesso (per esempio lettura, scrittura o modifica dati) tabelle del DB sulle quali e consentito l accesso elenco degli utenti ai quali e permesso di accedere.

102 Data Control Language/2 Grant update on Personale to user1, user2; Questo comando concede il diritto di modifica sulla tabella dei dipendenti agli utenti user1,user2. Revoke annulla i permessi. Revoke update on Personale to user1, user2; Questo comando revoca il diritto di modifica sulla tabella dei dipendenti agli utenti user1,user2.

103 Data Control Language/3 I permessi che possono essere concessi o revocati agli utenti sono: ALTER per modificare la struttura delle tabelle DELETE per eliminare righe dalle tabelle INDEX per creare indici INSERT per inserire nuove righe nelle tabelle SELECT per leggere i dati delle tabelle UPDATE per aggiornare i dati nelle tabelle ALL per tutti i permessi precedenti

104 Data Control Language/4 Grant update (Livello, StipBase) on Personale to user3; Questo comando concede il diritto di modifica sulle colonne Livello e StipBase della tabella Personale all utente user3. Grant select (Livello, StipBase) on Personale to user3; Questo comando concede il diritto di lettura delle colonne Livello e StipBase della tabella Personale all utente user3.

105 Data Control Language/5 Create View Impiegati as select * from Personale where Funzione = Impiegato ; Crea una finestra (vista) su tutte le righe della tabella Personale relative ai dipendenti con funzione di impiegati. Drop view Impiegati; Cancella la vista Impiegati.

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

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

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date; CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione

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

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

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

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

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

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

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

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

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

Modello relazionale. ing. Alfredo Cozzi 1

Modello relazionale. ing. Alfredo Cozzi 1 Modello relazionale E fondato sul concetto matematico di relazione tra insiemi di oggetti Una relazione su n insiemi A1, A2,..,An è un sottoinsieme di tutte le n-uple a1,a2,,an che si possono costruire

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

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

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari: SQL SQL (pronunciato anche come l inglese sequel: acronimo di Structured Query Language (linguaggio di interrogazione strutturato Linguaggio completo che presenta anche proprietà di: DDL (Data Definition

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

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

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

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

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

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

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

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

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio

Dettagli

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi Query (Interrogazioni) Ultima modifica: 5/4/2012 SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il Turismo classe L-15! È necessario un modo per interrogare le basi di dati, cioè

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

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

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

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

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

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

Corso di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 6 (15 gennaio 2009) Linguaggio SQL: Data Definition Language (DDL) Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

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

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

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

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

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

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Linguaggio SQL: fondamenti D B M G. 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 2007 Politecnico di Torino 1 Creazione

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

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

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

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

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

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

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

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

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

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

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

Sistemi Informativi e Basi di Dati

Sistemi Informativi e Basi di Dati Sistemi Informativi e Basi di Dati Laurea Specialistica in Tecnologie di Analisi degli Impatti Ecotossicologici Docente: Francesco Geri Dipartimento di Scienze Ambientali G. Sarfatti Via P.A. Mattioli

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

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

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

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

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il

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

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

Gli operatori relazionali

Gli operatori relazionali Gli operatori relazionali Agiscono su una o più relazioni per ottenere una nuova relazione (servono a realizzare le interrogazioni sul database) Ci sono tre operazioni fondamentali per i database relazionali:

Dettagli

Progettazione di Database. Un Esempio

Progettazione di Database. Un Esempio Progettazione di Database Un Esempio Data Base Management System Applicazione 1 Applicazione 2 Applicazione 3 DBMS A B C D E Il Modello Relazionale Una relazione è costituita su un insieme di domini, non

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

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

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

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,

Dettagli

2104 volume III Programmazione

2104 volume III Programmazione 2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106

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

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

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

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

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Le query. Lezione 6 a cura di Maria Novella Mosciatti Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine

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

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

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

Linguaggio SQL. Structured Query Language

Linguaggio SQL. Structured Query Language Linguaggio SQL Structured Query Language Creato negli anni 70 presso IBM Inizialmente solo linguaggio di interrogazione Ora linguaggio di riferimento per DB relazionali Standardizzato grazie al lavoro

Dettagli

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI IL LINGUAGGIO SQL Il linguaggio SQL ( Structured Query Languages) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione dei database relazionali. Il linguaggio procedurale

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

Basi di dati e Sistemi informativi aziendali

Basi di dati e Sistemi informativi aziendali Sistemi informativi Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle 2 2007 Politecnico di Torino

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 1 SQL SQL (Structured Query Language) è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali. Sono stati proposti

Dettagli

I Sistemi Informativi

I Sistemi Informativi I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e

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

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

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

I database relazionali (Access)

I database relazionali (Access) I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale

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

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

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

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

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

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

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

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

User Tools: DataBase Manager

User Tools: DataBase Manager Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview

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

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

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

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server

Dettagli