Veri modelleme, veri noktaları ve yapı arasındaki bağlantıları iletmek için tüm bir yazılım uygulamasının veya bileşenlerinin görsel bir temsilini geliştirme sürecidir. Uygulama ve veritabanı gereksinimlerini titizlikle gözden geçirmeyi ve iki ilgili temel veri işlemi (okuma, yazma ve güncelleme) arasındaki bağlantıyı içerir.
Uygulamanın kullanım modeli değerlendirilerek ve veritabanı şeması buna uygun hale getirilerek kararlı bir veri modeli oluşturulur. Bu nedenle, şema tasarımı veri modelinizi şekillendirir. İlişkisel bir veritabanı söz konusu olduğunda, tablo şemasını oluşturmadan tablolarınızı dolduramazsınız.
Bilinmesi Gereken Anahtar Terimler
Devam etmeden önce bilmeniz gereken bazı temel tanımlar şunlardır:
- Toplamak - Koleksiyon, MongoDB'deki belgeler kümesidir. Bir RDBMS'deki bir tablonun eşdeğeridir.
- Belge - Belge, dosya ve değer çiftlerinden oluşan bir yapıdır. RDBMS'deki bir satıra eşdeğerdir.
- Veritabanı Şeması - Şema tasarımı, bir veritabanı yönetim sistemi (DBMS) için tasarlanmış bir veritabanının mantıksal ve görsel bir mimarisidir.
MongoDB'de Veri Modelleme Nasıl Farklıdır?
NoSQL'in esnekliği sayesinde, veri eklemeden önce bir şema oluşturmanız gerekmez. Bunun nedeni, MongoDB'nin dinamik bir veritabanı şeması biçimini desteklemesidir. Bu, şemanızı önceden tasarlama ihtiyacını ortadan kaldırır. Bunun yerine artık verilerinizi depolayabilir ve koleksiyonunuza göre ayarlamalar yapabilirsiniz.
Bir koleksiyonun verilen alanında farklı veri türlerini depolayabilir ve hatta yeni alanlar ekleyebilir, alan değerlerini güncelleyebilir ve mevcut alanları silebilirsiniz. Belgeleri bir nesne veya varlıkla eşlediğinizde bu esnekliğin gerçek faydasını bulacaksınız.
Genel olarak bir koleksiyon ve dokümanı benzer bir yapı izler. Ayrıca, şema doğrulamasını kullanarak koleksiyonunuzun belgeleri için doğrulama kurallarını "uygulayabilirsiniz".
İlişkili: Bir Sonraki Projenizde Dikkate Alınacak Veritabanı Motorları
Bir veri modeli oluştururken, uygulamanızın veritabanı ile nasıl etkileşime gireceğine bakın. Örneğin, yakın zamanda eklenen belgeleri işleyecekse, yüksek verimli işlemleri destekleyen sabit boyutlu koleksiyonlar olan sınırlı koleksiyonları kullanmak iyi bir fikirdir.
Benzer şekilde, uygulamanız çoğu zaman okuma işlemleriyle çalışacaksa, genel sorguları desteklemek ve performansı artırmak için dizinler ayarlayabilirsiniz.
Geleneksel olarak, bir veri modeli oluştururken dikkat edilmesi gereken noktalardan biri, ilgili verilerin nasıl depolanacağıdır. İlişkisel veritabanları tabloları kullanır veri ilişkilerini ayarlamak için birincil ve yabancı anahtarların kullanıldığı verileri depolamak için.
Benzer şekilde, birden çok tablo üzerindeki işlemlere erişmek ve bunları yürütmek için birleştirmeler kullanılır. SQL Server gibi ilişkisel bir DBMS'den MongoDB'ye geçen biri olarak MongoDB'de birleşme bulamayacaksınız. Bunun nedeni, MongoDB'nin, verileri referans alarak veya verileri bir koleksiyona yerleştirerek toplama verilerini depolamasıdır.
Bu nedenle, veri modeliniz ilişkisel bir veritabanında on tablo alıyorsa, MongoDB'nin bunu tek bir koleksiyonda birleştirmenize izin vermesi mümkündür.
Veri Modeli Türleri
Artık MongoDB'de veri modellemenin nasıl çalıştığını bildiğinize göre, MongoDB tarafından desteklenen veri modeli türlerine geçelim. Genellikle, belgenizin yapısına ve uygulamanızın veri ilişkilerine bağlıdır.
Gömülü Veri Modelleri
Verileri MongoDB'de tek bir belgeye veya yapıya gömebilirsiniz. Normalleştirilmiş veri modelleri olarak da anılan bu model, MongoDB’nin zengin belgelerinin tüm potansiyelinden yararlanır. Örneğin, şu örneği düşünün: bir koleksiyonumuz var, öğrenciler bir belge içeren Mat. Bu belgeye iki belge katıştırdık, iletişim detayları ve derece.
{
"_id": "4aad66a4c13bb24f12gh199e",
ad: "Matt",
iletişim detayları: {
telefon: ”555-555-1234”
e-posta adresi: "[email protected]"
},
derece: {
konu: "CS101"
puan: "B"
}}
Gömme, ilgili ayrıntıları aynı belge veya veritabanı kaydında depolar. Bu şekilde, genel veritabanı işlemlerini gerçekleştirmek için gereken sorguları ve güncellemeleri en aza indirebilirsiniz.
Gömülü veri modellerini ne zaman kullanmalısınız? Okuma işlemlerinin performansını iyileştirmek için kullanışlıdırlar. Ek olarak, tek bir kaydın veri alımını işlemede etkilidirler. Bu modelle, ilgili verileri güncellemek için tek bir yazma işlemi kullanabilirsiniz.
Ancak aklınızda bulundurmanız gereken bir şey var: Gömme, oluşturulduktan sonra belge boyutunu büyütür. Bazı durumlarda, bu, yazma performansını etkileyebilir ve ayrıca genişleyen belge boyutundan dolayı veri parçalanması olasılığı da vardır.
Son olarak, nokta notasyonunu kullanarak gömülü belgelerle etkileşime girebilir ve bunların üzerinden kolaylıkla geçebilirsiniz. Sözdizimi şöyledir:
field.nestedField: değer
Yukarıdaki örnek için, aşağıdaki sorguyu yazarak iç içe geçmiş belgelerinize erişebilirsiniz:
db.students.find ({iletişim ayrıntıları: {telefon: ”555-555-1234”, e-posta adresi: “[email protected]”}}). güzel ()
Normalleştirilmiş Veri Modelleri (Referanslar)
Normalleştirilmiş veri modelleri, bire çok ve çoktan çoğa ilişki modelleri oluşturmak için kullanılır. Gömülü belge modelleriyle çalışırken, verileri tekrarlamanız gereken zamanlar olacaktır. Referansların işe yaradığı yer burasıdır - fazlalıkların üstesinden gelirler. Yukarıdaki örnek için referansları nasıl kullanabileceğimiz aşağıda açıklanmıştır.
Tek belgemizi üç belgeye böldük ve o zamandan beri iletişim detayları ve derece kimliğine sahip olmak Mat belge, gerektiğinde onları arayabilirsiniz.
Öğrenci
{
_İD:
kullanıcı adı: "Matt"
}
iletişim detayları
{
_İD:
Kullanıcı kimliği:
e-posta: “[email protected]”
telefon: ”555-555-1234”
}
derece
İD:
Kullanıcı kimliği: ,
konu: "CS101",
puan: "B"
}
Gördüğünüz gibi, normalleştirilmiş veri modelleri, yeni koleksiyonlar arasındaki referansları kullanarak verileri birden çok koleksiyona böler. Diğer koleksiyonları güncelleyecek tek bir belgeyi güncelleyebilirsiniz. Bu, verileri güncellemenin etkili bir yoludur ve çoğunlukla verileriniz sık sık değiştiğinde kullanılır.
Normalleştirilmiş bir veri modelinin daha akıllıca bir seçim olduğu zamanlar şunlardır:
- Belirli bir hiyerarşiyi takip eden büyük veri kümelerini modellemeniz gerekir.
- Birden çoka çok ilişkisini temsil etmelisiniz.
- Gömme, okuma performansınızdan yeterli ölçüde yararlanmadan veri çoğaltmasına neden olur.
Artık MongoDB'de Verileri Kolaylıkla Modelleyebilirsiniz
Şimdiye kadar, MongoDB'deki veri modellemenin, özellikle şema söz konusu olduğunda ilişkisel DBM'lerden ne kadar farklı olduğunu biliyorsunuz. Ayrıca MongoDB'deki normalleştirilmiş ve normalleştirilmiş veri modeli türlerini ve bunları ne zaman kullanacağınızı öğrendiniz.
Ve bu sadece başlangıç; MongoDB'nin verilerinizi nasıl düzenleyebileceği hakkında öğrenecek çok şey var.
Düzenleme seçeneği, en sık talep edilen Twitter özelliklerinden biridir. Öyleyse neden şirket buna izin vermiyor?
Sonrakini Oku
- Programlama
- veri tabanı
Haber bültenimize abone ol
Teknoloji ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için haber bültenimize katılın!
Bir adım daha…!
Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.