Kullan*c* Türleri - Altan Mesut

advertisement
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
Download