Basi di Dati 1 giugno 2017 This book is the result of a collaborative effort of a community of people like you, who believe that knowledge only grows if shared. We are waiting for you! Get in touch with the rest of the team by visiting http://join.wikitolearn.org You are free to copy, share, remix and reproduce this book, provided that you properly give credit to original authors and you give readers the same freedom you enjoy. Read the full terms at https://creativecommons.org/licenses/by-sa/3.0/ Capitolo 1. Introduzione Capitolo 1 Introduzione 1.1 Le rappresentazioni del mondo Reale Spesso abbiamo bisogno di rappresentare la realtà tramite delle strutture astratte. In questo corso vedremo l’utilità delle tabelle per raccogliere e strutturare informazioni di uso quotidiano. Un insieme di strutture organizzative può ricevere in input dati o richieste di servizi, che verranno elaborate per mezzo di processi. I processi sfruttano sia risorse umane che informazioni. il tutto viene gestito tramite hardware software e telecomunicazioni, che in ultima analisi sfruttano le strutture dei basi di dati INSERIRE DISEGNO 3 1.1.1 Definizioni principali Dato / Dati Immaginiamo di misurare la temperatura corporea tramite un termometro. Se il termometro segna sul display 38.4 ◦ C e questo viene letto da un bambino, egli non capirà cosa vuol dire davvero. Mentre una persona che abbia il concetto di Temperatura e che conosca l’unità di misura dei gradi Celsius allora associerà a quel valore un’informazione. Quando un valore non rappresenta un concetto, non si conosce il significato di tale valore , viene chiamato “dato”. Quando un valore porta con sè qualcosa in più, come ad esempio un’unità di misura, e viene capito da qualcuno, allora diventa un’informazione. Quando abbiamo una temperatura di riferimento corporea in stato di salute e capiamo che 38.4 è più alto di tale temperatura, allora diremo che questa persona ha la febbre. Quindi il dato si è trasformato in conoscenza. Dunque un dato è una rappresentazione digitale, un’informazione è un dato a cui attribuiamo un significato, una conoscenza è un’informazione che è confrontabile con dei parametri pregressi che abbiamo già in mente. 2/9 Capitolo 1. Introduzione Rappresentazione Il modo in cui rappresentiamo una certa situazione, in cui raggruppiamo i dati. Di solito questa è una tabella. Si divide a sua volta in due parti: 1. Schema: la parte della tabella in cui è espresso il significato dei dati, comprende di solito un titolo per la tabella e una riga che spieghi i significati delle varie classi di dati inserite nella tabella 2. Istanza o Dati: la parte della tabella in cui inseriamo tutti i dati. INSERIRE DISEGNO 4 Base di Dati Una base di dati è una collezione di dati 1. Utilizzata per rappresentare informazioni di interesse di diversi settori dell’organizzazione 2. Condivisa tra diversi processi e applicazioni software 3. In cui ogni informazione di interesse è rappresentata una volta sola 1.2 Introduzione e DBMS Possiamo definire una base di dati come una collezione di dati utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di un organizzazione. 1.2.1 DBMS (DataBase Management System) È il software che si occupa di gestire in maniera intelligente il nostro DB. 1.2.2 Vantaggi di un DB rispetto ad un File System Con un DataBase non dobbiamo accuparci noi di interagire direttamente con la memoria trovandoci nella seguente situazione: 3/9 Capitolo 1. Introduzione Avere tutti i dati salvati in un unico Database comporta: • Non presenza di inutili ridondanze • Efficente controllo delle concorrenze • Efficente controllo dei permessi (ciascun utente può interagire con certi dati in base ai permessi che possiede) 1.2.3 Architettura Standard di un DBMS (ANSI/SPARC) Possiamo suddividere la struttura di un DataBase in tre schemi: • SCHEMA ESTERNO=(vista utente) rappresenta quella parte di database rilevante per un certo utente in base alle autorizzazioni che possiede. • SCHEMA LOGICO= Struttura dell’intera base di dati, cioè l’insieme di tutte le tabelle di cui e composto e le varie connessioni tra di esse (questo è il livello al quale siamo interessati noi). • SCHEMA FISICO= La struttura di com’è salvato il database fisicamente all’interno della memoria del PC. 1.2.4 Proprietà di Indipendenza Un buon DBMS deve rispettare due proprietà di indipendenza: INDIPENDENZA FISICA: • modifiche allo schema logico si devono riflettere sullo schema fisico in maniera trasparente per l’utente. • modifiche allo schema fisico (ad esempio ottimizzazioni) devono lasciare inalterato lo schema logico 4/9 Capitolo 1. Introduzione INDIPENDENZA LOGICA: • modifiche alle viste non devono richiedere modifiche a livello logico • modifiche a livello logico devono lasciare inalterato lo schema esterno 1.2.5 DBMS Pro-Contro PRO: • dati come risorsa comune, base di dati come modello della realtà • gestione centralizzata con possibilità di standardizzazione ed “economie di scala” • servizi integrati disponibili • riduzione ridondanze e campi vuoti • indipendenza dei dati (facilità di sviluppo e manutenzione applicazioni) CONTRO: • costo dei prodotti e delle transizioni verso di essi • non si possono suddividere (spesso) le funzionalità (riduzione di efficenza 1.3 Modelli Concettuali e Modelli Logici Per creare un modello di dati che rappresenti il mondo reale bisogna innanzitutto creare uno schema concettuale per realizzare poi un modello logico con il quale andremo a costruire la nostra base di dati. 1.3.1 Modello Concettuale Serve a rappresentare, come dice il nome stesso, dei concetti. Cioè le varie entità di cui vogliamo salvare i dati e che relazioni sussistono tra di esse. 1.3.2 Modello Logico È il passo successivo al modello concettuale. Realizziamo un modello statico che sia possibile rappresentare dopo attraverso un software (il DBMS ad esempio). Esistono tre principali modelli logici: • Gerarchico→prevede un’organizzazione dei dati ad albero supponendo che esiste una relazione padre figlio tra le diverse entità • Reticolare→la logica di questo modello è basata su record e puntatori 5/9 Capitolo 1. Introduzione • Relazionale→è il modello più recente e principalmente usato nel mondo del lavoro al giorno d’oggi spiegato meglio nel prossimo capitolo I primi due modelli, ormai obsoleti, furono inventati nei primi anni ’60. 1.4 Il modello relazionale Definizione (modello relazionale): Proposto da Codd nel 1970 per favorire l’indipendenza dei dati. Si basa sul concetto matematico di relazione e quest’ultime hanno una rappresentazione naturale per mezzo delle tabelle. 1.5 Algebra Relazionale Definizione (algebra relazionale): Tipo di linguaggio formale per la rappresentazione delle query. 1.6 Calcolo Relazionale Definizione (calcolo relazionale): Tipo di linguaggio formale per la rappresentazione delle query. 1.7 Datalog Definizione (datalog): Tipo di linguaggio formale per la rappresentazione delle query. 1.8 Progettazione di Basi di Dati Definizione (progettazione di basi di dati): Per progettazione si intende: • progettazione dei dati che individua l’organizzazione e la struttura della base di dati • progettazione delle applicazioni che schematizza le operazioni sui dati e progetta il software applicativo 6/9 Capitolo 1. Introduzione 1.8.1 Livelli di Progettazione • Concettuale • Logico • Fisico 1.9 SQL Definizione (SQL): È un linguaggio commerciale utilizzato per la gestione dei DBMS. 7/9 Capitolo 2. Fonti per testo e immagini; autori; licenze 8/9 Capitolo 2 Fonti per testo e immagini; autori; licenze 2.1 Testo • Corso:Basi di Dati/Introduzione/Le rappresentazioni del mondo Reale Fonte: https://it.wikitolearn.org/Corso%3ABasi_di_Dati/Introduzione/Le_rappresentazioni_del_ mondo_Reale?oldid=39828 Contributori: V.e.padulano • Corso:Basi di Dati/Introduzione/Introduzione e DBMS Fonte: https://it.wikitolearn. org/Corso%3ABasi_di_Dati/Introduzione/Introduzione_e_DBMS?oldid=39822 Contributori: Sofia, V.e.padulano, Irene, FAngelo e Move page script • Corso:Basi di Dati/Introduzione/Modelli Concettuali e Modelli Logici Fonte: https://it.wikitolearn.org/Corso%3ABasi_di_Dati/Introduzione/Modelli_Concettuali_e_ Modelli_Logici?oldid=28083 Contributori: Sofia, Irene, FAngelo e Move page script • Corso:Basi di Dati/Introduzione/Il modello relazionale Fonte: https://it.wikitolearn. org/Corso%3ABasi_di_Dati/Introduzione/Il_modello_relazionale?oldid=28079 Contributori: Sofia, Irene, FAngelo e Move page script • Corso:Basi di Dati/Introduzione/Algebra Relazionale Fonte: https://it.wikitolearn. org/Corso%3ABasi_di_Dati/Introduzione/Algebra_Relazionale?oldid=28073 Contributori: Sofia, Irene, FAngelo e Move page script • Corso:Basi di Dati/Introduzione/Calcolo Relazionale Fonte: https://it.wikitolearn. org/Corso%3ABasi_di_Dati/Introduzione/Calcolo_Relazionale?oldid=28075 Contributori: Sofia, Irene, FAngelo e Move page script • Corso:Basi di Dati/Introduzione/Datalog Fonte: https://it.wikitolearn.org/Corso% 3ABasi_di_Dati/Introduzione/Datalog?oldid=28077 Contributori: Sofia, Irene, FAngelo e Move page script • Corso:Basi di Dati/Introduzione/Progettazione di Basi di Dati Fonte: https://it. wikitolearn.org/Corso%3ABasi_di_Dati/Introduzione/Progettazione_di_Basi_di_Dati?oldid= 28085 Contributori: Sofia, Irene, FAngelo e Move page script • Corso:Basi di Dati/Introduzione/SQL Fonte: https://it.wikitolearn.org/Corso%3ABasi_ di_Dati/Introduzione/SQL?oldid=28087 Contributori: Sofia, Irene, FAngelo e Move page script 2.2 Immagini • File:Database1.png Fonte: http://pool.wikitolearn.org/images/pool/a/a3/Database1.png Licenza: ? Contributori: ? Artista originale: ? Capitolo 2. Fonti per testo e immagini; autori; licenze 2.3 Licenza dell’opera • [Project:Copyright Creative Commons Attribution Share Alike 3.0 & GNU FDL] • Creative Commons Attribution-Share Alike 3.0 9/9