Accezione generica, metodologica



Scaricare 1.58 Mb.
24.01.2018
Dimensione del file1.58 Mb.





Accezione generica, metodologica

  • Accezione generica, metodologica

  • Insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente (azienda, ufficio, persona)

  • Accezione specifica, metodologica e tecnologica

  • Insieme di dati gestito da un DBMS

  • Nella nostra accezione i database sono:

  • un supporto digitale in cui i dati sono immagazzinati

  • un software che permetta il recupero dei dati

  • una rete che permetta un’accessibilita` condivisa ai dati

  • DEFINIZIONE. Una base di dati è una raccolta di dati permanenti suddivisi in due categorie:

    • I METADATI
    • I DATI








Esempi:

  • Esempi:

    • versamento presso uno presso sportello bancario
    • emissione di certificato anagrafico
    • dichiarazione presso l’ufficio di stato civile
    • prenotazione aerea
  • Due accezioni

    • Per l'utente:
      • programma a disposizione, da eseguire per realizzare una funzione di interesse
    • Per il sistema:
      • sequenza indivisibile di operazioni




Per rappresentare i corsi attivati ed i relativi docenti si può usare uno schema del tipo

  • Per rappresentare i corsi attivati ed i relativi docenti si può usare uno schema del tipo

  • (Corso, Nome Docente)

    • questo e’ uno schema invariante nel tempo,
  • mentre le coppie

  • (Informatica Generale, Righi)

  • (Basi di Dati e Sistemi Informativi, Leoni)

    • sono istanze dello schema precedente e possono variare nel tempo




  • grandi

    • dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati
    • il limite deve essere solo quello fisico dei dispositivi
  • persistenti

    • hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano
  • condivisi

    • ogni organizzazione è divisa in settori o comunque svolge diverse attività . Ciascun settore/attività ha un (sotto) sistema informativo (non necessariamente disgiunto)
    • Una base di dati e' una risorsa integrata, condivisa fra applicazioni
    • Conseguenze:


PRIVATEZZA

  • PRIVATEZZA

    • Si possono definire meccanismi di autorizzazione
      • l'utente A è autorizzato a leggere tutti i dati e a modificare quelli sul ricevimento
      • l'utente B è autorizzato a leggere X e a modificare Y
  • AFFIDABILITA` (per le basi di dati):

    • resistenza a malfunzionamenti hardware e software
    • una base di dati è una risorsa pregiata e quindi deve essere conservata a lungo termine


EFFICIENTI

  • EFFICIENTI

    • Cercano di utilizzare al meglio le risorse di spazio di memoria (principale e secondaria) e tempo (di esecuzione e di risposta)
    • I DBMS, con tante funzioni, rischiano l'inefficienza e per questo ci sono grandi investimenti e competizione
    • L’efficienza è anche il risultato della qualità delle applicazioni
  • EFFICACI

    • Cercano di rendere produttive le attività dei loro utilizzatori, offrendo funzionalità articolate, potenti e flessibili:
      • il corso è in buona parte dedicato ad illustrare come i DBMS perseguono l'efficacia


Diverse categorie di persone possono interagire con una base di dati tramite un DBMS.

  • Diverse categorie di persone possono interagire con una base di dati tramite un DBMS.

    • Amministratore della base di dati (DBA).
      • responsabile della progettazione, controllo e amministrazione della base di dati.
    • I progettisti e programmatori di applicazioni.
      • realizzano i programmi che accedono e interrogano la base di dati.
    • Gli utenti non programmatori che utilizzano la base di dati per le proprie attività.




















La classe modella un insieme di oggetti dello stesso tipo del mondo reale

  • La classe modella un insieme di oggetti dello stesso tipo del mondo reale

    • è costruita col processo di astrazione detto classificazione: entità diverse vengono unificate per costituire un nuovo concetto. Si astrae dalle differenze fra le entità per evidenziare ciò che le accomuna.
    • tutti gli oggetti di una classe sono caratterizzati dagli stessi attributi.
  • L’ associazione modella una correlazione fra entità del mondo reale

    • è una corrispondenza tra classi, e stabilisce una correlazione logica fra oggetti appartenenti a classi diverse (o anche alla stessa classe).


dominio di un attributo: è l’insieme dei valori che può assumere l’attributo stesso

  • dominio di un attributo: è l’insieme dei valori che può assumere l’attributo stesso

    • esempio: il dominio dell’attributo mese è costituito dall’insieme
    • {gennaio, febbraio, marzo, ....,dicembre} oppure dall’insieme {01, 02, 03, ....,12}
  • chiave di una classe: è un attributo (o un insieme di attributi) che identifica univocamente gli oggetti di una classe

    • K è chiave della classe C se non esistono due oggetti in C che hanno lo stesso valore di K
    • esempio: l’attributo matricola è chiave della classe STUDENTI








univocità: ad un oggetto di una classe può essere associato un solo oggetto dell’altra classe

  • univocità: ad un oggetto di una classe può essere associato un solo oggetto dell’altra classe

  • totale: ad un oggetto di una classe è sempre associato qualche oggetto dell’altra classe

  • multivalore: ad un oggetto di una classe possono essere associati più oggetti dell’altra classe

  • parziale: ad un oggetto di una classe non è sempre associato qualche oggetto dell’altra classe





Afferisce è univoca da Docenti a Dipartimenti: ad un oggetto della classe Docenti è associato un solo oggetto della classe Dipartimenti; si modella il fatto che un docente possa afferire ad un solo dipartimento

  • Afferisce è univoca da Docenti a Dipartimenti: ad un oggetto della classe Docenti è associato un solo oggetto della classe Dipartimenti; si modella il fatto che un docente possa afferire ad un solo dipartimento

  • Afferisce è multivalore da Dipartimenti a Docenti: ad un oggetto della classe Dipartimenti possono essere associati più oggetti della classe Docenti; si modella il fatto che ad un dipartimento possano afferire molti docenti

  • Insegna è totale da Corsi di Laurea a Docenti: ad un oggetto della classe Corsi di Laurea è sempre associato qualche oggetto della classe Docenti; si modella il fatto che in un corso di laurea debbano necessariamente insegnare dei docenti

  • Insegna è parziale da Docenti a Corsi di Laurea: ad un oggetto della classe Docenti non è sempre associato qualche oggetto della classe Corsi di Laurea ; si modella il fatto che un docente potrebbe non insegnare



Tra due classi E ed F può essere stabilita una gerarchia

  • Tra due classi E ed F può essere stabilita una gerarchia

    • E è detta sottoclasse o specializzazione di F
    • F è detta superclasse o generalizzazione di E
  • Proprietà delle gerarchie

    • Vincolo di struttura: se E è sottoclasse di F , E ha tutti gli attributi di F, e partecipa a tutte le associazioni cui partecipa F (ereditarietà). E può avere altri attributi, e partecipare ad altre associazioni
    • Vincolo di insieme: se E è specializzazione di F, ogni oggetto di E è anche un oggetto di F (cioè E è un sottoinsieme di F)




















Si vuole progettare una base di dati per gestire informazioni su musei, le opere conservate, gli artisti che hanno creato tali opere.

  • Si vuole progettare una base di dati per gestire informazioni su musei, le opere conservate, gli artisti che hanno creato tali opere.

  • Di un museo interessano il nome, che lo identifica, la città, l’indirizzo e il nome del direttore.

  • Un artista è identificato dal nome; di lui interessano la nazionalità, la data di nascita, la eventuale data di morte.

  • Di un’opera, identificata da un codice, interessano, l’anno di creazione, il titolo, il nome dei personaggi rappresentati.

  • Un’opera può essere un dipinto od una scultura; se è un dipinto interessano il tipo di pittura e le dimensioni; se è una scultura interessano il materiale, l’altezza ed il peso.

















  • MUSEI (NomeM, Città, Indirizzo, Direttore)

  • ARTISTI (NomeA, Nazionalità, DataN, DataM:optional)

  • OPERE (Codice, Anno, Titolo, NomeM*, NomeA*)

  • PERSONAGGI (Personaggio, Codice*)

  • DIPINTI (Codice*, Tipo, Larghezza, Altezza)

  • SCULTURE (Codice*, Materiale, Altezza, Peso)



Consiste nel completamento, o modifica, dello schema logico in funzione della organizzazione fisica dei dati ed i meccanismi per operare su di essi.

  • Consiste nel completamento, o modifica, dello schema logico in funzione della organizzazione fisica dei dati ed i meccanismi per operare su di essi.

  • Realizzazione

  • Consiste nel costruire la rappresentazione del fatti specificati nel progetto (schema dei dati, procedure), utilizzando strumenti informatici (linguaggi di programmazione, SGBD)







Ricordiamo le fasi della progettazione di una Base di Dati

  • Ricordiamo le fasi della progettazione di una Base di Dati

  • Ci occuperemo adesso della progettazione logica



La descrizione del modello da realizzare è fatta in funzione delle caratteristiche del DBMS che sarà utilizzato (il modello dei dati, il linguaggio per sviluppare le applicazioni).

  • La descrizione del modello da realizzare è fatta in funzione delle caratteristiche del DBMS che sarà utilizzato (il modello dei dati, il linguaggio per sviluppare le applicazioni).

  • Il modello dei dati, detto modello logico, è “più vicino” alla rappresentazione informatica dei dati.

  • Vedremo l’uso del Modello dei Dati Relazionale. Lo schema risultante è detto schema relazionale, ed è rappresentato con un formalismo testuale.

    • è un modello dei dati “compreso” dal DBMS
    • si ottiene con una traduzione dello schema E-R




VIENE TRADOTTO NELLO SCHEMA

  • VIENE TRADOTTO NELLO SCHEMA

  • MUSEI (NomeM, Città, Indirizzo, Direttore)

  • ARTISTI (NomeA, Nazionalità, DataN, DataM)

  • OPERE (Codice, Anno, Titolo, NomeM*, NomeA*)

  • PERSONAGGI (Personaggio, Codice*)

  • DIPINTI (Codice*, Tipo, Larghezza, Altezza)

  • SCULTURE (Codice*, Materiale, Altezza, Peso)





















  • D1, …, Dn (n insiemi anche non distinti)

  • prodotto cartesiano D1×…×Dn: l’insieme di tutte le n-uple (d1, …, dn) tali che d1D1, …, dn  Dn

  • relazione matematica su D1, …, Dn:

    • - un sottoinsieme di D1×…×Dn.
  • - D1, …, Dn sono i domini della relazione

  • - n è il grado

  • il numero di elementi della relazione si dice cardinalità



relazione r1  D1 × D2 t. c.:

  • relazione r1  D1 × D2 t. c.:

  • r1 = {(a,x); (a,z); (b,y)}



  • Una relazione matematica è un insieme di n-uple ordinate:

    • (d1, …, dn) tali che d1D1, …, dn  Dn
  • Una relazione è un insieme; quindi:

    • - non c'è ordinamento fra le n-uple (ordinamento verticale)
    • - le n-uple sono distinte
    • - ciascuna n-upla è ordinata: l’ i-esimo valore proviene dall’ i-esimo dominio (ordinamento orizzontale)
















Corrispondenza Attributi - Domini

  • Corrispondenza Attributi - Domini

  • dom: XD

  • funzione che associa a ogni attributo AX un dominio D

  • Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo AX un elemento di dom(A):

  • t[A] denota il valore della ennupla t sull'attributo A



Notazione per le ennuple:

  • Notazione per le ennuple:

  • L‘ennupla rappresentata dalla prima riga

    • t[Fuori] = Lazio
    • t[RetiCasa] = 3
  • Notazione estesa ad insieme di attributi

    • t[Fuori, RetiCasa]


Di solito non è sufficiente una sola relazione per organizzare tutti i dati

  • Di solito non è sufficiente una sola relazione per organizzare tutti i dati

  • Un database è costituito (in generale) da più relazioni

  • Le ennuple contengono valori comuni per stabilire corrispondenze



Schema di relazione:  un simbolo R, detto nome della relazione, e un insieme di attributi A1, ..., An:

  • Schema di relazione:  un simbolo R, detto nome della relazione, e un insieme di attributi A1, ..., An:

    • R(A1,..., An)
  • Schema di base di dati:  insieme di schemi di relazione con nomi diversi:

    • R = {R1(X1), ..., Rk(Xk)}
  • Istanza di relazione su uno schema R(X):

    • insieme r di ennuple su X
  • Istanza di base di dati su uno schema R= {R1(X1), ..., Rn(Xn)

  • insieme di relazioni r = {r1,..., rn}

  • (con ri relazione su Ri)



Schema di Base di dati:

  • Schema di Base di dati:

  • R= {STUDENTI (Matricola, Cognome, Nome, Data di nascita),

    • ESAMI(Studente, Voto, Corso),
    • CORSI(Codice, Titolo, Docente) 
  • R= {CORSI(Corso, Docente, Aula),

    • AULE(Nome, Edificio, Piano),
    • CORSISEDI(Corso, Aula, Edificio, Piano) 




Ovvero:

  • Ovvero:

  • i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple







indipendenza dalle strutture fisiche che possono cambiare dinamicamente

  • indipendenza dalle strutture fisiche che possono cambiare dinamicamente

  • si rappresenta solo ciò che è rilevante dal punto di vista dell’applicazione

  • l’utente finale vede gli stessi dati dei programmatori

  • i dati sono portabili piu' facilmente da un sistema ad un altro

  • i puntatori sono direzionali



PERSONE(CodFiscale,Nome,Telefono)

  • PERSONE(CodFiscale,Nome,Telefono)

  • o più accuratamente

  • PERSONE(CodFiscale:string(16),Nome:string(30), Telefono: optional integer)

  • L’attributo sottolineato è la chiave primaria



Una (istanza della) relazione Persone, conforme a tale schema, è ad es. la seguente:

  • Una (istanza della) relazione Persone, conforme a tale schema, è ad es. la seguente:

  • E’ d’uso visualizzare una relazione come una tabella bidimensionale, con le colonne identificate dagli attributi e le righe contenenti i valori dei campi, nell’ordine indicato dall’intestazione delle colonne.

  • La proprietà di essere chiave è riferita allo schema piuttosto che ad una particolare tabella: una chiave è tale (identifica le righe) in una qualunque istanza di un determinato schema.







Consideriamo l’associazione SEGUE tra STUDENTI e CDS (Corso di Studi).

  • Consideriamo l’associazione SEGUE tra STUDENTI e CDS (Corso di Studi).

  • STUDENTI(Nome:string, Matricola: string, Provincia: string, AnnoNascita:int, SiglaCDS*: string)

  • CDS(SiglaCDS: string, NomeCDS: string, Tipo: string)

  • Il fatto che un corso di studi è associato ad uno studente si modella prevedendo nello schema della relazione STUDENTI un campo che assume come valori la chiave primaria di CDS, cioè SiglaCDS.

  • SiglaCdS* è chiave esterna nella relazione STUDENTI, e serve a rappresentare un’associazione univoca da STUDENTI a CdS





Il dominio di SiglaCDS* nella relazione STUDENTI coincide col dominio di SiglaCDS nella relazione CDS

  • Il dominio di SiglaCDS* nella relazione STUDENTI coincide col dominio di SiglaCDS nella relazione CDS

  • Se in una istanza di STUDENTI l’attributo SiglaCDS assume il valore “XYZ”, deve esistere, nella istanza di CDS una ennupla con SiglaCDS = “XYZ”. Il motivo è ovvio; se una studente è iscritto a “XYZ”, deve esistere il Corso di Studi “XYZ”

  • Tale proprietà si chiama Vincolo di integrità referenziale, e deve essere sempre soddisfatto da una chiave esterna:









Una classe C è rappresentata da una relazione R i cui attributi sono quelli di C

  • Una classe C è rappresentata da una relazione R i cui attributi sono quelli di C

  • si traduce in

  • Studenti(Matricola, Nome, AnnoImmatric)







Se l’associazione è 1 a 1, cioè univoca in entrambi i versi, allora sono corrette entrambe le soluzioni.

  • Se l’associazione è 1 a 1, cioè univoca in entrambi i versi, allora sono corrette entrambe le soluzioni.

  • Dipartimenti(Nome, Facoltà, Cod*)

  • Docenti(Cod, Settore)

  • o

  • Dipartimenti(Nome, Facoltà)

  • Docenti(Cod, Settore, Nome*)

  • La prima soluzione è migliore, ma entrambe sono corrette





  • Una ennupla di Insegna rappresenta una coppia (Corso_di_Lurea, Docente) di oggetti in associazione.



  • CorsidiLa(Codice,Nome,Facoltà,Tipo)

  • Docenti(CodDoc, Settore)

  • Insegna(Codice*, CodDoc*, NumIns)







Un solo schema di relazione, che contiene tutti gli attributi

  • Un solo schema di relazione, che contiene tutti gli attributi

  • Con questa soluzione viene ignorata la gerarchia: si perdono le sottoclassi









Tre schemi indipendenti, uno per ogni classe, contenenti tutti gli attributi di ciascuna classe

  • Tre schemi indipendenti, uno per ogni classe, contenenti tutti gli attributi di ciascuna classe

  • Anche con questa soluzione viene ignorata la gerarchia: si perde la superclasse

  • Si osservi che con nessuna delle tre soluzioni è in generale possibile esprimere i vincoli strutturali della gerarchia, vale a dire i vincoli di disgiunzione e di totalità





Film(CodFilm,Titolo,Regista,Anno)

  • Film(CodFilm,Titolo,Regista,Anno)

  • Attori(CodFilm*, Attore)





Le regole di traduzione

  • Le regole di traduzione

  • Entità: diventano tabelle ed i loro identificatori chiavi primarie

  • Associazioni 1-1: se obbligatorie si procede come per le 1-N scegliendo il lato in cui includere gli attributi e la chiave esterna; se una opzionale si includono gli attributi e la chiave esterna sul lato“obbligatorio”; se entrambe opzionali si costruisce una tabella autonoma come per il caso N-N.

  • Associazioni1-N:gli attributi dell’associazione e la chiave primaria della tabella relativa all’entità dal lato “N” sono inclusi nella tabella relativa all’entità dal lato“1”.

  • Associazioni N-N: diventano tabelle con chiave primaria formata dall’unione delle chiavi delle entità coinvolte



Nonostante una evidente analogia tra

  • Nonostante una evidente analogia tra

  • Classe e Relazione

  • Oggetto e Ennupla

  • Attributo(E-R) e Attributo(Rel)

  • sussiste in realtà una significativa differenza tra i concetti nei due modelli

  • Non sempre una relazione rappresenta una classe: può rappresentare una associazione o un attributo multivalore

  • Non sempre un’ ennupla rappresenta un oggetto: può rappresentare una coppia di oggetti in associazione o un possibile valore di un attributo multivalore

  • Non sempre un attributo Rel rappresenta un attributo E-R: può rappresentare un oggetto di un’altra classe (chiave esterna)



ll modello relazionale impone ai dati una struttura rigida:

  • ll modello relazionale impone ai dati una struttura rigida:

    • le informazioni sono rappresentate per mezzo di ennuple
    • solo alcuni formati di ennuple sono ammessi: quelli che corrispondono agli schemi di relazione
  • I dati disponibili possono non corrispondere al formato previsto



Non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “99”, ...):

  • Non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “99”, ...):

    • potrebbero non esistere valori “non utilizzati”
    • in fase di utilizzo (nei programmi) sarebbe necessario ogni volta tener conto del “significato” di questi valori
  • Tecnica rudimentale ma efficace:

    • valore nullo:  denota l’assenza di un valore del dominio (e non è un valore del dominio)
    • si possono (e debbono) imporre restrizioni sulla presenza di valori nulli




(almeno) tre casi differenti

  • (almeno) tre casi differenti

    • valore sconosciuto
    • valore inesistente
    • valore senza informazione


I vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati

  • I vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati

    • interessano a livello di schema (con riferimento cioè a tutte le istanze)
  • Ad uno schema associamo un insieme di vincoli e consideriamo corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli

  • Un'istanza può soddisfare altri vincoli



Nel modello relazionale si possono esprimere i seguenti vincoli:

  • Nel modello relazionale si possono esprimere i seguenti vincoli:

    • Vincolo di chiave
    • Vincolo di chiave esterna
    • Tipo di un attributo
    • Attributo obbligatorio
    • Vincoli strutturali delle associazioni (non completamente)


Rispetto al modello E-R, non è possibile rappresentare i vincoli delle gerarchie, mentre è possibile, solo in parte, rappresentare i vincoli strutturali delle associazioni

  • Rispetto al modello E-R, non è possibile rappresentare i vincoli delle gerarchie, mentre è possibile, solo in parte, rappresentare i vincoli strutturali delle associazioni

  • Questo schema E-R si traduce nello schema relazionale

  • S(h, a, k*)

  • T(k, b)

  • che rappresenta l’univocità e la totalità di R da S a T, ma non consente di esprimere la sua totalità da T ad S.





Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione

  • Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione

  • Un vincolo è una funzione booleana (un predicato): associa ad ogni istanza il valore vero o falso

  • Perchè?

    • descrizione più accurata della realtà
    • contributo alla “qualità dei dati”
    • utili nella progettazione (vedremo)
    • usati dai DBMS nella esecuzione delle interrogazioni


Vincoli intrarelazionali: coinvolgono una singola relazione del database.

  • Vincoli intrarelazionali: coinvolgono una singola relazione del database.

    • Esempi
      • vincoli di ennupla
      • vincoli di chiave
      • vincoli su valore
  • Vincoli interrelazionali: coinvolgono diverse relazioni del database.

    • Esempio: vincoli di integrità referenziale


Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple

  • Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple

  • Caso particolare:

    • vincoli di dominio: coinvolgono un solo attributo
  • Una possibile sintassi:

    • espressione booleana di atomi che confrontano valori di attributo o espressioni aritmetiche su di essi
  • (Voto  18) AND (Voto  30)

  • (Voto = 30) OR NOT (Lode = "e lode")





Chiave: insieme di attributi che identificano univocamente le ennuple di una relazione

  • Chiave: insieme di attributi che identificano univocamente le ennuple di una relazione

  • L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati

  • Le chiavi permettono di correlare i dati in relazioni diverse:

    • il modello relazionale è basato su valori
  • In presenza di valori nulli, i valori della chiave non permettono

    • di identificare le ennuple
    • di realizzare facilmente i riferimenti da altre relazioni


Chiave su cui non sono ammessi nulli

  • Chiave su cui non sono ammessi nulli

  • Notazione: sottolineatura



  • {Cognome, Nome, Nascita} è un’altra chiave:



Informazioni in relazioni diverse sono correlate attraverso valori comuni

  • Informazioni in relazioni diverse sono correlate attraverso valori comuni

    • le correlazioni debbono essere "coerenti"






Un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di una relazione R1 e un’altra relazione R2 impone ai valori su X in R1 di comparire come valori della chiave primaria di R2

  • Un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di una relazione R1 e un’altra relazione R2 impone ai valori su X in R1 di comparire come valori della chiave primaria di R2

  • ES: vincoli di integrità referenziale fra: l’attributo Vigile della relazione INFRAZIONI e la relazione VIGILI







Esempio:

  • Esempio:

    • Viene eliminata una ennupla causando una violazione
  • Comportamento “standard”:

    • Rifiuto dell'operazione
  • Azioni compensative:

    • Eliminazione in cascata
    • Introduzione di valori nulli








Un negozio noleggia film in DVD

  • Un negozio noleggia film in DVD

    • il negozio dispone di un catalogo dei film; ogni film è identificato dal codice DVD
    • nel catalogo sono specificati il titolo del film, il regista, gli attori principali, la loro nazionalità ed il personaggio interpretato nel film, l’anno di produzione
    • ciascun film è indicizzato da un insieme di termini (una lista di parole che descrivono sinteticamente il contenuto del film)
    • I film possono essere anche in lingua originale (diversa dall’italiano); in tal caso nel catalogo è detto di che lingua si tratta, e se il film è sottotitolato.
    • di ogni film presente nel catalogo il negozio dispone di uno o più DVD, ciascuno identificato dalla sua collocazione; se un DVD è noleggiato, interessa sapere il cliente che l’ha noleggiato e la data del noleggio.
    • i clienti sono identificati da un codice; di essi interessa inoltre cognome, nome, indirizzo, telefono.


Si individuano

  • Si individuano

  • le classi

  • le associazioni

  • gli attributi

  • le chiavi

  • le gerarchie



Le entità presenti nella realtà e che sono interessanti nel modello sono i film, i dvd, gli attori, i clienti;

  • Le entità presenti nella realtà e che sono interessanti nel modello sono i film, i dvd, gli attori, i clienti;

    • le classi individuate sono:
    • gli attori costituiscono una classe in quanto interessano delle loro proprietà (nazionalità,…), mentre del regista interessa solo il nome, e quindi va considerato un attributo
    • i dvd costituiscono una classe; sono concettualmente distinti dai film, e interessa sapere a chi sono noleggiati, ed in quale data






FILM( codiceDVD, titolo, regista, anno, lingua, sottotitoli)

  • FILM( codiceDVD, titolo, regista, anno, lingua, sottotitoli)

    • rappresenta la classe FILM; l’attributo Termini non è rappresentato perchè è multivalore.
  • Attori( nome, nazionalità)

    • rappresenta la classe Attori
  • Recita( codiceDVD*, nome* )

    • rappresenta l’associazione N:M recita
  • DVD( collocazione, dataNoleggio, codiceDVD*, codiceCliente*)

    • rappresenta la classe DVD e le associazioni contiene e èNoleggiato
  • Clienti( codiceCliente, cognome, nome, telefono, città, via)







  • Un impiegato ha codice,cognome ed uno stipendio;può partecipare ad un progetto definito da un budget e da un nome;l’impiegato può dirigere un solo dipartimento definito da un nome e dal telefono ma può afferire in date differenti a più dipartimenti; il dipartimento ha una sede composta da un indirizzo e da una città





La segreteria di un corso di laurea deve gestire alcune informazioni relative all’orario delle lezioni.

  • La segreteria di un corso di laurea deve gestire alcune informazioni relative all’orario delle lezioni.

    • informazioni: aule, corsi, lezioni
      • le aule sono identificate da un codice, di ogni aula interessa il numero dei posti, l’edificio in cui è situata, se ha o non ha proiettore
      • alcune aule sono dotate di calcolatori, in questo caso interessa sapere il numero dei pc
      • i corsi sono identificati da un codice; di ogni corso interessa il nome e il docente
      • le lezioni sono caratterizzate da un’ora d’inizio, un’ora di fine, un giorno della settimana, il semestre
      • ogni lezione è tenuta in un’aula e si riferisce ad un corso




Condividi con i tuoi amici:


©astratto.info 2019
invia messaggio

    Pagina principale