Presentazione di PowerPoint

Download Report

Transcript Presentazione di PowerPoint

Introduzione a SQL Server 2000
LSA - Laboratorio di Sistemi Informativi
Economico-Aziendali
Salvatore Ruggieri
Dipartimento di Informatica, Università di Pisa
Lab. Sistemi Informativi Economico-Aziendali
SQL Server 2000:
History



Riconducibile al 1987 Sybase (Aston-Tate)
Versioni: personal, standard, enterprise
Prossima release: SQL Server codename Yukon (2a metà 2004)
Data Definition/Manipulation/Control Language



T-SQL (Transact SQL)
Tabelle, Viste, Indici, Vincoli, Regole
Trigger, Stored Procedures, User-defined functions
Tool di amministrazione






Query analyzer
Enterprise manager
Books on line
Service Manager
SQL profiler
Distributed transaction coordinator
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
Query Analyser
Client per definizione ed esecuzione di query SQL
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
Books online
Manuali strumenti, SQL, librerie
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
Enterprise Manager
Client di amministrazione
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
Enterprise Manager

Registrazione server


autenticazione trusted e SQL Server
Database di sistema

master


model


scheduling jobs
tempdb


template di database vuoto
msdb


login, configurazioni
tabelle temporanee
Database di esempio


pubs
Northwind
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
Enterprise Manager

Creazione database



Creazione/modifica/eliminazione tabelle




file dati e log
tabelle di sistema
tipi di dato
indici
visualizzazione contenuto
Creazione/modifica/eliminazione viste
database

Diritti

Nome completo tabella:
schema
SELECT * FROM lsa.dbo.census
SELECT * FROM census
SELECT * FROM lsa..census
Accesso ai dati su RDBMS
tabella
Accesso ai dati: SQL Server 2000,
CSV, XML e altri RDBMS
LSA - Laboratorio di Sistemi Informativi
Economico-Aziendali
Salvatore Ruggieri
Dipartimento di Informatica, Università di Pisa
PARTE I: IMPORT / EXPORT
Lab. Sistemi Informativi Economico-Aziendali
SQL Server 2000 -> CSV
Potremmo farlo usando JDBC
Utility da linea di comando:



bcp (Bulk Copy)

Export
bcp “select * from census..selezione”
queryout outputfile.csv –S
tera.di.unipi.it –U ruggieri –c –t,
 queryout, direzione dei dati da query SQL a file di
output
 -S <server_name>
-U <user_name>
 -c codifica ASCII
-w codifica UNICODE
 Default: \t come separatore e \n come fine riga
 oppure -t <separatore> -r<fine_riga>
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
CSV -> SQL Server 2000

Utility bcp

Import
bcp census..selezione2 in inputfile.csv –S
tera.di.unipi.it –U ruggieri –c –t,

Estensione SQL
BULK INSERT census..Selezione2
FROM 'f:\census\selection.csv'
WITH (FIELDTERMINATOR = ‘,',
ROWTERMINATOR = '|\n' )


'f:\census\selection.csv‘ riferisce un file del server
Limiti in espressività e generalità

Formati, gestione errori, trasformazioni
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
CSV, RDBMS <-> SQL Server 2000
Soluzione generale
Enterprise Manager -> Database -> All
Tasks -> Import / Export Data


Wizard di import export da/verso file di testo o
altri database
Esempio di export/import verso file di testo
 mapping del nome delle colonne

Esempio di export/import verso altri RDBMS
 creazione delle tabelle se non esistenti
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
Esercitazione: TRANSCODIFICA
1. Su un file Excel è presente una tabella con, tra le
altre, una colonna “marital-status” (stato civile). Si
vuole importare tale tabella in SQL server.
2. Creare una tabella SQLServer di traduzione da
Inglese a Italiano dei possibili stati civili.
3. Aggiornare la colonna “marital-status” con la
versione italiana della descrizione dello stato civile.
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
SQL Server 2000 -> XML


Potremmo farlo usando JDBC
Potremmo farlo grazie allo standard di SQL/2003 che prevede
costrutti per generare XML:
SELECT XMLELEMENT(Name “root”,
XMLAGG(
XMLELEMENT(Name “emp”, name)
ORDER BY name ) )
FROM employees
…
<root>
<emp>Luigi Rossi</emp>
<emp>Mario Bianchi</emp>
</root>


SQL/2003 non è attualmente implementato da SQLServer, DB2,
Oracle
Esistono però driver JDBC che accettano query SQL/2003 verso
tali RDBMS: Data Direct
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
SQL Server 2000 -> XML (ROW)
Cosa offre SQL Server 2000?


SELECT … FOR XML RAW
SELECT name As nome, eta
FROM employees
FOR XML RAW

Produce XML in formato ROW (senza root)

colonne come attributi
<row nome=“Luigi Rossi” eta=“30”/>
<row nome=“Mario Bianchi” eta=“40”/>
Accesso ai dati su RDBMS
PARTE II: ACCESSO A DATI ESTERNI
(senza importarli)
Lab. Sistemi Informativi Economico-Aziendali
Access -> SQL Server 2000

OPENROWSET
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'D:\Corso_LSA\L2\src\Nwind.mdb';'admin';'',
'select * from clienti')

'Microsoft.Jet.OLEDB.4.0', provider OLE DB
per Access

'D:\Corso_LSA\L2\src\Nwind.mdb';'admin';
'‘, file Access con utente e password


il file risiede sul SERVER o il path è in formato UNC
'select * from clienti' query SQL per ottenere
il rowset
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
ODBC -> SQL Server 2000
SELECT *
FROM OPENROWSET('MSDASQL',
'FoodMart 2000';'Admin';'',
'select * from customer')



'MSDASQL', provider OLE DB per ODBC
‘FoodMart 2000’;'admin';'‘, DSN di
sistema con utente e password
'select * from customer' query SQL
per ottenere il rowset
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
ODBC -> SQL Server 2000
SELECT *
FROM OPENROWSET('MSDASQL',
‘DRIVER=Microsoft Access Driver
(*.mdb);UID=admin;DBQ=D:\Corso_LS
A\L2\src\Nwind.mdb',
'select * from clienti')

‘DRIVER=Microsoft Access Driver
(*.mdb);UID=admin;DBQ=D:\Corso_LSA\
L2\src\Nwind.mdb' stringa di connessione
ODBC
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
Linked Servers
SQL Server accetta query SQL
con riferimenti a database
accessibili via OLE DB
SELECT A.name, B.address
FROM
sales.dbo.transactions A,
db2..owner.addresses B
WHERE A.name = B.name
Accesso ai dati su RDBMS
Lab. Sistemi Informativi Economico-Aziendali
Linked Servers
Accesso ai dati su RDBMS