Definizione DBMS Grado di cardinalit e relazione Modelli
Definizione DBMS Grado di cardinalità e relazione Modelli di database Ger, Ret, Rel, Obj DB Relazionale (1: 1) … Accesso Utenti diversi Programmi diversi Chiave Primaria e Secondaria Database Normalizzazione 1ª no megatabelle, 2ª ogni tabella una chiave primaria, 3ª chiave primaria e secondaria Integrità Referenziale Modelli di rappresentazione: E/R e UML Livelli: Concettuale Logico Fisico Estrazione Selezione Proiezione Congiunzione Linguaggi DDL, DML, QL
Parleremo di …. . n n n n n Cos’è una base di dati? A cosa serve una base di dati ? Cosa deve garantire un database? Il DBMS I modelli per il database Il modello gerarchico Il modello reticolare Il modello relazionale I database orientati agli oggetti Il modello relazionale: q concetti fondamentali q requisiti fondamentali q la chiave primaria q la chiave esterna n n n Il modello relazionale: q la selezione q la proiezione q congiunzione q Normalizzazione q 1 FN q 2 FN q 3 FN L’integrità referenziale I linguaggi per le basi di dati: q DDL (Data Definition Language) q DML (Data Manipulation q Query Languages q I 3 livelli
Cos’è una base di dati (database)? E’ un insieme di archivi di dati: dati ü organizzati mediante relazioni (associazioni) tabelle e ü gestiti sulle memorie di massa attraverso appositi software (DBMS)
In altre parole … Un database è un insieme dati, che possono essere usati da utenti diversi con programmi diversi.
Cosa deve garantire un database? Un database deve garantire di ritrovare facilmente le informazioni desiderate. Con: üvelocità, üsicurezza.
Il DBMS (Data Base Management System) Il DBMS è l’insieme dei programmi software in grado di garantire il funzionamento ottimale del database. Le informazioni conservate devono garantire: • no ridondanza • accesso multiplo • integrità
I modelli per il database Nello sviluppo della teoria dei database, dal 1960 in poi, sono emersi tipi diversi di modelli per le basi di dati: ü Gerarchico o ad albero (un padre enne figli), ü Reticolare (più padri ed enne figli), ü Relazionale (concetto matematico-1: 1, 1: n, M: n) ü database orientati agli oggetti (immagini, suoni).
Il modello relazionale ü Rappresenta il database come un insieme di tabelle e di associazioni (relazioni) Le relazioni possono essere di tipo: 1: 1 (biunivoca) ad un elemento di A corrisponde un solo elemento di B (es: Alunni e Diplomi); 1: n (semplice) ad un elemento di A corrispondono più elementi di B (es: Alunni e Assenze); m: n (complessa) a più elementi di A corrispondono più elementi di B (Alunni e Docenti);
Il modello OODB (Object Oriented Data. Base) I database orientati agli oggetti sono stati introdotti per poter inserire: grafici, audio, video.
Il modello relazionale: concetti di Cardinalità e Relazione Il numero delle righe (record o tuple o ennuple) indica il grado di cardinalità (nel nostro esempio 4); Il numero delle colonne (campi o attributi) indica l grado di relazione (nel nostro esempio 4). Riga 1 Riga 2 Riga 3 Riga 4 Colonna 1 Colonna 2 Colonna 3 Colonna 4
Il modello relazionale: concetti di chiave Primaria (Primary Key - PK) e chiave esterna/secondaria (Foreign Key - FK) ü La chiave primaria è l'insieme di uno o più attributi che identificano in modo univoco ogni riga della tabella; ü La chiave esterna è l'insieme di uno o più attributi che ci permettono di collegare tra loro le tabelle. Chiave Primaria Chiave Esterna/secondaria
Il modello relazionale: Selezione, Proiezione, Congiunzione Selezione: crea una nuova entità/tabella costituita solo dalle righe di partenza determinata condizione. che soddisfano a una
Il modello relazionale: Selezione, Proiezione, Congiunzione Proiezione: crea una nuova entità/tabella costituita solo dalle colonne condizione. che soddisfano una determinata
Il modello relazionale: Selezione, Proiezione, Congiunzione: crea una nuova entità/tabella, partendo da due tabelle aventi uno o più attributi in comune, costituita dalle colonne e dalle righe delle due tabelle che soddisfano una determinata condizione.
Il modello relazionale: la normalizzazione Nelle entità/tabelle occorre evitare la ripetizione o la ridondanza dei dati. Per evitare queste anomalie bisogna attenersi ai cosi detti processi di normalizzazione (N. B. non è una religione). La normalizzazione avviene a livelli crescenti a cui corrispondono diverse forme normali.
Il modello relazionale: la normalizzazione 1 FN: l’entità/tabella non deve contenere dati ridondanti (ripetitivi) – evitare le megatabelle; Esempio Classe Sezione Data assenza AAA 1 A 12/12/ AAA NO BBB 1 A 12/12 AAA SI 1 AAA 1 A 14/12 BBB NO 1 AAA 1 A 15/12 AAA NO 3 CCC 2 B 16/12 BBB SI 2 BBB 1 A 12/12 AAA SI Matricola Cognome Nome 1 AAA 2 Nelle colorate sono presenti dati ridondanti Motivo Giustificata
Il modello relazionale: la normalizzazione 2 FN: (1 FN) + i dati dipendono dalla chiave primaria – ogni tabelle creata dovrebbe avere un campo che diventa chiave primaria; Data assenza Motivo Giustifica Nome Classe Sezione 1 AAA 1 A 1 12/12/ AAA NO 2 BBB 1 A 2 12/12 AAA SI 3 CCC 2 B 3 14/12 BBB NO 4 15/12 AAA NO 5 16/12 BBB SI 6 12/12 AAA SI Ch ia v e Pr im ar ia A ss en ze Cognome Chiave Primaria Alunni Matricola Numero Dalla Megatabella abbiamo creato due tabelle
Chiave Esterna Il modello relazionale: la normalizzazione Chiave Primaria Assenze 3 FN: (2 FN) + ogni campo, che può essere aggiunto, può diventare chiave secondaria/esterna – per creare le relazioni) Matricola Cognome Nome Classe Sezione 1 AAA 1 A 2 BBB 1 A Ccc Ch ia ve Giustifica Al Pri un ma ni ria NO 2 B 3 Numero Matricola Data assenza 1 1 12/12/ AAA 2 2 12/12 AAA SI 3 1 14/12 BBB NO 4 1 15/12 AAA NO 5 3 16/12 BBB SI 6 2 12/12 AAA SI Motivo
L’integrità referenziale (referential integrity): per ogni valore non nullo della chiave esterna, deve esistere un valore corrispondente della chiave primaria nella tabella associata. Per ogni matricola (chiave esterna) presente nella tabella delle assenze, non può non esistere la corrispondente matricola (chiave primaria) nella tabelle degli alunni.
I linguaggi (SQL) per le basi di dati ü Definizione degli schemi: Data Definition Language, permette di creare la struttura delle entità/tabelle e le relazioni tra le stesse; ü manipolazione dei dati: Data Manipulation Language, permette di inserire, cancellare e modificare i dati nelle entità/tabelle; ü interrogazione Language). delle informazioni (Query
Modalità di rappresentazione: 1) Diagramma E/R (Entity Relationship) Campi o Attributi Rettangolo = Entità Rombo = Relazione Tra parentesi il tipo di Associazione (1 ad N)
Modalità di rappresentazione: 2) Diagramma UML (Unified Modeling Language) Entità Campi o Attributi Relazione (1 ad N) Kahoot
Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico 1) Livello Concettuale: rappresentare le Entità e le Relazioni con uno dei modelli conosciuti (E/R – UML) ALUNNI 1 ASSENZE N ID_ALUNNI (PK) ID_ALUNNI (FK) COGNOME DATA NOME MOTIVO CLASSE GIUSTIFICATA (S, N) SEZIONE FOTO
Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico 2) Livello Logico: descrivere la natura (Formato e Dimensione) dei Campi Tabella ALUNNI NOME CAMPO FORMATO MATRICOLA NUMERICO COGNOME CARATTERE CLASSE DIMENSIONE CHIAVE NOTE PRIMARIA 15 NUMERICO 1 SEZIONE CARATTERE 3 FOTO Oggetto OLE 5
Formato dei dati ACCESS SQL-ACCESS COMMENTO Testo CHAR(…) Indicare la lunghezza del campo Memo MEMO Per campi molto lunghi (oltre 255) Data DATE/TIME Data e ora (in vari formati) Valuta MONEY o CURRENCY Euro, Dollaro, Sterlina, ecc… Contatore COUNTER Si autoincrementa Si/no BIT: 0 = NO, -1 = SI Vero o falso Byte BYTE Valori numerici piccoli Intero SMALLINT Valori numerici medi Intero lungo INTEGER Numeri naturali Precisione singola SINGLE Valori reali Precisione doppia DOUBLE Oggetto OLE IMAGE - LONGBINARY Per inserire Immagini (oggetti OLE)
Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico 3) Livello Fisico: Creazione (Create) della tabella CREATE TABLE ALUNNI ( MATRICOLA COUNTER NOT NULL, COGNOME CHAR (15), CLASSE INTEGER, SEZIONE CHAR (3), FOTO LONGBINARY, PRIMARY KEY (MATRICOLA) )
Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante i Fornitori, con i seguenti campi: ID_FORNITORE CONTATORE DENOMINAZIONE CARATTERE DA 25 INDIRIZZO CARATTERE DA 20 CAP CARATTERE DA 5 COMUNE CARATTERE DA 20 PROVINCIA CARATTERE DA 2 PARTITA_IVA CARATTERE DA 11 N. B. ID_FORNITORE CHIAVE PRIMARIA con valori Non Nulli
Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante i Clienti, con i seguenti campi: ID_CLIENTE CONTATORE COGNOME CARATTERE DA 15 INDIRIZZO CARATTERE DA 20 CAP CARATTERE DA 5 COMUNE CARATTERE DA 20 PROVINCIA CARATTERE DA 2 CODICE_FISCALE CARATTERE DA 16 N. B. ID_CLIENTE CHIAVE PRIMARIA con valori Non Nulli
Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante la Merce, con i seguenti campi: ID_MERCE CONTATORE DESCRIZIONE CARATTERE 25 QUANTITA’ NUMERICA PREZZO VALUTA DATA ALIQUOTA_IVA N. B. ID_MERCE CHIAVE PRIMARIA con valori Non Nulli
Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante i Libri, con i seguenti campi: ID_LIBRO CONTATORE TITOLO CARATTERE 25 GENERE CARATTERE 25 FOTO COPERTINA PREZZO VALUTA AUTORE CARATTERE 25 ANNO_PUBBLICAZIONE CARATTERE 4 N. B. ID_LIBRO CHIAVE PRIMARIA con valori Non Nulli
Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante la Rubrica, con i seguenti campi: ID_RUBRICA CONTATORE TITOLO* CARATTERE 10 COGNOME CARATTERE 15 TELEFONO CARATTERE 12 N. B. ID_RUBRICA CHIAVE PRIMARIA con valori Non Nulli * SIGNOR, SIGNORA, DOTTORE, ECC…
Fine Fase 2: le clausole (comandi) del linguaggio QL
- Slides: 33