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