PowerPoint Sunusu - Kırklareli Üniversitesi Personel Web Sistemi

advertisement
2. Database Sistemi Konsepti ve Mimarisi (Database System Concepts and
Architecture)
2.1. Data Modelleri, Şemaları ve Örnekleri (Data Models, Schemas and Instances)
2.1.1. Data Modelin Katogorileri (Categories of Data Models)
2.1.2. Şemalar, Örnekler ve Database Durumu (Schemas,Instances and Database State)
2.2. Üç Şemalı Mimari ve Data Bağımsızlığı (Three-Schema Arcitecture and Data Independence)
2.2.1. Üç Şemalı Mimari (The Three-Schema Arhitecture)
2.2.2. Veri Bağımsızlığı (Data Independence)
2.3. Database Dili ve Arayüzü (Database Languages and Interfaces)
2.3.1. DBMS Dili (DBMS Languages)
2.3.2. DBMS Arayüzü (DBMS Interfaces)
2.4. Database Sistem Ortamı (The Database System Environment)
2.4.1. DBMS Bileşen Modülleri (DBMS Component Modules)
2.4.2. Database Sistemi Yararları (Database System Utilities)
2.4.3. Araç, Uygulama Ortamı ve İletişim Olanakları (Tools, Application Enviroments and
Communications Facilities)
1
2.5.DBMS için Merkezi İstemci/Sunucu Mimarisi (Centralized and Client/Server Architectures for
DBMSs)
2.5.1.Merkezi DBMS Mimarisi (Centralized DBMSs Architecture)
2.5.2. Basit İstemci/Sunucu Mimarisi (Basic Client/Server Architectures)
2.5.3.DBMS için Çift Katmanlı İstemci/Sunucu Mimarisi (Two-Tier Client/Server Architectures
for DBMSs)
2.5.4.Web Uygulama için Üç ve n Katmanlı Mimari (Three-Tier and n-Tier Architectures for Web
Applications)
2.6. DBMS’in Sınıflandırılması (Classification of Database Management Systems)
2
2.Database Sistemi Konsepti ve Mimarisi (Database System
Concepts and Architecture)
DBMS package (paket) mimarisi, bir adet sıkıca birbirine entegre edilmiş tekil mimariden, client/server
(istemci/sunucu) olarak tanımlayabileceğimiz modern DBMS package mimarisine doğru gelişmiştir.
Bu gelişim bilgisayar alanında büyük bir değişime neden olmuş, büyük merkezi bir bilgisayar yerine
yüzlercesine ayrılmış ve kişisel bilgisayarlar web server, database server, file server (dosya server), application
server (uygulama server) gibi bir çok bilgisayar ile iletişim halinde olmaya başlamışlardır.
DBMS mimarisi 2 modüle ayrılır.
Client Module; İş yerleri veya kişisel bilgisayarlar bu gurptadır. Uygulama ve arayüzler üzerinden database’e
bağlananlardır.Client modül kullanıcı etkileşimini elinde bulundurur ve GUI (grafical user interface) (grafiksel
kullanıcı arayüzü) gibi kullanıcı dostu bir arayüz sağlar.
Server Module; Veri saklama,ulaşım,arama ve diğer fonksiyonları sağlar.
2.1. Data Modelleri, Şemaları ve Örnekleri (Data Models, Schemas and Instances)
Database Approach'ın temel özelliği bir çok data abstracion seviyesi sağlamasıdır.Data abstraction genellikle veri
organizasyonu ve depolamasının detaylarının gizlenmesi ve verilerin daha iyi anlaşılması için önemli
özelliklerinin vurgulanması anlamına gelir. Database approachın temel özelliklerinden biri farklı kullanıcıların
tercih ettikleri ayrıntı düzeyinde veri alabiliyor olmasını sağlayan data abstraction'u desteklemesidir. Bir database
3
yapısını tanımlamak için kullanılan kavramların bir derlemesi olan data modeli bu abstractionu başarmak için
gerekli araçları sağlar.
Data modeli tarafından sağlanan temel işlemlere ek olarak, bir veritabanı uygulaması dinamik yönünü (dynamic
aspect) veya davranışını (behavior) belirlemek için data model içinde konseptler içermesi daha yaygın hale
gelmektedir.Bu, database designer’a bir dizi database objeleri üzerinde geçerli user-definition (kullanıcıtanımlama) operation tanımalamasına izin verir. User-definition’un bir örneği STUDENT objesi üzerinde
tanımlı COMPUTE_GPA (ortalamayı hesaplayan fonksiyon)
2.1.1. Data Modelin Katogorileri (Categories of Data Models)
Kullandıkları database yapısı tanımlamalarının çeşidine göre kategorize edilebilecek birçok data model
önerilmiştir. Üst seviye yada kavramsal data modelleri, kullanıcılara data çıkarımı yapmak için iyi bir yol
sağlarken, alt seviye veya fiziksel data modelleri, manyetik disklerde nasıl depolama yapıldığını detaylı şekilde
açıklayan kavramlar sağlar. Alt seviye data modellerin sağladığı bu kavramlar son kullanıcılar için değil
bilgisayar uzmanları içindir.
Conceptual data model, entity (varlık), attribute (nitelik), and relationship (ilişki) gibi kavramları kullanır.
Entity ; gerçek dünya objesi veya kavramı olarak tanımlanabilir. Örneğin işçi veya öğrenci gibi.(employee or
student)
Attribute; Bu entitylerin çeşitli özelliklerini tanımlar.Örneğin öğrencinin numarası veya işçi adı gibi.
(Student_number or Employee_name)
Relationship; Bu entitylerin birbiri arasındaki ilişkiyi tanımlar. Örneğin Student ve Course arasındaki ilişki
gibi.
4
Daha sonra detaylı olarak işleyeceğimiz, Entity-Relationship model çok kullanılan üst seviye konceptual data
modeldir.
2.1.2. Şemalar, Örnekler ve Database Durumu (Schemas,Instances and Database State)
Her data modelde database’in tanımının ve database‘in kendisinin ayrılması önemlidir. Database tanımına
database schema (database şeması) denir.Database in dizayn aşamasında tanımlanır ve fazla değiştirilmesi
beklenmez. Çoğu data modelde schemaların gösterimi için belirli kurallar vardır; diagramlar gibi.Buna schema
diagram denir. Schema diagram her bir recordun yapısını verileri olmaksızın gösterir. Her bir objeye schema
construct (yapı) denir. Student, course gibi.
Aşağıdaki örnekte schema diagramın data typeları ,relationları veya constraintleri (kısıtları) belirtilmemiş.
Gerçek data, database içinde sürekli
değişkendir.Update veya insertler ile. Figure
1.2 deki örnekte database in o andaki bir
kısmından bahsetmiştik. Bu anlık
gösterimlere database state (durum) veya
snapshot denir.
5
2.2. Üç Şemalı Mimari ve Data Bağımsızlığı (Three-Schema Arcitecture and Data
Independence)
Database Approach’ın 4 önemli özelliğinden 3’ü bölüm 1.3 de sıralanmıştı.Biri , database tanımlaması
(schema) için katalog kullanılması , diğeri data abstraction (program-data independence and programoperation independence), bir diğeri ise çoklu kullanıcıya imkan sağlayan viewlerdi.
Bu bölümde bu özellikleri görselleştirmeyi ve gerçekleştirmeyi hedefleyen three-schema mimarisi denilen
database sisteminin mimarisini göreceğiz.
2.2.1. Üç Şemalı Mimari (The Three-Schema Arhitecture)
Üç şemalı mimarinin amacı, kullanıcı
uygulaması ile fiziksel database’in ayrılmasıdır.
Internal level; internal schema (iç
şema)içerir.Bu şema database’in fiziksel
depolama yapısını belirtir.Fiziksel data modelini
kullanır ve data depolanması ile ilgili tüm
detayları ve database’e erişim için tüm yolları
açıklar.
6
Conceptual level; conceptual schema içerir. Tüm kullanıcılar için database’i tanımalar.Fiziksel depolama
detaylarını gizler, yalnızca entity, data type, relationship, user operation ve kısıtlamalara yoğunlaşır.
External or view level (dış veya görünüş); external schema veya user view içerir. Belirli bir kullanıcı grubuna
database’in grubun ilgilendiği kısmını gösterir, kalan kısmını gizler. Bu yüzden birden fazla olabilir.
DBMS external schema içinde verilen bir requesti (istek) conceptual schema şekline dönüştürmeli , sonra da
database üzerine işlenmesi için internal schemaya dönüştürmelidir.Eğer bu istek veri elde edilecek bir sorgu ise
databaseden çıkarılan veriler, kullanıcının external view ile eşleştirmek için yeniden biçimlendirilmesi gerekiyor.
Bu istek ve sonuçlar arasındaki dönüştürme işlemine mapping denir.
2.2.2. Veri Bağımsızlığı (Data Independence)
3 şemalı mimari data independence ‘ı daha iyi anlamak için kullanabiliriz. Data independence, bir üst seviye
schemada değişiklik yapmaya gerek olmadan o şemada değiştirme yapabilme kabiliyeti olarak tanımlanabilir.
7
Logical data independence; External
schemayı veya uygulama programını
değiştirme gereği olmaksızın conceptual
schemayı değiştirme kabiliyetidir.
Database’i genişletmek (örneğin record type
yada data item ekleyerek) için , kısıtları
değiştirmek için veya database’i azaltmak
için conceptual schemayı değiştirmemiz
gerekebilir.Fakat bu değişiklerden external
schema etkilenmemelidir.
Örneğin 1.5(a) daki external schema
Grade_report tablosundaki değişimden
etkilenmemelidir. Sadece DBMS içinde
view tanımlama ve mappingte değişime
gerek duyulur.
8
Physical data independence; conceptual şemayı değiştirmeden internal schemayı değiştirme kabiliyetidir.
Update veya sorgu cevap hızını geliştirmek için fiziksel tablolar tekrar organize edildiğinden (örneğin ek ulaşım
yapısı yaratılması) internal schemayı değiştirmek gerekebilir .
Örneğin; DBMS, yeni ulaşım yolu kullanarak sorguyu çok daha verimli çalıştırabilecek olmasına rağmen,
sömestr ve yıl bazında section recordlarının aktarım hızının iyileştirilmesi için ulaşım yolu sunulması , 2008
bahar döneminde açılan tüm sectionların listesi gibi bir sorgunun değiştirilmesini gerektirmemelidir.
Genellikle fiziksel veri bağımsızlığı,verinin disk üzerindeki kesin yerini, depolanmış verinin
kodlamanın,yerleştirmenin, sıkıştırmanın, bölme ve birleştirmenin detayları gibi fiziksel detayların kullanıcıdan
gizlendiği çoğu database ve tablo yapısınında bulunmaktadır. Uygulama bu göz ardı edilen detayları sürdürür.
Öte yandan mantıksal veri bağımsızlığının elde edilmesi daha zordur. Çünkü uygulamaya dokunmaksızın çok
gerekli yapısal ve kısıtlama değişikliklerine izin verir .
Schema bir seviyede değiştirildiğinde, bir yüksek seviyedeki schema değişmeden kalır.Sadece iki seviye
arasındaki mapping değiştirilir.Böylece yüksek seviyedeki schemaya atıfta bulunan uygulama programı
değiştirilmek zorunda kalmaz.
9
2.3. Database Dili ve Arayüzü (Database Languages and Interfaces)
Daha önce DBMSin çok çeşitli kullanıcılara destek verdiğini tartışmıştık. Bunu sağlamak için her kullanıcı için
uygun dil ve arayüz geliştirilir.
2.3.1. DBMS Dili (DBMS Languages)
Database dizayni tamamlandığında ve database'e uygulamak için DBMS seçildikten sonra, ilk adım conceptual
ve internal schemanın ve schemalar arasındaki her bir mapping yapısının belirlenmesidir. Seviyeleri arasında
kesin ayrım oluşturulmamış DBMSlerde data definition language –DDL (veri tanımlama dili) denilen bir dil
kullanılır. DBA ve Database designer’lar tarafından bu iki schemayı oluşturmak için kullanılır. DBMS, şema
yapılarının tanımlarını belirleyen ve DBMS kataloğunda şema tanımlarını depolayan fonksiyonlara sahip bir
DDL compiler ‘i(derleyicisi) olacaktır. Seviyeleri arasında kesin ayrım oluşturulmuş DBMSlerde ise DDL
sadece conceptual schemayı tanımlamak için kullanılır. İnternal schemayı tanımlamak için storage definition
language-SDL (depolama tanımlama dili) kullanılır.İki şema arasındaki mapping bu iki dilden biri ile
tanımlanabilir.
Bugün birçok ilişkisel DBMSde, SDL rolünü gerçekleştiren özel bir dil yoktur. Bunun yerine internal schema,
fonksiyonların,parametrelerin ve depo ilgili özelliklerin bir kombinasyonu ile tanımlanmıştır.Bunlar DBA’e
indeksleme seçeneklerinde kontrol ve verilerin depolanması için mapping imkanı sağlar.Üç şemalı mimari için
üç dile ihtiyaç duyar.View definition language –VDL (View tanımlama dili) kullanıcı viewleri ve conceptual
schema için kullanılacak mappingleri sağlar. Fakat bir çok DBMSte DDL, conceptual ve external schemaların
10
tanımlanması için kullanılır. İlişkisel DBMSde SQL, user ve uygulama viewlerini tanımlayan VDL rolünü
gerçekleştirir.
Veri alma, ekleme,silme değiştirme işlemlerini içeren manipulation işlemini gerçekleştiren dile data manipulation
language-DML (veri işleme dili) denir. Günümüz DBMSlerde, bu diller ayrı diller olarak
değerlendirilmezler.Daha doğrusu kapsamlı birleştirilmiş bir dil, conceptual schema ve view tanımlaması ve veri
manipulation için kullanılır. Bunun tipik bir örneği, SQL ilişkisel veritabanı dilidir. DDL, VDL ve DML
yapılarını içerisinde barındırır. SDL, ilk sürümlerinde SQLin bir parçasıydı fakat sonra sadece conceptual ve
externel seviyede kullanılmak üzere bu dilden çıkarıldı.
2.3.2. DBMS Arayüzü (DBMS Interfaces)
Web İstemcileri veya Tarama için Menü Tabanlı Arayüzler (Menu-Based Interfaces for Web Clients or
Browsing); Bu arayüzler kullanıcıya seçenek listeleri (menüler) sunar. Menü belirli komutların ve sorgu dilinin
syntax(Yazım dili)ının ezberlenme zorunluluğunu ortadan kaldırır. Daha doğrusu sorgu, menüden seçenekleri
seçerek adım adım oluşturulmuştur. Pull-down (aşağı doğru açılan checklist) menüler Web tabanlı kullanıcı
arayüzleri için çok popüler bir tekniktir.
Forms-Based Interfaces (Form Tabanlı Arayüzler); Kullanıcıya bir çok form sunar. Kullanıcılar tüm alanları
yeni verilerle doldurabilir yada belirli verileri doldurup kalan veriler için DBMS eşleştirme işlemi yapabilir.
Formlar genelde acemi kullanıcılar için önceden kaydedilmiş işlemler ile tasarlanmış ve programlanmışlardır.
Birçok DBMS programmerlara yardımcı olacak şekilde tanımlanmış özel dillere sahiptirler. SQL Formlar
ilişkisel veritabanı şeması ile birlikte tasarlanmış bir formu kullanarak sorguları belirten form tabanlı bir dildir.
Oracle Forms, formları kullanarak tasarım yapmak ve uygulamalar oluşturmak için geniş bir özellikler kümesi
11
sağlayan Oracle ürün paketinin bir bileşenidir.
Graphical User Interfaces (Grafiksel Kullanıcı Arayüzü); Genellikle kullanıcıya diagramsal bir formda şema
gösterir. Kullanıcı daha sonra diyagramı işleyerek bir sorgu tanımlayabilir. GUI çoğu uygulamada form ve
menüleri beraber kullanır.
Natural Language Interfaces (Doğal Dil Arayüzü); Bu arayüz ingilizce ve bazı belli başlı dillerde yazılmış
istekleri kabul etmektedir. Genellikle, conceptual schemaya benzeyen ve önemli kelimeler sözlüğü içeren kendi
şemasına sahiptir. Bu kelime yorumlama doğru olursa, arayüz bu isteğe karşılık yüksek seviye sorgu üretir ve
işlenmesi için DBMSe gönderir. Aksi takdirde, bu işlem kullanıcının isteği yeniden tanımlamasıyla ile başlar.
Doğal dil arayüzünün kabiliyeti hızlı gelişmiş değil. Bugün, ingilizce ve ispanyolcadaki doğal dil dizisini kabul
eden localde (yerelde) veya web sayfalarında (Google gibi) arama motorlarını görürüz. Kelimeler üzerinde
önceden tanımlanmış indeksler ve sıralanan fonksiyonlar kullanılır.
Anahtar kelime tabanlı sorgulama denilen araştırma alanı ilişkisel veritabanları için ortaya çıkmış olmasına
rağmen,bu tür "Free form" metinsel sorgu arayüzleri, yapılandırılmış ilişkisel veya eski modeli veritabanlarında
henüz yaygın değildir.
Speech Input and Output (Konuşma giriş ve çıkışı); Bir soruya cevap olarak veya bir isteğin sonucu olarak
yapılan sınırlı konuşma kullanımı yaygın hale gelmeye başlamıştır.Telefon rehberi, uçuş kalkış veya kredi kartı
bilgileri için sunulan sınırlı sözcüklü uygulamalar input veya output olarak kullanılabilir.Konuşma inputu için
önceden tanımlanmış kelimeler ile bir kütüphane oluşturulur ve verilen parametreler sorguda kullanılır.Output
için de benzer bir dönüşüm (yazı veya sayıların konuşmaya) gerçekleştirilir.
12
Interfaces for Parametric Users; Banka memuru gibi parametric kullanıcılar, sık sık ve art arda operasyonlar
yapmak zorundadırlar.Bu yüzden onlara yönelik olarak yaptıkları işler kısaltılmış komutlar dizisi haline getirilir.
Interfaces for the DBA ; Çoğu veritabanı sistemleri sadece DBA personeli tarafından kullanılabilecek ayrıcalıklı
komutlar içerir.Bunlar, hesap oluşturma, sistem parametrelerini ayarlama, yetkilendirme, şema değişikliği ve
depolama yapısı yeniden düzenlenmesidir.
2.4. Database Sistem Ortamı (The
Database System Environment)
DBMS karmaşık bir yazılım sistemidir. Bu
bölümde, DBMSi oluşturan ve DBMS ile
etkileşim halinde olan yazılım bileşenlerinin
çeşitlerini tartışacağız.
2.4.1. DBMS Bileşen Modülleri (DBMS
Component Modules)
Figür 2.3 de basitleştirilmiş bir formda DBMS
bileşenlerini göreceğiz. Şekil iki bölüme
ayrılmıştır. Şeklin üst kısmı, veritabanı
ortamının ve arayüzlerinin çeşitli
kullanıcılarına değinmektedir. Alt kısım, işlem
ve veri depolanması için DBMSin
sorumluluklarının iç yapısını gösterir.
Canned
Transaction
13
Veritabanı ve DBMS katalog genellikle diskte depolanır. Diske erişim, diskten okuma ve diske yazma programı
olan işletim sistemi (operating system-OS) tarafından kontrol edilir. Çoğu DBMS, disk okuma/yazma işlemi için
kendi buffer (tampon-geçici hafıza) yönetim modülüne sahiptir, çünkü performans üzerinde önemli etkisi vardır.
Maliyetli bir işlem olduğundan disk okuma / yazmasının azaltılması önemli ölçüde performansını artırır. DBMSin
yüksek seviye depolanmış veri yönetimi (stored data manager) modülü, DBMSde depolanmış bir verinin
veritabanı veya kataloğun bir parçası olup olmadığını DBMS erişimini kontrol ederek anlar.
Figür 2.3’ün üst kısmını ele alalım. Bu kısım, DBAler, sorguları formüle etmek için interaktif arayüzler ile çalışan
casual (geçici) kullanıcılar,uygulama programcılar ve önceden tanımlanmış işlemlere veri girişi sağlayan
parametric kullanıcılar için oluşturulmuş arayüzü gösterir.
DDL derleyici, şema tanımlama, özelleştirme ve DBMS kataloğundaki şema tanımlarının (meta-data) depolama
işlemlerini yürütür. Katalog, tablonun ismi ve boyutu, sütunların data type ve isimleri, her bir tablonun depolama
detayları, şemalar arası mapping bilgileri ve kısıtlar gibi bilgileri içerir.
Geçici kullanıcılar, interaktif sorgu arayüzü olarak isimlendirilen arayüz ile etkileşim halindedir. Her interaktif
sorgu ile oluşturulan menü tabanli ve form tabanli etkileşimi açıkça gösteremeyiz. Bu sorguların, syntax
bakımından doğruluğu, tablolaların ve sütunların ismi onaylanmıştır, daha sonra sorgu derleyici (query compiler)
tarafından internal form içinde derlenir. Bu internal sorgu üzerine sorgu optimizasyonu (query optimizer )
uygulanır. Sorgu optimizasyonunu; yeniden düzenleme, fazlalıkların elenmesi, çalıştırılması sırasında doğru
14
algoritmanın ve indexlemenin kullanılması oluşturur. Bu optimizasyon, depolanmış veri ve çalıştırılabilir kod
gibi konularda istatistiksel ve diğer fiziki bilgiler için sistem kataloguna başvurur.
Uygulama geliştiricileri, programın ilk önce ön derleyiciye gönderildiği (precompiler) JAVA,C veya C++ gibi
ana programlama dillerinde program yazarlar. Precompiler bu dillerde yazılan programlardan DML komutları
ayıklar.Bu komutlar object koduna derlenmesi için DML derleyiciye gönderilir. Programın geri kalan kısmı bu
programlama dili derleyicisine gönderilir. DML komutları için oluşturulan object kodu ve programın geri kalanı
bağlantılıdır ve canned transaction (kaydedilmiş, tamamlanmış işlem) oluştururlar. Bu transaction'ın codu
runtime database processor (esas anlık database işlemcisi diyebiliriz.) için çağrı içerir. Bu canned transactionlar,
transactiona parametre veren parametric kullanıcılar tarafından tekrar tekrar execute edilirler (çalıştırılırlar). Her
bir execution ayrı bir transaction olarak değerlendirilir.Örneğin bankadan para çekme işlemi için hesap numarası
ve para miktarı bir parametredir.
Figür 2.3ün alt kısmında, runtime database processor öncelikli komutları, çalıştırılabilir sorgu planlarını ve
runtime parametreli canned transactionları çalıştırır.Bu sistem, sırayla disk ve ana bellek arasında düşük seviyeli
giriş / çıkış (okuma / yazma) işlemlerini yürütmek için temel işletim sistemi hizmetlerini kullanan stored data
manager ve sistem kataloğu ile birlikte çalışır.Ayrıca, ana bellekteki bufferların yönetimi gibi veri transferinin
diğer yönlerini de ele alır. Diğerleri, buffer yönetimi için OS (operating system)'a bağlı iken, bazı DBMSler
kendi buffer yönetim modüllerine sahiptir. Bu figürde, ayrı ayrı modüller olarak eş zamanlı kontrol ve backup
(yedekleme) ve recovery (kurtarma) sistemleri gösterilir.Bunlar, transaction yönetimi amacıyla çalışan runtime
database processore entegre edilmiştir.
15
2.4.2. Database Sistemi Hizmetleri (Database System Utilities)
Açıklanan yazılım modüllerinin yanında, çoğu DBMS DBA' e database yönetiminde yardımcı birçok farklı
hizmete sahiptir. Yaygın hizmetler aşağıda belirtilmiştir.
Loading (Yükleme); Loading hizmeti mevcut veri dosyalarının topluca database'e yüklenmesidir. Genellikle,
veri dosyasının kaynak formatı ile istenilen database dosya yapısı bu hizmet için özelleştirilmiştir.Sonrasında
otomatik olarak tekrar formatlanır ve database 'e depolanır. DBMS'in yayılması ile bir DBMSden diğerine
yapılan transferler yaygın hale geldi.Bazı vendorlar (satıcı) verilen kaynak dosyası ve hedef database
tanımlarına (internal şema) uygun loading programları içeren ürünler sunar.Bu tür araçlara conversion
(dönüştürme) araçları denir.
Backup(Yedekleme); Yedekleme hizmeti, tüm database'i bir banta veya başka bir depolama alanına kopyasını
oluşturur. Yedek kopya herhangi bir felaket anında (deprem,sel, disk arızası veya veri kaybı) kullanılarak geri
yükleme yapılr. Incremental backup (artımlı yedekleme) sadece değişiklik olduğu durumlarda kullanılır.Çünkü
önceki backup kaydedilmiştir. Bu yedekleme çok daha komplekstir fakat depolama alanını minimumda tutar.
Database storage reorganization (Depolamanın yeniden yapılandırılması); Bu hizmet, dosya kümeleri
üzerinde yeniden yapılanma ve performansı arttırmak için yeni erişim yolları oluşturulmasına imkan sağlar.
Performans izleme (Performansın izlenmesi); Bu hizmet database performansını izler ve DBA için istatistik
sağlar.DBA dosyaların tekrar organize edilmesi gerekip gerekmediği veya indesklemenin eklenip silinmesi
gerektiği gibi kararları vermek için istatistikleri kullanır.
16
2.4.3. Araçlar, Uygulama Ortamları ve İletişim Olanakları (Tools, Application Enviroments and
Communications Facilities)
Diğer araçlar database tasarımcıları, kullanıcıları ve DBMS için kullanılabilirdir. Tasarım aşamasında
kullanılan araçların haricinde büyük kuruluşlarda oldukça işe yarar bir araç genişletilmiş veri sözlüğü sistemidir.
Şema ve kısıtlar hakkında olan kaydedilmiş katalog bilgilerine ek olarak, veri sözlüğü de tasarım kararları,
kullanım kuraları, program tanımları ve kullanıcı bilgileri gibi diğer bilgileri depolar. Böyle sistemler bilgi
deposu olarak adlandırılabilir.Gerektiğinde bu bilgiler kullanıcı veya DBA tarafından doğrudan ulaşılabilir.
Uygulama geliştirme ortamları, database uygulaması geliştirmek için bir ortam ve veritabanı tasarımı, GUI
geliştirme, sorgulama ve güncelleme ve uygulama programı geliştirme de dahil olmak üzere çok yönlü olanaklar
sağlar.
DBMS,database sisteminden uzak kullanıcılara erişim izni veren iletişim yazılımı arayüzüne gerek duyar.
Bunlar, internet yönlendirileri,telefon hatları, uzun menzilli ağlar,yerel ağlar veya uydu iletişim cihazları gibi veri
iletişim donanımları sayesinde database'e bağlanır.
17
2.5. DBMS için Merkezi İstemci/Sunucu Mimarisi (Centralized and Client/Server
Architectures for DBMSs)
2.5.1.Merkezi DBMS Mimarisi (Centralized DBMSs Architecture)
DBMS mimarileri, genel bilgisayar sistemleri mimarilerine benzer eğilimler göstermiştir. Geçmişteki mimari,
DBMS işlemleri yanısıra uygulama programı, kullanıcı arayüz programı ve tüm ana işlemleri tek bir ana
bilgisayardan yürütmeye çalışırdı.Bunun nedeni, çoğu kullanıcının işlem gücü ve ekran yeteneği olmayan
bilgisayar terminali gibi sistemlere erişim sağlamasıydı.Bu nedenle, tüm işlem bilgisayar sistemi üzerinde
uzaktan gerçekleştirildi ve sadece ekran bilgileri ve kontroller, iletişim ağlarının çeşitleri aracılığıyla ana
bilgisayarlara bağlı olan ekran terminallerine bilgisayardan gönderildi.
Figür 2.4 merkezi mimaride fiziksel
bileşenleri göstermektedir. Kademeli olarak,
DBMS sistemleri,client/server DBMS
mimarisine izin veren kullanıcı tarafında
mevcut işlem gücünü kullanmaya başladı.
18
2.5.2. Basit İstemci/Sunucu Mimarisi (Basic Client/Server Architectures)
İlk olarak, genel hatlarıyla client/server mimarisini tartışacağız, sonrada bunun DBMS'e nasıl uygulandığını
göreceğiz. Client/server mimarisi, birçok bilgisayar, iş istasyonları, yazıcılar, dosya, database, web, e-mail
sunucuları gibi network ağı üzerinden birbirine bağlı olan bilgi işlem ortamının yönetilebilmesi için
yaratılmıştır. Bu düşünce, belirli işlevleri olan özelleştirilmiş sunucuları tanımlar.Örneğin, birçok bilgisayar
veya istemci olarak küçük bir iş istasyonu dosya sunucusuna bağlamak mümkündür. Başka bir makine çeşitli
yazıcılara bağlanarak bir yazdırma sunucusu olarak belirlenmiş olabilir; istemciler tarafından tüm baskı
talepleri bu makineye iletilir. Web sunucuları ya da e-posta sunucuları da özel sunucu kategorisine girer.
Özelleştirilmiş sunucular tarafından sağlanan kaynaklar, birçok istemci makineler tarafından ulaşılabilirdir.
İstemci makineler, uygun arayüzler ile
kullanıcıya bu serverları kullanma imkanının
yanı sıra yerel uygulamaları çalıştırmak için
yerel işlem gücü sağlar.
Figür 2.5 client/server mimarisini mantıksal
seviyede gösterirken, Figür 2.6 ise fiziksel
mimarisini gösteren basitleştirilmiş bir
diyagramdır.
19
Client/ server mimarisi kavramı, birçok PC ve iş istasyonuna ek olarak anabilgisayarın birbirine LAN sayesinde
bağlanmasıyla oluşan ana bir çerçeve sunar. Bu çerçevede istemci, kullanıcı arayüzü ve yerel işlem kabiliyetine
sahip tipik bir kullanıcı makinesidir. Bir istemci, veritabanı erişimi yani makinede yok gibi ek işlevsellikerişmesi gerektiğinde, ihtiyaç duyulan işlevselliği sağlayan bir sunucuya bağlanır. İstemci ek işlevlere erişmesi
gerektiğinde (mevcut makinede olmayan database erişimi örneğin) ihtiyaç duyulan işlevselliği sağlayan bir
sunucuya bağlanır. Sunucu ise hem istemciye dosya, yazıcı veya database erişim servisi yapan bir yazılım hem
de donanım içeren bir sistemdir. Genel olarak, bazı makineler yalnızca istemci yazılımı, diğerleri sadece sunucu
yazılımı yüklenir ve Şekil 2.6 de gösterildiği gibi bazıları istemci ve sunucu yazılımını içerebilir.Ancak, istemci
ve sunucu yazılım genellikle ayrı makinelerde çalıştırmak daha yaygındır.Temel DBMS mimarilerinin iki ana
türü bu temel client/server çerçeve üzerinde oluşturulur: 2 ve 3 katmanlı mimari.
2.5.3.DBMS için Çift Sıralı İstemci/Sunucu Mimarisi (Two-Tier Client/Server Architectures
for DBMSs)
Relational database management systems (RDBMS) (İlişkisel veritabanı yönetim sistemi)inde, çoğu
merkezileştirilmiş olarak başlamış ve kulanıcı tarafına geçen ilk sistem bileşenleri kullanıcı arayüzü ve
uygulama programı idi. SQL, RDBMS için standart bir dil sağladığından, istemci ve sunucu arasında
mantıksal bir ayrım oluşturdu.Bu nedenle, SQL işleme ile ilgili sorgu ve işlemler sunucu tarafında kalmıştır.
Böyle bir mimaride bu iki işlemi sağladığından, sunucu sorgu sunucusu veya işlem sunucusu olarak
adlandırılır. RDBMSde sıklıkla sunucu SQL sunucusu (SQL Server)olarak adlandırılır.
20
Kullanıcı arayüzü programları ve uygulama programları istemci tarafında çalışabilir. DBMS erişimi
gerektiğinde, program (sunucu tarafında) DBMS ile bağlantı kurar; bağlantı oluşturulduktan sonra, istemci
programı DBMS ile iletişim kurabilir.Standart olarak adlandırılan Open Database Connectivity (Açık Veritabanı
Bağlantısı) (ODBC), hem istemci hem sunucu yazılımı yüklü olduğu zaman, istemci tarafında DBMSi
çağırmasına izin veren bir uygulama programlama arabirimi (API) sağlar. Çoğu DBMS vendorları kendi
sistemleri için ODBC sürücüsü sağlar. Bir istemci program birçok RDBMS'e bağlanabilir ve ODBC API
kullanarak sorgu ve işlem istekleri gönderebilir.Herhangi bir sorgu sonuçları, işleyebilen ve istenildiğinde
sonuçları gösterebilen istemci programa geri gönderilir.Java programlama dili için bir ilgili standart da
tanımlanmıştır. JDBC denilen Java programlama dili için bir ilgili standart da tanımlanmıştır.Bu Java istemci
programları standart bir arayüz üzerinden bir veya daha fazla DBMSs erişmesine olanak tanır. DBMS yazılım
modülleri daha entegre bir şekilde istemci ve sunucu arasında bölünen bazı object-oriented (nesne yönelimli)
DBMSler tarafından, iki katmanlı istemci/sunucu mimarisine farklı bir yaklaşım sunulmuştur.Örneğin sunucu
seviyesi, disk sayfalarında veri depolaması, yerel eş zamanlılık kontrolü, buffering ve disk sayfalarının
önbelleğe alınması ve diğer benzeri fonksiyonlardan sorumlu DBMS yazılım parçası içerebilir. Bu arada,
istemci düzeyi kullanıcı arayüzü işleyebilir;veri sözlüğü fonksiyonları; programlama dili derleyicileri ile DBMS
etkileşimleri; küresel sorgu optimizasyonu, eşzamanlılık kontrolü, ve birden çok sunucu arasında kurtarma;
bufferlardaki verilerden karmaşık nesnelerin yapılanması;ve benzeri fonksiyonlar.Bu yaklaşımda, istemci /
sunucu etkileşimi daha sıkı olarak bağlıdır ve kullanıcılar / programcılar yerine DBMS modülleri tarafından
yapılır. İşlevselliğin tam olarak bölümü sistemden sisteme değişiklik gösterebilir. Böyle bir istemci/sunucu
21
mimarisinde, sunucu veri sunucusu olarak adlandırılır, çünkü istemciye disk sayfalarındaki verileri sağlar.Bu
veriler daha sonra istemci-DBMS yazılım tarafından istemci programları için nesneleri içine yapılandırılabilir.
2.5.4.Web Uygulama için Üç ve n Katmanlı Mimari (Three-Tier and n-Tier Architectures for
Web Applications)
Webin ortaya çıkması, istemcilerin ve sunucuların rollerini değiştirdi; Üç katmanlı mimari. Birçok Web
uygulamaları üç katmanlı mimari denilen ve istemci ve sunucu arasına ara katman eklenmiş bir mimaride
kullanılır. Figür 2.7a da gösterilmiştir. Bu ara katman veya orta katman uygulamaya bağlı olarak, uygulama
sunucusu veya Web sunucusu denir.Bu sunucu uygulama programlarını çalıştırarak ve veritabanı sunucusundan
verilere erişmek için kullanılan iş kurallarını (prosedürleri veya kısıtlamaları) depolayarak bir aracı rol
oynar.Ayrıca veritabanı sunucusuna bir istek iletmeden önce bir müşterinin kimlik bilgilerini kontrol ederek
veritabanı güvenliği artırabilirsiniz. İstemciler, GUI arayüzü ve bazı ek uygulamaya özgü iş kurallarını
içermektedir. Ara sunucu, istemciden gelen istekleri kabul eder, istekleri işler ve veritabanına sorgular ve
komutlar gönderir.Daha sonra, müşterilerine veritabanı sunucusundan (kısmen) işlenmiş verilerinin geçirilmesi
için bir kanal görevi görür.
Böylece, kullanıcı arayüz, uygulama kuralları ve veri erişimi
3 katman olarak hareket eder. Figür 2.7b veritabanı ve
uygulama paketi satıcıları tarafından kullanılan diğer
mimariyi gösterir.Sunum katmanı kullanıcıya bilgi
görüntülemeyi sağlar ve veri girişine izin verir. Veri
kullanıcıya doğru yukarı veya DBMS'e doğru aşağı
22
geçmeden önce iş mantığı katmanı ara kuralları ve
kısıtlamaları işler..
Alt katman tüm veri yönetimi hizmetlerini içerir. Orta tabaka da veritabanı sunucusundan sorgu sonuçlarını alan
ve istemci tarafında Web tarayıcısı tarafından görüntülenebilen dinamik Web sayfaları içine biçimlendiren web
server gibi hareket edebilir. Kullanıcı ve depolanan veriler arasındaki katmanları daha hassas bileşenlere ayırmak
mümkündür.N, dört veya beş katman olabilir.Bu şekilde N-katmanlı mimarileri yol açacaktır. İş mantığı katmanı
çok katmana ayrılmıştır. Bir ağ boyunca programlama ve veri dağıtımının yanı sıra, n-katmanlı uygulamaların bir
avantajı da herhangi bir katmanın uygun bir işlemci veya işletim sistemi platformu üzerinde çalışabilir ve
bağımsız olarak ele alınabilir olmasıdır.ERP (kurumsal kaynak planlama) ve CRM (müşteri ilişkileri yönetimi)
paketleri vendorları genellikle bir özel bir yazılım katmanı kullanırlar. Şifreleme ve şifre çözme teknolojisindeki
gelişmeler şifrelenmiş formdaki hassas verinin sunucudan istemciye daha güvenli hale getirdi.Bu teknoloji,
yüksek düzeyde veri güvenliği verir ancak ağ güvenlik (network security) sorunları önemli bir endişe kaynağı
olmayı sürdürmektedir.Veri sıkıştırma için üretilen çeşitli teknolojiler büyük miktarda verinin serverdan
istemciye kablolu ve kablosuz ağlar üzerinden iletilmesinde yardımcı olurlar.
2.6. DBMS’in Sınıflandırılması (Classification of Database Management Systems)
Çeşitli kriterler normalde DBMSs sınıflandırmak için kullanılır. İlki DBMSin taban oluşturduğu veri
modelidir.Birçok mevcut ticari DBMSler kullanılan ana veri modeli ilişkisel veri modelidir (Rational data
model).Nesnesel veri modeli (object data model) bazı ticari sistemlerde uygulamaya konmuştur, ancak
yaygın kullanımı olmamıştır. Birçok eski uygulamalar hala hiyerarşik ve ağ veri modellerine dayanan
veritabanı sistemleri üzerinde çalışır.İlişkisel DBMSler sürekli gelişim halindedir ve nesne veritabanında
geliştirilmiş bir çok konsepti birleştirir.Bu gelişmeler nesnesel- ilişkisel DBMS (object-rational DBMS) 23
denilen yeni bir DBMS sınıfını oluşturmuştur.Veri modeline dayalı DBMSleri şu kategorilere ayırabiliriz;
ilişkisel, nesnesel,nesnesel-ilişkisel,hiyerarşik,network ve diğerleri.
Günümüzde, bazı deneysel DBMSler ağaç yapılı olarak adlandırılabilecek (hiyerarşik) XML modeline
dayanmaktadır.Bu native (yerel) XML DBMS olarak adlandırılır.Çeşitli ticari ilişkisel DBMSler XML arayüzü
ve depolama modüllerini de eklemişlerdir.
DBMSs sınıflandırmak için kullanılan ikinci ölçüt; sistem tarafından desteklenen kullanıcı sayısıdır.Tek
kullanıcılı sistemler bir seferde sadece bir kullanıcıya destek verir ve çoğunlukla PC'ler ile kullanılır.DBMS
içeren çok kullanıcılı sistemler, eşzamanlı birden çok kullanıcıyı destekler.
Üçüncü kriter, veritabanı dağıtıldığı alan sayısıdır.Eğer veriler tek bir bilgisayarda(serverda) depolanıyor ise
DBMS merkezidir. Merkezi bir DBMS birden çok kullanıcı destekleyebilir, fakat DBMS ve database toplamda
tek bir bilgisayarda olur.Bir dağıtılmış DBMS (DDBMS), bilgisayar ağları ile bağlı birçok gerçek veritabanı ve
DBMS yazılımına sahip olabilir. Homojen DBMSler tüm alanlarda aynı DBMS yazılımını kullanır, oysa
heterojen DBMSler her bir alanda farklı DBMS kullanabilir. Heterojen DBMS altında depolanan çok sayıda
özerk ve önceden var olan veritabanlarına erişmek için özel yazılım geliştirilmesi de mümkündür.
Dördüncü kriter bedeldir.Maliyete dayalı bir DBMS sınıflandırması önermek zordur. Bugün, third-party vendors
tarafından desteklenen MySQL ve PostgreSQL gibi açık kaynak kodlu DBMS ürünleri ek hizmetler ile üçüncü
taraf satıcılar tarafından desteklenen MySQL ve PostgreSQL gibi ürünleri DBMS var. Büyük sistemler, dağıtım,
çoğaltma, paralel işleme, mobil işlemler gibi modüllerine ayrılmış formda satılmaktadır.Lisansla satılmaktadır.
Bir lisans başına sınırsız sayıda kullanım oluşturulabilir. Diğer lisans türünde ise eş zamanlı kullanıcı sayısını
sınırlar. Microsoft Access gibi bazı sistemlerin bağımsız tek kullanıcı sürümleri kopya başına satılır. Buna ek
olarak, data warehousing (veri depolama) ve data mining (veri madenciliği) gibi modüller ek maliyet getirir.
24
Dosyaları saklamak için erişim yolu türlerinin temelinde bir sınıflandırma daha yapılabilir.
Sonuç olarak genel ve özel amaçlı DBMS olarak sınıflandırılabilir. Performans temel düşünce olduğu zaman,
özel amaçlı DBMS tasarlanır ve belirli bir program için inşaa edilir. Bu tür bir sistem büyük değişiklikler
yapmadan başka uygulamalar için kullanılamaz. Birçok havayolu rezervasyon ve telefon rehberi sistemleri özel
amaçlı DBMSler idi. Bunlar aşırı gecikme yaşanmaksızın eş zamanlı çok sayıda işlem yapılmasını gerektiren
çevrimiçi işlem sistemleri (online transaction processing) (OLTP) kategorisine girer. Eski ve tarihsel olarak
önemli iki veri modeli, network ve hiyerarşik modellerdir. Network modeli veriyi sınırlı türde temsil eder: set type
(küme türü) denilen 1:N lik ilişki. Bu ilişki 1 kaydın birden fazla kayıtla ilişkili olabileceğini tanımlar.Bir sonraki
bölümde detaylı işlenecektir. Figür 2.8 Figür 2.1deki database'in network şema diyagramını göstermektedir.
Orada kayıt türleri dikdörtgenler ile set türleri ise yönlendirilmiş oklar ile gösterilmiştir.
25
Download