2009-07-08 8 views
7

Mentre gli evangelisti che programmano computer per prevedere il futuro del Cloud Computing sono molto brillanti, c'è una possibilità che i database relazionali siano in via di uscita?Con il Cloud Computing sempre più diffuso, i DB relazionali subiranno la morte?

Quali sono i DB più adatti per il cloud computing?

+0

@The close votes: Mi sembra una vera domanda. Ovviamente c'è un equivoco qui, ma avere qualcuno che ti aiuti con un equivoco è una grande parte di SO. Pubblica una risposta invece di votare per chiudere. –

risposta

1

No, gli RDBMS avranno sempre un posto a causa della loro funzionalità. Non solo per conto proprio, ma anche come spina dorsale per altri sistemi (come gli OODBMS).

0

I database relazionali sono ancora pertinenti, sia per l'archiviazione localizzata (come l'archiviazione specifica dell'applicazione) che per l'archiviazione del server.

4

Il modello di database relazionale ha una solida base matematica nell'algebra relazionale. Ciò rende più facile ragionare, ampliare e usare correttamente (in teoria). Anche se i modelli di accesso al database cambiano in modo significativo come risultato di queste nuove API e usi, è probabile che un database relazionale formerà l'implementazione sottostante per questo motivo.

+1

Ma loro no, questo è il punto. Un RDBMS ha problemi di scalabilità intrinseca * perché * della sua architettura. – Bob77

+0

Ma non lo fanno/cosa /? Non ho menzionato la scalabilità. – Kylotan

0

Le piattaforme di cloud computing che ho visto hanno ciascuna un'offerta di database relazionale. Quindi, non vedo il cloud computing davvero cambiare l'immagine in riferimento ai tipi di database utilizzati.

Tuttavia, qualcosa sostituirà i database a cui siamo abituati. La domanda è se questa sarà una versione di livello superiore di RDB o qualcosa di diverso. Un altro aspetto di questa domanda è quanto tempo ci vorrà perché il crop corrente di RDB scompaia? (Non ho una risposta per entrambi.)

0

Al giorno d'oggi le nuvole vanno ancora male, quindi non credo che presto.

0

Non credo che il cloud computing ucciderà RDBMS. Qualcos'altro potrebbe però.

In primo luogo, il tipo di motore di archiviazione utilizzato da un'applicazione specifica non dipende (o non dovrebbe) da dove è in esecuzione (il cloud o un server specifico), ma piuttosto da come deve memorizzare i dati.

In secondo luogo, per quanto posso dire l'unica ragione per cui la gente pensa RDBMS sono sulla loro via d'uscita è perché non scala così come DBMS non relazionali (come DBMS orientati ai documenti come CouchDB), che può essere più facilmente distribuito nel cloud. Tuttavia, non vi è alcun motivo per cui gli RDBMS non possano diventare più cloud-friendly in futuro. Come uno dei primi esempi, guarda Drizzle:

Il progetto Drizzle sta costruendo un database ottimizzato per il cloud e le applicazioni di Net. È progettato per una massiccia concorrenza sulla moderna architettura multi-CPU/core.

Quindi no, non credo che il cloud computing ucciderà RDBMS. Saranno costretti ad adattarsi. Ciò che potrebbe ucciderli, tuttavia, è se un'alternativa esistente, o una nuova, diventa così robusta e facile da usare come RDBMS. Quello che voglio dire è una soluzione che ha sia un software completamente solido (beta non consentito) ed è facile per i programmatori di passare a. Distribuiscono gradi alle persone che comprendono i RDBMS.A causa di tutto il software di assistenza (come gli ORM come ActiveRecord, SQLAlchemy e qualsiasi cosa usi la gente di .NET), l'utilizzo di RDBMS è diventato facile anche per le persone che non sanno quale sia la prima forma normale. Quindi penso che finché c'è un modo per le persone di usare (per esempio) un DODBMS altrettanto facilmente, gli RDBMS continueranno a dominare. Inoltre non sto dicendo che è necessariamente cattivo. Ancora una volta, quale DBMS si utilizza dovrebbe dipendere dai dati, non quello che la gente dice che è bello e migliore.

0

Una citazione dall'articolo:.

"I vincoli inerenti di un database relazionale garantire che i dati al livello più basso hanno integrità dei dati che viola i vincoli di integrità non può fisicamente essere inseriti nella banca dati Questi vincoli non lo fanno. esiste in un database di chiavi/valori, quindi la responsabilità di garantire l'integrità dei dati ricade interamente sull'applicazione, ma il codice dell'applicazione spesso contiene bug. I bug in un database relazionale correttamente progettato di solito non portano a problemi di integrità dei dati; Il database dei valori, tuttavia, può facilmente portare a problemi di integrità dei dati. "

Ciò che significa per me è che gli RDBMS sono condannati e le nuove tecnologie sono di fronte a un futuro grande e brillante, nella stessa misura in cui gli utenti non sono affatto interessati alla correttezza dei loro dati.

IMHO.

0

c'è niente di sbagliato con i database relazionali per le applicazioni che hanno bisogno di interrogare i dati più strutturate (ad esempio: "Come molte persone hanno acquistato prodotti XYZ, in questa data, pagato più di $ 100, ma meno di $ 150?"). Ci sono problemi architettonici potenzialmente significativi che dovranno essere affrontati man mano che questi sistemi crescono e crescono. Una volta che il tuo DB supera quello su cui hai iniziato e/o il traffico/le richieste iniziano a sovraccaricare le risorse disponibili, allora (se vuoi comunque mantenere il tuo database relazionale) devi iniziare ad aggiungere layer. Fortunatamente oggi ci sono molte altre opzioni disponibili negli anni precedenti ... tra cui la memorizzazione nella cache, la mappatura e la riduzione e altre funzionalità, ma questi livelli aggiuntivi aggiungono complessità e costi di manutenzione. In un certo senso, considererei questi "cerotti" ingegnerizzati che molto probabilmente risolvono i problemi di scalabilità e distribuzione con un DB relazionale oggi, ma a più lungo termine? Chissà. Oggi vedo anche questi livelli popolari, che cercano fondamentalmente di emulare funzionalità già disponibili nei DB oggetto, offrendo agli sviluppatori un livello "DB dell'oggetto virtuale" che possono utilizzare con i loro linguaggi degli oggetti per eseguire le operazioni in modo più rapido ed efficiente e ottenere superato gli ostacoli alla crescita e alle prestazioni. Quindi suppongo che la mia opinione generale sia che i DB relazionali sono diventati il ​​DB defacto, probabilmente per lo più a causa del modo relativamente (relativamente) facile di interrogare un database e ottenere risultati per l'unico client/app che lo utilizza. Man mano che i volumi sono cresciuti, e la complessità delle applicazioni è oggi esponenzialmente più grande, penso che più sviluppatori decideranno di mordere il proiettile, imparare la sintassi per i DB oggetto (che in realtà è oggi standardizzato come DB relazionali) e saltare tutto il middleware e livelli che emulano solo funzionalità che si potrebbero ottenere in modo nativo in un OODBMS. Ho visto gli OODB che vengono semplicemente installati su un numero qualsiasi di server e che distribuiscono automaticamente i dati in base alle esigenze e offrono allo sviluppatore un'unica vista di qualsiasi federazione di dimensioni dei database ... Mi sembra la soluzione migliore in quanto i sistemi diventano più distribuiti, per ottenere un DB che può avere un'architettura distribuita nativa. Comunque, solo un pensiero.

Problemi correlati