İlişkisel olmayan veri ve NoSQLNon-relational data and NoSQL

A ilişkisel olmayan veritabanı satırları ve çoğu geleneksel veritabanı sistemleri içinde bulunan sütunlar tablo şemasını kullanmayan bir veritabanıdır.A non-relational database is a database that does not use the tabular schema of rows and columns found in most traditional database systems. Bunun yerine, ilişkisel olmayan veritabanlarının en iyi duruma getirilmiş bir depolama model depolanmakta olan veri türü için belirli gereksinimler kullanın.Instead, non-relational databases use a storage model that is optimized for the specific requirements of the type of data being stored. Örneğin, veri, basit anahtar/değer çiftleri olarak, JSON belgeleri olarak veya kenarlar ve köşeler oluşan bir grafik olarak depolanabilir.For example, data may be stored as simple key/value pairs, as JSON documents, or as a graph consisting of edges and vertices.

Hangi tüm bunlar kullanmayın bunlardan depolarınız ortak veri olduğu bir ilişkisel modeli.What all of these data stores have in common is that they don't use a relational model. Ayrıca, bunlar destekledikleri veri türünü ve verileri nasıl sorgulanabilir içinde daha belirgin olma eğilimindedir.Also, they tend to be more specific in the type of data they support and how data can be queried. Örneğin, seri veri depoları iyileştirilmiş grafik veri depoları varlıklar arasında ağırlıklı ilişkileri keşfetmek için optimize edilmiş sırada veri sıraları zamana bağlı sorgular için zaman.For example, time series data stores are optimized for queries over time-based sequences of data, while graph data stores are optimized for exploring weighted relationships between entities. Format işlem verilerini yönetme de görev için generalize.Neither format would generalize well to the task of managing transactional data.

Terim NoSQL SQL sorgularını kullanın, ve bunun yerine verileri sorgulamak için diğer programlama dilleri ve yapıları kullanın veri depolarında ifade eder.The term NoSQL refers to data stores that do not use SQL for queries, and instead use other programming languages and constructs to query the data. Çoğu bu veritabanlarının SQL ile uyumlu sorguları destekler olsa da, uygulamada "NoSQL" "ilişkisel olmayan veritabanı," anlamına gelir.In practice, "NoSQL" means "non-relational database," even though many of these databases do support SQL-compatible queries. Ancak, temel alınan sorgu yürütme stratejisi genellikle geleneksel RDBMS aynı SQL sorgusunu yürütmek şekilde çok farklılık gösterir.However, the underlying query execution strategy is usually very different from the way a traditional RDBMS would execute the same SQL query.

Aşağıdaki bölümlerde başlıca birçok kategorisi ilişkisel olmayan veya NoSQL veritabanı.The following sections describe the major categories of non-relational or NoSQL database.

Belge veri depolarıDocument data stores

Bir belge veri deposunu bir dizi adlandırılmış dize alanları ve nesne veri değerleri olarak adlandırılan bir varlıkta yöneten bir belge.A document data store manages a set of named string fields and object data values in an entity referred to as a document. Bu veri depoları, genellikle JSON belgelerini biçiminde veri depolayın.These data stores typically store data in the form of JSON documents. Her bir alanın değeri bir sayı veya bir liste veya bir üst-alt öğe koleksiyonu gibi bileşik bir öğe gibi bir skaler öğesi olabilir.Each field value could be a scalar item, such as a number, or a compound element, such as a list or a parent-child collection. Bir belgenin alanlarındaki veriler XML, YAML, JSON, BSON dahil olmak üzere veya bile düz metin olarak depolanabilir yolları, çeşitli kodlanabilir.The data in the fields of a document can be encoded in a variety of ways, including XML, YAML, JSON, BSON, or even stored as plain text. Belgelerde alanların değerleri bu alanlara kullanarak verileri sorgu ve filtre uygulama etkinleştirme depolama yönetim sistemine sunulur.The fields within documents are exposed to the storage management system, enabling an application to query and filter data by using the values in these fields.

Genellikle, bir belge bir varlığa ilişkin tüm verileri içerir.Typically, a document contains the entire data for an entity. Bir varlığı oluşturan öğeler uygulamaya özeldir.What items constitute an entity are application specific. Örneğin, bir varlık, bir müşterinin, siparişin veya her ikisinin birden ayrıntılarını içerebilir.For example, an entity could contain the details of a customer, an order, or a combination of both. Tek bir belge, bir ilişkisel veritabanı yönetim sistemi (RDBMS) arasında birkaç ilişkisel tabloya yayılmış bilgileri içerebilir.A single document might contain information that would be spread across several relational tables in a relational database management system (RDBMS). Bir belge deposu tüm belgelerin aynı yapıya sahip olmasını gerektirmez.A document store does not require that all documents have the same structure. Bu serbest biçimli yaklaşım büyük ölçüde esneklik sağlar.This free-form approach provides a great deal of flexibility. Örneğin, uygulamaları iş gereksinimleri bir değişikliğin yanıtı olarak belgelerde farklı veri depolayabilirsiniz.For example, applications can store different data in documents in response to a change in business requirements.

Örnek belge veri deposu

Uygulama, belgeleri belge anahtarını kullanarak alabilir.The application can retrieve documents by using the document key. Bu genellikle, verilerin eşit olarak dağıtılmasına yardımcı olmak üzere karma haline getirilen belge için benzersiz bir tanımlayıcıdır.This is a unique identifier for the document, which is often hashed, to help distribute data evenly. Bazı belge veritabanları belge anahtarını otomatik olarak oluşturur.Some document databases create the document key automatically. Diğerleriyse, anahtar olarak kullanmak için belgenin bir özniteliğini belirtmenize olanak verir.Others enable you to specify an attribute of the document to use as the key. Uygulama ayrıca belgeleri bir veya daha fazla alan değerine göre sorgulayabilir.The application can also query documents based on the value of one or more fields. Bazı belge veritabanları bir veya daha fazla dizinli alana göre belgelerin hızlı aranmasını kolaylaştırmak için dizin oluşturmayı destekler.Some document databases support indexing to facilitate fast lookup of documents based on one or more indexed fields.

Birçok belge veritabanı yerinde güncelleştirmeyi destekler ve bir uygulamanın tüm belgeyi yeniden yazması gerekmeden belgedeki belirli alanların değerlerini değiştirmesine olanak verir.Many document databases support in-place updates, enabling an application to modify the values of specific fields in a document without rewriting the entire document. Tek bir belgenin içinde birden çok alan üzerinde okuma ve yazma işlemleri genellikle atomiktir.Read and write operations over multiple fields in a single document are usually atomic.

İlgili Azure hizmeti:Relevant Azure service:

Sütunlu veri depolarıColumnar data stores

Bir sütun veya sütun ailesi veri deposu verileri, sütunlar ve satırlar halinde düzenler.A columnar or column-family data store organizes data into columns and rows. En basit biçimiyle bir sütun ailesi veri deposu en azından kavramsal olarak ilişkisel bir veritabanı için çok benzer görünür.In its simplest form, a column-family data store can appear very similar to a relational database, at least conceptually. Gerçek gücünü bir sütun ailesi veritabanı verileri depolamak için sütun odaklı yaklaşımı kaynaklandığını seyrek verileri yapılandırmak için Normalleştirilmemiş bir yaklaşımla arasındadır.The real power of a column-family database lies in its denormalized approach to structuring sparse data, which stems from the column-oriented approach to storing data.

Satırlar ve sütunlarla tablo verileri tutan olarak bir sütun ailesi veri deposunun düşünebilirsiniz, ancak sütunlar sütun ailesi bilinen gruplara ayrılır.You can think of a column-family data store as holding tabular data with rows and columns, but the columns are divided into groups known as column families. Her sütun ailesi mantıksal olarak bir dizi ilgili ve genellikle alınan veya bir birim olarak yönetilebilir tutar.Each column family holds a set of columns that are logically related and are typically retrieved or manipulated as a unit. Ayrı olarak erişilen diğer veriler ayrı sütun ailelerinde depolanabilir.Other data that is accessed separately can be stored in separate column families. Bir sütun ailesi içinde yeni sütunlar dinamik olarak eklenebilir ve satırlar seyrek olabilir (diğer bir deyişle, bir satırın her sütun için bir değere sahip olması gerekmez).Within a column family, new columns can be added dynamically, and rows can be sparse (that is, a row doesn't need to have a value for every column).

Aşağıdaki diyagramda iki sütun ailesi (Identity ve Contact Info) içeren bir örnek gösterilmektedir.The following diagram shows an example with two column families, Identity and Contact Info. Tek bir varlık için veriler her sütun ailesi için aynı satır anahtarına sahiptir.The data for a single entity has the same row key in each column family. Burada bir sütun ailesindeki herhangi bir nesne için satırların dinamik olarak değişebilir, bu yapı, yüksek oranda değişen şemaları ile verileri depolamak için uygun veri deposunun bu formun sütun ailesi yaklaşımın önemli bir avantajdır.This structure, where the rows for any given object in a column family can vary dynamically, is an important benefit of the column-family approach, making this form of data store highly suited for storing data with varying schemas.

Sütun ailesi veri örneği

Bir anahtar/değer deposu veya belge veritabanı aksine, çoğu sütun ailesi veritabanı anahtar sırayla yerine karma hesaplaması fiziksel olarak verileri depolar.Unlike a key/value store or a document database, most column-family databases physically store data in key order, rather than by computing a hash. Satır anahtarı, birincil dizin olarak kabul edilir ve belirli bir anahtarın veya anahtarlarının aralığı üzerinden anahtar tabanlı erişim sağlar.The row key is considered the primary index and enables key-based access via a specific key or a range of keys. Bazı uygulamalar bir sütun ailesinde belirli sütunlarda ikincil dizinler oluşturmanıza imkan tanır.Some implementations allow you to create secondary indexes over specific columns in a column family. İkincil dizinler, satır anahtarı yerine sütun değerine göre veri sağlar.Secondary indexes let you retrieve data by columns value, rather than row key.

Diskte, tüm sütunları bir sütun ailesi içinde birlikte, belirli bir satır her dosya sayısı ile aynı dosyada depolanır.On disk, all of the columns within a column family are stored together in the same file, with a certain number of rows in each file. Büyük veri kümeleriyle bu yaklaşım, aynı anda yalnızca bazı sütunlar birlikte sorgulandığında diskten okumak için gereken veri miktarını azaltarak bir performans kazancı oluşturur.With large data sets, this approach creates a performance benefit by reducing the amount of data that needs to be read from disk when only a few columns are queried together at a time.

Bazı uygulamalar birden çok sütun ailesini kapsayan tüm bir satırda, kararlılık sağlamasına rağmen bir satır için okuma ve yazma işlemleri tek sütun ailesi içinde genellikle atomiktir.Read and write operations for a row are usually atomic within a single column family, although some implementations provide atomicity across the entire row, spanning multiple column families.

İlgili Azure hizmeti:Relevant Azure service:

Anahtar/değer veri depolarıKey/value data stores

Bir anahtar/değer deposu temelde büyük bir karma tablodur.A key/value store is essentially a large hash table. Her bir veri değerini benzersiz bir anahtar ile ilişkilendirirsiniz ve anahtar/değer deposu uygun bir karma işlevi kullanarak verileri depolamak için bu anahtarı kullanır.You associate each data value with a unique key, and the key/value store uses this key to store the data by using an appropriate hashing function. Karma işlevi, veri depolama alanında karma anahtarların eşit dağıtımı için seçilir.The hashing function is selected to provide an even distribution of hashed keys across the data storage.

Çoğu anahtar/değer deposu yalnızca basit sorgu, ekleme ve silme işlemlerini destekler.Most key/value stores only support simple query, insert, and delete operations. Bir değeri kısmen veya tamamen değiştirmek için, uygulamanın tüm değerde mevcut verilerin üzerine yazması gerekir.To modify a value (either partially or completely), an application must overwrite the existing data for the entire value. Çoğu uygulamada tek bir değerin okunması veya yazılması atomik bir işlemdir.In most implementations, reading or writing a single value is an atomic operation. Değer büyükse, yazma biraz zaman alabilir.If the value is large, writing may take some time.

Bazı anahtar/değer depoları değerlerin en büyük boyutunda sınırları zorunlu tutsa da bir uygulama rasgele verileri bir değerler dizisi olarak depolayabilir.An application can store arbitrary data as a set of values, although some key/value stores impose limits on the maximum size of values. Depolanan değerler, depolama sistemi için donuk değerlerdir.The stored values are opaque to the storage system software. Tüm şema bilgileri uygulama tarafından sağlanır ve yorumlanır.Any schema information must be provided and interpreted by the application. Esas olarak, değerler bloblardır ve anahtar/değer deposu yalnızca anahtara göre değeri alır veya depolar.Essentially, values are blobs and the key/value store simply retrieves or stores the value by key.

Bir anahtar/değer deposu veri örneği

Anahtar/değer depoları anahtarının veya anahtarlarının bir aralık değeri kullanarak basit aramalar gerçekleştiren uygulamalar için son derece iyileştirilmiştir, ancak verileri birden çok birleştirme gibi anahtarların/değerlerin, farklı tablolar arasında verileri sorgulamak için gereken sistemler için daha az uygundur tablolar.Key/value stores are highly optimized for applications performing simple lookups using the value of the key, or by a range of keys, but are less suitable for systems that need to query data across different tables of keys/values, such as joining data across multiple tables.

Anahtar/değer depoları ayrıca burada sorgulama veya anahtar olmayan değerlerine göre filtreleme önemlidir yerine yalnızca anahtarları dayalı aramalar gerçekleştirmek senaryoları için optimize edilmediğinden.Key/value stores are also not optimized for scenarios where querying or filtering by non-key values is important, rather than performing lookups based only on keys. Örneğin, ilişkisel bir veritabanı ile anahtar olmayan sütun filtrelemek için bir WHERE yan tümcesini kullanarak bir kayıt bulabilirsiniz ancak anahtar/değer depoları genellikle bu türde değerler için arama yeteneğine sahip değil veya Eğer öyleyse, tüm değerlerin yavaş bir tarama gerektirir.For example, with a relational database, you can find a record by using a WHERE clause to filter the non-key columns, but key/values stores usually do not have this type of lookup capability for values, or if they do it requires a slow scan of all values.

Veri deposu, ayrı makinelerde birden çok düğüm arasında verileri kolayca dağıtabileceğinden tek anahtar/değer deposu son derece ölçeklenebilir olabilir.A single key/value store can be extremely scalable, as the data store can easily distribute data across multiple nodes on separate machines.

İlgili Azure hizmetleri:Relevant Azure services:

Grafik veri depolarıGraph data stores

Grafik veri deposu bilgileri, düğümler ve kenarlar iki tür yönetir.A graph data store manages two types of information, nodes and edges. Düğümleri varlıklar temsil eder ve bu varlıkları arasındaki ilişkileri kenarlar belirtin.Nodes represent entities, and edges specify the relationships between these entities. Hem düğümler ve hem de kenarlar, bir tablodaki sütunlar gibi ilgili düğüm veya kenar hakkında bilgi sağlayan özelliklere sahip olabilir.Both nodes and edges can have properties that provide information about that node or edge, similar to columns in a table. Kenarlar ayrıca ilişkinin yapısını gösteren bir yöne sahip olabilir.Edges can also have a direction indicating the nature of the relationship.

Bir grafik veri deposuna amacı uygulamanın düğümler ve kenarlar ağda gezinmesine sorguları verimli bir şekilde gerçekleştirmenizi ve varlıklar arasındaki ilişkiler için sağlamaktır.The purpose of a graph data store is to allow an application to efficiently perform queries that traverse the network of nodes and edges, and to analyze the relationships between entities. Aşağıdaki diyagram bir kuruluşun personel verileri bir grafik olarak yapılandırılmış gösterilmektedir.The following diagram shows an organization's personnel data structured as a graph. Varlıklar çalışanlar ve departmanlardır, kenarlar çalışanlar arasındaki ilişkileri ve çalışanların bulunduğu departmanları gösterir.The entities are employees and departments, and the edges indicate reporting relationships and the department in which employees work. Bu grafikte, kenarlardaki oklar ilişkilerin yönünü gösterir.In this graph, the arrows on the edges show the direction of the relationships.

Bir grafik veri deposuna veri örneği

Bu yapı, "Doğrudan veya dolaylı olarak Ayşe’ye bağlı tüm çalışanları bul" veya "Kim Mehmet ile aynı departmanda çalışıyor?" gibi sorguların gerçekleştirilmesini kolaylaştırır.This structure makes it straightforward to perform queries such as "Find all employees who report directly or indirectly to Sarah" or "Who works in the same department as John?" Çok sayıda varlık ve ilişki içeren büyük grafikler için çok karmaşık analizleri çok hızlı bir şekilde gerçekleştirebilirsiniz.For large graphs with lots of entities and relationships, you can perform very complex analyses very quickly. Pek çok grafik veritabanı, ilişkiler ağını verimli bir şekilde işlemenizi sağlayan bir sorgu dili sağlar.Many graph databases provide a query language that you can use to traverse a network of relationships efficiently.

İlgili Azure hizmeti:Relevant Azure service:

Zaman serisi verilerini depolar.Time series data stores

Zaman serisi verileri, zaman ve bu tür verilerin serisi veri depolama için iyileştirilmiş bir kez düzenlenmiş değerler kümesidir.Time series data is a set of values organized by time, and a time series data store is optimized for this type of data. Zaman serisi veri depoları, bunlar genellikle büyük miktarda veriyi gerçek zamanlı büyük bir dizi kaynaktan toplama gibi yazma, çok yüksek sayıda desteklemesi gerekir.Time series data stores must support a very high number of writes, as they typically collect large amounts of data in real time from a large number of sources. Zaman serisi veri depoları, telemetri verilerini depolamak için en iyi duruma getirilmiş.Time series data stores are optimized for storing telemetry data. Kullanım senaryoları IOT algılayıcılarını veya uygulama/sistem sayaçlarını içerir.Scenarios include IoT sensors or application/system counters. Güncelleştirmeler nadirdir ve silme işlemleri genellikle toplu işlemler halinde yapılır.Updates are rare, and deletes are often done as bulk operations.

Zaman serisi verilerini örneği

Zaman serisi veritabanına yazılan kayıtlar genellikle küçük olsa da, çoğunlukla çok sayıda kayıt vardır ve toplam veri boyutu hızlı bir şekilde büyüyebilir.Although the records written to a time series database are generally small, there are often a large number of records, and total data size can grow rapidly. Zaman serisi verileri ayrıca tanıtıcısı sıra dışı ve gelecek geç verileri, veri noktaları ve windows süre bakımından açıklanan sorgular için iyileştirmeleri dizin otomatik depolar.Time series data stores also handle out-of-order and late-arriving data, automatic indexing of data points, and optimizations for queries described in terms of windows of time. Bu son özellik sorguları milyon veri noktası ve birden çok veri akışı arasında hızlı bir şekilde çalıştırmak için zaman serisi görselleştirmeler, o zaman serisi verilerini kullandınız yaygın bir yolu olan desteklemek için sağlar.This last feature enables queries to run across millions of data points and multiple data streams quickly, in order to support time series visualizations, which is a common way that time series data is consumed.

Daha fazla bilgi için zaman serisi çözümleriFor more information, see Time series solutions

İlgili Azure hizmetleri:Relevant Azure services:

Nesne veri depolarıObject data stores

Nesne veri depoları, depolamak ve büyük ikili nesneler veya BLOB'ları görüntüleri, metin dosyaları, video ve ses akışları, büyük uygulama veri nesneleri ve belgeler ve sanal makine disk görüntüleri gibi almak için iyileştirilmiştir.Object data stores are optimized for storing and retrieving large binary objects or blobs such as images, text files, video and audio streams, large application data objects and documents, and virtual machine disk images. Bir nesne, nesneye erişmek için depolanan veriler, bazı meta verileri ve benzersiz bir kimlik içerir.An object consists of the stored data, some metadata, and a unique ID for accessing the object. Nesne depoları ayrı ayrı çok büyük dosyaları desteği de büyük miktarda tüm dosyaları yönetmek için toplam depolama alanı sağlamak için tasarlanmıştır.Object stores are designed to support files that are individually very large, as well provide large amounts of total storage to manage all files.

Nesne veri örneği

Nesne veri depoları hızlı paralel okuma sağlayan birden çok sunucu düğümü, belirli bir blob çoğaltın.Some object data stores replicate a given blob across multiple server nodes, which enables fast parallel reads. Bu, sırayla birden çok işlem, genellikle, farklı sunucular üzerinde çalışan her büyük bir veri dosyası aynı anda sorgulayabilirsiniz çünkü genişleme büyük dosyalarda bulunan verilerin sorgulama sağlar.This in turn enables the scale-out querying of data contained in large files, because multiple processes, typically running on different servers, can each query the large data file simultaneously.

Nesne veri depolarının bir özel durum, ağ dosya paylaşımıdır.One special case of object data stores is the network file share. Dosya paylaşımları kullanan sunucu ileti bloğu (SMB) gibi standart ağ protokolleri kullanarak ağ üzerinden erişilecek dosyaları sağlar.Using file shares enables files to be accessed across a network using standard networking protocols like server message block (SMB). Verilen uygun güvenlik ve eş zamanlı erişim denetimi mekanizmaları, verilerin bu şekilde paylaşımı dağıtılmış hizmetlerin basit okuma gibi temel, düşük düzey işlemler için yüksek oranda ölçeklenebilir veri erişimi sağlamasına ve yazma istekleri etkinleştirebilirsiniz.Given appropriate security and concurrent access control mechanisms, sharing data in this way can enable distributed services to provide highly scalable data access for basic, low level operations such as simple read and write requests.

İlgili Azure hizmetleri:Relevant Azure services:

Dış dizin veri depolarıExternal index data stores

Dış dizin veri depoları için diğer veri depoları ve hizmetlerinde tutulan bilgileri arama özelliğini sağlar.External index data stores provide the ability to search for information held in other data stores and services. Bir dış dizini ikincil bir dizin için herhangi bir veri deposu olarak görev yapar ve çok büyük miktarda verilerin dizinini ve neredeyse gerçek zamanlı bu dizinler erişim sağlamak için kullanılabilir.An external index acts as a secondary index for any data store, and can be used to index massive volumes of data and provide near real-time access to these indexes.

Örneğin, metin dosyaları bir dosya sisteminde depolanan olabilir.For example, you might have text files stored in a file system. Bir dosyayı bulmak, dosya tarafından hızlı yoldur, ancak dosyasının içeriğine göre arama, tüm dosyaları tarama yavaş olduğu gerektirecek.Finding a file by its file path is quick, but searching based on the contents of the file would require a scan of all of the files, which is slow. Dış bir dizini ikincil arama dizinleri oluşturun ve hızlı bir şekilde ölçütlerinizle eşleşen dosyalarının yolunu bulun olanak sağlar.An external index lets you create secondary search indexes and then quickly find the path to the files that match your criteria. Anahtar/değer ile dış dizin uygulamasıdır başka bir örnek anahtarı ile yalnızca bu dizinde depolar.Another example application of an external index is with key/value stores that only index by the key. Veri değerleri bağlı ikincil bir dizin oluşturun ve hızlı bir şekilde eşleşen her öğeyi benzersiz olarak tanımlayan anahtarını arayın.You can build a secondary index based on the values in the data, and quickly look up the key that uniquely identifies each matched item.

Arama veri örneği

Dizinler, bir dizin oluşturma işlemi çalıştırılarak oluşturulur.The indexes are created by running an indexing process. Bu, veri deposu tarafından tetiklenen veya uygulama kodu tarafından başlatılan bir gönderme modeli kullanarak bir çekme modeli kullanılarak gerçekleştirilebilir.This can be performed using a pull model, triggered by the data store, or using a push model, initiated by application code. Dizinler çok boyutlu olabilir ve büyük miktarlarda metin veri serbest metin aramayı destekleyebilir.Indexes can be multidimensional and may support free-text searches across large volumes of text data.

Dış dizin veri depoları, genellikle tam metin ve web tabanlı arama desteklemek için kullanılır.External index data stores are often used to support full text and web based search. Bu durumlarda, arama için tam veya benzer olabilir.In these cases, searching can be exact or fuzzy. Benzer arama, bir terimler kümesiyle eşleşen belgeleri bulur ve ne kadar yakından eşleştiğini hesaplar.A fuzzy search finds documents that match a set of terms and calculates how closely they match. Bazı dış dizinleri dönüş eş anlamlılar, tarz genişletmeleri (örneğin, eşleşen "köpekler" için "Evcil Hayvanlar") temel ve dallanma eşleşme (örneğin, "de eşleşen"ran"çalıştırmak için" arama ve "çalışıyor") için dil analizi de destekler.Some external indexes also support linguistic analysis that can return matches based on synonyms, genre expansions (for example, matching "dogs" to "pets"), and stemming (for example, searching for "run" also matches "ran" and "running").

İlgili Azure hizmeti:Relevant Azure service:

Tipik gereksinimleriTypical requirements

İlişkisel olmayan veri depoları, genellikle ilişkisel veritabanı tarafından kullanılan farklı depolama mimariden kullanın.Non-relational data stores often use a different storage architecture from that used by relational databases. Özellikle, bunlar hiç sabit şemasına sahip doğrultusunda eğilimindedir.Specifically, they tend towards having no fixed schema. Ayrıca, olmayan işlemleri destekleyen, aksi takdirde işlem kapsamını kısıtlamak için eğilimi gösterir ve ikincil dizinler ölçeklenebilirlik için genellikle dahil değildir.Also, they tend not to support transactions, or else restrict the scope of transactions, and they generally don't include secondary indexes for scalability reasons.

Her ilişkisel olmayan veri depolarının gereksinimlerini karşılaştırılır:The following compares the requirements for each of the non-relational data stores:

GereksinimRequirement Belge verileriDocument data Sütun ailesi veriColumn-family data Anahtar/değer veriKey/value data Graf verileriGraph data
NormalleştirmeNormalization Normal dışıDenormalized Normal dışıDenormalized Normal dışıDenormalized NormalleştirilmişNormalized
ŞemaSchema Okuma şemasıSchema on read Yazma, okuma şeması sütunu üzerinde tanımlanmış sütun ailesiColumn families defined on write, column schema on read Okuma şemasıSchema on read Okuma şemasıSchema on read
Tutarlılık (arasında eş zamanlı işlem)Consistency (across concurrent transactions) Ayarlanabilir tutarlılık, belge düzeyinde garanti ederTunable consistency, document-level guarantees Sütun ailesi–düzeyi garantileriColumn-family–level guarantees Anahtar düzeyi garantileriKey-level guarantees Graf düzeyi garantileriGraph-level guarantees
Kararlılık (işlem kapsamı)Atomicity (transaction scope) KoleksiyonCollection TabloTable TabloTable GrafGraph
Kilitleme stratejisiLocking Strategy İyimser (ücretsiz kilidi)Optimistic (lock free) Kötümser (satır kilitleri)Pessimistic (row locks) İyimser (ETag)Optimistic (ETag)
Erişim düzeniAccess pattern Rastgele erişimRandom access Yükle/geniş veri çubuğunda toplamalarıAggregates on tall/wide data Rastgele erişimRandom access Rastgele erişimRandom access
DizinlemeIndexing Birincil ve ikincil dizinlerPrimary and secondary indexes Birincil ve ikincil dizinlerPrimary and secondary indexes Yalnızca birincil dizinPrimary index only Birincil ve ikincil dizinlerPrimary and secondary indexes
Veri şekliData shape BelgeDocument Tablo sütunlarını içeren bir sütun ailesi ileTabular with column families containing columns Anahtar ve değerKey and value Kenarları ve köşeleri içeren grafikGraph containing edges and vertices
SeyrekSparse EvetYes EvetYes EvetYes HayırNo
Geniş (çok sayıda sütun/öznitelikler)Wide (lots of columns/attributes) EvetYes EvetYes HayırNo HayırNo
Veri boyutuDatum size (KB) küçük ve Orta (düşük MB)Small (KBs) to medium (low MBs) Orta (MB) büyük (düşük GB)Medium (MBs) to Large (low GBs) Küçük (KB)Small (KBs) Küçük (KB)Small (KBs)
Genel en yüksek ölçekOverall Maximum Scale Çok büyük (PBs)Very Large (PBs) Çok büyük (PBs)Very Large (PBs) Çok büyük (PBs)Very Large (PBs) Büyük (TB'a)Large (TBs)
GereksinimRequirement Zaman serisi verileriTime series data Nesne verileriObject data Dış dizin verileriExternal index data
NormalleştirmeNormalization NormalleştirilmişNormalized Normal dışıDenormalized Normal dışıDenormalized
ŞemaSchema Okuma şemasıSchema on read Okuma şemasıSchema on read Yazma şemasıSchema on write
Tutarlılık (arasında eş zamanlı işlem)Consistency (across concurrent transactions) YokN/A YokN/A YokN/A
Kararlılık (işlem kapsamı)Atomicity (transaction scope) YokN/A NesneObject YokN/A
Kilitleme stratejisiLocking Strategy YokN/A Kötümser (blob kilitleri)Pessimistic (blob locks) YokN/A
Erişim düzeniAccess pattern Rastgele erişim ve toplamaRandom access and aggregation Sıralı erişimSequential access Rastgele erişimRandom access
DizinlemeIndexing Birincil ve ikincil dizinlerPrimary and secondary indexes Yalnızca birincil dizinPrimary index only YokN/A
Veri şekliData shape TabloTabular BLOB ve meta verileriBlob and metadata BelgeDocument
SeyrekSparse HayırNo YokN/A HayırNo
Geniş (çok sayıda sütun/öznitelikler)Wide (lots of columns/attributes) HayırNo EvetYes EvetYes
Veri boyutuDatum size Küçük (KB)Small (KBs) Çok büyük (TB'a) için büyük (GB)Large (GBs) to Very Large (TBs) Küçük (KB)Small (KBs)
Genel en yüksek ölçekOverall Maximum Scale Büyük (düşük TB'a)Large (low TBs) Çok büyük (PBs)Very Large (PBs) Büyük (düşük TB'a)Large (low TBs)