






Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Geographic Information Systems SQL queries
Typology: Lecture notes
1 / 10
This page cannot be seen from the preview
Don't miss anything!
UCS508-COĞRAFİ BİLGİ SİSTEMLERİNDE YORUMLAMA VE ANALİZ TEKNİKLERİ
UCS508-COĞRAFİ BİLGİ SİSTEMLERİNDE YORUMLAMA VE ANALİZ TEKNİKLERİ
Veritabanlarının en vazgeçilmez özelliklerinden biri depolanan veriden hızlı bilgi elde edilebilmesidir. Bu özellik veritabanlarının sorgulanması ve analiz edilmesi ile mümkündür. Bilindiği üzere veritabanı sorgulaması ve analizi bütün Veritabanı Yönetim Sistemleri (VTYS) tarafından kullanılan Yapılandırılmış Sorgulama Dili (Structured Query Language – SQL) ile yapılmaktadır. Ancak SQL yalnızca bir araçtır. Verilerden hızlı bilgi elde edebilmek için sorgulama aracının yanı sıra veri yığınlarının ilişkili oldukları diğer veri yığınlarına çabuk erişilmesi gerekir. Verilerin yığınlar halinde depolanması ve veri yığınlarının birbirleri ile ilişkilendirilmesi, akla ilişkisel veritabanı modelini getirmektedir. İlişkisel veritabanı modeli (relational database model) ile verilerin yığınlar (kümeler) hâlinde işlenebileceği ve yığınlar arasında ilişkiler kurulabileceği görülmüştür. Mantık ve alt küme olgusunun veritabanı üzerine uygulanabilirliğini ortaya koyan ilişkisel veritabanı modeli, dayandığı bu matematiksel teori nedeni ile ilişkisel adını almaktadır. Kendinden önceki veritabanı modellerinin gelişmiş bir versiyonu olarak ifade edilebilen bu model oldukça yaygın kullanılan bir veritabanı modelidir. Günümüzde veritabanı yönetim sistemi yazılımlarının büyük bir çoğunluğu ilişkisel veritabanı modelini desteklemektedir. Veritabanı kuramı ortaya atıldığında ilk geliştirilen model hiyerarşik veritabanı modelidir (hierarchical database model). Hiyerarşik veritabanı modelinde, adından da anlaşılacağı üzere yalnızca birden çoğa bir ilişki söz konusudur. Zaman içerisinde farklı ilişkilerin de gerekliliği gündeme gelince, ağ veritabanı modeli (network database model) geliştirilmiş ve birden çoğa ilişkinin yanı sıra çoktan çoğa ilişki kurulabilmiştir. Ancak hiyerarşik veritabanı ve ağ veritabanı modellerinin esnek olamayışı, bu modellerde veriyi bilgiye dönüştürme sürecinde tablolar arası ilişkilerin tam olarak tanımlanamaması, ilişkisel veritabanı modelinin ortaya atılmasında tetikleyici bir etken olmuştur. İlişkisel veritabanı modelinin en önemli özelliklerinden biri anahtar alan kavramıdır. İlişkisel veritabanı modeli anahtar alanlar yardımı ile tablolar arasında ilişki kurulmasını sağlamış, özellikle diğer modellerden farklı olarak varlıklar arasındaki doğal ilişki olan bire bir (1:1) ilişkinin tablolar arasında kullanılmasına olanak tanımıştır.
UCS508-COĞRAFİ BİLGİ SİSTEMLERİNDE YORUMLAMA VE ANALİZ TEKNİKLERİ
Konumsal nesnelerin konum bilgisi, genelde tablolardan görsel olarak okunabilen değişken tanımı dışında, binary (ikili) yapıdaki bilgi alanlarında saklanır. Öznitelik verileri ise, görsel olarak okunabilen bilgi alanlarında depolanırlar. Bilgi alanları yani sütunlar, veri tipine göre değişken tanımları ile ifade edilirler. Değişken türleri veritabanının yapısına göre çok çeşitli olabilir. Bazı değişken türleri çok küçük farklılıklarla birbirinden ayrılırken, bazı değişken türleri ise veritabanlarına göre farklı isimler alabilirler. Birçok veritabanı yazılımında aşağıda sıralanan değişken türleri kullanılmaktadır:
UCS508-COĞRAFİ BİLGİ SİSTEMLERİNDE YORUMLAMA VE ANALİZ TEKNİKLERİ Resim 3 .2. Örnek tablo tasarımı
Öznitelik verilerine bağlı sorgulamalar SQL (Structured Query Language) adı verilen yapısal sorgulama dili kullanılarak yapılmaktadır. SQL veritabanlarındaki verilere ulaşmak ve işlemek için ideal bir araçtır. SQL bir ANSI (American National Standards Institute) standardı olmasına karşın kullanılan veritabanı yazılımlarına göre farklı versiyonlarda karşımıza çıkmaktadır. Çeşitli veritabanı yazılımları tarafından kullanılan farklı SQL versiyonlar› SELECT, INSERT, UPDATE, DELETE, WHERE gibi ANSI standardındaki temel komutlara ek olarak kendi genişletmelerini kullanmaktadır. SQL kullanılarak şu işlemler yapılabilir;
UCS508-COĞRAFİ BİLGİ SİSTEMLERİNDE YORUMLAMA VE ANALİZ TEKNİKLERİ bulmak için “SELECT * FROM Bina WHERE [YAPIM_YILI] Is Null”, veya YAPIM_YILI bilgi alanı boş olmayan kayıtları bulmak için “SELECT * FROM Bina WHERE [YAPIM_YILI] IsNot Null” SQL komut dizinleri kullanılmaktadır. Birden fazla koşul için örnek vermek gerekirse, 2000 - 2005 yılları arasında yapılan 4 kat ve üzeri binaların seçimi **“SELECT * FROM Bina WHERE [KAT_ADEDI] >= 4 AND [YAPIM_YILI]
1999 AND [YAPIM_YILI] <2006”** SQL komut dizini ile yapılmaktadır. Resim 3 .4. Birden Fazla Koşul Vererek Öznitelik Verilerine Bağlı Seçme Sorgulaması
Birden çok farklı tabloda depolanan karmaşık veritabanı tasarımlarında tablolar arasında ilişkilerin kurulması gerekir. Tablolar arası ilişkiler, veri tekrarını engelleyerek verimlilik artışı sağlar. İlişkiler her iki tabloda da bulunan ortak bilgi alanları üzerinden, anahtar alanlardaki verilerin eşleştirilmesiyle kurulur. Çoğu durumda (bire bir ilişki hariç), bu eşleştirme alanları, birinci tabloda benzersiz kayıt barındıran birincil anahtar alan (primary key field) ile ikinci tablodaki çoklu kayıt içeren yabancı anahtar alan (foreign key field) bağlantısı ile sağlanır. Tablolar arasında 3 farklı tipte ilişkiden söz edilebilir.
Bire bir ilişkide, her iki tabloda ilişki kurulacak ortak bilgi alanı genellikle birincil anahtar (primary key field) ya da tekil anahtar alan (unique key field) olarak seçilir. TCDD bilet sistemini örnek alalım. İki adet tablo kullanalım. Yolcu tablosu ve bilet tablosu. Bu iki tablo arasındaki
UCS508-COĞRAFİ BİLGİ SİSTEMLERİNDE YORUMLAMA VE ANALİZ TEKNİKLERİ ilişki bire bir olur. Her yolcu yalnızca bir bilet satın alır ve her bileti yani koltuğu sadece bir kişi satın alabilir. İlişki kurulurken yolcu tablosuna mı yoksa bilet tablosuna mı ortak bilgi alanı eklemeliyiz? Eğer bilet tablosuna TCKIMLIK_NO bilgi alanı eklersek satılmayan koltuklar için “NULL” boş kayıt oluşturmuş oluruz. Bu istenen bir durum değildir. Yolcu tablosuna BILET_NO bilgi alanı eklersek her yolcu için bir bilet satın alınmış olacağı için herhangi bir NULL değeri yani boş kayıt oluşturmamış oluruz (Resim 2.5). Aslında bu iki tablonun tek bir tabloda birleştirilmesi gerektiği, bire bir ilişki kurmanın bir veritabanı tasarımcısı için çok kullanışlı olmadığı düşünülebilir. Bazı durumlarda bu kanı doğru olmakla birlikte bazı uygulamalarda bire bir ilişkinin veritabanı performansını arttırdığı gözlenmiştir. Resim 2.5.’de görüldüğü gibi yolcu ve bilet tablosu BILET_NO bilgi alanı üzerinden birebir ilişki ile ilişkilendirilmiştir. Vagonlardaki tüm koltuklar bilet tablosu içerisinde benzersiz olarak kaydedilmiş, yolcu tablosunda ise sadece satılan koltuklar yolcu ile ilişkilendirilmiştir. Tablolarda boş kayıt oluşturulmamış olduğu için veritabanında performans artışı sağlanmıştır. Resim 3 .5. Bire Bir İlişki Örneği
Birden çoğa ilişkilerde ana tablonun bir kaydı, ikinci tablonun bir ya da birden fazla kaydı ile ilişkilidir. Bu sayede birden fazla tekrar eden kayıtların saklanmasında etkili bir depo alanı kullanımı sağlar. Bu ilişki tipi hiyerarşik veritabanı modelinin ortaya çıkmasını sağlamıştır. Örnek vererek açıklamak gerekirse bir kreş-yuva için anne ve çocuk ilişkisini ele alalım. Örneğe göre ilişki kuracağımız tablolar anne ve çocuk tabloları olsun. Bir anne birden fazla çocuğunu kreşe getirmiş olabilir, diğer bir deyişle annenin birden fazla çocuğu olabilir. Ancak bir çocuğun birden fazla annesi olamaz. Buna göre tablolar arasında birden çoğa ilişki kurulmalıdır (Resim 2.6.). Resim 2.6.’da görüldüğü üzere Sibel Coşkun’un kreşe gönderdiği Bora, Sude ve 0ya olmak üzere üç çocuğu vardır. Anne tablosundaki TCKIMLIK_NO bilgi alanı birincil anahtar alandır. Bu alan çocuk tablosunda yabancı anahtar alan olarak belirlenmiş ANNE_KIMLIK_NO bilgi alanı ile eşleştirilmiş ve tablolar arasında birden çoğa ilişki kurulmuştur. Bu ilişki yardımı ile annenin adı
UCS508-COĞRAFİ BİLGİ SİSTEMLERİNDE YORUMLAMA VE ANALİZ TEKNİKLERİ Resim 3 .7. Çoktan Çoğa İlişki Örneği Özetlemek gerekirse öğrenci ve ders tablosu arasındaki çoktan çoğa ilişkinin, ilişki tablosunun diğer iki tablo ile (öğrenci ve ders tablosu) birden çoğa ilişki kurularak tanımlandığı görülmektedir. Veri modelinin şematik gösterimi Resim 2.8.’de verilmiştir. Resim 2.8. Çoktan Çoğa İlişki Şematik Veri Modeli Gösterimi