Genel Soru
Veri yapılarını kullanan algoritmalar ile veritabanlarını kullanan algoritmalar arasındaki farklar nelerdir?
Bazı Bağlamlar
Bu bir süredir beni rahatsız eden bir soru ve bunun için ikna edici bir cevap bulamadım.
Şu anda, elbette, veri yapılarını yoğun bir şekilde içeren algoritmalar hakkındaki anlayışımı güçlendirmeye çalışıyorum. Bunlar Çanta, Kuyruk, Yığın, Öncelik Kuyruğu ve Yığın gibi temel yapılardır.
Ayrıca son kullanıcı tarafından işlenen ve gönderilen veya program tarafından işlenen verileri depolamak için günlük olarak veritabanları kullanıyorum. Veriyi, veri tabanındaki tablolara dayanarak oluşturulan kendi veri yapılarına sahip bir DAL aracılığıyla alıp gönderirim.
Sorularım, bana artan veya azalan bir şekilde sipariş vermek için veritabanını kullanarak verileri sıralama seçeneğine sahip olduğumda veya verileri mantığıma alıp yüklediğimde, bu verileri öncelik kuyruğunda işlediğinde ve yığın sıralamasında geldiğimde geliyor hepsini. Ya da bir diğeri, kayıtların bir alt kümesini yüklemek yerine, ilgilendiğim kaydı veya kayıtları bulmak için ikili arama gibi bir şey kullanmak yerine veritabanını kullanarak kayıtları aramak olacaktır.
Aklımda, iletişim pahalı olduğu için göndermeden önce veritabanı ucunda çok sayıda işlem yapılmasına çalışacağım. Bu aynı zamanda veriyi veritabanınınkinden ziyade verileri işlemek için tamamen kendi mantığınız içinde tanımlanmış algoritmaları ve veri yapılarını ne zaman kullandığınızı merak ediyor.
İşte sorular ...
Sorular
- Veri yapıları ve veritabanları arasındaki farklar nelerdir?
- Veritabanınınkini değil, yalnızca kendi mantığınız içinde tanımlanan veri yapılarını kullanan algoritmaları ne zaman kullanıyoruz?
- @Harvey post: Veritabanındaki yöntemlerin kullanımı ne zaman kendi mantığınızdaki yöntemlerden daha az verimli olur?
- @mirculixx post: Bir yöntemi etkili kılan nedir?
- @Harvey post: Veri yapıları olan verileri, veritabanında yapmaktan daha hızlı nasıl işliyor?
Açıklamalar
- @ Hibe yazısı: Normalde çalıştığım veritabanları ilişkiseldir ve bu sorular onlarla çalışmaktan çıkmaktadır. Ancak, bu soruların herhangi bir kalıcılık çerçevesi için geçerli olduğunu düşünüyorum (çerçeve dediğimde, bunu en genel anlamda kastediyorum).
Belirli bir bağlamı olmayan cevapların zor olduğunu biliyorum. Düşünce yiyecekleri, tavsiye veya tartışma noktaları temelde aradığım şeydir ve en çok takdir edilecektir!