• Non ci sono risultati.

Università degli Studi di Salerno

N/A
N/A
Protected

Academic year: 2021

Condividi "Università degli Studi di Salerno"

Copied!
44
0
0

Testo completo

(1)

Università degli Studi di

Salerno

Ing. Fabio Clarizia

Informatica

(2)

Contenuti del corso

n  Introduzione all'Informatica e alla rappresentazione dell'informazione

n  Architettura di un Calcolatore e alle sue principali caratteristiche tecniche e tecnologiche n  Il concetto di Software ed introduzione al Sistema Operativo

n  Elaborazione testi e Office Automation

n  Reti di Calcolatori e principali strumenti di comunicazione in rete n  Basi di dati e principi applicativi (cenni)

(3)

Basi di dati e principi applicativi

(4)

Basi di dati e principi applicativi

n 

Basi di dati: concetti generali

(5)

q  La parola inglese Database viene in genere tradotta con la locuzione italiana Base di Dati. Ma con essa cosa si intende?

q  Database: un archivio contenente dati eterogenei, organizzati dall’elaboratore grazie ad applicativi denominati DataBase Management System (DBMS)

q  Per archivio si intende una memoria di lavoro per gestire una grande quantità di dati es.: la rubrica del telefono, gli archivi delle biblioteche, le cartelle

cliniche, ecc.

(6)

Basi di dati: concetti generali - DBMS

q  Il DataBase Management System è un applicativo che permette la gestione di un database. I principali servizi che offre un DBMS sono:

§  memorizzazione dei dati

§  organizzazione dei dati

§  gestione dei dati

§  ricerca dei dati

§  elaborazione dei dati

q  Altre funzioni di un DBMS sono:

§  Validazione dei dati controllando che essi siano corretti e che rispondano alle regole

d’inserimento fissate;

§  Normalizzazione del database verificando che non ci siano inutili duplicazioni di dati e

permettendo di eliminarle senza perdita sostanziale di informazione;

§  Indicizzazione dei dati organizzandoli e ordinandoli secondo una struttura prestabilita;

§  Verifica della coerenza dei dati in modo che alla modifica di un singolo dato vengano aggiornati

(7)

Basi di dati: concetti generali

q  Un DBMS può ricevere comandi:

§  Direttamente dall’utente in modo interattivo, tramite particolari comandi appartenenti ai linguaggi ‘accettati’ da quel particolare DBMS.

§  Tramite un programma scritto in un linguaggio algoritmico tradizionale che ingloba alcuni comandi appartenenti ai linguaggi ‘accettati’ dal DBMS.

§  Questi linguaggi possono essere raggruppati in base alle loro funzioni:

1.  DDL (Data Description Language) tramite i quali si definiscono le strutture

del database. Si dice cioè come dovrà essere la base di dati.

2.  DML (Data Manipulation Language) che servono per impartire comandi di

elaborazione dei dati.

3.  QL (Query Language) o linguaggi di interrogazione che presentano un natura

(8)

Basi di dati: concetti generali - Componenti funzionali di un DBMS

q  Tabella di descrizione database: in cui è descritto il modello e le caratteristiche del

DB.

q  Tabella delle autorizzazioni: in cui sono presenti le informazioni dei vari utenti

riguardo ai permessi di accesso ai dati.

q  Tabella per accesso concorrente: permette di gestire il traffico di più richieste operati

contemporaneamente sui medesimi dati.

q  Database Manager: ha il ruolo di ricevere i comandi espressi a livello concettuale (cioè

operanti sul modello astratto dei dati) e tradurli in comandi a livello fisico

trasmettendoli al file system del SO non prima di aver fatto gli opportuni controlli sulla

tabella di autorizzazione e sulla tabella di accesso concorrente.

q  Language processor: i comandi vengono ricevuti da questa unità, che ha il compito di

metterli in relazione con le specifiche di definizione del modello (contenute nella tabella di descrizione del database) e trasmetterli al DB Manager.

(9)

Basi di dati: concetti generali - tipologie di Database

q  Esistono diverse tipologie di Database:

§  Piano o non Relazionale: in cui i dati sono contenuti in un’unica tabella

§  Relazionale: la cui struttura è più complessa perché i dati sono raccolti in più

tabelle collegate tra loro

§  Gerachico: organizzato secondo uno schema ad albero, costituito da tanti nodi

collegati tra loro in maniera gerarchica, ciascuno dei quali contiene una informazione

§  Reticolare: basato sui grafi, escludendo qualsiasi tipo di gerarchia che colleghi

(10)

Basi di dati: concetti generali – Database Relazionale

q  Nel Database Relazionale, i dati sono organizzati in più tabelle, che possono essere correlate, ed è possibile estrarre informazioni da più tabelle

contemporaneamente.

q  Gli elementi costitutivi di un Database Relazionale, partendo dal più piccolo, sono:

§  I Campi

§  I Record

§  Le Tabelle

(11)

Basi di dati: concetti generali – Database Relazionale

q  Un campo è l’unità base di un DB.

q  E’ uno spazio nel DB che contiene un’unità di informazione ed è identificato da un nome. Esempi:

I campi

q  NB: quando si crea un Database è necessario includere un campo per ogni categoria di dati cui si è interessati.

(12)

Basi di dati: concetti generali – Database Relazionale

q  Un record è costituito da un insieme di campi che riportano informazioni riferite ad un singolo soggetto.

I records

q  Esempio:

§  in un Database che raccoglie i dati dei pazienti di un medico, tutte le informazioni relative ad un singolo paziente rappresentano un record.

Salerno

Mauro

Rossi

Città

N ome

Cog nome

Nome dei Campi

(13)

Basi di dati: concetti generali – Database Relazionale

q  Una tabella è un elenco che visualizza più record contemporaneamente.

q  Esempio: l’insieme delle informazioni relative a tutti i pazienti di un medico:

Le tabelle

q  Ogni riga di una tabella del DB è costituita da un record, ognuno dei quali è suddiviso in campi, che costituiscono le colonne.

TABELLA

record record

Cognome

Nome

Città

Rossi

Mauro Salerno

Verdi

Antonio Napoli

q  Un file di Database contiene una o più tabelle;

q  Nel caso dell’applicativo Microsoft Access, i file vengono salvati con l’estensione MDB (Microsoft Database)

(14)

Progettare una base dati: il modello E-R [1]

q  Un Database, come ogni archivio, va progettato. Le fasi di progettazione sono tre:

1.  Progetto CONCETTUALE;

2.  Progetto LOGICO;

3.  Progetto FISICO.

(15)

Progettare una base dati: il modello E-R [2]

q  Serve a tradurre la descrizione informale della realtà, descritta nei requisiti del DB tipicamente sotto forma di documenti e moduli di vario genere, in uno

schema formale e completo ma indipendente dai criteri di rappresentazione del DBMS usato: il prodotto si chiama schema concettuale.

IL PROGETTO CONCETTUALE

q  E’ questa la prima fase di costruzione di un DB, il cui scopo è quello di individuare la struttura dei

DATI che devono essere “archiviati” e le RELAZIONI tra loro esistenti.

q  Tale fase prevede la costruzione di Diagrammi Entità Relazioni (ERD), costituiti da 4 elementi

principali:

§  ENTITA’: è un qualsiasi oggetto concettuale che caratterizza l’applicazione in questione e che può

essere individuato e distinto dagli altri;

§  ATTRIBUTI: insieme di valori che caratterizzano un’entità;

§  ATTRIBUTI CHIAVE: insieme degli attributi sufficienti ad identificare univocamente un’entità;

(16)

Progettare una base dati: il modello E-R [3]

q  Un’azienda che vende all’ingrosso necessita di un archivio per gestire gli ordini fatti da tutti i negozi che fornisce:

(17)

Progettare una base dati: il modello E-R [4]

Il progetto logico

q  Consiste nella traduzione dello schema concettuale in termini di un determinato modello logico (ad esempio il modello relazionale) di dati usato dal DBMS che si intende utilizzare. Il risultato è lo schema logico.

q  Include anche l’ottimizzazione della rappresentazione in funzione delle operazioni eseguite (es. normalizzazione)

q  Lo schema ER precedentemente costruito viene trasformato nello schema logico

relazionale, ovvero in tabelle che successivamente saranno implementate. In

particolare:

§  ad ogni ENTITA’ corrisponde una TABELLA;

§  i CAMPI di ogni tabella sono gli ATTRIBUTI dell’Entità cui fa riferimento la tabella stessa.

(18)

Progettare una base dati: il modello E-R [5]

Dal progetto concettuale al progetto logico

q  Riprendendo l’esempio precedente, lo schema logico relazionale sarà il seguente:

Tabella NEGOZIO

Tabella ORDINE

(19)

Progettare una base dati: il modello E-R [6]

Il progetto fisico

q L’ultima fase della progettazione di un DB, prevede la sua implementazione, ovvero la creazione vera e propria del Database fatta al computer.

q Prima di fare ciò, per ogni campo di ciascuna tabella occorre definirne il TIPO a seconda dell’informazione che contiene, potendo scegliere tra diverse opzioni quali per esempio:

§  Testo; §  Numero; §  Data; §  Valuta; §  Logico; §  Contatore.

(20)

Progettare una base dati: il modello E-R [7]

A cosa servono le tabelle?

q  Le Tabelle sono l’unità base di un Database.

q Rappresentano la struttura fisica tipica all’interno della quale vengono memorizzati i dati;

§  un DB è in grado di gestire contemporaneamente più tabelle.

q Loro scopo è quello di raggruppare record omogenei, ovvero raccolgono un insieme di dati relativi ad un argomento specifico (ENTITA’).

§  Esempio: nell’archivio per la gestione dei libri di una biblioteca, tutti i dati di

(21)

Progettare una base dati: il modello E-R [8]

Struttura delle tabelle

q  Una tabella è costituita da:

§  Un insieme di campi, cioè spazi nei quali vengono inseriti i dati, nonché le informazioni relative all’argomento della tabella

es. nella tabella “Libri” titolo del libro, autore, anno di pubblicazione, …).

q  Ogni RIGA prende il nome di record e contiene tutte le informazioni relative ad un’entità dell’argomento (es. titolo, autore e anno di un singolo libro).

(22)

Progettare una base dati: il modello E-R [9]

Creazione di una tabella

q  Una tabella è il risultato della trasformazione del diagramma ER. La prima fase della sua creazione consiste nel determinare:

§  Lo scopo della tabella e quindi l’argomento cui fa riferimento ciò che nel diagramma ER rappresenta l’ENTITA’;

§  I campi della tabella e quindi il tipo di informazioni che si intendono

raccogliere relative all’argomento ciò che nel diagramma ER rappresentano gli ATTRIBUTI.

Regole per la creazione di tabelle

q  Non ripetere le stesse informazioni in più tabelle, quindi evitare ridondanze;

q  Evitare di creare voci con lo stesso nome che contengono informazioni diverse;

q  Ogni tabella deve contenere informazioni omogenee in modo da agevolare l’archiviazione e la ricerca delle informazioni.

(23)

Progettare una base dati: il modello E-R [10]

Esempio di creazione di una tabella

q  Immaginiamo di voler archiviare i libri conservati in una biblioteca, per poter tenere sotto controllo la loro gestione.

q  È necessario raccogliere in una tabella importanti informazioni relative ad ogni singolo libro

Tabella Libri:

ARGOMENTO = Libri;

(24)

Progettare una base dati: il modello E-R [11]

Chiavi primarie

q  L’ultimo elemento da considerare nella creazione di una tabella è l’inserimento di un campo chiave o chiave primaria, che permette di identificare in modo

inequivocabile ogni singolo record. In genere è numerato in modo progressivo.

q  Pertanto il campo chiave non può mai:

§  Ammettere duplicati;

(25)

Progettare una base dati: il modello E-R [12]

q  Nell’esempio, l’ “ID Libro=1” identifica solo ed esclusivamente il libro “Il

cielo”, per tanto il secondo libro non può essere identificato con lo stesso ID (1), bensì con l’ ID=2, che identifica solo il secondo libro, e così via.

q  Ricorda:

§  Un campo chiave può essere dato anche da un gruppo di campi

§  I campi candidati ad essere campi primari di una tabella sono detti

(26)

Progettare una base dati: il modello E-R [13]

Gli indici

q  La chiave primaria di una tabella è un campo indicizzato, perché permette di ordinare i dati secondo un ordine logico e di trovare rapidamente quelli che cerchiamo.

q  In una tabella, gli indici permettono quindi di:

§  ORDINARE I RECORD secondo un ordine logico, basato cioè sul contenuto

(alfabetico, numerico, cronologico) e non sull’ordine di inserimento;

§  TROVARE I RECORD che ci interessano più velocemente, evitando di doverli

scorrere tutti; in altre parole consentono di raggiungere direttamente il record che vogliamo.

(27)

Progettare una base dati: il modello E-R [14]

q  In una tabella l’INDICE può essere anche un campo diverso da quello chiave.

q  Tra le proprietà attribuibili a ogni campo c’è infatti anche “Indicizzato”.

§  Esempio:

q  Ciò significa che i record della tabella saranno ordinati secondo il contenuto di quel campo e la fase di ricerca delle informazioni sarà agevolata proprio

(28)

Progettare una base dati: il modello E-R [15]

Le relazioni tra tabelle

q  Sappiamo che per organizzare al meglio un archivio, bisogna creare tante tabelle quante sono le tipologie di dati da raccogliere (es. tabella ‘libri’ e tabella ‘autori’):

q  Tra le tabelle che costituiscono un archivio è possibile creare delle relazioni, in modo da poter estrarre informazioni da più tabelle contemporaneamente, e

quindi unire tali informazioni.

(29)

Progettare una base dati: il modello E-R [16]

Come stabilire le relazioni

q  Due tabelle per essere correlate devono avere un campo in comune.

q  Una relazione tra due tabelle si basa sempre sull’uso di una:

§  CHIAVE PRIMARIA, che nella tabella A (detta tabella primaria) identifica in modo univoco ogni singolo record e perciò non ammette duplicati;

§  CHIAVE ESTERNA, che permette di collegare la tabella B(detta tabella

secondaria) con la tabella A, riportando gli stessi dati della chiave primaria di quest’ultima, ammettendo duplicati.

q  Una Relazione è quindi una corrispondenza tra il campo chiave primaria di una tabella x e il campo chiave esterna di una tabella y.

(30)

Progettare una base dati: il modello E-R [17]

Esempio: creare una relazione

q  Immaginiamo sempre di voler gestire i dati relativi ai libri di una biblioteca e agli autori dei volumi:

q  Tabella Autori

q  Tabella Libri

q  ID Autore

Chiave primaria nella tabella AUTORI e non ammette duplicati perché identifica in maniera univoca ogni singolo autore;

(31)

Progettare una base dati: il modello E-R [18]

Esempio: creare una relazione

q  Per cui, inserendo i dati, potremmo avere:

q  Nell’esempio, i due libri sono stati scritti dallo stesso autore.

q  Grazie alla relazione tra le due tabelle resa dalla CHIAVE ESTERNA “ID Autore”,

per ogni libro è possibile avere delle informazioni anche sull’autore, estrapolate dalla tabella primaria.

(32)

Progettare una base dati: Relazione tra tabelle

Quanti tipi di relazioni esistono?

q  La Relazione che intercorre tra due tabelle di un DB può essere di tre tipi:

§  RELAZIONE UNO A UNO;

§  RELAZIONE UNO A MOLTI;

§  RELAZIONE MOLTI A MOLTI.

q  N.B. Definire la cardinalità significa esprimere numericamente il tipo di relazione che c’è tra due tabelle (es. 1:1): il numero minimo e massimo di istanze di

relazione per ogni istanza di un entità cui quella relazione si riferisce

IMPIEGATO (1,5) ASSEGNA (0,50) INCARICO

Es. ogni impiegato si

possono assegnare da 1 a 5 incarichi ed ogni incarico può essere assegnato al più

(33)

Progettare una base dati: Relazione tra tabelle 1:1

Relazione uno a uno

q  Un record di una tabella può essere correlato ad un solo record di una seconda

tabella. Quindi la chiave esterna NON AMMETTE DUPLICATI.

q  Nell’esempio, la relazione è del tipo 1:1 perché una determinata tesi può

(34)

Progettare una base dati: Relazione tra tabelle 1:X

Relazione uno a molti

q  Un record univoco di una tabella può essere correlato a più record di un’altra

tabella, ma non viceversa.

q  Nell’esempio, la relazione è del tipo 1:X perché un docente può essere il

(35)

Progettare una base dati: Relazione tra tabelle Y:X

Relazione molti a molti

q  Più record di una tabella possono essere correlati a più record di un’altra tabella.

q  Questo tipo di relazione comporta necessariamente l’introduzione di una terza tabella, detta tabella di congiunzione, in cui si riportano le chiavi primarie di entrambe le tabelle, che qui diventano chiavi esterne e quindi ammettono

duplicati.

q  La TABELLA DI CONGIUNZIONE permette di relazionare due tabelle aventi più record collegati tra loro, attraverso l’impostazione di una relazione 1:X tra ciascuna tabella e la tabella di congiunzione stessa.

(36)

Progettare una base dati: Relazione tra tabelle Y:X

q  Immaginiamo che il nostro archivio sia formato dalla tabella “esami” e la tabella “studenti”:

q  la relazione è del tipo Molti:Molti perché

uno stesso esame può essere sostenuto da più studenti e viceversa uno stesso

studente può sostenere più esami.

q  è necessaria la tabella di congiunzione,

con la quale la tabella “esami” e la

tabella “studenti” hanno una relazione 1: Molti, e grazie a questa tabella è possibile estrapolare informazioni da entrambe le tabelle principali: avere informazioni su tutti gli studenti che hanno sostenuto un determinato esame oppure sugli esami che un determinato studente ha sostenuto.

(37)

Progettare una base dati: Normalizzazione

q  La NORMALIZZAZIONE è una tecnica di verifica dei risultati della progettazione che porta all’organizzazione dei dati omogenei in tabelle correlate con legami

efficienti, eliminando ridondanze, inconsistenze e anomalie in aggiornamento.

q  La Normalizzazione avviene usando tre FORME NORMALI (forme di verifica):

§  Prima Forma Normale;

§  Seconda Forma Normale;

(38)

Progettare una base dati: Normalizzazione

Prima forma normale

q  Condizione: in una tabella, gli elementi delle colonne devono essere ad un sol

valore, ovvero ogni attributo non può avere più di un valore per un singolo record.

Esempio

Articolo Negozi acquirenti

1 A B C D NO

q  In questo caso l’attributo “Negozi acquirenti” riporta quattro valori per un solo record; non essendo ciò possibile occorre Normalizzare!!

q  NB: L’insieme di dati omogenei raggruppati tra loro si chiama ARRAY (A B C D) e

(39)

Progettare una base dati: Normalizzazione

q  Normalizzazione: nel caso di presenza di array, normalizzare la tabella significa

suddividere le informazioni in tante righe quanti sono i valori dell’array.

q  In questo caso i record diventano quattro e non più uno. Esempio:

(40)

Progettare una base dati: Normalizzazione

Seconda forma normale

q  Condizione: se in una tabella la chiave primaria è costituita da più di un

attributo (più campi), ogni campo (o colonna) non appartenente alla chiave deve dipendere dall’insieme delle chiavi, e non solo da una di queste.

Esempio

q  In questo esempio, in cui le chiavi primarie sono “Articolo” e “Negozio acquirente”, l’attributo “Quantità” dipende da entrambe (una certa quantità di un articolo è

acquistata da un determinato negozio);

(41)

Progettare una base dati: Normalizzazione

q  Normalizzazione: ‘spezzare la tabella’ e produrre tante tabelle che soddisfino la

condizione che i campi non appartenenti alla chiave dipendano da essa.

Esempio:

(42)

Progettare una base dati: Normalizzazione

Terza forma normale

q  Condizione: in una tabella, la dipendenza fra le colonne deve essere basata solo sulla

chiave primaria, ovvero non ci deve essere nessun legame di dipendenza fra attributi che non sono chiavi primarie (dipendenze transitive).

Esempio

q  Nell’esempio, gli attributi “Data di nascita” e “Nazionalità” non dipendono dalla chiave “Codice Album” ma dall’attributo “Cantante” che non è chiave primaria.

Codice

Album Titolo Cantante

Data di

nascita Nazionalità 1 Ricordami Baglioni 12-03-1953 italiana

(43)

Progettare una base dati: Normalizzazione

q  Normalizzazione: produrre tante tabelle che soddisfino la condizione, ovvero

‘spezzare’ la tabella che non soddisfa la condizione e spostare le dipendenze transitive in una tabella collegata alla prima tramite una chiave esterna.

Esempio:

+

CHIAVE

(44)

Progettare una base dati: l’integrità referenziale

q  Definite le relazioni, è possibile impostare l’Integrità Referenziale:

q  Date due tabelle correlate A(primaria) e B (secondaria), L’IR definisce alcune regole principali:

§  Non è possibile immettere un valore nel campo chiave esterna della tabella correlata B che non esista nella chiave primaria della tabella primaria A;

§  Non è possibile eliminare un record da una tabella primaria A se esistono record corrispondenti in una tabella correlata B;

§  Non è possibile modificare un valore chiave primaria nella tabella primaria A se quel record dispone di record correlati (nella tabella B).

q  L’Integrità referenziale serve per assicurare che le relazioni tra i record delle tabelle correlate siano valide.

Riferimenti

Documenti correlati

In 2016 the European Commission published its Road Transport Strategy for Europe, and the Florence Road Forum brought together the most relevant stakeholders and experts to

Branch, Ann P., 2002, The Impact of the European Union on the Trade Union Movement, in Richard Balme and Didier Chabanet eds., L’action collective en Europe, Paris, Presses de

Given the central place of the distinction between procedural and substantive in the development of the English courts’ jurisprudence on legitimate expectations, it

un linguaggio di interrogazione di banche dati finalizzato al recupero di documenti  un sistema che gestisce basi di dati la fine di recuperare informazioni giudicate rilevanti.

La carta semilogaritmica o grafico semilogaritmico indica un grafico con un asse con scala lineare e un asse con scala. logaritmica (tipicamente in base 10). Usi dei

● Si cerca nello slot prescelto, e poi negli slot “alternativi” fino a quando non si trova la chiave oppure

[3] Vehlow J., Bergfeldt B., Hunsinger H., Jay K., Mark F., Tange L., Drohmann D., and Fisch H., Recycling of Bromine from Plastics Containing Brominated Flame Retardants in

Un blocco con nome deve iniziare con una dichiarazione di creazione poiché, all’atto dell’invio al database, questo deve essere creato, o aggiornato se già esiste, come un qualsiasi