Perché non dovresti usare SharePoint Online come database
SharePoint è un sistema di gestione dei documenti che consente di archiviare file, organizzare documenti, condividere e modificare documenti in collaborazione con altri utenti. Alcuni utenti, che in passato hanno utilizzato MS Excel o MS Access, potrebbero pensare che sia possibile utilizzare SharePoint come database. Tuttavia, indipendentemente dai vantaggi di questo approccio, è consigliabile evitare di utilizzare SharePoint come database.
Prima di approfondire i motivi per cui è sconsigliabile questo tipo di utilizzo, ecco alcuni fattori che potrebbero sembrare interessanti per gli utenti che prendono in considerazione l’utilizzo di SharePoint come database:
- Non sono necessari privilegi dba per fornire un nuovo schema
- Un’interfaccia estensibile pronta per l’uso per la gestione dei dati
- Non è necessario coordinare le app SharePoint con i dati archiviati in altri luoghi
- Migrazione dei dati senza necessità di sincronizzazione
Organizzazione dei dati
In SharePoint non esiste un’organizzazione dei dati simile a quella di un database e questo è un motivo importante per non utilizzare SharePoint come database. A prima vista, gli elenchi di SharePoint sembrano simili alle tabelle di un database con tutte le colonne e i diversi tipi di dati. Tuttavia, i dati sono organizzati in modo diverso in queste strutture. SharePoint utilizza SQL Server? SharePoint utilizza MS SQL Server come sistema di gestione del database per il suo funzionamento, ma SharePoint non è progettato per svolgere le funzioni di un vero e proprio database. Che cos’è un database di contenuti SharePoint? Un database di contenuti è un database che serve a memorizzare i dati SharePoint per una o più raccolte di siti. Si tratta del database situato su MS SQL Server utilizzato per il funzionamento di SharePoint.
Rispetto ai database relazionali, SharePoint non presenta relazioni tra le tabelle. Ecco le relazioni tra i dati che mancano in SharePoint:
Uno a uno. Un record in una tabella è correlato a un record in un’altra tabella di un database. Ad esempio, un reparto può avere un solo responsabile e un responsabile può gestire un solo reparto.
Uno a molti. Un record in una tabella è correlato a più record in un’altra tabella. Ad esempio, un cliente può avere molti ordini di vendita.
Molti a molti. I record in due o più tabelle sono correlati a molti record in un’altra tabella. Ad esempio, i clienti possono acquistare più prodotti e i prodotti possono essere acquistati da più clienti.
Funzioni del database mancanti
Le funzioni del database sono mancanti (o praticamente mancanti) in SharePoint Online e SharePoint on-premise. Esaminiamo brevemente queste funzioni mancanti in SharePoint.
Chiavi primarie e chiavi esterne
Un database utilizza identificatori univoci, che includono chiavi primarie e chiavi esterne, per identificare un record e collegare tabelle che hanno relazioni padre-figlio. Una chiave primaria identifica in modo univoco un record nella tabella; una tabella può avere solo una chiave primaria. Una chiave primaria è composta da una o più colonne e non può avere valori NULL. Una chiave esterna è una colonna o un insieme di colonne che fa riferimento a una chiave primaria in un’altra tabella e collega i dati tra le tabelle. Non esistono relazioni tra gli elenchi di SharePoint e questi elenchi non possono essere collegati allo stesso modo delle tabelle in un database.
Linguaggio SQL
SQL (Structured Query Language) è un linguaggio standard che consente di scrivere codice per query complesse nei database. Quando si utilizza un database reale, è possibile salvare le query e riutilizzarle. Questa funzionalità non è disponibile in SharePoint. SharePoint supporta solo CAML, Odata e query di ricerca. Non è consigliabile interrogare direttamente un database SharePoint (il database MS SQL utilizzato da SharePoint per archiviare i contenuti SharePoint) utilizzando SQL, poiché ciò potrebbe causare problemi di stabilità e violare l’EULA (contratto di licenza con l’utente finale).
Procedure memorizzate
Le procedure memorizzate fanno parte del linguaggio SQL. Una procedura memorizzata è un gruppo di istruzioni SQL, ovvero un blocco di codice riutilizzabile creato e memorizzato nel database. Le procedure memorizzate sono supportate dalla maggior parte dei sistemi di gestione di database (DBMS). Le procedure memorizzate offrono una serie di vantaggi. È possibile centralizzare la logica di accesso ai dati in un unico posto con la possibilità di ottimizzarla. Per quanto riguarda la sicurezza, gli utenti non necessitano di autorizzazioni di lettura/scrittura sulle tabelle sottostanti se vengono concessi i diritti di esecuzione di una stored procedure. Non è possibile utilizzare le stored procedure quando si utilizza SharePoint.
Transazioni
Una transazione è un’unità di lavoro che rappresenta qualsiasi modifica in un database e che può essere considerata come “un tutto”. Un esempio di transazione è quando si prelevano soldi da un conto bancario (origine) e si trasferiscono soldi su un altro conto bancario (destinazione). Queste due azioni sono elementi di una transazione. Se la prima azione ha successo ma la seconda fallisce, i soldi vengono restituiti al conto bancario di origine per mantenere l’integrità della transazione. Questo è il rollback della transazione. Allo stesso modo, quando una transazione fallisce, le modifiche vengono annullate in un database e i dati non vanno persi. SharePoint non supporta il rollback delle transazioni.
Indicizzazione e ottimizzazione delle query
L’indicizzazione e l’ottimizzazione delle query vengono utilizzate per migliorare le prestazioni del database. I campi utilizzati di frequente possono essere pre-indicizzati, migliorando così le prestazioni complessive. I database possono essere ottimizzati per il recupero dei dati utilizzando tecniche di ottimizzazione quali la creazione di puntatori alla posizione in cui i dati sono memorizzati nel database. Questo approccio è molto più veloce rispetto alla ricerca nell’intero database. L’indicizzazione in SharePoint è presente per migliorare la ricerca dei contenuti memorizzati in SharePoint; tuttavia, la funzionalità è limitata rispetto a un database che è possibile utilizzare direttamente. In particolare, SharePoint è limitato a 20 colonne indicizzate in un elenco.
Elementi di grandi dimensioni e dati binari
La maggior parte dei database moderni può memorizzare dati di grandi dimensioni e dati binari (come file video, immagini, file audio, ecc.) direttamente nel database. I dati binari possono essere memorizzati come allegati di file negli elenchi di SharePoint, ma questa operazione non è consigliata. In termini di funzionalità, gli allegati binari in SharePoint hanno le stesse prestazioni dei campi binari in un database relazionale. Se si memorizzano troppi elementi con allegati binari negli elenchi di SharePoint, le prestazioni possono diminuire in modo significativo. SharePoint non crea una nuova tabella di database per ogni elenco e libreria nel database dei contenuti di SharePoint. Tutti i dati visualizzati negli elenchi e nelle librerie di SharePoint sono memorizzati in un’unica tabella del database dei contenuti.
SharePoint non è in grado di gestire molti elementi allo stesso modo di un database. È necessario limitare il numero di elementi in un elenco di SharePoint a 2000 (in un elenco principale e nelle cartelle contenute nell’elenco). Se è necessario caricare file in SharePoint, caricarli in una libreria SharePoint e non utilizzare gli elenchi SharePoint per questo scopo.
Accesso al di fuori di SharePoint
È possibile accedere agli elenchi SharePoint al di fuori di SharePoint solo utilizzando interfacce di programmazione o XML. Non è consigliabile utilizzare gli elenchi per archiviare dati in un repository SharePoint a cui devono accedere applicazioni esterne a causa della scarsa integrazione. Al contrario, i database relazionali dispongono di tutte le funzionalità necessarie per l’integrazione e il funzionamento con applicazioni esterne.
Conclusione
Esistono molti motivi per non utilizzare SharePoint come database. SharePoint è destinato ad altri scopi. Utilizzare SharePoint come database può causare svantaggi significativi e un calo delle prestazioni. Non è possibile sostituire un database relazionale con SharePoint. Le liste non sono chiamate tabelle in SharePoint per un motivo. Lo scopo principale di SharePoint è quello di archiviare i documenti in modo centralizzato e modificarli insieme. Utilizzate lo strumento giusto per ogni vostra esigenza aziendale.
Qualunque cosa utilizziate, che sia MS SQL, Oracle o SharePoint, non dimenticate di eseguire il backup dei vostri dati. NAKIVO Backup & Replication è una soluzione universale per la protezione dei dati che supporta il backup di Oracle, MS SQL, Office 365 (incluso il backup di SharePoint Online) e SharePoint Server.