Cos'è un Database -...

19
1 Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire la gestione dei dati stessi in termini di inserimento, aggiornamento, ricerca e cancellazione delle informazioni. Esempi di utilizzo del database... - Anagrafe degli studenti di Roma3 con curriculum - Archivio di una biblioteca con gestione dei prestiti - CRM - La discoteca di casa

Transcript of Cos'è un Database -...

Page 1: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

1

Cos'è un Database

  I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale.

  Sono strutturati in modo tale da consentire la gestione dei dati stessi in termini di inserimento, aggiornamento, ricerca e cancellazione delle informazioni.

  Esempi di utilizzo del database... -  Anagrafe degli studenti di Roma3 con curriculum -  Archivio di una biblioteca con gestione dei prestiti -  CRM -  La discoteca di casa

Page 2: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

2

DBMS (Data Base Management System)

  È il software per la creazione e la manipolazione di un database.

  DBMS personali e professionali: Access, MySql, Oracle, DB2.

  Definisce gli utenti e gli amministratori di un database

  Fornisce meccanismi di sicurezza, protezione e controllo dell’integrità dei dati

Page 3: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

3

Progettare e realizzare un Database

Page 4: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

4

Utenti e amministratori del DB

  DBA, Database Administrator: gestisce gli accessi, predispone tabelle, indici, viste, ottimizza lo spazio disco, effettua i backup e i restore.

  Programmatori: scrivono applicazioni che utilizzano i dati del DB

  Utenti finali del DB : utilizzano le applicazioni che permettono di interrogare il DB

  Sistemisti : verificano il corretto funzionamento dei sistemi hw e sw su cui gira il DBMS

Page 5: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

5

Database Relazionali

  Ideati dalla IBM negli anni ’70: da allora sono il modello più diffuso.   Si basa su alcuni concetti fondamentali tipicamente matematici (Algebra relazionale)   Concetto di dato, informazione, tabella e relazione.  Modelli alternativi: gerarchico, reticolare, ad oggetti

Page 6: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

6

L’organizzazione in Tabelle   La tabella è la struttura dati fondamentale di un

database relazionale.   Con le tabelle si rappresentano le entità e le

relazioni dello schema concettuale.   E’ composta da record (righe o tuple) e da campi

(colonne o attributi): - Ogni record rappresenta una istanza (o occorrenza o tupla) dell’entità/relazione

- Ogni campo rappresenta un attributo dell’entità/relazione

  Per ogni campo viene individuato un suo dominio (tipo di dati): alfanumerico, numerico, data, booleano, etc.

Page 7: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

7

Campi chiave e relazioni   L’insieme dei campi i cui valori identificano

univocamente un record all’interno di una tabella è detto Chiave Primaria. Quando la chiave primaria è composta da un solo campo, si parla di campo chiave.

  Esempi di campo chiave: matricola, codice fiscale, etc.

  Quando non è possibile trovare un campo chiave tra gli attributi di una entità, si definisce un campo di tipo ID numerico che si auto-incrementa (contatore)

Page 8: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

8

Vincoli di integrità

  L’integrità referenziale (referential integrity) è 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 di inserimento, cancellazione o modifica di dati collegati tra loro.

Page 9: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

9

Gli indici   Un indice è una struttura dati realizzata per

migliorare i tempi di ricerca dei dati.   I campi di una tabella per cui è necessario

effettuare ricerche o operazioni di join possono essere “indicizzati”.

  In assenza di indice, la ricerca del valore di un campo avviene in maniera sequenziale sui record della tabella.

  Livello fisico: gli indici sono strutture dati fisiche gestite dal db, dipendono dal DBMS utilizzato .

  Indici vengono generati automaticamente dal db per i campi definiti come chiave.

Page 10: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

10

Esempio di tabelle correlate Campo ID/Chiave

Relazione 1:n

Campo ID/Chiave

Campo Testo

Campo Booleano

Campo Testo

Chiave Esterna

Campo Data

Campo Numerico

Page 11: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

11

La normalizzazione delle relazioni

  Nella definizione della struttura di una relazione occorre evitare la ripetizione e la ridondanza dei dati per non creare problemi nella fase di manipolazione della tabella con operazioni di modifica o cancellazione di righe.

  La normalizzazione è un processo con il quale le tabelle vengono trasformate in modo tale che ogni tabella corrisponda a un singolo oggetto della realtà rappresentata con il modello di database: le regole della normalizzazione sono definite per evitare l’inconsistenza dei dati e le anomalie nelle operazioni di aggiornamento.

Page 12: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

Il linguaggio SQL

• SQL (Structured Query Language) è il linguaggio che permette di effettuare le operazioni per estrarre e manipolare i dati da un database.

• E’ lo standard tra i sistemi relazionali : viene usato in tutti i prodotti DBMS come set di comandi per l’utente della base di dati

Page 13: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

13

Tipi di istruzioni SQL

  DDL: permette di definire la struttura delle relazioni del database

  DML: permette di modificare i dati contenuti nel db, con le operazioni di inserimento, variazione e cancellazione

  DCL: permette di gestire il controllo degli accessi e i permessi per gli utenti

  Query Language: permette di porre interrogazioni al db

Page 14: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

14

Istruzioni di DDL

Il Data Definition Language (DDL) permette di creare e cancellare intere tabelle, di definire degli indici, specificare vincoli e integrità referenziali

 Esempi:  CREATE TABLE : crea una nuova tabella nel DB  ALTER TABLE : modifica la struttura di una tabella  DROP TABLE : cancella una tabella dal DB  CREATE INDEX : crea un indice su una certa tabella  DROP INDEX : elimina l’indice specificato

Page 15: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

15

DML : manipolazione di tabelle

Inserimento: INSERT INTO Tabella VALUES (value1, value2,....) Cancellazione: DELETE FROM Tabella

WHERE column_name = some_value Aggiornamento: UPDATE Tabella

SET column_name = new_value WHERE column_name = some_value

Page 16: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

16

Query language : L’istruzione SELECT

SELECT [DISTINCT] (*|Espr [[AS] Nuovo Nome ] {, Espr [[AS] Nuovo Nome]})

FROM Tabella [Ide] {, Tabella[Ide]} [WHERE Condizione] [GROUP By Attributo {, Attributo}] [HAVING Condizione]

Page 17: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

17

Il join di tabelle

  La relazione tra tabelle si realizza sfruttando le chiavi esterne (foreign key) nelle operazioni di join (collegamento tra tabelle).

  Il join combina più tabelle in una tabella unica con tutte le possibili combinazioni di valori (in matematica viene chiamato Prodotto Cartesiano) e su questa filtra le righe per produrre i risultati desiderati

Page 18: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

Il Join naturale

Page 19: Cos'è un Database - host.uniroma3.ithost.uniroma3.it/laboratori/infoeco/idoneita/Materiali/database.pdf · 2 DBMS (Data Base Management System) È il software per la creazione e

SELECT s.class, s.name, s.id, m.type ; FROM student s, music m ; WHERE s.id=m.id ORDER BY class, name

Result

Es. Lista di studenti e degli strumenti che stanno studiando