scuola interuniversitaria siciliana di specializzazione per linsegnamento secondario classe di...
TRANSCRIPT
SCUOLA INTERUNIVERSITARIA SICILIANA DI SPECIALIZZAZIONE PER
L’INSEGNAMENTO SECONDARIO
Classe di Concorso: 42A
Massimo Mancino
MODULO DIDATTICO
- Ambienti Software -
- Per Database -
Docente: Prof. Cantone
Il modulo, proposto per una quinta classe Indirizzo Informatico, mira a presentare agli alunni due strumenti software per DBMS (SQL e MS ACCESS).
Ambienti software per database
Unità didattica 1 Il linguaggio SQL
Unità didattica 2 Microsoft Access
Composizione del modulo
Unità didattica 1
Il Linguaggio SQL
Gli studenti dovranno dimostrare di avere:
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
Competenze
Applicare correttamente i principi del modello relazionale
Rappresentare le operazioni relazionali
Codificare e validare interrogazioni in linguaggio SQL
ContenutiComandi 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
LEZIONE FRONTALE
LEZIONE DIALOGATA
Metodologie
AULA
LABORATORIO
Spazi
AZIENDA
LIBRO DI TESTO ED APPUNTI
COMPUTER
LAVAGNA LUMINOSA
PROIETTORE
Strumenti
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:
Colloqui individuali
Interventi di vario genere
Questionari e Test (strutturati e semistrutturati)
Prove di laboratorio
Verifiche
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
La valutazione sarà:
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
Valutazione
Unità Didattica
Ore di Lezione
Ore di Laboratorio
Ore di Verifica
Ore di Recupero e/o Potenziamento
U.D. 1 20 20 8 12
Tempi
StoriaStructured Query Language(solitamente pronunciato "sequel").
Quando i database relazionali proliferarono nel corso degli anni Ottanta, SQL fu codificato per l'utilizzo nell'ambito dell'Information Technology commerciale. Nel 1986, l'American National Standards Institute (ANSI) e l'International Standards Organization (ISO) stabilirono il primo standard del linguaggio.
La "vita" di SQL inizia nel 1970 presso i laboratori di ricerca IBM di San Jose, dove E. F. Codd e altri svilupparono il modello di database relazionale che diede origine al sistema noto come DB2.
StoriaLe revisioni successive dello standard, nel 1989 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 aggiornamento SQL3, 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 dati orientati agli oggetti e il supporto per sistemi basati sulla conoscenza.
CaratteristicheLinguaggio ad alto livello
Paradigma di programmazione logicoSta 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)
Datatype standard
Character(n) Stringa di lunghezza n (da 1 a 15000)
Date Data nella forma MM/GG/AA
Time Ora nella forma HH:MM
Integer Numero intero con precisione 10
Smallint Numero intero con precisione 5
Real Numero reale con mantissa di precisione 7
Float Numero reale con mantissa di precisione 15
IstruzioniDDL: CREATE, DROP e ALTER TABLE
DML: INSERT, DELETE e UPDATE
TRANSAZIONI: COMMIT, ROLLBACK e SAVEPOINT
DQL: SELECT
SICUREZZA: GRANT e REVOKE
CREATE
Crea una nuova tabella nella base di dati
CREATE TABLE …
Crea una nuova vista nella base di dati
CREATE VIEW …
Crea un nuovo indice su uno o più attributi di una tabella
CREATE INDEX …
CREATE TABLE
CREATE TABLE table_name( field1 type1 [default] [constraint1], field2 type2 [default] [constraint2], … fieldn typen [default] [constraintn]);
Per creare una nuova tabella nella base di dati:
Esempio - CREATE TABLEDiagramma Entità-Relazione
Magazzino(ID, Descrizione);Prodotti(Codice, Descrizione, Prezzo);Contiene(ID_Magazzino, Codice_Prodotto);
Modello Relazionale
Esempio - CREATE TABLEcreate table Magazzino( id integer primary key, descrizione char[100]);
create table Prodotti( codice integer primary key, descrizione char[100], prezzo integer, id_magazzino integer, foreign key (id_magazzino) references Magazzino(id) );
Master
Child
CREATE TABLE…AS…
CREATE TABLE table_name AS SELECT filed1, field2, …, filedn
FROM table_name WHERE condizione;
Per creare una nuova tabella da una già esistente nella basi di dati
DROP
Rimuove la tabella dalla base di dati e i relativi indici
DROP TABLE table_name;
Rimuove la vista dalla base di dati
DROP VIEW view_name;
Rimuove l’indice dalla rispettiva tabella
DROP INDEX index_name;
ALTER TABLE
Aggiunge una o più colonne alla tabella
ALTER TABLE table_name ADD (col_name type [constraint]);
Modifica il tipo di una o più colonne della tabella
ALTER TABLE table_name MODIFY (col_name type [constraint]);
Rimuove una o più colonne della tabella
ALTER TABLE table_name DROP (col_name);
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
DELETE FROM table_name WHERE condizione;
Per cancellare uno o più record da una tabella:
Per svuotare una tabella in maniera definitiva:
TRUNCATE TABLE table_name;
UPDATEUPDATE 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;
Deve restituireuna riga!
Transazione
E’ un’unità logica di lavoro
E’ una sequenza di comandi SQL che il DBMS tratta comeuna singola entità
TRANSAZIONETRANSAZIONE
COMMITCOMMIT COMMITCOMMIT
Cos’è una transazione?
Transazione
Quando comincia una transazione ?Quando comincia una transazione ?
Implicitamente all’apertura di una sessione del DBMS
Implicitamente quando finisce la transazione precedente
Transazione
Quando finisce una transazione ?Quando finisce una transazione ?
Nel momento in cui le modifiche sono rese permanenti da:
Un COMMIT esplicitoUna normale chiusura di sessioneUn comando DDL
o quando le modifiche vengono annullate da:
Un ROLLBACK esplicitoUn’ uscita brutale dal programmaUna caduta di sistema
TransazioneCosa succede?Cosa succede?
Finchè non confermiamo:
possiamo vedere le modifiche nelle queries
gli altri utenti non possono vederle
possiamo cancellare la transazione
o solo parte di essa
TRANSAZIONETRANSAZIONE
COMMITCOMMIT COMMITCOMMIT COMMITCOMMITo ROLLBACKo ROLLBACK
SELECTselect … from … where …
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;
Condizioni di ricerca
Seleziona l’elenco dei dipendenti che sono stati assunti trail 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 Comoselect Cognome, Nome, Funzione from Personale where Prov IN (‘MI’, ‘CO’);
Condizioni di ricercaSelezionare 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 inferiorealla 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 deglistipendi 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
EsercizioCODICE TITOLO DESCR.
ID ANNO SEZIONE ID_ISTITUTO
ID NOME DESCR.
CODICE_LIBRO ID_CLASSE ANNO
Libri
Adottati
Classe
Istituto
2002
Esercizioselect 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;
FINE