MÜHENDİSLİKTE VERİ TABANLARI Prof. Dr. Nebiye Musaoğlu,Y.Doç.Dr. Şinasi Kaya İTÜ İnşaat Fakültesi Geomatik Mühendisliği Bölümü ETKİNLİK SAYISI VE YARIYIL SONU BAŞARI NOTUNA (%) ETKİSİ Etkinlik Sayı Yıl Sonu Başarı Notuna (%) Etkisi Kısa Sınav 1 %8 Yıliçi Sınavı 1 %24 Sonu 1 %60 Yarıyıl Sınavı Laboratuvar Çalışması 2 Ödev 1 Açıklama Öğrenciler zorundadır. %8 katılmak Yarıyıl sonu sınavına katılmak için ödevin yapılması zorunludur. HAFTALARA GÖRE KONU BAġLIKLARI Hafta Konu 1 Veri Tabanı GiriĢ,Veri Tabanı Nedir? Tarihçesi.Veri, Bilgi,Veriyi nasıl topluyoruz?Mekansal veri...Nokta, çizgi, alan,Mekansal olmayan veri..Öznitelikler, Metaveri,Kayıt,varlık v.s Veri standartları-TABĠS Örneği 2 Veri Tabanında Temel Kavramlar,Klasik dosya sistemi, klasik dosya sisteminden farkı,Veri Tabanı Yönetim Sistemi, Mimarisi, BileĢenleri,Veri Tabanı YaklaĢımının Yararları,Veri Tabanı Tasarımında dikkat edilmesi gerekenler,Mekansal ve mekansal olmayan veri tabanları,Ver, tabanı mimarisinin donanımsal yapısı (LAN, Distributed),Kullanıcılar ve kullanıcı hakları matrisi 3 Varlık-Bağıntı Modeli, Genel Tanımlar: Varlık, Varlık kümesi, nitelikler, Bağıntı ve bağıntı kümesi Bağıntı türleri, Anahtarlar,Genelleme, kümeleme,UML 4 Veri Modelleri, HiyerarĢik veri modeli (sıradüzensel), Ağ veri modeli, ĠliĢkisel veri modeli, Temel iliĢki yapısı, ĠliĢkilerin özellikleri, Nesneye yönelik veri modeli 5 ĠliĢkisel Veri Tabanı, Varlık Bağıntı Çizeneklerinin ĠliĢki ġemalarına DönüĢtürülmesi, Varlık Bağıntı Çizeneklerinin UML Ģemalarına dönüĢtürülmesi, Bütünlük kısıtlamaları, normalizasyon, kısa sınav 6 ĠliĢkisel Cebir ve ĠliĢkisel Hesap, Seçme, ĠzdüĢüm, BirleĢim, KesiĢim, Fark, Kartezyen Çarpım, Aktarma iĢlemi ve ara iliĢkilerin adlandırılması 7 Laboratuar Uygulaması 1 8 SQL (Structured Query Language ) Yapısal Sorgulama Dili, SQL hakkında genel bilgi ve tarihçe, SQL komutları,Tablo oluĢturma, ĠliĢkilendirme, iliĢkisel iĢlemler, Sorgulamalar, Kısıtlamalar 9 Mekansal Veri Tabanları, Mekansal Veri Tabanı YaklaĢımının yararları, Mekansal olan ve olmayan veriler, Mekansal veriler ve iliĢkisel veri tabanının iliĢkilendirilmesi, Topoloji, Mekansal analizler ve sorgular, Mekansal Veri Tabanı örnekleri, GoogleEarth, Mapquest, MIT OrthoTools 10 Laboratuar Uygulaması 2 11 Vize sınavı 12 Nesneye Yönelik (dayalı) veri tabanı, Nesneye yönelik yaklaĢımın temelleri, Nesneye yönelik modellemeyi karakterize eden özellikler, ĠliĢkisel ve nesneye yönelik yaklaĢımın karĢılaĢtırılması 13 Web uygulamalı veri tabanları, Web veri tabanları, giriĢ, Temel kavramlar, Internet, Intranet, Extranet, Web, HTTP, HTML, URL,Web-VTYS Gerekliliği, Web yaklaĢımının avantajları ve dezavantajları, Web ve VTYS integrasyonu için yaklaĢımlar, Programlama Dilleri Hakkında genel bilgi 1. Hafta: Veri Tabanı Giriş Veri Tabanı Nedir? Tarihçesi Veri, Bilgi Veriyi nasıl topluyoruz? Mekansal veri...Nokta, çizgi, alan Mekansal olmayan veri..Öznitelikler, Metaveri, Kayıt,varlık v.s Veri standartları-TABİS Örneği Beynimiz özel bir bilgi merkezi ise Bu bilgiler kullanılarak veya bilgiler yardımıyla yaşamımızı sürdürürüz Veri Tabanı 1 • Bir ya da birkaç uygulamada kullanılmak için, gereksiz yinelemelerden arınmış olarak, düzenli biçimde bilgisayar belleklerinde saklanan birbiriyle ilişkili veriler topluluğudur. 2 • Veritabanın depolanan bilgiyi verimli ve hızlı bir şekilde yönetip değiştirebilmesidir. 3 • Veri tabanı, en geniş anlamıyla; birbiriyle ilişkili verilerin tekrara yer vermeden, çok amaçlı kullanımına olanak sağlayacak şekilde depolanması olarak tanımlanabilir. Tarihçesi 1965-1975 1975-1985 1985-1990 Bugünkü durum Veri Modeli Ağ yapısı hiyerarşik İlişkisel Semantik nesneye yönelik mantıksal Birleşik veri modelleri, Bilgi Gösterimi ve programlama dilleri Veri Tabanı Donanımı Büyük sistemler Büyük sistemler Küçük sistemler Kişisel Bilg. Hızlı kişisel Bilg. İş istasyonları, Veri tabanı makineleri Paralel işlem, Optik bellekler Kullanıcı Arabirimi Yok Sorgulama dilleri Grafikler, Menüler, Şekil sorgulaması Doğal diller, Ses girdisi Program Arabirimi İşlemsel Diller Gömülü sorgulama dilleri Mantıksal Programlama Bütünleşik veri tabanı ve programlama dilleri Gösterim ve Ekran Görüntüsü Raporlar Rapor üreticileri İşletme grafikleri Genelleştirilmiş ekran görüntü yönetimleri Bilgi-İşlem Verinin İşlenmesi Bilişim ve iş kaydı işlemleri İş kaydı işlemleri Bilginin işlenmesi Dağıtılmış bilgi işlenmesi Mesleğimizde veri tabanının yeri Yer yüzünün kendisi ve üzerindeki yapı, nesne ve olayların konumlarına ilişkin bilgiler coğrafi bilgi ya da mekansal bilgi olarak adlandırılır. Söz konusu konum bilgilerine yer yuvarının geometrik ve fiziksel parametrelerinden türetilmiş iki veya üç boyutlu koordinat sistemleri dayanak oluşturur. Bir harita veya plan da bir mekansal bilgi iletim aracı olarak görülebilir. Geleneksel, Jeodezi, Fotogrametri, Ölçme, Kartografya ve Uzaktan Algılama konuları ile birlikte, mekansal/coğrafi bilgi elde edildikten sonra, analizi, izlenmesi, görselleştirilmesi, iletilmesi, saklanması, yönetimi, kalite güvencesi ile bu bilgilerden yeni bilgiler üretilmesi süreçleri izler. Bir sistem kavramına dayanması gereken bu sürecin bilim, teknoloji ve uygulamalar bütünü GEOMATİK olarak tanımlanır. Uluslararası meslek kamu oyunda bu iş alanı için meslek adı olarak yaygın bir kabul gören GEOMATİK, yer yuvarı ve yer yüzü ile ilgili konum bilgilerinin üretiminden kullanılmasına etkin bir iş akışını oluşturmanın bilimi ve teknolojileri bütünüdür. www.geomatik.edu.tr Mesleğimizde veri tabanının yeri Mekansal olmayan veri tabanları Mekansal veri tabanları Veri ? Kendi başına anlamı olmayan karakterler kümesidir. Örn: 04102004 veya 20041004 MEKANSAL VERİ TABANI Coğrafi Veri Seti Mekansal Olmayan Veri Kartografik Veri Seti Geometri Grafik Öznitelik verisi, Meta veri Semantik Mekansal Veri Mekansal veriler bir konuma ait verileri, mekansal olmayan verilerse bu verileri açıklayan bilgileri tanımlar. Yol_ID Yol_Türü Yol_Genişliği 12476 C 6 Yol_ID Yol_Türü Yol_Genişliği 12476 C 9 Yol_ID Yol_Türü Yol_Genişliği 12476 M 9 Bir ağacın yeri Türü, yaşı, kime ait olduğu Verinin bilgiye dönüşüm süreci Karar verme Knowledge Sentezlenir Analiz edilir Information Özetlenir Organize edilir Data Toplanır Veri toplanır, bilgiye dönüştürülür, sentezlenerek anlaşılır bilgi haline getirilir. Datum, projeksiyon ve ölçek (çözünürlük) bilgisi ülkemizde analog ve dijital haritalar ulusal (ED50 – European Datum 1950 – Avrupa Datumu 1950 ya da ITRF96 –International Terrestrial Reference Frame 1996 – Uluslararası Yersel Referans Ağı 1996) ve lokal datumlarda oluşturulmaktadır. Ulusal ve yerel olarak üretilen üretilen haritaların projeksiyonları ülkemizde Universal Transversal Merkator (UTM), Transversal Merkator’dur. Lokal olanlar ise düzlem projeksiyonlardadır. UTM projeksiyonunda üretilmiş olan haritalar genellikle 1:25000 ve daha küçük ölçekli haritalardır ve ülke düzeyinde düşük çözünürlükte bilgi üretilmesine olanak verirler. Tranversal Merkator projeksiyonunda olan haritalar 1:5000 ve daha büyük ölçekte olup genellikle yerel düzeyde ve yüksek çözünürlükte dijital bilgi üretilmesine olanak verirler. Lokal datumda ve düzlem projeksiyonda olan haritalar ise 1988 Büyük Ölçekli Harita Yapım Yönetmeliği öncesinde ya da geçiş sürecinde üretilmiştir. Büyük ölçekli bilgiye olanak sağlar. •Çizgi •Nokta •Alan Bilgi ? Bir anlam ifade eden veridir. Örn: 04102004 veya standart yazılan 04.10.2004 Gün ay yıl Öznitelik ? Veri tabanında depolamak üzere seçilen varlığa ilişkin ayırt edici özelliklere öznitelik adı verilir Örn: parsel no, parsel alanı, parsel sahibi... Obje türlerine ilişkin öznitelikler aşağıdaki veri tiplerinde olabilir: Sayı (Number) Gerçel sayı (Real) Tam sayı (Integer) Mantıksal (Logical)(and, oder, or vb.) Anahtar (Boolean)(yanlı ya da doğru) Karakter dizgesi (String) İkili sistem (Binary) Dizge (Array) Tarih (Date) Money(TL, USD vb.). Kayıt ? Bilgilerden oluĢan en küçük birimdir. Adı Soyadı Doğum Tarihi Ali Zafer 1992 Bölümü Geomatik Mühendisliği Örn 2: 45, 300, ayĢe_gül, hisseli Ģeklindeki ayrı ayrı öznitelik değerlerinin tamamı bir kayıt oluĢturur Varlık (entity) ? Aynı türden daha küçük alt bölümlere ayrılamayan nesnelere denir. İşlem ? Veri tabanı üzerinde yeni bir kayıt ekleme, varolan bir kaydı silme veya güncelleme gibi yapılan hareketlere işlem denir. ULUSLARARASI STANDARTLAR ABD STDS(Spatial Data Transfer Standart) İngiltere NTF(National Transfer Format) Almanya EDBS(Einheitliche DatenbankSchnittstelle) CERCO(Comitée Européen des Responsables de la Cartographie Officielle) ISO 8211 NATO ISO 8211 ve DIGEST(Digital Geographic Information Exchange Standart DEMETER GDF-EF(Geographic Data File Exchange Format) ve NTF Kanada SAIF(Spatial Archieve and Interchange Format) TABİS BÖHYY Veri Tabanının Özellikleri Veri tabanı, belirli bir kuruluĢun birçok uygulamasında kullanılan, birbiriyle iliĢkili, iĢletimsel verilerden oluĢur. Veri tabanında saklanan veriler kuruluĢun birden çok uygulamasında ortak olarak kullanılan, sürekli verilerdir. GiriĢ/çıkıĢ verileri ve geçici veriler veri tabanında yer almaz. 1- 2- Veri tabanındaki veriler gereksiz yinelemelerden arınmıĢ olarak, düzenli bir biçimde bilgisayar belleklerinde saklanır ve ilgili kuruluĢun birden çok uygulaması tarafından kullanılır. Veri tabanındaki veriler, birden çok uygulama tarafından paylaĢılan ortak verilerdir. 3- Veri tabanında saklanan veriler değiĢmeyen statik veriler değildir. Ekleme, silme ve güncelleme iĢlemleri ile veri tabanındaki veriler değiĢtirilebilir. Veriler üzerinde değiĢiklik iĢlemleri yapıldığı gibi, sorgulama ve raporlama gibi iĢlemler de yapılabilir. 4- Veri tabanındaki veriler üzerinde merkezi bir denetim vardır. Kullanıcılar iĢletim sistemi komutları ya da genel amaçlı programlama dilleri ile yazılmıĢ uygulama programlarını kullanarak, doğrudan veri tabanındaki verilere eriĢemezler; bu verileri değiĢtiremezler. Veri tabanı kullanımı yalnız Veri Tabanı Yönetim Sistemi olarak adlandırılan hazır yazılımlar aracılığıyla mümkündür. 5- Veri tabanı yönetim sistemi aracılığıyla, veri tabanının bilgisayar belleklerindeki fiziksel yapısı kullanıcılardan gizlenir. Kullanıcılara daha yalın mantıksal yapılar sunulur. Veri tabanı yönetim sistemi kullanıcının soyut terimler kullanarak veri tabanıyla iliĢki kurmasını sağlar. Veri Tabanı Kullanımının Sağladığı Avantajlar 1- Geleneksel Yaklaşım 2- Veri Tabanı Yaklaşımı Veri Tabanı Yaklaşımının Yararları 1- Veri tekrarının azaltılması 2- Veri Bütünlüğünün sağlanması 3- Veri paylaşımının sağlanması 4- Kullanımının yaygınlaştırılması 5- Verilerin gizliliğinin ve güvenliğinin sağlanması 6- Standartların uygulanabilmesi Veri Tekrarının Azaltılması Geleneksel yaklaĢımda her alt sistem veya uygulama için gerekli veriler ayrı ayrı tutulur. Veri tekrarı veri derlemenin tekrarlı olmasına ve veri derleme için yapılan harcamaların artmasına yol açabilir. Bellek kapasitelerinin, dolayısıyla donanım harcamalarının artmasına, tekrarlanan verilerdeki olası farklılıklar dolayısıyla uygulamada sorunlara ve tutarsızlıklara yol açabilir. Veri tabanı yaklaĢımında, veriler arası bağlantıları kurmak için, öğrenci numarası, personel sicil numarası gibi anahtar niteliğindeki veri değerlerinin zorunlu tekrarlanması dıĢında veri tekrarı önlenir. Veri Bütünlüğünün Sağlanması Veri bütünlüğünden (data integrity) verinin doğruluğu ve tutarlılığı anlaĢılmaktadır. Veri tabanında birbiriyle iliĢkili çok çeĢitli veriler yer alır. Bu verilerin değerleri ile ilgili çok sayıda kısıtlama vardır. Kısıtlamaların bir kısmının denetimi VTYS tarafından gerçekleĢtirilir. Kullanıcı tarafından gerçekleĢtirilmek istenen ekleme, silme ve güncelleme iĢlemlerinden önce VTYS tarafından gerekli denetimler yapılarak önceden tanımlanmıĢ kısıtlamalara uymayan iĢlemlerin gerçekleĢtirilmesi reddedilebilir. Veri Paylaşımının Sağlanması VTYS nin görevi veri tabanındaki verilerin paylaĢılmasını sağlamak ancak birlikte kullanımın yol açabileceği sorunları da önlemektir. Kullanımın Yaygınlaştırılması Veri tabanı yaklaşımında kullanıcıların bilgisayar bellekleinde verileri saklamak için oluşturulan karmaşık fiziksel yapılar yerine yalnız ilgilendikleri verileri içeren basit mantıksal yapıları görmesi sağlanır Verilerin Gizliliğinin ve Güvenliğinin Sağlanması Her kullanıcı veri tabanındaki verilerin yalnız bir kesimini görmeye bir kesimini de güncellemeye yetkilidir. Veri tabanı tanımlanırken öncelikle hangi kullanıcıların veri tabanını kullanabilecekleri, kullanıcıların veri tabanındaki hangi veriler üzerinde hangi işlemleri (okuma, ekleme, silme ..) yapmaya yetkili olduğu tanımlanır. Standartların Uygulanabilmesi Veri tabanı yaklaĢımında veriler üzerinde merkezi bir denetim bulunmaktadır. Standartlar verinin yapısı, gösterimi adlandırılması belgelenmesi gibi değiĢik konularla ilgili, kurum içi, kurumlar arası, ulusal veya uluslararası standartlar olabilir. Standartların varlığı, anlaĢılırlığı kullanımı kolaylaĢtırmanın yanı sıra sistemler arası bilgi alıĢveriĢi için çok önemli bir gereksinimdir. Veri soyutlamasının amacı: karmaĢık verilerden arındırılmıĢ soyut bir veri görünümü sağlamaktır. 1.Fiziksel Düzey:KarmaĢık veri yapıları ayrıntılı olarak açıklanır. 2.Kavramsal Düzey:Verinin veri tabanı içersinde nasıl saklandığı ve veri iliĢkileri tanıtılır. Bu bilgiler sadece veri tabanı yöneticisini ilgilendirir. 3.Görünüm Düzeyi: Veri tabanının sadece bir kısmı olup kullanıcının ilgilendiği bilgiyi içerir. Görünüm düzeyinde kullanıcının amacına göre çok sayıda değiĢik görünümler tanımlanabilmektedir. Kullanıcı grubu 1 Kullanıcı grubu 2 Görünüm 1 Görünüm 2 Kullanıcı grubu 3 Görünüm 3 ...... Kavramsal Düzey Fiziksel Düzey Fiziksel Veri Tabanı Görünüm 1 Görünüm 2 Kavramsal Düzey Fiziksel Düzey Verinin soyutlanması Görünüm 3 Veri Bağımsızlığı Bir soyutlama düzeyindeki Ģema tanımının değiĢtirilmesi halinde, üst düzey Ģema tanımının etkilenmemesi özelliğidir. Fiziksel Veri Bağımsızlığı Mantıksal Veri Bağımsızlığı Veri bağımsızlığı uygulamaların veri saklama yapıları ve eriĢim yöntemlerinden bağımsızlaĢtırılmasını sağlar. Belirli bir anda veri tabanında bulunan bilgi toplumuna veri tabanının örneği denir. Veri tabanının tamamının tasarımına şema denir. Veri tabanında şemanın işlevi: Şema, veri tabanına ait veri tanımlarını gösteren bir plandır ve veri sözlüğü adı verilen özel bir kütükte saklanmaktadır. Şema, veri tabanının yapısını tanımlamakta ve bu tanımları kullanıcıya vermektedir. İşlem sırasında şema, giren veriyi uygun kütüğe yerleştirmekte ve sonra geri çağrılmasını sağlamaktadır. Veri tabanının yapısını tanımlar ve bu tanımları kullanıcıya verir. Giren veriyi uygun kütüğe yerleĢtirir ve geri çağrılmasını sağlar. Veri tabanı sistemi, soyutlama düzeylerine göre birer fiziksel Ģema, kavramsal Ģema ve çok sayıda alt Ģema içermektedir. Sistem üç ayrı bileĢenden oluĢmaktadır. 1-İç (Fiziksel, internal) Düzey(şema):Verinin fiziksel olarak saklandığı bölümdür. Bu bölüm, verinin sabit olarak yerleĢtirildiği bir doğrudan eriĢimli dıĢ bellekte saklanmaktadır (disk, optik disk vb...) EriĢim VTYS aracılığı ile kütük yönetimi ve disk yönetimi tarafından gerçekleĢtirilir. 2- Dış (Görünüm) Düzeyi: DıĢ yüzey, kullanıcılara aittir. Kullanıcı, veri tabanının sadece belirli bir yönden görünümü ile ilgilenebilmektedir. 3- Kavramsal Düzey:Ġç ve dıĢ yüzeylerin dolaylı olarak birleĢtirilmesini sağlayan aracı bir yüzeydir. Veri Tabanı Sistemi Mimarileri Paralel sistem mimarisi Veri Tabanı Sistemi Mimarileri Merkezi veri tabanı ve bilgisayar ağı mimarisi Veri Tabanı Sistemi Mimarileri Dağıtımlı veri tabanı mimarisi Varolan ve benzerlerinden ayırt edilebilen herşeye, her nesneye varlık denir. Aynı türden benzer varlıkların oluşturduğu kümeye varlık kümesi denir. 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. Başka bir deyişle her varlığa belli bir sayıda nitelik değeri eşlenir. Her niteliğin bir etki alanı (domain) vardır. Etki alanı, ilgili niteliğin olurlu değerlerinin tümünü içeren bir kümedir. Her bir niteliğin etki alanı adı verilen bir dizi geçerli değeri bulunmaktadır. Örnek: Müşteri adı niteliğinin etki alanı çok sayıdaki isimlerdir. Hesap no niteliğinin etki alanı da bir dizi tam sayıdan oluşmaktadır Bağıntı 2 ya da daha fazla varlığın birleşmesi, bir araya gelmesi ve aralarında ilişki kurulmasıdır. Aynı tür benzer bağıntıların kümesine bağıntı kümesi (relationship set) denir. Bağıntı kümeleri ikili, üçlü ve daha çok olabilir. Fakat tercih edilen çoklu bağıntı kümelerinin ikili bağıntı kümelerine dönüştürülerek kullanılmasıdır. Bire bir (one to one) (1:1):Her a ile en çok bir b, her b ile de en çok bir a arasında bağıntı kurulabilir (a A, b B). Örn: Her müşteri sadece bir hesap açabiliyorsa 1 den 1 e. A B Bire- birçok (one to many) (1:n): Bire birçok bağıntıda her a ile sıfır, bir ya da bir çok b, her b ile de en çok bir a arasında bağıntı kurulabilir. A B Bir çoğa bir (many to one) (n:1): Her a ile en çok 1 b, her b ile de sıfır, bir ya da bir çok a arasında bağıntı kurulabilir. A B Bir çoğa bir çok (many to many) (n:m) : Her a ile sıfır, bir ya da bir çok b, her b ile de sıfır, bir ya da bir çok a arasında bağıntı kurulabilir. Aile üyelerinin ortak hesap açması gibi. A B •Bu 4 bağıntı türünden bire-bir çok ile bir çoğa-bir getirilen sınırlama açısından aynı, varlık kümelerinin konumu açısından farklıdır. •A ve B varlık kümeleri arasındaki bir bağıntı A dan B ye bire-birçok ise, B den A ya birçoğa –bir, A dan B ye birçoğa bir ise de B den A ya bire birçoktur. •Yapılan modellemenin gerçeğe uygunluğunu sağlamak açısından tanımlanan bağıntı kümesinin türünün doğru belirlenmesi önemlidir. Eğer x varlığının bulunması, y varlığının varoluşuna bağlı ise, x in y ye bağlı olduğu ifade edilmektedir Bir varlık kümesi varlıkları ya da bir bağıntı kümesi içindeki bağıntıları birbirinden ayırtetmek için kullanılan nitelik ya da nitelik grubuna bu varlık ya da bağıntı kümesinin anahtarı denir Süper anahtar Aday anahtar Eğer bir varlık kümesinin niteliklerinden en az bir anahtar oluşturulabiliyorsa, bu varlık kümesine güçlü (strong) varlık kümesi, eğer niteliklerin tümü alınsa bile bir anahtar oluşturmuyorsa da zayıf (weak) varlık kümesi denir. Zayıf bir varlık kümesinin anlamlı olabilmesi için Bu varlık kümesi ile güçlü bir varlık kümesi arasında birebir ya da (güçlüden zayıfa) bire birçok bir bağıntı bulunması Zayıf varlıklar için bu bağıntının varolma bağımlılığı oluĢturması Zayıf varlık kümesinin nitelikleri arasında aynı güçlü varlığa bağlı zayıf varlıkları birbirinden ayırt etmeyi sağlayan bir nitelik grubunun bulunması gereklidir. Alt düzeydeki benzer varlık tiplerinin farklılığını saklamak ve benzerliğini vurgulamak amacı ile bir üst düzey varlık halinde birleştirilmesidir. Varlık-ilişki diyagramında, bir üçgen içinde IS A(DIR) simgesi ile gösterilmektedir. ISA bağıntısında üst düzey varlığın nitelikleri kalıtım yoluyla alt düzey varlık türlerine geçer üst düzey bir varlık varlık türü ile bunun alt türleri arasında kurulan özel bir bağıntıdır Hesap No Kalan Hesap Nasıl tablolaştırılır? IS A 1. a) Hesap (hesap no ve kalan özellikleriyle) b) Tasarruf Hesabı (hesap no ve faiz özellikleriyle) c) Çek Hesabı (hesap no ve kredi özellikleriyle) Tasarruf Hesabı Çek Hesabı 2. a) Çek hesabı (hesap no, kalan ve kredi özellikleriyle) b) Tasarruf Hesabı (hesap no, kalan ve faiz özellikleriyle) Faiz Kredi Varlıklar arasında birden fazla ilişki kurulması gerektiğinde kümeleme yoluna gidilir. İlişki setlerinden biri ve ilişki kurduğu varlıklar birarada üst düzey bir varlık kabul edilir. PADI ADI KSÜRE ÇNO PNO PBÜTÇE SOYADI ÇALIŞAN ÇPM PROJE MAKİNE MADI YERĠ MNO MTÜRÜ *ÇPM: ÇalıĢan, Makine, Proje arasındaki üçlü bağıntı Belirli bir proje üzerinde çalıĢan ve çeĢitli makineler kullanan görevliler hakkındaki varlıkiliĢki diyagramı, ancak bütünleĢtirme yoluyla sağlanabilir. Ġġ PADI ADI PNO ÇNO PBÜTÇE SOYADI ÇALIŞAN n ÇALIġTIĞI m PROJE n KSÜRE KULLANDIĞI m MAKİNE MADI YERĠ MNO MTÜRÜ Burada iş ilişki seti ile çalışan ve proje varlık setleri birlikte iş adı verilen bir üst düzey varlık seti olarak kabul edilmektedir. Bu diyagramın tablolaştırılmasında: a)çalışan b)proje c)kullanım d)iş adlarıyla 4 ayrı tablo düzenlenir. Verileri mantıksal düzeyde düzenlemek için kullanılan kavramlar, yapılar ve işlemler bütününe veri modeli 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ı bağıntılar, mantıksal düzeyde ilgili veri modeline göre düzenlenir. Bu veri modelini kullanarak veri tabanının kavramsal ve dış şemaları oluşturulur. Hiyerarşik veri modeli (sıradüzensel) Ağ veri modeli İlişkisel veri modeli Nesneye yönelik veri modeli İlişkisel modelde, veri ve veriler arasındaki ilişkiler, tablolar halinde gösterilmektedir. Ağ modelde ise farklı olarak, kayıtlardan oluşmakta ve veri arasındaki ilişkiler, bağlar ile gösterilmektedir. Varlık kümeleri arasında istenilen yapıda, istenildiği kadar bağ kurulabilir. Her bağın bir adı vardır. Alt düzeydeki bir varlık, birden fazla üst düzeydeki bir varlık yada varlıklar ile bağlantılı olabilir. Genel ağ veri modelinde bağlar ile her türlü (bire-bir, bire-birçok, birçoğa-birçok) bağıntı gerçekleştirilebilir. İlişkiler ve bağlantıların önceden bilinmesi halinde, ağ veri modeli çok esnek ve kullanışlı bir yapıya sahiptir. Ancak mevcut veri tabanının genişletilebilmesi, ilişkilerin ve bağlantıların karmaşıklığı nedeniyle oldukça zordur. Ağ veri modelinin özel bir durumudur. Ağ veri modelinden farkı, her varlığın ancak ağ içinde bir varlıkla ilişkisinin mümkün olmasıdır. Grafik olarak ağaç yapısını göstermelidir. Diğer bir deyişle bu modelde herhangi bir varlık kendisinin altında n sayıda elemana bağlanırken kendisinin üstünde ancak bir varlığa bağlanabilir. Aynı özellikleri taşıyan öznitelikler hiyerarşik veri modelinde tekrarlanabilmektedir. Örneğin bir sınıfa ait öğrenci listesi ile derse kayıt yapan öğrenci listesindeki isimlerin tekrarlanması gibi. Bu da veri tekrarını dolayısıyla bellek sorununu gündeme getirir. Hiyerarşik veri modellerinde çoklu ilişkileri temsil edebilmek için, varlık tiplerinin her ilişki için ayrı ayrı tanımlanması gerekir. Bu da gereksiz veri tekrarına sebep olur. Hiyerarşik model, bir ağaç yapısına benzer. Model dahilindeki herhangi bir düğüm, altındaki n sayıda düğüme bağlanırken, kendisinin üstünde ancak bir düğüme bağlanabilir. Hiyerarşik yapının en tepesindeki düğüm noktasına kök denir ve bu düğümün sadece bağımlı düğümleri bulunur. D1, D2,…..DK alanlar topluluğunu düşünelim. Her alan bir değerler kümesidir. Bu alanların kartezyen çarpımı D1x D2x…..xDK ile gösterilir ve 1. Elemanı D1 alanından 2. Elemanı D2 alanından ……k. elemanı ise Dk alanından alınan d1, d2,….,dk k çoklular kümesidir. Bu k alan üzerinde tanımlanan her r ilişkisi, bu alanların kartezyen çarpımının bir alt kümesidir. r D1x D2x…..xDK Veri tabanı ilişkisi ile matematiksel ilişki arasındaki başlıca fark, veri tabanı ilişkisinin kullanıldığı ortama ve ve zamana göre değişmesine karşın matematiksel ilişkinin evrensel olması, ortama ve zamana göre değişmemesidir. Çizelgenin her kolonuna bir nitelik (attribute) atanır. Çizelgenin her satırı ise bir çokluyu (1. Elemanı 1. Niteliğin değer alanından, 2. Elemanı 2. Niteliğin değer alanından ….. k. elemanı ise k. elemanın değer alanından alınan ve k değerden oluşan bir çoklu ) gösterir. Her satır bir sıra (tuple) olarak adlandırılır ve kaydedilir. Bir sütundaki satır değerleri bu özelliğin alabileceği değerleri, başka bir değimle etki alanını (domain) göstermektedir. Anahtar, tablonun tanımlayıcısıdır. Anahtar sayesinde bir sütun-satırda sadece bir değerin bulunması sağlanmaktadır. Tüm veriler hatta iliĢkiler birer tablo (çizelge, Ģema) ile ifade edilirler. Her çizelge, belli sayıda kolondan ve sonsuz sayıda satırdan oluĢur. Satırların (çokluların) sırası önemsizdir. Tüm satırların birbirinden farklı olması gerekir (iliĢki bir satırlar kümesi olduğuna göre aynı satır iliĢkide birden çok kez yer alamaz). Tüm satırlar birbirinden farklı olduğuna göre iliĢkinin en az bir anahtarı (anahtar adayı) vardır. En kötü olasılıkla, tüm niteliklerin birleĢimi anahtarı oluĢturur. ĠliĢkinin her kolonu bir niteliğe karĢı geldiğine ve kolon baĢlığında niteliğin adı yer aldığına göre, kolonların sırası da önemsizdir. Bir kolonda yer alan tüm değerler, belirli bir değer alanından gelen değerler olup tümünün türü aynıdır. Çizelgede yer alan her değer bir sayı, bir ad, bir miktar, bir tutar, bir adres, bir tarih,….. gibi yalın değerler olabilir. Çizelgenin bir öğesi bir dizi, bir vektör, bir baĢka çizelge ya da karmaĢık bir değer olamaz. Yani çizelgenin nitelikleri yalın ve tek değerli niteliklerdir. Bir banka veri tabanı için varlık ilişki diyagramı Varlık-bağıntı modeli kullanılarak veri modelleme yapıldığında, eğer veri tabanını gerçekleştirmek için ilişkisel bir VTYS kullanılacaksa, oluşturulan varlık-bağıntı çizeneğinin ilişki şemalarına dönüştürülmesi gerekir. Bu amaçla varlık-bağıntı modelindeki her farklı kavramın (varlık kümesi, nitelik,…..) ilişkisel modelde nasıl gösterileceğinin bilinmesi gerekir. Varlık-bağıntı modelindeki her varlık kümesi için ilişkisel modelde bir ilişki şeması oluşturulur. İlişkinin nitelikleri olarak varlık kümesinin nitelikleri kullanılır. Genel olarak, varlık-bağıntı modelindeki her bağıntı kümesi ilişkisel modelde bir ilişki şemasına dönüştürülür. Ancak kimi bağıntı kümeleri için ilişkisel modelde ayrı bir ilişki şeması oluşturmaya gerek yoktur. Bunun yerine varlık kümesi için oluşturulan ilişki şemalarından birine, diğer varlık kümesinin anahtarlarında yer alan nitelikleri eklemek yeterlidir. Tablolaştırmada, müşteri, şube, depozit ve kredi için tablolar oluşturulmalıdır. Bir veri modeli, verinin hangi kurallara göre yapılandırıldığını belirler. Fakat yapılar, verinin anlamı ve nasıl kullanılacakları hakkında tam bir açıklama vermezler. Veri üzerinde yapılmasına izin verilen işlemlerin belirlenmesi de gerekir. İşlemler, yapının sunduğu çerçeve içinde çalıştırılırlar. Sanayi veri tabanı proje düzeyinde üretim yapan bir kuruluĢ için hazırlanacaktır. Veri tabanı ile ilgili açıklamalar Ģu Ģekildedir. Her proje bir bölümde yapılmaktadır. Bir bölümde birden çok proje yapılabilmektedir. Her projenin bir yöneticisi vardır. Proje yöneticisinin projenin yapıldığı bölümde çalıĢan bir kiĢi olması zorunlu değildir. Her personel bir bölümde çalıĢmaktadır. Her bölümün bir yöneticisi vardır. Bölüm yöneticisinin de o bölümde çalıĢan bir kiĢi olma zorunluluğu yoktur. Bir personel birden çok bölümün ya da projenin yöneticisi olabilmektedir. Kurumda kullanılan malzemeler projelerin girdilerini oluĢturan ve projede tüketilen malzemelerdir. Bu malzemelerin her biri kurumda üretilebilmekte, firmalardan hazır olarak satın alınabilmekte ya da bir kısmı kurumda üretilip bir kısmı satın alınmaktadır. Bir projede birden çok malzeme tüketilebilmektedir. Bir malzeme de birden çok projede tüketilebilmektedir. Bir bölümde birden çok malzeme üretilebilmektedir. Bir malzemede sıfır, bir ya da birçok bölümde üretilebilmektedir. Bir malzeme birden çok firmadan satın alınabilmektedir. Bir firmadan birçok malzemenin satın alınması da mümkündür. ÜRETĠM, TÜKETĠM ve ALIM varlık kümelerindeki MĠKTAR nitelikleri sırası ile yıl içerisindeki toplam üretim, tüketim ve alım miktarlarını göstermektedir. NORMALİZASYON Normalizasyonun amacı, veri tabanı tasarımındaki olası hatalı durumları en aza indirerek, veri tabanında oluşabilecek anormal durumları minimize etmektir. Normalisazyon işlemleri güncelleme işlemlerinin yoğun olduğu veritabanları için önemlidir. Normalizasyon işlemleri sonucunda iyi tasarlanmamış tablolar iyi tasarlanmış daha küçük tablolara dönüştürülür. 1. Normal Form (Tekrarlı grupların yok edilmesi) 2. Normal Form (Parçalı bağımlılıkların yok edilmesi) 3. Normal Form (Geçişken bağımlılıkların yok edilmesi) BC Normal Form (Çoklu bağımlılıkların yok edilmesi) BİRİNCİ NORMAL FORM Birinci normal formda, tüm nitelikler alt parçalara bölünemeyen en sade şekli ile tanımlanmış olan niteliklerdir. Bu form tüm niteliklerin birincil nitelik olmasını şart koşar. Tekrarlı birincil niteliklerin tablolardan ayrıştırılmasını sağlar Örnek Nergiz Ercil Çağıltay, Gül Tokdemir, Veri Tabanı Sistemleri Dersi, Teoriden Pratiğe, Ada matbaacılık ltd. şti., Ankara İKİNCİ NORMAL FORM İki kavramda inceleyeceğiz, X ve Y bir yada daha fazla nitelikten oluşan nitelik kümesini temsil etsin, Tam İşlevsel bağımlılık: X listesindeki niteliklerden birisinin tablolardan kaldırılması durumunda Y ile işlevsel bağımlılıkta ortadan kalkıyorsa bu durum X, Y ye tam işlevsel bağımlılık olarak ifade edilir. Parçalı işlevsel bağımlılık: X listesindeki niteliklerden birisinin bu tablolardan kaldırılması durumunda, işlevsel bağımlılık hala devam ediyorsa X, Y ye parçalı bir işlevsel bağımlılık olarak ifade edilir. Bir tablonun ikinci normal formda olabilmesi için öncelikler o tablonun birinci normal form kuralına uyması gerekir. Nergiz Ercil Çağıltay, Gül Tokdemir, Veri Tabanı Sistemleri Dersi, Teoriden Pratiğe, Ada matbaacılık ltd. şti., Ankara Örnek Bu tablodan aşağıdaki işlevsel bağımlılık listesini yazabiliriz. Nergiz Ercil Çağıltay, Gül Tokdemir, Veri Tabanı Sistemleri Dersi, Teoriden Pratiğe, Ada matbaacılık ltd. şti., Ankara ÜÇÜNCÜ NORMAL FORM Bir işlevsel bağımlılık X, Y ye ve Y, Z ye olarak tanımlanmış ise X, Z ye bağımlı olduğunu söyleyebiliriz. Bir tablonun 3. normal formda olabilmesi için öncelikle o tablonun 2. normal formda tanımlanması gerekir. Bu şart sağlandıktan sonra bütün asal olmayan niteliklerden anahtar olarak belirlenen niteliklere geçişken olarak değildoğrudan bağımlı olması gerekir. Bu durumda geçişken bağımlılık söz konusu ise bu tablonun 3. normal formda olmadığı söylenir ve 3. normal forma getirmek için tablo parçalanır. Örnek Nergiz Ercil Çağıltay, Gül Tokdemir, Veri Tabanı Sistemleri Dersi, Teoriden Pratiğe, Ada matbaacılık ltd. şti., Ankara Nergiz Ercil Çağıltay, Gül Tokdemir, Veri Tabanı Sistemleri Dersi, Teoriden Pratiğe, Ada matbaacılık ltd. şti., Ankara ĠliĢkisel modelde temel yapı iliĢkidir. Bu modelde kullanıcılar iliĢkiler cinsinden düĢünür, iliĢkiler üzerinde iĢlem yapılır, sonuçlar da iliĢki yapısında ele alınır. ĠliĢkisel cebir, iĢlemsel bir sorgulama dilidir. Bir ya da iki iliĢkiyi girdi olarak alıp sonuç olarak yeni bir iliĢki üreten bir dizi iĢlemlerden oluĢmaktadır. Temel iĢlemler, seçme, atma, kartezyen çarpımı, yeniden adlandırma, birleĢtirme, fark oluĢturma Ģekillerindedir. Bu temel iĢlemlerden baĢka kesiĢme seti, doğal birleĢim, bölme ve atama v.b. gibi çeĢitli iĢlemler bulunmaktadır. Bu iĢlemler, temel iĢlemlere dayanılarak gerçekleĢtirilmektedir. ĠliĢkisel Veri Tabanı Yönetim Sistemlerinde kullanılan diller (iliĢkisel diller) kuramsal temelleri açısından ikiye ayrılır. İlişkisel Cebire (Relational Algebra) dayalı diller : ĠliĢkiler üzerine cebirsel iĢlemler uygulanarak yeni iliĢkiler elde edilir. Bir sorgunun yanıtını elde edebilmek için, belirli iliĢkisel cebir iĢlemlerinin belirli sırada uygulanması gerekir. Cebirsel dillerde kullanıcı hangi iĢlemlerin hangi sırada uygulanacağını yazarak hem neyi istediğini hem de istediğinin nasıl elde edileceğini belirtir. İlişkisel Hesaba (Relational Calculus) dayalı diller : Bu dillerde sorgu, istenilen niteliklerin sağlaması gereken bir önerme oluĢturarak tanımlanır. ĠliĢkisel hesaba dayalı dillerde ise, kullanıcı istediği veriler tarafından sağlaması gereken önermeyi yazar, ancak bu verilerin nasıl elde edileceğine iliĢkin bilgi vermez. E.F. Codd tarafından yapılan tanıma göre bir iliĢkisel dilin yetkin olabilmesi için iliĢkisel hesap deyimleri ile elde edilebilen her sonucun bu dil ile de elde edilebilmesi gerekir. ĠliĢkisel cebir iĢlemlerinden ikisi (seçme ve izdüĢüm) tekli, diğerleri ise ikili iĢlemlerdir. Diğer taraftan ikili iĢlemlerden dördü (birleĢim, kesiĢim, küme fark ve kartezyen çarpımı) alıĢılmıĢ küme iĢlemleridir, diğer ikili iĢlemler (birleĢtirme, doğal birleĢtirme ve bölme) ise özel iĢlemlerdir. ĠliĢkisel cebir iĢlemlerinden tümü birbirinden bağımsız değildir. ĠliĢkisel iĢlemlerden birkaçının diğer iĢlemler cinsinden ifade edilmesi mümkündür. Seçme ya da sınırlama iĢlemi bir iliĢkinin belirli bir koĢulu sağlayan çoklularını seçmeyi sağlar. ĠliĢki bir çizelge olarak düĢünülürse seçme iĢlemi ile çizelgenin belirli satırları seçilir. Genel yazılışı: F (R) : ĠĢlem (seçme) iĢareti F : Seçme koĢulu R : Seçme iĢlemi uygulanacak iliĢkinin adı Seçme koĢulu yalın bir koĢul olabileceği gibi karmaĢık bir koĢul da olabilir. Her yalın koĢul bir karĢılaĢtırma iĢareti ile karĢılaĢtırılan iki aritmetik deyimden oluĢur. Aritmetik deyimlerde de iĢaretteki nitelikler, değiĢmezler ve bunların fonksiyonları yer alabilir. Yalın koĢullar mantıksal iĢaretlerle birleĢtirilerek karmaĢık koĢullar oluĢturulur. EMP Name Office Dept Rank Smith 400 CS Assistant Jones 220 Econ Adjunct Green 160 Econ Assistant Brown 420 CS Associate Smith 500 Fin Associate Dept = 'CS' (EMP) Name Office Dept Rank Smith 400 CS Assistant Brown 420 CS Associate Tekli bir iĢlem olan izdüĢüm iĢlemi bir iliĢkinin belirli nitelikleri seçilerek diğerleri atılır. ĠliĢki bir çizelge olarak düĢünülürse izdüĢüm iĢlemi ile çizelgenin belirli kolonları seçilir ve elde edilen yeni çizelgede varsa tekrarlı satırlar atılır. Belirli bir iliĢkiden bazı özellikleri çıkarıp atmaktır. Genel yazılış: (NĠTELĠK LĠSTESĠ) ( R ) : ĠzdüĢüm iĢareti nitelik listesi :izdüĢüm alınacak niteliklerin listesi (istenilen sırada) R : ĠzdüĢüm alınacak iliĢkinin adı Ġkili bir iĢlem olan birleĢim iĢlemi iki iliĢkinin küme birleĢimini alır. Rasgele iki iliĢkinin birleĢimi alınamaz. Ġki iliĢkiye birleĢim iĢleminin uygulanabilmesi için bu iliĢkilerin birleşim-uyar iliĢkiler olması gerekir. Eğer iki ilişkinin dereceleri (nitelik sayıları) aynı ise ve aynı sıradaki nitelikleri aynı değer alanı üzerinden tanımlanmışsa bu ilişkilere birleşim-uyar ilişkiler denir. İlişkilerin birleşim-uyar olması için karşılıklı niteliklerinin adlarının aynı olması şart değildir. Ancak karşılıklı niteliklerinin uyar (ikisi de tarih, ikisi de kişi adı, ikisi de miktar ..gibi) olması gerekir. Genel yazılış: R1 R2 : BirleĢim iĢareti R1 ve R2 : BirleĢimi alınacak iliĢkiler Ġkili bir iĢlem olan kesiĢim iĢlemi ile iki iliĢkinin küme kesiĢimi elde edilir. BirleĢim iĢlemi gibi kesiĢim iĢlemi de rasgele iki iliĢkiye uygulanamaz. Ġki iliĢkiye kesiĢim iĢleminin uygulanabilmesi için bu iliĢkilerin birleĢimuyar olması gerekir. Ġki iliĢkide de bulunan sıraların saptanması için kesiĢme iĢlemi yapılır. Genel Yazılışı: R1 R2 : KesiĢim iĢareti R1 ve R2 : KesiĢimi alınacak iliĢkiler R R First Last Age Bill Smith 22 Sally Green 28 Mary Keen 23 Tony Jones 32 S First Last Age Forrest Gump 36 Sally Green 28 DonJuan DeMarco 27 S First Last Age Bill Smith 22 Sally Green 28 Mary Keen 23 Tony Jones 32 Forrest Gump 36 DonJuan DeMarco 27 R-S First Last Age Bill Smith 22 Mary Keen 23 Tony Jones 32 First Last Age Sally Green 28 R S İki ilişkiden birinde bulunup, diğerinde bulunmayan sıraların bulunması, belirlenmesi işlemidir. Fark işlemi de rasgele iki ilişkiye uygulanamaz. İki ilişkiye fark işleminin uygulanabilmesi için bu ilişkilerin birleşim-uyar olması gerekir. Genel yazılışı: R1-R2 - : Küme Fark İşareti R1 ve R2 : Farkı alınacak ilişkiler Kartezyen çarpım iĢlemi ile iki iliĢkinin küme çarpımı bulunur. Çarpma iĢlemi ile elde edilen iliĢki, iĢlenen iliĢkilerin çoklularının artarda eklenmesinden oluĢan tüm çoklukları içeren bir iliĢkidir. Genel yazılıĢı: R1 x R2 = {a1a2: a1Є R1, a2Є R2} X: çarpma iĢareti R1, R2 : çarpılacak iliĢkiler R First Last Age Bill Smith 22 Mary Keen 23 Tony Jones 32 S Dinner Dessert Steak Ice Cream Lobster Cheesecake RXS First Last Age Dinner Dessert Bill Smith 22 Steak Ice Cream Bill Smith 22 Lobster Cheesecake Mary Keen 23 Steak Ice Cream Mary Keen 23 Lobster Cheesecake Tony Jones 32 Steak Ice Cream Tony Jones 32 Lobster Cheesecake Ġkili bir iĢlem olan birleĢtirme iĢlemi ile iki iliĢkinin kartezyen çarpımının bir alt kümesi elde edilir. BirleĢtirme iĢleminde iĢlenen iliĢkilerden her birinin belirli bir niteliği (birleĢtirme niteliği) ile bir aritmetik karĢılaĢtırma iĢareti (θ) kullanılır. Genel yazılıĢ R1 R2 a1 θ a2 R1 ve R2 : birleĢtirilen iliĢkiler : birleĢtirme iĢareti a1 ve a2 : sırasıyla R1 ve R2 nin birer niteliği θ : bir aritmetik karĢılaĢtırma iĢareti R1 R2 = a1θa2 (R1XR2) a1θa2 Ġkili bir iĢlem olan doğal birleĢtirme iĢleminin uygulanabilmesi için iĢlenen iliĢkilerde aynı adı taĢıyan bir yada birkaç(enaz bir) niteliğin bulunması gerekir. Doğal birleĢtirme iĢlemi ile iki iliĢki aynı adı taĢıyan niteliklerinin eĢitliği üzerinden birleĢtirilir ve sonuç iliĢkide tekrarlı niteliklerden birer tanesi atılır. R1 R2 R1 ve R2 : birleĢtirilen iliĢkiler : BirleĢtirme iĢareti KarmaĢık bir iĢlemdir. Diğer ikili iĢlemlerden birleĢim, kesiĢim ve doğal birleĢtirme iĢlemleri değiĢmeli iken, bölme iĢlemi ile küme fark iĢlemi değiĢmeli değildir. Genel yazılıĢ R1 ÷ R2 R1 Bölünen iliĢki R2 Bölen iliĢki Ġki iliĢkiye bölme iĢlemi uygulanabilmesi için iliĢkilerde en az bir ortak (aynı adlı) nitelik bulunması gerekir. Bölme iĢlemi bu ortak nitelik yada nitelikler üzerinden uygulanır. Adı bölme olmakla birlikte iliĢkisel bölme iĢleminin aritmetik bölme iĢlemi ile bir benzerliği yoktur. Kaynaklar Ünal Yarımağan, Veri Tabanı Sistemleri, Sistem Ofset, 2000. Martin, E., Modell, Data analysis, data modeling, and classification New York : McGraw-Hill, c1992. Yalçın, Özkan, Gülser, Dondurmacı Acar. Microsoft Access 2000, Türkçe Sürüm, Temel Öğrenim Kılavuzu, Alfa Yayınları, 2000. Tahsin Yomralıoğlu, Coğrafi Bilgi Sistemleri Temel Kavramlar ve Uygulamalar, Seçil Ofset, 2000. Oya Kalıpsız, Bilgisayar Veri Tabanı Sistemleri, İstanbul Üniversitesi Basımevi, 1996. R. Ramakrishnan, Data Base Management Systems, Mc Graw Hill, 1998. R. Elmasri, S. Navathe, Fundamentals of Database Systems, Third Edition, Addison – Wesley, 2000. Martin, Daniel, Advanced Database Techniques, 1986. Rigaux, P., Scholl. M, Voissard, A., Spatial databases : with applications to GIS, Morgan Kaufmann Publishers, 2002. Colin R., Database principles and design, London : Cengage Learning, 2008. Nergiz Ercil Çağıltay, Gül Tokdemir, Veri Tabanı Sistemleri Dersi, Teoriden Pratiğe, Ada matbaacılık ltd. şti., Ankara