Veri Tabanı Yönetim Sistemleri I Öğr.Gör.Kenan KILIÇASLAN [email protected] Web: http://www.kilicaslan.nom.tr Yük.Müh.Kenan KILIÇASLAN Veri Tabanı Nedir? Veritabanı, belli bir alanda ve birbiriyle ilişkili olarak düzenlenmiş veriler topluluğudur. Veritabanı, birçok kullanıcı tarafından kullanılan birbiriyle ilişkili geniş bir veri kümesinin düzenlenmesi, depolanması ve sorgulanması için kurulan sistemdir. Veri Tabanı Nedir? Veritabanı, bilgisayar temelli bir kayıt tutma sistemidir. Örnek veritabanları Text dosyaları Excel dosyası Binary dosyalar Text dosyasından veriye nasıl ulaşılır. Text dosyasından veri ilk satırdan itibaren her satır teker teker taranarak arama yapılır. Aranan kayıt bulunmuş ise arama sonlandırılır. Aranan kayıt yok ise arama dosya sonuna kadar devam eder. Binary dosyasından veriye nasıl ulaşılır. Her kaydın bir kayıt numarası (record number) Bir kayda ulaşmak için o kaydın kayıt numarasını bilmek gerekir. Veya Text dosyası gibi her satır (her kayıt) teker teker taranır. Text dosyası gibi bir metod izlenir. Binary dosyasından veriye nasıl ulaşılır. Doğrudan erişim nasıl sağlanır? Aramayı hangi alana göre yapacağız? Örneğin personel numarasına göre arama yapacaksak personel numarasına göre bir index oluşturacağız. Bu index sayesinde aradığımız kaydın, kayıt numarasına ulaşacağız. Bu kayıt numarası ile doğrudan verilere ulacağız. Örnek erişim şekli (vb6) OPEN testfile FOR INPUT AS #1 Do while not eof(1) LINE INPUT #1, degisken İf aradığımız değer bulundumu ) evet döngüden çık Loop CLOSE #1 Örnek erişim şekli (vb6) Open testfile For Random as #1 len =20 Do while not eof(1) INPUT #1, degisken İf aradığımız değer bulundumu ) evet döngüden çık Loop CLOSE #1 Random erişim, doğrudan erişimdir. Biz bu dönem hangi veritabanını göreceğiz.? İlişkisel bir veritabanı olan SQL Server 2000 veritabanı sistemini göreceğiz. Bu veritabanı orta ve büyük ölçekli işletmelerde kullanılmaktadır. Microsoft ürünüdür ve sadece Windows XP, 2003 server gibi Microsoft’un işletim sistemine yüklenmektedir. Neden ilişkisel veritabanı? Önce tarihçesine bakalım İlişkisel veritabanının kökeni, 1970 li yıllarda IBM laboratuvarında yapılan çalışmalarda atılmıştır. Takip eden çalışmalarda 1983 de SQL (Structural Query Language- Yapısal Sorgulama Dili) standartları tanımlanmıştır. 1987 de ISO ve ardından ANSI tarafından standart olarak kabul edilmiştir. Neden ilişkisel veritabanı? 1992 yılında yayınlanan ANSI-SQL 92 standardı bir çok veritabanı yönetim sisteminin temelini oluşturmuştur. Neden ilişkisel veritabanı? İlişkisel veritabanının en önemli yanı, tablolardan oluşmasıdır. Tablo kavramı, günlük hayatta kullandığımız listenin veritabanında karşılığıdır. Örneğin, şuan sınıfta bulunan öğrencileri bir kağıda yazın dediğimde bu bir listedir. Bunu bir veritabanına kaydedin dediğimde ise bu bir tablodur. Kağıtta yazılı liste == Veritabanı tablosu Neden ilişkisel veritabanı? İlişkisel veritabanının en önemli özelliği, veritabanında bulunan tabloların birbiri ile ilişki içinde bulunmasıdır. Zaten ilişki içinde olmasaydı ilişkisel veritabanı diyemezdik. Verilerin farklı tablolar halinde saklanması sayesinde daha fazla veriyi daha az alanda saklamayı başarır. Halen 1970 lerde ortaya atılan ilişkisel cebir ve normalizasyon kuralları uygulanır. Neden ilişkisel veritabanı? Çok kullanılan ilişkisel veritabanı sistemleri (kısaca VTYS olarak anacağız) Oracle Sybase MS SQL Server Informix MySQL dir. Neden ilişkisel veritabanı? Bu VTYS ler işlerini daha kolay yürütmek için kendi adına standart oluşturmuşur. Ancak genel işlemlerde kullanılan dil aynıdır ve adı SQL dir. Transact SQL : Ms SQL Server ve Sybase PL/SQL : Oracle Bu derste hangi SQL dilini öğreneceğiz Transact SQL dilini öğreneceğiz. SQL Server 2005’de uygulamalarını yapacağız. İlişkisel veritabanı örneği Diyelim ki bir firmamız var ve e-ticaret yapmayı düşünüyoruz. Sadece üyelere satış yapacağız. Bu nedenle üç tane liste tutmamız gerekiyor. Biri müşteri listesi, diğeri ürün listesi. Biz bu listeleri veritabanında iki ayrı tabloda tutacağız. Üçüncü listede ise siparişleri tutacağız. İlk liste (Müşteri) Listede yer alan bilgiler Üye kodu : Kaçıncı müşterimiz olduğunu kaydedeceğiz. Adı : Üyenin adı Soyadı : Üyenin soyadı E-Posta , Adres, İli Telefon İkinci liste (Ürün) Listede yer alan bilgiler Barkod numarası Marka Ürün adı Özellikleri KDV oranı Alış fiyatı Satış fiyatı Üçüncü liste (Sipariş) Listede yer alan bilgiler Sipariş kodu : Kaçıncı sipariş olduğu girilecek Sipariş veren : Üyenin adı soyadını yazmak yerine, numarasını yazmak yeterli ve sağlam çözümdür. Bunun anlamlı olması için bu alan ile Üye kodu arasında ilişki olmalıdır. Sipariş verdiği ürün: Ürün detayını doldurmak yerine barkod numarasını yazmak yeterlidir. Yine iki alan arasında ilişki olmalıdır. Örneği şema ile anlatalım