BIM 312 Database Management g Systems Veritabanı Kavramına Giriş Veritabanı Nedir? Veritabanı, birbirleriyle ilişkili verilerin hızlı ve verimli bir şekilde ulaşılmasına olanak verecek biçimde saklanmasıyla kl l oluşan l k kayıtlar l topluluğudur. l l ğ d Veritabanı, sistem süreçlerinde oluşan verilerin daha sonra ulaşılmak amacıyla elektronik ortamlarda, belli kurallar ve birbirleriyle olan ilişkilerini koruyacak şekilde saklanmasıyla oluşan kayıtlar topluluğudur. Neden Veritabanı Kullanılır? Gereksiz veri tekrarını önler. Bellek israfını önler. Daha güvenli bir şekilde verilerin saklanmasını sağlar. Veri paylaşımı sağlanır. Veriler daha düzenli bir şekilde tutulur, veri bütünlüğü ğ sağlanır. • Verilerin yönetilmesi için kullanılmalıdır. • • • • • Neden Veritabanı Kullanılır? Küçük bilgi kümeleri için metin dosyaları ya da hesap çizelgeleri çoğu zaman yeterli olacaktır. Ancak saklanan veri miktarı arttıkça, bu verilere daha hızlı ve verimli bir şekilde ulaşabilmek için veritabanı gerekecektir. Veritabanı gerektirecek hızın ve veri miktarının ölçüsü işletmeye, verinin kullanım amacına, verinin önemine, yapılacak yeni yatırım için ayrılabilecek bütçeye ve daha başka birçok etmene bağlıdır. Neden Veritabanı Kullanılır? Veritabanı’nın Yararları Hız: Veritabanında saklanan verilere ulaşmak, kağıt üzerinde ya da farklı elektronik dosyalarda saklanan verilere ulaşmaktan daha hızlıdır. Yer tasarrufu: Veritabanı kullanıldığında o kadar verinin saklanacağı kağıttan ve bu dosyaların tutulacağı yerden tasarruff edilmiş dl olur. l Paylaşım kolaylığı: Veritabanında sakladığınız verileri aynı ağ üzerindeki kullanıcılarla ya da Internet’e açarak tüm dünya ile paylaşmak mümkündür. Veritabanı’nın Yararları Güvenlik: Veritabanları üzerinde veritabanı yöneticisinin gerekli güvenlik kısıtlamalarını ayarlaması ile yüksek güvenlik sağlanabilir. Doğruluk: Veritabanlarındaki veriler, tek bir kaynaktan paylaşıldığı için tekrara yol açmaz ve doğruluğundan emin olunabilir. olunabilir Oysaki kağıt üzerindeki veya metin dosyalarındaki veriler çoğunlukla versiyon ve tarih bilgisine dikkat edilmediğinden yanlış bilgilendirmeye yol açabilirler. Veritabanı İşlemleri Yeni dosya y eklemek Yeni veri eklemek Veri değiştirmek Veri silmek Dosya silmek l k Var olan veriyi çeşitli biçimlerde ya da sorgu sonuçlarına göre görüntülemek Veritabanı Türleri Veritabanı türleri,, verileri yyapılandırma, p , saklama ve bu verilere ulaşma şekillerindeki farklılıklarla ayrılırlar. Yapısal olarak üç ana veritabanından söz edilebilir: İlişkisel veritabanları Hiyerarşik y ş veritabanları Nesneye yönelik veritabanları İlişkisel ş Veri Tabanları En yaygın olarak kullanılan veri tabanlarıdır. Çünkü hem ana bilgisayarlarda hem de PC tabanlı ortamlarda çalışan örnekleri vardır. İlişkisel veritabanı, verileri tablo adı verilen listelerde saklayarak listeler arasında ilişkiler tanımlar. İlişkisel veri tabanlarının temel ö llikl i şu şekilde özellikleri kild sıralanabilir: l bili yapısal Bir ilişkisel veri tabanı içinde bilgiler, tablolar halinde saklanırlar. saklanırlar Tablolar dikey olarak “alan”lardan, yatay olarak “kayıt”lardan y oluşurlar. ş Bir tablodaki alan veya alanlar, esas anahtar olarak tanımlanırlar. Bir tablodaki kayıtlar, tanımlanan bir esas anahtara göre sıralanırlar. Hiyerarşik y ş Veri Tabanları Hiyerarşik veri tabanları, tabanları bilgileri bir ağaç yapısında saklar. saklar “Kök” olarak l k bi bir k kayıtt ve b bu kök köke b bağlı ğl “dal” “d l” k kayıtlar tl b bu tip veri tabanının yapısını oluşturur. Nesneye yönelik veritabanları Nesneler, bir tabloda yer alan bir kayıttan çok daha Nesneler karmaşık bir yapıya sahiptirler ve daha esnek bir yapıda kullanışlı bir şekilde düzenlenebilirler. Nesneye dayalı bir veri tabanında yapısı gereği arama işlemleri çok hızlı yapılabilmektedir. Büyük tablolarla uğraşırken ğ ş ilişkisel ş veri tabanları sayesinde y ççok daha hızlı sonuca ulaşılmaktadır. 1) Microsoft Access Microsoft firmasının Office paketi içinden çıkan Access, paralı veritabanları arasında nispeten ucuz olarak göze çarpar. çarpar Eğer bir web sitesinde veri miktarı ve aynı anda yapılan işlem sayıları az ise, Access kullanabilirsiniz. Tek bir veri tablosunda 2 GB a kadar veri depolayabilir ve aynı anda 255 bağlantıya izin verebilirsiniz. 2) MySQL Access ile karşılaştırıldığında daha güvenlidir. Windows’un yanı sıra Linux, OS/2, Solaris, AIX ve birçok işletim sistemini desteklemesi nedeniyle çok yaygındır. Ev kullanıcıları tarafından,, kolayy kurulumu ve g gelen kurulum paketleri nedeniyle sıkça tercih edilmektedir. Tablo başına 8 TB veri depolayabilmektedir. Özellikle web uygulamaları için oldukça hızlıdır. 3) IBM DB2 IBM firmasının ürünü olan DB2, Access ve MySQL’e göre daha performanslı, ancak küçük işletmelere göre daha yüksek maliyete sahiptir. sahiptir Windows ve Unix sistemlerinde çalışabilir. 4) Microsoft SQL Server Yine Microsoft firmasının bir ürünü olan Microsoft SQL Server (MSSQL), iyi bir performansa sahiptir. En büyük dezavantajı, sadece Windows üzerinde çalışabilmesidir. Kullanım kolaylığı, güvenilirliği ve i l işlem gü ü l dikkat gücüyle dikk t çekmektedir. k kt di Maliyeti M li ti diğer diğ veritabanlarına it b l göre ö yüksektir. ük kti Tablo T bl başına 4 TB veri depolayabilmektedir. 5) Oracle Oracle, dünyanın en güçlü ve güvenilir veritabanı olarak gösterilmektedir, ancak çok yüksek maliyeti nedeniyle sadece d bü ük kurumların büyük k l tercih ih edebilecekleri d bil kl i bir bi veritabanıdır. Windows ye Unix sistemlerinde kullanılabilmektedir. Oracle, sınırsız sayıda tabloları desteklemektedir. Oracle desteklemektedir Çok büyük yazılım desteği vardır. Veritabanı Yönetim Sistemleri Veritabanı Yönetim Sistemleri bir veritabanı üzerinde yapılması gerekecek tüm işlemlerin veri tabanı yöneticisi tarafından yapılmasını sağlayan, aynı zamanda veritabanına gelen tüm istekleri işleme ş koyup denetleyen sistemdir. Veritabanı Yönetim Sistemleri V it b Veritabanı yönetim ö ti sistemlerinin i t l i i b başlıca l ttemell görevleri: ö l i Veritabanının V it b ve verinin i i ttanımlanması l Verinin güncellenmesi ve sunulması V i b Veritabanı b k bakımı Güvenlik Veri yedeklenmesi ve kurtarılması Uygulama yg Alanları Veritabanlarında tutulan veriler, sorgulama yazılımları, rapor üreten yazılımlar, yazılımlar hesap çizelgeleri, çizelgeleri istatistik yazılımları, karar destek yazılımları, grafik yazılımları gibi farklı türden birçok yazılım tarafından kullanılırlar. Varlık-Bağıntı Modeli (E-R) Günümüzde en yaygın kullanılan veritabanları ilişkisel model üzerine kurulmuş veritabanlarıdır. 1970 yılında E. F. Codd tarafından yayınlanan bir makale ilişkisel veritabanı anlayışının oluşmasını sağlamıştır. İlişkisel model, gerçek hayattaki varlıklar, varlıkları tanımlayan nitelikler ve varlıklar arasındaki bağıntılar üzerine kurulmuştur. kurulmuştur Her varlık kendine özgü tekil bir özelliği ile diğerlerinden ayrılır. Varlık-Bağıntı Modeli (E-R) Varlık-bağıntı modelinin dört temel kavramı vardır. Bunlar; Varlık Nitelik Bağıntı Anahtar nitelik Varlık-Bağıntı Modeli (E-R) Şekil 1.2 Varlık-Bağıntı Model Örneği Varlık-Bağıntı Modeli (E-R) Varlık Bağıntı Modelinin Yapıtaşları Varlık-Bağıntı İlişkisel İli ki l modeldeki d ld ki “varlıklar” “ l kl ” ilişkisel ili ki l veritabanlarındaki it b l d ki tablolardır. Tabloların isimleri açıklayıcı ve kısa olmalıdır. Aynı veritabanı içinde aynı tablo ismi kullanılamaz. kullanılamaz Tablo satırlarının toplamı nesne kümesini oluşturur. Varlık-Bağıntı Modeli (E-R) Bir tablo, Bi t bl nesneyii tanımlayan t l “ it likl ”i içeren “nitelikler”i i sütunlardan oluşur. Nitelik, bir varlığın karakteristik tanımlayıcılarından biridir. biridir Tablonun satırlarında varlığa ait nitelik verileri görüntülenir. İlişkisel modeldeki “bağıntılar” ilişkisel veritabanlarındaki tablolar arasındaki bağıntılardır. Bu bağıntılar diyagram üzerinde çizgiler ile görüntülenir. Varlık-Bağıntı Modeli (E-R) Nitelik Türleri Basit nitelikler: Sadece tek bir değer içerir. Kitap No. 123456 Türetilmiş nitelikler: Diğer niteliklerin hesaplanması sonucunda elde edilen niteliklerdir. D ğ Doğum Tarihi T ihi 1.1.1982 1 1 1982 Yaş (Bugün - DoğumTarihi) = 23 Varlık-Bağıntı Modeli (E-R) Nitelik Türleri Bileşik nitelikler: Birden çok bileşeni içerir. Bulunduğu Yer Raf No 5 Oda No 3 Birden fazla değeri olan nitelikler: Birden fazla değeri i i içerir. Telefon 555 11 11, 555 22 22 Varlık-Bağıntı Modeli (E-R) Anahtarlar Bir varlığı ya da bağıntıyı tekil (unique) olarak tanımlayan ve diğerlerinden ayırt edilmesine yarayan nitelik ya da en küçük nitelik kümesine anahtar denir. Anahtar nitelik tek sütun (Yazar_No) olabileceği gibi birden fazla sütunu da içerebilir ç ((Yazar_Ad ve Yazar_Soyad). Varlık-Bağıntı Modeli (E-R) Bağıntı Türleri (Mapping Cardinalities) En az 2 varlık arasında ortak nitelikler üzerinden bağıntı yapılabilir. Varlıklar arasında 4 ççeşit ş bağıntı ğ türü olabilir: • Bire-Bir (1-1) • Bire-Birçok (1-m) • Bir çoğa-Bir (n-1) • Bir çoğa-Birçok (n-m) B ğ t Türleri Bağıntı Tü l i (Mapping (M i Cardinalities) C di liti ) Bire-Bir Bi Bi (1-1): (1 1) İki varlık l k için i i de d sadece d bi birer nitelik i lik ortaktır. Bire Birçok (1-m): Bire-Birçok (1 m): Bir varlık arl k diğer bir varlığın arl ğ n birden fazla niteliğine sahip olabilir. Birçoğa Bir (n-1): Birçoğa-Bir (n 1): Bir varlığın birden fazla niteliği bir diğer varlıkta bulunabilir. Birçoğa-Birçok Birçoğa Birçok (n (n-m): m): Bir varlık diğer bir varlığın birden fazla niteliğine sahip olabileceği gibi kendi niteliklerinin birden fazlası diğer varlıkta bulunabilir. V l k B ğ t Modeli Varlık-Bağıntı M d li (E-R) (E R) Tablo 1.3 Tablolar Arası Bağıntı Kitap Tablosu Kitap No Kitap_No Kitap Ad Kitap_Ad 1 Tutunamayanlar 2 Access Yazar Tablosu Kitap Fiyat Kitap_Fiyat Yazar No Yazar_No Yazar Ad Yazar_Ad Yazar Soyad Yazar_Soyad 16.50 1 Hasan Demir 45 50 45.50 2 Oğuz Atay 3 Ayşe Güçlü KitapYazar Tablosu Kitap_No Yazar_No 1 2 2 1 2 3 Tablo 1.3 deki örnekte Tutunamayanlar isimli kitap Oğuz Atay, Access isimli kitap ise Hasan Demir ve Ayşe Güçlü tarafından yazılmıştır. Varlık-Bağıntı Modeli (E-R) İlişkisel Veri Modeli İlişki iki boyutlu bir çizelge olarak düşünülmelidir. Çizelgenin her sütununda bir nitelik yer alır. Her satırda ise bir çoklu vardır. 2 sütunlu bir çizelge düşünüldüğünde bu çoklunun 1. 1 elemanı 1 1. sütun değerine değerine, 2 2. elemanı 2 2. sütun değerine sahip olur. Kitap çizelgesi düşünüldüğünde veri modeli aşağıdaki şşekilde olur: KİTAP(Kitap_No,Kitap_Ad,Kitap_Fiyat) Varlık-Bağıntı Modeli (E-R) İlişkilerin özellikleri için aşağıdakiler söylenebilir: Satırların sırası önemsizdir. Sütunların sırası önemsizdir. Tüm satırların birbirinden farklı olması gerekir. Tüm satırlar farklı olduğuna göre en az bir anahtar alan vardır. Bir sütundaki değerlerin tümünün veri tipi aynıdır. İlişkisel ş Model (Relational) ( ) Veri Modeli, Modeli Şema ve Örnekleme: Veri modeli, bir veritabanının yapısını açıklayan kavramlar bütünüdür. Veritabanı yapısı; veri türleri, bağıntılar ve veri kısıtlamalarından oluşur. Veri modelleri ayrıca basit işlemler kümesini (erişim, düzenleme) içerir. İlişkisel ş Model (Relational) ( ) Veritabanın tanımını veren şema, şema veritabanı tasarımı sırasında belirlenir ve çok sık olarak değişmez. Kitap Kitap_No Kitap_Ad Tablo 1.1 Şema Örneği Kitap_Fiyat İlişkisel ş Model (Relational) ( ) Bir veritabanı içinde yer alan verinin belirli bir andaki d durumuna veritabanı it b d durumu, veritabanı it b f t ğ f ya fotoğrafı da örneklemesi denir. Her veri ekleme, silme ya da değiştirme durumunda örnekleme değişir. değişir Kitap Kitap_No 1 2 Kitap_Ad Tutunamayanlar İnce Memed Tablo 1.2 Örnekleme Örneği Kitap_Fiyat 16.50 12.80