Merhabalar, iyi geceler diliyorum. Sunduğunuz argümanı doğru anladığıma inanıyorum. Açıklamalarınıza zaten katılıyorum bunlar herkesin bildiği şeyler; DBMS'in RDBMS ve NoSQL'i tek çatı altında toplayan bir terim olmadığını da zaten iddia etmiyorum. Ancak "ısrarla yanlış verilmiş" ifadenize kesinlikle katılmıyorum.
Eğer bahsi geçen terimlere kuralı kuralına riayet etmemiz gerekseydi zaten bu bağlamda sizlerin paylaşmış olduğu bilgiler de hatalı olacaktı: En basit örnek olarak Dr. Edgar Frank Codd İlişkisel Veri Tabanı Yönetim Sistemi'nin oluşabilmesi için kendisinin belirlediği 12 adet kuralın uygulanması gerektiğini ifade eder. Peki size soruyorum günümüzdeki İlişkisel Veri Tabanı Yönetim Sistemi olarak nitelendirilen yazılımların kaç tanesi bu 12 adet kuralın tamamına uymaktadır? Neredeyse hiçbirisi... (MySQL "View Update", "Distribution Independence", "Logical Data Independence" ve "Non-Subversion Rule" kurallarını uygulamamaktadır. PostgreSQL, Oracle SQL ve Microsoft SQL Server'da ortak olarak "Logical Data Independence" ve "Non-Subversion Rule" kurallarını uygulamamaktadır.) Bu bağlamda bu yazılımları, Dr. Codd'un sunduğu bu 12 adet kuralı uygulamadıkları için İlişkisel Veri Tabanı Yönetim Sistemi olmadıklarını iddia etmemiz gerekir fakat bu da son derece yanlıştır. Çünkü günümüz konjonktüründe İlişkisel Veri Tabanı Yönetim Sistemi'ni ifade eden yazılımlar bizzat bunlardır ve hala kullanılmaya devam edilmektedir...
Bir de konuyu daha da kompleks hale sürükleyen "Hibrit Yapılanma" unsuru vardır: Microsoft SQL Server'da, Oracle SQL'de, PostgreSQL'de JSON ve XML veri türlerini desteklemektedir. Bu bilindiği üzere İlişkisel Olmayan (Belge Odaklı) Veri Tabanı'na ait bir özelliktir. Öyleyse bu bağlamda bahsi geçen bu İlişkisel Veri Tabanı Yönetim Sistemi yazılımlarını aynı zamanda dolaylı ya da direkt olarak İlişkisel Olmayan Veri Tabanı Yönetim Sistemi olarak da nitelendirmemiz gerekir. Ancak yine günümüz konjonktüründe böyle tanımlanmamaktadırlar. Tam tersi bir örnek olarak da İlişkisel Olmayan (Belge/Doküman Odaklı) Veri Tabanı MongoDB'de ilişkisel veri modelleme araçları (MongoDB Atlas'tan bahsediyorum) sunmaktadır ve yakın yıllarda bünyesine kazandırdığı yeniliklerle şaşırtıcı bir şekilde 12 kuralın yalnızca 4 tanesi'ni karşılamamakta, 5 tanesini yaklaşık yarıya yarıya karşılamakta, geriye kalan 3 kuralı ise tamamen karşılamaktadır. Bu doğrultuda yine bu ve buna benzer nice yazılımların İlişkisel Veri Tabanı Yönetimi Sistemi ya da İlişkisel Olmayan Veri Tabanı Yönetim Sistemi olarak nitelendirilmesi inanılmaz karmaşık bir noktaya sürüklenmektedir. Örnek sayısı çok daha fazla arttırılabilir ancak yeterince kendimi ifade ettiğime ve anlaşıldığıma inanıyorum.
Sonuç olarak Veri Tabanı Yönetim normlarının her geçen gün farklı bir noktaya sıçradığı bu konjonktürde (özellikle yapay zekanın da devreye girmesiyle), son derece kompleks ve terminolojiye oranla birbiriyle sürekli tezatlık barındıran bu yazılımları ısrarla bir terime/tanıma sığdırmaya çalışmanın personele/uzmana bir kazanç sağlamayacağını savunanlardanım. Elbette ki bu terimler bahsi geçen disiplinde öğrenmeye yeni başlamış öğrenciler için teorik altyapının oluşturulmasında çok ciddi fayda sağlayacaktır ancak spesifik olarak incelemeler yapıldığında çok ciddi pürüzlerin bulunduğunu onlar da anlayacaktır. Tekrar belirtmem gerekirse: Açıklamalarınızı inkar etmiyorum tam aksine destekliyorum fakat teori ile pratiğin keskin olarak ayrıştığı ya da tezatlaştığı hususlardan ötürü "ısrarla yanlış verilmiş" açıklamanıza kesinlikle katılmamaktayım. Son olarak kendi adıma konuşmam gerekirse sektördeki uzmanların (özellikle formal eğitim almayıp bu alanda çalışan kişiliklerin) sahip oldukları profesyonel nitelikleri gördükten ve özümsedikten sonra teoriye pek takılmamak gerektiği kanaatindeyim. "Konunun ağırlıklı olarak 'Her Yiğidin Bir Yoğurt Yiyişi Vardır' muhabbetiyle ilgili olduğuna inananlardanım" diyerekten açıklamalarımı bitireyim...
Teorik bilgi olarak sizinle yarışamam muhtemelen çünkü anladığım kadarı ile uzun süredir dbmsler ile ilgileniyorsunuz, bir sene önceki şu topicteki dbmsler ile ilgili sorunuz üzerinden iletişimimiz olmuş hatta
Veri tabanı yönetim sistemlerinin benimsemiş olduğu veri tabanı programlama dilleri nelerdir? Örneğin: Ms SQL = t-SQL Oracle SQL=PL/SQL MySQL? PostgreSQL? Yukarıda soru işareti ile belirtilmiş olan veri tabanı yönetim Sistemleri'nin kullanmış olduğu veri tabanı programlama dillerini araştırmama...
www.technopat.net
Ancak bu kadar fazla teorik bilgiye takılıp kalmak, özellikle de henüz öğrenciyseniz/henüz iş hayatına atılmamış yeni mezunsanız vs. pratik bilgi edinmenizin önüne geçmemeli. Akademik seviyede disiplinle, seçili bir konuda literatür tarayıp ezberlemeniz hayranlık uyandırıcı, ancak sorun şurada;
siz; Dr. Edgar Frank Codd diye bir adamı biliyorsunuz ya da araştırdınız ve öğrendiniz, bir dbms relational mıdır değil midir buna nasıl karar verilebilir konusunda, pek çok rdbms'in bu adamın 12 kuralının tamamına uymadığından bahsedebiliyorsunuz şu anda ki bu en basit örnekmiş
ben; bu adamı duymadım, bu en basit örnek diye tabir ettiğiniz şeyi bile araştırmam gerekir
siz; bu kadar teorik bilgiye rağmen, "...NoSQL ya da DBMS (Database Management System) adı verilmektedir" diyorsunuz. Tek bir defa bunu deseniz yanlışlık yaptınız diyeceğim, birkaç defa kullandığınıza göre bilgi yanlış.
ben; nosql ile dbmsnin direkt aynı şeyler olmadığını biliyorum.
siz; rdbms'lerin 12 tane kuralın pek çoğuna uymadığından, böyle ele alırsak teorik olarak hiçbirinin rdbms sayılamayacağından bahsediyorsunuz, sonra tabi ki bu yaklaşım yanlıştır diyorsunuz (o zaman bu yaklaşımdan bahsetmesek olurmuş şu anda) hatta bir rdbms mesela json verisi tutabiliyor, mongodb ise bu rdbms tanımlayan 12 kuralın bir çoğuna uyuyor, o zaman kesin bir biçimde dbmsleri relational/relational değil diye ayırabilir miyiz diyor, bu kadar teorik bilgi verdikten sonra teorik bilgiye bu kadar takılmamalıyız şeklinde laf ebeliği yapıyorsunuz
ben; nosql ya da rdbmsleri, teorik 12 tane kuralla değil belli başlı birkaç pratik core kural ile nasıl ayrıldığını biliyorum, mesela db schema baştan mı ayarlanıyor yoksa yapısal olarak özgür müyüz, dbdeki her kayıt farklı bir yapıya sahip olabilir mi, kolonlar keylerle relational olarak bağlanıyor mu, mesela update işlemi cascade olabiliyor mu, sql kullanılabiliyor mu vb.
siz; aslında siz de mesela mysqlin ya da mongodbnin nosql mi yoksa rdbms mi sayılması gerektiğini biliyorsunuz ama retorik ile uğraşmak daha çok hoşunuza gidiyor, bir dbms'in relational mı değil mi diye nitelendirmesi inanılmaz karmaşık noktalara sürüklenmektedir gibi bir cümle kuruyorsunuz mesela. Yoo öyle bir noktaya sürüklenmiyor.
ben; diyorum ki "ilişkisel olmayan veri tabanı sistemine DBMS denir" şeklinde yanlış bir bilgiyi ısrarla tekrarlıyorsunuz.
siz; bunun üzerine kavramları ısrarla kalıplara indirmeyelim, tek bir terime sıkıştırmayalım, teoriye takılmayalım vb. diyorsunuz; ancak başlığı açan arkadaşın "Veri işlerinden, database işlerinden, SQL ve regext ten şu anda anlamıyorum." diye tek bir cümlesi üzerine databaseler üzerine 2 sayfa uzunluğunda tamamen teorik bilgiler üzerinden cevap yazarken bu terimleri kullanmaktan pek kaçınmıyorsunuz. Açıklamalarınızı inkar etmiyorum diyorsunuz; açıklamam da şu: "siz ısrarla dbms = nosql diyorsunuz, dbms genel ifadedir, nosql değildir, insanları yanlış bilgilendiriyorsunuz", bu kadar açıklama.
Yani özetle; "Yeni başlayan yazılımcı nasıl devam etmeli" diye başlık açan birisinin sorduğu sorulardan; muhakkak pek çok bilgi sahibi olduğunuz database konusunu seçip, nedense Bilgisayar Mühendisliğine Giriş dersindeki "DBMS nedir?" başlıklı bir araştırma ödevini hazırlarcasına; soruyu soran arkadaş için bu yeni başlayan birisi için gerekli/gereksiz seviyede ne kadar teorik bilgi ile doldurduğunuz, içinde kompleks, bağlam, perspektif, spesifik, unsur, ütopik, konjonktür vb. vb. (essay, bitirme tezi vb. akademik çalışmaların favori kelimeleri, yazıyı dolu, yazanı da işin duayeni gösterir) kelimeleri kullandığınız cevaplarınızda, birkaç defa geçtiğini gördüğüm ve beni rahatsız eden, şu şekilde alıntıladığım
RDBMS (İlişkisel Veri Tabanı Yönetim Sistemleri) ve DBMS'ler (İlişkisel Olmayan Veri Tabanı Yönetim Sistemleri)
Bunların genel adına ise NoSQL ya da DBMS (Database Management System) adı verilmektedir.
RDBMS'i (Relational Database Management System) Türkçe karşılığıyla İlişkisel Veri Tabanı Yönetim Sistemi'ni, İlişkisel Olmayan Veri Tabanı Yönetim Sistemi'nden (DBMS) ayıran en temel faktördür:
bilgi yanlış; ısrarla yanlış kullanılmış. Mevzu; hibrit bir dbms için acaba nosql mi sayılır, rdbms mi sayılır tartışması da değil ki yoruma açık olsun. Her yiğidin bir yoğurt yiyişi yok burada, dalga mı geçiyosunuz?
Şu anda Nosql = dbms demektir demiyorsanız bu ısrarla dediklerinizin yanlış olduğunu kabul edin, siz bana söyleseniz böyle bir durumda, ben yanıldığımı kabul ederdim. Yine uzun; "bu budur, şu şudur ama bunu şey edebilir miyiz, teoriği böyle ama bunu kabul etmemiz de yanlış olur hani, kalıplara bu kadar takılmak personele fayda sağlar mı... bla bla bla" benzeri bir cevap vermenize hacet yok, tartışılacak bir durum söz konusu değil çünkü.
Forumda bildiğim, mesela Bitwise vb. bir kullanıcı; "haksızlık ediyorsun yea, nosql demek dbms demektir" diyecekse ya da "arkadaş yanlış bilgiyi sadece 3 kere vermiş ve en son cevabında terimlere çok takılmayalım diye kıvırmış, bu yanlış bilgiyi savunmak, yanlış bilgide ısrar etmek saylanmaz" şeklinde bir görüş belirtecekse ilginç olur.