Introduzione ai database parte seconda

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Una Introduzione alle Basi di Dati
Capitolo 1: Introduzione
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Basi di Dati prof. A. Longheu
4 – Progettazione – Introduzione e Modello E-R
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Gestione Dati & Archivi
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Base di dati Insieme organizzato di dati utilizzati per lo svolgimento delle attività di un ente, azienda, ufficio, persona Es.: elenchi telefonici, elenco.
Archivio Necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
L’uso dei database in azienda
Tipo Documento: unità didattica 1 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
Introduzione ai Sistemi Informativi e alle Basi di dati
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Basi di dati attive Paolo Atzeni.
Basi di dati Università Degli Studi Parthenope di Napoli
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Programma del Corso Dati e DBMS DBMS relazionali SQL
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Progettazione di una base di dati
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
DBMS ( Database Management System)
Gestione dell’Informazione: Aspetti Introduttivi
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Basi di Dati Barbara Catania Aspetti Introduttivi.
Implementare un modello di dati
INFORMATICA Corso Base Modulo G: I DataBase  Access.
DAGLI ARCHIVI AI DATABASE
Introduzione a Oracle 9i
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
I DATABASE.
FUNZIONI Dichiarazione: Definizione:
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Pagine ASP parte 3 I data base Stefano Schacherl.
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
MySQL Database Management System
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Introduzione alle basi di dati
Basi di dati Prof. Giovanni Giuffrida Stanza: 362 tel:
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 1: Introduzione 24/09/2002.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 1) Introduzione 19/09/2004.
Capitolo 1: Introduzione. Introduzione2 Base di dati  Insieme organizzato di dati utilizzati per il supporto allo svolgimento di attività (di un ente,
Vincoli interrelazionali
© 2015 Giorgio Porcu - Aggiornamennto 28/03/2015 UdA 1A Database Progettazione Fisica G IORGIO P ORCU
Informatica Introduzione alle basi di dati Lezione 1 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Tipo Documento: unità didattica 2 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
Eprogram informatica V anno.
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Le basi di dati.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
Basi di Dati attive. Sistemi Informativi DEE - Politecnico di Bari E. TinelliBasi di dati attive2 Definizione Una base di dati si dice attiva quando dispone.
Elementi di statistica con R e i database LEZIONE 2 Rocco De Marco rocco.demarco(a)an.ismar.cnr.it Ancona, 12 Aprile 2012.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Introduzione alle basi di dati e ai sistemi di gestione di basi di dati.
Transcript della presentazione:

Introduzione ai database parte seconda Ernesto Damiani

Database Management Systems Utente o programma applicativo

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

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..

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

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).

Un po’ di storia 1960 - Gestione dei file su disco Sviluppo del supporto hardware 1970 - 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 1979 - 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

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)

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

Esempio Schema: Clienti (p.iva, ragione sociale, telefono) Tabella (clienti.dbf) p.iva (primaria) ragionesociale telefono 011034565656 Rossi srl 02345678536 012393939393 Bianchi sas 038235363 012246446464 Verdi snc 037393838 Indici piva.ndx: ragionesociale.ndx: 011034565656 1 Bianchi sas 2 012246446464 3 Rossi srl 1 012393939393 2 Verdi snc 3

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”) 011034565656 Rossi srl 02345678536 Ready>

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..

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)

Nel nostro esempio: p.iva (primaria) ragionesociale telefono 011034565656 Rossi srl 02345678536 012393939393 Bianchi sas 038235363 012246446464 Verdi snc 037393838 p.iva (foreign) n.fattura(primaria) imponibile 011034565656 1 5.000.000 011034565656 2 25.000.000 012393939393 3 250.000 012246446464 4 7.000.000 Commenti: le interrogazioni attributo-valore non bastano piu’. Come esprimere “dammi gli imponibili delle fatture della ditta Rossi” ? Serve un linguaggio..

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)

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

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

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;

Interazione non testuale (in Access)

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.

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.

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

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.

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

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

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.

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

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

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

Introduzione al Modello Entity - Relationship

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

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

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

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

Esempio

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