Introduzione a SQL Server 2000 by elfphabet4

VIEWS: 0 PAGES: 11

									Introduzione a SQL Server 2000
Silvano Coriani Developer & Platform Evangelism Microsoft

Agenda
• • • • • • • • • Introduzione Implementazione fisica Sicurezza Linguaggio Transact -SQL TransactTools Integrazione con XML Data Transformation Services High Availability Scalability

Introduzione

Client
Results Results Results Query Query Query

SQL Server

OLTP OLTP OLAP

Applicazione Client

Relational Database Management System

Componenti Client-Server ClientApplicazione Client Applicazione Client Database API Database API (OLE DB, ODBC, (OLE DB, ODBC, DB-Library) DB-Library) Client Net -Library Client Net -Library Client SQL Server SQL Server Server Net-Libraries Server Open Data Services Open Data Services Relational Relational Engine Engine

Server

Storage Engine Storage Engine

Processore Processore Memoria Memoria Database Locale

Sviluppo tramite database API
• ADO
– provider ole db – driver odbc tramite provider ole db per odbc – odbc
Data Object Interfaces

ADO

• SQL-DMO SQL• ADO .NET

OLE DB

ADO ADO

• JDBC

– managed provider per ole db – managed provider per odbc – managed provider per SQL Server (TDS nativo) – TDS nativo – RDO – db -library db-

Application Programming Interfaces

OLE DB

Altre sorgenti Altre sorgenti

Database Database Relazionali Relazionali

• Supporto limitato per

Servizi di SQL Server
Servizio MSSQLServer Servizio SQLServerAgent Microsoft Distributed Transaction Coordinator Server Microsoft Search
n n n n n

Gestione dati Elaborazione transazioni e Query Integrità dei dati Lavori Allarmi Operatori Gestione transazioni distribuite

n n n

n

Cataloghi Full-Text Indici Full-Text

Integrazione con i sistemi operativi
Windows 2000 Windows NT Windows Me, 98, and 95 Third Party Browsers

Internet Internet

Client Server

Windows 2000 Windows NT Windows Me Windows 98 Windows XP

Windows CE

Tipologie di database
• • Ogni istanza gestisce autonomamente un insieme di database Sono supportate fino a 16 istanze sullo stesso server

Database di sistema
master master model tempdb tempdb msdb msdb distribution distribution

pubs pubs

Northwind

User1 User1

Databases utente

Oggetti di un database
• Tabelle
– nome colonne – tipo dato colonna – indici

• •

Viste Vincoli
– – – – DEFAULT CHECK PRIMARY KEY FOREIGN KEY • UPDATE NOACTION/CASCADE • DELETE NOACTION/CASCADE
PK PK
EmpNum EmpNum
integer

Clustered Clustered Index Anderson Anderson Barr ... LastName
longstring

FK FK
FirstName

Stored Stored Procedure UpdatePhone UpdatePhone

Trigger Trigger

CtryCode Extension LastMod
char(2) char(6) longstring

varchar(20)

10191 10192 10202

Labrie Labrie Martin

Angela Eva Jose

FR FR SP

x19891 x19433 x21467

\HR \KarlD \HR \KarlD \HR \AmyL

• • •

Stored procedure Trigger User Defined Function
– scalari – che ritornano tabelle

EmployeePhoneView EmployeePhoneView
SELECT lastname, firstname, extension SELECT lastname, firstname, extension FROM employee FROM employee

Check Check
x##### x#####

Struttura fisica
• Un database è composto sempre da almeno 2 file • Internamente i file sono segmentati in gruppi di 8 pagine • Ogni pagina può contenere fino a 8k di dati (tabelle o indici) • La struttura del database può essere più complessa e prevedere il posizionamento di una o più tabelle su uno o più file
Database Data (file)
.mdf or .ndf .mdf or .ndf

Log (file) (file)
.ldf .ldf

Dati (tabelle ed indici)

Pagina(8 KB)

Dimensione massimo di una riga = 8060 bytes

Extent (8 pagine contigue da 8-KB)

Database Northwind
sys… sys… sys… sys… sys… sysusers sysusers sysusers sysobjects sysobjects … Orders Orders Customers Customers Customers Products Products OrdHistYear2 OrdHistYear2 OrdHistYear1 OrdHistYear1 OrdHistYear1

C :\
Northwnd.mdf

D:\
OrdHist1.ndfOrdHist2.ndf OrdHist1.ndfOrdHist2.ndf

E:\
Northwnd.ldf

Primary Filegroup

User-defined Filegroup

Transaction Log

Log delle transazioni
1 L‘applicazione richiede 1 L‘applicazione richiede 1 la modifica dei dati la modifica dei dati La modifica è registrata 3 La modifica è registrata 3 su disco nel log delle 3 su disco nel log delle transazioni transazioni Disk

Buffer Cache

Le pagine con i dati da Le pagine 2 modificare con i dati da 2 modificare sono localizzate sono localizzate nella cache oppure sono lette nella cache oppure sono lette da disco e messe nella cache da disco e messe nella cache

Disk 4 Il processo di 4 Il processo di Checkpoint scrive Checkpoint scrive le transazioni nel le transazioni nel database database

Consistenza del database
• Tramite il log delle transazioni • Processo di recovery viene attivato ad ogni ripartenza dell’istanza per ogni database • Azioni di rollback e di rollforward riportano il database ad uno stato di consistenza
Recovery delle transazioni 1 2 3 4 5 Processo di Checkpoint Azione
None Roll forward Roll back Roll forward Roll back

Malfunzionamento del sistema

Isolamento delle transazioni
• Garantito tramite i meccanismi di locking • Granularità dei lock
– – – – – – riga pagina tabella chiave extent database

• Problemi
– lost update – uncommited dependency (dirty read) – Inconsistent analysis (nonrepeatable read) – Phantoms reads

• Gestione dinamica del livello automatica • Gestione automatica dei deadlock

• Livelli di isolamento come da standard ANSI
– READ COMMITED (default) – READ UNCOMMITED – REPEATABLE READ – SERIALIZABLE

Autenticazione ed accesso ai DB
Gruppo o utente Windows NT SQL Server verifica la Trusted Connection SQL Server assegna le logins agli utenti e ruoli del database
Utente Database

SQL Server

Ruolo Database

Login SQL Server

SQL Server verifica nome e password

Permessi
• Definizione standard dei permessi • A livello di comando oppure a livello di singolo oggetto • I permessi possono essere ereditati per appartenenza ad un ruolo • Alcuni permessi sono a livello di istanza mentre altri sono a livello di database
REVOKE: REVOKE: non definito non definito

GRANT: GRANT: può eseguire può eseguire

DENY: DENY: non puòeseguire non puòeseguire

Comandi Comandi
CREATE DATABASE CREATE DATABASE CREATE TABLE CREATE TABLE CREATEVIEW CREATE VIEW CREATEPROCEDURE CREATE PROCEDURE CREATE RULE CREATE RULE CREATE DEFAULT CREATE DEFAULT CREATE FUNCTION CREATE FUNCTION BACKUP DATABASE BACKUP DATABASE BACKUP LOG BACKUP LOG

Oggetti Oggetti
SELECT SELECT INSERT INSERT UPDATE UPDATE DELETE DELETE REFERENCES REFERENCES

TABLE VIEW

SELECT SELECT COLUMN UPDATE UPDATE REFERENCES REFERENCES STORED PROCEDURE

EXEC EXEC

Sicurezza
• Supporto per l’autenticazione Kerberos • Supporto per la Delegation • Supporto per SSL
Kerberos Kerberos
Encrypted Encrypted Dataa Dat Password Password

Mutual Authentication MutualAuthentication Authentication

User

SQL Server

Impersonation

File File system system

SQL Server

Delegation

SQL Server

Il linguaggio Transact -SQL Transact• Implementazione originale di Sybase, arricchita nelle nuove versioni da Microsoft • Implementazione entry- level dello entrystandard ANSI ISO (SQL92) • Arricchito da funzionalità proprietarie • Linguaggio procedurale • Estensioni proprietarie per generare dati in formato XML • Continuerà ad essere esteso anche quando SQL Server ospiterà il CLR

Elementi del linguaggio
• Comandi DCL (Data Control Language)
– GRANT – DENY – REVOKE

• Comandi DDL (Data Definition Language)
– CREATE – ALTER – DROP

• Comandi DML (Data Manipulation Language)
– – – – SELECT INSERT UPDATE DELETE

Altri elementi del linguaggio
• Variabili locali
– DECLARE – SET – SELECT

• Operatori
– – – – aritmetici di confronto per la concatenazione delle stringhe logici

• Funzioni
– di aggregazione – scalari – per l’utilizzo di rowset

Elementi per il controllo del flusso
• • • • • BEGIN ... END IF ... ELSE WHILE GOTO CASE ... WHEN ... THEN ... ELSE ... END

Tools
Programma di setup Enterprise Manager Tools e wizards Tools di manutenzione da linea di comando • Query Analyzer • SQL Profiler • Books Online • • • •

Integrazione con XML

RichiestaHTTP RichiestaHTTP

XML Filtro ISAPI

Internet Information Serv ices Internet Information Services Utilizza un filtro ISAPI (SQLXML.DLL) ed il Provider OLE DB

OLE DB DB OLE DB

IIS IIS

SQL SQL Server Server

Accesso a dati esterni
• Accesso diretto ad altre fonti di dati tramite un provider ole db • Tramite linked server
– referenziando il nome del server collegato nella clausola FROM – funzione OPENQUERY

SQL Server locale

SQL Server remoto

• Tramite funzione
– OPENROWSET

SQL Server remoto

Altresorgenti

Data Transformation Services
• Funzionalità per importare/esportare dati da una qualunque sorgente ad una qualunque destinazione • Funzionalità per la trasformazione dei dati • Funzionalità per creare dei flussi complessi

Trasformazioni Trasformazioni Sorgente Sorgente dati dati Destinazione Destinazione dati dati

In

Out

OLE DB Provider

OLE DB Provider

DTS

Tecnologia DTS
• Wizard DTS per import/export dei dati
– creazione di flussi semplici – possono essere eseguiti da riga di comando

• DTS Designer
– creazione di flussi tramite editor grafico – definizione di trasformazioni complesse – definizione di sequenze complesse

High Availability
• “5 nines” ovvero 99,999% di disponibilità
– Un sistema che deve essere disponibile 24 ore al giorno , 7 giorni alla settimana, non deve superare i 5,26 minuti di indisponibilità del servizio

• Non è solo una questione di tecnologia • Non è solo una questione del database server • Richiede un’attenta progettazione dell’intero sistema ed un opportuna formazione del personale

HA e SQL Server
• • • • • Failover clustering Standby Servers (Log Shipping) Replication Load Balancing Meccanismi di backup/restore nativi
– – – – completo differenziale transaction log dei singoli file/filegroup

• Integrazione con sistemi hardware di terze parti (SAN)

Active/Passive clustering
Client

Node primario \\VirtualServer1 Windows 2000 Nodo secondario

Windows 2000 RAID Array SQL Server Server

Active/Active clustering
Client Client

//VirtualServer1 Windows 2000 //VirtualServer2

Windows 2000 Nodo primario per //VirtualServer1 Nodo secondario per //VirtualServer2 SQL Server Server

SQL Server Server

Nodo primario per //VirtualServer2 Nodo secondario per //VirtualServer1

Scalabilità
• Scale up
– RAM (fino a 512GB – 64 bit) – Processori (max 64 processori – 64 bit) – il limite è il datacenter

• Scale out
– Replication – Stanby Server in sola lettura – Federazione di server

Server Federati
Customer Customer AA ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ BB ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ Table B Table B Table BB ~~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~ ~

Table AA Table AA ~~ ~~ ~~ ~~ ~~ ~~

CREATE VIEW CREATE VIEW Cust_View Cust_View SELECT Table A Server 1 SELECT Table A UNION ALL UNION ALL SELECT Table B SELECT Table B
Customer Customer AA ~~ ~~ ~~ ~ ~ ~~ ~~ ~~ ~ ~ BB ~~ ~~ ~~ ~ ~ ~~ ~~ ~~ ~ ~

CREATE VIEW CREATE VIEW Cust_View Cust_View SELECT Table A Server 2 SELECT Table A UNION ALL UNION ALL SELECT Table B SELECT Table B

Vista Partizionata

Risorse
• User Groups
http://www.ugiss.org http://www.sqlpass.org http://www.ugidotnet.org http://www.ugidotnet.org

• Microsoft
http://www.microsoft.com/sql http://www.microsoft.com/italy/sql http://msdn.microsoft.com/sql http://www.microsoft.com/TechNet/prodtechnol/sql

Risorse
• Newsgroups
– news://news.ugiss.org ugiss.public.ita.* – news://m snews.microsoft.com microsoft.public.it.sql microsoft.public.sqlserver.* – Non vi fanno uscire via NNTP ? http://msdn.microsoft.com/newsgroups – Novità! http://www.microsoft.com/italy/sql/support/newsgroup/


								
To top