Basi di dati (3) - DB group, Unimore

Transcript

Basi di dati (3) - DB group, Unimore
Università di Modena e Reggio Emilia
Panoramica
Componenti
! Edizioni
! Architettura
! Comunicazioni – Librerie di rete
! Architettura di protezione: panoramica
Basi di dati (3)
!
Ing. Integrazione di Impresa
A.A. 2007/08
Docente: Andrea Bulgarelli
[email protected]
Argomento: struttura SQL Server (1.0)
Andrea Bulgarelli
Andrea Bulgarelli
1
Andrea Bulgarelli
Andrea Bulgarelli
Componenti
Principali servizi
API
Linguaggi e
modalità di
accesso
Motore DBMS relazionale: scalabilità,
prestazioni
! Analysis services: strumenti per analizzare
i dati memorizzati per il supporto alle
decisioni.
!
Andrea Bulgarelli
Andrea Bulgarelli
2
3
Componen
ti
Andrea Bulgarelli
Andrea Bulgarelli
4
1
Componenti (2)
!
!
!
Componenti (3)
Data Transformation Services (DTS): consente di recuperare dati da una
origine dati, effettuare trasformazioni semplici o complesse su tali dati
(come riassumerli) e poi memorizzarli in un’altra origine dati, come un
database SQL Server o un cubo multidimensionale degli Analysis Services.
DTS può lavorare con qualsiasi origine dati a cui si possa accedere tramite
OLE DB, incluso SQL Server, Oracle, Informix, database DB2 e Microsoft
Access, fogli elettronici di Microsoft Excel e cubi multidimensionali di SQL
Server. Tramite DTS è possibile semplificare e automatizzare il processo di
creazione e mantenimento di data warehouse oltre a effettuare il
popolamento iniziale di un database OLTP.
Relational Database Engine
Replica di SQL Server: per mantenere i dati a disposizione dei singoli
utenti o dei gruppi di lavoro per ottimizzare prestazioni o autonomia, pur
garantendo che tutte le copie dei dati memorizzate su computer separati
restino sincronizzate tra di loro. Per esempio, un ufficio vendite regionale
può tenere i dati delle vendite su un server locale e replicarli in un database
di SQL Server 2000 alla sede centrale nazionale. Gli utenti che usano
computer portatili o periferiche di Windows CE possono disconnettersi dalla
rete, lavorare disconnessi e poi usare la replica di tipo merge per
ricongiungere i record elaborati con il database principale. Si può anche
usare la replica di SQL Server 2000 per replicare dati in un data warehouse
nonché a o da qualsiasi origine dati che supporti l’accesso OLE DB.
Andrea Bulgarelli
Andrea Bulgarelli
5
Edizioni di SQL Server
!
!
Query full-text su dati informato testo archiviati in tabelle
relazionali (campi blob)
" Query full-text integrate completamente nel linguaggio T-SQL.
Le singole query possono combinare opzioni di ricerca full-text e
tradizionali
" Ricerche in tutte le colonne indicizzate di una tabella
" Accesso a livello di programmazione a informazioni sulla query
"
Andrea Bulgarelli
!
Andrea Bulgarelli
Andrea Bulgarelli
6
Edizioni (2)
!
Andrea Bulgarelli
English Query: sistema per sviluppare applicazioni
client che permettono agli utenti finali di porre domande
in inglese invece di creare una query con un’istruzione di
Transact-SQL o una query XPath.
Full text search: le funzionalità di ricerca full-text in SQL
Server consentono l'esecuzione di:
7
Enterprise Edition: supporta tutte le caratteristiche di
SQL Server. Questa edizione è per server di produzione
medio-grandi ed è scalabile verso l’alto per sostenere i
livelli di prestazioni richiesti da ampi siti Web, OLTP per
le imprese e grandi sistemi di data warehousing (OLAP).
Standard edition: supporta molte funzionalità di SQL
Server però non ha le funzionalità necessarie per essere
scalabile verso l’alto e supportare database di grandi
dimensioni, data warehouse e siti Web. Questa versione
è per piccoli gruppi di lavoro o per reparti.
Andrea Bulgarelli
Andrea Bulgarelli
8
2
Panoramica
Edizioni (3)
!
!
Personal Edition: supporta tutte le caratteristiche di
SQL Server supportate da SQL Server 2000 Standard
Edition, tranne la replica transazionale. Questa edizione
è per applicazioni autonome e utenti mobili che
richiedono la memorizzazione dei dati in locale su un
computer client.
Desktop Engine: versione ridistribuibile del motore di
database relazionale di SQL Server Questa edizione può
essere usata dalle applicazioni per memorizzare dati
senza richiedere alcuna amministrazione di database da
parte dell’utente finale. Desktop Engine non include
utilità né strumenti di SQL Server che abbiano
un’interfaccia utente grafica
Andrea Bulgarelli
Andrea Bulgarelli
9
Componenti Server
!
Net libraries
Andrea Bulgarelli
Andrea Bulgarelli
10
Componenti Client
Servizi a 32 bit per Windows
Consente la
configurazione
della
comunicazion
e dei client
Consente la configurazione del server (i servizi)
Andrea Bulgarelli
Andrea Bulgarelli
11
Andrea Bulgarelli
Andrea Bulgarelli
12
3
Comunicazione (Clients API)
Componenti Client
!
!
!
Andrea Bulgarelli
Andrea Bulgarelli
13
Comunicazione C/S
Andrea Bulgarelli
Andrea Bulgarelli
Andrea Bulgarelli
14
Librerie di rete
!
Andrea Bulgarelli
OLE DB è un’API che permette alle applicazioni COM di ottenere
dati da origini dati OLE DB. SQL Server 2000 include un provider
nativo OLE DB, ovvero un componente COM che accetta chiamate
all’API OLE DB e fa ciò che è necessario per elaborare tale richiesta
con riferimento all’origine dati. Il provider supporta applicazioni
scritte usando OLE DB oppure altre API che usano OLE DB, come
ADO.
ODBC è una CLI (Call-Level Interface, interfaccia a livello di
chiamata) che permette alle applicazioni C e C++ di accedere ai dati
in origini dati ODBC. SQL Server 2000 include un driver nativo
ODBC, cioè una DLL che accetta chiamate alle funzioni API di
ODBC e fa ciò che deve per elaborare la richiesta relativa all’origine
dati. Il driver supporta applicazioni o componenti scritti usando
ODBC o altre API che usano ODBC, come Data Access Objects
(DAO), RDO (Remote Data Objects, oggetti dati remoti) e le classi di
database Microsoft Foundation Classes (MFC). ADO sta
sostituendo DAO e RDO.
SQL Server 2000 supporta anche la DB-Library (solo per
compatibilità con il passato) e le API Embedded SQL.
15
Il provider OLE DB o driver ODBC usa un client
Libreria di rete per comunicare con un server
Libreria di rete su un’istanza di SQL Server. La
comunicazione può essere sullo stesso
computer o via rete. Le Librerie di rete
incapsulano le richieste tra client e server per la
trasmissione usando il sottostante protocollo di
rete. La comunicazione tra client e server
Librerie di rete può essere crittografata con
Secure Sockets Layer (SSL). I client e il server
SQL Server possono essere configurati per
usare una o tutte le Librerie di rete elencate.
Andrea Bulgarelli
Andrea Bulgarelli
16
4
Librerie di rete (2)
Open Data Services
!
Andrea Bulgarelli
Andrea Bulgarelli
17
Panoramica comunicazione –
stessa macchina
Andrea Bulgarelli
Andrea Bulgarelli
Le Librerie di rete server comunicano con il
livello Open Data Services del motore di
database relazionale, il quale funge da
interfaccia e trasforma i pacchetti ricevuti dalle
Librerie di rete server in eventi che passa alla
parte opportuna del motore di database
relazionale. Quest’ultimo poi usa Open Data
Services per inviare la risposta ai client di SQL
Server 2000 tramite le Librerie di rete server.
Andrea Bulgarelli
Andrea Bulgarelli
18
Panoramica comunicazione –
macchine distinte
19
Andrea Bulgarelli
Andrea Bulgarelli
20
5
Autenticazione
Architettura di protezione
!
Autenticazione: determina se l’utente ha o
meno un account di accesso valido per
connettersi a un’istanza di SQL Server:
!
La modalità di default
è l’autenticazione
Windows.
" di
Windows: sfrutta il sistema di protezione di
Windows
" di SQL Server: indipendenti da qualsiasi account
utente o gruppo Windows
!
Autorizzazione: determina che attività l’utente
può svolgere dopo essere stato autenticato.
Andrea Bulgarelli
!
!
Andrea Bulgarelli
21
Andrea Bulgarelli
Andrea Bulgarelli
22
Autorizzazione
Autorizzazione (2)
Dopo che SQL Server 2000 ha autenticato un utente,
determina se tale ID di accesso è stato autorizzato a svolgere
attività in un qualsiasi database.
Account utente: In generale, un amministratore di database
deve associare un ID di accesso a un ID utente prima che
qualcuno con quell’ID di accesso possa accedere agli oggetti
e svolgere operazioni nel database in questione. Un
amministratore di database applica i permessi di protezione
per gli oggetti del database.
Account guest: Se un ID di accesso non è stato
esplicitamente associato con un qualsiasi ID utente in un
database, esso viene associato all’ID dell’utente guest di
quel database, se esiste. Se un database ha un account
utente guest, l’accesso è limitato ai diritti che vengono
conferiti all’utente guest. Se un database non ha un
account utente guest, si può accedere al database solo
se si dispone di un account utente valido. Di default, tutti
i database utente appena creati non dispongono di un
account utente guest.
! Ruoli: i ruoli sono usati per raccogliere gli utenti in una
singola unità e poi attribuire a tutti gli stessi permessi.
Ogni utente in un database appartiene al ruolo di
database pubblico e fruisce di tutti i permessi assegnati
al ruolo pubblico, a meno che non si sia deciso di negare
a un determinato utente determinati permessi. I diritti
aggiuntivi devono essere conferiti esplicitamente a un
Bulgarelli
Andrea
Bulgarelli o a un gruppo diAndrea
utente
utenti
a cui l’utente appartiene. 24
Andrea Bulgarelli
Andrea Bulgarelli
23
!
6