La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione ai database parte seconda Ernesto Damiani.

Presentazioni simili


Presentazione sul tema: "Introduzione ai database parte seconda Ernesto Damiani."— Transcript della presentazione:

1 Introduzione ai database parte seconda Ernesto Damiani

2 Database Management Systems Management System database Utente o programma applicativo

3 Commenti –Dati integrati in un unico sistema: il database –Indipendenza del formato dei dati dall’ambiente applicativo - è il Management System ad accedere ai dati e non i programmi applicativi –Meno duplicazioni - un’unica memorizzazione fisica dei dati –Gli utenti e i programmi accedono ai dati facilmente, attraverso una tecnica standard Management System database Utente o programma applicativo

4 Cosa sono i database? File strutturati che contengono collezioni di record Informazioni ausiliarie e metadati –Schema - descrizione della struttura del database. Rende possibile l’indipendenza dei dati dai programmi –Indici, report, moduli.. Management System database Utente o programma applicativo

5 Cosa rappresentano i database? Il database costituisce un modello dell’informazione d’interesse dell’utente –il livello di dettaglio o granularita’ dipende dall’applicazione –il modello è dinamico –transazioni: rappresentazioni di eventi atomici che riguardano il database

6 Transazioni Programmi che realizzano attività frequenti e predefinite, con poche eccezioni, previste a priori. Esempi: –versamento presso uno presso sportello bancario –emissione di certificato anagrafico –dichiarazione presso l’ufficio di stato civile –prenotazione aerea Le transazioni sono di solito realizzate con programmi in linguaggio ospite (tradizionale o ad hoc). N. B.: il termine transazione ha un’altra accezione, più specifica: sequenza indivisibile di operazioni (o vengono eseguite tutte o nessuna).

7 Un po’ di storia – Gestione dei file su disco Sviluppo del supporto hardware – Il Modello Relazionale - E.F. Codd I dati organizzati in tabelle viste come relazioni tra le righe Granularita’ controllata: si specificano le righe da processare Svantaggi - carico computazionale. Hardware sufficientemente potente solo a partire dagli anni ‘80 – I Micro DBMS dBase II Access e Paradox –Fine anni ‘80 - Architetture Database Client-Server –Anni ‘90 - DBMS a oggetti –Oggi - Database Multimediali e Distribuiti

8 Componenti di un DB Quattro componenti principali: –Dati utente - rappresentati da piu’ tabelle o relazioni relazione - una tabella di dati composta da righe e colonne. Le colonne sono chiavi (o attributi) e le righe sono record. –Metadati - descrizioni della struttura del DB. Schema: definisce i nomi delle tabelle e delle chiavi Tabelle di sistema - contengono i nomi delle tabelle utente, # e nomi delle chiavi, e per ciascuna tabella la chiave primaria (per cui non sono ammesse ripetizioni)

9 Componenti di un DB (2) –Indici - usati per l’accesso rapido ai dati. –Permettono di esaminare un numero ridotto di righe e non tutta la tabella –Gli indici hanno un costo: devono essere aggiornati ad ogni modifica dei dati –Metadati applicativi - struttura e formato dei moduli, interrogazioni e report associati al database

10 Esempio Schema: Clienti (p.iva, ragione sociale, telefono) Tabella (clienti.dbf) p.iva (primaria)ragionesocialetelefono Rossi srl Bianchi sas Verdi snc Indici piva.ndx: ragionesociale.ndx: Bianchi sas Rossi srl Verdi snc 3

11 Esercizio: Definire un formato binario per i file.dbf e.ndx Scrivere un programma mydb.exe (nel linguaggio che preferite) che: –carica in memoria i file in apposite matrici –risponde a interrogazioni della forma (chiave, valore) Esempio di interazione con mydb.exe: loading database and indices… Ready>(ragionesociale,”Rossi srl”) Rossi srl Ready>

12 Domande e risposte D. Possiamo rendere mydb.exe parametrico rispetto alla struttura della tabella? R. Si’. Possiamo creare una tabella delle tabelle che contiene i nomi delle colonne.. Possiamo aggiungere un ambiente di design? R. Si’. Bastera’ scrivere un altro programma (design.exe) che permetta di specificare nome e numero delle colonne e di inserire I dati. Il programma design.exe deve anche creare gli indici. D. Cosi’ completato, mydb.exe e’ un DBMS? R. No. Permette di creare e gestire una sola tabella per database..

13 Relazioni tra tabelle Le relazioni tra tabelle (relationships) non c’entrano niente con il nome di relazioni (relations) dato alle tabelle Ad esempio, una relazione tra due tabelle A e B si stabilisce riportando in B la chiave primaria di A (foreign key)

14 Nel nostro esempio: p.iva (primaria)ragionesocialetelefono Rossi srl Bianchi sas Verdi snc p.iva (foreign)n.fattura(primaria)imponibile Commenti: le interrogazioni attributo-valore non bastano piu’. Come esprimere “dammi gli imponibili delle fatture della ditta Rossi” ? Serve un linguaggio..

15 Linguaggi per basi di dati L’accesso ai dati può avvenire 1.con linguaggi testuali interattivi 2.con comandi (come quelli del linguaggio interattivo) immersi in un linguaggio ospite (Pascal, C, Cobol, etc.) 3.con comandi (come quelli del linguaggio interattivo) immersi in un linguaggio ad hoc, con anche altre funzionalità (p.es. per grafici o stampe strutturate), anche con l’ausilio di strumenti di sviluppo (p. es. per la gestione di maschere) 4.con interfacce amichevoli (senza linguaggio testuale)

16 SQL, un linguaggio interattivo SELECT Corso, Aula, Piano FROM Aule, Corsi WHERE Nome = Aula AND Piano="Terra " Lo studieremo in dettaglio...

17 SQL immerso in Pascal (o altro linguaggio ad alto livello) write('nome della citta''?'); readln(citta); EXEC SQL DECLARE P CURSOR FOR SELECT NOME, REDDITO FROM PERSONE WHERE CITTA = :citta ; EXEC SQL OPEN P ; EXEC SQL FETCH P INTO :nome, :reddito ; while SQLCODE = 0 do begin write('nome della persona:', nome, 'aumento?'); readln(aumento); EXEC SQL UPDATE PERSONE SET REDDITO = REDDITO + :aumento WHERE CURRENT OF P EXEC SQL FETCH P INTO :nome, :reddito end; EXEC SQL CLOSE CURSOR P

18 SQL immerso in linguaggio ad hoc (Oracle PL/SQL) declare Stip number; begin select Stipendio into Stip from Impiegato where Matricola = '575488' for update of Stipendio; if Stip > 30 then update Impiegato set Stipendio = Stipendio * 1.1 where Matricola = '575488'; else update Impiegato set Stipendio = Stipendio * 1.15 where Matricola = '575488'; end if; commit; exception when no_data_found then insert into Errori values('Non esiste la matricola specificata',sysdate); end;

19 Interazione non testuale (in Access)

20 Una distinzione terminologica data definition language (DDL) : per la definizione di schemi (logici, esterni, fisici) e altre operazioni generali; data manipulation language (DML) : per l’interrogazione e l’aggiornamento di (istanze di) basi di dati.

21 Componenti del Management System Tre sottosistemi Progettazione - strumenti per creare tabelle, interrogazioni, moduli, report. Basato su un linguaggio. Run-time - esegue le richieste di creazione ed estrazione dati espresse attraverso il linguaggio Engine - riceve le richieste dal Run Time in termini di tabelle, righe e colonne e le traduce in comandi al sistema operativo o all’hardware del computer. La MS engine gestisce anche l’esecuzione delle transazioni. Management System database Utente o programma applicativo

22 Lo schema Database Schema - definisce la struttura delle tabelle, le relazioni tra di loro, i domini degli attributi. Rappresenta tutte le informazioni di interesse per un dominio applicativo –dominio - insieme dei valori che un attributo puo’ assumere

23 Cosa dobbiamo imparare a fare Creare lo schema Creare le tabelle Definire le relazioni tra tabelle attraverso le foreign key Popolare le tabelle di dati Estrarre le informazioni di interesse dalle tabelle attraverso le interrogazioni.

24 Altre attivita’ utili –Definire moduli (form) per aggiornare e consultare le tabelle –Definire report - visualizzazioni formattate del contenuto delle tabelle e/o del risultato delle interrogazioni –Scrivere programmi che interrogano il database

25 Architettura standard (ANSI/SPARC) a tre livelli per DBMS BD Schema logico Schema esterno Schema interno Schema esterno Schema esterno utente

26 Architettura ANSI/SPARC: tipi di schemi schema logico : descrizione dell’intera base di dati nel modello logico “principale” del DBMS schema esterno : descrizione di parte della base di dati in un modello logico (“viste” parziali, derivate, anche in modelli diversi) schema fisico : rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione.

27 dati processoreDDL databaseadministratorprogrammatoreapplicativo utente finale dizionariodati utente casuale processoreDML applicazione piano di esecuzionequery supportoesecuzione DBMS Zoom sul DBMS

28 database processoclient utenti databasemanagementsystem rete middleware databaseserver processoclient utenti DBMS in un contesto di rete

29 Progettazione di schemi “Il database rappresenta il dominio informativo che interessa a un utente/applicazione” Due modi di definire lo schema: –Top Down development - dal generale allo specifico analizzare i bisogni informativi di un’organizzazione (es. Un sistema contabile completo) stabilire come raggiungerli definire lo schema del database sviluppare le applicazioni che devono interrogarlo o aggiornarlo (es. fatturazione, gestione clienti, fornitori, magazzino, etc.) –Bottom Up development - soluzione a uno specifico problema creare uno schema per una specifica attivita’ (es. fatturazione) sviluppare l’applicazione

30 Introduzione al Modello Entity - Relationship

31 Entity - Relationship Model Il modello E-R (Peter Chen ) e’ il piu’ usato per interpretare, specificare e documentare i requisiti di un DB Il modello E-R permette di generare automaticamente lo schema

32 Entity - Relationship Model Istanza di un’entita’ - oggetto di interesse per l’utente (e.g., una fattura) –Classi di entita’ - insiemi di istanze di entita’ dello stesso tipo –Intuitivamente, una classe di entita’ corrisponde a una tabella, un’istanza di entita’ a una riga –Per brevita’, nella progettazione di database spesso chiamiamo entita’ quello che rigorosamente andrebbe chiamato classe di entita’ Attributi- (Proprieta’) - descrivono le caratteristiche di un’entita’ –tutte le entita’ di una classe hanno le stesse proprieta’ –I valori di un attributo possono essere semplici o composti

33 Entity - Relationship Model Identificatori - attributi che identificano univocamente un’entita’ –intuitivamente, corrispondono alla chiave primaria Relazioni: collegamenti tra entita’ –relazioni binarie: 3 tipi 1:1 1:N N:M Cardinalita’ massima - massimo numero di istanze di un’entita’ che possono trovarsi su un lato della relazione

34 Entity - Relationship Model Sintassi: –Classi di entita’:rettangoli –relazioni: rombi –massima cardinalita’ all’interno del rombo –nome entita’ all’interno del rettangolo –nome della relazione accanto al rombo –attributi: ellissi connesse all’entita’ o alla relazione a cui si riferiscono non esagerare con gli attributi per preservare la leggibilita’ –cardinalita’ minima - ovale sulla linea che rappresenta una relazione

35 Esempio

36 Entity - Relationship Model. Concetti avanzati (la prossima volta..) –Relazioni ricorsive - relazioni tra istanze della stessa classe –Entita’ deboli - esistenza dipende da quella di un’altra entita’ sintassi: rettangolo con angoli smussati –Sottotipi - insiemi complessi di attributi


Scaricare ppt "Introduzione ai database parte seconda Ernesto Damiani."

Presentazioni simili


Annunci Google