Basi di dati Università Degli Studi Parthenope di Napoli Classe A042 - Informatica Docente: Prof. A. Staiano Corsisti: Colella - Addesso
Indice delle note teoriche • base di dati DBMS linguaggio SQL modelli di dati il modello E-R il modello relazionale sistema informativo sistema informatico chiave primaria
Esercizio: si realizzi una base di dati, mediante il DBMS Microsoft Access, relativa a tutti i calciatori del campionato italiano di serie A e B 2007/08, per rispondere alle seguenti interrogazioni (query) in linguaggio SQL: Data una squadra, visualizzare cognome, nome, data di nascita, nazionalità e ruolo dei calciatori che militano in essa. Visualizzare i cognomi e la squadra dei calciatori di serie A che svolgono un particolare ruolo immesso dall’esterno. Della stessa base di dati si forniscano: il modello E-R il modello relazionale la definizione delle relazioni in linguaggio SQL modelli di dati Indice
1° passo: costruzione del modello E-R Indice Traccia esercizio 1° passo: costruzione del modello E-R Squadre Calciatori 1 N cod_squadra (p.k.) (carattere) nome_squadra (carattere) serie (carattere) cod_calciatore (p.k.) (carattere) cognome (carattere) nome (carattere) data_nascità (data) nazionalità (carattere) ruolo (carattere)
2° passo: costruzione del mod. relazionale Indice Traccia esercizio 2° passo: costruzione del mod. relazionale Chiave primaria Chiave secondaria Squadre Calciatori cod_squadra nome_squadra serie cod_calciatore cognome nome data_nascita nazionalità ruolo cod_squadra Squadre[cod_squadra(p.k.),nome_squadra,serie] Calciatori[cod_calciatore(p.k.),cognome,nome,data_nascita,nazionalità,ruolo,cod_squadra(f.k.)]
3° passo: query di definizione delle relazioni Indice Traccia esercizio 3° passo: query di definizione delle relazioni Codice SQL per la creazione della Tabella Squadre CREATE TABLE Squadre (cod_squadra CHAR(5), nome_squadra CHAR(20), serie CHAR(1), PRIMARY KEY(cod_squadra));
3° passo: query di definizione delle relazioni Indice Traccia esercizio 3° passo: query di definizione delle relazioni Codice SQL per la creazione della Tabella Squadre CREATE TABLE Squadre (cod_squadra CHAR(5), nome_squadra CHAR(20), serie CHAR(1), PRIMARY KEY(cod_squadra)); Tabella Squadre
3° passo: query di definizione delle relazioni Indice Traccia esercizio 3° passo: query di definizione delle relazioni Codice SQL per la creazione della Tabella Calciatori CREATE TABLE Calciatori (cod_calciatore CHAR(5), cognome CHAR(20), nome CHAR(20), data_nascita DATE, nazionalità CHAR(20), ruolo CHAR(20), cod_squadra CHAR(5), PRIMARY KEY(cod_calciatore), FOREIGN KEY(cod_squadra) REFERENCES Squadre);
3° passo: query di definizione delle relazioni Indice Traccia esercizio 3° passo: query di definizione delle relazioni Codice SQL per la creazione della Tabella Calciatori CREATE TABLE Calciatori (cod_calciatore CHAR(5), cognome CHAR(20), nome CHAR(20), data_nascita DATE, nazionalità CHAR(20), ruolo CHAR(20), cod_squadra CHAR(5), PRIMARY KEY(cod_calciatore), FOREIGN KEY(cod_squadra) REFERENCES Squadre); Tabella Calciatori
4° passo: query di selezione 1 e 2 Indice Traccia esercizio 4° passo: query di selezione 1 e 2 Codice SQL per la selezione dei dati relativa alla seguente interrogazione: Data una squadra, visualizzare cognome, nome, data di nascita, nazionalità e ruolo dei calciatori che militano in essa. SELECT cognome, nome, data_nascita, nazionalità, ruolo FROM Calciatori, Squadre WHERE Calciatori.cod_squadra=Squadre.cod_squadra And nome_squadra=[immetti il nome della squadra] ORDER BY cognome;
4° passo: query di selezione 1 e 2 Indice Traccia esercizio 4° passo: query di selezione 1 e 2 Risultato della selezione dei dati relativa alla seguente interrogazione: Data una squadra, visualizzare cognome, nome, data di nascita, nazionalità e ruolo dei calciatori che militano in essa. SELECT cognome, nome, data_nascita, nazionalità, ruolo FROM Calciatori, Squadre WHERE Calciatori.cod_squadra=Squadre.cod_squadra And nome_squadra=[immetti il nome della squadra] ORDER BY cognome;
4° passo: query di selezione 1 e 2 Indice Traccia esercizio 4° passo: query di selezione 1 e 2 Codice SQL per la selezione dei dati relativa alla seguente interrogazione: Visualizzare i cognomi e la squadra dei calciatori di serie A che svolgono un particolare ruolo immesso dall’esterno. SELECT cognome, nome_squadra FROM Calciatori, Squadre WHERE Calciatori.cod_squadra=Squadre.cod_squadra And ruolo=[immetti il ruolo del calciatore] ORDER BY cognome;
4° passo: query di selezione 1 e 2 Indice Traccia esercizio 4° passo: query di selezione 1 e 2 Risultato della selezione dei dati relativa alla seguente interrogazione: Visualizzare i cognomi e la squadra dei calciatori di serie A che svolgono un particolare ruolo immesso dall’esterno. SELECT cognome, nome_squadra FROM Calciatori, Squadre WHERE Calciatori.cod_squadra=Squadre.cod_squadra And ruolo=[immetti il ruolo del calciatore] ORDER BY cognome;
5° passo: creazione di una maschera Indice Traccia esercizio 5° passo: creazione di una maschera Nella sezione MASCHERE è possibile creare dei collegamenti ipertestuali alle query di selezione precedentemente definite
5° passo: creazione di una maschera Indice Traccia esercizio 5° passo: creazione di una maschera Una semplice MASCHERA costituita da due tasti …
Indice Traccia esercizio Note teoriche
Una base di dati (database) è una collezione di Indice Traccia esercizio Base di Dati Una base di dati (database) è una collezione di dati che - rappresentano alcuni aspetti del mondo reale - sono logicamente correlati tra loro - vengono utilizzati per produrre informazioni di interesse in un sistema informativo.
Un sistema informativo è un sottosistema di Indice Traccia esercizio Sistema Informativo Un sistema informativo è un sottosistema di una qualsiasi organizzazione che gestisce acquisisce, elabora, conserva, produce, … informazioni di interesse. L’esistenza di un sistema informativo è indipendente dalla sua automazione (sistema informatico).
Un sistema informatico … Indice Traccia esercizio Sistema Informatico Un sistema informatico … - gestisce un sistema informativo in modo automatizzato - garantisce che i dati siano memorizzati in modo permanente sui dispositivi di memorizzazione - Permette un veloce aggiornamento dei dati per riflettere rapidamente le loro variazioni - Rende i dati accessibili alle interrogazioni degli utenti
specificare i tipi, le strutture ed i vincoli dei dati da memorizzare Indice Traccia esercizio DBMS Un Data Base Management System (DBMS) è una collezione di programmi che permette di specificare i tipi, le strutture ed i vincoli dei dati da memorizzare memorizzare i dati su memoria di massa controllata dal DBMS aggiornare e interrogare la base di dati e creare reports dai dati Definire un database Costruire il database Manipolare il database
Modelli di dati Per rappresentare simbolicamente e logicamente i Indice Traccia esercizio Modelli di dati Per rappresentare simbolicamente e logicamente i concetti del mondo reale si utilizzano i Modelli di dati: Modelli Concettuali: schemi grafici (simboli), utili nelle fasi preliminari di progettazione, impiegati per la descrizione di concetti astratti, in modo indipendente da qualsiasi sistema di elaborazione. Modelli Logici: schemi grafici che servono a tradurre i modelli concettuali in strutture logiche processabili da un DBMS, in modo indipendente da come di fatto vengono elaborati e memorizzati i dati.
Modello E-R (Entità-Relazione) Indice Traccia esercizio Modello E-R (Entità-Relazione) Il più comune modello concettuale è il Modello E-R (Entità-Relazione), che utilizza le nozioni di Entità, Attributi e Relazioni. - Un’entità rappresenta un oggetto o un concetto del mondo reale - Un attributo rappresenta qualche proprietà importante che descrive e caratterizza un’entità - Una relazione rappresenta un’interazione tra le entità
Il più comune modello logico è il Modello Indice Traccia esercizio Modello Relazionale Il più comune modello logico è il Modello Relazionale, che permette di organizzare i dati in insiemi di record a struttura fissa (Relazione) Chiave primaria Campo Codice ID Nome Cognome Indirizzo Telefono CS/0001 Mario Rossi Via Verdi 5 02333… CS/0002 Anna Barile Via Righi 7 85452… CS/0003 Marco De Carolis Via Righi 2 15435… Relazione(=Tabella) Record
Linguaggi per Basi di Dati Indice Traccia esercizio Linguaggi per Basi di Dati Esistono linguaggi per la definizione dei dati Data Definition Languages – DDL definizione dei modelli logici Esistono linguaggi di manipolazione dei dati Data Manipulation Languages – DML interrogazione e aggiornamento dei database SQL come DDL: creazione tabelle SQL come DML: interrogazioni SQL (Structured Query Language)
Le corrispondenze fra i dati di relazioni distinte Indice Traccia esercizio Chiave Le corrispondenze fra i dati di relazioni distinte si realizzano per mezzo di chiavi primarie e secondarie. Una chiave è un insieme di attributi utilizzato per identificare univocamente i record di una relazione Chiave primaria Matricola Nome Cognome Indirizzo Telefono ST/0001 Mario Rossi Via Verdi 5 02333… ST/0002 Anna Barile Via Righi 7 85452… ST/0003 Marco De Carolis Via Righi 2 15435… Relazione(=Tabella)
Indice Traccia esercizio Chiave Chiave primaria Chiave secondaria
Chiave Una chiave primaria non può assumere valore nullo (vincolo) Indice Traccia esercizio Chiave Una chiave primaria non può assumere valore nullo (vincolo) può non avere un valore di tipo informativo può essere generato in modo automatico all’atto dell’inserimento (es. codice progressivo)