VYS02
BSM211 Veritabanı Yönetim Sistemleri - Celal ÇEKEN, İsmail ÖZTEL, Veysel Harun ŞAHİN
İş Kuralları, Veri Modelleri, Varlık Bağıntı Modeli
Konular
Veritabanı Geliştirme Yaşam Döngüsü
İş Kuralları (Business Rules)
Veri Modeli Temel Bileşenleri
İş Kurallarını Veri Modeline Dönüştürme
Veri Modellerinin Gelişimi
Dosya Sistemi
Hiyerarşik Model
Ağ Modeli
İlişkisel Model
Varlık Bağıntı Modeli
Nesne Yönelimli Model
Yeni Veri Modelleri
Veri Soyutlama
Varlık Bağıntı Modeli
Temel Kavramlar
Varlıklar Arası Bağıntılar
Var Olma Bağımlılığı (Existence Dependency)
Zayıf/Güçlü Bağıntılar
Bağıntı Dereceleri
Varlık Bağıntı Modeli (VBM/ERM) ile Tasarım
Kaynaklar
Veritabanı Geliştirme Yaşam Döngüsü
İş Kuralları (Business Rules)
Veritabanı (varlık, nitelik, bağıntı ve kısıtlar) oluşturulurken iş kurallarına bakılır.
İş kuralı: Veritabanı tasarımı yapılacak organizasyon ile ilgili işleyiş, kural ya da yönetmeliğin özetlenmiş şekline iş kuralları denilebilir. İş kuralları ihtiyaç listesine benzer.
Örnek iş kuralları:
Bir müşteri çok sayıda sipariş verebilir.
Her müşterinin adı, soyadı, telefon numarası vs. istenir.
Öğrenciler bir ara sınav ve bir yarıyıl sonu sınavına girerler.
İş kurallarının kaynağı, son kullanıcılar, yöneticiler, kural koyucular ve yazılı dokümanlar (standart, yönetmelik vs.) olabilir.
İş kurallarını oluşturmak için doğrudan son kullanıcılarla görüşmek oldukça etkili bir çözümdür.
Veritabanı tasarımı açısından iş kurallarının önemi;
Kullanıcılar ile tasarımcılar arasındaki iletişimi sağlar.
Tasarımcının verinin doğasını, önemini ve kapsamını anlamasını sağlar.
Tasarımcının iş süreçlerini anlamasını sağlar.
Tasarımcının doğru bir veri modeli geliştirmesine yardım eder (veriler arası ilişkiler ve kısıtların kolayca belirlenmesini sağlar).
Kuruluşun veriye bakışını standart haline getirir.
İş kuralları oluşturulduktan sonra, gerçekleştirilecek veritabanının modellenmesi aşamasına geçilir.
Veri Modeli
Veri modeli: Karmaşık gerçek dünya veri yapılarının basit olarak gösterilmesi (genellikle grafiksel) için kullanılan araca veri modeli ismi verilir.
Veri modeli, veritabanı tasarımcıları, uygulama programcıları ve son kullanıcılar arasındaki iletişimi kolaylaştırır.
Veri modelleri sayesinde veritabanı tasarımını gerçekleştirmek daha kolay olur.
Veri modelleme yinelemeli (iterative) bir işlemdir. Önce basit model oluşturulur. Daha sonra ayrıntılar eklenir. En sonunda veritabanı tasarımında kullanılan şablon (blueprint) elde edilir.
Veri Modelinin Temel Bileşenleri
Varlık (Entity): Hakkında veri toplanan ve saklanan her şey (öğrenci, ders, personel vb.). Gerçek dünyadaki nesneleri ifade eder. Var olan ve benzerlerinden ayırt edilebilen her şey.
Varlık kümesi (Entity set): Aynı türden varlıkların oluşturduğu kümeye denir (Öğrenciler, Dersler vb.).
Nitelik (Attribute): Varlığın sahip olduğu özellikler.
Bağıntı (Relationship): Varlıklar arasındaki ilişkiyi ifade eder.
Bir-Çok (One to Many 1:M)
Bir müşteri çok sayıda sipariş verebilir.
Her sipariş yalnızca bir müşteri tarafından verilir.
Çok-Çok (Many to Many M:N)
Bir öğrenci çok sayıda ders alabilir.
Her ders çok sayıda öğrenci tarafından alınabilir.
Bir-Bir (One to One 1:1)
Bir mağaza bir personel tarafından yönetilir.
Bir personel bir mağazayı yönetir.
Kısıtlar (Constraints): Veri üzerindeki sınırlamalardır. Veri bütünlüğünün sağlanması açısından önemlidir. Örneğin;
Öğrenci notunun 0-100 arasında olması
T.C. kimlik numarasının 11 karakter olması
Aynı ürünün birden fazla kayıt edilememesi
Veri Modellerinin Gelişimi
Dosya Sistemi
Hiyerarşik Model
Ağ Modeli
İlişkisel model
Varlık Bağıntı modeli
Nesne Yönelimli Model
Yeni Veri Modelleri
Dosya Sistemi
1960-1970 lerde çoğunlukla IBM ana çatı (mainframe) sistemlerde kullanılmıştır
Dosyalar arasında ilişki yoktur.
Örnek bir dosya yapısı aşağıda görünmektedir.
Hiyerarşik Model
1960’larda büyük miktardaki verileri yönetebilmek için geliştirilmiştir.
Veriler ağaç yapısı şeklinde organize edilir.
Ana-çocuk (parent-child) arasında 1:M ilişkisi vardır. Kayıtların sadece 1 ana (parent) kaydı vardır.
Ağ Modeli
1970’lerde geliştirilmiştir. Veritabanı başarımını artırmak üzere daha karmaşık ilişkilere izin verilir.
Hiyerarşik modelden farklı olarak kayıtların birden fazla ana (parent) kayıtları olabilir.
Ağ modeliyle birlikte ortaya çıkan ve hala kullanılan bazı kavramlar aşağıdadır.
Şema: Tüm veritabanının, veritabanı yöneticisi tarafından görünen kavramsal organizasyonu.
Alt şema: Veritabanının istenen bilgiyi üreten uygulama programı tarafından görünen kısmı.
Veri işleme dili (data manipulation language, DML): Veritabanında bulunan verilerin, sorgulama işlemleri yapılarak güncellenmesi, yeni verilerin eklenmesi ve olan verilerin silinme işlemlerinin yapılmasını sağlayan dil.
Veri tanımlama dili (data definition language, DDL): Veritabanında bulunan verilerin tip, yapı ve kısıtlamalarının tanımlanmasını sağlayan dil.
Anlık sorgu (ad hoc query): Yazılımlarla birlikte gelmeyen kullanıcının kendi oluşturduğu sorgulara verilen isimdir.
Ağ modelinin dezavantajı, çok basit sorgular için bile karmaşık program kodlarının kullanımını gerektirmesidir.
İlişkisel Model
1970’de E. F. Codd tarafından ortaya atılmıştır (A Relational Model of Data for Large Shared Databanks, Communications of the ACM, June 1970, pp. 377−387).
İlişkisel Veritabanı Yönetim Sistemleri (Relational Database Management Systems, RDBMS) tarafından kullanılır.
RDBMS’nin en önemli özelliklerinden birisi ilişkisel modelin karmaşık yapısını kullanıcıdan gizlemesidir.
Kullanıcı, ilişkisel modeli, verileri içeren tablolardan oluşan bir yapı gibi görür.
Tablolar birbirlerine ortak alanlarla bağlanırlar.
İlişkisel şema, varlıklar, varlıkların nitelikleri ve aralarındaki bağlantıların gösteriminden oluşur.
İlişkisel veritabanı modelinin en güçlü yanlarından birisi, verileri yönetmek için yapısal sorgulama dili (structured query language, SQL) dilinin kullanılıyor olmasıdır.
SQL dili nasıl yapılması gerektiğini anlatmak yerine ne yapılması gerektiğinin ifade edildiği basit bir dildir.
Bu nedenle, SQL kullanılarak veri tabanlarının tasarımı ve yönetimi daha kolaydır.
İlişkisel bir veritabanı yönetim sistemi 3 temel bileşenden oluşur.
Verilerin saklandığı veritabanı
SQL komutlarını derleyerek istenenleri gerçekleştiren SQL Motoru (SQL Engine)
Kullanıcılarla iletişimi sağlayan arayüzler.
Varlık Bağıntı Modeli
İlişkisel model daha önceki modellere göre çok daha kullanışlı olmasına rağmen veritabanı tasarımı için ilişkisel modelin grafiksel gösterimi olan varlık bağıntı modeli (VBM) (entity relationship model, ERM) daha sık kullanılır.
1976’da Peter Chen tarafından önerilmiştir.
İlişkisel modelinin tamamlayıcısı olduğu için kullanımı oldukça yaygınlaşmıştır.
i) Chen gösterimi ve ii) Crow’s Foot gösterimi sıkça kullanılan gösterim şekillerindendir.
Ders kapsamında Crow’s Foot gösterimi kullanılacaktır.
Chen Gösterimi
Crow’s Foot Gösterimi
Nesne Yönelimli Model
Nesne yönelimli programlama paradigmasından esinlenerek geliştirilen modeldir.
Varlık bağıntı (VB - ER) modelindeki varlık (entity) bu modelde nesne olarak adlandırılır.
Nesne hakkındaki bilgi, VB modelindeki niteliklere karşılık gelir.
Varlık kümesi sınıf olarak adlandırılır.
VB modelinden farklı olarak sınıflar üye fonksiyonlara da sahiptirler. Kisi ara, Ad listele vb.
Yeni Veri Modelleri
Nesne İlişkisel Model (Object/Relational Model)
İlişkisel modelle nesne yönelimli modelin birleştirilmesi sonucu ortaya çıkmıştır.
Genişletilebilir İşaretleme Dili (Extensible Markup Language, XML)
Çoğunlukla, farklı platformlar arası veri değişimi için kullanılan veri tanımlama standardıdır. Yapısal olmayan verileri tanımlamak için de kullanılır.
JavaScript Nesne Gösterimi (JavaScript Object Notation, JSON)
Çoğunlukla, farklı platformlar arası veri değişimi için kullanılan veri tanımlama standardıdır. Yapısal olmayan verileri tanımlamak için de kullanılır.
NoSQL
İlişkisel modelin yetersiz kaldığı büyük hacimli verilerin yönetimi için tercih edilir.
Veri Soyutlama
Veri modellerinin daha iyi anlaşılabilmesini sağlamak amacıyla ANSI-SPARC, 1970’lerin başında, veri soyutlamanın 3 düzeyini tanımlamıştır. (ANSI-SPARC: American National Standards Institute, Standards Planning and Requirements Committee.)
Harici Model (External Model)
Kavramsal Model (Conceptual Model)
Dahili Model (Internal Model)
Harici Model (External Model)
Veritabanının son kullanıcılar açısından görünen kısmı. Veritabanının sadece kullanıcıyla ilgili alt bölümlerini ifade eder.
Kavramsal Model (Conceptual Model)
Veritabanının veritabanı tasarımcısı açısından görünen kısmı. Veritabanının tüm alt bölümlerini birleştirerek global olarak görünmesini sağlar.
Varlık Bağıntı Diyagramı (VBD – ERD) ile gösterilir. Kullanılan yazılım (DBMS) ve donanımdan bağımsızdır. Donanım ya da yazılım değişikliği kavramsal model tasarımını etkilemez.
Kavramsal model mantıksal görünüş olarak da kullanılır.
Dahili Model (Internal Model)
Veritabanının, Veritabanı Yönetim Sistemi tarafından görünen kısmı.
Dahili model = ilişkisel model
Donanım bağımsız, yazılım bağımlı.
Varlık Bağıntı Modeli
Bu bölümde varlık bağıntı modeli detaylı bir şekilde anlatılmaktadır.
Giriş
Varlık Bağıntı Diyagramı (VBD, Entity Relationship Diagram (ERD)) veritabanının kavramsal olarak modellenmesini sağlayan yazılım ve donanımlardan tamamen bağımsız gösterim şekilleridir.
Farklı kullanıcılar arasında haberleşmeyi sağlamak için kullanılır.
VB modeline bakarak veri tabanının tasarımını gerçekleştirmek daha kolaydır.
VBD, veritabanının temel bileşenleri olan varlık, nitelik (özellik), varlıklar arası bağıntılar (relationship) ve kısıtlardan meydana gelen çizelgelerdir.
Chen notasyonu kavramsal modellemeyi ön plana çıkartır.
Crow's Foot notasyonu ise daha çok uygulama (implementasyon) yönelimli yaklaşımı ön plana çıkartır.
UML notasyonu, hem kavramsal hem de uygulama (implementasyon) modelleme yöntemleri için kullanılabilir.
İş Kurallarını Varlık Bağıntı Modeline Dönüştürme
Genel olarak iş kurallarındaki isimler varlık, fiiller ise varlıklar arasındaki bağıntı olma adayıdır.
Hakkında bilgi bulunan isim ya da isim tamlamaları varlık adayı iken, bilgi bulunmayanlar varlığa ait nitelik adayıdır.
Müşterinin ad, soyad, numara, adres bilgileri saklanır.
Bir müşteri çok sayıda fatura üretir.
Bağıntılar iki yönlüdür.
1 öğretim üyesi çok sayıda (4) ders verebilir
1 ders sadece 1 öğretim üyesi tarafından verilebilir.
1 kişi 1 bölüme yönetici olabilir.
1 bölüm sadece 1 kişi tarafından yönetilebilir.
1 öğrenci çok sayıda derse kayıt yaptırabilir
1 ders çok sayıda öğrenci tarafından alınabilir.
İsimlendirme kuralları
Kodlama türleri
Linux Coding Style, Linus Torvalds
Hungarian Notation,
GNU Coding Standards
Java Coding Style Guide
Birincil anahtar (primary key): Bir varlık kümesindeki herbir varlığı eşsiz bir şekilde tanımlamıza olanak tanıyan nitelik(ler).
Tek bir nitelik (alan) olabileceği gibi birden fazla niteliğin birleşiminden de oluşabilir.
urunKodu
dersKodu + ogrenciNo
Birleşik nitelikler:
adres: cadde, şehir, ülke, posta kodu vb.
Detaylı sorgular için basit özellikli alanlara dönüştürülmeliler.
Basit nitelikler
yaş, ad, soyad, cinsiyet vb.
Türetilmiş nitelikler
Değeri diğer özellikler kullanılarak oluşturulan özellikler.
Saklanmalı mı, hesaplanmalı mı?
Saklanması Durumunda:
Avantaj: Az işlemci gücü gerekir, veriye daha hızlı erişim, geçmiş bilgisi için kullanılabilir
Dezavantaj: Güncel değer için sürekli denetlenmelidir, fazladan yer kaplar
Hesaplanması Durumunda:
Avantaj: Yer tasarrufu sağlar. Her an güncel değer olur.
Dezavantaj: Çok işlemci gücü gerekir, veriye daha yavaş erişim olur, sorgular daha karmaşık olur.
Varlıklar Arası Bağıntılar
Bir - Çok Bağıntısı
1 derslik sadece 1 binada bulunabilir.
1 binada çok sayıda derslik bulunabilir.
Normal şartlarda tablo içerisindeki kayıt sayısı sınırlanamaz. Bunun için uygulama yazılımları ya da tetikleyiciler (trigger) kullanılabilir.
Kayıt sayılarının gösterilmesi uygulama yazılımı geliştirilirken çok faydalıdır. (Sınıfın açılabilmesi için en az 10 kayıt, en fazla 30 kayıt gereklidir. Bir doktor bir günde en fazla 30 reçete yazabilir...)
Sayılar iş kurallarına bakılarak belirlenir.
Çok - Çok Bağıntısı
1 öğrenci çok sayıda derse kayıt yaptırabilir
1 ders çok sayıda öğrenci tarafından alınabilir.
Bir - Bir Bağıntısı
1 öğretim üyesi 1 bölüm yönetebilir
1 bölüm 1 öğretim üyesi tarafından yönetilebilir.
Var Olma Bağımlılığı (Existence Dependency)
Bir site yönetim sisteminde Apartman ve Daire varlık kümeleri olsun.
Böyle bir sistemde «bir apartmana bağlı olmayan daire olamaz» kuralı mevcuttur.
Örneğin Daire varlık kümesine hiçbir apartmana ait olmayan bir dairenin kaydını yapamayız, yapmamalıyız.
Bu örnekte, Apartman ve Daire arasında var olma bağımlılığı vardır denir.
Bu durumda Apartman üstün varlık, Daire ise bağımlı varlıktır.
Bir personel bilgi sisteminde Personel ve Bagimli (Personele bagimli olan kişiler. Örneğin çocuk, eş vb.) varlık kümelerini düşünelim. Böyle bir sistemde «bir personele bağlı olmayan bagimli varlığı olamaz» kuralı mevcuttur. Örneğin bagimli varlık kümesine hiçbir personele ait olmayan bir çocuğun kaydını yapamayız, yapmamalıyız. Bu örnekte, bagimli ve personel arasında var olma bağımlılığı vardır denir. Bu durumda personel üstün varlık, bagimli ise bağımlı varlıktır.
Var olma Bağımlılığı, Tanımlama Bağıntısı
Zayıf/Güçlü Bağıntılar
Bağıntı kurulan varlığın birincil anahtarı içerisinde, bağıntı kuran varlığın birincil anahtar bilgisi yer almıyorsa “iki varlık arasında zayıf bağıntı vardır” denir.
Bağıntı kurulan varlığın birincil anahtarı içerisinde, bağıntı kuran varlığın birincil anahtarı yer alıyorsa “iki varlık arasında güçlü bağıntı vardır” denir.
Bağıntı Dereceleri
Tekli (Unary) Bağıntı
İkili (Binary) Bağıntı
Üçlü (Ternary) Bağıntı
Tekli Bağıntı
Tekli (Unary) Bağıntı: Bir varlık kendisi ile bağıntılı (ilişkili) ise bu tür bir bağıntıya tekli bağıntı adı verilir.
Örneğin, Personel tablosu içerisindeki bir personel, sıfır veya daha fazla personelin aynı zamanda yöneticisidir. Bir personelin sıfır ya da bir yöneticisi olmalıdır.
İkili Bağıntı
İkili (Binary) Bağıntı: İki varlığın bağıntısına (ilişkisine) ikili bağıntı denir.
Üçlü Bağıntı
Üçlü (Ternary) Bağıntı: Aynı anda 3 varlık birbirine bağlanıyorsa, bu tür bağıntıya üçlü bağıntı adı verilir.
Kavramsal tasarımda her ne kadar 3 varlık mevcut ise de bunu gerçekleştirebilmek için 4. bir varlığa gereksinim duyulur.
Varlık Bağıntı Modeli (VBM/ERM) ile Tasarım
Veritabanı tasarımı, lineer ya da ardışıl (yazılım geliştirmedeki şelale modeli gibi) olmaktan çok tekrarlı (yazılım geliştirmedeki spiral model ya da iteratif model gibi) bir süreçtir.
Tekrar fiili, “tekrar tekrar yap” anlamındadır. Tekrarlı bir süreç, süreçlerin ve prosedürlerin tekrarlanması temeline dayanır.
Bir varlık bağıntı diyagramının geliştirilmesi genellikle aşağıdaki adımları içermektedir.
Organizasyonun (kurumun) işlerinin (operasyonlarının) tanımını içeren detaylı bir senaryo (hikaye) oluşturulur. Senaryo özellikle organizasyon içerisindeki rol temsilcilerine danışılarak oluşturulursa çok daha gerçekçi ve etkili olur.
Senaryoda geçen işlerin tanımları baz alınarak iş kuralları oluşturulur.
İş kuralları baz alınarak ana varlıklar ve varlıklar arasındaki bağıntılar oluşturulur.
İlk varlık bağıntı diyagramı geliştirilir.
Varlıkları net bir şekilde tanımlayan nitelikleri ve birincil anahtarları oluşturulur.
Varlık Bağıntı Diyagramı gözden geçirilerek gerekirse yukarıdaki adımlar, istenilen duruma gelininceye kadar tekrarlanır.
Kaynaklar
Carlos Coronel, Steven Morris, and Peter Rob, Database Systems: Design, Implementation, and Management, Cengage Learning.
Last updated