2.1. İlişkisel Veri Tabanları “Relational Database”
İlişkisel Veri Tabanları Sütun ve satırlardan oluşan tablolar ile verileri depolamak için kullanılan bir veri tabanı modelidir Bir tablo, belirli bir nesneye ait özellikleri içerir. Sütunlar detayın özelliklerdir (öznitelik), satırlar nesneye ait birer olaydır (kayıt) Her tablonun/nesnenin kendisi için indeks anlamını taşıyan bir özniteliği vardır (primary key). Nesneye ait tüm kayıtlarda bu özniteliğin değeri tekdir
İlişkisel Veri Tabanları Tablolar arasında bağlantı kurmak için “primary key” yada başka bir sütun olan “secondary/foreign key” kullanılır Birbiri ile ilişkili nesneler/tablolar İlişkisel yapı bire-bir ve bire-çok (çoka-bir) ilişkiyi destekler Çoka-çok ilişki 3 tablo ile çözülür (ilişkiler bire-çok, bire-çok) haline dönüştürülür
Değer türü (sayı, karakter, tarih vb) Büyüklüğü (10 hane vb) Değer girilme zorunluluğu Veri tekrarı Anahtar öznitelik
İlişkisel Veri Tabanı File Purchase Record Item Date Price Customer Key Skate Board 2/1/96 49.95 John Smith 42 Baseball Bat 17.99 James Brown 978 Patient Record Key Check-in Check Out Room No. 2/4/96 N763 78 2/3/96 N712 Accident Report Injury Name Location Broken Leg 75 Elm Street 2/2/96 Concussion Sylvia Jones 654 12 State Street Cut on Ear Robert Doe 123 2323 Broad Street File
Örnek
Kavramsal Veri Tasarımı Varlıklar, Öznitelikler ve İlişkilere karar verme Varlık-İlişki (E-R) diyagramı veya UML sınıf diyagramının çizilmesi
Varlık-İlişki Diyagramı
UML Sınıf Diyagramı
Mantıksal Veri Tasarımı Kavramsal şema, kullanılacak yazılım doğrultusunda mantıksal şemaya dönüştürülür E-R deki varlıklar veya UML sınıfları birer tablo olarak düşünülür Çoka-çok bağlantılar da arada bir tablo söz konusudur Anahtar öznitelikler tanımlanır Tabloların normalizasyon kurallarına uyup uymadığı denetlenir
Anahtar Öznitelikler
Normalizasyon/Ayrıştırma Bir tablo içerisinde yer alacak kayıdın nelerden (hangi özniteliklerden) oluşacağına karar vermeye yarayan kurallardır E-R veya UML diyagramlarının bu kurallara uyup uymadığı denetlenir Sonuçta bellek, erişim, bütünlük açısından problemsiz tablolar oluşturulmuş olur
Normalizasyon Kuralları Bir satırdaki her kolon tek bir bilgi içerebilir. Tekrarlayan gruplar olmamalıdır Bir tablodaki öznitelikler anahtar özniteliğe bağımlı olmalıdır Diğer öznitelikler arasında birbirine bağımlılık olmamalıdır
SQL-Standard/Structured Query Language İlişkisel VTYS’nde veri tanımlama ve erişim olanakları sağlar Doğrudan veya bir programlama dili içinde kullanılır İlişkisel cebir ve küme işlemleri temellidir Sorgulama sonucu görsel olarak ilgili kayıtları içeren yeni bir tablodur
select A1 ,A2 , ..., An veya * from r1 , r2 , ..., rm where P; – A: öznitelikler-attributes – r: tablolar/ilişkiler – P: koşul
İstatistiksel Fonksiyonlar avg: average value min: minimum value max:maximum value sum: sum of values count: number of values
Normalizasyon-Örnek
Dönem ve Öğrenci Verileri Öğrenci No Adı-Soyadı Doğum Tarihi Doğum Yeri Babası Adresi Danışman Kodu Danışmanı Ders Kodu Grubu Dersler Sınıf Not Not karşılığı 00440045 Ali Yalçın 10/10/1980 İstanbul Ahmet ..... 430003 Ayşe Okur 430351 1 Veri Tabanı A-501 A 4 430242 Hata Teorisi A-502 B 3 430233 2 Jeodezi A-504 F 00440016 Mine Çayır 5/5/1985 Ankara Ali 430015 Mehmet Polat 00430024 Ayşe Özgür 2/2/1985 Muğla Veli 430222 Fotogrametri A-503 A-505 00440013 2/12/1983 Veri tabanı C Öğrenci kimlik Öğrenci aldığı dersler Öğrenci Danışmanı Dönem Not Ortalaması
PersonelKimlik(sicilNo, adi, soyadi, ...) Öğrenci No Adı Soyadı Doğum Tarihi Doğum Yeri Babası Adresi 00440045 Ali Yalçın 10/10/1980 İstanbul Ahmet ..... 00440016 Mine Çayır 5/5/1985 Ankara 00430024 Ayşe Özgür 2/2/1985 Muğla Veli 00440013 2/12/1983 Öğrenci No Danışman Kodu 00440045 430003 00440016 430015 00430024 00440013 sicilNo Adı Soyadı ...... 430003 Ayşe Okur 430015 Mehmet Polat OgrenciKimlik(ogrenciNo, adi, soyadi, dogumTarihi, dogumYeri, babasi, adresi) PersonelKimlik(sicilNo, adi, soyadi, ...) OgrenciDanisman(ogrenciNo, sicilNo)
DersSinif(dersSinifKodu, dersKodu, grubu, sinifi) Sınıf 430351 1 A-501 430233 2 A-504 430242 A-502 3 430222 A-503 A-505 Ders Kodu Dersler 430351 Veri Tabanı 430242 Hata Teorisi 430233 Jeodezi DersSinif(dersSinifKodu, dersKodu, grubu, sinifi) Ders(dersKodu, dersler)
OgrenciNot(ogrenciNotKodu, ogrenciNo, dersKodu, grubu,notu) 00440045 430351 1 A 430242 B 430233 2 F 00440016 3 00430024 430222 00440013 C Not Not karşılığı A 4 B 3 C 2 D 1 F F0 OgrenciNot(ogrenciNotKodu, ogrenciNo, dersKodu, grubu,notu) NotKarsilik(notu, notKarsiligi)
ÖğrenciDanışmanDersNot(Öğrenci No,Adı-Soyadı,Doğum Tarihi,Doğum Yeri,Babası,Adresi,Danışman Kodu,Danışmanı,Ders Kodu,Grubu,Dersler,Sınıf,Not,Not karşılığı) OgrenciKimlik(ogrenciNo, adi, soyadi, dogumTarihi, dogumYeri, babasi, adresi) PersonelKimlik(sicilNo, adi, soyadi, ...) OgrenciDanisman(ogrenciNo, sicilNo) DersSinif(dersSinifKodu, dersKodu, grubu, sinifi) Ders(dersKodu, dersler) OgrenciNot(ogrenciNotKodu, ogrenciNo, dersKodu, grubu,notu) NotKarsilik(notu, notKarsiligi)
SQL Örnekleri
Öğrenci Kimlik Bilgileri SELECT * FROM OgrenciKimlik WHERE (((OgrenciKimlik.ogrenciNo)=[No gir]));
SELECT * FROM OgrenciKimlik WHERE (((OgrenciKimlik.adi)=[Adı]) AND ((OgrenciKimlik.soyadi)=[Soyadi]));
Aldığı Dersler SELECT OgrenciKimlik.ogrenciNo, OgrenciNot.dersKodu, Ders.dersler FROM Ders INNER JOIN (OgrenciKimlik INNER JOIN OgrenciNot ON OgrenciKimlik.ogrenciNo=OgrenciNot.ogrenciNo) ON Ders.dersKodu=OgrenciNot.dersKodu WHERE (((OgrenciKimlik.ogrenciNo)=[No]));
Dersi Alan Öğrenciler SELECT OgrenciKimlik.ogrenciNo, OgrenciKimlik.adi, OgrenciKimlik.soyadi, OgrenciNot.dersKodu, Ders.dersler FROM Ders INNER JOIN (OgrenciKimlik INNER JOIN OgrenciNot ON OgrenciKimlik.ogrenciNo = OgrenciNot.ogrenciNo) ON Ders.dersKodu = OgrenciNot.dersKodu WHERE (((Ders.dersler)=[Ders Adı]));
Dönem Not Ortalaması SELECT OgrenciNot.ogrenciNo, OgrenciKimlik.adi, OgrenciKimlik.soyadi, Avg(NotKarsilik.notKarsiligi) AS NotOrtalaması INTO aa FROM OgrenciKimlik INNER JOIN (NotKarsilik INNER JOIN OgrenciNot ON NotKarsilik.notu = OgrenciNot.notu) ON OgrenciKimlik.ogrenciNo = OgrenciNot.ogrenciNo GROUP BY OgrenciNot.ogrenciNo, OgrenciKimlik.adi, OgrenciKimlik.soyadi; ! Aritmetik Ortalama
SELECT Avg(NotKarsilik.notKarsiligi) AS NotOrtalaması FROM [ogrenci bul "no"] INNER JOIN (NotKarsilik INNER JOIN OgrenciNot ON NotKarsilik.notu=OgrenciNot.notu) ON [ogrenci bul "no"].ogrenciNo=OgrenciNot.ogrenciNo; ! Aritmetik Ortalama
3. Coğrafi Bilgi Sistemleri
Coğrafi Bilgi Sistemleri Konumsal verileri üreten, kullanan kurumların, kişilerin; günlük işlerini kolaylaştıran, destekleyen karar verme ve problem çözme işlerinde destek sağlayan bilgi/bilişim sistemleridir
Temel İşlevler Verilerin bilgisayara girilmesi/aktarılması Fiziksel ortamda depolama Erişim Güvenlik İşleme Sorgulama, Mekansal analizler Rapor ve harita hazırlama Yayınlama
Diğer bilgi sistemleri ile benzerlikleri Veri tabanı yönetim sistemi yazılımları Donanım İletişim yapısı Kişi bileşeni Bazı süreçler – Uygulama programları Bazı yöntemler
Tarihçe Tematik kartoğrafya Plancılar klasik yöntemler ile (elle) harita çakıştırma yöntemini uygulamışlardır Bu ilk kez 1950’de planlama kitabında Jacqueline Tyrwhitt tarafından tanımlanmıştır McHarg , yer seçimi için transparan haritaları çakıştırarak kullanmıştır
Temel Bileşenler Veri Yazılım Donanım İnsan Yönetim YÖNETİM
Yazılım CBS paket programı ArcGIS, MapInfo, PostGIS vb, CAD yazılımlarının CBS modülleri CBS paket programı ekleri: üç boyutlu analizler, mekansal analizler, şebeke analizi, internetten sunuş vb Uygulama yazılımı VTYS İletişim ile ilgili yazılımlar
Yazılım Veri Girişi Veri İşleme Veri Depolama Sorgulama Veri Yönetimi Coğrafi Analiz Veri Depolama Veri Yönetimi CBS YAZILIMI Sunuş İletişim
Yazılım Temel fonksiyonlar ekranda sayısallaştırma vb veri girişi farklı dosya formatlarını okuma ve dönüştürme koordinat sistemi dönüşümü sql sorgulamaları istatistiksel işlemler görselleştirme arayüz, makro olanakları vb
Bir veya birden çok katmanla yapılan işlemler, yeni oluşumlar En kısa yol vb işlemler
Yüzey oluşturma, enterpolasyon çeşitli veri türlerinden TIN-üçgenleme ile yüzey oluşturma çeşitli veri türlerinden, diğer enterpolasyon yöntemleri ile GRID oluşturma “Multipatch” tarzı 3B poligon, çizgi veriler
Yüzey verileri ile işlemler, sorgulamalar eğim, bakı, gölgelendirme vb görülebilirlik analizleri istatistiksel işlemler görüntü-yüzey kaplama 3B modelleme
Internet vb ağ uygulamaları İstemci/sunucu mimarisi verilerin bir veya daha çok sunucuda bulunması ve erişim verilerin internette sunulması verilere internette erişim
GPS, iletişim teknolojisi Mobil uygulamalar GPS, iletişim teknolojisi bilgisayardan uzakta iletişim sistemleri ile veri toplama/güncelleme araç takibi navigasyon
Donanım Merkezi veya dağıtık yapı LAN, WAN, Internet ağları veya tek bilgisayar Yazıcı, çizici vb birimler
İnsan Sistem oluşturma ekibi Yöneticiler Operatörler ve diğer kullanıcılar
Veri Yer yüzeyinin üstünde, altında, üzerinde belli bir biçimi ve konumu olan somut veya soyut nesnelerin koordinat öznitelik-özellik konumsal ilişki zaman değerleridir Diğer veriler; kişi vb
Veri Geometrik (Grafik) veriler Geometrik (Grafik) olmayan veriler Vektör Raster/Grid Geometrik (Grafik) olmayan veriler Geometrik veriler için tanımlayıcılar (öznitelikler) Geometrik veri ile dolaylı ilgisi olan veya olmayan diğer veriler
3.1. Vektör Veriler Noktalar Çizgiler Poligonlar Binalar Yapı Adaları Dünya Binalar Yapı Adaları Caddeler Riskli bölgeler İlçeler İller Noktalar Çizgiler Poligonlar
Vektör Veri Nokta/Çizgi/Poligon (çokgen/alan/) özellikleri koordinatları (x,y,z)/(x,y) konumsal ilişkileri
Nokta Kuyu, ağaç, rögar vb
Çizgi Ulaşım, Altyapı vb
Çizgi Ulaşım, Altyapı vb
Poligon Mahalle, Bina, Parsel vb
Poligon Mahalle, Bina, Parsel vb
Dosya Türleri ve Uzantıları ncz map,tab,ind shp, dbf, shx vd mdb vb Kooordinat vb verinin de depolandığı Veri Tabanı dosyaları (CVT) GML (Geographic Markup Language): CBS de vektör verinin hazırlanmasi için kullanılır, XML in geliştirilmişidir UVDF (Ulusal Veri Dönüşüm/Değişim Formatı)
Katman/tabaka/detay/sınıf Aynı Geometri Öznitelikler Koordinat Sistemi Ölçek Doğruluk Toplama yöntemi, zamanı vb