Konumsal Veritabanı 1 Dersi 4. Ünite Özet
Veritabanı Bileşenleri
- Özet
- Sorularla Öğrenelim
Giriş
Veritabanı bileşenleri kavramsal, mantıksal ve fiziksel veritabanı bileşenleri olarak üç kategoriye ayrılmaktadır. Kavramsal bileşenler veritabanı tasarım aşamasında kurulacak yapıyı algılama, tasarlanan yapının veritabanı ortamına nasıl aktarılacağını kurgulama, işleyişte varlıklar arasında bulunan ilişkileri tablolar arası ilişkilere uyarlayarak bu ilişkilerin hangi özellikler üzerinden kurulacağını belirleme gibi süreçlerde kullanılan varlık, özellik, ilişki ve kural bileşenleridir.
Veritabanı Yönetim Sistemleri (VTYS) mimarisinde her ne kadar mantıksal katman ve fiziksel katman net bir şekilde ayrılmış olsa bile, uygulamada mantıksal bileşenler ve fiziksel bileşenleri birbirinden ayıran keskin bir çizgi yoktur. Bu nedenle bazı kaynaklarda “ Mantıksal ve Fiziksel Veritabanı Tasarım Bileşenleri ” olarak isim alırlar.
Tablo
Veritabanlarının en temel bileşeni tablodur. Tablo, veritabanlarında verinin depolandığı yer, satır ve sütunlardan oluşan iki boyutlu bir yapıdır. Bir başka tanıma göre tablolar, ortak özelliklere sahip verileri veritabanında saklamak üzere kullanılan yapılardır.
Tablolar isimlendirilmiş belirli sayıda sütundan-veri alanından (column-data field) ve sınırsız sayıda satırdankayıttan ( row-record) oluşur. Satırlarda veritabanında depolanan olgular, sütunlarda ise veritabanında depolanan olguların özellikleri yer almaktadır.
Tablolar bir nesneye ait veriler içerebileceği gibi, bir olaya ait veriler de içerebilir. Tablonun konusu bir nesne ise insan, yer veya eşya gibi somut bir şeye ait veriler içerir.
Kayıt
Tablodaki her bir satır kayıt olarak adlandırılır. Örneğin öğrenci verilerinin saklandığı bir tabloda, her satır bir öğrenciye ait veri içerir. Tabloda verisi depolanacak kaç öğrenci varsa o kadar satır yer almalıdır.
Veri Alanı
Tablodaki sütunlar veri alanı ( data field) olarak adlandırılır. Tablodaki veri alanları her kayıt için tek bir değer içermelidir. Bu alanlara tekrar eden grup veriler ya da diziler yazılamaz. Böylece tablodaki her değerin yerine, satır ve sütun belirtilerek, yani hangi kaydın hangi niteliği olduğu belirtilerek ulaşılabilir.
Veri alanının (sütunun) içerdiği değerler aynı veri tipinden olmalıdır. Örneğin T.C. Kimlik numarası kaydedilen veri alanına sadece rakamlardan oluşan 11 karakter uzunluğundaki veriler kaydedilmelidir.
Tablodaki her veri alanına tek bir isim verilmelidir. İki veri alanı aynı ismi kullanamaz. Ancak farklı bir tabloda aynı isimde başka bir veri alanı olabilir. Dolayısıyla aynı veri alanı ismi veritabanında farklı tablolarda kullanılabilir.
Veri Tipleri
Veri tipinin doğru belirlenmesi veritabanı performansını artırır, saklama alanının iyi yönetilmesini sağlar ve bazı istenmeyen hataların engellemesine yardımcı olabilir. Örneğin öğrenci tablosunda adı, soyadı girilecekse bu veri alanları için har erden oluşan ( alfa-numerik ) veri tipi seçilmesi doğru olacaktır.
Veritabanı tasarlanırken öncelikle tablolar, tablolardaki veri alanları ve bu alanlar için veri tipleri belirlenir. Bir alana veri girişi yapılmadan önce, o alana tamsayı mı, ondalık sayı mı, harf veya harfler mi, tarih mi yazılacağı önceden tanımlanmalıdır. Öyle ki alana girilecek verinin uzunluğu, harf girilecekse en fazla kaç karakter girileceği gibi sorulara da yanıt bulunmalı ve tasarım buna göre yapılmalıdır.
Farklı veritabanlarında isim ve yapı olarak farklı veri tipleri olsa da genel olarak kullanılan veri tipleri şunlardır:
- Tamsayı
- Uzun tamsayı
- Ondalık
- Kesirli
- Çift
- Metin
- Tarih ve saat
- Doğru/Yanlış
- İkili
- Uzun ikili
- Not
Anahtar Veri Alanı
Veritabanlarının etkin bir şekilde ve kuruluş amaçlarına uygun olarak kullanılabilmesi için mutlaka anahtar veri alanına gerek vardır. Anahtar veri alanı seçiminde bir satıra depolanan nesne ya da olaya ait özellikleri temsil edebilecek alanlardan biri veya birkaçı tercih edilmelidir. İlişkisel veritabanlarının en önemli özelliklerinden biri anahtar veri alanlarıdır.
Eğer bir alan anahtar olarak tanımlandıysa her kaydın o veri alanındaki değerinin benzersiz ( unique ) olması gerekir. Örneğin bir mağazada müşterilere ait veriler bir için müşteri_no niteliği anahtar alan olarak tanımlanırsa o veri alanındaki her değer benzersiz (tek, eşsiz) olmalı ve yinelenmemelidir. Anahtar alan özelliği atanan veri alanı içerisinde aynı değer tekrarlanamaz.
Anahtar alan belirlenirken aşağıdaki koşullara dikkat edilmelidir;
- Çoklu değer içeren alanlar anahtar olamaz.
- Mutlaka benzersiz (unique), tekrar etmeyen değerler içermelidir.
- Mümkün olduğunca boş değer (NULL) içermemesine özen gösterilmelidir.
- Güvenlik ile ya da mahremiyetle ilgili sorun oluşturabilecek nitelikler anahtar alan olarak seçilmelidir.
- Birden fazla alanın birleştirilerek anahtar olarak kullanılmasından olabildiğince kaçınılmalıdır. Bu şekilde bir kullanım zorunluysa, başka bir özellik belirlenemiyorsa, mümkün olduğu kadar az sayıda veri alanının birlikte kullanımı tercih edilmelidir.
- İçerdiği değerler mutlaka o kaydı net şekilde tanımlamalıdır.
- İçeriği zaman içerisinde çok nadir değişmeli hatta mümkünse hiç değişmemelidir.
Veritabanında kullanılan dört çeşit anahtar bulunmaktadır:
- Birincil anahtar (primary key)
- Tekil anahtar (unique key)
- Bileşik anahtar ( composite key)
- Yabancı anahtar (f oreign key)
Birincil Anahtar
Birincil anahtar bir tablodaki kaydı kesin olarak temsil eden alana veya alan grubuna verilen isimdir. Birincil anahtar veri alanındaki her değer benzersiz (unique), tek olmalı ve tekrar etmemelidir.
Tekil Anahtar
Tabloda herhangi bir veri alanı tekil anahtar olarak tanımlanırsa bu alana girilen her değer benzersiz (unique) olmalı, yani tekrar etmemelidir. Bu kısıtlama ile kayıtlardaki veri tekrarının önüne geçilebilir. Bu özelliği ile tekil anahtar, birincil anahtara benzemektedir. Tekil anahtar ile birincil anahtar arasındaki fark tekil anahtar alanın boş geçilebilmesi, yani “null” değeri içerebilmesidir.
Bileşik Anahtar
Önerilmeyen bir durum olsa da, birden fazla veri alanı aynı anda kullanılarak bileşik anahtar tanımlaması yapılabilir. Birincil anahtar tanımlanabilecek veri alanı yoksa ve verilere hızlı ulaşılmak isteniyorsa bileşik anahtar kullanılabilir.
Yabancı Anahtar
Başka bir tablonun birincil anahtarı ile bağlantılı veri alanlarına yabancı anahtar adı verilir. Yabancı anahtarlar tablolar arası ilişki kurmak için kullanılırlar. Yabancı anahtar tanımlanabilmesi için ilişkili tabloların her ikisinde de aynı veri alanından olması gereklidir.
Sorgu
Veritabanındaki verilerden bilgi elde etmek amacı ile yapılan işlemlere sorgu adı verilir. Veritabanında yapılan veri ekleme, verileri güncelleme, verilerden istenilen kritere uygun olanları seçme, verileri sıralama vb. işlemlerin hepsi sorgular aracılığıyla gerçekleştirilir. Sorgu, veritabanında veriler üzerinde işlem yapmak için kullanılan veritabanı bileşeni olarak tanımlanabilir.
SQL Sorgulama
Structured Query Language (SQL) komut tabanlı, yapısal veri kümeleri ve veri yapıları üzerinde işlem yapmayı sağlayan bir veritabanı dilidir. Komut tabanlı olması, komut yazıldıktan sonra veritabanına istek gönderilip çalıştırılması ve gelen sonucun gösterilmesi ilkesine dayanır. Veritabanında yapılacak işlemlere göre standartlaşmış kurallara bağlı olan SQL komut dizilimleri ile veritabanının işletimi sağlanır.
Veritabanlarının yönetim ve işletme amaçlı tüm işlemleri SQL kullanılarak gerçekleştirilir. Veritabanı oluşturma süreçlerinden tablo tasarımına, kullanıcı tanımlama işlemlerinden erişim yetkilerinin atanmasına, veri ekleme, silme ve güncelleştirme işlerinden sorgulamaya SQL komutları kullanılmaktadır.
Coğrafi Bilgi Sistemlerinde Sorgulama
Veritabanı ortamında, verilere ve verilerin işlenmesi ile elde edilecek bilgiye sorgular aracılığıyla erişilir. CBS’de kullanılan konumsal veritabanlarında ise veriye ya da bilgiye ulaşmak için üç farklı yöntem kullanılmaktadır:
- VTYS uygulamalarını kullanarak standart SQL sorgulaması ile zniteliğe bağlı sorgulama,
- Open Geospatial Consortium (OGC) tarafından tanımlanan konumsal sorgulama operatörleri ile konuma dayalı sorgulama,
- BS yazılımları içinde sunulan SQL ve konumsal sorgulama arayüzleri ile konuma dayalı sorgulama.
Konumsal veritabanında depolanan veriler, “öznitelik verisi” ve “konumsal veri” olarak ikiye ayrılmaktadır:
Öznitelik Verisi: Konumsal bir nesne ile ilişkili bir özelliği, karakteristiği veya olayı temsil eden, konum bilgisi içermeyen verilerdir. Özniteliğin değeri numerik, metin, tarih, mantıksal vb. veri tipinde olabilir.
Konumsal Veri: Yeryüzünde herhangi bir nesnenin coğrafi konumunu belirlemek için kullanılır. Nesnelerin yeryüzündeki mutlak ve göreceli konumları, nokta, çizgi ve poligon gibi basit grafik elamanları kullanılarak modellenir.
Öznitelik Verilerine Bağlı Sorgulam a
Öznitelik verilerine bağlı sorgulamalar ( select by attributes ) kullanılarak veritabanında işlemler yapılabilir. Bir tablodaki rakımı 1000 m’den yüksek şehirlerin bulunması veya Türkiye’de adı “B” ile başlayan ve son nüfus sayımına göre nüfusu 1.000.000’dan fazla olan şehirlerin listelenmesi vb. işlemler, öznitelik sorgusuna örnek olarak verilebilir. Benzer sorgulamalar CBS yazılımlarının sunduğu SQL sorgulama arayüzleri yardımı ile yapılmaktadır.
Konuma Dayalı Sorgulama
CBS yazılımlarında grafik nesnelerin sorgulanmasında konuma dayalı sorgular ( select by location ) kullanılmaktadır. Konuma dayalı sorgularda konumsal nesnelerin birbirleri arasındaki konumsal ilişkilerinden yararlanılır.
Dizin
Dizin, tablo içerisindeki verilere hızlı erişim ve verilerin istenilen veri alanına göre sıralanmasını sağlayan veritabanı bileşenidir. Veritabanında, üzerinde çok arama veya işlem yapılacak veri alanları için dizin oluşturularak sorgulama işlemleri hızlandırılabilir. Bir tablo içerisinde birden fazla dizin oluşturulabilir.
Dizinler SQL sorgu cümlelerinin performansını artırmak için tablolarda çok sorgulanan alanlarda oluşturulur. Dizin oluşturulmayan tablolarda verilerin sorgulanması veya sıralanmasında tüm tablo verilerinin taranması gerekir. Bu nedenle dizin oluşturulmayan tablolarda sorgulama ve sıralama işlemleri çok yavaş olur. Dizinler, kitapların arka bölümünde bulunan dizin mantığını kullanır. Kitabın arkasındaki dizini inceleyerek kitapta ilginizi çeken, aradığınız bir kavramın hangi sayfalarda yer aldığını öğrenirsiniz.
Birincil dizin: Tabloda bulunan birincil anahtar alanlar üzerinde tanımlanan dizin türüdür. Birincil dizin alanlarında bulunan kayıtların benzersiz (unique) olması gerekir.
İkincil Dizin: Tabloda anahtar alan olarak tanımlanmayan alanlarda oluşturulan dizin türüdür. İkincil dizin veri tekrarını engellemez.
Konumsal Dizin: Konumsal dizinler konumsal nesnelerin bulunma işlemini hızlandıran yapılardır. Bu dizinlerin kullanılması konumsal veriler üzerinde gerçekleştirilen görüntülenme, düzenleme ve sorgulama işlemlerinde performans artışı sağlar. Normal dizinler için geçerli olan avantaj ve dezavantajlar konumsal dizinler için de geçerlidir.
Soyut Gösterim
Soyut gösterim ( view ), verilerden derlenen ve son kullanıcının bilgiye erişimini kolaylaştıran, sanal tablo ya da görüntü olarak adlandırılabilecek veritabanı bileşenleridir. Veritabanlarında amaca bağlı olarak son kullanıcıya tablolardan seçilen ve derlenen, gerçekte böyle bir dizilim veya tablo olmadığı hâlde, veri alanlarını düzenleyerek tabloymuş gibi göstermeye yarayan görüntülere, soyut gösterim ( view) adı verilir. Genellikle “ sanal tablo” olarak kabul edilen soyut gösterimlerde gerçekte veri depolanamaz ve sanal tabloda, gerçekte var olan tablolardan tablolar arası ilişkiler kullanılarak veriler çağrılır ve listelenir.
Soyut gösterimler, diğer bir isimle sanal tablolar, veritabanı tasarımında bulunan karmaşık yapıyı gizleyerek son kullanıcıya özet ve amaca uygun olarak düzenlenmiş verileri sağlamada oldukça kullanışlı veritabanı bileşenleridir. Böylece ticari sır olabilecek veritabanı tasarımı korunmuş olur. Ayrıca bazı tablolarda son kullanıcıların ulaşılması istenmeyen ancak sistemde gereklilik arz eden bazı veri alanlarının gizlenmesi sağlanabilir.
Form ve Rapor
Veritabanlarında form, genellikle veri girişi ve veri güncelleme amacı ile düzenlenmiş arayüzlerdir. Formlar üzerinden veri girişi yapılmasının temel nedeni, veri girişi aşamasında kullanıcıların hatalı veri girişlerini engellemektir.
Form; düzenli ve hatasız bir şekilde veri girişinin yapılmasını, dolayısı ile veritabanının daha sağlıklı olmasını, kolay sorgulanmasını ve işletilmesini sağlayan veritabanı bileşenidir. Soyut gösterimlerde olduğu gibi form tasarımcısı tablolar arasındaki ilişkileri kullanarak, birden fazla tablodaki amaca uygun veri alanlarını tek form üzerine taşıyarak görüntüleme, güncelleme ve giriş sağlayabilir. Tasarımda soyut gösterime benzer şekilde SQL komut dizilimleri kullanılır. Böylece gizli kalması gereken yapı son kullanıcıya aktarılmaz. Veritabanı ortamında SQL komut dizilimleri ile hazırlanan raporlama araçları dinamik yapıdadır. Zaman içerisinde veride olan güncellemeler ve eklemeler, SQL komutlarının tekrar çalıştırılması ile güncel raporlara yansıtılabilir.
Önemli veritabanı bileşenlerinden biri de raporlardır. Rapor; verilerin sorgulanması ve analizi sonucunda oluşan, verinin bilgiye dönüşümü sürecindeki son basamak olarak tanımlanabilir. Rapor temel olarak bir soyut gösterim ( view ) olarak algılanabilir. Rapor ve soyut gösterim arasındaki temel fark, raporun kağıt ortamına çıktı almak için hazırlanmış, sayfalardan oluşan bir doküman oluşudur. Raporlarda analiz sonuçlarının verilebildiği grafiklerin kullanılabilmesi, karar vericiler için önemli bir dokümantasyon olma özelliğini beraberinde getirir. Veritabanı ortamında SQL komut dizilimleri ile hazırlanan raporlama araçları dinamik yapıdadır.
Veritabanında veriler tablolarda depolanır ve işlenirler. Veri girişi ve güncelleme işlemleri için kullanımı kolay formlar (arayüzler) düzenlenmiş olsa da verinin çağrıldığı ve kaydedildiği yer yine tablolardır. SQL komut dizilimleri ile elde edilen soyut gösterimler ( view ), veriye doğrudan tablo üzerinden erişirler. Raporlar sorgu sonuçlarından yani soyut gösterimlerden ya da doğrudan tablolardan elde edilen dokümantasyonlardır ve dolayısı ile verilere tablo üzerinden ulaşırlar (Şekil 4.5).
Sonuç olarak tablolar veritabanlarının en önemli bileşenleri olup sorgu, form, rapor gibi diğer bileşenler veriye doğrudan ya da dolaylı şekilde tablolardan ulaşmaktadır. VTYS yazılımları tarafından kullanılan SQL komut dizilimleri saklanarak soyut gösterimlere ve raporlara tekrar ulaşılabilir. Güncelleme ve veri girişleri sonucunda verideki değişiklikler soyut gösterimlere ve raporlara yansımaktadır. Bu özellik bu iki bileşenin dinamik bir yapıda olduğunu göstermektedir.