KONUMSAL VERİTABANI I - Ünite 2: Veritabanı Kuramı Özeti :
PAYLAŞ:Ünite 2: Veritabanı Kuramı
Giriş
Bilgi elde etmek için kullanılan, amaca uygun olarak düzenlenmiş, sistematik erişim olanağı bulunan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler olan düzenli veriler topluluğuna veritabanı denir. Veritabanları ve veritabanı yönetim sistemlerine ilişkin araştırma ve çalışmalar bütününün genel adıdır. Veritabanı kuramının odak noktası sorgu dillerinin karmaşıklığını ve ifade gücünü ölçmek, bu dillerin mantıkla ilişkisini ortaya koymaktır (https://tr.wikipedia.org/wiki/Veritabanı_kuramı, Erişim tarihi: 03.03.2016).
Veritabanı Yönetim Sistemleri
Veritabanlarını oluşturmak, verilere erişim izni olan kullanıcıları tanımlamak, işletmek, güncellemek ve veritabanı elemanları ile ilgili her türlü yönetsel gereksinimleri karşılamak için tasarlanmış sistemlerin genel adına veritabanı yönetim sistemi denir. Çeşitli ticari kuruluşlar tarafından Veritabanı Yönetim Sistemleri (VTYS) yazılımları üretilmiş olup, ölçeğe bağlı olarak çeşitlenmektedir. Sektörde tanınan VTYS yazılımlarına Oracle, Microsoft SQL Server, IBM DB2, MySQL, Sybase, PostgreSQL, Informix, SQLite ve Microsoft Access örnek olarak verilebilir. Ayrıca VTYS yazılımları hakkında veri toplayan ve yayımlayan kuruluş “DBEngines” Mart 2016 verilerine göre en popüler ilk beş VTYS çözümünü Oracle, MySQL, Microsoft SQL Server, MongoDB ve PostgreSQL olarak sıralanmıştır. DBEngines sıralaması aylık olarak yayımlanan, VTYS yazılımlarının güncel popülaritesini gösteren bir araştırmadır (http://dbengines.com/en/, Erişim tarihi:15.03.2016).
VTYS yazılımları desteklemiş oldukları veritabanı modellerine göre veritabanı oluşturmaktadır. Bilinen veritabanı modelleri hiyerarşik, ağ, ilişkisel ve nesne tabanlı veritabanı modelleridir. Veritabanları temelde iki amaç için kullanılır. Veriyi depolamak ve en kısa sürede erişmek. Bu amaçlar doğrultusunda veritabanlarının optimize edilmesi, sağlıklı işletilmesi ve etkin bir şekilde yönetilmesi gerekir. İşte bu noktada devreye VTYS girer. VTYS ilkelerine göre, veritabanına aktarılmadan önce veri düzenlenerek en az yer tutacak şekilde depolanır. Veri tekrarını engellemek ve veritabanını buna göre tasarlamak, veriye erişim hızı ve depolama alanı açısından önemlidir.
Veritabanı Yönetim Sistemlerinin Genel Özellikleri
Veritabanlarının etkin ve verimli bir şekilde işletilmesini ve yönetilmesini sağlamak için hemen hemen tüm VTYS yazılım çözümlerinde bulunan genel özellikler;
- Veritabanını oluşturmak ve tasarlamak,
- Veritabanı tablolarını oluşturmak,
- Tablolar arası ilişkileri kurmak,
- Veritabanı kullanıcılarını tanımlamak,
- Kullanıcıların erişim yetkilerini belirlemek,
- Kayıt eklemek, silmek ve güncelleştirmek,
- Veritabanı üzerinde sorgulama yapmak,
- Veritabanı bakımını yapmak,
- Veritabanını yedeklemek,
- Veritabanını gereksinimlere göre geliştirmek ve değiştirmek
Veritabanı Yönetim Sistemlerinin Avantajları
Veritabanı kuramı, dosya sistemlerinin depolanan verilerin artması ile gereksinimleri karşılayamaması ve veriye ulaşmanın zorlaşması sonucu ortaya atılmış bir kavramdır. Veritabanı yaklaşımında birden fazla kullanıcıya erişim izni verilmesi ve veritabanının tek merkezden yönetilmesi VTYS’nin en önemli avantajı olmuştur. Merkezi yönetim yapısı VTYS yazılımlarına pek çok avantajı beraberinde getirmiş olup, bu avantajlar;
- Veri tekrarının önlenmesi (data redundancy)
-
Veri tutarlılığı (data consistency): VTYS’de veri tutarlılığı kısa adı ACID olan özellikler sayesinde sağlanır. ACID;
- Bölünmezlik (Atomicity),
- Tutarlılık (Consistency),
- Yalıtım (Isolation),
- Devamlılık (Durability)
- Eşzamanlılık kontrolü ve kilitleme (concurrency control and locking): Eşzamanlılık kontrol ve kilitleme mekanizması, çok kullanıcılı ortamlarda veri erişimi sağlandığında VTYS tarafından kullanılmaktadır. Bölünmezlik, tutarlılık ve yalıtım eşzamanlılık kontrolü ve kilitleme ile sağlanmaktadır.
- Veri bütünlüğü (data integrity): Veri bütünlüğü veri doğruluğu, tutarlılığı ve veritabanı genelindeki bütünlüğü ifade eder. Veri kaydının iki güncelleme arasında değişiklik göstermemesi durumu olarak tanımlanmaktadır.
- Uygulama geliştirme kolaylığı: VTYS Uygulama Geliştirme Arayüzü (Application Programming Interface – API) desteği ile bu yazılımların geliştirilmesi için veritabanı erişim kapıları sunmaktadır.
- Veri güvenliği (data security): Yetkilendirme işlemi veritabanı yöneticisi tarafından kullanıcıların belirlenmesi ve tanımlanması, kullanıcılara okuma, yeni kayıt ekleme, kayıt silme, kayıt güncelleme vb. yetkilerin atanması şeklinde yapılır.
- Kullanıcı arayüzleri: Uygulama geliştirme kolaylığı avantajında da anlatıldığı gibi, VTYS Uygulama Geliştirme Arayüzü (Application Programming Interface – API) desteği ile kullanıcı dostu arayüzlere olanak tanır.
-
Yedekleme ve kurtarma: Veritabanı kontrol modülü genel olarak;
- Veritabanı yedekleme,
- Yedeklerden veritabanını yeniden yükleme,
- Dosyalama sisteminde gerçekleşen ve yavaşlık yaratan sorunları gidermek için veritabanını onarma,
- Veritabanının başka sunucular üzerine kopyasını alma, vb. hizmetleri sağlar
- Uygulama-veri bağımsızlığı (data independence): VTYS’de veri bağımsızlığı kavramı uygulamalardan bağımsız olarak VTYS’nin veri üzerinde her türlü değişikliği yapabilmesi olarak tanımlanır.
- Veri soyutlama olarak sıralanabilir: Veri soyutlama yeteneği, kullanıcılara veritabanı tasarımı, tablolar arası ilişkiler, tablo sayısı, kullanıcı sayısı vb. bilgilere ulaşmadan, veritabanları üzerinde yetkileri çerçevesinde işlem yapma olanağı sunar
Veritabanı Yönetim Sistemlerinin Dezavantajları
Veritabanlarının can damarı olan VTYS’nin, pek çok avantajının yanı sıra bazı dezavantajları da söz konusudur. VTYS’nin dezavantajlarını;
- VTYS yapısı oldukça karmaşıktır,
- Uygun nicelik ve nitelikte donanım ve altyapı gerektirir,
- İyi eğitim almış, deneyimli, profesyonel personele ihtiyaç duyar,
- Maliyeti yüksektir olarak kısaca sıralayabiliriz.
VTYS’nin dezavantajlarını açıklamak gerekirse, özellikle kurulması planlanan veritabanının büyüklüğü, kullanıcı sayısı ve talepler arttıkça daha karmaşık bir yapıya doğru ilerler. Veri çeşitliliği, yapılacak iş süreçlerinin kapsamı, kullanıcı sayısı arttıkça veritabanı tasarımı ve işletimi zorlaşır. VTYS yönetimi ve işletimi için yeteri derecede eğitim almış, deneyimli, profesyonel personele gereksinim vardır. Sistem yöneticisi iş süreçleri gereksinimleri doğrultusunda oldukça deneyimli olmalıdır. Veritabanı yöneticisinin yanı sıra deneyimli uzman yazılım, donanım ve ağ mühendislerine gereksinim duyulmaktadır. Çünkü bu personel ekibi yukarıda açıklanan karmaşık veritabanının tasarımı, yetkilendirilmesi, işletimi, donanım ve ağ gereksiniminin belirlenmesi ve kurulması, ağ topolojisinin oluşturulması gibi VTYS için yaşamsal görevleri üstleneceklerdir.
Veritabanı Yönetim Sistemi Mimarisi
VTYS mimarisi, veritabanının kullanım, yönetim, işletim ve görüntüleme ilkelerini düzenleyen en temel omurga olarak tanımlanabilir. Amerikan Ulusal Standartlar Enstitüsü, Standart Planlama ve Gereksinimler Komisyonu (ANSI-SPARC) tarafından hazırlanmış tasarım, bazı kaynaklarda “ANSI-SPARC Mimarisi” olarak adlandırılmaktadır. “ANSI-SPARC Mimarisi” ilk olarak 1975 yılında önerilmesine rağmen hiçbir zaman resmi bir standart olarak kabul görmemiştir. VTYS yazılımları fiziksel bağımsızlığı ve kavramsal düzeyde kullanıcıların doğrudan veritabanı erişiminin kısıtlanmasına sıcak bakmadıkları için, ANSI-SPARC mimarisini tam olarak uygulamamışlardır. Ancak modelin mantıksal düzeyde veri bağımsızlığı yaklaşımı birçok VTYS yazılımı tarafından benimsenmiştir (https://en.wikipedia.org/wiki/ANSISPARC_Architecture, Erişim tarihi 10.03.2016). VTYS mimarisinde son kullanıcılara veriler soyut gösterimlerle sunulur. Kullanıcıların veritabanı ve tablo tasarımlarına erişmeden, yalnızca veriler üzerinde işlem yapmalarını sağlayan VTYS mimarisi, en yalın yapısı ile üç düzeyden oluşur. Bunlar;
- Dış Düzey (Alt Şema),
- Kavramsal Düzey (Mantıksal Şema),
- İç Düzey (Fiziksel Şema) olarak listelenebilir
Yapılandırılmış Sorgulama Dili (SQL)
VTYS yazılımları veritabanı yönetimi için uygulamada küçük farklılıklar gösterseler de Yapılandırılmış Sorgulama Dili (Structured Query Language – SQL) adı verilen, veritabanları ile iletişim kurmayı sağlayan standart bir dil kullanılmaktadır. SQL kullanılarak veritabanı üzerindeki tüm yönetimsel işlevler gerçekleştirilebilmektedir. SQL komutları hizmet ettikleri işlevlere bağlı olarak kategorilere ayrılmaktadır. Bazı uzmanlar bu kategorilerin ayrı diller ya da alt diller olduğunu savunsalar da bütün SQL komutlarının temel dizilimi ve kuralları aynı olduğu için, tek bir dil altındaki işlevsel farklılık gösteren kategoriler olarak değerlendirilmesi gerekir. Bu kategoriler;
- Veri Tanımlama Dili (Data Definition Language – DDL),
- Veri Sorgulama Dili (Data Query Language – DQL),
- Veri İşleme Dili (Data Manipulation Language – DML),
- Veri Kontrol Dili (Data Control Language – DCL),
- İşlem Kontrol Komutları (Transaction Control Commands) olarak listelenebilir.
Veri Tanımlama Dili (DDL)
Veri tanımlama dili (DDL) veritabanı oluşturmak, tablo, soyut görünüm (view), dizin gibi veritabanı bileşenlerini tasarlamak ve bu bileşenlerin yapısal özelliklerini değiştirmek için kullanılmaktadır. Veritabanında hangi tabloların bulunacağı, tabloların hangi veri alanlarından oluşacağı, bu veri alanlarındaki veri tipi, anahtar alan ve dizin seçimi gibi yapısal tanımlamalar, veri tanımlama dili (DDL) kullanılarak VTYS tarafından gerçekleştirilmektedir. Veri tanımlama dili (DDL);
- CREATE (oluştur),
- ALTER (değiştir),
- DROP (sil) komutlarından ibaret olup,
SQL’in diğer komutlarından farklılık göstermektedir.
Veri Sorgulama Dili (DQL)
Veri sorgulama dili (DQL) yalnızca SELECT (seç) komutundan oluşmaktadır. SELECT komutu veri üzerinde herhangi bir değişiklik yapmadığı için veri işleme komutları (DML) ile karıştırılmaması gerekir. Dikkat edilmesi gereken diğer bir nokta veri sorgulama dilinin (DQL), yapılandırılmış sorgulama dili (SQL) ile karıştırılmamasıdır.
Veri İşleme Dili (DML)
VTYS veri işleme dilini (DML) veri ekleme, güncelleme ve silme işlemlerinde kullanmaktadır. Veri işleme dili (DML);
- INSERT (kayıt ekle),
- UPDATE (kayıt güncelleştir),
- DELETE (kayıt sil) gibi veride düzenleme işlemleri yapan SQL komutlarını kapsayan bir kategoridir.
Veri Kontrol Dili (DCL)
Veri kontrol dili (DCL) veritabanı yöneticisi tarafından kullanıcılara verilecek erişim yetkilerini tanımlamaktadır. Veri kontrol dilinin (DCL) başlıca komutları;
- GRANT (kullanıcı yetkilendir),
- DENY (kullanıcı engelle),
- REVOKE (kullanıcıya verilmiş yetkiyi iptal et) olarak sıralanabilir.
İşlem Kontrol Komutları
İşlem kontrol komutları, VTYS avantajlarında anlatılan veri tutarlılığını korumak, “ya hep ya hiç” bölünmezlik ilkesini sağlamak amacı ile veritabanında herhangi bir nedenle oluşan hizmet dışı kalma durumundan sonra, veritabanının yedekleme sistemlerinden yeniden hizmete alınması sürecinde, tamamlanmış işlemlerin verilere yansıtılması ya da hatalı olarak verilere yansıtılmış işlemlerin geri alınması için kullanılmaktadır. VTYS tarafından veritabanı onarma, kurtarma işlemleri için kullanılan başlıca işlem kontrol komutları;
- BEGIN TRANSACTION (işlemi başlat),
- COMMIT TRANSACTION (işlemi onayla),
- ROLLBACK TRANSACTION (işlemi geri al) olarak sıralanabilir.