DataBase Rev3

43
Paola Pagliariccio & Paola Pucci 13/09/2014 appunti di INFORMATICA I DATA BASE

description

Database introduction

Transcript of DataBase Rev3

Page 1: DataBase Rev3

Zz appunti di INFORMATICA

appunti di INFORMATICA

Paola Pagliariccio & Paola Pucci

13/09/2014

appunti di INFORMATICA

I DATA BASE

Page 2: DataBase Rev3

2

INDICE

data base ......................................................................................................................................................................... 5

definizione ................................................................................................................................................................... 5

schema dei dati ............................................................................................................................................................ 5

classificazione database ............................................................................................................................................... 6

sistema informativo e informatico .......................................................................................................................... 7

dbms ............................................................................................................................................................................ 7

limiti degli archivi tradizionali .................................................................................................................................. 7

caratteristiche del dbms .............................................................................................................................................. 8

svantaggi del dbms ...................................................................................................................................................... 9

funzioni del dbms ........................................................................................................................................................ 9

implementazione del modello logico sul sistema di elaborazione .......................................................................... 9

manipolazione e interrogazione della base di dati ................................................................................................ 10

controllo dell’integrità dei dati .............................................................................................................................. 10

sicurezza e privatezza ............................................................................................................................................ 10

supporto alle transazioni ....................................................................................................................................... 10

persistenza e consistenza dei dati ......................................................................................................................... 10

gestione dizionario dati ......................................................................................................................................... 11

efficiente e efficace................................................................................................................................................ 11

livelli di un dbms ........................................................................................................................................................ 11

linguaggi per database ............................................................................................................................................... 12

utenti ......................................................................................................................................................................... 12

amministratore del data base (DBA) ..................................................................................................................... 12

programmatori ...................................................................................................................................................... 12

utenti finali ............................................................................................................................................................. 12

progettazione di un data base ................................................................................................................................... 14

modellazione dei dati ............................................................................................................................................ 14

modello e-r ................................................................................................................................................................ 15

entità ...................................................................................................................................................................... 15

Page 3: DataBase Rev3

3

associazione ........................................................................................................................................................... 15

associazioni: regole di lettura ................................................................................................................................ 18

associazioni ISA ...................................................................................................................................................... 19

attributo ................................................................................................................................................................. 19

attributi chiave ....................................................................................................................................................... 21

vincoli di integrità .................................................................................................................................................. 22

i modelli di database .................................................................................................................................................. 24

modello relazionale ................................................................................................................................................... 25

concetti matematici ............................................................................................................................................... 25

definizioni .............................................................................................................................................................. 25

tabelle .................................................................................................................................................................... 26

regole di derivazione da modello concettuale a modello logico ........................................................................... 28

regole di integrità referenziale .............................................................................................................................. 33

operazioni insiemistiche ........................................................................................................................................ 33

operazioni relazionali ............................................................................................................................................. 34

Page 4: DataBase Rev3

4

Paola Pagliariccio – Paola Pucci

I Data Base

n. 43 pagine

Questa opera è distribuita con Licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo

Tu sei libero:

di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera

di modificare quest'opera

Alle seguenti condizioni:

Attribuzione — Devi attribuire la paternità dell'opera nei modi indicati dall'autore o da chi ti ha dato l'opera in licenza e in modo tale da non suggerire che essi avallino te o il modo in cui tu usi l'opera.

Non commerciale — Non puoi usare quest'opera per fini commerciali.

Condividi allo stesso modo — Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica o equivalente a questa.

http://creativecommons.org/licenses/by-nc-sa/3.0/deed.it

Page 5: DataBase Rev3

5

DATA BASE

DEFINIZIONE

Un database (base di dati) è una raccolta di dati correlati, organizzati, codificati e strutturati per essere utilizzati in modo ottimizzato da utenti e applicazioni diverse.

I dati del DB devono essere:

facilmente e rapidamente disponibili per l’interrogazione e la consultazione

reperiti mediante l’utilizzo di specifici parametri di ricerca

aggiornati nel tempo.

Per descrivere un database bisogna definire:

la struttura degli insiemi di dati che dovrà raccogliere

le restrizioni sui valori ammissibili dei dati (vincoli d’integrità),

le relazioni esistenti tra gli insiemi.

Tutte queste cose vanno definite prima di creare i dati ed indipendentemente dalle applicazioni che usano il database.

SCHEMA DEI DATI

I dati vengono organizzati in categorie e per ognuna di esse si individuano le seguenti componenti:

In dettaglio:

CATEGORIA: gruppo di dati con la stessa chiave di interpretazione, cioè lo stesso schema

SCHEMA (o intensione): chiave di interpretazione dei dati, significato attribuito al dato; non cambia nel tempo

ISTANZA (o estensione): insieme dei valori assunti da uno schema in un certo istante; cambia nel tempo

ATTRIBUTO: caratteristica dello schema

VALORE: contenuto di un determinato attributo (appartenente al tipo consentito) di una determinata istanza

Page 6: DataBase Rev3

6

CLASSIFICAZIONE DATABASE

I DB possono essere classificati secondo due differenti parametri:

1. relativamente al numero degli utenti; in questo caso si distinguono i seguenti tipi

MONOUTENTE con le seguenti caratteristiche:

• Utilizzato da un solo utente • Semplice • Piccole dimensioni

MULTIUTENTE con le seguenti caratteristiche:

• Utilizzato da più utenti contemporaneamente • Complesso • Grandi dimensioni • In rete (server e workstation)

2. relativamente al luogo dove è realmente dislocato; si possono avere due configurazioni:

CENTRALIZZATO con le seguenti caratteristiche:

• memorizzato in un unico elaboratore • può essere locale, cioè residente sullo stesso

calcolatore dell’utente, o remoto cioè residente su un altro computer interno o esterno alla azienda (server)

• Può essere di tipo monoutente o multiutente

EDISTRIBUITO con le seguenti caratteristiche:

• memorizzato in due o più elaboratori collegati in rete locale o geografica

• può essere dislocato in più computer situati nello stesso luogo, oppure distribuito in una rete di computer connessi tra loro sotto forma appunto di sistema distribuito

• si tratta di basi di dati con informazioni costituenti una sola struttura logica ma fisicamente memorizzate su diversi elaboratori. La localizzazione dei dati è trasparente alle applicazioni degli utenti.

• Può essere solo di tipo multiutente

CENTRALIZZATO DISTRIBUITO

Funzionamento

• Unico DB

• Per ogni query viene consultato il DB globale

Un DB globale; molti DB locali: 1) query su DB locale; 2) replicazione dei dati; 3) aggiornamento DB globale.

Limiti

• Elevati Costi Hardware

• Unico punto d’accesso quindi maggiori tempi d’attesa

• Minore affidabilità

• Elevati Costi Software

• In rete quindi maggiore difficoltà di protezione

• Maggiore complessità

Vantaggi

• Unico punto d’accesso quindi migliore protezione degli accessi

• Memoria di massa quindi minore difficoltà di protezione

• Migliore aderenza del DB al sistema informativo

• Autonomia locale dei dati: maggior controllo

• In rete quindi maggiore velocità di accesso

• Maggiore affidabilità

HOME

Page 7: DataBase Rev3

7

SISTEMA INFORMATIVO E INFORMATICO

Un SISTEMA INFORMATIVO è la combinazione di risorse umane e materiali (computer, dispositivi, carta, etc.) e di procedure di un'organizzazione, atte alla raccolta, archiviazione, elaborazione e scambio di informazioni. E’ formato da due parti strettamente legate tra loro, quella tecnica e quella sociale (personale, strategie, strutture organizzative, norme..).

Un SISTEMA INFORMATICO è la parte automatizzata di un sistema informativo. E’ l’insieme di strumenti informatici per il trattamento delle informazioni di un'organizzazione, al fine di agevolare le funzioni del suo sistema informativo.

DBMS

Il DBMS (Database Management System) è un insieme di strumenti software necessari alla creazione dello schema, alla ricerca e all’aggiornamento dei dati dei database. Un DBMS può essere costituito da un insieme di programmi che controllano:

l’organizzazione dei dati

la memorizzazione dei dati

il reperimento dei dati

la sicurezza e l'integrità del database

Un DB è un insieme di dati mentre un DBMS è uno strumento che permette di gestire un DB.

LIMITI DEGLI ARCHIVI TRADIZIONALI

Nella gestione tradizionale degli archivi di dati organizzati in modo non integrato si possono presentare diversi problemi; i principali sono:

Ridondanza dei dati: gli stessi dati compaiono più volte in archivi diversi. C'è spreco di spazio, pesantezza nel caricamento dei dati e non è garantita la congruenza dei dati.

Incongruenza dei dati: se lo stesso dato è presente in più archivi in uno stesso momento può succedere che esso abbia valori diversi; di conseguenza i dati sono inconsistenti.

Inconsistenza dei dati: se lo stesso dato è presente in archivi diversi con valori differenti non è possibile sapere quale è il valore da considerare giusto.

Dipendenza dei programmi dai dati: se cambia il tracciato record o la cartella in cui è memorizzato un archivio bisogna modificare il programma.

Difficoltà nel gestire l’integrità dei dati: nel programma bisogna scrivere codice opportuno per garantire l’integrità dei dati.

Difficoltà nel gestire la concorrenza: in un file condiviso se due utenti tentano la modifica contemporaneamente, qual è l’esito? Solo l’ultima operazione di modifica viene registrata, la precedente si perde. Quindi, con la concorrenza si deve garantire la mutua esclusione.

Limitata sicurezza: non tutti gli utenti hanno stessi permessi sui dati, ci possono essere dati riservati e quindi bisogna gestire le autorizzazioni.

Scarsa protezione: possono verificarsi guasti accidentali ed è difficile prevederli e gestirli.

Isolamento dei dati e file di differente formato: se si usano differenti linguaggi è difficile il collegamento.

Page 8: DataBase Rev3

8

CARATTERISTICHE DEL DBMS

Un DBMS è fatto per gestire grandi quantità di dati.

Convenzionalmente si può intendere che un gruppo di informazioni sia di grandi dimensioni quando questo non possa essere contenuto tutto simultaneamente nella memoria centrale dell'elaboratore. In generale un DBMS non dovrebbe porre limiti alle dimensioni, tranne quelle imposte dai supporti fisici in cui devono essere memorizzate le informazioni.

I dati devono poter essere condivisibili.

Accentrare le informazioni in un sistema di amministrazione unico. È poi necessario che questi dati siano condivisibili da diverse applicazioni e da diversi utenti.

I dati devono essere persistenti e affidabili.

I dati sono persistenti quando continuano a esistere dopo lo spegnimento della macchina con cui vengono elaborati; sono affidabili quando gli eventi per cui si possono produrre alterazioni accidentali sono estremamente limitati.

L'accesso ai dati deve essere controllabile.

Dovendo trattare una grande mole di dati in modo condiviso, è indispensabile che esistano dei sistemi di controllo degli accessi, per evitare che determinate informazioni possano essere ottenute da chi non è autorizzato, oppure che vengano modificate da chi non ne è il responsabile.

L'accesso ai dati deve essere facile.

Il ritrovamento dei dati è facilitato e svolto con grande velocità, dovendo trattare una grande mole di dati, con richieste provenienti contemporaneamente da più utenti.

L'accesso ai dati deve garantire l’indipendenza dalla struttura logica dei dati.

I programmi applicativi sono indipendenti dalla struttura logica con cui sono organizzati i dati negli archivi, quindi posso modificare le strutture della base di dati senza dover modificare il software applicativo.

L'accesso ai dati deve garantire l’indipendenza dalla struttura fisica dei dati.

I programmi applicativi sono indipendenti dai dati fisici, quindi posso modificare i supporti con cui sono registrati e le modalità di accesso senza dover modificare le applicazioni.

L'accesso ai dati deve essere sicuro.

Sono previste procedure di controllo sia per impedire accessi non autorizzati ai dati contenuti nel database, sia per la protezione da guasti accidentali.

L'accesso ai dati deve avere controllo della concorrenza.

Sono previste procedure di controllo affinchè le operazioni svolte da utenti diversi in modo concorrente non interferiscano una con l’altra.

L'accesso ai dati deve garantire l’eliminazione della ridondanza.

Sono previste procedure di controllo mirate a rilevare che gli stessi dati non compaiano più volte in archivi diversi, in quanto il database è composto da archivi integrati di dati.

L'accesso ai dati deve garantire l’eliminazione dell’inconsistenza.

Sono previste procedure di controllo per evitare che il database presenti campi uguali con valori diversi in archivi diversi.

Page 9: DataBase Rev3

9

L'accesso ai dati deve garantire l’integrità dei dati.

Sono previste procedure di controllo per evitare anomalie ai dati causate dai programmi e dalle applicazioni degli utenti; le operazioni sui dati richieste dagli utenti vengono eseguite fino al loro completamento per assicurare la consistenza dei dati.

SVANTAGGI DEL DBMS

I DBMS presentano anche alcuni svantaggi:

Sono complessi e costosi ed hanno specifici requisiti in termini di software e hardware.

A volte è difficile separare i servizi utili da quelli inutili.

Sono inadatti alla gestione di poche informazioni condivise da un numero basso di utenti.

FUNZIONI DEL DBMS

Un DBMS svolge determinate funzioni con l'uso di particolari Linguaggi:

Permettere la creazione di una nuova base di dati con l’uso del linguaggio DDL (Data Definition Language).

Facilitare gli utenti nell’inserimento, cancellazione, modifica con l’uso del linguaggio DML (Data Manipulation Language).

Rendere possibile l’estrazione di informazioni interrogando la base di dati con l’uso del linguaggio QL (Query Language).

Superare i limiti che si presentano con l’approccio della gestione degli archivi:

• ridondanza • integrità • indipendenza • concorrenza • sicurezza

Una volta progettato uno schema logico per il nostro database il DBMS ci permette di realizzarlo fisicamente fornendo le funzioni per:

implementazione del modello logico sul sistema di elaborazione

manipolazione e interrogazione della base di dati

controllo dell'integrità dei dati

sicurezza e protezione

supporto alle transazioni

persistenza e consistenza dei dati

gestione dei dizionari

efficienza ed efficacia

IMPLEMENTAZIONE DEL MODELLO LOGICO SUL SISTEMA DI ELABORAZIONE

In questa fase è possibile:

definire i dati e le strutture dati derivate dallo schema logico

definire i sottoschemi o viste del data base. Una vista è una tabella virtuale, che corrisponde a cosa delle tabelle proprie del database ogni utente può vedere. Sono cioè delle finestre dinamiche e per un data base possono esserci più viste diverse

Page 10: DataBase Rev3

10

organizzare fisicamente i dati sui supporti di memorizzazione, ottimizzando l’occupazione della memoria di massa.

MANIPOLAZIONE E INTERROGAZIONE DELLA BASE DI DATI

Una volta creato il DB è possibile, usando le funzioni del DBMS, modificare i dati in esso contenuti, gestirli in genere e soprattutto fare delle interrogazioni che attraverso rieleborazioni o filtraggio dei dati stessi ci permettono di estrarre dal DB le informazioni necessarie. In particolare è possibile:

inserire nuovi dati nel DB e modificare, aggiornare o cancellare i dati precedentemente inseriti

creare una interfaccia tra utenti e DB per operazioni di recupero dati

accedere ai dati del DB con operazioni di interrogazioni (query), attraverso interfacce o comandi

CONTROLLO DELL’INTEGRITÀ DEI DATI

Le operazioni sui dati del DB devono essere effettuate senza creare incongruenze, devono essere sempre rispettati i vincoli predefiniti sui dati o fra i dati e mantenute le relazioni esistenti fra essi. Il DBMS si preoccupa quindi di controllare:

Integrità sui dati, in relazione ai valori assunti e alle interdipendenze tra dati di differenti tabelle

Integrità definite dall’utente, vincoli per un DB, in seguito a scelte di implementazione o norme di legge

SICUREZZA E PRIVATEZZA

I dati contenuti in un DB devono essere protetti da errori accidentali o volontari. Quindi, in particolare, il DBMS deve garantire :

la sicurezza dei dati contro danni da malfunzionamenti hardware e software o interventi dolosi

il rispetto dell'autorizzazione per gli utenti del DB e la protezione degli accessi a utenti non autorizzati

il controllo degli accessi in modo concorrente al DB da parte di più utenti

SUPPORTO ALLE TRANSAZIONI

Per Transazione si intende un insieme di operazioni di interrogazione o modifica del DB eseguite come se fossero un’unica operazione. Una transazione pertanto può essere eseguita con successo oppure no e il DBMS deve in ogni caso garantire che tutte le operazioni che compongono la transazione siano eseguite completamente e correttamente, nel caso di successo, o che non ne sia eseguita nessuna, altrimenti. Non deve cioè permettere l'esecuzione parziale di una transazione.

PERSISTENZA E CONSISTENZA DEI DATI

I dati devono essere mantenuti nel tempo e quindi devono essere sempre affidabili; per questo motiva un DBMS deve preoccuparsi di:

Page 11: DataBase Rev3

11

conservare i dati del DB intatti e permetterne la ricostruzione in caso di malfunzionamento o danneggiamento

fornire procedure di backup e restore per salvare periodicamente i dati e reinserirli in caso di necessità

garantire la persistenza dei dati in caso di accesso concorrente in lettura/scrittura

GESTIONE DIZIONARIO DATI

Un DBMS deve predisporre un dizionario contenente metadati, informazioni che descrivono oggetti del DB (nomi delle tabelle, dei campi, delle associazioni, dei vincili, …); tali informazioni sono organizzate in tabelle (come i dati) e sono accessibili agli utenti autorizzati.

EFFICIENTE E EFFICACE

Un DBMS per essere valido deve essere efficiente ed efficace cioè:

capace di svolgere le operazioni richieste dagli utenti con tempo e spazio accettabili per questi ultimi. L'efficienza dipende dalle tecniche di implementazione usate dal DBMS, dalla bontà della progettazione del DB e dal dimensionamento del sistema

deve rendere produttive e semplici le operazioni richieste dagli utenti.

LIVELLI DI UN DBMS

Un DBMS presenta una architettura a livelli che si riferiscono a cosa vedono i vari utenti, all'organizzazione logica dell'intero DB secondo le strutture proprie del DBMS e a come esso viene fisicamente realizzato nelle memorie di massa del sistema che dovrà ospitarlo.

I livelli in ordine decrescente sono:

esterno: descrizione di parte della base di dati in un modello logico (“viste” parziali, derivate, anche in modelli diversi)

logico: descrizione dell’intera base di dati nel modello logico “principale” del DBMS

fisico: rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione

Page 12: DataBase Rev3

12

LINGUAGGI PER DATABASE

Ogni livello di architettura del DBMS mette a disposizione uno specifico linguaggio utilizzato per realizzare le funzioni associate al livello stesso.

I vari linguaggi si possono così classificare:

Data Definition Language (DDL): per la definizione di schemi (esterni, logici, fisici) e altre operazioni generali, linguaggio per la descrizione dei dati, delle tabelle e delle viste

Data Manipulation Language (DML): per l’interrogazione e l’aggiornamento di basi di dati

Data Control Language (DCL): per stabilire i diritti di accessi consentiti agli utenti

Device Media Control Language (DMCL): per il controllo dei supporti di memorizzazione dei dati, attraverso il quale la struttura fisica del DB viene riferita alle specifiche unità di memoria di massa

Query Language: consente il ritrovamento dei dati nel DB con criteri di ricerca (es. SQL e QBE)

UTENTI

Al DB possono accedere diversi tipi di utenti ognuno dei quali avrà delle specifiche funzioni e specifiche autorizzazioni. Si distingue fra:

AMMINISTRATORE DEL DATA BASE (DBA)

Implementazione del modello logico del DB sui supporti fisici della memoria di massa

Gestione e trattamento dei dati

Autorizzazione degli accessi

Definizione delle viste per accessi parziali di utenti al DB

Manutenzione del DB

Recupero per cattivi funzionamenti, copie salvataggio periodiche

Controllo disponibilità spazi memoria di massa

Utilizza il DCL, il DMCL, il DDL e il DML

PROGRAMMATORI

Utilizzano il linguaggio DML, o comandi estensione di linguaggi tradizionali di programmazione, o linguaggio specifico DB, o utilizzano il QL. Programmatore agisce sotto controllo del gruppo di progetto e di produzione e del DBA.

UTENTI FINALI

Possono accedere alla base di dati attraverso i comandi di un query language, di un linguaggio QBE (query by example: interrogazioni per esempi) o di interfacce software con video finestre, menu e icone, per utenti finali meno esperti.

Page 13: DataBase Rev3

13

Page 14: DataBase Rev3

14

PROGETTAZIONE DI UN DATA BASE

La progettazione di un database avviene attraverso 4 fasi: 1. Analisi della realtà d’interesse

2. Progettazione concettuale: dai requisiti forniti si modellano le “viste degli utenti” che poi sono integrate in un unico schema concettuale

3. Progettazione logica: lo schema concettuale è trasformato in schema logico tenendo presente il particolare modello di DBMS scelto. Descrive la composizione del formato dei dati nel loro aspetto di struttura logica

4. Progettazione fisica: vengono creati i file che andranno a costituire la struttura fisica del database

MODELLAZIONE DEI DATI

MODELLARE i dati significa costruire un modello della realtà osservata, cioè una sua rappresentazione semplificata che contiene gli elementi caratterizzanti e i legami che esistono tra essi.

Nella progettazione concettuale di un DB si utilizzano modelli concettuali che sono INDIPENDENTI da:

i valori assegnati ai dati

le applicazioni che useranno i dati

le viste parziali dei dati da parte degli utenti

Page 15: DataBase Rev3

15

MODELLO E-R

Uno dei modelli concettuali più noti è il MODELLO E/R (Entity - Relationship, Entità - Relazioni).

I suoi elementi caratterizzanti sono:

Entità

Associazioni

Attributi

ENTITÀ

Le ENTITA’ rappresentano classi di oggetti (fatti, persone) che hanno proprietà comuni ed esistenza “autonoma” per un’applicazione. Sono oggetti (concreti o astratti) di interesse per la realtà da modellare e hanno un significato anche se considerati in modo isolato.

Esempi (per una realtà aziendale):

REPARTO

CLIENTE

DIPENDENTE

FORNITORE

VENDITA

Un’occorrenza o ISTANZA di un’entità è un oggetto della classe che l’entità rappresenta.

ESEMPIO (per l’entità STUDENTE ciascuno studente rappresenta un’istanza):

ROSSI MARIO con tutti i suoi dati

BIANCHI ALESSIO con tutti i suoi dati.

Nella rappresentazione grafica un’entità si rappresenta graficamente con un rettangolo, all'interno del quale si mette il nome del concetto che rappresenta.

Entità CLIENTE

Entità STUDENTE

ASSOCIAZIONE

Le associazioni o relazioni rappresentano legami logici che stabiliscono un’interazione tra due o più entità.

ESEMPIO DI RELAZIONI:

RISIEDERE tra le entità IMPIEGATO e CITTA’

FREQUENTARE tra le entità STUDENTE e CORSO.

Un’occorrenza di una relazione è una n-upla (coppia nel caso di relazione fra due entità) costituita da occorrenze di entità, una per ciascuna delle entità coinvolte.

Nella rappresentazione grafica una relazione si rappresenta con una linea che collega le entità

interessate o con un rombo all'interno del quale si mette il nome del concetto che rappresenta.

CLIENTE

STUDENTE

Page 16: DataBase Rev3

16

Ogni associazione ha due versi ognuno dei quali:

ha un’entità di partenza e una di arrivo

ha una descrizione che consente di comprenderne il significato

tra l’entità persona e l’entità automobile esiste una associazione che può essere descritta

secondo due versi:

una persona possiede una o più automobili

un’automobile è posseduta da una persona

Fra due entità possono essere definite anche più associazioni:

Tra le entità PERSONA e LIBRO esistono due associazioni ognuna delle quali può essere descritta secondo due versi:

una persona prende in prestito/restituisce un libro

un libro è preso in prestito/restituito da una persona

Un’associazione può essere definita anche su una sola entità (ASSOCIAZIONE UNARIA O RICORSIVA); le sue istanze sono in relazione con se stesse.

Ogni singolo sovrano è successore di un altro

sovrano e predecessore di un altro ancora.

Un’associazione può essere definita anche

su più di due entità, per esempio ternaria.

LIBRO

Page 17: DataBase Rev3

17

Per MOLTEPLICITÀ di un’associazione si intende quante istanze di un’entità vengono messe in corrispondenza con un’istanza dell’altra.

Al valore minimo di tale quantità è associato il concetto di OBBLIGATORIETÀ dell’associazione

Al valore massimo di tale quantità è associato il concetto di CARDINALITÀ dell’associazione

Un’associazione tra le entità può essere:

OBBLIGATORIA O TOTALE: molteplicità minima = 1, cioè ad ogni istanza dell’entità di partenza corrisponde almeno un’istanza dell’entità di arrivo (nello Schema E/R si rappresenta con una linea continua)

OPZIONALE O PARZIALE: molteplicità minima = 0, cioè ad ogni istanza dell’entità di partenza può anche non corrispondere alcuna istanza dell’entità di arrivo (nello Schema E/R si rappresenta con una linea tratteggiata).

A seconda della cardinalita’ un’associazione può essere:

Un’associazione è di tipo uno a uno (1:1) o biunivoca se ad ogni istanza dell’entità di partenza E1 corrisponde una e una sola istanza dell’entità di arrivo E2 e viceversa.

ESEMPIO DI ASSOCIAZIONE 1:1

Una persona può possedere una patente di tipo B ed una patente di tipo B è intestata ad una sola persona.

Un’associazione è di tipo uno a molti (1:N) o semplice se ad ogni istanza dell’entità di partenza E1 corrispondono una o più istanze dell’entità di arrivo E2 e ad ogni istanza dell’entità di arrivo E2 corrisponde una sola istanza dell’entità di partenza E1

PATENTE B è intestata

Page 18: DataBase Rev3

18

ESEMPIO DI ASSOCIAZIONE 1: N

Una donna può aver generato uno o più figli e un figlio è nato da una sola donna.

Un’associazione è di tipo molti a molti (N:N) o complessa se ad ogni istanza dell’entità di partenza E1 corrispondono una o più istanze dell’entità di arrivo E2 e ad ogni istanza dell’entità di arrivo E2 corrispondono una o più istanze dell’entità di partenza E1

ESEMPIO DI ASSOCIAZIONE N: N

Ogni film può essere interpretato da nessuno, uno o più attori e ogni attore interpreta uno o più film.

ASSOCIAZIONI: REGOLE DI LETTURA

Ogni associazione deve essere letta nei due versi partendo in entrambi i casi da un’istanza e associando ad essa le possibili istanze dell’entità di arrivo. Si deve mettere in evidenza l’opzionalità e la cardinalità secondo queste regole:

OGNI <nome entità Partenza> PUÒ/DEVE <nome Associazione> UN SOLO/UNO O PIÙ <nome entità Arrivo>

Page 19: DataBase Rev3

19

ASSOCIAZIONI ISA

Le ASSOCIAZIONI ISA (= è un) rappresentano legami logici tra un’entità padre e una o più entità figlie, che sono comprese nel padre e che ne costituiscono un caso particolare.

L’entità padre viene chiamata GENERALIZZAZIONE delle entità figli, che vengono chiamate SPECIALIZZAZIONI dell’entità padre.

Valgono le seguenti proprietà:

ogni occorrenza dell’entità figlia lo è anche dell’entità padre

ogni proprietà dell’entità padre (attributi, chiavi, relazioni) viene ereditata dalle entità figli

ESEMPI DI ASSOCIAZIONE ISA:

Dipendente è l’entità padre, Dirigente e

Impiegato sono le entità figlia.

Tutto il personale della scuola ha delle informazioni comuni (ad es. nome, indirizzo, anno di assunzione, …); per ogni altra entità si aggiungono informazioni specifiche (ad es. per i docenti materia insegnata, classe di concorso, … per i non docenti mansione, .. per la segreteria l'ufficio,… L’entità SEGRETERIA quindi eredita gli attributi di NON DOCENTE che a sua volta li eredita da PERSONALE SCUOLA

ATTRIBUTO

Gli attributi descrivono le proprietà, delle entità e delle associazioni, di interesse ai fini

dell’applicazione.

Esempi di attributi dell’entità dipendente sono:

codice fiscale (codfisc)

cognome

via

numero (num)

città

qualifica

Le caratteristiche di ogni attributo sono:

FORMATO : indica il tipo di valori che l’attributo assume (carattere, numerico, data/ora)

DIMENSIONE: indica la quantità massima di caratteri o cifre che può contenere

Page 20: DataBase Rev3

20

VALORE: i diversi valori assunti dagli attributi determinano le istanze dell’entità

OPZIONALITA’: indica la possibilità di non essere in alcuni casi valorizzato; se l’attributo deve avere sempre un valore allora è obbligatorio altrimenti è facoltativo (il valore null è diverso dal valore 0 o blank, è informazione mancante o sconosciuta).

Gli attributi possono essere:

SEMPLICI se sono atomici e possono assumere un solo valore per ogni istanza

COMPOSTI O AGGREGATI

se possono essere scomposti in attributi semplici o composti

MULTIVALORE se possono assumere più di un valore per ogni istanza

OBBLIGATORI O OPZIONALI

se devono o no comparire necessariamente in ogni istanza dell’entità

CALCOLATI se il valore deriva da quello di altri attributi

VINCOLATI se il valore che possono assumere deve sottostare a condizioni specifiche

IDENTIFICATORI O DESCRITTORI

se fanno parte o meno di una chiave primaria

I diversi valori assunti dagli attributi determinano le diverse istanze dell’entità.

L’insieme dei possibili valori assunti da un attributo si chiama dominio dell’attributo.

I valori appartenenti al dominio sono omogenei tra loro, cioè sono dello stesso tipo.

Nel caso del formalismo con il rombo si possono rappresentare gli attributi dell’associazione:

Gli attributi DataAcquisto e PrezzoAcquisto non sono attributi né dell’entità PERSONA, né di AUTOMOBILE, ma sono attributi dell’associazione che le lega (possedere).

Segue un esempio più complesso, nel quale Votazione è attributo dell’associazione Partecipazione e Data inizio di Impiego Corrente.

Esempi di domini :

Nome insieme di tutti i possibili nomi

cognome insieme di tutti i possibili cognomi

Matricola insieme di numeri interi

Data di nascita insieme di date

Page 21: DataBase Rev3

21

ATTRIBUTI CHIAVE

Uno o più attributi possono avere il ruolo di chiave. Si possono avere diversi tipi di chiavi:

CANDIDATA ogni insieme minimale(*) di uno o più attributi che possono identificare univocamente un’istanza.

PRIMARIA una delle possibili chiavi candidate (in genere quella con il minor numero di attributi)

SECONDARIA uno o più attributi che permettono una ricerca rapida di un’istanza. Può essere duplicata e presuppone la formazione di un indice

ESTERNA uno o più attributi di un’entità che sono chiave primaria di un’altra entità; permette il collegamento fra due entità

(*) minimale: se si eliminano campi dalla chiave non si garantisce l’unicità

Nel modello E/R gli attributi che compongono la chiave primaria vengono sottolineati (oppure

se ne colora il cerchietto).

ESEMPI:

Page 22: DataBase Rev3

22

VINCOLI DI INTEGRITÀ

Sono le regole che devono essere verificate affinchè siano ritenute valide le informazioni

memorizzate in un DB.

I vincoli vengono numerati progressivamente e la sintassi è la seguente

Vnum: condizione su ENTITÀ.attributo

I vincoli si suddividono in esterni ed interni.

VINCOLI ESTERNI

I vincoli esterni sono quelli esistenti fra più entità; vengono anche detti vincoli interrelazionali.

ESEMPIO:

Se si inserisce un movimento di tipo prelievo è chiaro che l’importo non deve essere superiore al saldo. Il vincolo corrispondente si scriverà:

V1: MOVIMENTO.importo ≤ CLIENTE.saldo

VINCOLI INTERNI

I vincoli interni sono quelli esistenti all’interno di una singola entità; vengono anche detti vincoli

intrarelazionali. Possono interessare una singola n-pla o più n-ple della stessa entità.

VINCOLI INTERNI SU PIÙ N-PLE

Sono i vincoli interni ad una sola entità che coinvolgono più n-ple.

L’attributo codice deve avere un valore diverso per ogni n-pla; non deve

avere duplicati. Il vincolo corrispondente si scriverà:

V2: CLIENTE.codice unique

VINCOLI INTERNI SU UNA N-PLA

Sono vincoli interni ad una sola entità che coinvolgono una sola n-pla.

HOME

BACK

Page 23: DataBase Rev3

23

Possono interessare:

un singola attributo

L’attributo AnnoNascita deve avere un valore superiore al 1950 e inferiore al 2014. Il vincolo

corrispondente si scriverà:

V3: 1950 < STUDENTE.AnnoNascita < 2014

più attributi della stessa n-pla

Il valore dell’attributo AnnoIscrizione deve essere maggiore del valore dell’attributo

AnnoNascita. Il vincolo corrispondente si scriverà:

V4: STUDENTE.AnnoIscrizione > STUDENTE.AnnoNascita

Ricapitolando si ottiene la seguente classificazione dei vincoli d'integrità:

Page 24: DataBase Rev3

24

I MODELLI DI DATABASE

I modelli di DBMS possibili sono:

Flat file: un unico file di testo ASCII in formato standard che il programma esamina per

cercare informazioni; il formato è di solito costituito da un insieme di campi, contenenti

ciascuno una specifica categoria di informazioni, delimitati attraverso caratteri speciali o

con lunghezza fissa assegnata (es. fogli di calcolo)

Modello gerarchico: struttura ad albero. E’ particolarmente adatto per rappresentare

situazioni nelle quali è possibile fornire all' insieme dei dati una struttura ad albero nel

quale i nodi rappresentano le entità e gli archi le associazioni.

Modello reticolare: struttura a grafo. E’ una generalizzazione del modello gerarchico; lo

schema è costituito non più da un albero ma da un grafo orientato dove i nodi

rappresentano le entità e gli archi le associazioni

Modello relazionale: struttura a tabelle. Si basa sul concetto matematico di relazione ed è

il più utilizzato perché è il più semplice

Modello ad oggetti: usa il paradigma della programmazione a oggetti. È il modello più

recente di database che nasce dall’esigenza di gestire informazioni multimediali: immagini,

audio, video, documenti e risorse Internet.

Page 25: DataBase Rev3

25

MODELLO RELAZIONALE

CONCETTI MATEMATICI

Prodotto cartesiano fra due insiemi A e B (A x B): insieme ordinato delle coppie tali che il primo elemento appartiene al primo insieme e il secondo elemento appartiene al secondo insieme.

A x B = { (x,y)| xA, yB} Es.: A = {1, 2, 3} B = {a, b} A x B = {(1, a), (1, b), (2, a), (2, b), (3, a), (3, b)} Generalizzando

Prodotto cartesiano fra n insiemi A1, A

2, …, A

n (A

1 x A

2 … x A

n) insieme di tutte le possibili n-uple

(a1, a

2, …, a

n) tali che a

1 appartiene all’insieme A

1, a

2 appartiene all’insieme A

2, …, a

n appartiene

all’insieme An

A1 x A

2 … x A

n = {(a

1, a

2, …, a

n) | a

1A

1 , a

2A

2 , … , a

nA

n }

DEFINIZIONI

Relazione definita sugli insiemi A1, A2, …, An: sottoinsieme del prodotto cartesiano fra gli n

insiemi stessi

Domini della relazione: insiemi A1, A2, …, An

Grado della relazione: numero di insiemi su cui è definita (n)

Cardinalità della relazione: numero di n-uple appartenenti alla relazione.

Una relazione è un insieme, quindi l’ordine secondo il quale sono elencate le n-uple non è significativo.

Esempio: dati gli insiemi A1 = {0, 1}, A2 = {a, b, c}

A x B = {(0, a), (0, b), (0, c), (1, a), (1, b), (1, c)}

Una relazione R definita su A1 e A2 può essere: R = {(0, a), (1, b), (1, a)}

Grado di R = 2 ogni n-upla è formata da 2 elementi

Cardinalità di R = 3.

a

b

HOME

Page 26: DataBase Rev3

26

TABELLE

Come definito precedentemente il modello relazionale utilizza le tabelle. Una tabella è una griglia

suddivisa in righe e colonne:

le colonne sono composte da campi

le righe sono chiamate record

la prima riga di una tabella è detta intestazione e contiene il nome dei campi.

Una relazione può essere rappresentata tramite una tabella, tenuto conto che:

ogni riga corrisponde ad una n-upla della relazione

ogni colonna corrisponde ad un dominio su cui è definita la relazione, i valori contenuti in

ogni colonna sono tutti dello stesso tipo e ad ogni colonna viene associato un nome.

Quindi la tabella avrà:

tante colonne quanti sono i domini (grado n della relazione)

tante righe quante sono le n-uple (cardinalità della relazione).

Page 27: DataBase Rev3

27

Tabella rappresentata con l’uso di Access

CARATTERISTICHE

Le caratteristiche fondamentali del modello relazionale sono:

in una relazione non esistono mai due n-uple identiche e quindi due righe identiche nella tabella;

esiste sempre una chiave primaria minima e univoca;

l’insieme delle n-uple non è fisicamente ordinato;

i valori di un attributo o colonna appartengono allo stesso dominio quindi sono dello stesso tipo;

tutti i valori degli attributi sono atomici, cioè non ulteriormente scomponibili;

tutte le righe della tabella hanno lo stesso numero di colonne, che corrispondono agli attributi.

CORRISPONDENZE

Esistono delle corrispondenze tra il modello E-R, quello relazionale e il concetto matematico.

Esse sono evidenziate nella tabella sottostante.

Modello E/R Concetto matematico Modello relazionale

entità relazione tabella

istanza n-upla riga

attributo n-esimo elemento colonna

dominio dominio insieme valori di un attributo

Page 28: DataBase Rev3

28

Data la seguente relazione Libri:

Libri (CodiceLibro, Titolo, Autore, AnnoPubblicazione, CasaEditrice) si ottiene la sottostante

tabella:

Codice

Libro

Titolo Autore Anno Pubblic. Casa Editrice

L001 Un perfetto equilibrio Mistry Rohinton 2002 Mondadori

L002 La presa di Macallé Camilleri Andrea 2003 Sellerio

L003 Le avventure di Mr. Tompkins

George Gamow 1995 Dedalo

L004 I pinguini non vanno in vacanza

Andrei Kurkov 2006 Garzanti

In essa si possono calcolare il Grado = 5 poiché ci sono 5 colonne, cioè 5 attributi e la

Cardinalità = 4 poiché ci sono 4 righe, cioè 4 n-ple.

REGOLE DI DERIVAZIONE DA MODELLO CONCETTUALE A MODELLO LOGICO

Ogni entità diventa una relazione

Ogni attributo di un’entità diventa un attributo della relazione, ossia una colonna della

tabella

Ogni attributo della relazione eredita le caratteristiche dell’attributo dell’entità da cui

deriva

L’identificatore univoco di un’ entità diventa chiave primaria della relazione derivata.

ASSOCIAZIONI

Relazione uno a uno (1:1)

Si crea una sola tabella con gli attributi di entrambe le entità e come chiave una delle due (quella

più significativa).

Prendiamo come esempio il modello E-R sottostante in cui compaiono due entità: PROFESSORE e

CORSO collegate tra di loro con una relazione 1:1.

La chiave primaria dell’entità PROFESSORE è CodProf, mentre quella di CORSO è CodCorso. In

prima istanza genero la relazione PROFESSORE_CORSO che ha gli attributi di entrambe le entità

di partenza e come chiave primaria CodProf.

Page 29: DataBase Rev3

29

Un’altra possibilità è quella di aggiungere come chiave esterna alla tabella PROFESSORE, la chiave

primaria della tabella CORSO. Oppure si aggiunge come chiave esterna alla tabella CORSO, la

chiave primaria della tabella PROFESSORE.

La tabella la cui chiave primaria viene inserita nell’altra tabella è detta tabella principale, mentre

l’altra tabella è detta secondaria.

Relazione uno a molti (1:N)

La chiave primaria dell’entità a uno diventa chiave esterna dell’entità a molti.

Prendiamo come esempio il modello E-R sottostante in cui compaiono due entità: SQUADRA e

CALCIATORE collegate tra di loro con una relazione 1:N.

La chiave primaria dell’entità SQUADRA è CodSq, mentre quella di CALCIATORE è CodCalc.

Page 30: DataBase Rev3

30

Ottengo quindi:

Nella tabella CALCIATORE l’attributo CodSq corrisponde alla chiave primaria della tabella

SQUADRA esprimendo così la relazione che sussiste tra CALCIATORE e SQUADRA. CodSq è quindi

una chiave esterna per la tabella CALCIATORE.

Relazione molti a molti (N:N)

Si crea una nuova tabella che ha come attributi le chiavi primarie delle entità coinvolte più gli

eventuali attributi dell’associazione. La chiave primaria della nuova relazione è un progressivo

oppure una composizione di campi che permette di identificare univocamente le n-uple della

relazione.

Prendiamo come esempio il modello E-R sottostante in cui compaiono due entità: PROFESSORE e

ALUNNO collegate tra di loro con una relazione N:N.

La chiave primaria dell’entità PROFESSORE è CodProf, mentre quella di ALUNNO è Matr.

Page 31: DataBase Rev3

31

Dopo la derivazione ottengo le tre tabelle sottostanti:

Nella nuova tabella INSEGNA l’attributo CodProf corrisponde alla chiave primaria della tabella

PROFESSORE, l’attributo Matr corrisponde alla chiave primaria della tabella ALUNNO, mentre

l’attributo ORE è l’attributo dell’associazione.

Relazione ISA o generalizzazioni

Relazione unica

Si crea un’unica tabella contenente gli attributi dell’entità padre e quelli di ogni figlio

aggiungendo un campo per specificare, per ogni istanza, a quale figlio ci si riferisce.

Page 32: DataBase Rev3

32

Nel nostro esempio l’entità padre è STUDENTI con chiave primaria Codice, mentre le entità figlio

sono ELEMENTARI con l’attributo Maestra e SUPERIORI con l’attributo Indirizzo_studio. Nella

tabella risultante si avrà (Codice, Nome, Indirizzo, Anno_nascita, Maestra, Indirizzo_studio,

tipostud). Quando lo studente è delle elementari ci sarà il nome della Maestra, quando delle

superiori il tipo di indirizzo frequentato.

Partizionamento verticale

Si crea una tabella per ogni entità (padre e figli) e si aggiunge nelle entità figlie la chiave del

padre come chiave esterna.

Partizionamento orizzontale

Si crea una tabella per ogni entità (padre e figli) duplicando nei figli gli attributi dell’entità padre;

nel padre si inseriranno solo le istanze non presenti in nessun figlio.

Page 33: DataBase Rev3

33

REGOLE DI INTEGRITÀ REFERENZIALE

L'integrità referenziale è un insieme di regole del Modello Relazionale che garantiscono

l'integrità dei dati quando si hanno relazioni associate tra loro attraverso la chiave esterna:

queste regole servono per rendere valide le associazioni tra le tabelle e per eliminare gli errori in

inserimento, cancellazione o modifica dei dati collegati tra loro. L'integrità referenziale garantisce

che le relazioni tra due tabelle rimangano sincronizzate durante le operazioni di aggiornamento e

di eliminazione. Qui di seguito troviamo sintetizzate le regole di integrità referenziale.

E’ possibile specificare se si desidera utilizzare automaticamente le opzioni di aggiornamento a

catena e di eliminazione a catena per i record correlati.

OPERAZIONI INSIEMISTICHE

Le operazioni binarie dell’insiemistica hanno senso su relazioni compatibili, con lo stesso schema,

cioè con identici attributi o almeno appartenenti al medesimo dominio.

Page 34: DataBase Rev3

34

Partendo dalle due relazioni sottostanti STUDENTE e LAUREATO

si possono calcolare le tre operazioni insiemistiche viste precedentemente:

OPERAZIONI RELAZIONALI

SELEZIONE

E’ un’ operazione che genera una nuova relazione costituita solo dalle n-ple/righe che soddisfano

una certa condizione.

Page 35: DataBase Rev3

35

E’ un’operazione definita su una sola relazione ed espressa come:

oppure:

Restituisce tutte e sole le n-uple della relazione che soddisfano una data condizione che può

coinvolgere uno o più attributi con l’utilizzazione dei connettivi logici (and, not, or).

La tabella ottenuta con la selezione potrà essere vuota o coincidere con quella di partenza o

essere formata da un numero di righe inferiore.

Presa in considerazione la relazione ARTICOLI

Selezione di relazione per condizione

condizione_di_selezione relazione

Page 36: DataBase Rev3

36

PROIEZIONE

E’ un’operazione che genera una nuova relazione estraendo dalla tabella iniziale un sottoinsieme

di attributi/colonne.

E’ un’operazione definita su una sola relazione ed espressa come:

oppure:

Restituisce tutte le n-uple della relazione R con solo gli attributi indicati.

La tabella ottenuta con la proiezione avrà tante righe quante quelle di partenza tranne quelle che

dopo la scelta delle colonne risulteranno uguali.

Proiezione di relazione su lista_attributi

lista_attributi relazione

Page 37: DataBase Rev3

37

Presa in considerazione la relazione ARTICOLI

CONGIUNZIONE

E’ un’operazione combinazione di due relazioni aventi uno o più attributi in comune, generando

una nuova relazione che contiene le righe della prima e della seconda tabella, che possono

essere combinate secondo i valori uguali dell’attributo comune.

Page 38: DataBase Rev3

38

E’ un’operazione definita su due relazioni ed espressa come:

oppure:

Restituisce una combinazione di tutte le n-uple delle relazioni su cui è effettuata aventi uno o più

attributi in comune.

La tabella ottenuta con la proiezione ha un numero di righe non prevedibile e di colonne dato

dalla somma degli attributi delle tabelle di partenza, escludendo gli attributi comuni.

congiunzione di relazione1 su attributo e di relazione2 su attributo

relazione1 attributo relazione2 attributo

Page 39: DataBase Rev3

39

INNER JOIN

EQUI-JOIN

Page 40: DataBase Rev3

40

OUTER JOIN

LEFT-JOIN

Page 41: DataBase Rev3

41

RIGHT-JOIN

FULL-JOIN

Page 42: DataBase Rev3

42

SELF-JOIN

SEQUENZE DI OPERAZIONI

E’ ovviamente possibile scrivere espressioni come sequenza di operazioni.

La relazione Impiegato

Nome, Cognome (Titolo=“Dott.” Impiegato)

Page 43: DataBase Rev3

43

restituisce

Nome Cognome

Michael Suyama

Robert King