Latest news

Business Intelligence: cosa è la normalizzazione in DBMS (SQL)?

Vediamo in questo articolo in che cosa consiste nello specifico la normalizzazione dei database e a cosa può essere utile quando utilizziamo di Business Intelligence. La normalizzazione rappresenta una tecnica di progettazione dei database che permette di ridurre la ridondanza dei dati e permette di eliminare le caratteristiche indesiderate come le anomalie di inserimento, aggiornamento e cancellazione.

Le principali regole di normalizzazione dividono le tabelle indicate come più grandi in tabelle più piccole e permettono di collegarle tramite relazioni. Lo scopo della normalizzazione in SQL è  principalmente quello di eliminare i dati ridondanti (ripetitivi) in modo da garantire che gli stessi dati siano archiviati in modo logico e funzionale all’organizzazione.

normalizzazione in dbms sql

6 concetti fondamentali per la Business Intelligence

  1. La progettazione dei database è determinante per permettere il successo dello sviluppo di un sistema di gestione dei database che soddisfi i reali requisiti dei dati di un sistema aziendale.
  2. La normalizzazione nei DBMS rappresenta un processo che aiuta a produrre sistemi di database efficienti dal punto di vista dei costi e con migliori modelli di sicurezza.
  3. Le dipendenze funzionali sono una componente molto importante del processo di normalizzazione dei dati.
  4. Tendenzialmente i database sono in forma normalizzata fino alla terza forma normale dei DBMS.
  5. Una chiave primaria identifica in modo univoco un record in una tabella e di fatto non può essere nulla.
  6. Una chiave esterna permette di collegare le tabelle e fa riferimento a una chiave primaria.
  7. La formazione in ambito Business Intelligence favorisce la comprensione della normalizzazione in BDMS. Conosci la Power BI?

Utilizzare le forme normali dei Database

Partiamo da un elenco delle forme normali in SQL

  • 1NF (Prima Forma Normale)
  • 2NF (Seconda forma normale)
  • 3NF (Terza Forma Normale)
  • BCNF (Forma normale di Boyce-Codd)
  • 4NF (Quarta forma normale)
  • 5NF (Quinta forma normale)
  • 6NF (Sesta Forma Normale)

La teoria della normalizzazione dei dati nel server MySQL è di fatto sempre in fase di sviluppo. Si ritiene che nella gestione delle applicazioni pratiche, la normalizzazione si ottiene al meglio con l’utilizzo della Terza Forma Normale.

normalizzazione in dbms

Normalizzazione del database: qualche esempio

Gli esempi di normalizzazione dei database possono essere facilmente compresi. Vediamo un primo caso studio. Supponiamo che una videoteca gestisca un database di video e film noleggiati. Senza alcuna normalizzazione nel database, tutte le informazioni sono memorizzate in una semplice tabella (vedi sotto). Vediamo quindi la normalizzazione del database attraverso un esempio e con la sua conseguente sua relativa soluzione:

normalizzazione del database

Come è possibile vedere, la colonna FILM NOLEGGATI possiedono più valori.

Ora passiamo alla verifica della prima forma normale.

Regole prima forma nomale – 1NF (First Normal Form)

  • Ogni cella della tabella deve contenere un solo valore.
  • Ogni record deve essere unico.

Riprendendo la tabella precedente, la prima forma normale è esplicitata con l’esempio qui di seguito.

Esempio 1NF:

1nf (first normal form)

Business Intelligence: che cos’è una chiave in SQL?

Prima di procedere con la verifica dell’esempio, cerchiamo di capire alcuni concetti base che ci aiuteranno a comprendere con più facilità i concetti relativi alla normalizzazione.

Una CHIAVE in SQL indica nello specifico un valore utilizzato per identificare in modo univoco i record di una tabella. Una CHIAVE SQL si configura come una singola colonna o più nello specifico una combinazione di più colonne che vengono utilizzate per identificare in modo univoco le righe o quelli che si chiamano gli insiemi di dati della tabella.

La chiave SQL viene quindi utilizzata per identificare le varie informazioni duplicate e permette di stabilire una relazione tra più tabelle del database. Tra i concetti da ricordare: le colonne di una tabella che NON sono utilizzate per identificare in modo univoco un record sono chiamate colonne non chiavi.

Cos’è una chiave primaria?primary-key

Che cosa significa il concetto ci chiave primaria nei DBMS. Una chiave primaria rappresenta un valore di una singola colonna che viene utilizzato per identificare in modo univoco un record del database.

È fondamentale sapere che la chiave primaria possiede i seguenti attributi:

  1. Una chiave primaria non può essere NULL
  2. Il valore di una chiave primaria deve essere unico
  3. I valori della chiave primaria devono essere modificati raramente
  4. Alla chiave primaria deve essere assegnato un valore quando viene inserito un nuovo record.

Cosa rappresenta, invece, una chiave composita?

Una chiave composita indica una chiave primaria composta da più colonne che vengono utilizzate per identificare in modo univoco un record. Nel nostro database utilizzato ad esempio di caso studio abbiamo indicato due persone con lo stesso nome Francesco Ferrari, ma che vivono in luoghi diversi.

chiave composita nel database

Quindi, per poter identificare in modo univoco un record, sono necessari sia il nome completo che l’indirizzo. Questo fattore diventa quindi una chiave composita. Passiamo ora alla seconda forma normale 2NF.

Regole seconda forma nomale – 2NF (Second Normal Form)

  1. Regola 1- Essere in 1NF
  2. Regola 2 – Chiave primaria a colonna singola che non dipenda in maniera funzionale da nessun eventuale sottoinsieme di relazioni di chiavi candidate. Si mostra quindi che non è possibile procedere in modo efficace per rendere il nostro database semplice in forma 2NF se non partizioniamo la tabella di cui sopra.

business intelligence: cosa è la normalizzazione in dbms (sql)? business intelligence: cosa è la normalizzazione in dbms (sql)?

La tabella del caso studio è quindi stata divisa in due tabelle: la tabella 1 e la tabella 2. La tabella 1 contiene informazioni sui membri. La tabella 2 contiene informazioni sui film noleggiati.
Abbiamo introdotto una nuova colonna chiamata ID DI APPARTENENZA che rappresenta la chiave primaria della tabella 1. I record possono in questo modo essere identificati in univoco metodo nella tabella 1 utilizzando l’id di appartenenza.

Database – che cos’è una chiave esterna?

foreign-key

Nella Tabella 2, ID DI APPARTENENZA rappresenta quindi la nostra chiave esterna:

chiave esterna nei dbms

La chiave esterna fa riferimento alla chiave primaria di un’altra tabella principale e aiuta a collegare le tabelle

  • Una chiave esterna può avere un nome diverso da quello della sua chiave primaria
  • Assicura che le righe di una tabella abbiano le righe corrispondenti in un’altra tabella.
  • A differenza della chiave primaria, non devono essere uniche.
  • Le chiavi esterne possono essere nulle anche se le chiavi primarie non possono esserlo

legame tra chiave esterna e chiave primaria

La chiave esterna fa riferimento alla chiave primaria.

I riferimenti a chiavi esterne possono avere solo valori presenti nella chiave primaria.

Potrebbe avere un nome diverso da quello della chiave primaria.

Come utilizzare una chiave esterna?

Supponiamo che venga inserito un record nella tabella B, ad esempio

business intelligence: cosa è la normalizzazione in dbms (sql)?

Si potranno inserire nella chiave esterna solo i valori che esistono nella chiave univoca della tabella padre. Questo aiuta l’integrità referenziale.

Il problema di cui sopra può essere superato dichiarando l’id socio della tabella2 come chiave esterna dell’id socio della tabella1.

Ora, se qualcuno tenta di inserire nel campo membership id un valore che non esiste nella tabella padre, verrà visualizzato un errore.

business intelligence

Cosa sono le dipendenze funzionali transitive?

Una dipendenza funzionale transitiva si ha quando la modifica di una colonna non chiave può causare la modifica di qualsiasi altra colonna non chiave.

BCNF (Boyce-Codd Normal Form)

Anche quando un database è in Terza Forma Normale, si verificano comunque delle anomalie nel caso in cui vi sia più di una Chiave Candidata.

A volte la BCNF viene anche chiamata Forma Normale 3.5

Regole della 4NF (quarta forma normale)

Se nessuna istanza di tabella di database contiene due o più dati indipendenti e multivalenti che descrivono l’entità in questione, allora è in quarta forma normale.

Regole della 5NF (Quinta Forma Normale)

Una tabella è in 5a forma normale solo se è in 4NF e non può essere scomposta in un numero qualsiasi di tabelle più piccole senza perdita di dati.

Hai bisogno di maggiori informazioni?

I nostri esperti IT sapranno certamente aiutarti!