Passa al contenuto principale

Comprensione della cardinalità: svelare il significato delle relazioni tra i dati

La cardinalità può aiutarti a comprendere meglio i tuoi dati. Scopri di più sulla cardinalità e su come viene utilizzata qui.

I database sono essenziali per il mondo moderno. Ogni azienda di ogni settore può trarre vantaggio dalle risorse informatiche e tali risorse sono spesso basate su database. Se gestisci qualsiasi tipo di transazione, devi creare un libro mastro per tenerti al passo, che rientra nel mondo dei database.

Se vuoi comprendere gli strumenti che gestiscono il monitoraggio dei dati (per non parlare dei dati analitici che possono presentarsi), questo percorso inizia con una comprensione della cardinalità del database.

Che cos’è la cardinalità nei database?

Per definire la cardinalità, è importante capire che i database sono davvero fogli di calcolo al centro di tutto. Naturalmente, possono essere enormi in termini di punti dati e complessità, ma sono solo grandi libri mastri di dati.

Detto questo, la cardinalità è un modo per confrontare il numero di righe nel foglio con il numero di colonne. In particolare per quanto riguarda i database, la cardinalità è solitamente una misura di quanti valori distinti si hanno in una colonna rispetto al numero di righe.

Fermiamoci e notiamo che questo è diverso dalla cardinalità nella scienza dei dati. La definizione scientifica spesso coinvolge infiniti insiemi, colonne numerabili infinite, insiemi non numerabili e altri concetti superiori che spesso includono "insiemi infiniti" nella descrizione.

Ciò potrebbe sembrare stranamente specifico e poco utile, ma se tieni presente il concetto di confronto di righe e colonne, ulteriori spiegazioni sulla cardinalità e i suoi usi chiariranno tutto.

il primo elemento di chiarezza viene dall'idea di cardinalità alta e bassa. Se una tabella presenta un numero elevato di elementi relativi al numero di righe nella colonna del database, si tratta di una cardinalità elevata. Puoi anche avere una bassa cardinalità, che suggerisce che molti valori si stanno ripetendo.

Il confronto tra cardinalità alta e bassa può aiutare a calcolare la varianza e a pensare alla qualità di una colonna a colpo d'occhio. Consideriamo un semplice esempio.

Mettiamo che stai facendo il libro paga. La tabella dei dati avrà un identificativo unico per ciascun dipendente (di solito un nome o un codice fiscale). Molto probabilmente vedrai le ore lavorate, la retribuzione e il totale dovuto. L’elenco dei nomi avrà una cardinalità elevata, mentre la tariffa oraria spesso avrà una cardinalità bassa. Questo ti dà un’idea di che tipo di dati sono presenti in ogni colonna.

Speriamo che questo esempio ti dia un’idea migliore di cos’è la cardinalità.

Perché la cardinalità è vantaggiosa in un database?

In sostanza, il valore della cardinalità in un database non è davvero per la persona che visualizza i dati. Il valore si trova invece nelle ricerche e nelle query.

Se desideri trovare un punto dati specifico nel database, è necessario che il sistema informatico lo esegua per te, ma in un database personalizzato, qualcuno deve creare quella funzione di ricerca. La cardinalità viene utilizzata dal computer per capire se esistono o meno più risposte possibili (o quanto sono probabili). Ciò può aiutare a creare risultati e gerarchie di ricerca.

Questo significa che cardinalità alta e bassa sono concetti utilizzati dagli sviluppatori per progettare sistemi di query efficienti.

Puoi anche pensare a come questo potrebbe aiutare con l’analisi dei dati. I sistemi informatici devono essere in grado di distinguere i valori che potrebbero avere ingressi identici e la cardinalità può aiutare uno sviluppatore a codificare tali ridondanze.

Tipi di cardinalità

Finora, abbiamo parlato di cardinalità alta e bassa nei database, ma il concetto implica anche un livello più profondo. È possibile avere cardinalità nella modellazione dei dati.

Ora, questo va di pari passo con la cardinalità di cui abbiamo già parlato. Confronta sempre i valori unici nelle colonne con il numero di righe.

Ma, quando si considera la modellazione dei dati, ci sono alcune altre classificazioni di cardinalità che diventano importanti. In genere sono suddivisi in cardinali uno-a-uno, uno-a-molti e molti-a-molti.

Uno a uno

La corrispondenza uno-a-uno è spesso meno comune nei database moderni, ma si presenta ed è importante capire come funzionano.

A livello teorico, il nome dice tutto. Per qualsiasi elemento in una colonna, c'è esattamente un elemento correlato in un'altra colonna. Tale relazione è bidirezionale.

Ciò non significa che le colonne debbano avere le stesse dimensioni. Una colonna può mantenere la corrispondenza uno a uno anche se alcuni elementi non hanno una coppia. Osservando il numero di elementi in ogni colonna, questa relazione non verrà rivelata.

Prendi in considerazione il seguente esempio.

Supponiamo che una grande azienda abbia migliaia di dipendenti e che ogni dipendente abbia bisogno di un’email aziendale. Se dovessi tenerne traccia in un database, avresti bisogno di un nome unico per ogni dipendente (spesso utilizzando un numero ID) e del suo indirizzo email unico nel libro mastro. Ogni nome è correlato a un’email e viceversa.

Da uno a molti

Ora che conosci il significato della cardinalità e hai un’idea di cosa sia una relazione uno-a-uno, il concetto di uno-a-molti sarà facile da comprendere.

In questo caso, disponi di una colonna con voci uniche (colonna “A”). Ogni voce può essere correlata a più voci in un’altra colonna (colonna “B”). Pertanto, qualsiasi elemento nella colonna A può essere collegato a più elementi in B, ma ogni elemento in B sarà collegato a un solo elemento in A.

Un esempio facile da capire è l'abbinamento dei rappresentanti di vendita ai loro clienti. Ogni rappresentante può avere decine di clienti, ma per mantenere stabili le relazioni, ogni cliente ha un solo rappresentante di vendita. È una relazione uno-a-molti.

Da molti a molti

Infine, possiamo coprire il rapporto molti-a-molti. Qualsiasi elemento nella colonna A può avere più coppie nella colonna B; anche il contrario è vero.

Possiamo utilizzare l'esempio del rappresentante di vendita per pensare alle relazioni molti-a-molti.

E se l’azienda fosse un produttore di microchip con clienti enormi e multimiliardari? Molto probabilmente questa azienda ha team di vendita ben definiti e ogni team potrebbe gestire alcuni clienti. In questo caso, qualsiasi cliente ha più rappresentanti individuali e ciascun agente potrebbe lavorare su un paio di contratti diversi.

Questa è l’idea di una relazione molti-a-molti.

Esempi di cardinalità

Nelle sezioni precedenti, hai appreso i diversi tipi di aritmetica cardinale e le relazioni con alcuni esempi semplificati. Ora possiamo esaminare alcune applicazioni reali della cardinalità per vedere esattamente come può funzionare in un database.

Uber

Pensiamo alla progettazione del nostro database che funzionerebbe per Uber.

È un'azienda ben nota con un modello ben noto, ma se non lo conosci, ecco come funziona. Uber è un'app per smartphone. Puoi aprire l’app e richiedere una corsa dalla tua posizione attuale a qualsiasi altro luogo. L’app ti collegherà con un conducente, assegnerà la tariffa, calcolerà la navigazione e gestirà tutta la logistica. Il conducente si presenterà, ti porterà dove vuoi e pagherai la corsa tramite l’app.

Per un'app così grande e complicata, i database costruiti a partire da dati di intenti sono sicuramente possibili, ed è facile immaginare un database che tiene traccia di clienti e conducenti. In questo caso, ogni conducente e cliente ha bisogno di un identificatore unico.

Ciò significa che la colonna driver (D) e la colonna cliente (C) hanno entrambi un’elevata cardinalità (in realtà hanno una cardinalità infinita). Ogni elemento in ogni colonna è unico.

Possiamo anche pensare alle relazioni tra le colonne. A colpo d'occhio, potrebbe sembrare che qualsiasi conducente possa avere più passeggeri e viceversa, ma in realtà abbiamo relazioni individuali per una transazione. Un conducente può avere un solo cliente alla volta, anche se il cliente è tecnicamente un gruppo di persone, ci sarà un solo ID cliente nella transazione. Abbiamo bisogno di un database uno-a-uno per abbinare clienti e conducente per ogni singola transazione.

Amazon

Se c'è un'azienda al mondo che utilizza i database, quella è Amazon. Per questo esempio, consideriamo il negozio online di Amazon. Ci sono molti rivenditori che hanno negozi sul sito web e ci sono miliardi di persone che fanno acquisti tramite Amazon.

Ancora una volta, ogni negozio e ogni acquirente ha bisogno di un ID unico per gestire ogni transazione. Tuttavia, questo caso è più complicato dell'esempio di Uber.

Quando fai acquisti su Amazon, puoi acquistare cose da più rivenditori, il tutto nella stessa transazione. Amazon gestisce la logistica, quindi non è necessario sapere se i tuoi articoli provengono da luoghi diversi. Per te, è una singola transazione.

Nel frattempo, i negozi possono anche vendere a più utenti contemporaneamente, ma ogni transazione avverrà con un solo utente.

In questo caso, abbiamo una relazione uno-a-molti. Puoi acquistare da più negozi, ma ogni negozio ti vende solo in quella particolare transazione.

Migliora la modellazione dei dati con cardinalità

Ora che sai di più sulla cardinalità dei dati e su come funziona con i database e la modellazione dei dati, il passo successivo è immergerti ed esplorare gli strumenti che possono approfondire la tua comprensione e consentirti di lavorare direttamente con i database.

I report di Mailchimp semplificano la valutazione dei dati e la misurazione della cardinalità con una dashboard di facile lettura. Prova Mailchimp oggi stesso.

Condividi questo articolo