Basi di Dati.

Slides:



Advertisements
Presentazioni simili
La progettazione concettuale
Advertisements

Informatica II – Basi di Dati (08/09) – Parte 1
Calcolo Relazionale.
Progettazione concettuale
DBMS (DataBase Management System)
Progettazione concettuale
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Una Introduzione alle Basi di Dati
DOCUMENTAZIONE DI SCHEMI E/R
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Basi di Dati - 3 Dati su più tabelle. Informatica 1 SCICOM - a.a. 2010/11 2 Separare i dati su più tabelle Quando è necessario? – Empiricamente, quando.
L’uso dei database in azienda
ENTITÀ - RELAZIONE MODELLO ENTITÀ E ATTRIBUTI DOMINI RELAZIONI
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Basi di dati Università Degli Studi Parthenope di Napoli
Metodologie e Modelli di Progetto
Modello E-R Generalizzazioni
Progettazione di una base di dati
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Partizionamento/accorpamento di concetti
Modello E-R Generalizzazioni
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Basi di dati Claudia Raibulet
Introduzione alle Basi di Dati. Overview Informazione = contenuto + struttura Informazione non strutturata Molto contenuto, poca struttura Un romanzo.
Basi di Dati - 3 Dati su più tabelle Informatica 1 (SAM) - a.a. 2010/11.
Implementare un modello di dati
Database & Information Retrieval
Esercitazione di Basi di Dati
INFORMATICA Corso Base Modulo G: I DataBase  Access.
Il modello ER Proposto da Peter Chen nel 1976 rappresenta uno standard per la progettazione concettuale (in particolare per le basi di dati) Ha una rappresentazione.
Corso di Laurea in Informatica
MODELLO LOGICO DEI DATI
Progettare un database
Introduzione a Oracle 9i
LE BASI DI DATI E IL LINGUAGGIO SQL.
DATABASE Introduzione
DB- Sistemi Informativi
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Diagramma delle Classi
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
IV D Mercurio DB Lezione 2
Basi di dati Maria Laura Alessandroni
Progettazione di Database
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Metodologie e modelli per il progetto. 2 Introduzione alla progettazione Il problema: progettare una base di base di dati a partire dai suoi requisiti.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Eprogram informatica V anno.
Cloud informatica V anno.
Approfondimenti SQL.
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Transcript della presentazione:

Basi di Dati

Argomenti Modellazione concettuale (modello ER) Traduzione in un modello logico (modello relazionale) Interrogazione di una base dati (SQL SELECT)

Modellazione concettuale (modello ER)

Modello Entity Relationship (ER) Modello concettuale Fornisce una serie di costrutti per descrivere la realtà di interesse di facile comprensione, indipendente dal modo in cui la basi di dati viene descritta e gestita entro un DBMS Usato per descrivere schema concettuale di una base di dati

Costrutti principali del modello Entità: classi di oggetti che hanno proprietà comuni ed esistenza autonoma Relazione: legame logico che coinvolge due o più entità Attributo: proprietà informativa elementare di un’entità (o anche di una relazione)

Altri costrutti del modello Vincoli di integrità: limitazioni o specifiche espresse sui precedenti costrutti del modello: - cardinalità delle Relazioni - cardinalità degli Attributi - identificatori delle Entità (chiavi) Ulteriori elementi (gerarchie di generalizzazione, attributi compositi) che non affrontiamo

Modello ER: rappresentazione grafica Relaz.C EntitàA (0,n) EntitàB Attrib.D Attrib.E Attrib.F Attrib.G

Descrizione dominio “Si vuole realizzare un archivio per la gestione di una libreria. I principali requisiti espressi dall’utente sono la possibilità di memorizzare i dati relativi ai libri (titolo, autore, casa editrice, anno, argomento, copie disponibili). Si devono poter cercare i libri a partire dal titolo, dall’autore, dall’argomento e dall’editore. [...]”

Individuazione entità in gioco Libro Titolo Anno Copie disponibili Autore Casa editrice Argomento Libro Titolo Anno Copie disponibili Autore Casa editrice Argomento

Perchè tutte queste entità ? Integrità dei dati un autore dovrebbe avere lo stesso nome per ogni suo libro; eventuali modifiche non dovrebbero essere apportate manualmente ad ogni libro Occupazione di memoria ripetere nome, cognome ed eventualmente altri dati per ogni libro scritto da un autore è sconveniente Problemi in inserimento Inserire ogni volta i dati completi di un autore rende molto probabile un errore

Individuazione relazioni fra entità Libro AutoreDi Autore ConArgom. EditoDa Casa Editrice Argomento

Cardinalità delle relazioni Libro (1,1) AutoreDi (0,n) Autore (1,n) (1,1) ConArgom. EditoDa (0,n) Casa Editrice Un Libro deve avere almeno un Autore Un Libro deve avere una Casa Editrice Un Autore può aver scritto più Libri (0,n) Argomento

Cardinalità delle relazioni Tre tipologie in base alla cardinalità massima delle occorrenze di Entità nella relazione: 1 a 1: ad un’occorrenza di un’Entità corrisponde esattamente un’occorrenza di Entità (Persona e Dipartimento nella relazione Direttore) 1 a molti: ad un’occorrenza di un’Entità possono corrispondere più occorrenze di Entità ma non viceversa (Libro e CasaEditrice nella relazione Editoda) molti a molti: ad un’occorrenza di un’Entità possono corrispondere più occorrenze di Entità e viceversa (Libro e Argomento nella relazione conArgomento)

Individuazione attributi Anno Copie Cognome Nome Libro (1,1) AutoreDi (0,n) Autore Titolo (1,n) (1,1) Tel Numero albo ConArgom. EditoDa (0,n) Casa Editrice Titolo è una stringa (una sequenza di caratteri) Anno è un numero intero (si potrebbero specificare dei vincoli) Copie è un numero intero ≥ 0 Tutti i suddetti non possono essere vuoti (0,n) Argomento

Cardinalità attributi Anno Copie Cognome Nome Libro (1,1) AutoreDi (0,n) Autore (1,n) (0,1) Titolo (1,n) (1,1) Tel Numero albo ConArgom. EditoDa (0,n) Casa Editrice Valore minimo e massimo di valori associati ad ogni occorrenza di entità o relazione (0,n) Nella maggior parte dei casi è (1,1), quindi omessa Card minima = 0 opzionale, = 1 obbligatorio Card massima = N multivalore Argomento

Determinazione delle chiavi (1) Anno Copie Cognome Nome Libro (1,1) AutoreDi (0,n) Autore (1,n) (0,1) Titolo (1,n) (1,1) Tel Numero albo ConArgom. EditoDa (0,n) Casa Editrice Non possono esistere più libri aventi lo stesso titolo Non possono esistere più autori con stesso cognome e nome (0,n) Argomento

Determinazione delle chiavi (2) Anno Copie Cognome Nome Libro (1,1) AutoreDi (0,n) Autore (1,n) (0,1) (1,n) (1,1) Tel Titolo Numero albo ConArgom. EditoDa (0,n) Casa Editrice (0,n) Non possono esistere più libri aventi lo stesso titolo, autore ed anno di pubblicazione Argomento

Determinazione delle chiavi (3) Anno Copie Cognome Nome Libro (1,1) AutoreDi (0,n) Autore (1,n) (0,1) (1,n) (1,1) Tel Titolo Numero albo ConArgom. EditoDa (0,n) Casa Editrice (0,n) Non possono esistere più libri aventi lo stesso titolo, autore, casa editrice ed anno di pubblicazione Argomento

Riassunto modello ER Costrutti Entità Relazioni Attributi Vincoli di integrità Cardinalità delle Relazioni/degli Attributi Identificatori di Entità (chiavi)

Ulteriori esempi ER IdSoc IdProd Società (0,n) Fornisce (1,n) Prodotto IdCli (0,n) Cliente DataIncarico IdDip IdPers Dipartimento (1,1) Direttore (0,1) Persona

Traduzione in un modello logico (modello relazionale)

Modello Relazionale Modello logico Fornisce una serie di costrutti per descrivere la realtà di interesse Molto meno ricco del modello ER, più vicino alla reale rappresentazione dei dati interna all’elaboratore Alla base di un’altissima percentuale dei database presenti in commercio (Access, ...) Esistono definizioni formali, oltre ad una teoria rigorosa a riguardo

Costrutti del modello elemento fondamentale è la relazione, informalmente una tabella ogni colonna ha associato un nome (attributo) ed un dominio (insieme di valori che può assumere l’attributo) Ogni riga di questa tabella viene detta tupla

LIBRO(Titolo, Anno, Casa Editrice) Costrutti del modello LIBRO Titolo Anno Casa Editrice Il giro di boa 2003 Sellerio Il sogno di Scipione Longanesi I delitti di via Medina Sidonia 1996 LIBRO(Titolo, Anno, Casa Editrice)

Traduzione da modello ER a modello Relazionale

Entità ed Attributi Ad un’Entità corrisponde una relazione (tabella) Agli Attributi dell’Entità corrispondono gli attributi nella relazione Gli Attributi chiave dell’Entità corrispondono agli attributi chiave nella relazione

LIBRO(Titolo, Anno, Copie) Entità ed Attributi Anno Copie Libro Titolo LIBRO(Titolo, Anno, Copie)

Le Relazioni Diversi elementi del modello ER non hanno un corrispettivo in quello relazionale ed in particolare le Relazioni Una Relazione può essere realizzata nel modello relazionale tramite il meccanismo di chiave esterna Un attributo (o un gruppo di attributi) chiave di una tabella, se trasportato in un’altra viene detto chiave esterna e permette di realizzare una relazione fra le due tabelle Praticamente una relazione viene individuata per via dell’uguaglianza dei valori di alcuni attributi

Le Relazioni Titolo IdCasaEditrice Nome Anno Libro (1,1) EditoDa (0,n)

Uguaglianza di valori Libro Titolo Anno Casa Editrice Il giro di boa 2003 1 Il sogno di Scipione 2 I delitti di via Medina Sidonia 1996 CasaEditrice IdCasaEditrice Nome 1 Sellerio 2 Longanesi

BuonoOrdine(IdOrdine, IdOfferta) Relazioni 1 a 1 IdOfferta IdOrdine Offerta (0,1) Ordine (1,1) BuonoOrdine Questo genere di relazione viene tradotta inserendo la chiave di una delle entità coinvolte nell’insieme degli attributi dell’altra C’è un grado di libertà, ma la scelta ha delle conseguenze ‘non funzionali’ IdOfferta 1 3 Offerta(IdOfferta) BuonoOrdine(IdOrdine, IdOfferta) IdOrdine IdOfferta 1 2 3

Libro(Titolo, NomeEditore) CasaEditrice(Nome) Relazioni 1 ad n Titolo Nome Libro (1,1) EditoDa (0,n) CasaEditrice Questo genere di relazione viene tradotta inserendo la chiave dell’entità del lato n, nell’insieme degli attributi dell’altra In questo caso la traduzione è rigida, non ci sono gradi di libertà Titolo NomeEditore xx aa yy Libro(Titolo, NomeEditore) CasaEditrice(Nome) Nome aa bb

Relazioni n ad m Anno Copie Cognome Nome Libro (1,n) AutoreDi (0,n) Autore Titolo Questo genere di relazione viene tradotta introducendo un’ulteriore relazione di supporto, avente come chiave l’insieme degli attributi componenti le chiavi delle altre entità coinvolte Questa nuova relazione non ha un significato concettuale, ma è necessaria per poter utilizzare il meccanismo di chiave esterna

Libro(Titolo, Anno, Copie) Autore(Cognome, Nome) Relazioni n ad m Anno Copie Cognome Nome Libro (1,n) AutoreDi (0,n) Autore Titolo Titolo Anno Copie xx 2003 1 yy 2002 2 Libro(Titolo, Anno, Copie) Autore(Cognome, Nome) Autore-Libro(Cognome,Nome, Titolo) Cognome Nome Cc aa Dd bb Cognome Nome Titolo Cc aa xx yy Dd bb

Riassunto: modello relazionale e traduzione Entità  relazioni (tabelle) Attributi di entità  attributi delle relazioni (colonne delle tabelle) Relazioni 1 ad 1  inserimento della chiave di una delle relazioni nell’altra Relazioni 1 ad n  inserimento della chiave del lato n nella relazione corrispondente a Entità del lato 1 Relazioni n ad m  creazione di una nuova relazione avente come chiave l’insieme delle chiavi delle Entità coinvolte nella Relazione originale

Esempi (1) Società (IdSoc) Prodotto (IdProd) Cliente (IdCli) Fornisce (1,n) Prodotto IdCli (0,n) Cliente Società (IdSoc) Prodotto (IdProd) Cliente (IdCli) Fornitura(IdSoc, IdProd, IdCli) (IdSoc chiave esterna verso Società, IdProd chiave esterna verso Prodotto, IdCli chiave esterna verso Cliente)

Esempi (2) Persona (IdPers) DataIncarico IdDip IdPers Dipartimento (1,1) Direttore (0,1) Persona Persona (IdPers) Dipartimento (IdDip, IdDiret, DataIncarico) (IdDiret chiave esterna verso Persona)

Interrogazione di una base dati (SQL SELECT)

SQL SELECT: elementi di base Structured Query Language  linguaggio dichiarativo per utilizzo di basi dati relazionali Data Description Language (definizione schema) Data Manipulation Language (manipolazione dati) Query Langage (interrogazione della base dati)  Comando SELECT

Cosa si cerca SELECT “Cosa” FROM “Dove lo trovo” WHERE “A queste condizioni” “Cosa” intende i nomi degli attributi che si intendono ottenere dalla ricerca In caso di ambiguità, cioè lo stesso nome di attributo è presente in più tabelle, bisogna chiarire a quale ci si riferisce usando la forma Tabella.attributo Per selezionare tutti gli attributi di una tabella di può usare la forma Tabella.*

Da dove si cerca SELECT “Cosa” FROM “Dove lo trovo” WHERE “A queste condizioni” “Dove lo trovo” intende l’insieme delle tabelle che contengono gli attributi specificati nella clausola “cosa” o utilizzati in quella che specifica le condizioni

Criteri di selezione SELECT “Cosa” FROM “Dove lo trovo” WHERE “A queste condizioni” Le condizioni possono essere divise in semantiche (correlate al significato della ricerca) di join (correlate alla necessità di chiarire le relazioni fra le tabelle) Si possono (devono) combinare con operatori booleani (es. le condizioni di join devono essere in AND fra di loro)

Tenere conto delle relazioni Istruttore (IdIstr, Nome, Cognome, Indirizzo, N-tel) Scheda (IdScheda, Difficoltà, Istr) (Istr chiave esterna verso Istruttore) Esercizi-schede (IdScheda, IdEserc, Ripetizioni) Esercizio (IdEserc, Nome, Descr) Qualora la query coinvolga informazioni provenienti da tutte le tabelle, la clausola WHERE dovrà indicare chiaramente che: Istr in Scheda dev’essere uguale a IdIstr in Istruttore IdScheda in Esercizi-schede dev’essere uguale a quello in Scheda IdEserc in Esercizio dev’essere uguale a quello in Esercizi-schede

Esempio di Query Selezionare gli istruttori che abbiano assegnato l’esercizio ‘addominali’ SELECT Istruttore.* FROM Istruttore i, Scheda s, Esercizi-schede es, Esercizio e WHERE e.Nome=‘addominali’ AND e.IdEserc=esIdEserc AND es.IdScheda=s.IdScheda AND s.Istr=i.IdIstr;

Riassunto: SQL SELECT SELECT “WHAT”: Cosa si cerca Clausola FROM: “Dove”, da quali tabelle Clausola WHERE: “A che condizioni”, semantiche e di join