Download
ver tabani i ders notlari n.
Skip this Video
Loading SlideShow in 5 Seconds..
VERİTABANI-I DERS NOTLARI PowerPoint Presentation
Download Presentation
VERİTABANI-I DERS NOTLARI

VERİTABANI-I DERS NOTLARI

732 Views Download Presentation
Download Presentation

VERİTABANI-I DERS NOTLARI

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. VERİTABANI-I DERS NOTLARI ENVER BAĞCI

  2. Ders İçeriği • Veritabanı ve ilişkisel veritabanı kavramı, tasarımı ve yönetimini anlamak, • Veri tabanı sistemlerinin denetimi ve erişimi yöntemlerini ve araçlarını öğrenmek, (SQL komutlarının kullanımı) • Verilecek teori bilgiler temelinde VTYS uygulamalarını SQL Server programı ile yapmaktır.

  3. Ders Takibi • Ders ile ilgili dökümanlara www.enverbagci.net adresinden ilgili ders linkine tıklatılarak ulaşılabilir.

  4. VERİTABANI TEMELLERİ

  5. Veri nedir? • Olguların, kavramların veya talimatların, insan tarafından veya otomatik yolla iletişim, yorumlama ve işleme amacına uygun bir biçimde ifadesidir. • Genellikle, biz veri veya veri birimleri üzerindeki işlemlerimizi varlık hakkında her hangi bilgi almak için gerçekleştiririz. • Veri kaydedilebilir bilinen gerçeklerdir. Örneğin bir kişinin ismi, adresi, telefon numarası gibi.

  6. Veritabanı (Database)Nedir? • Veritabanı (Database), en sade tanımıyla birbiriyle ilişkili bilgi topluluğudur. • Bilgisayar terminolojisinde veritabanı, bilgisayarda sistematik şekilde saklanmış, programlarca işlenebilecek bilgi topluluğudur. Bu bilgiler; bilgisayar ortamında yönetilebilir, güncellenebilir, taşınabilir aynı zamanda bu bilgiler arasında ilişkiler tanımlanabilir. Literatürde veritabanı, veri bankası olarak da geçmektedir.

  7. Veritabanı (Database) Nedir? • Yüksek miktarda veriyle uğraşmak bilgisayar teknolojisinin gelişmeye başladığı ilk yıllardan günümüze kadar süren, sürekli artan ve değişik boyutlar kazanan bir ihtiyaçtır.

  8. Veritabanı (Database) Nedir? • Bilgisayar ortamında bu verileri düzenli bir biçimde saklamak, bu verilere istenildiği an hızlı bir şekilde ulaşmak, bu veriler arasından istenilen ölçütlere uygun verileri listeleyebilmek, üzerinde hesaplamalar yapabilmek, bir veri tabanında yapılması gereken işlemlere örnek olarak gösterilebilir.

  9. Veritabanı (Database) Nedir? • Verileri yönetmek ilk zamanlar yalnızca tek bir kişi için yapılırken, günümüzde artık bu tarz uygulamalar çoklu kullanılıcılar için yapılmaktadır.

  10. Veritabanı (Database) Nedir? • Günümüzde geliştirilen pek çok yazılımda veritabanının önemli bir yeri vardır. Gerek işletim sistemi tabanlı paket programlarda olsun gerek web-tabanlı uygulamalarda olsun veritabanına sıkça başvurulur.

  11. Veritabanı (Database) Nedir? • Örneğin, bir muhasebe programında verileri düzenli bir şekilde saklamak önemlidir. • Bir emlak firması, web sitesinde kullanıcılarının istediği ölçütlere uygun olan konutları bulabilmesi için verilerini bir veritabanında saklar. • Bankacılık işlemlerinde de veri tabanının önemini görmek mümkündür. Bir banka müşterilerinin kişisel bilgilerini, hesap bilgilerini, bu hesaplarla ilgili hareket bilgilerini veritabanı yardımıyla saklar ve yönetir.

  12. Veritabanı (Database) Nedir? Veritabanı için aşağıdaki örnekleri de verebiliriz. • Telefon rehberleri • Adres defterleri • Öğrenci bilgileri ve notları • Finans yazılımları • Satış ve pazarlama yazılımları • Soru bankası yazılımları • Hasta takip sistemleri • Eczaneler için ilaç bilgilerinin tutulması

  13. Bir Veritabanında Bulunması Gereken Özellikler • Saklamak istediğiniz veriler, bir adres defterindeki gibi basit bir yapıda olabilir ya da bankacılık işlemlerindeki gibi karmaşık bir yapıya sahip olabilir. Adres defterlerinde yüzlerle ifade edilebilecek kişilerin (Bu bir veri tabanı için hacmi küçük olan bir bilgidir.) tutulması yeterli olabilecekken bankacılık işlemlerinde milyonlarca kişinin bilgileri tutulmak istenebilir.

  14. Bir Veritabanında Bulunması Gereken Özellikler • Bazı veriler için güvenlik çok önemli değilken, özellikle bankacılık işlemlerinde saklanan bilginin güvenliği oldukça önemli olabilir. • İster basit ister karmaşık yapıda olsun, ister az veri ister çok veri olsun, ister güvenlik ihtiyacı alt seviyede ister üst seviyede olsun günümüz veritabanlarının bulundurması gereken bazı özellikler vardır.

  15. Bir Veritabanında Bulunması Gereken Özellikler Bunları şu şekilde sıralayabiliriz: • Veritabanı veri saklama gereksinimini tam olarak karşılayabilmelidir. • Veritabanındaki bilgiler güvenli bir şekilde tutulmalıdır. • Veriler kolayca çağırılabilmelidir. • Verilere ulaşabilmek için olabilecek en az çaba harcanmalı ve en kısa zamanda bu verilere ulaşılabilmelidir. • Veritabanı içindeki verilerin güncellenebilmesi ve ekleme yapılabilmesi için veriler yönetilebilir olmalıdır.

  16. Veritabanı Yönetim Sistemleri • Veritabanı yönetim sistemleri veritabanlarını oluşturmak, değiştirmek, veri işlemek ve veri çıkarmak için dizayn edilmiş yazılımlardır. Bir veri tabanı yönetim sistemi sayesinde birden fazla veritabanı kontrol edilebilir ve farklı yazılımların sistemle iletişimi sağlanabilir.

  17. En Popüler Veritabanı Yönetim Sistemleri Hangileri? • Dünya çapında ilişkisel veritabanı sistemleri incelendiğinde Microsoft SQL Server, mySQL ve Oracle DB en sık kullanılan yazılımlardır. Bunların dışında da bir çok farklı firmaya ait programlar bulunmasına karşın yazılımcılar genellikle bu üç sistemle konuşabilen yazılımlar yazmayı tercih etmişlerdir. Aslında bunun ana nedeni veritabanlarının kontrolünün rahat olması ve sistemlerin farklı türlerdeki verileri komplike boyutlarda işleyebilmesidir. Örneğin, bir Oracle veritabanı milyonlarca satır veriyi işleyebilirken, bir Access veritabanı aynı performansı gösterememektedir.

  18. Oracle • Oracle veritabanı bir ilişkisel veri tabanı yönetim sistemidir. Oracle veritabanının özellikleri şunlardır: - Büyük miktarda veri tutabilmekte ve verilerin depolandığı alanları ayarlama imkanı vermektedir. - Aynı anda çok sayıda kullanıcıya verilerin bütünlüğünü bozmadan hizmet verebilmektedir. - Günün 24 saati ve haftalar boyu hiç kapatılmadan çalışabilmektedir. - İşletim sistemi, veri erişim dilleri ve ağ iletişim protokolleri standartlarıyla uyumludur. - Yetkisiz erişimleri engelleme ve kontrol edebilme imkanı sağlamaktadır. - Bütünlüğü veritabanı düzeyinde sağlayabilmektedir, böylece daha az kod yazılmaktadır. - İstemci/Sunucu mimarisinin bütün avantajlarını kullanabilmektedir. 

  19. Oracle • Oracle ürünleri genellikle büyük çaplı veri kontrolünü gerektiren uygulamalarda kullanılır. Öncelikle bir ağda Oracle veritabanı sadece sunucu olarak adlandırılan bilgisayara yüklenir. Bu sunucu Oracle'ın desteklediği herhangi bir işletim sistemiyle çalışıyor olabilir. Yani Oracle'ın faklı işletim sistemleri için farklı sürümleri vardır. Bu sunucu bilgisayara kurulan veritabanı üzerinde tablolar, indeksler, eşanlamlar, tablo uzayları ve ihtiyaç duyulan kayıtlı prosedürler oluşturulur.

  20. Microsoft SQL Server • Microsoft SQL Server en çok kullanılan veritabanı sunucu yazılımıdır. Veritabanlarının oluşturulmasını ve yönetilmesini sağlayan kurumsal çaplı Veritabanı Yönetim Sistemidir. Dünyada en yoğun kullanılan yönetim sistemi SQL Server’dır. • SQL Server’ı kullanarak verilerinizi dilediğiniz şekilde yönetebilir ve Stored prosedürleri kullanarak çok sayıda ve komplike sonuçlar döndürebilirsiniz. • Böylece istediğiniz verileri raporlayarak elde edebilirsiniz.

  21. MySQL • MySQL de diğerleri gibi bir veritabanı sunucusudur. Çalışma sistemi çok güçlü ve çok hızlıdır. Piyasada bir çok programlama dilini destekler ve birden fazla kullanıcı ile birlikte kullanılabilir bir sisteme sahiptir. MySQL sistemi Php ve diğer programlama dillerinde işleme koyulan veriyi saklamak için kullanılır. • Web sunucularında en çok kullanılan veritabanıdır, asp, php gibi birçok web programlama dili ile kullanılabilir.

  22. MySQL • UNIX, OS/2 ve Windows platformları için ücretsiz dağıtılmakla birlikte ticari lisans kullanmak isteyenler için de ücretli bir lisans seçeneği de mevcuttur. Linux altında daha hızlı bir performans sergilemektedir. Kaynak kodu açık olan MySQL'in pek çok platform için çalıştırılabilir sürümleri de mevcuttur.

  23. Veritabanı Yönetim Sistemlerinin Farkları Neler? • Her ürünün kapasite, performans ve ölçeklenebilirlik seviyeleri kullanılan yazılımın donanıma hükmetme derecesine göre değişiklik göstermektedir. • Oracle veritabanı yönetim sistemi bir çok metriğe göre dünya genelinde en iyi olarak kabul edilmesine karşın, kullandığı işlemci başına talep ettiği lisans ücretleriyle de bir çok firmanın bütçesini aşmaktadır.

  24. Veritabanı Yönetim Sistemlerinin Farkları Neler? • Microsoft SQL Server, Oracle DB ile bir çok metrikte yarışabilmekte ve daha uygun lisans fiyatlarıyla piyasaya sunulmaktadır. • MySQL veritabanı da yine bu ürünlerle yarışabilen ve ücretsiz olarak piyasaya sunulan bir veritabanı yönetim sistemidir. 

  25. Veritabanı Yönetim Sistemlerinin Özellikleri • Günümüz veri tabanı yönetim sistemlerinin özelliklerini şu şekilde sıralayabiliriz: • Sorgulama: Sorgulama, bilgilerin çeşitli faktör ve şartların kombinasyonuna göre istenmesi işlemidir. Örneğin; “Sınıftan kaç kişi matematik dersinden 90 ya da üzeri not aldı” sorusuna yanıt arayan bir kişi veritabanı sorgulama dili yardımıyla buna cevap bulabilir ve bir raporlaştırma aracıyla bunun çıktısını elde edebilir.

  26. Veritabanı Yönetim Sistemlerinin Özellikleri • Yedekleme ve Çoğaltma: Veritabanın saklı olduğu disk bozulabilir ya da başka sorunlardan dolayı veritabanı zarar görebilir. Veritabanı yönetim sistemleri bu veritabanının yedeklerini periyodik olarak alacak ve bunların kopyalarını diğer veritabanı sunucu bilgisayarına aktaracak yardımcı araçlar sunarlar.

  27. Veritabanı Yönetim Sistemlerinin Özellikleri • Kural Uygulama: Bazen verilere kısıtlama getirilmek istenebilir. Örneğin; bir öğrenci işleri veri tabanında, bir dersten alınabilecek notlar 0 ile 100 arasında olmalıdır. Eğer bunun dışında bir not girilmek istenirse veritabanı yönetim sisteminden bunu engellemesini ve hata mesajı göstermesini isteyebiliriz. Veritabanı yönetim sistemleri bu şekilde kuraların eklenmesini ve kaldırılmasını desteklemektedir.

  28. Veritabanı Yönetim Sistemlerinin Özellikleri • Hesaplama: Belirli bir şarta uygun verilerin sayısını bulma, verilerin toplamını, ortalamasını alma, verileri belirli bir ölçüte göre sıralama, gruplama gibi işlemler günümüz veritabanı yönetim sistemleri tarafından desteklenmektedir.

  29. Veritabanı Yönetim Sistemlerinin Özellikleri • Güvenlik: Kimlerin verilere ulaşabileceği, kimlerin veriler üzerinde değişiklik yapabileceği veritabanı yönetim sistemleri tarafından belirlenebilecek özelikler arasındadır.

  30. Veritabanı Yönetim Sistemlerinin Özellikleri • Günlük Tutma (Logging): “Verilere kimler ulaştı?”, “Hangi bilgiler değiştirildi?”, “Ne zaman değiştirildi?” gibi kayıtlara veri tabanın yönetim sisteminin günlük tutma özelliği sayesinde ulaşılabilir.

  31. Veri Modeli • Verileri mantıksal düzeyde düzenlemek için kullanılan yapılar, kavramlar ve işlemler topluluğuna veri modeli (data model) denir. • Her VTYS belirli bir veri modelini kullanır. • Bir VTYS'yi kullanarak oluşturulacak her veri tabanında yer alacak veriler ve veriler arası ilişkiler, mantıksal düzeyde ilgili veri modeline göre düzenlenir; bu veri modeli kullanılarak veri tabanının kavramsal ve dış şemaları oluşturulur.

  32. Veri Modelleri • Bugüne kadar geliştirilmiş olan çok sayıda veri modeli vardır. • Ancak geçmişte ve günümüzde yaygın kullanılan veri modellerini 4 grupta toplamak mümkündür: • Sıradüzensel Veri Modeli (Hierarchical Data Model) • Ağ Veri Modeli (Network Data Model) • İlişkisel Veri Modeli (Relational Data Model) • Nesneye-Yönelik Veri Modeli (Object-oriented Data Model) • Yukarıdaki sıralama aynı zamanda kronolojik bir sıralamadır.

  33. Veri Modelleri : Tarihçe • Sıradüzensel (Hiyerarşik) Veri Modeli en eski model olup 60 ve 70'li yıllarda çok kullanılmıştır. • 1969’da ortaya çıkan Ağ Veri Modeli 1970’li yıllarda ve 1980’li yılların ilk yarısında kullanılmıştır. • İlişkisel veri modeli de ilk kez 1969 yılında ortaya atılmış, 1970’li yılların sonunda kullanılmaya başlanmış ve 1985 yılından sonra yaygınlaşmış bir yaklaşımdır. • 1990’lı yıllarda yaygın kullanılan VTYS'lerin hemen hemen tümünün ilişkisel tabanlı olduğu söylenebilir.

  34. Veri Modelleri : Tarihçe • Nesneye-yönelik veri modeli yaklaşımı ise on yılı aşkın süredir gündemde olan, günümüzde çok yaygın kullanılmasa bile, kullanımı giderek yaygınlaşan bir yaklaşımdır. • Geçmişe baktığımızda, ilişkisel yaklaşımın kullanılmaya başlanması ile sıradüzensel ve ağ yaklaşımlarının terk edildiği görülmektedir.

  35. Veri Modelleri : Tarihçe • Buna karşılık nesneye-yönelik yaklaşımın kullanılmaya başlanması ile ilişkisel yaklaşım terk edilmemiştir. • Günümüzde hem ilişkisel hem de nesneye-yönelik yaklaşımı birlikte kullanan VTYS'lerinin yaygınlaştığı görülmektedir (ORDBMS).

  36. Kitaplar (no, başlık) Yazarlar (ad, soyad) Yayıncılar Konular Sıradüzensel (Hiyerarşik) Model • 1960’lar ve 1970’ler • Ağaç veri yapısına benzer. Her kaydın bir ebeveyn kaydı, birçok çocuk kaydı var (IBM IMS: Information Management System).

  37. Yazarlar Konular Kitaplar Yayıncılar Ağ Modeli • 1970’ler • Her kaydın birçok ebeveyn ve birçok çocuk kaydı bulunabilir. (TurboIMAGE, IDMS, RDM Embedded, RDM Server )

  38. İlişkisel Model • 1980’ler • Veriler için kavramsal olarak basit bir model; veriler ve ilişkiler “tablolar” üzerinde tanımlanır ve tüm bilgiler görülebilecek şekildedir.

  39. Nesneye-Yönelik Model • 1990’lar • Veriler nesne olarak modellenir ve yaratılır. • Nesneye-Yönelik Programlama (OOP) da olan sınıf ve miras kavramlarına sahiptir. • Karmaşık veriler üzerinde işlem yaparken yüksek performans sunan bir yaklaşımdır.

  40. Nesneye-Yönelik İlişkisel Model • 1990’lar • İlişkisel Modelin iyi bilinen özelliklerini Nesne Tabanlı özelliklerle birleştirir. Bunlar: • Kullanıcı tanımlı veri türleri • Kullanıcı tanımlı fonksiyonlar • Kalıtım ve alt sınıflar

  41. Varlık-İlişki Modeli (E-R Modeli) • Varlık-ilişki modeli, ya da kısaca E-R modeli (Entity-Relationship model) 1976 yılında P.P. Chen tarafından geliştirilen bir modeldir. • Bugüne kadar varlık-ilişki modeline dayalı hiçbir VTYS geliştirilmemiştir. • Buna karşılık varlık-ilişki modeli, VTYS'den bağımsız veri çözümlemede ve semantik veri modellemede en çok kullanılan modeldir.

  42. Varlık-İlişki Modeli • Bu model kullanılarak önce; • VTYS'den bağımsız olarak veriler çözümlenir, • veri modellemesi yapılır, • veriler ve veriler arası ilişkilerin anlamları ve özellikleri incelenerek E-R çizelgeleri oluşturulur; • kullanılacak VTYS belirlenir sonra da E-R çizelgeleri bu sistemin veri modeline dönüştürülerek veri tabanı şemaları oluşturulur.

  43. Varlık ve Varlık Kümesi • Var olan ve benzerlerinden ayırt edilebilen her nesneye varlık (entity) denir. • Bir öğrenci, veri tabanı dersi, belirli bir kitap, Burak birer varlık olarak değerlendirilir. • Aynı türden benzer varlıkların oluşturduğu kümeye ise varlık kümesi (entity set) adı verilir. Varlık kümeleri iç içe, kesişen ya da ayrık kümeler olabilir. • Öğrenciler, kız öğrenciler, Bilgisayar Mühendisliği Bölümü öğrencileri, yurtta kalan öğrenciler, renkler, dersler, yıllar, tarihler, satış miktarları,... vb. varlık kümesi örnekleri olarak sayılabilir.

  44. Nitelik • Bir varlık kümesindeki varlıkların özelliklerini göstermek ve varlıkları birbirinden ayırt etmek için nitelikler (attributes) kullanılır. • Gerçek dünyada varlık kümelerinin çok sayıda nitelikleri olabilir, ancak veri modellemede, gerçek dünyanın soyut bir modeli oluşturulduğu için, bu niteliklerin yalnız küçük bir kısmı, uygulamalar için gerekli olanları (örn. Sicil no, Ad, Soyad, Adres, … vb) seçilerek kullanılır.

  45. Etki Alanı (Değer Alanı) • Her niteliğin bir etki alanı (domain) vardır. Etki alanı ilgili niteliğin olabilecek değerlerinin tümünü içeren bir kümedir. Nitelik Etki Alanı

  46. Türetilen Nitelik • Bir nitelik kullanılarak bir başka varlık niteliği elde edilebiliyorsa, bu yeni niteliğe türetilen nitelik adı verilir. • Örneğin, “personel” varlığının “doğum tarihi” niteliğinden yararlanılarak “yaş” niteliği elde edilebilir. Bu örnekte “yaş” niteliği türetilen niteliktir, tasarımda ayrıca tanımlanmasına gerek yoktur.

  47. Birleşik Nitelik • Birden fazla nitelik birleştirilerek yeni bir nitelik oluşturulabilir. Bu tür niteliklere birleşik nitelik adı verilir. • Örneğin, “mahalle”, “cadde”, “sokak”, “apartman”, “posta kodu” ve “şehir” gibi nitelikler birleştirilerek “adres” isimli yeni bir nitelik oluşturulabilir.

  48. İlişki • Varlıklar arasındaki bağıntıya ilişki adı verilir. • İkili ilişki: • bir öğrenci ile bir ders • bir firma ile bir malzeme • Üçlü ilişki: • Bir işçi, bir ürün ve bir makine (işçi bu ürünü üretirken bu makineyi kullandığı için)

  49. İlişki Kümesi • Aynı türdeki ilişkilerin oluşturduğu kümeye ilişki kümesi denir. • Matematiksel olarak E1, E2, E3, ..., En varlık kümeleri arasındaki bir R ilişkisi aşağıdaki gibi tanımlanır: R = {(e1, e2, e3, ..., en ) : e1 E1, e2 E2, e3 E3, ..., en En }

  50. İlişki Kümesi : Örnek • Aşağıdaki iki varlık kümesini göz önüne alalım: E1 = { Ali, Ayşe } E2 = { Matematik, Fizik } • Bu varlık kümeleri için öğrenci ve aldığı ders ilişkileri aşağıdaki gibi ifade edilebilir: R1 = { (Ali, Matematik) } R2 = { (Ali, Fizik) } R3 = { (Ayşe, Matematik) } R4= { (Ayşe, Fizik) }