Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Base dati di un ente turistico

Formuliamo ora sull’istanza appena descritta della nostra base di dati una serie di

interrogazioni SQL di complessità crescente, introducendo man mano i vari operatori e le varie

clausole che il linguaggio di interrogazione mette a disposizione (si fa riferimento allo standard

SQL-2). Per ogni interrogazione verrà mostrato il risultato e la corrispondente traduzione nel

dialetto SQL adoperato da Access.

Interrogazione 1: Estrarre i codici degli alberghi con più di 50 stanze.

select Codice

from Albergo

where NrStanze>50

SELECT Codice

FROM Albergo

WHERE NrStanze>50; Codice

HICD1

JH787

R33AI

TY767

Interrogazione 2: Estrarre tutte le informazioni contenute nella tabella A , relative ad

LBERGO

alberghi a tre o quattro stelle con più di 50 stanze.

select *

from Albergo

where (Categoria=3 or Categoria=4) and NrStanze>50

SELECT *

FROM Albergo

WHERE (Categoria=3 or Categoria=4) and NrStanze>50;

Codice Categoria NrStanze

JH787 3 52

R33AI 4 75

Interrogazione 3:Estrarre i nomi delle zone in cui è divisa la città di Napoli (senza adoperare

esplicitamente l’operatore di join).

select Zona.Nome

from Città, Zona

where Città.Nome='Napoli' and Città.IdCittà=Zona.Città

SELECT Zona.Nome

FROM Città, Zona

WHERE Città.Nome='Napoli' and Città.IdCittà=Zona.Città;

17

Base dati di un ente turistico

Nome

Fuorigrotta

Bagnoli

Centro direzionale

Centro storico

Barra

Ponticelli

Interrogazione 4: Realizzare l’interrogazione precedente mediante l’uso esplicito dell’operatore

di join e fornendo i risultati in ordine alfabetico.

select Z.Nome

from Città C join Zona Z on C.IdCittà=Z.Città

where C.Nome='Napoli'

order by Z.Nome

SELECT Z.Nome

FROM Città AS C INNER JOIN Zona AS Z ON C.IdCittà=Z.Città

WHERE C.Nome='Napoli'

ORDER BY Z.Nome; Nome

Bagnoli

Barra

Centro direzionale

Centro storico

Fuorigrotta

Ponticelli

Interrogazione 5: Estrarre per ogni ristorante codice, nome, indirizzo, nome della zona e della

città e descrizione della cucina offerta.

select R.Codice, E.Nome, E.Indirizzo, Z.Nome as Zona, T.Nome as Città,

C.Descrizione as Cucina

from Cucina C join Ristorante R on C.Tipo=R.Cucina join Esercizio E on

R.Codice=E.Codice join Zona Z on E.Zona=Z.CodiceZona and

E.Città=Z.Città join Città T on Z.Città=T.IdCittà

SELECT R.Codice, E.Nome, E.Indirizzo, Z.Nome AS Zona, T.Nome AS Città,

C.Descrizione AS Cucina

FROM (((Cucina AS C INNER JOIN Ristorante AS R ON C.Tipo=R.Cucina) INNER

JOIN Esercizio AS E ON R.Codice=E.Codice) INNER JOIN Zona AS Z ON

(E.Zona=Z.CodiceZona) AND (E.Città=Z.Città)) INNER JOIN Città AS

T ON Z.Città=T.IdCittà; 18

Base dati di un ente turistico

Codice Nome Indirizzo Zona Città Cucina

GMB33 Gambero Rosso Via Morosini Fuorigrotta Napoli Tradizionale

GV444 La Pignata Viale Tigli Centro Ariano Irpino Locale

DTN77 Da Tonino Via Lepanto Fuorigrotta Napoli Tradizionale

EU444 Oasi Viale Italia Eur Roma Tradizionale

PKT23 Pitagoras Via Giulio Cesare Fuorigrotta Napoli Greca

CH789 Cin Cian P.le Tecchio Fuorigrotta Napoli Cinese

PDM55 La gondola Piazza Duomo Centro Milano Francese

LCP66 Lucullo Via Marina Litorale Pozzuoli Pesce

PDR55 Paradise Via della Liberazione Parioli Roma Tradizionale

FG567 Trattoria Grasso Via S.Barbara Centro Montecalvo Irpino Casereccia

Interrogazione 6: Estrarre per ogni albergo, con almeno tre stelle e che non si trovi a Roma,

codice, nome, indirizzo, nome della zona e della città, categoria e numero di stanze, fornendo

le righe del risultato ordinate per categoria e, a parità di questa, per numero di stanze.

select A.Codice, E.Nome, E.Indirizzo, Z.Nome as Zona, C.Nome as Città,

A.Categoria, A.NrStanze

from Albergo A join Esercizio E on A.Codice=E.Codice join Zona Z on

E.Zona=Z.CodiceZona and E.Città=Z.Città join Città C on

Z.Città=C.IdCittà

where A.Categoria>=3 and C.Nome<>'Roma'

order by A.Categoria, A.NrStanze

SELECT A.Codice, E.Nome, E.Indirizzo, Z.Nome AS Zona, C.Nome AS Città,

A.Categoria, A.NrStanze

FROM (Città AS C INNER JOIN Zona AS Z ON C.IdCittà = Z.Città) INNER JOIN

(Esercizio AS E INNER JOIN Albergo AS A ON E.Codice = A.Codice) ON

(Z.Città = E.Città) AND (Z.CodiceZona = E.Zona)

WHERE A.Categoria>=3 and C.Nome<>'Roma'

ORDER BY A.Categoria, A.NrStanze;

Codice Nome Indirizzo Zona Città Categoria NrStanze

JH787 Jolly Hotel Via Medina Centro storico Napoli 3 52

JK876 Hotel Vesuvio Via Marina Litorale Sorrento 4 34

R33AI Palace Hotel Via Roma Centro Milano 4 75

AGT44 Hotel Serius Viale Augusto Fuorigrotta Napoli 5 35

HICD1 Holyday Inn Isola E/6 Centro direzionale Napoli 5 100

Interrogazione 7: Estrarre i codici dei ristoranti e delle carte di credito con cui sono

convenzionati, mantenendo nel risultato anche i ristoranti che non hanno alcuna convenzione.

select R.Codice as Ristorante, C.Carta

from Ristorante R left join Convenzione C on R.Codice=C.Esercizio

SELECT R.Codice AS Ristorante, C.Carta

FROM Ristorante AS R LEFT JOIN Convenzione AS C ON R.Codice=C.Esercizio;

19

Base dati di un ente turistico

Ristorante Carta

GMB33 AE112

GMB33 VS343

GMB33 MC453

GV444 MC453

GV444 VS343

DTN77

EU444 MC453

PKT23 DC332

CH789 GH656

PDM55

LCP66

PDR55

FG567

Interrogazione 8: Estrarre le descrizioni delle cucine offerte dai ristoranti il cui nome inizi con

la lettera O o con la lettera P, eliminando eventuali duplicati.

select distinct C.Descrizione

from Cucina C join Ristorante R on C.Tipo=R.Cucina join Esercizio E on

E.Codice = R.Codice

where E.Nome Like 'O%' or E.Nome Like 'P%'

SELECT DISTINCT C.Descrizione

FROM Esercizio AS E INNER JOIN (Cucina AS C INNER JOIN Ristorante AS R ON

C.Tipo=R.Cucina) ON E.Codice = R.Codice

WHERE E.Nome Like 'O*' or E.Nome Like 'P*';

Descrizione

Greca

Tradizionale

Interrogazione 9: Estrarre il numero di alberghi ed il numero complessivo di stanze.

select count(*) as NumeroAlberghi, sum(NrStanze) as StanzeTotali

from Albergo

SELECT count(*) AS NumeroAlberghi, sum(NrStanze) AS StanzeTotali

FROM Albergo; NumeroAlberghi StanzeTotali

10 432

Interrogazione 10: Estrarre codice, nome e numero di ristoranti delle città che hanno dei

ristoranti.

select C.IdCittà, C.Nome, count(*) as NrRistoranti

from Città C join Esercizio E on C.IdCittà=E.Città join Ristorante R on

E.Codice=R.Codice

group by C.IdCittà, C.Nome 20

Base dati di un ente turistico

SELECT C.IdCittà, C.Nome, count(*) AS NrRistoranti

FROM (Città AS C INNER JOIN Esercizio AS E ON C.IdCittà=E.Città) INNER JOIN

Ristorante AS R ON E.Codice=R.Codice;

GROUP BY C.IdCittà, C.Nome;

IdCittà Nome NrRistoranti

4 Napoli 4

5 Ariano Irpino 1

6 Roma 2

9 Pozzuoli 1

10 Milano 1

11 Montecalvo Irpino 1

Interrogazione 11: Estrarre i codici e i nomi delle carte di credito che sono convenzionate con

più di 4 esercizi commerciali.

select D.CodiceCarta, D.Nome, Count(*) as NrConvenzioni

from Esercizio E join Convenzione C on E.Codice = C.Esercizio join

CartaDiCredito D on D.CodiceCarta = C.Carta

group by D.CodiceCarta, D.Nome

having Count(*)>4;

SELECT D.CodiceCarta, D.Nome, Count(*) AS NrConvenzioni

FROM Esercizio AS E INNER JOIN (CartaDiCredito AS D INNER JOIN Convenzione

AS C ON D.CodiceCarta = C.Carta) ON E.Codice = C.Esercizio

GROUP BY D.CodiceCarta, D.Nome

HAVING Count(*)>4;

CodiceCarta Nome NrConvenzioni

MC453 MasterCard 7

VS343 Visa 5

Interrogazione 12: Estrarre il codice e il numero di stanze dell'albergo con più stanze.

select Codice, NrStanze

from Albergo

where NrStanze = (select max(NrStanze)

from Albergo);

SELECT Codice, NrStanze

FROM Albergo

WHERE NrStanze=(select max(NrStanze) from Albergo);

Codice NrStanze

HICD1 100

Interrogazione 13: Estrarre i codici e i nomi delle carte di credito che non sono convenzionate

con alcun ristorante.

select *

from CartaDiCredito 21

Base dati di un ente turistico

where CodiceCarta not in (select C.Carta

from Ristorante R join Convenzione C on

R.Codice=C.Esercizio);

SELECT *

FROM CartaDiCredito

WHERE CodiceCarta not in (select C.Carta from Ristorante R inner join

Convenzione C on R.Codice=C.Esercizio);

CodiceCarta Nome

TC565 Top Card

Interrogazione 14: Riformulare l'interrogazione precedente adoperando l'operatore exists.

select *

from CartaDiCredito D

where not exists (select *

from Ristorante R join Convenzione C on

R.Codice=C.Esercizio

where C.Carta=D.CodiceCarta)

SELECT *

FROM CartaDiCredito AS D

WHERE (((Exists (select * from Ristorante R inner join Convenzione C on

R.Codice=C.Esercizio where C.Carta=D.CodiceCarta))=False));

Interrogazione 15: Estrarre il nome della città in cui è presente il maggior numero di esercizi

commerciali.

Questa interrogazione richiederebbe la valutazione in serie di due operatori aggregati, in

quanto dovrebbe prima contare gli alberghi per ogni città e poi valutare il massimo tra i valori

ottenuti. Poiché i due operatori intervengono a diversi livelli di aggregazione la sintassi di SQL

non permette di formulare questa interrogazione. Ricorriamo dunque alla definizione di una

vista che ci permetta di superare l'ostacolo.

create view VistaCittà(IdCittà, Nome, NrEsercizi) as

select C.IdCittà, C.Nome, count(*)

from Esercizio E join Città C on E.Città=C.IdCittà

group by C.IdCittà, C.Nome

L'interrogazione può in definitiva scriversi come:

select Nome

from VistaCittà

where NrEsercizi = ( select max(NrEsercizi)

from VistaCittà)

Nell'implementazione con Access definiamo due query, di cui la prima coincide con la vista

VistaCittà

SELECT C.IdCittà, C.Nome, count(*) AS NrEsercizi

FROM Esercizio AS E INNER JOIN Città AS C ON E.Città=C.IdCittà

GROUP BY C.IdCittà, C.Nome; 22

Base dati di un ente turistico

SELECT Nome

FROM VistaCittà

WHERE NrEsercizi = (select max(NrEsercizi) from VistaCittà);

Nome

Napoli

R ’ M A 97

EALIZZAZIONE DELL APPLICAZIONE IN ICROSOFT CCESS

Sullo schema relazionale della base dati in esame, già definito in Microsoft Access 97, è stata

realizzata un'applicazione di interfaccia per l'utente finale. All'avvio l'applicazione presenta la

maschera-menu mostrata in Figura 2-6. Figura 2-6

Da tale maschera è possibile selezionare una delle seguenti alternative:

¾ Inserimento dati

Apre un menu simile che consente la scelta del tipo di dati da inserire:

¾ Inserimento alberghi

¾ Inserimento ristoranti

¾ Inserimento città

¾ Inserimento zone

¾ Inserimento carte di credito

¾ Inserimento cucine

¾ Inserimento convenzioni

Selezionata una di queste opzioni, viene aperta una maschera per l'inserimento del

corrispondente tipo di dati. In Figura 2-7 è ad esempio mostrata la maschera per

l'inserimento dei dati relativi agli alberghi. 23

Base dati di un ente turistico

Figura 2-7

¾ Visualizzazione dati

Apre un menu simile che consente la scelta di una delle modalità previste di visualizzazione

dei dati contenuti nel database. Al momento sono possibili le seguenti opzioni:

¾ Visualizza città con relative

Per ogni città visualizza i suoi dati e l'elenco delle zone in cui è divisa (vedi Figura 2-8).

¾ Visualizza esercizi con relative convenzioni

Per ogni esercizio commerciale visualizza i suoi dati e l'elenco delle carte di credito con

cui è convenzionato.

¾ Distribuzione degli esercizi per città

Visualizza un grafico a torta che mostra come sono distribuiti gli esercizi commerciali

tra le diverse città (vedi Figura 2-9).

Figura 2-8

24

Base dati di un ente turistico

Figura 2-9

¾ Esempi di interrogazioni

Apre un menu simile che permette di selezionare una delle interrogazioni d'esempio

formulate nel paragrafo precedente. Selezionata una interrogazione ne viene visualizzato il

risultato.

¾ Stampa

Permette di selezionare un report per la stampa: al momento è stato realizzato un solo report

che stampa un elenco dei ristoranti divisi per città e per zone (vedi Figura 2-10).

¾ Esci dall'applicazione

Chiude l'applicazione ma rimane nell'ambiente di Microsoft Access 97

¾ Esci da Microsoft Access 97

Chiude Microsoft Access 97. 25

Base dati di un ente turistico

Elenco ristoranti

Città Zona Nome Codice Indirizzo Cucina

Ariano Irpino Centro La Pignata GV444 Viale Tigli Locale

Milano Centro La gondola PDM55 Piazza Duomo Francese

Montecalvo Irpino Centro Trattoria Grasso FG567 Via S.Barbara Casereccia

Napoli Fuorigrotta Cin Chan CH789 P.le Tecchio Cinese

Da Tonino DTN77 Via Lepanto Tradizionale

Gambero Rosso GMB33 Via Morosini Tradizionale

Pitagoras PKT23 Via Giulio Cesare Greca

Pozzuoli Litorale Lucullo LCP66 Via Marina Pesce

Roma Eur Oasi EU444 Viale Italia Tradizionale

Parioli Paradise PDR55 Via della Tradizionale

Liberazione

giovedì 25 gennaio 2001 Pagina 1 di 1

Figura 2-10

26

Progetto 2

Base dati del D.I.S.

S

PECIFICHE DEL PROBLEMA

Le specifiche relative alla base di dati del D.I.S. sono le seguenti:

Si vuole realizzare una base dati per il Dipartimento di Informatica e Sistemistica della Facoltà

di Ingegneria della Università degli studi di Napoli Federico II, in cui si vogliono mantenere

informazioni sull'organico del dipartimento, sui corsi offerti, sulle attività di ricerca, sulle tesi

svolte e sulle strutture a disposizione.

Per i membri dell'organico, identificati da un numero di matricola, si vogliono memorizzare i

dati personali, ovvero codice fiscale, cognome, nome, data e città di nascita, indirizzo, città di

residenza e numero di telefono, il recapito universitario, costituito da numero interno e indirizzo

di posta elettronica, ed infine le note sulla carriera e la struttura del dipartimento cui afferiscono,

insieme alla data di afferenza. Per le strutture, identificate da un codice, si vuole memorizzare

il nome, i numeri di telefono e fax, la sede in cui sono ubicate, il nome del responsabile e la

tipologia di struttura. Per le sedi, identificate da un codice, si vuole memorizzare l'indirizzo e il

C.A.P.

L'organico è diviso in personale di ricerca e personale non docente. Il personale non docente è

caratterizzato da un livello e può essere personale tecnico o personale amministrativo. Per

coloro che fanno parte del personale di ricerca si vuole rappresentare il settore di ricerca, il

gruppo di ricerca di cui fanno parte, i filoni di ricerca a cui partecipano e le pubblicazioni di cui

sono autori. Per i gruppi di ricerca, identificati da un codice, si rappresenta il nome. Per i filoni

di ricerca, identificati da un codice, si vuole memorizzare il nome, il settore di ricerca, le note

su eventuali altre caratteristiche, quali enti coinvolti e finanziatori, il nome del responsabile e le

pubblicazioni ad essi associate. Di ogni pubblicazione, identificata da un codice, interessano il

titolo, la data di pubblicazione, la rivista su cui è stata pubblicata, il contenuto e i nomi degli

autori. All'interno di ogni filone di ricerca si distinguono diversi temi di ricerca, caratterizzati

da un nome, una descrizione ed un codice unico solo all'interno di quel particolare filone di

ricerca. Per quanto riguarda le tesi, identificate da un codice, si vuole memorizzare il titolo, una

27

Base dati del D.I.S.

descrizione ed eventualmente il tema di ricerca cui fanno riferimento. Per le tesi che siano state

assegnate si vogliono memorizzare i dati dello studente, ovvero nome, cognome e numero di

matricola, ed i nomi di relatore e correlatore, i quali fanno parte del personale di ricerca. Infine

per i lavori di tesi che siano stati conclusi si vuole memorizzare l'anno accademico in cui sono

stati presentati.

Il personale di ricerca si divide in docenti e dottorandi. Per ogni docente si vogliono

rappresentare i corsi che esso insegna. I docenti possono essere professori ordinari, associati,

straordinari o ricercatori. Per i corsi si vuole memorizzare l'anno accademico, le date di inizio e

fine, il nome del professore, l'orario delle lezioni e l'insegnamento offerto, caratterizzato da un

codice comprensivo del codice di corso di laurea, un nome e una descrizione. Per ogni

insegnamento è previsto al più un corso per anno accademico. Per le lezioni si vuole

memorizzare il giorno della settimana. l'ora, l'aula ed il corso di cui fanno parte.

A NALISI DELLE SPECIFICHE

Da una prima analisi delle specifiche del problema in esame possiamo ricavare un glossario

dei termini che chiarisca il significato dei termini adoperati. Tale glossario è illustrato in Tabella

4-1.

Termine Descrizione Sinonimi Collegamenti

Organico Persona che, a vario titolo, Struttura

opera all'interno del

dipartimento.

Struttura Laboratori, aule, uffici di cui Organico, sede

dispone il dipartimento.

Sede Luoghi in cui sono ubicate le Struttura

strutture della facoltà.

Personale non Membro dell'organico che opera Organico

docente nel dipartimento come tecnico o

come amministrativo.

Personale di ricerca Membro dell'organico Organico, filone di

impegnato in attività di ricerca. ricerca, pubblicazione,

gruppo di ricerca

Gruppo di ricerca Insieme di membri del Personale di ricerca

personale di ricerca che

partecipano ad attività comuni

di ricerca.

Filone di ricerca Insieme omogeneo di argomenti Pubblicazione,

oggetto di studio. personale di ricerca

28

Base dati del D.I.S.

Tema di ricerca Argomento di studio nell'ambito Filone di ricerca

di un filone di ricerca.

Pubblicazione Relazione pubblicata su una Filone di ricerca,

rivista nell'ambito di un filone personale di ricerca

di ricerca.

Tesi Tesi disponibile, in corso di Lavoro di tesi Personale di ricerca,

svolgimento o svolta presso il docente, tema di

dipartimento. ricerca

Docente Membro del personale di ricerca Professore Personale di ricerca,

impegnato in attività didattiche. corso

Corso Offerta didattica del Insegnamento, lezione

dipartimento.

Insegnamento Materie d'insegnamento di Corso

competenza del dipartimento.

Lezione Unità didattiche che Corso

compongono i corsi.

Tabella 4-1

Sulla base del glossario dei termini appena ricavato e dei criteri generali per l'analisi delle

specifiche già illustrati nel capitolo precedente, si possono riscrivere le specifiche

decomponendo il testo che le descrive in gruppi di frasi relative agli stessi concetti. Il risultato di

questa operazione è mostrato in Tabella 4-2.

Frasi di carattere generale

Si vuole realizzare una base dati per il Dipartimento di Informatica e Sistemistica della Facoltà

di Ingegneria della Università degli studi di Napoli Federico II, di cui si vogliono mantenere

informazioni sull'organico, sui corsi offerti, sulle attività di ricerca, sulle tesi svolte e sulle

strutture a disposizione. Frasi relative all'organico

Per i membri dell'organico, identificati da un numero di matricola, rappresentiamo i dati

personali (codice fiscale, cognome, nome, data e città di nascita, indirizzo, città di residenza,

numero di telefono), il recapito universitario (numero interno, indirizzo di posta elettronica), le

note sulla carriera, la struttura del dipartimento cui afferiscono e la data di afferenza. L'organico

è diviso in personale di ricerca e personale non docente.

Frasi relative alle strutture

Per le strutture, identificate da un codice, rappresentiamo il nome, i numeri di telefono e fax, la

sede in cui sono ubicate, il nome del responsabile e la tipologia di struttura.

29

Base dati del D.I.S.

Frasi relative alle sedi

Per le sedi, identificate da un codice, rappresentiamo l'indirizzo e il C.A.P.

Frasi relative al personale non docente

Per il personale non docente rappresentiamo il livello. Il personale non docente può essere

personale tecnico o personale amministrativo.

Frasi relative al personale di ricerca

Per i membri del personale di ricerca rappresentiamo il settore di ricerca, il gruppo di ricerca di

cui fanno parte, i filoni di ricerca a cui partecipano e le pubblicazioni di cui sono autori.

Frasi relative ai gruppi ricerca

Per i gruppi di ricerca, identificati da un codice, rappresentiamo il nome.

Frasi relative ai filoni di ricerca

Per i filoni di ricerca, identificati da un codice, rappresentiamo il nome, il settore di ricerca, le

note su eventuali altre caratteristiche (enti coinvolti e finanziatori), il nome del responsabile e le

pubblicazioni ad essi associate. Frasi relative ai temi di ricerca

Per i temi di ricerca, identificati da un codice unico solo nell'ambito dello stesso filone,

rappresentiamo il filone di appartenenza, il nome e la descrizione.

Frasi relative alle pubblicazioni

Per le pubblicazioni, identificate da un codice, rappresentiamo il titolo, la data di pubblicazione,

la rivista su cui sono stata pubblicate, il contenuto e i nomi degli autori.

Frasi relative alle tesi

Per le tesi, identificate da un codice, rappresentiamo il titolo, una descrizione ed eventualmente

il tema di ricerca cui fanno riferimento. Per le tesi assegnate rappresentiamo i dati dello studente

(nome, cognome e numero di matricola) ed i nomi di relatore e correlatore, i quali fanno parte

del personale di ricerca. Per le di tesi concluse rappresentiamo l'anno accademico in cui sono

state presentate. Frasi relative ai docenti

Per i docenti rappresentiamo i corsi che essi insegnano.

30

Base dati del D.I.S.

Frasi relative agli insegnamenti

Per gli insegnamenti, identificati da un codice comprensivo del codice di corso di laurea,

rappresentiamo il nome e la descrizione.

Frasi relative ai corsi

Per i corsi, identificati dall'insegnamento e dall'anno accademico, rappresentiamo le date di

inizio e fine, il nome del docente e l'orario delle lezioni.

Frasi relative alle lezioni

Per le lezioni, identificate da giorno della settimana, ora ed aula, rappresentiamo il corso di cui

fanno parte. Tabella 4-2

S E -R

CHEMA NTITÀ ELAZIONE

Definite ed analizzate le specifiche sui dati possiamo passare alla costruzione dello schema

E-R della base dati. Data la complessità del problema è opportuno scegliere una conveniente

strategia di progetto. Scegliamo ad esempio un approccio di tipo inside-out, che può essere visto

come un caso particolare della strategia bottom-up. Secondo questo approccio si individuano

inizialmente i concetti più importanti e si procede poi a macchia d'olio aggiungendo allo schema

ad ogni passo i concetti più vicini a quelli già individuati. Questa scelta ci consente di costruire

lo schema E-R in modo molto naturale introducendo i vari concetti così come essi si presentano

nella versione “ristrutturata” delle specifiche.

Procedendo secondo l'approccio descritto, individuiamo inizialmente l'entità O con

RGANICO

tutti i suoi attributi. Partendo da questa entità rappresentiamo l'afferenza dell'organico alle

, con i relativi attributi, e le relazioni

strutture e dunque individuiamo l'entità S

TRUTTURA

A e R tra O e S . Rappresentiamo poi le

FFERENZA ESPONSABILE STRUTTURA RGANICO TRUTTURA

relazioni tra le strutture e le tipologie ed ubicazioni delle stesse individuando le entità T

IPO

e S e le rispettive relazioni, T e U , con S .

STRUTTURA EDE IPO BICAZIONE TRUTTURA

individuiamo la sua specializzazione in P

Ritornando all'entità O

RGANICO ERSONALE DI

e P , quest'ultimo a sua volta specializzato in T ed

RICERCA ERSONALE NON DOCENTE ECNICO

A . Rappresentiamo poi l'appartenenza ai gruppi di ricerca del personale di

MMINISTRATIVO

ricerca, individuando l'entità G , con i suoi attributi, e la relazione A tra

RUPPO PPARTENENZA

G e P . A questo punto individuiamo l'entità F ,

RUPPO ERSONALE DI RICERCA ILONE DI RICERCA

con tutti i suoi attributi, e le relazioni P e R tra essa e P

ARTECIPAZIONE ESPONSABILE ERSONALE

R . Aggiungiamo quindi l'entità T e la sua relazione S con F

ICERCA EMA VILUPPO ILONE DI

DI

R . Individuiamo quindi l'entità P e le relazioni S ed A tra

ICERCA UBBLICAZIONE TESURA UTORE

e le entità F e P rispettivamente.

P

UBBLICAZIONE ILONE DI RICERCA ERSONALE DI RICERCA

Ritornando all'entità P individuiamo la sua specializzazione in

ERSONALE DI RICERCA

D e D , quest'ultimo a sua volta specializzato in O , A ,

OTTORANDO OCENTE RDINARIO SSOCIATO

S e R . Rappresentiamo a questo punto i legami tra i docenti e i

TRAORDINARIO ICERCATORE

corsi introducendo l'entità C e la relazione D di questo con D .

ORSO OCENZA OCENTE

Individuiamo quindi le entità I e L e le rispettive relazioni, M e

NSEGNAMENTO EZIONE ATERIA

31

Base dati del D.I.S.

O , con C . Per concludere introduciamo l'entità T , con tutti i suoi attributi, e le

RARIO ORSO ESI

relazioni A , R e C tra essa e le entità T , D e

RGOMENTO ELATORE ORRELATORE EMA OCENTE

P rispettivamente. Lo schema E-R risultante da questa fase di

ERSONALE DI RICERCA

progettazione è mostrato in Figura 4-1. 32

Base dati del D.I.S.

Matricola Nome Cognome

Id Titolo Descrizione Indirizzo

Id CAP

(0,1)

Laureando (0,1) Anno accademico

T S

ESI EDE

(0,1) (0,1) (0,1) (0,N)

A

RGOMENTO U BICAZIONE

(1,1)

C

R ORRELATORE

ELATORE

Nome Descrizione

(0,N) Id Descrizione

T

EMA Nome

Id

(1,1) T

Codice IPO STRUTTURA

S G

VILUPPO (0,N)

RUPPO

(0,N)

Settore

Nome Note T

IPO

Codice A

PPARTENENZA

R

ESPONSABILE

(0,N) (1,1)

F R (1,1)

ILONE DI ICERCA Id

(0,N)

(0,N) Nome

S TRUTTURA Telefono

(1,1)

S (0,N) Fax

TESURA R

ESPONSABILE

P S

ARTECIPAZIONE TRUTTURA Data

(1,1) A FFERENZA residenza

nascita

nascita

P UBBLICAZIONE (1,N) Cognome Indirizzo

Interno Nome

Email Città

Data Città

C.F.

Rivista

Data Contenuto

Id Titolo (1,1)

(0,N) Telefono

Dati personali

Recapito

Giorno A

UTORE (0,N) (0,N)

Ora O Matricola

RGANICO

(0,N)

L

EZIONE

Aula Note

(1,1) (0,N)

(0,N) Livello

Settore

P P

ERSONALE DI ERSONALE NON

(0,N)

O RARIO RICERCA DOCENTE

(0,N)

Data inizio (1,1) (0,N) D D T A

OCENTE OTTORANDO ECNICO MMINISTRATIVO

C D

ORSO OCENZA

Data fine (1,1) Anno accademico O A R S

M RDINARIO SSOCIATO ICERCATORE TRAORDINARIO

ATERIA

(0,N) Codice

I Nome

NSEGNAMENTO Descrizione Figura 4-1

33

Base dati del D.I.S.

D IZIONARIO DEI DATI

Allo schema E-R appena costruito affianchiamo a scopo documentativo il dizionario dei dati

illustrato in Tabella 4-3.

Entità Descrizione Attributi Identificatore

Organico Persona che, a vario Matricola, Dati personali Matricola

titolo, opera all'interno (C.F., Cognome, Nome, Data

del dipartimento. nascita, Città nascita,

Indirizzo, Città residenza,

Telefono), Recapito (Interno,

Email ), Note

Struttura Struttura della facoltà a Id, Nome, Telefono, Fax Id

disposizione del

dipartimento.

Tipo struttura Tipologia funzionale di Id, Descrizione Id

struttura.

Sede Luogo in cui sono Id, Indirizzo, CAP Id

ubicate delle strutture

della facoltà.

Personale non Membro dell'organico Livello Matricola

docente che opera nel

dipartimento come

tecnico o come

amministrativo.

Tecnico Membro del personale Matricola

non docente con incarico

tecnico.

Amministrativo Membro del personale Matricola

non docente con incarico

amministrativo.

Personale di Membro dell'organico Settore Matricola

ricerca impegnato in attività di

ricerca

Gruppo Id, Nome Id

Filone di ricerca Insieme omogeneo di Codice, Nome, Settore, Note Codice

temi oggetto di studio.

Tema Argomento di studio Codice, Nome, Descrizione Codice, Filone di

nell'ambito di un filone ricerca

di ricerca.

Pubblicazione Relazione pubblicata su Id, Titolo, Data, Rivista, Id

una rivista nell'ambito di Contenuto

un filone di ricerca.

Tesi Tesi disponibile, in via Id, Titolo, Descrizione, Anno Id

di sviluppo o svolta accademico, Laureando

presso il dipartimento. (Matricola, Cognome, Nome)

34

Base dati del D.I.S.

Dottorando Membro del personale di Matricola

ricerca che sta

svolgendo il dottorato di

ricerca presso il

dipartimento.

Docente Membro del personale di Matricola

ricerca impegnato in

attività didattiche.

Ordinario Docente con qualifica Matricola

di professore ordinario.

Associato Docente con qualifica Matricola

di professore associato.

Straordinario Docente con qualifica Matricola

di straordinario.

Ricercatore Docente con qualifica Matricola

di ricercatore.

Corso Offerta didattica del Anno accademico, Data inizio, Insegnamento,

dipartimento. Data fine Anno accademico

Insegnamento Materie d'insegnamento Codice, Nome, Descrizione Codice

di competenza del

dipartimento.

Lezione Unità didattica di cui è Giorno, Ora, Aula Giorno, Ora, Aula

composto un corso.

Relazione Descrizione Entità coinvolte Attributi

Afferenza Associa un membro Organico (1,1) Data

dell’organico alla Struttura (0,N)

struttura in cui opera o

in cui ha il suo ufficio.

Responsabile Associa una struttura al Struttura (1,1)

struttura membro dell’organico Organico (0,N)

che ne è responsabile.

Ubicazione Associa una struttura Struttura (1,1)

alla sede in cui è Sede (0,N)

ubicata.

Tipo Associa una struttura Struttura (1,1)

alla tipologia cui Tipo struttura (0,N)

appartiene.

Appartenenza Associa il personale di Personale di ricerca (0,N)

ricerca ai gruppi di cui Gruppo (0,N)

fa parte.

Partecipazione Associa un membro del Filone di ricerca (0,N)

personale di ricerca ai Personale di ricerca (0,N)

filoni di ricerca a cui

partecipa. 35


ACQUISTATO

1 volte

PAGINE

43

PESO

385.32 KB

AUTORE

Menzo

PUBBLICATO

+1 anno fa


DETTAGLI
Esame: Basi di Dati
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Menzo di informazioni apprese con la frequenza delle lezioni di Basi di Dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Napoli Federico II - Unina o del prof Picariello Antonio.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Basi di dati

Basi di dati - prova di verifica apprendimento
Esercitazione
Basi di dati - Esercizi
Esercitazione
Basi di dati - esempio tesina database
Appunto
Basi di dati - esempio progetto database
Appunto