Corso base Lorenzo Braidi Formazione e consulenza informatica [email protected] .

39
Corso base Corso base Lorenzo Braidi Lorenzo Braidi Formazione e consulenza Formazione e consulenza informatica informatica [email protected] [email protected] http://www.braidi.com http://www.braidi.com

Transcript of Corso base Lorenzo Braidi Formazione e consulenza informatica [email protected] .

Page 1: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Corso baseCorso base

Lorenzo BraidiLorenzo BraidiFormazione e consulenza informaticaFormazione e consulenza informatica

[email protected]@braidi.comhttp://www.braidi.comhttp://www.braidi.com

Page 2: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

AgendaAgenda

Installazione di SQL ServerInstallazione di SQL Server

I database relazionaliI database relazionali

Mictosoft SQL Server 2000Mictosoft SQL Server 2000

Il linguaggio Transact SQLIl linguaggio Transact SQL

Page 3: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Parte PrimaParte Prima

Installazione di SQL ServerInstallazione di SQL Server

Page 4: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

VersioniVersioni

Microsoft SQL Server 2000Microsoft SQL Server 2000 Enterprise editionEnterprise edition Standard editionStandard edition Personal editionPersonal edition Developer editionDeveloper edition

Microsoft SQL Server 7.0Microsoft SQL Server 7.0 Enterprise editionEnterprise edition Standard editionStandard edition Desktop editionDesktop edition Developer editionDeveloper edition

Page 5: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

ComponentiComponenti

Database serverDatabase server

OLAP server (o Analysis service)OLAP server (o Analysis service)

English queryEnglish query

Page 6: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Setup e upgradeSetup e upgrade

Page 7: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Parte SecondaParte Seconda

I database relazionaliI database relazionali

Page 8: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

I database relazionaliI database relazionali

Indipendenza dei dati:Indipendenza dei dati:

La grande differenza tra il modello relazionale e quelli reticolari e La grande differenza tra il modello relazionale e quelli reticolari e gerarchicigerarchici

Modello logicoModello logicoL’operatore conosce la struttura logica dei datiL’operatore conosce la struttura logica dei dati

Modello fisicoModello fisicoNon è necessario sapere dove i dati risiedano per accederviNon è necessario sapere dove i dati risiedano per accedervi

Page 9: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

I database relazionaliI database relazionali

Tabelle:Tabelle:

E’ la rappresentazione del concetto matematico di “Insieme”E’ la rappresentazione del concetto matematico di “Insieme”

TuplaTuplaE’ l’elemento base di una tabellaE’ l’elemento base di una tabella

CampoCampoE’ una colonna di un elementoE’ una colonna di un elemento

Page 10: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

I database relazionaliI database relazionali

Relazioni:Relazioni:

E’ la rappresentazione del concetto matematico di “Prodotto di E’ la rappresentazione del concetto matematico di “Prodotto di insiemi”insiemi”

Prodotto di dominiProdotto di dominiA= {1,2,3}A= {1,2,3} B={h,k}B={h,k} A x B={(1,h),(2,h),(3,h),(1,k),(2,k),(3,k)}A x B={(1,h),(2,h),(3,h),(1,k),(2,k),(3,k)}

Univocità della tuplaUnivocità della tuplaNon esistono dati dupplicati in un insiemeNon esistono dati dupplicati in un insieme

Page 11: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

I database relazionaliI database relazionali

Valore null:Valore null:

Valore sconosciuto Valore sconosciuto

Valore inesistente Valore inesistente

Senza informazione Senza informazione CittàCittà Indirizzo prefetturaIndirizzo prefettura

RomaRoma Via Quattro Via Quattro NovembreNovembre

FirenzeFirenze NullNull

TivoliTivoli NullNull

PratoPrato NullNull

Page 12: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

I database relazionaliI database relazionali

Vincoli di integrità:Vincoli di integrità:

ExtrarelazionaliExtrarelazionaliRelazione tra i dati di due tabelleRelazione tra i dati di due tabelle

IntrarelazionaliIntrarelazionaliRelazioni interne ad una tabella o ad una tuplaRelazioni interne ad una tabella o ad una tupla

Vincoli di dominioVincoli di dominio( voto >= 18 ) and ( voto <= 30 )( voto >= 18 ) and ( voto <= 30 )

Vincoli di tuplaVincoli di tupla( not ( lode =vero ) ) or ( voto = 30 ( not ( lode =vero ) ) or ( voto = 30

))

Page 13: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

I database relazionaliI database relazionali

Chiavi:Chiavi:

Identifica l’univocità di una tuplaIdentifica l’univocità di una tuplaNon possono esistere tuple doppie in una stessa tabellaNon possono esistere tuple doppie in una stessa tabella

Obbligatoria per relazionare la tabellaObbligatoria per relazionare la tabellaNon è possibile mettere in relazione un’informazione di una Non è possibile mettere in relazione un’informazione di una tabella se ad essa non è asociata una chiavetabella se ad essa non è asociata una chiave

Page 14: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

I database relazionaliI database relazionali

… … in pratica …in pratica …Ordine n. 2451Data 22/02/2002

OrdinanteRagione sociale: Ipermercato centro TorriVia/Piazza: Tangenziale n. 242

43100 Parma PRPartita IVA: 27585624

Dettagli ordine

Codice prodotto Descrizione articolo

Presso unitario Quantità

Importo totale

002744 Penne rigate 0,30 100 30,00854215 Spaghetti 0,25 200 50,00545425 Pane precotto 1,00 50 50,00232125 Preparato per Pizza 2,00 30 60,00

TOTALE 380 190,00

Stato ordineRicevuto EvasoDa: Da:In data: In data:

Page 15: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Parte TerzaParte Terza

Microsoft SQL Server 2000Microsoft SQL Server 2000

Page 16: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Strumenti di baseStrumenti di base

Cos’è un database?Cos’è un database?

Cos’è un DBMS?Cos’è un DBMS?

Page 17: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Strumenti di baseStrumenti di base

Configurazione di rete clentConfigurazione di rete clent Configurazione di rete di SQL Configurazione di rete di SQL

ServerServer Gestione serviziGestione servizi Importazione ed esportazione Importazione ed esportazione

datidati ProfilerProfiler Query AnalyzerQuery Analyzer Enterprise ManagerEnterprise Manager

Page 18: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Creazione di un databaseCreazione di un database

NomeNome LinguaLingua File dati e dimensioniFile dati e dimensioni File log e dimensioniFile log e dimensioni OpzioniOpzioni

Page 19: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Creazione di una tabellaCreazione di una tabella

NomeNome ColonneColonne ChiaviChiavi RelazioniRelazioni IndiciIndici VincoliVincoli

Page 20: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Le viste logicheLe viste logiche

Visualizzazione parziale delle colonne di Visualizzazione parziale delle colonne di una tabellauna tabella

Visualizzazione parziale delle righe di Visualizzazione parziale delle righe di una tabellauna tabella

Aggiunta, modifica o mascheratura di Aggiunta, modifica o mascheratura di colonne di una tabellacolonne di una tabella

Visualizzazione di colonne di differenti Visualizzazione di colonne di differenti tabelletabelle

Page 21: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Creazione di una vistaCreazione di una vista

NomeNome TabelleTabelle ColonneColonne RelazioniRelazioni RestrizioniRestrizioni

Page 22: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Creazione di una vista: la Creazione di una vista: la sintassi T-SQLsintassi T-SQL

CREATE VIEW VW_AssegniCREATE VIEW VW_Assegni

((

Code,Code,

[...][...]

DataEmissioneDataEmissione

) )

ASAS

SELECT SELECT

A.Code,A.Code,

[...][...]

A.DataEmissioneA.DataEmissione

FROM FROM Assegni AS AAssegni AS A

[…][…]

Page 23: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Gestione di un databaseGestione di un database

Backup e restoreBackup e restore

Import ed export di datiImport ed export di dati

Compattazione degli spaziCompattazione degli spazi

Page 24: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Backup e restoreBackup e restore

Salvataggio e ripristino di informazioniSalvataggio e ripristino di informazioni Salvataggio e ripristino di codice Salvataggio e ripristino di codice

sorgentesorgente Trasporto di informazioniTrasporto di informazioni Trasporto di dati e logicheTrasporto di dati e logiche

Page 25: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Importazione ed Importazione ed esportazione di datiesportazione di dati

Importazione di dati da diverse fontiImportazione di dati da diverse fonti Creazione di strutture atte Creazione di strutture atte

all’accoglimento dei datiall’accoglimento dei dati Esportazione di dati per usi diversi (file Esportazione di dati per usi diversi (file

di testo, ecc.)di testo, ecc.) Schedulazione delle operazioniSchedulazione delle operazioni

Page 26: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Compattazione degli spaziCompattazione degli spazi

Politiche di allocazione degli spaziPolitiche di allocazione degli spazi

… … e se svuoto il database?e se svuoto il database?

Compattazione degli spazi allocatiCompattazione degli spazi allocati

Page 27: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Parte QuartaParte Quarta

Il linguaggio Transact-SQLIl linguaggio Transact-SQL

Page 28: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

SELECTSELECT

ColonneColonne Clausola INTOClausola INTO Clausola FROMClausola FROM Clausola WHEREClausola WHERE Operatori e funzioniOperatori e funzioni

COUNTCOUNT DISTINCTDISTINCT SUMSUM MAXMAX ……

Page 29: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

SELECT – Clausole avanzateSELECT – Clausole avanzate

JOINJOIN

UNIONUNION

GROUP BYGROUP BY

ORDER BYORDER BY

Page 30: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

INSERTINSERT

TabellaTabella

ColonneColonne

ValoriValori

Page 31: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

UPDATEUPDATE

TabellaTabella

ColonneColonne

ValoriValori

CondizioniCondizioni

Page 32: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

DELETEDELETE

TabellaTabella

CondizioniCondizioni

Page 33: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Le stored procedureLe stored procedure

Interfaccia di accesso al databaseInterfaccia di accesso al database Facilitazione di utilizzo per l’utenteFacilitazione di utilizzo per l’utente Gestione delle variazioni della base datiGestione delle variazioni della base dati Logiche di estrazione delle informazioniLogiche di estrazione delle informazioni Miglioramento delle prestazioniMiglioramento delle prestazioni

Perché una SP?Perché una SP?

Page 34: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

SP: La sintassiSP: La sintassi

CREATE PROCEDURE EsempioCREATE PROCEDURE Esempio

@Param1 VARCHAR (15)@Param1 VARCHAR (15)

ASAS

[…][…]

GOGO

Page 35: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Le FunctionLe Function

Logiche di presentazione dei dati Logiche di presentazione dei dati personalizzatepersonalizzate

NON moltiplicazione del codiceNON moltiplicazione del codice

Superamento delle problematiche di Superamento delle problematiche di regional settingsregional settings

Perché le Function?Perché le Function?

Page 36: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Function: La sintassiFunction: La sintassi

CREATE FUNCTION EsempioCREATE FUNCTION Esempio

(@param1VARCHAR(15))(@param1VARCHAR(15))

RETURNS VARCHAR(20)RETURNS VARCHAR(20)

ASAS

BEGINBEGIN

[…][…]

RETURN @sumRETURN @sum

ENDEND

GOGO

Page 37: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

I triggerI trigger

Automazione di procedure di controlloAutomazione di procedure di controllo Automazione di procedure collegateAutomazione di procedure collegate Gestione di integrità interne o esterneGestione di integrità interne o esterne Aggancio di strati applicativi esterni a Aggancio di strati applicativi esterni a

SQL ServerSQL Server

Perché i trigger?Perché i trigger?

Page 38: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Trigger: Le tipologieTrigger: Le tipologie

Trigger “classici”Trigger “classici” FOR INSERTFOR INSERT FOR UPDATEFOR UPDATE FOR DELETEFOR DELETE

Trigger “INSTED OF”Trigger “INSTED OF”

Trigger con “COLUMNS_UPDATED”Trigger con “COLUMNS_UPDATED”

Trigger con “IF UPDATE”Trigger con “IF UPDATE”

Page 39: Corso base Lorenzo Braidi Formazione e consulenza informatica Lorenzo@braidi.com .

Trigger: La sintassiTrigger: La sintassi

CREATE TRIGGER EsempioCREATE TRIGGER Esempio

ON TabellaEsempioON TabellaEsempio

FOR DELETE, INSERT, UPDATE FOR DELETE, INSERT, UPDATE

AS AS

BEGINBEGIN

[…][…]

ENDEND

GOGO