Nesne Tabanlı Programlama C# ve.net Framework Veritabanı İşlemleri Veri Merkezli Uygulamalar ve Ado.NET e Giriş Veri Merkezli Uygulamalar Yapısal Olmayan: Bu yöntem ile depolanan veriler için belirli bir sınıflandırma ve sıralama yoktur. Veriler düz bir şekilde kaydedilir. Örneğin basit not dosyaları. Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 1
Yapısal: Bu yöntem ile depolanan veriler çeşitli gruplara ayrılarak saklanır fakat bu gruplar arasında bir alt-üst ayrımı yapılmaz. Örneğin virgülle ayrılmış dosyalar (csv), Excel belgeleri. Hiyerarşik: Hiyerarşik depolama yöntemini ağaç yapısına benzetebiliriz. Bu yöntemde veriler çeşitli kategorilere bölünerek depolanır. Her bir kategorinin içerisinde alt kategorilerde olabilir. Örneğin XML (extensible Markup Language) dosyalar. İlişkisel Veritabanı: İlişkisel veritabanlarında veriler tablolar üzerinde depolanır. Tablo içerisindeki her bir satır kaydı, her bir sütun ise veriyi ifade eder. Örneğin SQL Server, Oracle, Access. Nesne Yönelimli Veritabanı: En gelişmiş veri depolama yöntemidir. Bu yöntemde veriler; ihtiyaca göre gruplandırılarak, nesneler içerisinde saklanır. Örneğin Versant, AOL Bağlantılı (Connected) Veri Ortamları Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 2
Bağlantılı veri ortamları, uygulamaların veri kaynağına sürekli bağlı kaldığı ortamlardır. Bu ortamlarda veri alma ve değiştirme işlemleri uygulama ile veri kaynağı arasında bağlantı kurulduktan sonra gerçekleştirilir. Bağlantılı veri ortamlarında, veri işlemleri gerçekleştiği sürece bağlantı açık kalır. Avantajları: En güvenli veri ortamıdır. Veri kaynağına yapılan eş zamanlı erişimlerde, veri kaynağının kontrolünü kolaylaştırır. Dezavantajları: Uygulama ile veri kaynağı arasında gerçekleşen bağlantıyı koruyabilmek için sabit bir ağ bağlantısının olması gerekir. Uygulama ile veri kaynağı arasındaki bağlantı ağ üzerinden gerçekleştiği için, ağ trafiğinin yoğunluğunu artırır. Örneğin araba üreten bir fabrikada yapılan üretim bilgilerinin diğer birimlere ulaştırılması ve bu kayıtların depolanması için eşzamanlı bir bağlantı kurulması gereklidir. Ya da bir emlak firmasında emlakçının, mülk ve menkul bilgilerini güncel tutabilmesi için sabit bir bağlantı kurması gereklidir. Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 3
Bağlantısız (Disconnected) Veri Ortamlar Bağlantısız veri ortamı, uygulamanın veri kaynağına sürekli bağlı kalmadığı veri ortamıdır. Uygulama ile veri kaynağı arasında bağlantı, veri alış verişi yapılırken açılır ve işlem bittikten sonra kapatılır. Bu veri ortamları çevrimdışı çalışmak için kullanılır. Teknolojinin ilerlemesi ve veri depolayan araçların taşınabilirliğinin sağlanması ile tüm dünyada çevrimdışı ortamlara duyulan ihtiyaç artmıştır. Laptop, Notebook ve Pocket PC gibi araçların yaygınlaşması ile günümüzde uygulamanın veri kaynağına bağlı olmadığı durumlarda bile veri girişi yapılabilir. Uygulamada sadece çevrimiçi veya çevrimdışı ortamlardan birini seçmek yeterli olmayabilir. Gelişmiş uygulamalarda her iki ortamın avantajlarını birleştiren bir çözüm tercih edilebilir. Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 4
Avantajları: Laptop, Notebook ve Pocket PC gibi araçlarla girilen veriler, istenilen zamanda veri ortamlarına aktarılabilir. Çevrimdışı ortamlar sayesinde, verilerin depolandığı uygulama üzerindeki yük hafifletilir. Bu durum performans artışını sağlar. Dezavantajları: Bağlantısız veri ortamlarında, verilerin güncel kalmasına dikkat edilmelidir. Bu ortamlarda veri güncelleme işlemleri farklı zamanlarda gerçekleştirilebilir. Veri üzerinde yapılan bu değişimlerin, diğer kullanıcılara gösterilebilmesi için çeşitli çözümler geliştirilmelidir. Bağlantısız veri ortamları içerisinde farklı kullanıcılar eşzamanlı güncelleme işlemleri gerçekleştirebilir. Bu durumda oluşacak veri çakışmalarının engellenmesi gerekir. Örneğin bir toptancı firmasında, firma çalışanları farklı konumdaki bayilerinin tüm siparişlerini bir el bilgisayarına kaydedebilir. Bu veriler el bilgisayarında geçici bir süre için depolanır. Bu süre çalışanların sahada kaldığı süredir. Süre sonunda veriler sunucu bilgisayara aktarılır. Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 5
ADO.NET e GİRİŞ ADO.NET Nedir? Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 6
ADO (ActiveX Data Objects), farklı veri kaynaklarına hızlı ve güvenli erişim için Microsoft tarafından geliştirilen nesne modelidir. ADO.NET ise ADO teknolojisinin en yeni versiyonudur. ADO ile aynı programlama modelini kullanmamakla birlikte, ADO modelinden gelen pek çok çözüm yolunu da beraberinde getirir. Uygulama gelişim ihtiyacı arttıkça, yeni uygulamalarda Web uygulama modeline olan bağlılık gittikçe azalmaktadır. Şimdilerde ise ağ bağlantıları üzerinden veriyi rahatça aktarabilmek için XML kullanımına olan yönelim artmaktadır. İşte ADO.NET, XML ve ADO.NET in.net Framework içinde en uygun şekilde programlama ortamı oluşturmamızı sağlar. ADO.NET modelinin diğer veri erişim modellerine göre üstünlüklerini şöyle sıralayabiliriz: ADO.NET, veritabanından çekilen verilerin kopyasını XML formatını kullanarak belleğe aktarır. Uygulamanın kullanıcı sayısı arttıkça kaynak kullanımı da artmaktadır. N-Katmanlı (N-tier) uygulama yapısı kullanılarak, uygulamaların katmanlar üzerinden dağıtılması sağlanır. Böylece uygulamaların ölçeklenirliği artar. ADO.NET ile bağlantısız veri ortamları için uygulama geliştirilebilir. ADO.NET gelişmiş XML desteği verir. Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 7
ADO.NET Nesne Modeli ADO.NET nesne modeli iki ana bölümden oluşmaktadır. DataSet Sınıfları.NET Veri Sağlayıcı Sınıfları DataSet sınıfları, çevrimdışı ortamlar için veri depolama ve yönetme işlemlerini sağlar. DataSet sınıfları veri kaynağından bağımsız her tür uygulama ve veritabanı için kullanılabilir. Özellikle İlişkisel Veritabanı, XML ve XML Web Servisleri üzerinden veri çekmek için kullanılır..net veri sağlayıcı sınıfları, farklı türdeki veritabanlarına bağlanmak için kullanılır. Bu sınıflar sayesinde istenilen türdeki veri kaynağına kolayca bağlantı kurulabilir, veri çekilebilir ve gerekli güncelleme işlemleri yapılabilir. ADO.NET nesne modeli, aşağıdaki veri sağlayıcı sınıflarını içerir: SQL Server.NET Veri Sağlayıcısı OLE DB.NET Veri Sağlayıcısı Diğer.NET Veri Sağlayıcıları Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 8
ADO.NET Veri Sağlayıcıları Tüm veri sağlayıcıları, System.Data isim alanı içinde tanımlanmıştır. SQL Server.NET: SQL Server 7.0 ve SQL Server 2000 veritabanlarına hızlı bağlantı sağlar. SQL Server bağlantı nesneleri System.Data.SqlClient isim alanında bulunur. OLE DB.NET: SQL Server 6.5 ve daha öncesi sürümlerine, Oracle, Sybase, DB2/400 ve Microsoft Access veri tabanlarına bağlantı kurmayı sağlar. OLE DB bağlantı nesneleri System.Data.OleDb isim alanında bulunur. ORACLE.NET: Oracle veritabanlarına bağlantı için tasarlanmış veri sağlayıcısıdır. Oracle bağlantı nesneleri System.Data.OracleClient isim alanında bulunur. ODBC.NET: Diğer veritabanlarını destekleyen genel bir veri sağlayıcıdır. ODBC bağlantı nesneleri System.Data.ODBC isim alanında bulunur. Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 9
Öğrenim ve kullanım kolaylığı olması amacıyla ADO.NET veri sağlayıcıların isimlendirilmesinde genelleştirmeye gidilmiştir. SQL Server.NET veri sağlayıcılarının sınıf isimleri Sql ön eki ile, OLE DB.NET veri sağlayıcılarının sınıf isimleri ise OleDb ön eki ile başlar. Bu genellemeye SqlConnection ve OleDbConnection örnekleri verilebilir. XxxConnection : Veri kaynağına bağlantı için kullanılan sınıftır. Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 10
XxxCommand: Veri kaynağı üzerinde sorgu çalıştırmak için kullanılır. Veri kaynağından dönen kayıtlar XxxDataReader veya DataSet kullanılarak veri bağlantılı kontrollere aktarılır. XxxDataReader: Çevrimiçi bağlantılarda sadece veri okumak için kullanılan sınıftır. XxxDataAdapter: Çevrimdışı bağlantılarda kullanılan veri işleme nesnesidir. NOT: Xxx yerine seçilen veri sağlayıcısına göre SQL, OLEDB, Oracle ve ODBC eklerinden biri kullanılır. Bir sonraki konu Nesne Tabanlı Programlama Dersi, C# ile Veri Tabanı İşlemleri Durhan GABRALI 2018 11