Informatica Dipartimento di Economia Ing. Cristiano Gregnanin Corso di laurea in Economia 20 ottobre 2016 1 / 22 Introduzione ai database Prima dei DBMS, le organizzazioni utilizzavano semplici file per memorizzare e manipolare i dati in modo elettronico. Le informazioni sulle entità, cioè gli oggetti di interesse dei database, spesso apparivano in diversi file utilizzati dal sistema informativo: non esisteva ancora la possibilità di memorizzare separatamente le informazioni ri guardanti le entità in database che limitassero la ridondanza dei dati. Per questo motivo i file spesso contenevano più volte gli stessi dati riguardanti, per esempio, un cliente o un fornitore. Data la ridondanza dei dati, nel momento in cui una informazione variava questa doveva essere aggior- nata in più punti con un processo lungo e oneroso e, quindi, naturalmente esposto a errori procedurali. 2 / 22 Vantaggi 3 / 22 Implicazioni 4 / 22 Realizzazione database I Progettazione concettuale. Si analizza la realtà da rappresentare, si definisce il contenuto della base dati, si descrivono le informazioni che verranno archiviate e le relazioni tra di esse (modello concettuale). I Progettazione logica. Si sviluppa una rappresentazione dei dati secondo il punto di osservazione dell’utente, che si traduce in un modello logico. I Progettazione fisica. Si implementa il modello logico, per ottenere una rappresentazione dei dati che possa essere gestita dall’elaboratore. 5 / 22 Progettazione concettuale: schema ER I Entità. Oggetti che hanno proprietà comuni nel contesto da rappresentare, identificabili in modo autonomo e univoco (esempio: Libro). I Attributi. Descrivono le proprietà delle entità (Libro può avere gli attributi codice libro, titolo, genere letterario). I Occorrenze. Sono gli oggetti della classe che l’entità rappresenta (per esempio, Libro: LB318, Amleto, tragedia). I Attributo identificatore. È l’attributo o l’insieme di attributi che identificano in modo univoco le occorrenze di una entità. Ogni entità deve avere un attributo identificatore (per esempio Libro: codice libro). I Dominio. E l’insieme dei valori che un attributo può assumere. I Relazioni. Legami tra le diverse entità che appartengono al contesto da rappresentare. 6 / 22 Progettazione concettuale: esempio - attributi e relazioni Libro e Autore sono 2 entità con i relativi attributi Scaffale e Libro sono 2 entità legate fra loro da una relazione il cui nome è Ospita 7 / 22 Progettazione concettuale: esempio - relazione uno a uno Un Socio ed una Tessera sono legati da una relazione Possiede avente cardinalità 1:1. Ovvero un Socio possiede una sola Tessera e una Tessera è posseduta da un solo Socio 8 / 22 Progettazione concettuale: esempio - relazione uno a molti Un Editore e un Libro sono legati da una relazione Publica avente cardinalità 1:n. Ovvero un Editore pubblica molti Libri e un Libro può essere pubblicato da un solo Editore 9 / 22 Progettazione concettuale: esempio - relazione molti a molti Una copia di un Libro può essere presa in prestito da un Socio e un Socio può prendere in prestito più copie di diversi Libri 10 / 22 Progettazione concettuale: esempio - relazione uno a molti osservazione importante: Nella relazione con cardinalità molti-a-molti rappresentata si evidenzia un’anomalia: la relazione “è preso in prestito” ha degli attributi (Data prestito, Scadenza prestito). Poiché le relazioni non possono avere attributi, occorre introdurre una nuova entità, detta entità associtiva Prestito. 11 / 22 Progettazione logica: modello relazionale è caratterizzato da: I tabelle chiamate relazioni (da non confondere con le “relazioni” del modello ER); I campi, le colonne di una tabella I dominio, l’insieme di valori. che un campo può assumere; I record o tuple, le righe di una tabella, formate da un insieme di campi. 12 / 22 Progettazione logica: modello relazionale - chiave primaria L’attributo identificatore si trasforma in un campo definito chiave primaria. La chiave primaria di una tabella è il campo (o il gruppo di campi) che descrive ogni record in modo univoco. 13 / 22 Progettazione logica: modello relazionale - trasformazione di entità in tabella L’entità Socio si trasforma in: La chiave primaria è Codice socio 14 / 22 Progettazione logica: modello relazionale - trasformazione di entità in tabella L’entità Socio si trasforma in: La chiave primaria è Codice socio 15 / 22 Progettazione logica: modello relazionale - chiave esterna Un campo chiave esterna è il campo chiave primaria di una tabella che compare in un’altra tabella con la quale sussiste una relazione. 16 / 22 Progettazione logica: modello relazionale - chiave esterna Per esempio, nella tabella Scaffale il campo Codice scaffale rappresenta la chiave primaria e compare anche nella tabella Libro come chiave esterna. Nel modello relazionale le chiavi esterne sono fondamentali per creare i legami logici tra le tabelle. 17 / 22 Progettazione logica: modello relazionale - chiave esterna La tabella Libro referenzia la tabella Scaffale attraverso il campo Codice scaffale che rappresenta quindi una chiave esterna 18 / 22 Progettazione logica: modello relazionale - relazione uno a uno Il passaggio dalla relazione uno a uno tra due entità alla relazione uno a uno tra due tabelle comporta l’utilizzo dello stesso campo chiave, al quale è possibile attribuire nomi differenti (per esempio, Codice socio e Codice tessera) nelle due tabelle risultanti. 19 / 22 Progettazione logica: modello relazionale - relazione uno a molti Nel modello concettuale la relazione è stata semplificata in due relazioni unoa molti e aggiungendo un’ entità associativa. La tabella Prestito avrà una chiave primaria composta, formata dall’unione dei campi chiave primaria (Codice libro e Codice socio) delle due tabelle che collega tra loro. 20 / 22 Progettazione fisica Dipende dallo specifico sistema di gestione dei dati prescelto e che si basa sui criteri di organizzazione fisica dei dati in quel sistema. I sistemisti e il DBA (DataBase Administrator, Amministratore del database) si preoccupano di implementare il modello logico, prodotto nella fase di progettazione logica, in una soluzione adatta a supportare l’operatività aziendale. 21 / 22 Operazioni fondamentali su record I Create I Read I Update I Delete Per eseguire operazioni CRUD si utilizza uno specifico linguaggio, il più comune è SQL Esempio: seleziona tutti i record dalla tabella libri: select * from libri 22 / 22