Şimdi Ara

Mongodb hakkında

Bu Konudaki Kullanıcılar:
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
343
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar, yeni yeni mongodb öğreniyorum fakat kafama takılan çok temel bir problem var; gordugum kadarıyla normal relational db'de foreing key olarak belirttigimiz bir veriyi mongoda butun bir sekilde embeded document olarak ekliyoruz ve bu da aynı verinin sürekli tekrar etmesine neden oluyor.

    duzgun anlatamamış olabilirim daha iyi anlaşılması için bir örnek vereyim;
    Mesela elimizde bir 'Product' ve 'Category' modelleri olsun.(Category, Product icerisinde instance)

    10 adet faklı category var ve db'de tutmamız gereken 1000 adet product oldugunu farz edelim.

    -- Relational db'de categoryi prodcut a foreing key olarak verdigimiz için toplam hafıza kapladığı yer : (1000 product + 10 category)

    -- Mongodb de ise category sub document olarak ekleneceğinden her bir product için bir de ayrı category yer kaplıyacak yani toplam alan : (1000 product + 1000 category + 10 category) olucak

    boyle bu sekilde fazla yer kaplaması kafamı karıştırdı. Benim yanlış algıladığım birşeyler mi var acaba? Bilen arkadaşlar aydınlatırsa sevinirim.



  • Merhaba,

    rdbms kullanilirken veritabani yapisi verilerin nasil saklanacagina gore yapilir ( normalizasyon ), nosql sistemlerinde ise nasil kullanacaginiza gore.
    eskiden veri tutacak alan ( sabit disk ) kisitli oldugu icin rdbms'ler buna uygun sekilde tasarlanmistir, pk-fk mantiginin sebeplerinden bir tanesi de bu.

    veri yapisini soylediginiz bicimde de tutabilirsiniz fakat nasil kullanacaginizi dusunun oncelikle. Atiyorum
    [
    {
    category : cat1,
    products: [ {p1}, {p2}]
    },
    {
    category : cat2,
    products: [ {p3}, {p4}, {p5}]
    }
    ]

    olarak da tutabilirsiniz ya da

    [
    {product:p1, category:cat1},
    {product:p2 category:cat1},
    ......
    {product:p3, category:cat2}
    ]

    ayni urun birden fazla kategori altinda olabilir mi vs. gibi senaryolar da var.

    Ozet gecersek eger, nosql sistemlerde veri tekrarindan, verinin cok yer kaplamasindan korkmayin. rdbms'ten nosql'e geciste en buyuk degisiklik veri yapisinin kullanima gore tutulmasi.



    < Bu mesaj bu kişi tarafından değiştirildi bestanealtcizgi -- 7 Şubat 2018; 14:21:47 >
  • bestanealtcizgi B kullanıcısına yanıt
    Şimdi anladım sanırım buradaki konsept diskten feragat edip hızdan kazanmak, teşekkürler.
  • nosql esneklik demek. mongodb kullanmadım fakat json gibi program içinden kolay şekilde veri depolama imkanı sağlayan bir sistem. sorduğun soruya gelecek olursak, mongodb'de 'Product' ve 'Category' modelleri belirlemek gibi, bir şema belirlemek disk alanı harcamaz, disk yönetimini mongodb tasarımcıları en iyi sekilde tasarlamış olmalılar cunku en ufak sistemde dahi kullanılabiliyor mongodb.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.