Microsoft SQL Server



Похожие документы
SQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DBMS (Data Base Management System)

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

Basi di dati (7) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: stored procedure (1.

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

The world s most advanced class on PostgreSQL o quasi! 4 Marzo 8 Aprile L'Antipasto 11 Marzo

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Gestione delle tabelle

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Definizione di domini

SQL Sintassi Dei Comandi

Laboratorio di Basi di Dati e Web

Le versioni di SQL Server sono state molte; traggo le principali da Wikipedia:

User Tools: DataBase Manager

MySQL Database Management System

Basi di dati (8) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1.

MS SQL Server Componenti Logici. Implementazione. Prof. Pasquale Basile

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

DUE GRUPPI DI COMANDI

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQL - Tipi di dato Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Tool. Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

SQL (STRUCTURED QUERY LANGUAGE)

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

SQL PER LA DEFINIZIONE DI BASI DI DATI

Linguaggio SQL. Structured Query Language

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

SQL. Storia e standard

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati

Lezione 8. Metadati, Viste e Trigger

SQL (STRUCTURED QUERY LANGUAGE)

Basi di Da( MySQL & MySQL Workbench. Anna Monreale

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

ROUTINE E PROGRAMMAZIONE

Basi di Dati: Corso di laboratorio

GERARCHIE RICORSIVE - SQL SERVER 2008

Il linguaggio SQL: DDL di base

Volumi di riferimento

Strumenti Software per Esercitazioni (ambiente Windows) Basi di Dati L LS Ing. Gestionale


Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012

Corso di Informatica Generale 1 IN1. Linguaggio SQL

DBMS: MySQL CORSO DI BASI DI DATI 2014/2015

DB2 Universal Database (UDB) DB2 Universal Database (UDB)

Informatica per le discipline umanistiche 2 lezione 10

Giovanna Rosone 04/03/ /03/2010 SQL, Istruzioni per la modifica dello schema

Laboratorio di Basi di Dati

Basi di Dati prof. Letizia Tanca

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

SQL Server Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005.

Introduzione a phpmyadmin

Corso sul linguaggio SQL

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

SQL: Concetti Base -Prima Parte-

Introduzione a MySQL

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

Installazione MS SQL Express e utilizzo con progetti PHMI

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

Creazione manuale delle tabelle (mediante scrittura del codice SQL corrispondente)

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

PROGRAMMA DI CLASSE 5AI

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Corso di Laboratorio di Basi di Dati

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

Trasformazione DB Access In SQL Server. Michele De Nittis

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

CORSO DI SQL SERVER 7 Generalità

Corso di Informatica (Basi di Dati)

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Laboratorio di Basi di Dati Introduzione a SQL

Guida all installazione di Easy

Installazione di GFI Network Server Monitor

Basi di Dati Corso di Laura in Informatica Umanistica

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

Dispensa di database Access

Basi di Dati Relazionali

DATABASE.

Installazione e caratteristiche generali 1

Il tuo manuale d'uso. F-SECURE PSB AND SERVER SECURITY

Lezione 9. Applicazioni tradizionali

Транскрипт:

Che cos'è SQL Server E' il DBMS commercializzato da Microsoft. Principali concorrenti: Prodotti commerciali: Oracle, IBM DBII; Prodotti "free": MySQL, Postgres. Requisiti tipici per l'installazione della versione Enterprise: S.O. Windows 2000 Server o Windows NT4 Server; 128 MB RAM; 250 MB HD. Costo della licenza: circa 1500 (Windows 2000 Server + SQL Server). Esiste una versione Evaluation, scaricabile gratuitamente dal sito Microsoft ed utilizzabile per 120 giorni. 2

Le componenti principali di SQL Server La componente fondamentale è il Relational Database Engine: supporta lo standard SQL92; il "dialetto" usato si chiama Transact-SQL (T-SQL). Analysis Services: supporta la creazione di Data Warehouse, utilizzati per l'esecuzioni di query particolarmente lunghe e complesse, destinate ad estrarre da grosse quantità di dati informazioni di supporto ai processi decisionali aziendali. Replication: gestisce il mantenimento di copie multiple del DB, al fine di migliorare le prestazioni in un ambiente distribuito. Supporto alla creazione di applicazioni tramite ODBC, ADO, OLE DB, ADO.NET. 3 I servizi Windows SQL Server Service: è il gestore vero e proprio del DB; risponde alle query, gestisce le transazioni, la concorrenza, la sicurezza. SQL Server Agent Service: esegue le operazioni schedulate (Job), ad esempio i backup, e le azioni da intraprendere quando avvengono particolari eventi, ad esempio crash del sistema. Microsoft Search Service: permette di effettuare query sofisticate di ricerca di parole all'interno del testo contenuto nelle varie tabelle (una specie di motore di ricerca). MSSQLServerADHelper Service: gestisce l'integrazione con Active Directory. MS DTC Service: gestisce transazioni che utilizzano DB localizzati su vari server. 4

La sicurezza Due diversi livelli di sicurezza: autenticazione e autorizzazione. Autenticazione: verifica il permesso dell'utente di connettersi a SQL Server; Autorizzazione: verifica il permesso dell'utente di effettuare determinate operazioni. Due possibilità per l'autenticazione: Windows Authentication Mode: l autenticazione viene fatta da Windows sulla base delle informazioni di login al sistema; Mixed mode (Windows Authentication and SQL Server Authentication): l'utente può connettersi con il suo account Windows o con un account creato in SQL Server. E' possibile definire i permessi sulla base degli utenti, dei gruppi (insieme di utenti) o dei ruoli (insieme di utenti Windows, gruppi Windows, utenti SQL Server). 5 Gli utenti SQL Server sa: System Administrator. Viene creato in fase di installazione, non dovrebbe essere usato nelle normali operazioni. dbo:database Owner. Ne esiste uno per ogni database presente nel sistema e ha tutti i permessi su quel database. Ogni oggetto presente in un database ha un proprietario (Database Object Owner); un oggetto viene referenziato come [server].[nomedb].[owner].[nomeoggetto] (ad esempio [server1].[dbstudenti].[marco].[tabella1]). 6

La console di gestione L amministrazione di SQL Server avviene tramite Enterprise Manager, che è il lato "client" di SQL Server. Da un singolo client possiamo gestire più server, effettuando più registrazioni. Per effettuare una registrazione dovremo fornire: Il server al quale vogliamo connetterci (nome o indirizzo IP); Il tipo di autenticazione usata (Windows o SQL Server); Nel caso di autenticazione SQL Server, Username e Password. 7 All'interno del server 8

All'interno di un Database 9 Creare una tabella Alla creazione di una tabella si definiscono: Il nome della tabella; Il nome e il tipo dei vari campi; La primary key; Le foreign key; I check constraint; Gli indici; I trigger. Queste operazioni possono essere fatte graficamente o scrivendo comandi DDL, che vengono eseguiti tramite SQL Query Analyzer; allo stesso modo è possibile successivamente modificare la struttura di una tabella. 10

I principali tipi di dato Character data: lettere, simboli, caratteri numerici. Char, Varchar, Text. Numeric data: interi (Bigint, Int, Smallint, Tinyint), decimali (Decimal), approssimati (Float, Real). Date and Time data: Datetime, Smalldatetime. Binary data: dati in formato esadecimale. Binary, Varbinary, Image. Tipi speciali: Timestamp, Bit, Uniqueidentifier. Tipi di dato definiti dall'utente. Per ogni tabella una singola colonna può contenere valori generati automaticamente (Identifier). 11 Creare una tabella: l'interfaccia grafica 12

Creare una tabella: la sintassi CREATE TABLE [ database_name.[ owner ]. owner. ] table_name ( { < column_definition > column_nameas computed_column_expression < table_constraint > ::= [ CONSTRAINT constraint_name] } ) [ { PRIMARY KEY UNIQUE } [,...n ] [ ON { filegroup DEFAULT } ] [ TEXTIMAGE_ON { filegroup DEFAULT } ] < column_definition > ::= { column_name data_type } [ COLLATE <collation_name > ] [ [ DEFAULT constant_expression] [ IDENTITY [ (seed, increment ) [ NOT FOR REPLICATION ] ] ] ] [ ROWGUIDCOL] [ < column_constraint > ] [...n ] < column_constraint > ::= [ CONSTRAINT constraint_name ] { [ NULL NOT NULL ] [ { PRIMARY KEY UNIQUE } [ CLUSTERED NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor] [ON {filegroup DEFAULT} ] ] ] [ [ FOREIGN KEY ] REFERENCESref_table [ ( ref_column ) ] [ ON DELETE { CASCADE NO ACTION } ] [ ON UPDATE { CASCADE NO ACTION } ] [ NOT FOR REPLICATION ] ] CHECK [ NOT FOR REPLICATION ] (logical_expression ) } < table_constraint > ::= [ CONSTRAINT constraint_name ] { [ { PRIMARY KEY UNIQUE } [ CLUSTERED NONCLUSTERED ] { (column [ ASC DESC ] [,...n ] ) } [ WITH FILLFACTOR = fillfactor ] [ ON { filegroup DEFAULT } ] ] FOREIGN KEY [ ( column [,...n ] ) ] REFERENCES ref_table [ ( ref_column [,...n ] ) ] [ ON DELETE { CASCADE NO ACTION } ] [ ON UPDATE { CASCADE NO ACTION } ] [ NOT FOR REPLICATION ] CHECK [ NOT FOR REPLICATION ] ( search_conditions ) } 13 CREATE TABLE "Esame" ( ) Creare una tabella: esempio "ID" smallint IDENTITY PRIMARY KEY, "StudenteID" smallint NOT NULL REFERENCES Studente(ID), "CorsoID" smallint NOT NULL REFERENCES Corso(ID), "DataEsame" datetime NOT NULL DEFAULT (getdate()), "Voto" tinyint NOT NULL CONSTRAINT ck_esame_voto CHECK (Voto BETWEEN 18 AND 30), "Lode" bit NOT NULL DEFAULT 0, "Note" varchar(255) NULL 14

Creare un indice: l'interfaccia grafica 15 Creare un indice: la sintassi CREATE [ UNIQUE ] [ CLUSTERED NONCLUSTERED ] INDEX index_name ON {table view } ( column[ ASC DESC ] [,...n ] ) [ WITH < index_option > [,...n] ] [ ON filegroup ] < index_option > :: = } { PAD_INDEX FILLFACTOR =fillfactor IGNORE_DUP_KEY DROP_EXISTING STATISTICS_NORECOMPUTE SORT_IN_TEMPDB Esempio: CREATE INDEX IX_Esame_Studente ON Esame (StudenteID ASC) 16

Creare una storedprocedure: la sintassi CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [,...n ] [ WITH { RECOMPILE ENCRYPTION RECOMPILE, ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [...n ] N.B. Una stored procedure può essere creata tramite Enterprise Manager o SQL Query Analizyer, ma il codice SQL deve comunque essere scritto manualmente (non esiste un wizard). 17 Creare una storedprocedure: esempio CREATE PROCEDURE [dbo].[sp_insert_esame] @pstudenteid smallint, @pcorsoid smallint, @pdataesame datetime, @pvoto tinyint, @plode bit, @pnote varchar, @pid smallint OUTPUT AS INSERT INTO Esame (StudenteID, CorsoID, DataEsame, Voto, Lode, Note) VALUES (@pstudenteid, @pcorsoid, @pdataesame, @pvoto, @plode, @pnote) SET @pid=scope_identity() GO 18

Creare una vista: l'interfaccia grafica 19 Creare una vista: la sintassi CREATE VIEW [ < database_name >. ] [ < owner >. ] view_name [ ( column [,...n ] ) ] [ WITH <view_attribute > [,...n ] ] AS select_statement [ WITH CHECK OPTION ] < view_attribute > ::= { ENCRYPTION SCHEMABINDING VIEW_METADATA } CREATE VIEW dbo.vw_esamipositivi AS SELECT FROM dbo.corso.nome, dbo.esame. StudenteID, dbo.esame.dataesame dbo.corso INNER JOIN dbo.esame ON dbo.corso.id = dbo.esame.corsoid WHERE (dbo.esame.voto > 28) 20

Creare un tipo: l'interfaccia grafica 21 Creare un tipo: la sintassi EXEC sp_addtype [ @typename = ] type, [ @phystype = ] system_data_type [, [ @nulltype = ] 'null_type' ] [, [ @owner = ] 'owner_name' ] EXECsp_addtype udt_codicefiscale, 'CHAR(15)', 'NULL' 22

Creare un trigger: la sintassi CREATE TRIGGER trigger_name ON { table view } [ WITH ENCRYPTION ] { { { FOR AFTER INSTEAD OF } { [ INSERT ] [, ] [ UPDATE ] [, ] [DELETE] } } } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS [ { IF UPDATE ( column ) [ { AND OR } UPDATE ( column ) ] [...n ] IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask ) } ] { comparison_operator } column_bitmask [...n ] sql_statement [...n ] 23 Creare un trigger: esempio CREATE TRIGGER [trg_backup_cancellazione_esami] ON [dbo].[esame] FOR DELETE AS INSERT INTO [dbo].[esamicancellati] (ID, StudenteID) SELECT ID, StudenteID FROM deleted 24

Creare un diagramma: l'interfaccia grafica 25 Grant: l'interfaccia grafica 26

Grant: la sintassi GRANT { ALL [ PRIVILEGES ] permission [,...n ] } { [ ( column [,...n ] ) ] ON {table view } ON { table view } [ ( column [,...n ] ) ] ON { stored_procedure extended_procedure } ON { user_defined_function } } TO security_account [,...n ] [ WITH GRANT OPTION ] [ AS { group role } ] Si possono concedere grant di sistema (creazione tabelle, creazione Database ecc.) o grant su un singolo oggetto (select, update ecc.) Esempio1: GRANT SELECT ON Corsi TO Marco WITH GRANT OPTION Esempio2: GRANT CREATE TABLE TO Giovanni, Francesco 27 Per qualsiasi dubbio 28