Da Roger Jennings
Il modello relazionale e SQL dominano paesaggio banca dati di oggi. Ma il Web è "grande dati" rivoluzione sta costringendo architetti e programmatori di prendere in considerazione più recenti, i modelli familiari nella progettazione e realizzazione di applicazioni Web-scale. Prima di immergerci nel confronto tra modelli di dati, è una buona idea quella di accordarsi su una definizione di "dati di grande." Adam Jacobs, un software engineer senior 1010data Inc., lo descrive come "i dati la cui dimensione ci costringe a guardare al di là del provato e vero metodi che sono prevalenti in quel momento" nel suo articolo, " Le patologie dei dati Big " nel numero di luglio 2009 di ACM Queue . Jacobs spiega:
Nei primi anni 1980, era un set di dati che era così grande che un robot "scimmia nastro" è stato richiesto per scambiare migliaia di nastri dentro e fuori. Nel 1990, forse, è stato tutti i dati che trascende i limiti di Microsoft Excel e un PC desktop, il software richiede seri sulle workstation Unix da analizzare. Al giorno d'oggi, può significare che i dati è troppo grande per essere inserito in un database relazionale e analizzati con l'aiuto di una statistica desktop / pacchetto di visualizzazione - dati, forse, la cui analisi richiede software massicciamente parallele in esecuzione su decine, centinaia o addirittura migliaia di server.
Le prestazioni di query SQL sulle tabelle relazionali diminuisce con l'aumentare del numero di righe, che porta ad un requisito per il partizionamento, di solito con un processo chiamato sharding. Nel caso di SQL Azure, un database basato su cloud basati su SQL Server 2008 R2, la dimensione massima del database è 50 GB, partizioni in modo individuale (schegge) di 50 GB o meno in dimensioni sono collegati da un processo chiamato federazione.
Non solo SQL
Alcuni sviluppatori stanno rivolgendo a NoSQL, ha detto di stare per "non SQL" o "non solo SQL," ai dati del modello per Web scala. NoSQL non include database relazionali nelle seguenti categorie:
Chiave / valore, chiamato anche Entità / attributo / valore (EAV), i negozi sono schema-less collezioni di entità che non hanno bisogno le stesse proprietà. Windows Azure Tabella di archiviazione e Amazon Web Services SimpleDB sono proprietarie, basate su cloud esempi, mentre BerkeleyDB, Redis e MemcacheDB sono implementazioni open source.
Documento negozi, caratterizzata da fonte CouchDB aperto, MongoDB, RavenDB e Riak, può contenere strutture dati complesse, che di solito vengono memorizzati in JavaScript Object Notation (JSON) formato. RavenDB è progettato per funzionare sotto Windows con il Microsoft. NET Framework. Ha RESTful e client. NET API, supporta le query LINQ, e può utilizzare System.Transaction per far rispettare le transazioni ACID. RavenDB richiede una licenza commerciale quando viene utilizzato con software proprietario.
Colonna, detta anche colonna-famiglia o ad ampio colonna, negozi di definire le colonne in un file di configurazione e tenere le famiglie delle colonne nelle righe accede da un valore della chiave. Maggior parte dei negozi di colonna sono modellate su architettura Google BigTable. Popolare open source colonna-famiglia implementazioni sono Cassandra e Hypertable. Steve Marx, uno stratega tecnico Microsoft su Windows Azure, è una dimostrazione dal vivo di Cassandra in esecuzione in un progetto Windows Azure .
Grafico negozi, o database grafico, sono una categoria NoSQL emergenti basate su teoria dei grafi che i nodi uso (oggetti standalone o entità) e bordi (linee utilizzate per collegare i nodi e le proprietà) per rappresentare e memorizzare le informazioni. GraphDB è un negozio aperto grafico source scritto in C # che può essere eseguito in un ruolo di Windows Azure Worker. Microsoft Research offre licenze accademiche e commerciali per le anteprime comunità tecnologica del suo negozio Driade grafico distribuito e DryadLINQ linguaggio di query parallele, entrambe sono destinate per la distribuzione di Windows Azure. Neo4j è un popolare database open source per Java grafico.
Co-modello relazionale
Il capo del team di Microsoft programmabilità Cloud, Erik Meijer, che io chiamo il "padre di LINQ," e Gavin Bierman, un ricercatore senior di Microsoft Research di Cambridge, propone di drenare il divario tra i dati relazionali e NoSQL modelli.Nel marzo del 2011 ACM Queue articolo, "A Co-modello relazionale dei dati per le grandi banche dati condivise", il coautori applicare la teoria categoria per dimostrare che "la categoria NoSQL è il doppio della categoria SQL - NoSQL è davvero coSQL". Essi affermano:
L'implicazione di questa dualità è che coSQL e SQL non sono in conflitto, come il bene e il male. Invece sono due opposti che coesistono in armonia e possono trasmutare l'uno nell'altro come yin e yang. È interessante notare che nella filosofia cinese lo yin simboleggia aperto e, quindi, corrisponde al mondo aperto di coSQL, e yang simboleggia chiuso e, quindi, corrisponde al mondo chiuso di SQL.
Meijer e Bierman concludere: "A causa del linguaggio di interrogazione comune [LINQ] sulla base di monadi, entrambi possono essere implementate utilizzando gli stessi principi".
Corso SQL Server - Corso Hyper-V -Corso Windows Server –
Nessun commento:
Posta un commento
Nota. Solo i membri di questo blog possono postare un commento.