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