Corso base
Lorenzo Braidi
Formazione e consulenza informatica
Lorenzo@braidi.com
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