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.
6 concetti fondamentali per la Business Intelligence
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.
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.
Le dipendenze funzionali sono una componente molto importante del processo di normalizzazione dei dati.
Tendenzialmente i database sono in forma normalizzata fino alla terza forma normale dei DBMS.
Una chiave primaria identifica in modo univoco un record in una tabella e di fatto non può essere nulla.
Una chiave esterna permette di collegare le tabelle e fa riferimento a una chiave primaria.
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 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:
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:
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?
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:
Una chiave primaria non può essere NULL
Il valore di una chiave primaria deve essere unico
I valori della chiave primaria devono essere modificati raramente
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.
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)
Regola 1- Essere in 1NF
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.
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?
Nella Tabella 2, ID DI APPARTENENZA rappresenta quindi la nostra chiave esterna:
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
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
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.
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.
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.