Domini elementari in SQL

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Domini elementari in SQL"

Transcript

1 SQL SQL è un acronimo per Structured Query Language. Fu sviluppato originalmente come linguaggio per il DBMS System R dall IBM Research Laboratory (San Jose, California) nei tardi anni settanta. Al giorno d oggi è ormai considerato uno standard per i database relazionali. SQL fornisce le primitive sia di un DDL che di un DML. L ANSI (American National Standards Institute) e l ISO (International Standardization Organization) hanno provveduto a definire una versione di riferimento di SQL fin dal Da allora vi sono le seguenti versioni: SQL-89 (1989): versione ormai obsoleta con funzionalità minimali SQL-2 (1992): è la versione di riferimento per i sistemi commerciali SQL-3 (1999): include nuove caratteristiche frutto di ricerca recente SQL è considerata la lingua franca dei DBMS, i.e., è l unico linguaggio che fornisce la garanzia di poter interagire con un database relazionale in modo indipendente dalle particolarità dell interfaccia di quest ultimo.

2 SQL SQL-2 è un linguaggio molto complesso e non esiste ancora un sistema commerciale che lo implementi perfettamente. Esistono quindi vari gradi di compatibilità: Entry SQL (similare a SQL-89) Intermediate SQL (sono incluse le caratteristiche che meglio si adattano alla richiesta del mercato) Full SQL (sono implementate tutte le caratteristiche dello standard) D altra parte molti sistemi commerciali presentano caratteristiche che non sono contemplate nello standard. In generale tutti i sistemi sono molto aderenti allo standard per quanto riguarda gli aspetti consolidati di SQL, mentre differiscono fra loro e rispetto a SQL-2 quando si considerano le caratteristiche più avanzate ed innovative.

3 Domini elementari in SQL Il dominio character permette di rappresentare singoli caratteri o stringhe: character [varying] [(lunghezza)] [character set nome] Esempi: 1) stringhe composte da 20 caratteri: character (20) 2)stringhe composte da al più 100 caratteri dell alfabeto russo: character varying (100) character set Cyrillic Al posto di character e character varying si possono usare le forme compatte var e varchar. Il dominio bit permette di rappresentare attributi (flag) che specificano se un oggetto ha o meno una certa proprietà; infatti un attributo con dominio bit può assumere soltanto il valore 0 o il valore 1. E anche possibile avere come domini stringhe bi bit tramite la sintassi seguente: bit [varying] [(lunghezza)] Esempi: 1) stringhe di 20 bit: bit (20) 2) stringhe di al più 35 bit: bit varying (35) o varbit(35)

4 Domini elementari in SQL Domini numerici esatti: numeric [(Precisione [,Scala])] decimal [(Precisione [,Scala])] integer smallint Esempi: 1) Valori da 99 a +99: decimal (2) 2) Valori da a : numeric (5,2) Domini numerici approssimati (numeri a virgola mobile): float [(Precisione)] double precision real

5 Domini elementari in SQL In SQL-2 sono stati introdotti dei domini specifici al fine di rappresentare informazioni temporali: date time [(Precisione)] [with time zone] timestamp [(Precisione)] [with time zone] Ognuno dei domini precedenti è costituito da campi: year, month e day per date hour, minute, second per time year, month, day, hour, minute, second per timestamp La precisione rappresenta il numero di cifre decimali destinate a rappresentare le frazioni di secondo. Nel caso venga specificata una time zone, si hanno a disposizione due ulteriori campi (timezone_hour e timezone_minute) che rappresentano la differenza fra l ora locale e quella di Greenwich (Universal Coordinated Time).

6 Domini elementari in SQL Gli intervalli temporali sono un tipo di dominio che permette di rappresentare informazioni corrispondenti alla durata di un azione, i.e., intervalli di tempo. La sintassi è la seguente: interval PrimaUnitàTemporale [to UltimaUnitàTemporale] La PrimaUnitàTemporale può essere accompagnata dalla precisione che indica il numero di cifre in base 10 che possono essere usate nella rappresentazione. Quando l unità temporale più piccola è second, si può specificare il numero di cifre decimali che possono occorrere dopo la virgola. Esempi: 1) intervalli fino a 99 anni e 11 mesi: interval year to month 2) intervalli fino a anni e 11 mesi: interval year(5) to month 3) intervalli fino a 9999 giorni, 23 ore, 59 minuti e 59, secondi: interval day(4) to second(6)

7 Definizione di schemi In SQL uno schema è un insieme di domini, indici, tabelle, asserzioni, viste e privilegi. La sintassi per creare un nuovo schema è la seguente: create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} dove autorizzazione indica il nome dell utente proprietario dello schema (se non specificato si assume che sia l utente che ha lanciato il comando). NomeSchema è opzionale e, nel caso in cui non venga specificato, si assume il nome del proprietario. DefElementoSchema rappresenta gli elementi che compongono lo schema (non è necessario specificarli tutti al momento della creazione di quest ultimo).

8 Definizione di tabelle La sintassi per la creazione di una tabella è la seguente: create table NomeTabella (NomeAttributo Dominio [ValoreDiDefault] [Vincoli] {, NomeAttributo Dominio [ValoreDiDefault] [Vincoli]} {AltriVincoli} ) Quindi una tabella è costituita da un insieme ordinato di attributi con i rispettivi domini (ed eventuali valori di default) e da un insieme (eventualmente vuoto) di vincoli. L insieme denotato da AltriVincoli si riferisce a quei vincoli definiti su più attributi della tabella. Esempio: create table Dipartimento (Nome varchar (20) primary key, Indirizzo varchar(50), CodicePostale char(5) )

9 Domini definiti dall utente SQL permette all utente di definire dei nuovi domini a partire da quelli elementari tramite la sintassi seguente: create domain NomeDominio as DominioEsistente [ValoreDiDefault] [Vincoli] Quindi un dominio definito dall utente associa NomeDominio con il dominio DominioEsistente (può essere predefinito o definito in precedenza dall utente), un eventuale valore di default ed eventuali vincoli. L utilità di questi domini derivati è che permettono di associare un nome con un insieme di vincoli. In tal modo si può usarli ripetutamente nella definizione delle tabelle con il vantaggio che un eventuale cambiamento nella definizione originale si propaga automaticamente in tutti i punti in cui quest ultima è stata utilizzata.

10 Valori di default I valori di default che compaiono nelle definizioni dei domini ed in quelle delle tabelle specificano i valori che devono assumere gli attributi corrispondenti quando, al momento dell inserimento di una nuova riga (tupla), non vengono specificati dei valori per essi. Esempio: NumeroDipendenti smallint default 0 Se non si specifica un valore di default, il sistema assume che esso sia NULL. Nel caso in cui siano stati specificati contemporaneamente un valore di default per il dominio ed uno per l attributo corrispondente all interno della definizione di una tabella, quest ultimo ha la precedenza.

11 Vincoli intra-relazionali Not null: un attributo il cui dominio sia seguito dal vincolo not null non potrà mai assumere il valore NULL. Quindi in fase di inserimento è sempre necessario specificare un valore per l attributo, a meno che non ve ne sia uno di default. Unique: si applica ad un attributo od un insieme di attributi, imponendo che l attributo o l insieme di attributi sia una chiave od una superchiave. Quindi non ci possono essere due righe distinte che assumano gli stessi valori (ad eccezione del valore NULL) in corrispondenza dell attributo o dell insieme di attributi specificati come unique. Primary key: può essere specificato solo una volta per tabella. L attributo o gli attributi interessati diventano la chiave primaria e non possono assumere valori nulli e, ovviamente, devono essere una chiave.

12 Vincoli di integrità referenziale Un vincolo di integrità referenziale stabilisce una corrispondenza fra i valori degli attributi di una tabella (interna) ed i valori degli attributi di un altra tabella (esterna). Il vincolo stabilisce che per ogni riga della tabella interna i valori degli attributi specificati nel vincolo (se non sono nulli) devono corrispondere a quelli di una riga della tabella esterna. L unica restrizione imposta sugli attributi della tabella esterna è che questi siano soggetti al vincolo unique. Solitamente l insieme di attributi della tabella esterna che entrano in gioco in un vincolo di integrità referenziale sono quelli che compongono la chiave primaria.

13 Esempio create table Impiegati (Matricola integer primary key, Nome varchar (20), Cognome varchar (20), Dipartimento char (15), Stipendio numeric (9) default 0, Indirizzo varchar (100), foreign key(dipartimento) references Dipartimenti(NomeDip), unique(nome,cognome) )

14 Violazione di un vincolo di integrità referenziale Vi sono due modi di violare un vincolo di integrità referenziale: Operare dei cambiamenti sulla tabella interna. Operare dei cambiamenti sulla tabella esterna. Nel caso del primo tipo di violazione, l operazione viene rifiutata dal sistema. Nel caso del secondo tipo di violazione, vi sono varie possibilità: operazioni di aggiornamento: cascade: il nuovo valore dell attributo coinvolto nel vincolo della tabella esterna viene assegnato all attributo corrispondente di tutte le righe vincolate della tabella interna. set null: il valore NULL viene assegnato all attributo corrispondente di tutte le righe vincolate della tabella interna al posto del valore modificato nella tabella esterna. set default:il valore di default viene assegnato all attributo corrispondente di tutte le righe vincolate della tabella interna al posto del valore modificato nella tabella esterna. no action: l operazione viene rifiutata dal sistema.

15 Violazione di un vincolo di integrità referenziale Operazione di cancellazione di un elemento della tabella esterna: cascade: tutte le righe corrispondenti della tabella interna vengono eliminate. set null: il valore NULL viene assegnato nella tabella interna all attributo corrispondente al posto del valore cancellato nella tabella esterna. set default: il valore di default viene assegnato nella tabella interna all attributo corrispondente al posto del valore cancellato nella tabella esterna. no action: l operazione di cancellazione viene rifiutata dal sistema. L asimmetria di comportamento in caso di violazione di un vincolo di integrità referenziale è dovuto al fatto che alla tabella esterna viene attribuita maggiore importanza, mentre la tabella interna deve semplicemente adattarsi alle variazioni.

16 Esempio create table Impiegati (Matricola integer primary key, Nome varchar (20), Cognome varchar (20), Dipartimento char (15), Stipendio numeric (9) default 0, Indirizzo varchar (100), foreign key (Dipartimento) references Dipartimenti(NomeDip) on delete set null on update cascade, unique(nome,cognome) )

17 Modifica di schemi (alter) Il comando alter permette di modificare domini e tabelle preesistenti: alter domain NomeDominio <set default ValoreDiDefault drop default add constraint Vincolo drop constraint NomeVincolo> alter table NomeTabella < alter column NomeAttributo <set default ValoreDiDefault drop default> add constraint Vincolo drop constraint NomeVincolo add column DefinizioneAttributo drop column NomeAttributo> Quando si aggiunge un nuovo vincolo i dati esistenti devono soddisfarlo, altrimenti la modifica dello schema viene rifiutata.

18 Modifica di schemi (drop) Il comando drop permette di eliminare dei componenti: drop <schema domain table view assertion> NomeComponente [restrict cascade] L opzione restrict è quella di default ed impedisce l eliminazione del componente specificato se quest ultimo non è vuoto oppure è in uso in un altro componente. L opzione cascade al contrario, oltre ad eliminare il componente specificato, elimina anche tutti i componenti dipendenti. Quando si elimina un dominio definito dall utente, gli attributi corrispondenti assumono come nuovo dominio quello di base usato nella definizione. Ad esempio se elimino il dominio LongString (creato con il comando create domain LongString as char (100)), tutti gli attributi aventi come dominio LongString assumono come nuovo dominio char (100).

19 Metadati I DBMS relazionali memorizzano e gestiscono la descrizione delle tabelle presenti nei database sempre tramite strutture relazionali, i.e., tabelle. Questo meccanismo prende il nome di riflessività. Vi sono quindi due tipi di tabelle: Le tabelle che contengono i dati veri e propri. Le tabelle che contengono i metadati (dati che descrivono dati); queste ultime prendono il nome di catalogo della base di dati o dizionario. In teoria la riflessività permetterebbe di gestire i metadati con gli stessi comandi che permettono di gestire i dati. In pratica però si preferisce non seguire questo approccio per le seguenti ragioni: Per chiarezza è opportuno distinguere i comandi che operano sugli schemi da quelli che operano sui dati. Il dizionario cambia da sistema a sistema; quindi manipolazioni dirette sarebbero rivolte ad uno specifico sistema senza essere facilmente portabili su un altro DBMS. Le manipolazioni dirette possono essere pericolose se non tengono conto di tutti i passaggi necessari per modificare uno schema; infatti potrebbero produrre degli schemi inconsistenti.

20 Query in SQL Le interrogazioni in SQL sono espresse in modo dichiarativo, i.e., basta esprimere le proprietà che devono possedere i dati per estrarli. Ci penserà il DBMS poi a stabilire la procedura, i.e., la sequenza di operazioni da eseguire per ottenere il risultato. Il DBMS si preoccupa di analizzare la query impartita dall utente, traducendola nel suo linguaggio procedurale interno ed ottimizzandola. Quindi, a differenza di quanto avviene in algebra relazionale, l utente non deve generalmente preoccuparsi di scrivere query ottimizzate, ma piuttosto leggibili e facili da modificare in caso di necessità.

21 SELECT Le interrogazioni in SQL vengono specificate per mezzo del comando select: select AttrEspr [[as] Alias] {, AttrEspr [[as] Alias]} from Tabella [[as] Alias] {, Tabella [[as] Alias]} [where Condizione] Il risultato consiste nella selezione fra le righe appartenenti al prodotto cartesiano (formato dalle tabelle specificate nella clausola from) di quelle che soddisfano la condizione specificata nella clausola where. Le colonne incluse nel risultato saranno quelle date dalla valutazione delle espressioni AttrEspr. Gli alias permettono di rinominare sia le colonne che le tabelle coinvolte. Il carattere speciale asterisco (*) può essere usato al posto delle espressioni AttrEspr per estrarre tutte le colonne delle tabelle coinvolte.

22 Esempio Impiegati Dipendenze Numero Nome Età Stipendio Capo Impiegato 101 Mary Smith Mary Bianchi Luigi Neri Nico Bini Marco Celli Siro Bisi Nico Bini Steve Smith Mary Smith La query fornire i numeri di matricola, nomi ed età degli impiegati che guadagnano più di Euro all anno può essere formulata in SQL come segue: select Numero, Nome, Età FROM Impiegati where Stipendio>40000

23 Esempio Fornire lo stipendio mensile dell impiegato Marco Celli: select Stipendio/12 as StipendioMensile from Impiegati where Nome= Marco Celli Fornire i nomi e gli stipendi dei capi degli impiegati che guadagnano più di Euro all anno: select I1.Nome, I1.Stipendio from Impiegati as I1, Dipendenze as D, Impiegati as I2 where I1.Numero=D.Capo and D.Impiegato=I2.Numero and I2.Stipendio>40000 Nella query precedente vi sono tre alias: I1, D e I2. D è semplicemente uno pseudonimo di Dipendenze (tale tabella compare infatti una sola volta nella clausola from). I1 e I2 invece sono due variabili in quanto permettono di riferirsi alla stessa tabella (Impiegati) due volte nella stessa query.

24 Struttura della SELECT La struttura essenziale di una select è la seguente: select ElementiSchema from ListaTabelle where Condizione ElementiSchema specifica gli attributi che dovranno far parte della tabella risultato. L uso dell asterisco impone che tutti gli attributi di tutte le tabelle elencate nella clausola from compaiano nel risultato. La clausola from elenca tutte le tabelle coinvolte nella select. Le condizioni indicate nella clausola where vengono applicate al prodotto cartesiano delle tabelle specificate nella clausola from.

25 La clausola WHERE La condizione espressa nella clausola where è un espressione logica costruita combinando delle semplici condizioni atomiche per mezzo degli operatori and, or e not. Le condizioni atomiche possono essere costruite applicando degli operatori di confronto ad espressioni formate a partire da nomi di attributi e costanti. Gli operatori di confronto disponibili sono: = (uguale), <> (diverso), < (minore), > (maggiore), <= (minore od uguale), >= (maggiore od uguale). Per i confronti fra stringhe SQL mette a disposizione l operatore like. Grazie alla possibilità di usare i caratteri speciali _ (che rappresenta un carattere qualsiasi) e % (che rappresenta una qualunque stringa di caratteri, eventualmente vuota), è possibile utilizzare espressioni come ab%r_ (i.e., tutte le stringhe che iniziano con i caratteri ab e che hanno una r prima dell ultimo carattere). Esempio: select Età, Stipendio from Impiegati where Nome like %Bi%

26 Valori NULL A differenza dell SQL-89 che era basato su una logica a due valori, SQL-2 adotta una logica a tre valori (true, false, unknown) in cui un predicato restituisce il risultato unknown se una delle espressioni a cui è applicato contiene il valore NULL. SQL mette a disposizione i predicati is null e is not null per gestire gli attributi che possono assumere valori nulli: NomeAttributo is [not] null Le condizioni della clausola where possono essere costruite anche tenendo conto di questi predicati. Esempio: select * from Impiegati where Età is not null

27 Duplicati Una differenza sostanziale rispetto all algebra relazionale è che l SQL permette di avere tabelle con righe che assumono gli stessi valori per tutti gli attributi. La ragione di questa scelta è che sarebbe troppo costoso in termini di utilizzo delle risorse del calcolatore implementare un algoritmo che rimuova automaticamente i duplicati. Esempio: la query select I1.Nome, I1.Stipendio from Impiegati as I1, Dipendenze as D, Impiegati as I2 where I1.Numero=D.Capo and D.Impiegato=I2.Numero and I2.Stipendio>40000; Nome Stipendio produce il seguente risultato: Marco Celli Steve Smith Steve Smith Mary Smith Per eliminare i duplicati bisogna utilizzare la parola chiave distinct (dopo select).

28 Inner e outer join SQL-2 ha introdotto una sintassi alternativa per la rappresentazione dei join in modo da distinguere questi ultimi dalle altre condizioni presenti nella clausola where: select AttrEspr [[as] Alias] {, AttrEspr [[as] Alias]} from Tabella [[as] Alias] {[TipoJoin] join Tabella [[as] Alias] on CondizioneJoin} [where Condizione] TipoJoin può essere inner, right outer, left outer o full outer (la parola chiave outer è opzionale). In generale, con un inner join può succedere che alcune righe di una delle tabelle in gioco non vengano incluse nel risultato in quanto non esiste una riga corrispondente nell altra tabella che soddisfi la condizione specificata. Per ovviare a ciò si può utilizzare un outer join che rimpiazza l informazione mancante con dei valori NULL.

29 Inner e outer join Siano date le seguenti relazioni: Impiegati Impiegato Dipartimento Dipartimenti Dipartimento Capo Smith Black White Vendite Produzione Produzione Produzione Acquisti Mori Brown Se vogliamo i dipartimenti, i loro capi ed i relativi dipendenti (includendo anche i dipartimenti che al momento non ne hanno), useremo un right outer join come segue: select Impiegato, Dipartimenti.Dipartimento, Capo from Impiegati right outer join Dipartimenti on Dipartimenti.Dipartimento=Impiegati.Dipartimento Alcuni sistemi per identificare l outer join fanno seguire un simbolo * o + agli attributi coinvolti. Nel caso dell esempio precedente si avrebbe quanto segue: select Impiegato, Dipartimenti.Dipartimento, Capo from Impiegati, Dipartimenti where Dipartimenti.Dipartimento=*Impiegati.Dipartimento Impiegato Black White NULL Dipartimento Produzione Produzione Acquisti Capo Mori Mori Brown

30 Ordinamento delle righe Spesso nelle applicazioni è utile ordinare le righe della tabella generata da una query in base ad un certo criterio, soprattutto nel caso in cui il numero di righe totali sia molto elevato. SQL viene incontro a questa esigenza dell utente mettendo a disposizione la clausola order by: order by AttributoDiOrdinamento [asc desc] {, AttributoDiOrdinamento [asc desc]} Le righe vengono ordinate in base al valore assunto in corrispondenza del primo attributo specificato e, a parità di valore, in base agli attributi successivi.

31 Ordinamento delle righe Ad esempio, per avere la lista di tutte le righe della tabella Impiegati ordinate in base all età (ordinamento ascendente) ed allo stipendio (ordinamento discendente) si esegue la seguente query: select * from Impiegati order by Età, Stipendio desc Numero Nome Età Stipendio 103 Mary Bianchi Steve Smith Mary Smith Luigi Neri Nico Bini Nico Bini Marco Celli Mary Smith Siro Bisi

32 Operatori aggregati Gli operatori aggregati in SQL consentono di valutare proprietà che dipendono da un insieme di righe. In algebra relazionale al contrario tutte le condizioni sono valutate su ogni tupla singolarmente. Un tipico esempio di operatore aggregato è count che consente di calcolare il numero delle tuple che soddisfano una data condizione: select count(*) as Cinquantenni from Impiegati where Età=50 La query precedente fornisce il seguente risultato: Cinquantenni 2

33 L operatore count L operatore aggregato count può essere utilizzato con la sintassi seguente: count (<* [distinct all] ListaAttributi>) Il carattere * restituisce il numero di righe. La parola chiave distinct specifica che deve essere restituito il numero di righe che hanno valori distinti relativamente agli attributi specificati in ListaAttributi. La parola chiave all (default) invece specifica che deve essere restituito il numero di righe che assumono valori diversi da NULL relativamente agli attributi specificati in ListaAttributi. Esempio: select count(distinct Età) from Impiegati

34 Altri operatori aggregati <sum max min avg> ([distinct all] AttrEspr) sum e avg ammettono come espressioni o attributi soltanto quelli che rappresentano valori numerici o intervalli di tempo. max e min richiedono che sui valori dell espressione o attributo forniti come parametri sia definito un ordinamento. Tutti questi operatori si applicano alle righe che soddisfano la condizione della clausola where e forniscono i seguenti risultati: sum: restituisce la somma dei valori corrispondenti a AttrEspr; max e min: restituiscono, rispettivamente il valore massimo e quello minimo di AttrEspr; avg: restituisce la media dei valori di AttrEspr.

35 Esempi select sum(stipendio) as SpesaStipendi from Impiegati SpesaStipendi select avg(età) as EtàMedia from Impiegati EtàMedia 40, select min(età) as Giovane, max(età) as Vecchio from Impiegati Giovane Vecchio 23 50

36 Esempio di query non corretta La query select Nome, max(stipendio) from Impiegati non è corretta. Intuitivamente, si vorrebbe che la query precedente fornisca lo stipendio più alto unitamente al nome dell impiegato che lo percepisce. Tuttavia vi sono due problemi che impediscono di eseguire l interrogazione: Potrebbero esserci più di due righe con il valore massimo per la colonna Stipendio ed il sistema non avrebbe modo di scegliere. Se anche non sussistesse il problema precedente, interrogazioni del genere potrebbero aver senso per min e max, ma non per i rimanenti operatori aggregati. Quindi non è possibile specificare attributi (od espressioni di attributi) con operatori aggregati come nel precedente esempio.

37 La clausola group by Spesso è necessario avere un controllo più fine di quello offerto dagli operatori aggregati. Infatti questi ultimi si applicano a tutte le righe prodotte dalla query, mentre sarebbe a volte utile che venissero applicati a dei sottoinsiemi di righe singolarmente. Per ottenere questo scopo, i.e., suddividere le righe risultato di una query in sottoinsiemi si usa la clausola group by: select Dipartimento, sum(stipendio) from Impiegati group by Dipartimento Impiegati Risultato della query: Nome Cognome Dipartimento Ufficio Stipendio Città Mary Brown Amministrazione Londra Jacques Dupont Produzione Tolosa David Johnson Amministrazione New York Mario Rossi Distribuzione Roma Charles Brown Planning Londra Kurt Maier Planning Monaco Stefan Mortensen Amministrazione Stoccolma Alice Duval Produzione Tolosa Dipartimento Expr1001 Amministrazione Distribuzione Planning Produzione 82000

38 La clausola group by Usando la clausola group by è quindi possibile combinare operatori aggregati e attributi nella target list di una select. Tuttavia SQL impone dei vincoli sintattici agli attributi che possono essere utilizzati congiuntamente nella target list della select; infatti essi devono apparire nella clausola group by. Quindi la seguente query non è corretta (infatti ci sono più uffici per ogni dipartimento): select Ufficio from Impiegati group by Dipartimento A volte tale vincolo appare troppo restrittivo: Impiegati Impiegato Dipartimento Dipartimenti Dipartimento Capo Black Produzione Vendite Brown Smith White Vendite Produzione Produzione Mori La chiave primaria di Dipartimenti è Dipartimento. La query select D.Dipartimento, count(*), D.Capo from Impiegati I inner join Dipartimenti D on (I.Dipartimento=D.Dipartimento) group by D.Dipartimento è scorretta anche se, intuitivamente, è possibile associare un unico capo ad ogni dipartimento (visto che D.Dipartimento è chiave primaria di Dipartimenti).

39 La clausola group by In casi come quello precedente si dice che gli attributi che si vogliono ottenere sono funzionalmente dipendenti da quelli specificati nella clausola group by. In altre parole possono assumere un unico valore in corrispondenza dei singoli valori specificati per il raggruppamento. Modificare SQL per permettere questi casi comporterebbe una complicazione non banale del linguaggio. Quindi si è preferito costringere l utente a specificare un insieme ridondante di attributi nella clausola group by per ottenere il risultato desiderato. Ad esempio, nel caso precedente la query corretta è: select D.Dipartimento, count(*), D.Capo from Impiegati I inner join Dipartimenti D on (I.Dipartimento=D.Dipartimento) group by D.Dipartimento, D.Capo Dipartimento Expr1001 Capo Produzione 2 Mori Vendite 1 Brown

40 La clausola having La clausola group by permette di suddividere le righe in sottoinsiemi per poi applicare ad ognuno di questi un operatore aggregato. In qualche caso può essere utile applicare gli operatori aggregati a sottoinsiemi che soddisfino una certa proprietà. Se la proprietà in questione è verificabile per ogni riga presa singolarmente, allora può essere inclusa nella clausola where. Quando al contrario la proprietà deve essere soddisfatta dal risultato fornito da un operatore aggregato, allora si rende necessaria la clausola having. Quindi nella clausola having vanno specificate le condizioni da applicare al termine dell esecuzione di una query che faccia uso di group by.

41 Esempi select Dipartimento from Impiegati group by Dipartimento having sum(stipendio)> Impiegati Nome Cognome Dipartimento Ufficio Stipendio Mary Brown Amministrazione Jacques Dupont Produzione David Johnson Amministrazione Mario Rossi Distribuzione Charles Brown Planning Kurt Maier Planning Stefan Mortensen Amministrazione Alice Duval Produzione Risultato della query: Dipartimento Amministrazione Planning select Dipartimento from Impiegati where Ufficio='20' group by Dipartimento having avg(stipendio)>25000 Risultato della query: Dipartimento Amministrazione Produzione

42 La clausola having Se è presente la clausola having, ma non quella group by, allora tutte le righe vengono considerate come un unico sottoinsieme. In questo caso se la condizione specificata non è soddisfatta, la tabella risultante sarà vuota. In generale la proprietà specificata nella clausola having può essere costruita seguendo le stesse regole sintattiche relative alla condizione della clausola where. Tuttavia, nonostante SQL permetta di utilizzare predicati sugli attributi che compaiono nella clausola group by, è preferibile specificare questi ultimi nella clausola where. In sostanza la regola da seguire è che nella clausola having vanno specificate soltanto proprietà costruite a partire da predicati su operatori aggregati.

43 Operatori insiemistici SQL mette a disposizione tre operatori che svolgono lo stesso ruolo di quelli insiemistici dell algebra relazionale: union (unione) intersect (intersezione) except o minus (differenza) Ciò che contraddistingue maggiormente gli operatori insiemistici dal resto dei costrutti di SQL è l automatica eliminazione dei duplicati. Un ulteriore differenza è che SQL non richiede che gli schemi delle relazioni (tabelle) siano uguali; infatti è sufficiente che i domini degli attributi siano compatibili. La sintassi è la seguente: select1 {<union intersect except> [all] select2} La parola chiave all (se specificata) consente di includere nel risultato anche gli eventuali duplicati.

44 Esempio select Nome from Impiegati union select Cognome from Impiegati Nome Cognome Dipartimento Ufficio Stipendio Mary Brown Amministrazione Jacques Dupont Produzione David Johnson Amministrazione Mario Rossi Distribuzione Charles Brown Planning Kurt Maier Planning Stefan Mortensen Amministrazione Alice Duval Produzione Impiegati Nome Alice Brown Charles David Dupont Duval Jacques Johnson Kurt Maier Mario Mary Mortensen Rossi Stefan

Il linguaggio SQL Basi di dati 1. Il linguaggio SQL. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine

Il linguaggio SQL Basi di dati 1. Il linguaggio SQL. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL Basi di dati 1 Il linguaggio SQL Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL Basi di dati 2 Introduzione SQL (Structured Query Language)

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

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

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Esercitazione su SQL

Esercitazione su SQL Esercizio 1. Esercitazione su SQL Si consideri la base di dati relazionale composta dalle seguenti relazioni: impiegato Matricola Cognome Stipendio Dipartimento 101 Sili 60 NO 102 Rossi 40 NO 103 Neri

Dettagli

Dal modello concettuale al modello logico

Dal modello concettuale al modello logico Dal modello concettuale al modello logico Traduzione dal modello Entita - Associazione al modello Relazionale Ciclo di sviluppo di una base di dati (da parte dell utente) Analisi dello scenario Modello

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Algebra Relazionale. algebra relazionale

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

Dettagli

Basi di Dati. S Q L Lezione 5

Basi di Dati. S Q L Lezione 5 Basi di Dati S Q L Lezione 5 Antonio Virdis a.virdis@iet.unipi.it Sommario Gestione eventi Gestione dei privilegi Query Complesse 2 Esercizio 9 (lezione 4) Indicare nome e cognome, spesa e reddito annuali

Dettagli

Trovare l aeroporto italiano con il maggior numero di piste

Trovare l aeroporto italiano con il maggior numero di piste AEROPORTO (Città, Nazione, NumPiste) VOLO (IdVolo, GiornoSett, CittàPart, OraPart, CittàArr, OraArr, TipoAereo) AEREO (TipoAereo, NumPasseggeri, QtaMerci) Datalog - Aeroporti da cui non partono aerei 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

Import Dati Release 4.0

Import Dati Release 4.0 Piattaforma Applicativa Gestionale Import Dati Release 4.0 COPYRIGHT 2000-2005 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati.questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 4.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie di

Dettagli

Fondamenti di Teoria delle Basi di Dati

Fondamenti di Teoria delle Basi di Dati Fondamenti di Teoria delle Basi di Dati Riccardo Torlone Parte 6: Potenza espressiva del calcolo Calcolo su domini, discussione Pregi: dichiaratività Difetti: "verbosità": tante variabili! espressioni

Dettagli

Manipolazione di testi: espressioni regolari

Manipolazione di testi: espressioni regolari Manipolazione di testi: espressioni regolari Un meccanismo per specificare un pattern, che, di fatto, è la rappresentazione sintetica di un insieme (eventualmente infinito) di stringhe: il pattern viene

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Database, SQL & MySQL. Dott. Paolo PAVAN Maggio 2002

Database, SQL & MySQL. Dott. Paolo PAVAN Maggio 2002 Database, SQL & MySQL Dott. Paolo PAVAN Maggio 2002 1 Struttura RDBMS MYSQL - RDBMS DATABASE TABELLE 2 Introduzione ai DATABASE Database Indica in genere un insieme di dati rivolti alla rappresentazione

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Appunti di Logica Matematica

Appunti di Logica Matematica Appunti di Logica Matematica Francesco Bottacin 1 Logica Proposizionale Una proposizione è un affermazione che esprime un valore di verità, cioè una affermazione che è VERA oppure FALSA. Ad esempio: 5

Dettagli

Piattaforma Applicativa Gestionale. Import dati. Release 7.0

Piattaforma Applicativa Gestionale. Import dati. Release 7.0 Piattaforma Applicativa Gestionale Import dati Release 7.0 COPYRIGHT 2000-2012 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati. Questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Database Manager Guida utente DMAN-IT-01/09/10

Database Manager Guida utente DMAN-IT-01/09/10 Database Manager Guida utente DMAN-IT-01/09/10 Le informazioni contenute in questo manuale di documentazione non sono contrattuali e possono essere modificate senza preavviso. La fornitura del software

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

Data warehouse.stat Guida utente

Data warehouse.stat Guida utente Data warehouse.stat Guida utente Versione 3.0 Giugno 2013 1 Sommario INTRODUZIONE 3 I concetti principali 4 Organizzazione dei dati 4 Ricerca 5 Il browser 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della

Dettagli

CA RC/Update for DB2 for z/os

CA RC/Update for DB2 for z/os SCHEDA PRODOTTO CA RC/Update for DB2 for z/os CA RC/Update for DB2 for z/os CA RC/Update for DB2 for z/os (CA RC/Update) è uno strumento di gestione di dati e oggetti DB2 che consente agli amministratori

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Progettazione di un DB....in breve

Progettazione di un DB....in breve Progettazione di un DB...in breve Cosa significa progettare un DB Definirne struttura,caratteristiche e contenuto. Per farlo è opportuno seguire delle metodologie che permettono di ottenere prodotti di

Dettagli

PHP: form, cookies, sessioni e. Pasqualetti Veronica

PHP: form, cookies, sessioni e. Pasqualetti Veronica PHP: form, cookies, sessioni e mysql Pasqualetti Veronica Form HTML: sintassi dei form 2 Un form HTML è una finestra contenente vari elementi di controllo che consentono al visitatore di inserire informazioni.

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Gli asteroidi. Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it

Gli asteroidi. Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it Esempio sull'utilizzo dell'osservatorio Virtuale Gli asteroidi Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it Distribuzione degli asteroidi Il Sistema Solare è composto

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

SQL. Dipartimento del Tesoro

SQL. Dipartimento del Tesoro Dipartimento del Tesoro SQL 1 Database...4 1.1 COS È UN DATABASE...4 1.2 DAGLI ARCHIVI AI DBMS...5 1.3 VANTAGGI OFFERTI DAI DBMS...6 1.4 INDIPENDENZA DEI DATI DALL APPLICAZIONE...7 1.5 RISERVATEZZA NELL

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

2. GESTIONE DOCUMENTI NON SBN

2. GESTIONE DOCUMENTI NON SBN Istituto centrale per il catalogo unico delle biblioteche italiane e per le informazioni bibliografiche APPLICATIVO SBN-UNIX IN ARCHITETTURA CLIENT/SERVER 2. GESTIONE DOCUMENTI NON SBN Manuale d uso (Versione

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Linguaggi. Claudio Sacerdoti Coen 11/04/2011. 18: Semantica della logica del prim ordine. Universitá di Bologna

Linguaggi. Claudio Sacerdoti Coen 11/04/2011. 18: Semantica della logica del prim ordine. <sacerdot@cs.unibo.it> Universitá di Bologna Linguaggi 18: Semantica della logica del prim ordine Universitá di Bologna 11/04/2011 Outline Semantica della logica del prim ordine 1 Semantica della logica del prim ordine Semantica

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

INTERPUMP GROUP SPA-VIA E. FERMI 25 42040 S.ILARIO (RE) http: //www.interpumpgroup.it

INTERPUMP GROUP SPA-VIA E. FERMI 25 42040 S.ILARIO (RE) http: //www.interpumpgroup.it PROCEDURA E-COMMERCE BUSINESS TO BUSINESS Guida alla Compilazione di un ordine INTERPUMP GROUP SPA-VIA E. FERMI 25 42040 S.ILARIO (RE) http: //www.interpumpgroup.it INDICE 1. Autenticazione del nome utente

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO Francesco Marchione e Dario Richichi Istituto Nazionale di Geofisica e Vulcanologia Sezione di Palermo Indice Introduzione...

Dettagli

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale.

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale. l Editor vi Negli ambienti Unix esistono molti editor di testo diversi; tuttavia vi è l unico che siamo sicuri di trovare in qualsiasi variante di Unix. vi (visual editor) è stato scritto per essere utilizzabile

Dettagli

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

lavorare con dati tabellari in ArcGis

lavorare con dati tabellari in ArcGis lavorare con dati tabellari in ArcGis 1. gestione delle tabelle 2. aggregazione di dati tabellari 3. relazioni con tabelle esterne 4. modifica di dati tabellari (1) gestione delle tabelle Tipi di tabelle

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

RefWorks Guida all utente Versione 4.0

RefWorks Guida all utente Versione 4.0 Accesso a RefWorks per utenti registrati RefWorks Guida all utente Versione 4.0 Dalla pagina web www.refworks.com/refworks Inserire il proprio username (indirizzo e-mail) e password NB: Agli utenti remoti

Dettagli

FUNZIONI AVANZATE DI EXCEL

FUNZIONI AVANZATE DI EXCEL FUNZIONI AVANZATE DI EXCEL Inserire una funzione dalla barra dei menu Clicca sulla scheda "Formule" e clicca su "Fx" (Inserisci Funzione). Dalla finestra di dialogo "Inserisci Funzione" clicca sulla categoria

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

ESTRAZIONE DI RADICE

ESTRAZIONE DI RADICE ESTRAZIONE DI RADICE La radice è l operazione inversa dell elevamento a potenza. L esponente della potenza è l indice della radice che può essere: quadrata (); cubica (); quarta (4); ecc. La base della

Dettagli

Così come le macchine meccaniche trasformano

Così come le macchine meccaniche trasformano DENTRO LA SCATOLA Rubrica a cura di Fabio A. Schreiber Il Consiglio Scientifico della rivista ha pensato di attuare un iniziativa culturalmente utile presentando in ogni numero di Mondo Digitale un argomento

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Excel basi e funzioni

Excel basi e funzioni Esercitazione di Laboratorio Excel basi e funzioni Contenuto delle celle 1. Testo 2. Numeri 3. Formule Formattazione delle celle (1) Formattazione del testo e dei singoli caratteri: Orientamento a 45 Allineamento

Dettagli

PRESENTAZIONE DI UN SMS AL GATEWAY

PRESENTAZIONE DI UN SMS AL GATEWAY Interfaccia Full Ascii Con questa interfaccia è possibile inviare i dati al Server utilizzando solo caratteri Ascii rappresentabili e solo i valori che cambiano tra un sms e l altro, mantenendo la connessione

Dettagli

ALGEBRA I: CARDINALITÀ DI INSIEMI

ALGEBRA I: CARDINALITÀ DI INSIEMI ALGEBRA I: CARDINALITÀ DI INSIEMI 1. CONFRONTO DI CARDINALITÀ E chiaro a tutti che esistono insiemi finiti cioè con un numero finito di elementi) ed insiemi infiniti. E anche chiaro che ogni insieme infinito

Dettagli

Percorsi di matematica per il ripasso e il recupero

Percorsi di matematica per il ripasso e il recupero Giacomo Pagina Giovanna Patri Percorsi di matematica per il ripasso e il recupero 1 per la Scuola secondaria di secondo grado UNITÀ CMPIONE Edizioni del Quadrifoglio à t i n U 1 Insiemi La teoria degli

Dettagli

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB...

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 1. CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 5 1.3.1 CREAZIONE GUIDATA DELLA FATTURA IN FORMATO XML

Dettagli

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol) ARP (Address Resolution Protocol) Il routing Indirizzo IP della stazione mittente conosce: - il proprio indirizzo (IP e MAC) - la netmask (cioè la subnet) - l indirizzo IP del default gateway, il router

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

SQL PER SISTEMI RELAZIONALI AD OGGETTI

SQL PER SISTEMI RELAZIONALI AD OGGETTI c 88-08-07003-4 1 Approfondimenti Capitolo 2 SQL PER SISTEMI RELAZIONALI AD OGGETTI I sistemi relazionali ad oggetti sono sistemi basati sul modello dei dati relazionale esteso con le caratteristiche tipiche

Dettagli

Lab. 1 - Introduzione a Matlab

Lab. 1 - Introduzione a Matlab Lab. 1 - Introduzione a Matlab Alcune informazioni su Matlab Matlab è uno strumento per il calcolo scientifico utilizzabile a più livelli, dalla calcolatrice tascabile, alla simulazione ed analisi di sistemi

Dettagli

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti 4. Insiemi numerici 4.1 Insiemi numerici Insieme dei numeri naturali = {0,1,,3,,} Insieme dei numeri interi relativi = {..., 3,, 1,0, + 1, +, + 3, } Insieme dei numeri razionali n 1 1 1 1 = : n, m \{0}

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

VC-dimension: Esempio

VC-dimension: Esempio VC-dimension: Esempio Quale è la VC-dimension di. y b = 0 f() = 1 f() = 1 iperpiano 20? VC-dimension: Esempio Quale è la VC-dimension di? banale. Vediamo cosa succede con 2 punti: 21 VC-dimension: Esempio

Dettagli

Il Business Process Management: nuova via verso la competitività aziendale

Il Business Process Management: nuova via verso la competitività aziendale Il Business Process Management: nuova via verso la competitività Renata Bortolin Che cosa significa Business Process Management? In che cosa si distingue dal Business Process Reingeneering? Cosa ha a che

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Breve guida all uso di AMPL

Breve guida all uso di AMPL Breve guida all uso di AMPL Renato Bruni AMPL (A Modeling Language for Mathematical Programming) è un linguaggio di modellazione per la programmazione matematica. Serve ad esprimere un problema di ottimizzazione

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

Teoria degli insiemi

Teoria degli insiemi Teoria degli insiemi pag 1 Easy Matematica di dolfo Scimone Teoria degli insiemi Il concetto di insieme si assume come primitivo, cioè non riconducibile a concetti precedentemente definiti. Sinonimi di

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

Un client su arduino invia i dati acquisiti ad un database

Un client su arduino invia i dati acquisiti ad un database Un client su arduino invia i dati acquisiti ad un database PROBLEMA Si vogliono inviare, periodicamente, i dati acquisiti da alcuni sensori ad un database presente su di un server. Arduino con shield Ethernet

Dettagli

Appendice I. Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice

Appendice I. Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice . Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice Ordinamento di osservazioni: PROC SORT PROC SORT DATA=fa il sort è numerico

Dettagli

F (x) = f(x) per ogni x I. Per esempio:

F (x) = f(x) per ogni x I. Per esempio: Funzioni Primitive (Integrali Indefiniti) (l.v.) Pur essendo un argomento che fa parte del Calcolo Differenziale, molti autori inseriscono funzioni primitive nel capitolo sul Calcolo Integrale, in quanto

Dettagli

Programmazione Funzionale

Programmazione Funzionale Programmazione Funzionale LP imperativi: apparenza simile modello di progettazione = macchina fisica Famiglia dei LP imperativi = progressivo miglioramento del FORTRAN Obiezione: pesante aderenza dei LP

Dettagli

Il caso StraSport (tratto da: Golfarelli, Rizzi. Data Warehouse. Teoria e pratica della progettazione. McGraw-Hill)

Il caso StraSport (tratto da: Golfarelli, Rizzi. Data Warehouse. Teoria e pratica della progettazione. McGraw-Hill) Il caso StraSport (tratto da: Golfarelli, Rizzi. Data Warehouse. Teoria e pratica della progettazione. cgraw-hill) Progettazione concettuale Scelta dei fatti: Fatto ORDINATO FATTURATO BUDGET Relazione

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA Tutti gli anni, affrontando l argomento della divisibilità, trovavo utile far lavorare gli alunni sul Crivello di Eratostene. Presentavo ai ragazzi una

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT Introduzione Un file batch è un file di testo di tipo ASCII che contiene una sequenza di comandi DOS. I file batch devono avere estensione.bat I comandi DOS all interno dei programmi batch sono eseguiti

Dettagli