450 likes | 607 Views
SCUOLA INTERUNIVERSITARIA SICILIANA DI SPECIALIZZAZIONE PER L’INSEGNAMENTO SECONDARIO Classe di Concorso: 42A. Massimo Mancino. MODULO DIDATTICO - Ambienti Software - - Per Database -. Docente: Prof. Cantone. Ambienti software per database.
E N D
SCUOLA INTERUNIVERSITARIA SICILIANA DI SPECIALIZZAZIONE PER L’INSEGNAMENTO SECONDARIO Classe di Concorso: 42A Massimo Mancino MODULO DIDATTICO - Ambienti Software - - Per Database - Docente: Prof. Cantone
Ambienti software per database Il modulo, proposto per una quinta classe Indirizzo Informatico, mira a presentare agli alunni due strumenti software per DBMS (SQL e MS ACCESS).
Composizione del modulo Unità didattica 1Il linguaggio SQL Unità didattica 2Microsoft Access
Unità didattica 1 Il Linguaggio SQL
Prerequisiti Nozioni di entità, attributo, chiave, associazione Conoscenza del modello relazionale e degli operatori relazionali Caratteristiche generali di un sistema di gestione di basi di dati Caratteristiche generali di un linguaggio per basi di dati Gli studenti dovranno dimostrare di avere:
Competenze Applicare correttamente i principi del modello relazionale Rappresentare le operazioni relazionali Codificare e validare interrogazioni in linguaggio SQL
Contenuti Comandi per la definizione e la manipolazione delle tabelle Comandi per le interrogazioni Funzioni di aggregazione Ordinamenti e raggruppamenti Interrogazioni nidificate Comandi per la sicurezza e l’integrità dei dati
Metodologie LEZIONE DIALOGATA LEZIONE FRONTALE
Spazi AULA LABORATORIO AZIENDA
Strumenti LIBRO DI TESTO ED APPUNTI COMPUTER LAVAGNA LUMINOSA PROIETTORE
Verifiche Colloqui individuali Interventi di vario genere Questionari e Test (strutturati e semistrutturati) Prove di laboratorio Le verifiche sono periodiche e costanti, tese alla valutazione sia del percorso nella sua globalità che di una parte del medesimo. Esse prevedono varie tipologie:
Valutazione La valutazione sarà: Sia di tipo formativo e quindi in relazione all’applicazione, all’impegno, all’attenzione, al metodo di lavoro che ogni studente avrà mostrato durante l’attività didattica Sia di tipo sommativo, ricavata dalla misurazione delle varie prove in cui gli studenti dovranno dimostrare di: • avere acquisito conoscenze e informazioni circa i contenuti • avere maturato abilità e competenze specifiche alla disciplina
Storia Structured Query Language (solitamente pronunciato "sequel"). La "vita" di SQL inizia nel1970presso i laboratori di ricercaIBMdi San Jose, doveE. F. Codde altri svilupparono il modello di database relazionale che diede origine al sistema noto come DB2. Quando i database relazionali proliferarono nel corso degli anni Ottanta, SQL fu codificato per l'utilizzo nell'ambito dell'Information Technology commerciale. Nel1986, l'American National Standards Institute (ANSI) e l'International Standards Organization (ISO) stabilirono il primo standard del linguaggio.
Storia Le revisioni successive dello standard, nel1989 e nel 1992, aggiunsero il controllo di base dell'integrità dei dati e le funzioni per la loro definizione e manipolazione. La specifica di SQL del 1992 è la versione più attuale, benché il nuovo aggiornamentoSQL3, conosciuto anche come SQL-99, sia in corso di progettazione da qualche tempo. Gli sforzi verso la definizione dello standard SQL3 sono rivolti verso l’integrazione di questo linguaggio nelle basi di datiorientati agli oggettie il supporto per sistemi basati sullaconoscenza.
Caratteristiche Linguaggio ad alto livello Paradigma di programmazione logico Sta al sistema di gestione del database analizzare la richiesta in rapporto alla propria struttura e stabilire quali operazioni sia necessario eseguire per recuperare l'informazione richiesta Si presta alle architetture client/server Può essere utilizzato da un linguaggio strutturale (Hosting)
Istruzioni DDL: CREATE, DROP e ALTER TABLE DML: INSERT, DELETE e UPDATE TRANSAZIONI: COMMIT, ROLLBACK e SAVEPOINT DQL: SELECT SICUREZZA: GRANT e REVOKE
CREATE CREATE TABLE … CREATE VIEW … CREATE INDEX … Crea una nuova tabella nella base di dati Crea una nuova vista nella base di dati Crea un nuovo indice su uno o più attributi di una tabella
CREATE TABLE Per creare una nuova tabella nella base di dati: CREATE TABLE table_name ( field1 type1 [default] [constraint1], field2 type2 [default] [constraint2], … fieldn typen [default] [constraintn] );
Esempio - CREATE TABLE Diagramma Entità-Relazione Modello Relazionale Magazzino(ID, Descrizione); Prodotti(Codice, Descrizione, Prezzo); Contiene(ID_Magazzino, Codice_Prodotto);
Esempio - CREATE TABLE create table Magazzino ( id integer primary key, descrizione char[100] ); Master create table Prodotti ( codice integer primary key, descrizione char[100], prezzo integer, id_magazzino integer, foreign key (id_magazzino) references Magazzino(id) ); Child
CREATE TABLE…AS… Per creare una nuova tabella da una già esistente nella basi di dati CREATE TABLE table_name AS SELECT filed1, field2, …, filedn FROM table_name WHERE condizione;
DROP DROP TABLE table_name; DROP VIEW view_name; DROP INDEX index_name; Rimuove la tabella dalla base di dati e i relativi indici Rimuove la vista dalla base di dati Rimuove l’indice dalla rispettiva tabella
ALTER TABLE ALTER TABLE table_name ADD (col_name type [constraint]); ALTER TABLE table_name MODIFY (col_name type [constraint]); ALTER TABLE table_name DROP (col_name); Aggiunge una o più colonne alla tabella Modifica il tipo di una o più colonne della tabella Rimuove una o più colonne della tabella
Restrizioni Non possiamo modificare una colonna che contiene valori NULLI in una definita NOT NULL Non possiamo aggiungere una colonna NOT NULL a meno che la tavola non sia vuota Non possiamo diminuire la grandezza di una colonna a meno che questa non sia vuota
INSERT INSERT INTO table_name VALUES (V1, V2, …, VN); Inserisce la n-upla (v1, …, vn) nella tabella. INSERT INTO table_name (f1, …, fn) SELECT field1, …, fieldin FROM table1, …, tablem; Inserisce una selezione di uno o più records nella tabella.
DELETE Per cancellare uno o più record da una tabella: DELETE FROM table_name WHERE condizione; Per svuotare una tabella in maniera definitiva: TRUNCATE TABLE table_name;
UPDATE Deve restituire una riga! UPDATE table_name SET field1 = value1, field2 = value2, … fieldn = valuen WHERE condition; UPDATE table_name SET (field1, field2, …,fieldn) = (select fi1, …, fin from table1, …, tablem where condition) WHERE condition;
Transazione TRANSAZIONE COMMIT COMMIT Cos’è una transazione? E’ un’unità logica di lavoro E’ una sequenza di comandi SQL che il DBMS tratta come una singola entità
Transazione • Quando comincia una transazione ? Implicitamente all’apertura di una sessione del DBMS Implicitamente quando finisce la transazione precedente
Transazione Nel momento in cui le modifiche sono rese permanenti da: Un COMMIT esplicito Una normale chiusura di sessione Un comando DDL o quando le modifiche vengono annullate da: Un ROLLBACK esplicito Un’ uscita brutale dal programma Una caduta di sistema • Quando finisce una transazione ?
Transazione TRANSAZIONE COMMIT COMMIT COMMIT o ROLLBACK Finchè non confermiamo: possiamo vedere le modifiche nelle queries gli altri utenti non possono vederle possiamo cancellare la transazione o solo parte di essa • Cosa succede?
SELECT Seleziona tutti i dipendenti che abitano in provincia di Milano select * from Personale where Prov = ‘MI’; Seleziona tutte le province del personale: select distinct Prov from Personale; select … from … where …
Condizioni di ricerca Seleziona l’elenco dei dipendenti che sono stati assunti tra il 3/3/97 e il 3/3/98 select Cognome, Nome, Funzione from Personale where assunzione between 03/03/97 and 03/03/98; Seleziona i dipendenti della provincia di Milano e di Como select Cognome, Nome, Funzione from Personale where Prov IN (‘MI’, ‘CO’);
Condizioni di ricerca Selezionare gli impiegati il cui cognome inizia per ‘Ros’ Select Cognome, Nome from Personale where Cognome like ‘Ros%’;
Interrogazioni nidificate Seleziona l’elenco dei dipendenti che hanno uno stipendio inferiore alla media: Select Cognome, Nome from Personale where Stipendio < (Select AVG(Stipendio) from Personale);
Ordinamento Seleziona l’elenco dei dipendenti ordinandolo per cognome: Select Cognome, Nome, Funzione from Personale order by Cognome (ASC);
Aggregazioni Seleziona la lista delle funzioni dei dipendenti con la somma degli stipendi e il numero di dipendenti appartenenti alle varie funzioni: Select Funzione, SUM(Stipendio), count(*) from Personale group by Funzione;
Esercizio All’inizio dell’anno scolastico un rappresentante di libri vuole avere una quadro riassuntivo dell’anno scolastico precedente riguardo i libri adottati nelle varie classi dei vari istituti. In particolare, si vuole avere a disposizione un report dove per ogni libro sia associato l’istituto ed il numero di classi (dell’istituto) che ha adottato il libro.
Esercizio 2002 Libri Adottati Classe Istituto
Esercizio select titolo, istituto, numero from (select libri.titolo as titolo, istituto.nome as istituto, count(*) as numero from libri, classi, adottati, istituto where libri.codice = adottati.codice_libro and adottati.id_classe = classi.id and classi.id_istituto = istituto.id and adottati.anno = 2002 group by titolo, istituto) order by titolo, istituto;