VERİ TABANI YÖNETİMİ Ders 12: Kullanıcı Türleri ve Soyutlama Düzeyleri Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği 1 Kullanıcı Türleri • Kullanıcıları kullandıkları veri tabanı hakkında bilgi ve yetki düzeylerine göre sınıflandıracak olursak: 1. 2. 3. 4. 5. Veri Tabanı Yöneticisi Uygulama Programcıları Sorgu Dili Kullanıcıları Uygulama Programı Kullanıcıları Rasgele Kullanıcılar 2 1) Veri Tabanı Yöneticisi • Veri tabanının tasarımından işletimine her şeyinden sorumlu olan kişiler veri tabanı yöneticisi (DBA: Database Administrator) ya da veri tabanı sorumlusu olarak adlandırılırlar. • İlk derste anlattığımız bir VTYS birimi olan Database Manager ile karıştırılmaması için biz DBA’in karşılığı olarak veri tabanı sorumlusu terimini kullanacağız. 3 Veri Tabanı Yöneticisinin Görevleri (1) • Veriler üzerinde yapılacak uygulama gereksinimlerini belirlemek, veri tabanı içeriğini oluşturmak, veri tabanı şemalarını (tabloları) tanımlamak. • Bütünlük kısıtlamalarını (Primary Key, Foreign Key, Unique, Check, Not Null) belirleyip tanımlamak. • Veri tabanı kullanıcılarını ve her kullanıcının hangi veriler üzerinde hangi işlemleri yapmaya yetkili olduğunu belirlemek; kullanıcı ve kullanım yetkilerini tanımlamak. 4 Veri Tabanı Yöneticisinin Görevleri (2) • Veri Tabanı Yönetim Sisteminin sunduğu seçenekler çerçevesinde, veri tabanının fiziksel yapısı ile ilgili parametreleri ve erişim yollarını (dizinleri) belirlemek ve tanımlamak. • Yedekleme, yeniden başlatma ve kurtarma düzenlerini belirlemek. • Veri tabanı sistemini sahiplenmek, işletimini izlemek, veri tabanının sürekli olarak kullanıma açık olmasını sağlamak. 5 Veri Tabanı Yöneticisinin Görevleri (3) • Gereksinimlerdeki değişiklikleri izlemek ve değişikliklere paralel olarak veri tabanı içeriği, şema tanımları, bütünlük kısıtlamaları, fiziksel yapı ile ilgili parametreler, erişim yolları, kullanıcılar ve kullanıcı yetkilerinde gerekli değişiklikleri oluşturmak ve tanımlamak. • Veri tabanı bütünlük kısıtlamalarının yeterliliğini izlemek; bütünlük kısıtlamaları ile ilgili gerekli değişiklikleri oluşturmak ve tasarlamak. • Veri tabanı kullanım istatistiklerini ve veri tabanı başarımını izlemek; varsa sorunları ve yetersizlikleri belirlemek ve gerekli her türlü önlemi almak. 6 Bir Yönetici Yeterli mi? • Bu görevleri yürütmek için küçük sistemlerde bir kişinin tam hatta yarı zamanlı çalışması yeterli olabilir. • Büyük sistemlerde ise bu görevleri yürütmek için değişik konularda uzmanlaşmış çok sayıda veri tabanı yöneticisine ihtiyaç vardır. • Veri tabanı yöneticisinin kullandığı başlıca olanak veri tanımlama dilidir (DDL). • Veri tanımlama diline ek olarak, başta sorgu dili olmak üzere diğer tüm olanaklar da veri tabanı yöneticisi tarafından kullanılabilir. 7 2) Uygulama Programcıları • Veri tabanı yöneticisi gibi, uygulama programcıları da veri tabanının gerçek anlamda kullanıcıları değildirler. • Uygulama programcıları, veri tabanı üzerindeki rutin uygulamalar (güncelleme, rapor üretme, önceden belirlenmiş standart sorgular, .. vb) için gerekli uygulama programlarını hazırlayan ve gerçek kullanıcıların kullanımına sunan kişilerdir. • Uygulama programcılarının kullandığı başlıca olanaklar: SQL, veri işleme dili (DML) ve diğer yazılım geliştirme araçlarıdır. 8 Yazılım Geliştirme Araçları • Kullanılan yazılım geliştirme araçları, ilgili Veri Tabanı Yönetim Sisteminin sağladığı araçlar (Oracle Forms, Oracle Reports gibi) olabileceği gibi Veri Tabanı Yönetim Sisteminden bağımsız araçlar (Power Builder, MS Visual Basic, MS C#, Delphi, .. vb) da olabilir. 9 3) Sorgu Dili Kullanıcıları • Veri tabanı üzerinde önceden belirlenmiş rutin uygulamalar dışındaki işlemleri gerçekleştirmek için genellikle sorgu dili (SQL) kullanılır. • DML ve DDL dilleri sorgu amaçlı olmamalarına rağmen çoğu zaman SQL’in bir parçası olarak görülürler. • Sorgu Dili Kullanıcıları DML komutlarını kullanabilir, fakat DDL’i sadece VT Yöneticisi kullanır. • SQL doğal dile yakın, kolay öğrenilen ve kolay kullanılan bir dildir (yine de biçimsel bir dildir). 10 Sorgu Dili Kullanıcıları • Bu dili kullanacak kişinin, veri tabanının kendisi ile ilgili olan kesiminin içeriğini (tablo isimleri, tablolardaki niteliklerin isimleri ve türleri, ... vb.) ve sorgu dilinin; yapısını bilmesi gerekir. • Dolayısıyla sorgu dilini kullanacak kişinin bir bilişim uzmanı olmasına gerek yoktur, ancak veritabanının içeriği ile sorgu dilinin yapısını bilen, bu konularda eğitilmiş, bilinçli bir kişi olması gerekir. 11 Sorgu Dili Kullanıcıları • Sorgu dili kullanıcıları genellikle yönetimin alt ve orta kademelerinde görev yapan kişilerdir. • Bunların dışında, sorgu dilleri sistem çözümleyici, sistem tasarımcı, uygulama programcısı, veri tabanı sorumlusu gibi bilişim teknik personeli tarafından da çok kullanılır. 12 4) Uygulama Programı Kullanıcıları • Bu kullanıcılar, uygulama programlarını kullanarak, veri tabanı üzerinde işletimsel düzeydeki rutin işlemleri gerçekleştiren kişilerdir. – – – – Ambar giriş-çıkışlarını işleyen stok kontrol görevlisi Faturaları işleyen muhasebe görevlisi Personel sicil bilgilerini işleyen personel dairesi çalışanı Verdiği dersin sınıf listesini almak veya öğrencilerin notlarını girmek isteyen öğretim üyesi – ÖSS sonucunu öğrenmek isteyen adaylar ... 13 Uygulama Programları • Uygulama programları daha çok işletimsel düzeydeki işlemler (veri tabanından bilgi alma, bilgiyi ekleme/silme/değiştirme) için kullanılır. • Ancak önceden belirlenmiş bazı yönetimsel işler için de kullanılan uygulama programları mevcuttur. Bunları kullanan kişi VT sorumlusudur (DBA). 14 5) Rasgele Kullanıcılar • Veri tabanı yaklaşımının temel amaçları arasında, hangi düzeyde olursa olsun, her kullanıcının veri tabanı ile doğrudan (herhangi bir aracı kullanmadan) iletişim kurabilmesinin ve veri tabanı kullanımının yaygınlaşmasının sağlanması da vardır. • Bu amaçla doğal dillere yakın etkileşimli veri tabanı dilleri geliştirilmiştir. 15 Rasgele Kullanıcılar • Veri tabanının içeriği konusunda biçimsel bilgisi olmayan, veri tabanı ve veri tabanı dilleri konusunda hiçbir eğitim görmemiş kullanıcılara rasgele kullanıcılar denir. • Rasgele kullanıcıların veri tabanı ile iletişim kurabilmesini sağlayan dillerde kullanıcı önce isteğini doğal dilde, serbestçe ifade eder. 16 Rasgele Kullanıcılar • Dil yorumlayıcısı, kullanıcının biçimsel olmayan ifadesini çözümleyerek ne istediğini anlamaya çalışır. • Bunun için kullanıcıya bir dizi soru yönelterek kullanıcının isteğini belirginleştirmeye çalışır. • Kullanıcı ile sistem arasındaki bu etkileşim sonunda kullanıcı isteğinin belirginleşmesi sağlanır ve biçimsel sorgu oluşturulabilirse bu sorgu işletilerek kullanıcı isteği karşılanır. 17 Rasgele Kullanıcılar • Rasgele kullanıcılara yönelik bu tür olanaklar, sorgu dili ve veri işleme dili kadar yaygın değildir. • Her Veri Tabanı Yönetim Sistemi kapsamında en az bir sorgu dili ile, en az bir taşıyıcı dil ile birlikte kullanılan bir veri işleme dili bulunmasına karşın, çok az sayıda Veri Tabanı Yönetim Sistemi kapsamında rasgele kullanıcılara yönelik doğal dile yakın, diyalog tabanlı, etkileşimli bir dil olanağı yer almaktadır. 18 Soyutlama Düzeyleri • Fiziksel veri tabanı ile uç kullanıcı arasında birçok soyutlama düzeyi bulunur. • Yandaki çizimde üç soyutlama düzeyinin yer aldığı örnek bir mimari yer almaktadır. 19 İç (fiziksel) Şema • İç şema, veri tabanının fiziksel yapısı ile ilgili tanımları içerir. • Veri tabanı bilgisayarda bir disk dosyası biçiminde yer aldığı için, bu dosyanın disk üzerindeki adresi ve özellikleri ile ilgili tanımlar iç şemayı oluşturur. • Aslında fiziksel veri tabanı olarak adlandırılan katman da kendi içinde, dosyalar ve mantıksal tutanaklar düzeyinden başlayıp, bitler ve fiziksel adresler düzeyine kadar uzanan birçok soyutlama düzeyinde görülebilir. 20 Kavramsal Şema • Tüm veri tabanının kuruluş düzeyindeki mantıksal yapısıdır. • Her Veri Tabanı Yönetim Sistemi, veri tabanının kavramsal şemasını tanımlamak ve bu şemanın fiziksel gerçekleştirimi olan fiziksel şemanın kimi özelliklerini belirtmek için gerekli veri tanımlama olanaklarını sağlar. • Bunlardan biri olan Veri Tanımlama Dili (DDL), kavramsal veri tabanının, veri modeli terimleri ile tanımlanmasını sağlayan yüksek düzeyli bir dildir. 21 Dış (alt) Şema • Kavramsal şemanın bir alt kesiminin soyut bir modelidir. • Dış şemaları tanımlamak için de genellikle veri tanımlama dili kullanılır. • Dış şema, bir anlamda, küçük bir veri tabanının kavramsal semasıdır ve genellikle kavramsal şema ile dış şema aynı soyutlama düzeyindedir. 22 Dış (alt) Şema • Bazı yönleriyle dış şema kavramsal şemadan daha soyut olabilir. • Fiziksel veri tabanında ve kavramsal şemada yer almayan, ancak kavramsal şemadaki verilerden türetilebilen verilere dış şemada yer verilebilir. – Örneğin, kavramsal şemada kişilerin doğum tarihleri yer alırken, dış şemada kişilerin yaşlarına yer verilebilir. 23 Veri Bağımsızlığı • Veri bağımsızlığı sayesinde uygulamaların, veri saklama yapıları ve erişim yöntemlerinden bağımsızlaştırılması sağlanır. • Dış şema, kavramsal şema ve iç şemadan oluşan soyutlama zinciri, iki farklı veri bağımsızlığı düzeyi sağlar. – Fiziksel Veri Bağımsızlığı – Mantıksal Veri Bağımsızlığı 24 Fiziksel Veri Bağımsızlığı • Fiziksel Veri Bağımsızlığı, “bellekte saklı verilerin yapı ve erişim yöntemi değişikliklerinden uygulamaların etkilenmemesi” olarak tanımlanabilir. • Eğer bir bilişim sisteminde fiziksel veri bağımsızlığı sağlanmışsa, bellek yapıları ve erişim yöntemleri, hatta bellek ortamları uygulamalardan etkilenmeden değiştirilebilir. 25 Fiziksel Veri Bağımsızlığı • Fiziksel veri bağımsızlığının önemini daha iyi anlamak için, örnek olarak önce veri tabanı olanakları kullanılmadan, genel amaçlı bir programlama dili ile geliştirilen bir bilişim sistemini düşünelim. • Bu örnekte veriler, kullanılan işletim sistemi ile programlama dilinin sağladığı dosya yapıları ve erişim yöntemleri kullanılarak ikincil belleklerde saklanır. • Saklanan verilerin hacminin büyüklüğü ve veriler arası bağıntıların çokluğu, verileri saklamak ve verilere erişmek için kullanılan yapı ve yöntemlerin karmaşıklaşmasına yol açar. 26 Fiziksel Veri Bağımsızlığı • Veriler üzerinde işlem yapacak kullanıcıların, karmaşık veri düzenleme ve erişim tekniklerini tüm ayrıntıları ile bilmeleri, yazacakları uygulama programlarında yapıları doğru olarak tanımlamaları ve bu yapılarla uyumlu işlem algoritmalarını oluşturmaları gereklidir. • Bu nitelikteki uygulama programlarının yalnız uzman bilişim teknik personeli tarafından yazılabileceği açıktır. 27 Fiziksel Veri Bağımsızlığı • Bilişim uygulamaları genellikle sürekli değişim halindedir. Bir kez geliştirildikten sonra birkaç yıl değiştirilmeden kullanılan uygulamaların sayısı son derece azdır. • Değişiklikler işlevsel ya da işletimsel gereksinimlerden kaynaklanabileceği gibi, teknolojik gelişmelerden veya iyileştirme isteklerinden de kaynaklanabilir. • Uygulamaların işlevsel ya da işletimsel gereksinimlerinden kaynaklanan değişiklikler kullanıcıların tümünü değil, yalnız belirli bir kesimini doğrudan ilgilendirir. Diğer değişiklikler ise kullanıcıların hiçbirini doğrudan ilgilendirmez. 28 Fiziksel Veri Bağımsızlığı • Veri tabanında yapılan her değişiklikten sonra; – – – – tüm uygulama programlarının uyarlanması, yeniden derlenmesi, gerekiyorsa yeniden sınanması, tüm kullanıcıların da yapılan değişikliklerle ilgili bilgi sahibi olmaları, gerekir. • Yukarıdaki örnekte olduğu gibi “uygulamaların veriyi bellekte saklamak için kullanılan yapılara ve veriye erişmek için kullanılan yöntemlere bağımlı olduğu bilişim uygulamalarına” veriye bağımlı uygulamalar denir. 29 Mantıksal Veri Bağımsızlığı • Mantıksal veri bağımsızlığı, kavramsal şema değişikliklerinden kullanıcıların olabildiğince korunması anlamına gelmektedir. Özellikle, yapılan değişiklik ile ilgisi olmayan dış şemaları kullanan kullanıcıların, bu değişiklikten etkilenmemesi amaçlanmaktadır. • Kavramsal şema değişiklikleri; kullanıcı gereksinimlerini karşılamak için mantıksal düzeyde yapılan değişiklikler olduğu için, genellikle kavramsal şema değişikliği ile birlikte dış şemalardan bir kısmında da değişiklik yapılır. 30 Örnek bir VTYS mimarisi • Bir veri tabanı kullanıcısı için, veri tabanı dış şemadır. • Kullanıcı dış şemayı görür ve sağlanan yazılım olanakları ile dış şemada yetkili olduğu işlemleri gerçekleştirir. • Kullanıcıların çoğu kavramsal ve iç şemadan habersizdir, verilerin dış şemaya uygun biçimde saklandığını düşünür. • Oysa dış ve kavramsal şemalar tümüyle mantıksaldır. 31 Örnek bir VTYS mimarisi • Kullanıcı tarafından dış şemaya göre oluşturulacak isteklerin iç şemada karşılanması gerekir. • Bunun için de kullanıcı tarafından dış şemaya göre tanımlanan verilerin önce kavramsal şemadaki, sonra da iç şemadaki karşılıklarının belirlenmesi ve kullanıcı isteğinin fiziksel veri tabanı üzerinde gerçekleştirilmesi gerekir. 32 Örnek bir VTYS mimarisi • İstek bir sorgu ise, iç şemaya göre seçilen veriler, bu defa önce kavramsal sonra da dış şemaya göre dönüştürülerek kullanıcıya sunulmalıdır. • Bir VTYS’nin mantıksal ve fiziksel veri bağımsızlığının sağlanabilmesi için, şema tanımlarına ek olarak şemalar arası eşleme tanımlarının da saklanması gerekir. 33 Örnek bir VTYS mimarisi • İç şemada bir değişiklik yapıldığında, iç şema kavramsal şema eşlemesinde gerekli uyarlamalar yapılarak değişikliğin kavramsal ve dış şemaları, dolayısıyla da kullanıcıları etkilemesi önlenerek fiziksel veri bağımsızlığı sağlanmış olur. 34 Örnek bir VTYS mimarisi • Kavramsal şemada bir değişiklik yapıldığında ise, bir yandan kavramsal şema - iç şema eşlemeleri, diğer taraftan da bazı dış şemalar ile kavramsal şema arasındaki eşlemeler uyarlanır. • Böylece kavramsal şemadaki değişiklikten iç şema (fiziksel veri bağımsızlığı) ve dış şemaların en azından bir kesimi (mantıksal veri bağımsızlığı) etkilenmemiş olur. 35 Örneğimizdeki üç düzeyli mimari ilk defa 1975 yılında “Bilgisayarlar ve Bilgi İşlem konusundaki Amerikan Ulusal Standartlar Komitesinin VTYS Çalışma Takımı” tarafından önerilmiş ve zamanla benimsenmiştir. 36