Corso base Lorenzo Braidi Formazione e consulenza informatica [email protected] http://www.braidi.com Agenda Installazione di SQL Server I database relazionali Mictosoft SQL Server 2000 Il linguaggio Transact SQL Parte Prima Installazione di SQL Server Versioni Microsoft SQL Server 2000 Enterprise edition Standard edition Personal edition Developer edition Microsoft SQL Server 7.0 Enterprise edition Standard edition Desktop edition Developer edition Componenti Database server OLAP server (o Analysis service) English query Setup e upgrade Parte Seconda I database relazionali I database relazionali Indipendenza dei dati: La grande differenza tra il modello relazionale e quelli reticolari e gerarchici Modello logico L’operatore conosce la struttura logica dei dati Modello fisico Non è necessario sapere dove i dati risiedano per accedervi I database relazionali Tabelle: E’ la rappresentazione del concetto matematico di “Insieme” Tupla E’ l’elemento base di una tabella Campo E’ una colonna di un elemento I database relazionali Relazioni: E’ la rappresentazione del concetto matematico di “Prodotto di insiemi” Prodotto di domini A= {1,2,3} B={h,k} A x B={(1,h),(2,h),(3,h),(1,k),(2,k),(3,k)} Univocità della tupla Non esistono dati dupplicati in un insieme I database relazionali Valore null: Valore sconosciuto Valore inesistente Senza informazione Città Indirizzo prefettura Roma Via Quattro Novembre Firenze Null Tivoli Null Prato Null I database relazionali Vincoli di integrità: Extrarelazionali Relazione tra i dati di due tabelle Intrarelazionali Relazioni interne ad una tabella o ad una tupla Vincoli di dominio ( voto >= 18 ) and ( voto <= 30 ) Vincoli di tupla ( not ( lode =vero ) ) or ( voto = 30 ) I database relazionali Chiavi: Identifica l’univocità di una tupla Non possono esistere tuple doppie in una stessa tabella Obbligatoria per relazionare la tabella Non è possibile mettere in relazione un’informazione di una tabella se ad essa non è asociata una chiave I database relazionali … in pratica … Parte Terza Microsoft SQL Server 2000 Strumenti di base Cos’è un database? Cos’è un DBMS? Strumenti di base Configurazione di rete clent Configurazione di rete di SQL Server Gestione servizi Importazione ed esportazione dati Profiler Query Analyzer Enterprise Manager Creazione di un database Nome Lingua File dati e dimensioni File log e dimensioni Opzioni Creazione di una tabella Nome Colonne Chiavi Relazioni Indici Vincoli Le viste logiche Visualizzazione parziale delle colonne di una tabella Visualizzazione parziale delle righe di una tabella Aggiunta, modifica o mascheratura di colonne di una tabella Visualizzazione di colonne di differenti tabelle Creazione di una vista Nome Tabelle Colonne Relazioni Restrizioni Creazione di una vista: la sintassi T-SQL CREATE VIEW VW_Assegni ( Code, [...] DataEmissione ) AS SELECT A.Code, [...] A.DataEmissione FROM Assegni AS A […] Gestione di un database Backup e restore Import ed export di dati Compattazione degli spazi Backup e restore Salvataggio e ripristino di informazioni Salvataggio e ripristino di codice sorgente Trasporto di informazioni Trasporto di dati e logiche Importazione ed esportazione di dati Importazione di dati da diverse fonti Creazione di strutture atte all’accoglimento dei dati Esportazione di dati per usi diversi (file di testo, ecc.) Schedulazione delle operazioni Compattazione degli spazi Politiche di allocazione degli spazi … e se svuoto il database? Compattazione degli spazi allocati Parte Quarta Il linguaggio Transact-SQL SELECT Colonne Clausola INTO Clausola FROM Clausola WHERE Operatori e funzioni COUNT DISTINCT SUM MAX … SELECT – Clausole avanzate JOIN UNION GROUP BY ORDER BY INSERT Tabella Colonne Valori UPDATE Tabella Colonne Valori Condizioni DELETE Tabella Condizioni Le stored procedure Perché una SP? Interfaccia di accesso al database Facilitazione di utilizzo per l’utente Gestione delle variazioni della base dati Logiche di estrazione delle informazioni Miglioramento delle prestazioni SP: La sintassi CREATE PROCEDURE Esempio @Param1 VARCHAR (15) AS […] GO Le Function Perché le Function? Logiche di presentazione dei dati personalizzate NON moltiplicazione del codice Superamento delle problematiche di regional settings Function: La sintassi CREATE FUNCTION Esempio (@param1VARCHAR(15)) RETURNS VARCHAR(20) AS BEGIN […] RETURN @sum END GO I trigger Perché i trigger? Automazione di procedure di controllo Automazione di procedure collegate Gestione di integrità interne o esterne Aggancio di strati applicativi esterni a SQL Server Trigger: Le tipologie Trigger “classici” FOR INSERT FOR UPDATE FOR DELETE Trigger “INSTED OF” Trigger con “COLUMNS_UPDATED” Trigger con “IF UPDATE” Trigger: La sintassi CREATE TRIGGER Esempio ON TabellaEsempio FOR DELETE, INSERT, UPDATE AS BEGIN […] END GO