Veri, Veritabanı, DBMS ve JDBC Kavramları

Furkan Yesilyurt
4 min readOct 23, 2021

Bu yazıda veri tabanı kavramı ile ilgili temel ifadelere, SQL’e ve JDBC kavramlarına değindik.

Veri tabanı programlamanın tam anlamı ile kavranması için bazı temel sorulara cevap veriyor olmamız gerekir. Veri nedir? Veri tabanı nedir? Veri tabanı yönetim sistemi nedir?

Basit anlamıyla veri; ölçüm, sayım, deney, gözlem veya araştırma sonucuyla elde edilen ham bilgilerdir.

Veritabanı ise, geniş depolama kapasitesi olan, verileri hızlı bir şekilde depolayıp yine hızlı bir şekilde elde etmeye yarayan, verileri sistematik bir şekilde tutan, farklı türdeki verileri bünyesinde bulunduran, yönetilebilir, güncellenebilir bir yapıdır.

Düzenli verilere sahip olmanın; ileriye dönük geliştirici karar verme, hataları daha kolay çözme ve geleceğe yönelik tutarlı tahminlerde bulunma gibi faydaları vardır.

Veritabanları, veri modelleri ile saklanır. Bu veri modelleri; Nesneye yönelik model, Ağ modeli, Hiyerarşik model, ilişkisel model ve varlık-ilişki model olarak sıralanabilir. Bu modellerden en çok kullanılanı ilişkisel modeldir. İlişkisel modelde veriler tablolar halinde bulunur.

Bizler örneğin excel benzeri yazılımlar sayesinde verilerimizi saklayabiliriz. Neden bir veritabanına ihtiyaç duyalım? Bu soruya aşağıdaki gibi cevaplar verilebilir;

  • Veritabanı sayesinde sütunlarda bulunanacak verilerin aynı veri tipinde olmasını garanti ederiz.
  • Veritabanları sayesinde çok büyük boyutlu veri kümeleriyle daha kolay çalışırız.
  • Çoklu kullanıcı yönetimi için veri tabanları daha uygundur.
  • Veritabanları başka yazılım ve uygulamalarla daha kolay çalışır.

Veri ve veritabanını anlattık. Peki bu verilerimizi, nereye kaydediyoruz? Veritabanını nasıl yönetiyoruz? Burada veri yönetim sistemi(VYTS-DBMS) kavramı ortaya çıkıyor.

Veri yönetim sistemi, veritabanlarını oluşturmak, oluşturulan veritabanları üzerinde silme, ekleme, arama(CRUD) gibi işlemler yapan , veritabanındaki tüm ihtiyaçları gideren yazılım sistemine denir.

Ve gelelim duymaya ve söylemeye alışık olduğumuz SQL konusuna. Alışkanlık olarak ‘SQL’den veri okuma, SQL’e veri yazmak’ gibi kullandığımız bir çok ifadenin yanlış olduğunu anladık. Artık bu cümlelerde kastedilen şeyin veritabanı olduğunu ve DBMS yardımı ile veritabanından okuma yapma olduğunu öğrendik. Peki nedir bu SQL?

SQL, verileri yönetmek ve tasarlamak için kullanılan bir dildir. herhangi bir veri tabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veri tabanı üzerinde işlem yapılabilir; veritabanlarında bulunan sistemlere bilgi ekleme, bilgi değiştirme, bilgi çıkarma ve bilgi sorgulama için kullanılmaktadır. Özellikle de ilişkisel veritabanı sistemleri üzerinde yoğun olarak kullanılmaktadır. SQL’e özgü cümleler kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir.

Aşağıdaki resimde görüldüğü gibi, içerisinde veritabanı barındıran DBMS yazılımı üzerinden verilerimiz için yapmak istediğimiz sorguları SQL dili ile yaparız.

Aşağıda basit bir sorgu örneği görülmektedir.

JDBC

JDBC(Java Dtabase Connectivity), java geliştiricilerine java kodu üzerinden veritabanı yönetim sistemlerine erişim imkanı sağlayan bir java api’sidir. Bu arayüz sayesinde java uygulamalarımız üzerinden herhangi bir veritabanına bağlanıp veritabanından veri elde edebiliriz.

JDBC API, veritabanına bağlanmak için JDBC sürücülerini kullanır. Dört tür JDBC sürücüsü vardır: JDBC-ODBC Köprü Sürücüsü, Yerel Sürücü, Ağ Protokolü Sürücüsü ve İnce Sürücü.

C tabanlı ODBC (Açık Veritabanı Bağlantısı) API’sine alternatif olarak geliştirilen JDBC, bir veritabanı veya RDBMS ile iletişim kuran Java uygulamalarının mekaniklerini işleyen programlama düzeyinde bir arabirim sunar. JDBC arayüzü iki katmandan oluşur:

  1. JDBC API, Java uygulaması ile JDBC yöneticisi arasındaki iletişimi destekler.
  2. JDBC sürücüsü, JDBC yöneticisi ile veritabanı sürücüsü arasındaki iletişimi destekler.

JDBC, uygulama kodunuzun etkileşimde bulunduğu yaygın API’dir. Bunun altında, kullandığınız veritabanı için JDBC uyumlu sürücü vardır.

Peki neden JDBC kullanmalıyız?

JDBC’den önce ODBC API, sorguyu veritabanına bağlamak ve yürütmek için kullanılan veritabanı apı’siydi. Ancak, ODBC API, C dilinde yazılmış ODBC sürücüsünü kullanır (yani platforma bağımlı ve güvenli olmayan). Bu nedenle Java, JDBC sürücülerini (Java dilinde yazılmış) kullanan kendi API’sini (JDBC API) tanımlamıştır.

JDBC Bileşenleri

Java da veritabanı uygulamaları yazabilmek için bilmemiz gereken bir takım yazılımsal ögeler vardır. Bunlar veritabanına bağlantıi veritabanına sorgu gönderme ve veritabanından dönen verileri tutma gibi görevleri üstlenirler. Bu bileşenler aşağıdaki gibidir.

  • Connection
  • Statementlar (Statement, PreparedStatement, CallableStatement)
  • ResultSet

Bileşenler ile ilgili örnek kodlar bir sonraki yazımızda örnek bir senaryo dahilinde yazılacaktır.

Connection

Veri tabanına bağlantı yapmamızı sağlayan bileşendir. Veritabanı ile java uygulamamız arasında bir köprü kurar. SQL sorguları bu bileşen sayesinde çalıştırılır ve dönen sonuçlar yine bu bileşen sayesinde bize döner. Connection bileşeni oluşturulduğu an Statement bileşeni oluşturulabilir hale gelir.

Veri tabanına bağlanmak için iki sınıftan yararlanabiliriz. Bunlar; DriverManager ve DataSource. Veritabanına bir connection oluşturabilmek için DriverManager sınıfının getConnection() metodunu kullanırız. Bu metodu kullanabilmek için 3 parametreye ihtiyacımız var. (Bağlantı metni, veritabanı kullanıcı adı ve veritabanı kullanıcı şifresi)

Statement Bileşenleri

Veritabanı ile bağlantımızı oluşturduktan sonra SQL sorgularını çalıştırabilmek için Statement bileşenlerine ihtiyacımız vardır. Üç farklı Statement bilşeni vardır. Bunlar; Statement, PreparedStatement, CallableStatement.

ResultSet

Bu bileşen veritabanından dönen verileri içinde tutan bileşendir. Verileri bir kere ResultSet bileşenemize yükledikten sonra bu sınıfın next() metodu ile veri satırını elde edebiliriz. Daha sonra bu satır üzerinde doğru tip metodlarına istenilen parametreleri vererek verileri elde edebiliriz.

--

--