RDBMS(Relational Database Management System) Nedir?

İlişkisel veri tabanı sisteminde veriler tablolar halinde tutulurlar ve bu tablolar kendi aralarında ilişkisel anlamda birbiri ile bağlantılı olabilirler. İlişkisel veri tabanını çeşitli tablolar arasında organize edilmiş verilerden oluşan veri tabanı olarak açıklayabiliriz. Bu farklı tablolar arasındaki veriler, çeşitli anahtarlar vasıtası ile birbirlerine bağlanırlar. İlgili tablolarda, sütunlar arasında bir anahtar sütun yer alır. Bu anahtar sütun aracılığı ile birden çok tablo verileri birbiriyle bağlantı sağlayabilir ve herhangi bir sorgulamada birlikte görüntülenebilir. Bu tür veri tabanları arasında MSSQL, PostgreSQL, MySQL, Oracle, dBase, Informix, Ingres, başta gelmektedir.

Projelerimde genelde kullandığım SQL Server, Microsoft tarafından geliştirilmiş ilişkisel veri tabanı yönetim sistemidir.
Aşağıdaki tabloda Sql Server Management Studio 2012’ye ait sürümleri ve hangilerinin hangi amaç doğrultusunda kullanıldığını görebilirsiniz.

ORM (OBJECT RELATION MAPPING) Nedir?

ORM, Object Relational Mapping anlamına gelmektedir. O/R Mapping olarakta yazılabilir.
Veritabanımızda yaratmış olduğumuz her bir nesneye karşılık kod tarafında bir nesne oluşturan programlardır diyebiliriz.Bu programlar code generation tekniği kullanarak bizim yazmamız gereken kodu otomatik üretiyor.
İlişkisel veritabanları ile Object-Oritented (Nesneye dayalı) uygulamaların arasındaki veri uyumunu sağlayan bir tekniktir. Birbirine uyuşmayan veri tipleri arasındaki veri dönüşümünü sağlar. Bu sayede biz uygulamalarımızda nesneleri kullanırken bunların veritabanında nasıl tutulduğunu dert etmeyiz. Eğer veritabanımızı iyi şekilde tasarlamışsak, nesnelerimizi de ona uygun şekilde oluşturmuşsak işimiz çok kolaylaşır. Veritabanı seviyesine inmeden uygulama verileriyle işlem yapabiliriz.

Avantajları Nelerdir?
Nesneye yönelik programlama metoduna uyumludur.
Programlama dilinden veya veritabanı çeşitlerinden bağımsız.
SQL kodu bilmeden veritabanı işlemleri gerçekleştiren uygulamalar yazabilirsiniz.
ORM araçlarının bir çoğu açık kaynak kodlu.
Polymorphism (çokbiçimlilik) gibi ilişkisel veritabanı problemlerini çözecek yapılar barındırırlar.

Dezavantajları Nelerdir?
Performans ile ilgili problemler ortaya çıkacaktır.
Veritabanı işlemlerine doğrudan etki etmeniz pek olanaklı değildir.
Hangi ORM aracını kullanacaksanız onu öğrenmek için belirli bir zaman harcamanız gerekir.

ORM araçları kullandığınız parametre ve metodlara göre sql kodlarını otomatik olarak üretir. Dolayısıyla üretilen bu kodlarda gereksiz kısımlar olabilir, efektif sql kodlarıyla işlem yapmıyor olabilirsiniz. Basit bir şey istediğinizde bu istek bir çok yapıdan geçip zaman kaybettiriyor olabilir. Bu araçlarla doğrudan sql kodu da yazabilirsiniz.