basi di dati l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Basi di Dati PowerPoint Presentation
Download Presentation
Basi di Dati

Loading in 2 Seconds...

play fullscreen
1 / 72

Basi di Dati - PowerPoint PPT Presentation


  • 166 Views
  • Uploaded on

Basi di Dati. Realizzato da Roberto Savino. Sommario. Aspetti teorici della teoria dei database relazionali Aspetti progettuali di un database relazionale Aspetti applicativi: Microsoft Access. Aspetti teorici della teoria dei database relazionali. Database: Prima Definizione.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Basi di Dati' - neva


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
basi di dati

Basi di Dati

Realizzato

da

Roberto Savino

sommario
Sommario
  • Aspetti teorici della teoria dei database relazionali
  • Aspetti progettuali di un database relazionale
  • Aspetti applicativi: Microsoft Access
database prima definizione
Database: Prima Definizione

Un Database è un archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

Esempio: Rubrica Telefonica

Interlocutori

tabella
Tabella
  • I dati nel database sono strutturati ossia sono organizzati in tabelle.
  • La tabella è costituita da
    • colonne o campi
    • righe o record

campo

Interlocutori

record

campi
Campi
  • Ogni campo ha associato:
    • Un nome (etichetta)
    • Un tipo di dato (numerico,testo,…)
    • Un insieme di attributi dipendenti dal tipo di dato scelto (dimensione, formato,…)

Interlocutori

chiave primaria
Chiave primaria
  • Al fine della ricerca è opportuno per ogni record poter essere distinto da qualsiasi altro.
  • E’ necessario un valore (o un insieme di valori) che identifichi il record univocamente.
  • Tale valore prende il nome di chiave di ricerca primaria
  • Una chiave può essere costituita da un campo o dalla combinazione di più campi
chiave primaria esempio
Chiave primaria: Esempio
  • Il campo Nome non va bene come chiave primaria

Interlocutori

chiave primaria esempio continua
Chiave Primaria: Esempio (continua)
  • I campi Nome e Cognome presi insieme non vanno bene come chiave primaria se esistono omonimi
  • Il campo Codice Fiscale è sufficiente, ma se non fosse presente nella tabella ?
chiave primaria contatore
Chiave Primaria: Contatore
  • Posso definire un campo aggiuntivo di tipo contatore, distinto per ogni record della tabella

Interlocutori

indice
Indice
  • Un indice consente il recupero immediato dei dati mediante la ricerca random (Es. CD) opposta a quella sequenziale (Es. TAPE).
  • La chiave primaria deve essere associata ad un indice
  • Possiamo però definire indici anche su campi diversi dalla chiave primaria ma conaccesso frequente.
  • La definizione di indici complica la struttura interna del database
database relazionale
Database Relazionale
  • Un database è costituito da tabelle che sono correlate mediante relazioni tra campi.
  • Le relazioni consentono la costruzione di insiemi di dati (record logici) aggregando campi appartenenti a tabelle diverse.

Interlocutori

esempio continua

DATI RIDONDANTI

(RIPETITIVI)

Esempio (continua)

Interlocutori

dati ridondanti
Dati Ridondanti
  • Sono un onere in termini di spazio occupato
  • Sono pericolosi in fase di aggiornamento del database:
    • che succede se modifico l’indirizzo dell’azienda?
esempio continua15
Esempio (continua)

Interlocutori

Aziende

relazione

Tabella Primaria

Tabella Correlata

esempio continua16
Esempio (continua)

Interlocutori

Aziende

relazione uno ad uno
Relazione Uno ad Uno
  • Ad un record di una prima tabella corrisponde, al massimo un record di una seconda tabella

Direttore

Dipartimento

dirige

(1,1)

relazione uno a molti
Relazione Uno a Molti
  • Ad un record di una prima tabella corrispondono più record di una seconda tabella (non vale il viceversa)

Giocatore

Squadra

gioca

(1,n)

relazione molti a molti
Relazione Molti a Molti
  • Ad un record di una prima tabella corrispondono più record di una seconda tabella (vale il viceversa)

Studente

Corsi

frequenta

?

?

(n,m)

Quali campi associo ?

esempio scomposizione della relazione molti a molti
Esempio: Scomposizione della relazione Molti a Molti

Studente

Corsi

(1,n)

Tabella intermedia

(1,n)

Corsi Frequentati

chiave esterna
Chiave Esterna
  • Se la relazione è tra una chiave primaria di una tabella secondariae un campo di una tabella primaria, tale campo prende il nome di chiave esterna

Giocatore

Squadra

gioca

(1,n)

integrit referenziale
Integrità Referenziale
  • Quando si definiscono relazioni è importante che sia mantenuta l’integrità.
  • Esempio:
    • Non vogliamo studenti che frequentano corsi non registrati o corsi frequentati da studenti non registrati.
    • Non vogliamo eliminare corsi frequentati da studenti
  • Per attivare questi controlli dobbiamo indicare al sistema di mantenere l’integrità referenziale
  • L’integrità referenziale è importante ma pone dei vincoli che possono compromettere la gestione del sistema
progettazione di un database
Progettazione di un Database
  • Una corretta progettazione consente di realizzare un database efficace (tutti i dati opportuni sono rappresentati) ed efficiente (in termini di spazio-tempo)
  • Una cattiva progettazione può portare a database ridondanti ed altamente inefficienti
  • Dunque “Pensareprima”, ovvero progettare il database.
fasi della progettazione
Fasi della Progettazione
  • Definizione degli obiettivi del database (quale è lo scopo?)
  • Definizione delle tabelle del database (quali sono le entità principali ?)
  • Definizione dei campi delle tabelle e degli attributi dei campi (quali sono i dati che caratterizzano tali entità?)
  • Definizione delle relazioni tra tabelle (in che modo sono correlate tali entità)
  • Verifica della struttura ed eventuali correzioni
esempio 1 obiettivi
Esempio 1: Obiettivi
  • Supponiamo di dover realizzare un database relativo agli ordini di prodotti di una piccola impresa.
  • Il database deve contenere i dati dei clienti; un cliente può effettuare 1 o più ordini (in cui ci sono 1 o più prodotti)
esempio 1 definizione delle tabelle
Esempio 1: Definizione delle tabelle

Clienti

Ordini

Prodotti

Dettaglio Ordine

esempio 1 definizione dei campi delle tabelle
Esempio 1: Definizione dei campi delle tabelle

Clienti

Ordini

Prodotti

Dettaglio Ordine

esempio 1 definizione degli attributi dei campi
Esempio 1: Definizione degli attributi dei campi

Clienti

Ordini

Prodotti

Dettaglio Ordine

esempio 1 definizione delle relazioni
Esempio 1: Definizione delle relazioni

Clienti

Ordini

(1,n)

(1,n)

Prodotti

Dettaglio Ordine

(1,n)

esempio 1
Esempio 1

Clienti

Ordini

Dettaglio Ordine

esempio 132
Esempio 1

Dettaglio

Ordine

Prodotto

esempio 2 obiettivi
Esempio 2: Obiettivi
  • Supponiamo di dover realizzare un database relativo agli studenti di un’ università. Gli studenti sostengono esami e seguono corsi. I corsi sono tenuti da docenti.
esempio 2 definizione delle tabelle
Esempio 2: Definizione delle tabelle

Studenti

Corsi

Esami

Docenti

esempio 2 definizione delle relazioni
Esempio 2: Definizione delle relazioni

Studenti

Corsi

(n,m)

(1,n)

(1,n)

Esami

Docenti

(1,n)

esempio 2 definizione delle relazioni38
Esempio 2: Definizione delle relazioni

Studenti Frequentanti

Studenti

(1,n)

Corsi

(1,n)

(1,n)

(1,n)

Esami

Docenti

(1,n)

esempio 139
Esempio 1

Studenti

Studenti Frequentanti

Corsi

esempio 140
Esempio 1

Docenti

Esami

aspetti applicativi microsoft access

Aspetti applicativi: Microsoft Access

Realizzato da Roberto Savino

tipi dati
Tipi dati
  • Testo: combinazione di caratteri e numeri fino a 255 caratteri
  • Memo: combinazione di caratteri e numeri fino a 65535 caratteri
  • Numerico: valori numerici tra cui (Byte, Intero, Intero lungo, Precisione singola, Precisione doppia, ID replica)
  • Data/Ora: valori di data e ora dall’anno 100 all’anno 9999
tipi di dati
Tipi di dati
  • Valuta: valori di valuta con quattro cifre decimali
  • Contatore: numero sequenziale incrementato automaticamente
  • Si/No: valori booleani
  • Oggetto OLE: foglio Excel, Immagine
  • Collegamento Ipertestuale: percorso di un file o di una pagina Web
attributi dei campi
Attributi dei campi
  • Dimensione: numero max di caratteri
  • Formato: permette di memorizzare (output) i vari dati in modi differenti
  • Maschera di input: vincola l’input ad assumere un determinato formato
  • Etichetta: cambia il nome al campo nelle maschere di input ed output
  • Valore predefinito: specifica un valore iniziale
  • Valido se..: consente di definire degli intervalli di validità dei valori immessi
attributi dei campi45
Attributi dei campi
  • Messaggio di errore: viene mostrato nel caso il campo non sia valido
  • Richiesto: vincola il campo ad essere obbligatorio
  • Indicizzato: specifica se sul campo esiste un indice
  • Consenti lunghezza zero: permette di avere delle stringhe nulle
  • Compressione Unicode: consente la riduzione dello spazio per la memorizzazione
garantire la correttezza dei dati immessi
Garantire la correttezza dei datiimmessi
  • Creare maschere di input che impongono un formato sull’immissione dei dati

Es. Data g/m/a oppure m/g/a ?

  • Definire un formato di memorizzazione dei dati
  • Creare delle regole di convalida che impongono una limitazione ai dati, introducendo dei vincoli
regole di convalida
Regole di convalida
  • Le regole di convalida sono espressioni che consentono un controllo preciso su ogni campo o su interi record
    • Per icampi (l’unico termine dell’exp sarà il campo stesso)

Vanno inserite nell’attributo Valido se del campo

Es. [Voto] >=18 And <=30

    • Per i record (il valore di un campo è messo in relazione con quello di altri); solo alla fine dell’inserimento dell’intero record si può verificare la correttezza

Vanno inserite nell’attributo Valido se della finestra Proprietà tabella

Es. [DataSpedizione] > [DataOrdine]

integrit referenziale48
Integrità Referenziale
  • Insieme di regole che garantiscono che le relazioni siano valide e che non vengano modificati o eliminati i record correlati
  • Può essere applicata solo se:
    • Il campo corrispondente della tabella primaria è una chiave primaria o dispone di un indice univoco
    • I campi correlati hanno lo stesso tipo di dati (a meno di eccezioni)
    • Entrambe le tabelle appartengono allo stesso DB Access
limiti dell integrit referenziale
Limiti dell’Integrità Referenziale
  • Il campo chiave esterna non può contenere un valore che non è contenuto nella chiave primari (permesso solo NULL su record non in relazione)
  • Non è possibile eliminare record nella tabella primaria se esistono record correlati in quella secondaria
  • La chiave primaria non può essere modificata se il record ha record correlati
maschere
Maschere
  • E’ un’interfaccia per l’inserimento, la visualizzazione, la modifica, la cancellazione dei record presenti nel DB
  • Permette ad un utente di un DB di utilizzarlo senza necessariamente conoscere Access
ricerca di dati
Ricerca di dati
  • Funzione Trova
  • Applicare un Filtro:
    • Può essere applicato solo ad una tabella aperta
    • Opera solo su una tabella
    • Seleziona record e non campi
  • Query
filtri
Filtri
  • Filtro in base a selezione: pone come criterio la stringa della cella attiva o la parte selezionata di una stringa
  • Filtro in base a maschera: consente di impostare più criteri contemporaneamente (<,>,=,<>) su più campi
query

Query

Realizzato da Roberto Savino

query54
Query
  • Interrogazione sull’archivio che estrae un insieme di dati che corrispondono a determinati criteri
  • Le interrogazioni possono essere su più tabelle e avere più criteri
  • Le interrogazioni avvengono mediante il linguaggio SQL (Structured Query Language)
  • La generazione delle query in Access avviene mediante l’interfaccia grafica (con la tecnica QBE = Query By Example) senza la necessità di conoscere SQL Access è quindi un interprete
  • Il risultato della query è una tabella con i dati che soddisfano i criteri della query. Tale tabella può essere associata ad una maschera, ridotta con filtri, oggetto di una nuova query, stampata attraverso un report
esempio facile
Esempio (Facile)
  • Vogliamo scrivere una query che dia il nome e cognome dell’interlocutore e il numero di telefono dell’azienda in cui lavora
  • In altre parole vogliamo la seguente tabella come risultato della query:
esempio rubrica telefonica
Esempio: Rubrica Telefonica

Interlocutori

Aziende

esempio continua57
Esempio (Continua)
  • Vogliamo scrivere una query che dia il nome e cognome dell’interlocutore e il numero di telefono dell’azienda in cui lavora
  • Individuiamo le tabelle della query
    • Interlocutori, Aziende
  • Individuiamo i campi della query
    • nome(Interlocutori), cognome(Interlocutori), telefono (Aziende)
  • Ci sono altri vincoli che impongono criteri?
    • No
passaggi per la costruzione di query
Passaggi per la costruzione di Query
  • Selezione della funzione (creazione guidata, struttura…)
  • Scelta della definizione della struttura della query (ovvero delle tabelle su cui operare)
  • Selezione dei campi su cui operare e i campi da inserire nella tabella risultato
  • Definizione dei criteri
  • Esecuzione della query
operatori logici and or
Operatori Logici: AND, OR
  • Criterio1 And Criterio2
    • vengono restituiti tutti i record che soddisfano entrambi i criteri

ES. Tutti gli studenti che frequentano il corso di Basi di dati e non hanno sostenuto l’esame di Word

  • Criterio1 Or Criterio2
    • vengono restituiti tutti i record che soddisfano Criterio1 + tutti i record che soddisfano Criterio 2 + tutti i record che soddisfano entrambi

ES. Tutti gli studenti che hanno sostenuto l’esame di Basi Dati oppure di Foglio Elettronico

operatori logici not
Operatori Logici: NOT
  • Not Criterio
    • Vengono selezionati tutti i record che non verificano il criterio

ES. Tutti gli studenti che non hanno sostenuto l’esame di Reti

operatori di confronto
Operatori di Confronto
  • Servono per mettere a confronto i campi con dei valori numerici,alfanumerici o date
  • ES. Tutti gli studenti che hanno sostenuto un qualsiasi esame con un voto maggiore o uguale a 24.
    • Il vincolo è su Voto: >= 24
  • ES. Tutti gli studenti che hanno sostenuto l’esame di basi dati in data (uguale) 17/11/2004
    • Il vincolo è su Data: = #17/11/2004#
  • ES. Tutti i prodotti con prezzo minore di 100 euro
    • Il vincolo è su Prezzo: < 100
  • Per i dati alfanumerici si considera l’ordinamento lessicografico
    • ES. “Anna” < “Antonio” < “Mario”
    • <> diverso
operatori complessi
Operatori complessi
  • Between 12 And 40 equivale >=12 And <=40
  • In (a1,…,an) equivale a1 Or a2 Or… …Or an
  • date() restituisce la data di sistema
  • Null e Not Null permettono di asserire se il campo non ha valore o ha un valore
  • Nel caso di campi Si/No i criteri usabili sono Si,No,Vero,Falso
  • Nei criteri dei campi testuali è possibile usare i caratteri jolly (? e *)

ES. Tutti i voti degli studenti con iniziale del Cognome ‘D’

Vincolo è su Cognome: = “D*”

caratteri jolly
Caratteri jolly
  • Servono per esprimere delle sequenze di caratteri non note.
    • ?
      • Indica un carattere
      • ES. Mari? Corrisponde a Maria, Marib,Maric,….,Mariz…
    • *
      • Indica una sequenza di 0 o n caratteri
      • ES. casa* Corrisponde a casa, casato, casale, (ma ci sono anche parole senza senso) casafsfhdh, casashdfhsu…
    • Posso usarli in combinazione
      • ES. Ca*ll? Corrisponde a Castello, Castelli, Casello, Caselli, Casella….
criteri di una query
Criteri di una Query
  • Per imporre i criteri usa le righe Criteri o Oppure
  • Le celle sono legate da vincolo di AND se si trovano sulla stessa riga, di OR se si trovano su righe diverse
tabelle dinamiche
Tabelle dinamiche
  • Le tabelle generate dalle query sono dinamiche:
    • i dati in una tabella di output di una query sono modificabili e le modifiche vengono registrate nelle tabelle origine
esempio un po meno facile
Esempio (Un po’ meno facile)
  • Vogliamo tutti i nomi e cognomi degli studenti che hanno sostenuto l’esamedi basi dati nell’anno 2002
  • Individuiamo le tabelle della query: Studenti, Esame, Corso (serve perché qui è contenuto il nome del corso)
  • Individuiamo i campi della query:

nome (Studenti), cognome (Studenti), nome (Corso), data (Esame)

  • Ci sono altri vincoli che impongono criteri?
    • nome (Corso) = “basi dati”
    • data (Esame) >=#1/1/2002# And <=#31/12/2002#
esempio 2 definizione delle relazioni67
Esempio 2: Definizione delle relazioni

Studenti Frequentanti

Studenti

(1,n)

Corsi

(1,n)

(1,n)

(1,n)

Esami

Docenti

(1,n)

report

Report

Realizzato da Roberto Savino

report69
Report
  • Una volta compilata una tabella o effettuata la query, il report permette di poter stampare il risultato in forma elegante ed efficace
  • E’ possibile attivare altre opzioni di ricerca: i dati di un report possono essere raggruppati per valori di determinati campi. Questi raggruppamenti permettono di impostare funzioni di calcolo di ciascun gruppo, ottenendo nel report dei dati aggiuntivi
  • La struttura di un report è divisa in fasce: contiene un’intestazione ed un piè di pagina per l’intero report, per ogni pagina e per ciascun raggruppamento impostato (migliorano il controllo su ogni elemento inserito in un report)
struttura di un report

Intestazione report

Intestazione pagina

Intestazione pagina

Intestazione pagina

Intestazione pagina

Corpo

Piè di pagina pagina

Piè di pagina pagina

Piè di pagina pagina

Piè di pagina pagina

Intestastione pagina

Piè di pagina pagina

Piè di pagina report

Struttura di un report

1

2

3

ultima

4

realizzato a cura di

Realizzato a cura di

Roberto Savino