veri bağımsızlığı

advertisement
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
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.
Veri Tabanı Yöneticisinin Görevleri
(1)
• Veri ve veriler üzerinde yapılacak uygulama
gereksinimlerini belirlemek, veri tabanı içeriğini
oluşturmak, veri tabanı şemalarını tanımlamak.
• Bütünlük kısıtlamalarını 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.
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.
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.
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.
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 belirli standart sorgulamalar, .. 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 veri işleme dili (DML) ve diğer yazılım
geliştirme araçlarıdır.
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, Delphi, .. vb) da
olabilir.
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).
Sorgu Dili Kullanıcıları
• Bu dili kullanacak kişinin, veri tabanının ilgili alt
şemasının içeriğini (alt şemada hangi
çizelgelerin bulunduğunu, çizelgelerin adlarını,
her çizelgede hangi niteliklerin bulunduğunu,
niteliklerin adları ve özelliklerini, ... 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.
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.
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 ...
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 bazı uygulama programları
önceden belirli yönetimsel işler için de
kullanılabilir. Bunları kullanan kişi VT
sorumlusudur (DBA).
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.
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.
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.
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.
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.
İç (fiziksel) Şema
• İç şema, veri tabanının fiziksel çevresi 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, kütükler 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.
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.
• Veri tanımlama için kullanılan veri tanımlama dili,
kavramsal veri tabanının, veri modeli terimleri ile
tanımlanmasını sağlayan yüksek düzeyli bir
dildir.
Dış (alt) Şema
• Kavramsal şemanın bir alt kesiminin soyut
bir modelidir.
• Dış şemaları tanımlamak için de genellikle
veri tanımlama olanağı 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.
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.
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ığı
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.
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ığı kütük 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.
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.
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.
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.
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.
Ö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.
Ö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.
Örnek bir VTYS mimarisi
• İstek bir sorgu ise, iç şemaya
göre seçilen veriler, bu defa
önce kavramsal sonra da dış
semaya 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.
Ö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.
Ö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 (Tsichritzis, 1977).
Örnek bir VTYS mimarisi
• Bu örnekten yola çıkarak,
VTYS mimarisinde üç
düzeyin bulunması gerektiğini
söyleyebiliriz. Üç düzeyin
bulunması, üç türlü şemanın
benimsenmesinin doğal bir
sonucudur.
• Üç 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 büyük ilgi görmüştür.
(ANSI/X3/SPARC)
Örnek bir VTYS mimarisi
• Veri bağımsızlığının
sağlanması için VTYS
mimarisinin mutlaka üç
düzeyli mimaride olması
gerekmez.
• Veri bağımsızlığı VTYS
mimarisini en çok
etkileyen etmenlerden
biridir, fakat VTYS
mimarisinin sadece veri
bağımsızlığından
etkilendiği de
söylenemez.
Download