Öncelikle neden bir veritabanına ihtiyacımız olduğunu söyleyerek başlayayım.
Verimli bir şekilde depolanan verileri alabileceğimiz şekilde bilgileri düzenlemeye yardımcı olacak bir veritabanına ihtiyacımız var.
İlişkisel veritabanı yönetim sistemlerine (SQL) örnekler:
1) Oracle Veritabanı
2) SQLite
3) PostgreSQL
4) MySQL
5) Microsoft SQL Sunucusu
6) IBM DB2
İlişkisel olmayan veritabanı yönetim sistemlerine örnekler (NoSQL)
1) MongoDB
2) Cassandra
3) Redis
4) Couchbase
5) HBase
6) DocumentDB
7) Neo4j
İlişkisel veritabanları normalleştirilmiş verilere sahiptir, çünkü bilgiler tablolarda satırlar ve sütunlar biçiminde saklanır ve normalde veriler normalleştirilmiş formda olduğunda, veri fazlalığını azaltmaya yardımcı olur ve tablolardaki veriler normalde birbirleriyle ilişkilidir, bu nedenle veriyi geri almak istiyoruz, veriyi birleştirme deyimlerini kullanarak sorgulayabilir ve ihtiyacımıza göre veri alabiliriz. Bu, daha fazla yazma, daha az okuma ve fazla veri içermemek istediğimizde uygundur, aynı zamanda nispeten kolaydır Tablolardaki verileri ilişkisel olmayan veritabanlarına göre güncelleyin. Yatay ölçekleme mümkün değil, dikey ölçeklendirme bir ölçüde mümkün.CAP (Tutarlılık, Kullanılabilirlik, Bölme Toleranslı) ve ACID (Atomisite, Tutarlılık, İzolasyon, Süre) uyumluluğu.
Örnek olarak PostgreSQL kullanarak ilişkisel bir veritabanına veri girmeyi göstermeme izin verin.
Önce aşağıdaki gibi bir ürün tablosu oluşturun:
CREATE TABLE products (
product_no integer,
name text,
price numeric
);
sonra verileri ekleyin
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99);
Başka bir farklı örneğe bakalım:
Burada ilişkisel bir veritabanında, öğrenci tablosunu ve konu tablosunu ilişkileri kullanarak, yabancı anahtar, konu kimliği yoluyla bağlayabiliriz, ancak ilişkisel olmayan bir veritabanında ilişki olmadığı için iki belgeye sahip olmaya gerek yoktur, bu nedenle tüm konu ayrıntılarını ve bir belgedeki öğrenci ayrıntıları, öğrenci belgesinin ardından verilerin çoğaltıldığını ve bu da kayıtların güncellenmesini zahmetli hale getirdiğini söylüyor.
İlişkisel olmayan veritabanlarında sabit bir şema yoktur, veriler normalize edilmez. veriler arasında hiçbir ilişki oluşturulmaz, tüm veriler çoğunlukla tek bir belgeye yerleştirilir. Çok fazla veriyi işlemek için çok uygundur ve çok sayıda veriyi aynı anda aktarabilir, en iyisi yüksek miktarlarda okuma ve daha az yazma ve daha az güncelleme, verileri sorgulamak biraz zor, sabit bir şema olmadığı için. Yatay ve dikey ölçeklendirme mümkündür.CAP (Tutarlılık, Kullanılabilirlik, Bölme Toleranslı) ve BASE (Temelde Kullanılabilir, yumuşak durum, Sonunda tutarlı) uyumluluğu.
Mongodb kullanarak ilişkisel olmayan bir veritabanına veri girmek için bir örnek göstermeme izin verin
db.users.insertOne({name: ‘Mary’, age: 28 , occupation: ‘writer’ })
db.users.insertOne({name: ‘Ben’ , age: 21})
Dolayısıyla, bunu db adlı veritabanından anlayabilirsiniz ve kullanıcılar adında bir koleksiyon vardır ve veri eklediğimiz insertOne adlı belge vardır ve ilk kaydımızın 3 özniteliği ve ikinci özniteliğin yalnızca 2 özniteliği olduğundan sabit bir şema yoktur. , ilişkisel olmayan veritabanlarında bu sorun değildir, ancak ilişkisel veritabanları sabit bir şemaya sahip olduğundan, bu ilişkisel veritabanlarında yapılamaz.
Başka bir farklı örneğe bakalım
({Studname: ‘Ash’, Subname: ‘Mathematics’, LecturerName: ‘Mr. Oak’})
Dolayısıyla ilişkisel olmayan veritabanında, ilişkisel olmayan veritabanlarında hiçbir ilişki tanımlanmadığı için hem öğrenci ayrıntılarını hem de konu ayrıntılarını tek bir belgeye girebileceğimizi görebiliriz, ancak burada bu yol veri tekrarına yol açabilir ve bu nedenle güncellemede hatalar meydana gelebilir.
Umarım bu her şeyi açıklar