La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione ai database parte seconda

Presentazioni simili


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

1 Introduzione ai database parte seconda
Ernesto Damiani

2 Database Management Systems
Utente o programma applicativo

3 Commenti Dati integrati in un unico sistema: il database
Management System database Utente o programma applicativo 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

4 Management System database Utente o programma applicativo 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..

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 1960 - 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) ragionesociale telefono Rossi srl Bianchi sas Verdi snc Indici piva.ndx: ragionesociale.ndx: Bianchi sas 2 Rossi srl 1 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) ragionesociale telefono 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
database Utente o programma applicativo 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.

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
utente utente utente utente utente BD Schema logico Schema esterno Schema interno

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 Zoom sul DBMS dati database administrator programmatore applicativo
processore DDL database administrator programmatore applicativo utente finale dizionario utente casuale DML applicazione piano di esecuzione query supporto DBMS

28 DBMS in un contesto di rete
utenti utenti processo client processo client middleware rete database management system data base database server

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"

Presentazioni simili


Annunci Google