La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali.

Presentazioni simili


Presentazione sul tema: "Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali."— Transcript della presentazione:

1 Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali

2 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 2 Memorie di massa

3 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 3 Indice Memorie di massa Organizzazione degli archivi e basi di dati Basi di dati relazionali

4 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 4 Introduzione Memoria di tipo persistente –Un dato è persistente se è mantenuto integralmente quando il calcolatore viene spento oppure si verifica un errore Obiettivi: –Memorizzare in modo compatto grandi quantità di dati –Accesso efficientemente e selettivo ai dati Possiamo classificare i dispositivi di memoria di massa in: –Dispositivi ad accesso sequenziale (nastri) –Dispositivi ad accesso diretto (dischi) Tipicamente, sono basati su tecnologia magnetica La tecnologia ottica è sempre più diffusa (per i dischi)

5 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 5 Nastri (1) Accesso sequenziale Sul nastro magnetico sono incise delle piste orizzontali, parallele fra loro I dati vengono registrati serialmente su ogni traccia Il nastro scorre al di sopra della testina di lettura/scrittura Ai dati sono aggiunti alcuni bit di controllo per consentire il rilevamento di errori (es. bit di parità) Bit Bit di parità

6 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 6 Nastri (2) I dati sono organizzati sul nastro in zone contigue, dette record Sono previste zone prove di dati (gap) tra i record e allinizio Parametri principali: –Densità di memorizzazione: è misurata in bit per inch (bpi) –Capacità di memorizzazione = densità lunghezza (in pollici) –Velocità di movimento del nastro Alcuni nastri hanno le tracce poste diagonalmente e sono letti da testine rotanti (scansione elicoidale) I nastri sono attualmente impiegati solo per il backup

7 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 7 Dischi (1) Accesso diretto Disk-pack: un certo numero di piatti coperti da uno strato magnetico Ciascun piatto ha una serie di cerchi concentrici (tracce) su entrambi i lati Le tracce sono suddivise in spicchi di ugual grandezza (settori) Le testine di lettura/scrittura si spostano (tutte insieme) radialmente tra le varie tracce

8 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 8 Dischi (2) Linizio e la fine dei settori sono marcati con sequenze particolari di bit (formattazione) Blocco di ingresso/uscita: gruppo di dati che vengono letti o scritti con ununica operazione di ingresso/uscita Ciascun blocco è individuato dalla terna: (num. superficie, num. traccia, num. settore) Una zona di memoria (il buffer) contiene i dati prima che vengano scritti su disco o dopo essere stati letti da disco

9 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 9 Dischi (3) Accesso ai dati: –Spostamento della testina verso la traccia richiesta (tempo di seek) –Attesa del passaggio del settore richiesto (tempo di latenza) Mediamente, pari a metà del tempo di rotazione –Trasferimento dei dati da/verso il buffer (tempo di trasferimento) Quindi: t i/u = t seek + t lat + t trasf Cilindro: linsieme delle tracce, appartenenti a tutte le superfici, poste alla stessa distanza dal centro

10 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 10 Altre memoria di massa Floppy disk: magnetico Dischi ottici –CD-ROM –CD-R/RW –DVD Chiavi USB: memorie a stato solido Flash EPROM

11 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 11 Organizzazione degli archivi e basi di dati

12 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 12 Organizzazione degli archivi Le informazioni vengono organizzate in memoria in record logici Blocchi di ingresso/uscita e record logici: –In un medesimo blocco di ingresso/uscita può trovare posto un certo numero di record logici –Esistono record logici così grandi da occupare più blocchi di ingresso/uscita Laccesso ad un record logico comporta il trasferimento di uno o più blocchi di ingresso/uscita Coefficiente di riempimento di un file: numero di byte allocati a record logici nel file numero di byte dei blocchi fisici allocati al file

13 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 13 Basi di dati Base di dati (o database): insieme di dati raccolti in base a precise regole e organizzati in strutture piuttosto rigide DBMS: sistema software che organizza e gestisce basi di dati –Opera al di sopra del sistema operativo –Offre linguaggi specifici per lorganizzazione e la gestione dei dati –Offre meccanismi efficienti per laccesso ai dati

14 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 14 Basi di dati e archivi separati (1) Dati gestiti basandosi sui file Più applicazioni accedono ai file Problemi: –Inconsistenza e ridondanza dei dati –Riservatezza dei dati –Integrità dei dati –Concorrenza Progr. 1Progr. 2Progr. 3 File File modificati

15 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 15 Basi di dati e archivi separati (2) Integrità dei dati –I dati devono sempre essere consistenti con un insieme di vincoli logici –Ad es. in unanagrafe ogni dato riguarda una persona, che ha un padre e una sequenza di figli. Ovviamente se esiste la persona P avente padre P1 occorre che P compaia tra i figli di P1 –Se il programma che aggiorna i padri è diverso da quello che registra le nascite si possono avere momenti in cui i dati non sono consistenti

16 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 16 Basi di dati e archivi separati (3) Dati gestiti da un DBMS Vantaggi: –I dati hanno una sola rappresentazione (meno ridondanza ed inconsistenza) –Laccesso alla base di dati viene disciplinato dal DBMS (controllo, privatezza, ecc.) –Alcuni vincoli di integrità possono essere definiti e verificati in modo automatico –Gestione ottimale della memoria di massa –Gestione degli accessi concorrenti Progr. 1 DBMS Base di dati

17 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 17 Modelli per la gestione dei dati Modello dei dati: –Gerarchico: basato su strutture ad albero (metà anni 60) –Reticolare: basato su strutture a grafo (Codasyl , 1978) –Relazionale: basato sul concetto di insieme e sulla strutturazione dei dati tramite tabelle (inizio anni 80)) –Ad oggetti: estende alle basi di dati alcune caratteristiche dei linguaggi di programmazione orientati agli oggetti (inizio anni 90) Schema di una base di dati: descrizione dei dati di uno specifico contesto applicativo –Definita tramite un attività detta database design –Istanza (od occorrenza) di una base di dati: valore assunto dalla base di dati in un particolare istante di tempo

18 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 18 Categorie di linguaggi Data Definition Language (DDL): –Utilizzato per definire lo schema della base di dati –Lo schema viene salvato nel dizionario dei dati Data Manipulation Language (DML): –Per formulare interrogazioni (o query) sulla base di dati –Per modificare il contenuto della base di dati Nel seguito vedremo il linguaggio SQL (che supporta entrambi questi aspetti)

19 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 19 Livelli di astrazione Livelli di astrazione: –Fisico: descrive la base di dati come un insieme di record in memoria di massa –Logico: descrive la struttura di ciascun dato e i collegamenti tra dati diversi –Esterno: presenta i dati così come vengono visti da un particolare utente o da una classe di utenti Livelli di indipendenza: –Fisica: ridefinire il livello fisico senza modificare il livello logico –Logica: definire nuovi schemi esterni senza modifica la struttura logica Descrizione esterna 1 Descrizion e esterna 2 Descrizion e esterna n Descrizione logica Descrizione interna Utente 1Utente 2Utente 3Utente 4Utente n Archivi

20 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 20 Transazioni Transazioni: non lasciano mai la base di dati in uno stato inconsistente Proprietà acide delle transazioni: –Atomicità: vi sono solo due possibili terminazioni Successo: tutte le attività della transazione sono andate a buon fine, la base di dati è aggiornata (commit) Fallimento: qualche attività della transazione non va a buon fine, la transazione fallisce tutta, la base di dati non viene modificata (rollback) –Consistenza: i vincoli di integrità dei dati non sono mai violati –Isolamento: transazioni concorrenti sono isolate le une dalle altre –Durabilità: una volta completata con successo, leffetto della transazione sulla base di dati è permanente

21 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 21 Utenti di una base di dati Data Base Administrator (DBA): –Definizione degli schemi esterni, logico e fisico –Definizione dei vincoli di integrità e dei requisiti di riservatezza –Per questi compiti, il DBA utilizza il DDL Terminalista: –Interagisce con unapplicazione che a sua volta si interfaccerà con la base di dati Programmatore: –Scrive le applicazioni e le rende disponibili agli utenti –Utilizza il DML per interfacciare applicazione e base di dati Utente occasionale: –Formula query non previste dalle applicazioni, usando il DML

22 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 22 Basi di dati relazionali

23 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 23 Base di dati relazionale Relazione, una tabella caratterizzata da: –Un numero fisso di colonne (dette attributi); ciascuna colonna assume valori estratti da uno stesso dominio –Un numero variabile di righe (dette tuple) –Grado di una relazione: il numero di colonne –Cardinalità di una relazione: il numero di righe –Schema di una relazione: il nome della relazione seguito dai nomi dei suoi attributi; a ciascun attributo è associato un dominio –Istanza di una relazione: insieme delle tuple presenti nella base di dati in un determinato istante (quindi, varia nel tempo) Base di dati relazionale, un insieme di relazioni: –Schema di una base di dati: lelenco delle relazioni –Istanza di una base di dati: insieme delle istanze delle relazioni

24 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 24 Esempio: schema base di dati RelationCONTO-CORRENTE (NUMERO-CC:integer, NOME:char (20), INDIRIZZO:char (20), SALDO:decimal (14, 2)). RelationMOVIMENTO (NUMERO-CC:integer, DATA-MOV:date, NUMERO-MOV:integer, IMPORTO:decimal (14, 2), CAUSALE:char (1)).

25 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 25 Esempio: istanza base di dati NUMERO-CCNOMEINDIRIZZOSALDO 1Rossiv. Anemoni 53, Bianchiv. Bolla Brunelliv. Po 416, Grandiv. Romolo 33, NUMERO-CCDATA-MOVNUMERO-MOVIMPORTOCAUSALE V P ,700.00S ,850.40S A CONTO-CORRENTE MOVIMENTO

26 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 26 Alcune considerazioni Siamo vincolati ad introdurre informazioni che soddisfino lo schema –Ad es. nella relazione Conto_corrente possiamo introdurre solo il nome e lindirizzo del cliente, non il suo numero di telefono o il codice fiscale. Per inserire queste informazioni dovremmo prima modificare lo schema Partendo dalle relazioni esistenti è possibile ricavare informazioni non direttamente disponibili nel DB, ad es. lelenco dei clienti che abitano in una certa zona e hanno versato più di un milione nel 1995 Questo tipo di operazioni viene fatto attraverso il query language (o linguaggio di interrogazione del DB)

27 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 27 Accesso alle tuple Laccesso ad una certa tupla (o ad un insieme di tuple) di una relazione è sempre ed esclusivamente di tipo associativo (non posizionale): avviene in base al valore contenuto nella tupla Ovvero, posso chiedere al DBMS il saldo di Rossi –trova la tupla in cui lattributo Nome vale Rossi e leggi lattributo Saldo Non posso chiedere il valore dellattributo Nome della terza tupla –le tuple non sono ordinate e non cè modo di fare un accesso diretto

28 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 28 Chiavi nelle relazioni A causa dellaccesso associativo, è importante dotare le relazioni di una chiave Una chiave è un insieme minimo di attributi il cui valore identifica univocamente una tupla Serve per poter accedere ad una singola tupla –Ad es. nel caso del Conto_corrente si vuole poter aggiornare il Saldo di una specifica tupla, corrispondente ad un ben preciso conto corrente. La chiave sarà pertanto lattributo Num_CC –Nel caso del Movimento, la chiave sarà data dallinsieme degli attributi Num_CC, Data_mov, Num_mov C è una chiave per una relazione R se valgono le seguenti proprietà: –univocità: non possono esistere due tuple di R con lo stesso valore di C –minimalità: eliminando un attributo da C la proprietà precedente decade Per una stessa relazione possono esistere più chiavi candidate –La chiave primaria della relazione sarà una tra queste –Spesso sulla chiave primaria non si accettano valori nulli

29 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 29 Restrizione e chiave Restrizione: di una tupla t sugli attributi A di R, indicata con t[A], è data dalla lista dei valori assunti da t sugli attributi A di R Chiave di una relazione R: un sottoinsieme K degli attributi di R, tale che valgano: –Unicità: in una qualunque istanza di R, non possono esistere due tuple distinte di R la cui restrizione su K sia uguale –Minimalità: non è possibile sottrarre a K un attributo senza che la condizione di unicità cessi di valere Ogni relazione deve avere almeno una chiave –Se la relazione ha più chiavi, una di esse sarà la chiave primaria CONTO-CORRENTE (NUMERO-CC; NOME, INDIRIZZO, SALDO) MOVIMENTO (NUMERO-CC, DATA-MOV, NUMERO-MOV, IMPORTO, CAUSALE)

30 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 30 Le operazioni Le operazioni relazionali Ci sono operazioni che servono per combinare relazioni, limitandosi a leggere il contenuto del DB. Restituiscono sempre una relazione –Operazioni unarie: hanno come operando ununica relazione –Operazioni binarie: hanno come operando due relazioni –Operazioni insiemistiche: corrispondono alle solite operazioni di unione, differenza e intersezione Ci sono operazioni che servono a modificare il contenuto del DB –Aggiunta e riomozione e modifica di record Ci sono operazioni che servono a modificare lo schema del DB

31 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 31 Le operazioni unarie - selezione La selezione restituisce una relazione che è strutturalmente identica alloperando (ha lo stesso schema), ma contiene un sottoinsieme delle tuple delloperando Fa una selezione delle tuple della relazione operando, utilizzando un criterio di selezione: –Il criterio di selezione è una espressione logica (predicato) che viene valutata (vero/ falso) su ciascuna tupla: le tuple per cui lespressione vale vero sono selezionate e fanno parte del risultato, le altre, per cui lespressione vale falso sono scartate.

32 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 32 Le operazioni unarie – selezione Un Esempio Selezioniamo dalla relazione Conto_corrente le tuple in cui Saldo >

33 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 33 Le operazioni unarie - proiezione Mentre la selezione elimina delle righe della tabella operando, la proiezione elimina delle colonne Contrariamente al caso della selezione il criterio di eliminazione non dipende da unespressione da valutare, ma si dà direttamente linsieme degli attributi che vanno mantenuti

34 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 34 Le operazioni unarie – proiezione Un Esempio Proiettiamo la relazione Movimento sugli attributi Data_mov e Importo Nota: eliminando delle colonne può darsi che tra le tuple così ottenute esistano dei duplicati. Poiché le relazioni sono insiemi, i duplicati non sono ammessi, e quindi vengono eliminati –Ad es. il movimento del CC 1 del è un duplicato e viene eliminato

35 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 35 Le operazioni binarie – prodotto cartesiano Il prodotto cartesiano crea una relazione avente per tuple tutte le possibili combinazioni ottenibili giustapponendo una tupla del primo operando con una tupla del secondo Esempio

36 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 36 Le operazioni binarie – join naturale Il prodotto cartesiano raramente è utile, perché generalmente si vogliono ottenere solo le combinazioni di tuple tra le quali esiste una certa corrispondenza, o vale una certa proprietà join naturale: si combinano tra loro solo le tuple in cui valori delle relazioni in due attributi aventi dominio uguale (e nome uguale) verificano la proprietà di uguaglianza Nella tabella risultante, si considera la colonna uguale una volta sola

37 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 37 Le operazioni binarie – join naturale Un Esempio

38 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 38 Il linguaggio SQL E presente in tutti i DBMS relazionali Standard ANSI e ISO Mette a disposizione sia un DDL, sia un DML DDL: permette di creare lo schema della base di darti –CREATE TABLE : crea una relazione a livello logico –CREATE INDEX : crea indici per una certa relazione; gli indici permettono di accedere ai dati con maggiore efficienza –DROP TABLE : cancella una relazione –DROP INDEX : cancella un indice DML: permette di scrivere le query –Basato sullalgebra relazionale –Operatori: selezione, proiezione, join, unione e differenza

39 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 39 Il linguaggio SQL: select Listruzione che permette di formulare le query Sintassi: SELECT nomi di attributi FROM nomi di relazioni WHERE condizioni di ricerca sui dati Le tre clausole individuano rispettivamente: –gli attributi da includere nel risultato; –le relazioni da cui estrarre i dati; –la condizione di ricerca. Questa condizione può essere assai complessa e coinvolgere nel suo interno altri blocchi SQL

40 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 40 Il linguaggio SQL: esempi 1 La selezione riportata nellesempio precedente si scrive: SELECT * FROM Conto_corrente WHERE Saldo > La proiezione dellesempio precedente si scrive: SELECT Data_mov, Importo FROM Movimento Nota: nei DBMS commerciali i duplicati sono ammessi. Per eliminarli occorre indicarlo esplicitamente, attraverso la parola chiave DISTINCT: SELECT DISTINCT Data_mov, Importo FROM Movimento

41 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 41 Il linguaggio SQL: esempi 2 Una singola espressione SQL può indicare selezione e proiezione insieme: SELECT Num_CC, Importo FROM Movimento WHERE Data_mov = Loperazione descritta seleziona le tuple in cui lattributo Data_mov ha il valore rescritto, poi sopprime gli attributi diversi da Num_CC e Importo Join: Voglio sapere i nomi dei correntisti interessati da ciascun movimento: devo combinare le tuple di Conto_corrente con le tuple di Movimento aventi uguale Num_CC In SQL scrivo: SELECT * FROM Conto_corrente, Movimento WHERE Conto_corrente.Num_CC =Movimento.Num_CC

42 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 42 Il linguaggio SQL: esempi 3 Il join è combinabile con la selezione e la proiezione in ununica operazione SQL: semplicemente il predicato non indicherà solo la corrispondenza tra tuple, ma anche un criterio cui le tuple del risultato dovranno essere conformi Voglio conoscere importo e causale dei movimenti di Rossi del : SELECT Importo, Causale FROM Conto_corrente, Movimento WHERE Conto_corrente.Num_CC = Movimento.Num_CC AND Nome = Rossi AND Data_mov =

43 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 43 Il linguaggio SQL: le operazioni insiemistiche Corrispondono alle normali operazioni sugli insiemi Occorre notare che per avere come risultato dei veri insiemi occorre sempre indicarlo esplicitamente usando la keyword DISTINCT –Altrimenti ad es. lunione darà semplicemente un risultato contenente le tuple del primo operando e quelle del secondo, duplicati compresi In SQL queste operazioni si chiamano rispettivamente –UNION –MINUS –INTERSECT

44 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 44 Il linguaggio SQL: esempio 4 Estraiamo i CC che hanno un saldo maggiore di e per i quali non è stato fatto alcun movimento per un importo maggiore di SELECT Num_CC FROM Conto_corrente WHERE Saldo > MINUS SELECT Num_CC FROM Movimento WHERE Importo >

45 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 45 Alcune considerazioni LSQL supporta uno stile di interrogazione dichiarativo, nel senso che le query specificano le caratteristiche del risultato ma non indicano come estrarlo –Ad es. nelle selezioni non diciamo se la tabella deve essere scandita dallalto o dal basso, o quale parte della condizione deve essere valutata per prima Le query vengono interpretate dal DBMS, che provvede anche a ottimizzarle –Ad es. dovendo fare un join e una selezione conviene fare la selezione prima, per avere meno tuple su cui valutare la condizione del join

46 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 46 Le applicazioni SQL non è adatto agli utenti finali delle basi di dati Si realizzano applicazioni che permettono uninterazione semplice e schematica Linformazione scambiata con lutente durante lesecuzione di unapplicazione è mostrata in una maschera (o form) Esistono strumenti software per la gestione delle maschere che permettono al programmatore di: –Definire le maschere –Associare ogni maschera loperazione da eseguire sulla base di dati Lutente finale interagisce con le maschere e non vede né lSQL, né lo schema della base di dati

47 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 47 Maschere: definizione

48 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 48 Maschere: uso

49 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 49 Rapporti (o report) Ulteriore modo per estrarre informazioni dalla base di dati Caratteristiche tipiche: –Destinati alla stampa o ad essere visualizzati in pagine Web –Contengono grandi quantità di dati –Generati periodicamente, senza interazioni con lutente Esistono strumenti software per la definizione dei rapporti (generatori di report)

50 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 50 Altri linguaggi Linguaggi di quarta generazione Consentono di realizzare applicazioni specificandole a un alto livello Il progettista usa tali linguaggi interagendo con loro tramite interfacce a menu e maschere

51 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 51 Schemi concettuali e logici: Esempio di riferimento

52 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 52 Schemi concettuali e logici: Esempio di riferimento

53 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 53 Esercizi Visualizzare il nome e il peso specifico degli inquinanti prodotti nella città di Torino Visualizzare tutte le informazioni relative agli inquinanti prodotti nella città di Torino Visualizzare tutte le città in cui viene prodotto un inquinante Visualizzare il nome delle aziende con sede a Milano e grado di pericolosità superiore o pari a 20 Visualizzare le coppie di aziende ed inquinanti tali che entrambi si trovino nella medesima città Visualizzare il nome degli inquinanti scaricati durante la lavorazione del prodotto con codice P3

54 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 54 Esercizi Visualizzare le coppie di nomi di città tali che un azienda che ha sede nella prima città scarichi nella seconda un inquinante relativo a un qualsiasi prodotto Visualizzare le coppie di aziende tali che abbiano sede nella stessa città SELECT A.NomeA, B.NomeA, FROM AZIENDA AS A, AZIENDA AS B WHERE A.Città = B.Città AND A.CodA < B.CodA; Visualizzare i nomi delle aziende che producono inquinanti a Milano, a Venezia, o in entrambe le città

55 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 55 Esercizi Visualizzare i nomi delle aziende che scaricano inquinanti a Milano –Ripetere lesercizio usando select annidate Visualizzare i nomi delle aziende che non scaricano mercurio SELECT NomeA FROM AZIENDA WHERE CodA NOT IN (SELECT CodA FROM SCARICO,INQUINANTE WHERE SCARICO.CodI = INQUINANTE.CodI AND NomeI = Mercurio);

56 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 56 Progettare le Basi di Dati Progettare un DBMS vuol dire essenzialmente definirne lo schema –capire quali tabelle servono –definire lo schema di ciascuna tabella –creare le chiavi La progettazione delle query e delle modalità di interazione fa invece parte della progettazione delle applicazioni

57 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 57 Progettare le Basi di Dati Innanzitutto si cerca di produrre un modello concettuale dei dati da gestire –Il modello è concettuale in quanto prescinde dal modello logico dei dati adottato dal particolare DBMS scelto Un formalismo molto usato per la descrizione concettuale dei dati è costituito dai diagrammi Entity/ Relationship (Chen) –Entità: ciò che è di interesse per il sistema –Relazioni: legami di diversa natura tra entità –Attributi: caratteristiche (proprietà) delle entità e delle relazioni

58 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 58 Diagramma E-R: un esempio Un sistema per la gestione dellallocazione delle aule per i corsi Universitari Entità:

59 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 59 Diagramma E-R: un esempio Relazioni:

60 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 60 Diagramma E-R: un esempio Molteplicità delle relazioni: indicata graficamente dal ventagl io ad una estremità della relazione; ad es: Aula--<-Corso, indica che una entità Aula può ospitare più Corsi ma un Corso può essere ospitato in una sola aula (relazione uno-molti) Corso->---<-Studente indica che una entità Studente può seguire più Corsi, e viceversa un Corso può essere seguito da più studenti (relazione molti-molti):

61 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 61 Diagramma E-R: un esempio Attributi:

62 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 62 Progettare del DB a partire dal modello E-R Un diagramma E-R può essere trasformato in uno schema logico di DB con qualunque data model Tuttavia, i diagrammi E-R sono particolarmente adatti al progetto di DB relazionali, perché la trasformazione di un diagramma E-R in uno schema relazionale è molto semplice: –unentità diventa una relazione (tabella) –un attributo di unentità diventa un attributo di una relazione –le relazioni tra entità possono diventare riferimenti diretti da una tupla di una relazione ad una tupla di unaltra relazione oppure possono dar luogo ad una relazione aggiuntiva, a seconda dei casi

63 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 63 Traduzione di relazioni 1-1 E1(IdE1: integer, A1: char(1), IdE2: integer) E2(IdE2: integer, A2: char(1))

64 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 64 Traduzione di relazioni 1-n E1(IdE1: integer, A1: char(1), IdE2: integer) E2(IdE2: integer, A2: char(1))

65 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 65 Traduzione di relazioni 1-n Si possono evitare le ridondanze rappresentando la relazione inversa

66 Copyright © The McGraw-Hill Companies, srl Archivi e Basi di Dati Informatica A – V. Perrone 66 Traduzione di relazioni n-n In questo caso si deve introdurre una tabella apposita per la relazione –R(IdE1: integer, IdE2: integer)


Scaricare ppt "Archivi e basi di dati Vito Perrone Corso di Informatica A per Gestionali."

Presentazioni simili


Annunci Google