GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜMÜ



Benzer belgeler
Kavramsal Tasarım. Veritabanlarına Giriş Dersi

Fiziksel Veritabanı Modelleme

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

VERİ TABANI YÖNETİM SİSTEMLERİ

İlişkisel Veri Tabanları I

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

1. Veri Tabanı Sistemine Giriş

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

1 Temel Kavramlar. Veritabanı 1

SQL Komutları (2) Uzm. Murat YAZICI

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

VERİTABANI Veritabanı Yönetimi

VERİTABANI. SQL (Structured Query Language)

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

SQL Kod ile Tablo Oluşturma

VERİ TABANI YÖNETİM SİSTEMLERİ I

YAPISAL SORGULAMA DİLİ (SQL)

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI

Veritabanı Tasarımı Ve Yönetimi. Varlık-İlişki Modeli

Veritabanı. SQL (Structured Query Language)

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Veritabanı Modeli

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Veritabanı. Ders 2 VERİTABANI

SQL (Structured Query Language)

Bölüm 4: DDL Veri Tanımlama Dili

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

UZAKTAN EĞİTİM MERKEZİ

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

Mysql Veritabanı Komutları

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

EBE-368 Veri Tabanı Yönetim Sistemleri Veri Tabanı Tasarımı

SQL e Giriş. Uzm. Murat YAZICI

Veri Tabanı Tasarım ve Yönetimi

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

ACCESS PLATFORMUNDA SQL

İLİŞKİSEL VERİTABANLARI

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

1 Temel Kavramlar. Veritabanı 1

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Microsoft SQL Server Sorgulama

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

MİLLİ SAVUNMA ÜNİVERSİTESİ KARA HARP OKULU DEKANLIĞI BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DERS TANITIM BİLGİLERİ

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

KISITLAMALAR (CONSTRAINT)

VERİ TABANI YÖNETİM SİSTEMLERİ

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

VERİ TABANI SİSTEMLERİ

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

Oracle Database 11g: Introduction to SQL

Veritabanı Yönetim Sistemleri

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Bilgilerin Uzun Vadeli Saklanması

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

2 İlişkisel Veritabanı Tasarımı ve Normalizasyon. Veritabanı 1

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

VERİTABANI ORGANİZASYONU

Veritabanı Uygulamaları Tasarımı

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar

Çok tablolu sorgulamalar

Veri Tabanı Programlamaya Giriş

Veritabanı Tasarımı Ve Yönetimi

VT Sistem Gerçeklemesi. Ders Notları- #8

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

Advanced Oracle SQL Tuning

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

VTYS İlişkisel Veri Modeli Y R D. D O Ç. D R. M. B E T Ü L Y I L M A Z

Veri Tabanı Yönetim Sistemleri Bölüm - 4

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210)

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

Veritabanı ve Yönetim Sistemleri

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

Veri Tabanı Hafta Dersi

Veritabanına Uygulanması

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Transkript:

GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜ ÜSÜ ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜMÜ BİLGİ SİSTEMLERİ VERİ TABANI YÖNETİM Mİ Hazırlayanlar : 21220032 Erkan KARAARSLAN ARALIK 2002 1

VERİ TABANI... 5 1 Veri Tabanı Sistemlerine Giriş... 5 1.1 Giriş... 5 1.2 Veri Tipleri... 8 1.3 VTYS nin Kullanım Nedenleri... 9 1.4 Veri Tabanları Konusunu Niçin Çalışmalıyız?... 10 1.5 Veri Modeli ve Sınıflandırılması... 11 1.6 Veri Tabanı Tanımı (Şema)... 11 1.7 Veri Tabanı Dilleri... 13 1.8 Veri Tabanı Sistemi Ortamı... 15 1.9 VTYS'lerin Sınıflandırılması... 16 1.9.1 Veri Modeline Göre... 16 1.9.2 Kullanıcı Sayısına Göre... 17 1.9.3 Yer Sayısına Göre... 17 1.9.4 Genel Amaçlı ve Özel Amaçlı Olmalarına Göre... 17 2. Veri Tabanları İçin Kavramsal Modelleme... 18 2.1 Kavramsal Tasarım... 18 2.2 ER Modelinin Kavramları... 18 2.3 ER Modelde İlişki Tipleri... 20 2.3.1 Nesne tipleri arasındaki ilişki tipleri... 20 2.3.2 Nitelikler arasındaki ilişki tipleri... 21 2.4 ER Modelde Kısıtlar... 21 2.5 ER Modele Örnek... 22 2.6 ER Diyagramında IS-A Hiyerarşisi... 24 3. Fiziksel Veri Tabanı Modellemesi... 25 3.1 Fiziksel Veri Tabanına Giriş... 25 3.1.1 Genel Bilgiler... 25 3.1.2 Fiziksel Veri Tabanı Tasarımı... 27 3.1.3 Kayıtların Kütükleri... 30 3.2 Fiziksel Veri Tabanında Dizinleme... 32 3.2.1 Kütük Organizasyonları... 32 3.2.2 Dağıtım (Hashing) Teknikleri... 32 3.2.2.1. Dışsal (External) Dağıtım... 33 2

3.2.2.2. Dinamik Dağıtım Yapısı... 34 3.2.2.3. Genişleyebilir Dağıtım Yapısı... 35 3.2.3 Dizinleme (Indexing)... 36 3.2.4 B+_Ağaç Yapısı... 38 3.2.4.1. B+_Ağaç Veri Yapısında Bir Verinin Girişi... 39 3.2.4.2. Verilerin B+_Ağacından Silinmesi... 39 4 İlişkisel Veri Modelleme... 41 4.1 İlişkisel Veri Modeli... 41 4.1.1 İlişkisel Veri Modeli - Tanımlar... 41 4.1.2 İlişkilerde Güncelleme İşlemleri... 42 4.2 İşleme (Manipulation) İşlemleri (İlişkisel Cebir İşlemleri)... 43 4.2.1 Seçme Operasyonu... 44 4.2.2 Projeksiyon Operasyonu:... 44 4.2.3 Kartezyen Çarpımı:... 45 4.2.4 Birleştirme Operasyonu (JOIN)... 45 4.2.5 Toplama (U), Kesiştirme ( ) ve Küme-Çıkarma (-) Operasyonları... 47 4.2.6 Bölme (/)... 47 4.2.7 Dışsal Birleşme... 49 4.3 Bir İlişkinin Anahtar Nitelikleri... 49 4.4 Bir İlişkisel Veritabanı Şemasındaki Bütünlük Kısıtlamaları... 50 5 VTYS Dili... 52 5.1 SQL (Structured Query Language - Yapısal Sorgu Dili)... 52 5.2 Kavramsal Değerlendirme Stratejisi... 52 5.3 SQL e Sorgu Örnekleri... 55 5.4 SQL'de EXIST Fonksiyonu... 57 5.5 Toplama (Aggregation) Fonksiyonları ve Gruplama (Grouping)... 57 5.6 Güncelleme Operasyonları... 58 6 Veri Tabanı Tasarımı... 59 6.1 Veri Tabanı Tasarımı... 59 6.2 İyi Bir İlişkisel Şema Tasarımının Ölçütleri... 59 6.3 Fonksiyonel Bağımlılık... 60 6.4 Çok-Verili Bağımlılık (MVD)... 64 6.5 Normalizasyon (Ayrıştırma)... 65 6.6 Normal Formlar... 65 3

6.7 Ayrıştırma ile İlgili Problemler... 67 6.8 İlişkisel Veri Tabanı Şema Tasarımı İçin Algoritmalar... 68 7 Kavramsal Modelin Mantıksal Modele Dönüştürülmesi... 68 7.1 ER nin İlişkisel Modele Dönüştürmesinin Gerçekleştirimi... 69 7.2 Örnek... 70 7.3 Örnek... 71 7.4 Örnek... 72 7.5 Üçlü İlişkinin İlişkisel Şemaya Dönüştürülmesi... 73 7.6 ISA Hiyerarşilerine Örnek... 73 KAYNAKÇA... 74 4

VERİ TABANI 1 Veri Tabanı Sistemlerine Giriş 1.1 Giriş Veri tabanı sistemlerine geçmeden önce veri işlemleri dosyalar üzerinde yapılmaktaydı. Gelişen yazılım ve donanım teknolojileri sayesinde yetersiz kalan dosyaların yerine veritabanı kullanılmaya başlanmıştır. Veritabanı kullanımı sayesinde daha önce mümkün olmayan bir çok iş rahat bir şekilde yerine getirilmeye başlanmıştır. Veri tabanı (database) bir sorunu çözmek amacıyla bir araya getirilmiş, birbirleriyle ilişkili verilerin bir topluluğudur. Veri tabanı, belirli bir tarzda organize edilmiş faydalı verilerin bir kolleksiyonudur. Bu verilerin bir araya getirilmesi ve bunların işlenerek anlaşılır bilgi haline dönüştürülmesi bilgiişlem açısından çok önemlidir. Çok sayıda bilginin, güvenilir bir şekilde saklanması ve üzerlerinde çeşitli işlemlerin yapılması gerektiğinde, bu bilgileri oluşturan verilerin anlamlı biçimde düzenlenmeleri gerekmektedir. İyi düzenlenmiş bir veri tabanı ile birçok işlev yerine getirilebilir. Veri tabanı bileşenleri üç ana bölümden oluşur. Bu bölümler Alan, Kayıt ve Dosya bölümlemeleridir. Alan (field), veri tabanı içinde verilerin isimlendirilmiş en küçük birimidir. (okul no, ad, soyadı, yabancı dili... gibi). Kayıt (record), Birbirleriyle bağlantılı alanlar topluluğudur. Bir öğrenciye ait okul no, ad, soyadı, yabancı dili bilgilerinin bütünüdür. Dosya (file), Aynı alanlara sahip kayıtların topluluğudur. 5

Veri üzerinde işlem yaparken iki yaklaşım vardır; bunlardan birincisi dosya yaklaşımı (VTYS kullanılmayan yapı) bir diğeri ise veritabanı yaklaşımı, bu yaklaşımda veritabanı yönetim sistemi kullanılır. VTYS kullanılmadığı durumdaki yapı: ŞEKİL 1.1 - Dosyalarla uygulama yazılımları arasındaki ilişki VTYS kullanılmadan, sadece dosyaların kullanılmasında karşılaşılan problemlerden bazıları: Her dosya farklı bir sırada işlenir. Kayıtın uzunluğu değiştiğinde bu kayıtın bulunduğu dosyalara ulaşan programlar da ona göre değiştirilmelidir.(lack of flexibility) 6

Verilerin tekrarlanması söz konusudur.(data redundancy) Her lokasyondaki veriler tutarlı(consistent) olmayabilir. İzin verilmemiş kişilerin dosyalara ulaşmalarını engellemek için etkin bir emniyet sistemi yoktur.(data security) Verilerin işlenmesinin maliyeti çok yüksek olabilir. Yazılımların etkinliği düşük olur. Çözüm : VTYS VTYS kullanıldığı durumdaki yapı: ŞEKİL 1.2 - Dosyalarla VTYS yazılımı arasındaki ilişki 7

Veritabanı(VT) birbiriyle ilgili olan verilerin toplamıdır. Bu veriler kayıt edilmiş bilinen gerçekleri temsil ederler ve herbiri bir anlam içerir. Bir VT yi minik dünya olarak adlandırabiliriz. Çünkü gerçek dünyanın sadece bir parçasını gösterirler. Veritabanları çok büyük miktarlarda bilgi içerirler. Veritabanları gerçek dünyada var olan birbirleriyle ilişkili nesneleri (örn: öğrenciler, dersler) ve ilişkileri (örn: Ali BTSP301 i alıyor) modellerler. ŞEKİL 1.3 - Veritabanı ve kullanıcılar ilişkisi 1.2 Veri Tipleri a-karaktersel (Alfasayısal)Veriler: ASCII karakterlerini kapsar. 1 ile 254 arası sayıda karakterden oluşabilir. (Bursa, Okul0115a,#, s, 123 ) b- Sayısal (Numeric) Veriler: Sayısal değerler, dört işlem yapabildiğimiz değerlerdir. Ondalık veya tamsayı olabilir. (123, 845) c- Tarih Tipi Veriler: Tarih gösteren verilerdir.otomatik olarak 8 karakter uzunluğundadır. Normalde gg/aa/yy formatındadır. SET KONTROL komutları kullanılarak gg/aa/yy formatına dönüşüm yapılabilir. 8

(05/28/95) gg aa yy g- gün a-ay y-yıl d- Memo Tipi Veriler: Bu türden olan veriler herhangi bir metni yani text i içeren verilerdir. Bu tip verilere ait sahalar diğer sahalardan farklı şekilde işlenir. Çalışılan dosya çağrıldığında bu sahaya ilişkin bilgiler görünmez, özel olarak o sahaya girilerek içeriği görülebilir. Kısa not şeklinde bir veri tipi olarak tanımlayabiliriz. e- Logical (Mantıksal) Tip Veriler: Mantıksal bir sahanın içeriği yalnızca doğru veya yanlış olabilir. Başka alternatif yoktur. (Doğru veya Yanlış) (True veya False) ( Yes veya No) Veri Tabanı Yönetim Sistemi (VTYS): genel amaçlı bir yazılım sistemi olup kullanıcıların değişik uygulamalar için veri tabanlarını tanımlanmasına, kurmasına ve işlemesine olanak verir. Veri tabanı ve veri tabanı yönetim sisteminin ikisine birden Veri Tabanı Sistemi denir. ŞEKİL 1.4 - VTS, VTYS ve VT kavramlarının şekilsel gösterimi 1.3 VTYS nin Kullanım Nedenleri 9

Gereksiz fazlalığın kontrolü: Aynı verilerin birden fazla kayıt edilmesi, kayıt alanının boşa gitmesi ve tutarsızlığa sebep olur. Verilerin paylaşımı: Çok sayıda kullanıcının VT na eş zamanlı olarak ulaşmasını sağlar. Bunun için VTYS eş zaman kontrol yazılımını içerir. İzinsiz ulaşımların engellenmesi: VTYS emniyet ve kimlik kontrolü alt sistemleri ile izinsiz ulaşımların engellenmesini sağlar. Çoklu arayüzlerin sağlanması: Sorgu dilleri arayüzleri, doğal dillerin arayüzleri, vb. arayüzleri sağlar. Veriler arasındaki karmaşık ilişkilerin sunumu: Gelişen VTYS teknolojileri ile karmaşık ilişkilerin sunumu da mümkün olabilmektedir. Doğruluk kıstaslarının sağlanması: Bunun için bazı özel doğruluk kıstaslarının VTYS tarafından sağlanabilmesi için önlemler alınmalıdır. Her kayıtın eşsiz olmasının garanti altına alınması bunlardan biridir. Bunun dışında dikkat edilmesi gereken birçok konu vardır. VTYS ler bu konuda da yardımcı özelliklere sahiptir. Ek kayıt ve kurtarma: Bir VTYS veritabanını donanım ve yazılım hatalarından koruyabilmeli ve kayıtları başka bir alanda ek olarak kaydedebilmelidir. VTYS lerin birçoğunda gerekli yardımcı unsurlar mevcuttur. Veri bağımsızlığı ve etkin ulaşımı: Uygulamaların verilerin nasıl yapılandığından ve tutulduğundan bağımsız olması gerekli bir özelliktir. Uygulama geliştirme zamanının azaltılması. Veri yönetiminin tek tip olması: Tek bir noktadan VTY(Veri Tabanı Yöneticisi) tarafından yönetilebilmesi, veri kontrolünü kolaylaştırır. 1.4 Veri Tabanları Konusunu Niçin Çalışmalıyız? Hesaplamadan bilgiye doğru bir yönelişin olması. Veri setleri hacim ve farklılık bakımından çok artmaktadır. Örneğin, dijital kütüphaneler, etkileşimli video, v.b., VTYS yi gerektiren uygulamalardır. Gelişen teknoloji bazı bilgisayar Mühendisliği alanları VTYS bilgisini gerektirir. 10

1.5 Veri Modeli ve Sınıflandırılması Veri modeli, veritabanının yapısını tanımlayabilmek için kullanılan kavramlar kümesidir. Veritabanının modeli; veri tipleri, işlemler ve kısıtlamalardan oluşur. VT modellerinin büyük bir çoğunluğu VT üzerinde güncelleme yapan ve kayıtları alıp getiren bir işlemler kümesini de içermektedir. Bu işlemler ilerde anlatılacaktır. Veri Modellerinin Sınıflandırılması Yüksek Seviyeli Veri Modelleri: Bu modeller varlıklar(entities), özellikler (attributes) ve ilişkiler (relationships) gibi kavramlar kullanırlar. Bu modellere örnek; ER, IFO, SDM, v.b. Mantıksal Veri Modelleri: Bu modeldeki kavramlar verilerin bilgisayarda fiziksel olarak organize olma biçimine çok benzerler. Bunlara örnekler; ilişkisel, ağ, seviyeli, nesneye-yönelik veri modelleridir. Fiziksel Veri Modelleri: Bu modeller verilerin bilgisayarda nasıl tutulduklarını detaylı olarak gösteren kavramlara sahiptirler. Bunlar kayıtların biçimiyle, kayıtların sırasıyla, ulaşma yollarıyla ilgili bilgiler içerirler. 1.6 Veri Tabanı Tanımı (Şema) Şema verilerin yapısını gösterir. Örnek: ŞEKİL 2.1 - Öğrenci ilişkisinin şeması Veritabanı örneği: Veritabanındaki o anda aktif bulunan veriyi gösterir. Örnek: 11

ŞEKİL 2.2 - ÖĞRENCİ ilişkisinin örnek kayıtları (tuple'ları) ŞEKİL 2.3 - Üç seviyeli VT yapısı Veri Bağımsızlığı: VT'nin üç seviyeli yapısıyla sağlanabilmiştir. Herhangi bir seviyedeki şemada bir değişiklik yapılırsa bir üst seviyedeki şemada değişiklik yapılmasına gerek yoktur. Sadece bu iki seviye arasındaki uyumlaştırmayı değiştirmemiz yeterlidir. 12

ŞEKİL 2.4 - VT'nin genel görünüşü ve dışsal görünüşleri Eş zamanlı (concurrent) gerçekleştirim iyi bir VTYS performansı için temeldir. Diske erişim VTYS uygulamalarında çok sık gereklidir ve dolaylı olarak yavaştır. Bundan dolayı merkezi işlemci birimini bir çok kullanıcı programında eş zamanlı olarak kullanabilmek performans bakımından önemlidir. VTYS veri tabanlarında tutarsızlıkların oluşmayacağını garanti altına almaya çalışır ve kullanıcılara sanki tek kullanıcılı sistemi kullanıyorlarmış intibaını verir. 1.7 Veri Tabanı Dilleri Veri Tanımı Dilleri (VTD, DDL): Bu diller VT nin hem kavramsal hem de içsel şemasının tanımı ve bunlar arasındaki herhangi bir uyumlaştırma için kullanılmaktadırlar. Depolama Tanımlama Dili(DTD): Kavramsal seviye ile içsel seviye arası kesin hatlarıyla ayrılmışsa özellike içsel şemanın tanımı için kullanılır. 13

Gözlem Tanımlama Dili(GTD): Kullanıcıların gözlemlerini belirlemekte kullanıldığı gibi, gerçek bir üç-seviyeli yapı söz konusu ise bu dışsal şemaları kavramsala dönüştürmede de kullanılırlar. Veri İşleme Dilleri(VİD, DML): VT nin işlenmesinde kullanılırlar. 1. Yüksek Seviyeli VİD: Tek başına kullanılan bu tür diller VT nin karmaşık işlemlerini bütün olarak belirtebilmektedir. Bunlar ya direk komut olarak girilebilmekte ya da genel amaçlı bir programlama diline gömülerek tanımlanabilmektedir. Bunlar ayrıca küme merkezli VİD ler diye de adlandırılırlar. 2. Düşük Seviyeli VİD: Bunlar genel amaçlı bir programlama diline gömülerek tanımlanırlar. VT'den tek tek kayıtları alıp getirirler ve her kayıt ayrı ayrı işlem görür. Eğer VİD bir genel amaçlı dilin içine yerleştirilmişse buna veri alt dili (data sublanguage) adı verilir. Eğer VİD tek başına birbirini etkileyen (interactive) biçimde kullanılmışsa buna sorgu dili (query language) adı verilir. 14

ŞEKİL 2.5 - VTYS'de bulunan kısımların genel bir ilişki şeması 1.8 Veri Tabanı Sistemi Ortamı Kayıtlı veri yöneticisi (Registered Data Manager): Bu yüksek seviyeli VTYS modülü diskte depolanmış VTYS bilgilerine ulaşmayı kontrol eder. VTD derleyici (DDL Compiler): VTD de belirtilen şemanın tanımlarını işler ve bunları VTYS kataloğunda depolar. Çalışma zamanı veri tabanı işlemcisi (Runtime DB Processor): Çalışma zamanı (runtime) VT işlemlerini halleder, güncelleme ve alıp götürme işlem komutlarını alır ve bunları VT üzerine taşır. Sorgu İşlemcisi (Query Processor): Birbirini etkileyen şekilde girilmiş yüksek seviyeli sorguları halleder; sorguyu analiz eder, ayrıştırır, sonra da bir çağrı ile yürütme zamanı işlemcisine söz konusu isteği yürütme komutunu verir. Önderleyici (PreCompiler): Bu sadece VİD komutlarını herhangi bir genel amaçlı programlama diliyle yazılmış uygulama programından seçip ayırır. 15

VİD Derleyicisi (DML Compiler): Önderleyiciden gelen komutlar burada derlenir ve VT işlemi yapabilecek obje koduna dönüşür. Host dili derleyicisi (Host Language Complier): VİD komutları dışındaki host dilin komutları bu modüle derlenmek üzere gelir. VİD komutları için gerçekleştirilen amaç kodu ve programın geri kalan kısmı birbirine bağlanır ve derlenmiş kısa iletişim oluşturulur. Burada sonuç olarak oluşturulan yürütülebilen kod aynı zamanda yürütme zamanı veritabanı işlemcisine çağrıyı da içermektedir. Veritabanı sistemleri ile, son noktadaki kullanıcılar, VTYS satıcıları, VT uygulama programcıları ve veri tabanı yöneticisi(vty) veritabanı ile ilgili işlerini rahat, doğru ve etkin bir biçimde yapabilmesi esastır. Veri tabanı yöneticisinin (VTY) temel sorumlulukları: Mantıksal ve fiziksel şemaların tasarımı Emniyetin sağlanması ve izin verilme işlemlerinin yapılması Verilere istenildiğinde ulaşılabilmesi ve VT nin gereken durumlarda kurtarılması. VT nin ihtiyaçları değiştikçe ayarlamaların yapılması. 1.9 VTYS'lerin Sınıflandırılması 1.9.1 Veri Modeline Göre İlişkisel VTYS ler Sybase, Oracle 7.6, SQL Server Seviyeli VTYS ler IMS Ağ VTYS ler DBTG İlişkisel nesne modelli VTYS ler Oracle 8, DB2, Informix Nesneye-yönelik VTYS ler GemStone, O2, ObjectStore 16

Genişletilmiş İlişkisel VTYS ler Starburst Çıkarımcı VTYS ler Postgres, Educe, Prosql Çıkarımcı Nesneye Yönelik VTYS ler 1.9.2 Kullanıcı Sayısına Göre Tek kullanıcılı sistemler Çok kullanıcılı sistemler 1.9.3 Yer Sayısına Göre Merkezi VTYS ler Dağıtık VTYS ler Homojen VTYS ler bunlar çok yerde aynı VTYS yazılımını kullanırlar. Heterojen VTYS ler bunlar federal VTYS lere dönüşürler ve diğer bir isimle de çoklu veritabanı sistemi olarak adlandırılırlar. 1.9.4 Genel Amaçlı ve Özel Amaçlı Olmalarına Göre 17

2. Veri Tabanları İçin Kavramsal Modelleme 2.1 Kavramsal Tasarım ŞEKİL 2.1 - Veritabanı uygulamaları için tasarım safhaları Kavramsal tasarım veritabanı tasarım safhalarında gösterildiği gibi ihtiyaçlar analizini takip eder ve veritabanında tutulacak olan verilerin yüksek seviyede bir gösterimini verir. Varlık-İlişki (ER) Modeli, kavramsal tasarım için en popüler ve en çok kullanılan modeldir. ER deki notasyonlar oldukça bilgi verici ve insan bakışına yakın özelliklere sahiptir. ER nin en temel kavramları varlıklar (entities), ilişkiler (relationships) ve özellikler (attributes)dir. ER modelinin bir çok değişik varyasyonu vardır ve notasyonların gösterimleri çok farklı olabilmektedir. Ancak en çok kabul gören ve kavramları içeren ER modelini burada ele alacağız. 2.2 ER Modelinin Kavramları - Varlık: ER nin sunduğu temel nesnedir. Gerçek dünyada bağımsız olarak var olan bir şey dir. 18

- Özellik: Varlığın belirli bir özelliğini belirtir. Varlığı tanımlayan özelliklerin değerleri veri tabanında depolanan verilerin ana kısmını oluştururlar. - Basit özellikler: Daha küçük parçaya bölünemeyen özelliklerdir. - Birleşik özellikler: Birden fazla basit özellikten oluşan özelliklerdir. - Tek verili özellikler: Birden fazla veriye herhangi bir nesnede sahip olamayan özelliklerdir. - Çok verili özellikler: Birden fazla veriye herhangi bir nesnede sahip olabilen özelliklerdir. - Oluşturulan özellikler: Öteki özelliklerden elde edilen özelliklerdir. - Varlık tipi: Aynı özelliklerden oluşan varlıkların kümesidir kümesi. - Nesne-tipi şema: Nesne tipinin tanımını gösterdiği gibi belirli bir tipe sahip olan nesnelerin paylaştığı bir genel yapıyı da belirtir (genelde şema sözcüğü bütün verilerin mantıksal görünüşünü belirtir). - Örnekler: Belirli bir tipteki bireysel nesnelerin belirli bir zamanda ve andaki örnekler kümesini gösterir ve zamanla değişirler. - İlişki tipi: Nesneler arasındaki ilişkiler kümesini gösterir. İlişki tipinin derecesi ilişkide yer alan nesnelerin sayısıyla belirlenir. - Zayıf varlık tipi: Bunlar kendilerine ait anahtar niteliğe sahip değillerdir. Bu tür nesne tipine ait olan nesneler diğer bir nesne tipindeki belirli bir nesneye aittir ve kendi nitelikleri ve diğer nitelik tipinin anahtar niteliğiyle birlikte ayırt edilebilirler. Sözü edilen diğer nitelik tipine belirleyici sahip, bu ikisi arasındaki ilişki tipine de belirleyici ilişki denir. - Anahtar nitelik: Bu niteliklerin değerleri her nesne için farklı olmak zorundadır. - Değerler kümesi(alan): Bu her bir nesnenin her bir niteliğinin alabileceği değerler kümesidir. - Yapısal kısıtlamalar: Bunlar kardinality oranı (ratio), bir nesnenin dahil olabileceği ilişki örneklerinin sayısıdır. - Dahil olma kısıtlaması (participation constraints): Bir nesnenin varolmasının ilişki tipi üzerinden diğer bir nesneyle ilgili olup olmamasına bağlı olduğunu belirler. Bunların iki değişik tipi vardır: 19

- Toptan (total): bütün nesneler ilişki tipi üzerinden birbiriyle ilgili olmak zorundadırlar. - Kısmi (partial): bütün nesneler ilintili olmak zorunda değildir. Bu kavramlarla ilgili ER notasyonları verildikten sonra örneklerde kullanacaklardır. Bir nesne kümesindeki tüm nesneler aynı nitelik kümesine sahiptirler. Her nesne kümesinin bir anahtarı vardır. Her niteliğin bir değerler kümesi vardır. Her nesne kümesi bir ilişkiye kolayca dönüştürülebilir. ŞEKİL 2.2 - ER'da kullanılan temel notasyonlar 2.3 ER Modelde İlişki Tipleri 2.3.1 Nesne tipleri arasındaki ilişki tipleri Hasta <- - - - - > Yatak 1-1 ilişkisi söz konusudur Hasta <<- - - - > Hastane Odası 1-m ilişkisi vardır 20

Hasta <<- - - >> Doktor n-m ilişkisi ile tanımlanabilir 2.3.2 Nitelikler arasındaki ilişki tipleri Hasta no <- - - - - - > Hasta ismi, doğum tarihi 1-1 ilişki tipi Hasta no <- - - - - >> Hasta ismi 1-m ilişki tipi Hasta ismi <<- - - - >> Doktor ismi n-m ilişki tipi ŞEKİL 2.3 - ER'da kullanılan ilişki tipleri 2.4 ER Modelde Kısıtlar ER modelde birçok tutarlılık kısıtları gösterilebilmektedir. Bunlar; anahtar kısıtı katılım kısıtı üstüste gelme/örtme kısıtı yabancı anahtar kısıtı Bu kısıtlardan bazıları veritabanının dilinde (SQL) ilerdeki bölümlerde görülebileceği gibi direk olarak gösterilebilmektedir. Bazı kısıtlar (örneğin fonksiyonel kısıtlar) ER modelde gösterilememektedir. Kısıtlar iyi bir veritabanı tasarımı için çok önemli anahtar rolü oynamaktadırlar. 21

2.5 ER Modele Örnek ŞEKİL 2.4 - Örnek ÇALIŞAN veri tabanı uygulamasının ER ile gösterimi Bu örnekte; Çalışan: Nesne tipine bir örnektir. Bağımlı: Zayıf nesne tipine bir örnektir. İçin_Çalışır: İlişki tipine bir örnektir. Bağımlısı_Olan: Tanımlayıcı ilişki tipine bir örnektir. Maaş: Nitelik. SSN: Anahtar nitelik. Yerler: Çok verili nitelik. İsim: Birleşik nitelik. 22

ŞEKİL 2.5- ÇALIŞAN uygulamasının ER ile değişik bir gösterimi Bu örnek bir önceki örneğin aynısıdır. Sadece yapısal kısıtlamalar (min, max) kullanmaktadır. Halbuki bir önceki örnek toptan ve kısmi kısıtlamaları kullanmaktadır. ŞEKİL 2.6 - Üçlü ilişkiye örnek ER diyagramı Bu örnek üçlü ilişkiyi göstermektedir. Bu üçlü ilişkiyi nesne tiplerinin ayrı ayrı ikili ilişkileri ile gösteremezsiniz. Yani aşağıdaki örnek yukarıdaki üçlü ilişki ile aynı değildir. ŞEKİL 2.7 - Üçlü ilişki (şekil 2.6) ile aynı olmayan bir başka gösterim ER tasarımı subjektiftir. Yani verilen bir senaryoyu bir çok değişik şekilde tasarlamak mümkündür. 23

Alternatif tasarımları analiz etmek (özellikle büyük çaptaki uygulamaların tasarım alternatiflerini analiz etmek) oldukça zor olabilir. Birbirinin alternatifi olabilecek bazı ER kavramlarını şöyle sıralayabiliriz: Nesne-nitelik, nesne-ilişki, ikili-üçlü ilişkiler, ISA hiyerarşisi, birleşik nitelik, vs. İyi bir veritabanı tasarımı elde edebilmek için, elde edilecek olan ilşkisel veri modeli analiz edilmeli ve daha iyi bir duruma getirilmelidir. Fonksiyonel Bağımlılık(FB) bilgisi ve normalizasyon teknikleri (ilerideki bölümlerde anlatılacak) özellikle çok faydalıdır ve veritabanı tasarımını bu tekniklere göre yapmak gerekir. 2.6 ER Diyagramında IS-A Hiyerarşisi Bazı karmaşık uygulamalarda ER nin şimdiye kadar tartıştığımız yapıları yeterli olmayabiliyor. Bundan dolayı ER modeli genişletilmiş ve IS-A hiyerarşileri modele dahil edilmiştir. Bu kısımda sadece IS-A hiyerarşilerinin ER modeline dahil edilmesini çalışacağız. Eğer A IS-A B olarak tanımlanırsa, bunun anlamı her A nesnesi bir B nesnesi olarak da düşünülebilecektir. Örnek: ŞEKİL 2.8 - Örnek ISA diyagramının ER'da gösterimi Bu örnekte her kontratlı çalışan ile saatli çalışan aynı zamanda bir çalışan nesnesidir ve çalışan nesne-tipine ait olan niteliklerin hepsi (no, isim, yaş) aynı zamanda kontratlı çalışan ve saatli çalışan nesnelerin de nitelikleridir. Bu kalıtım (inheritance) yoluyla IS- A hiyerarşisi durumunda daha genel nesne tipinden (üst sınıf) özeline (alt sınıf) geçer. IS-A kullanmanın bazı nedenleri arasında şunları sayabiliriz: Bir alt sınıfa özel açıklayıcı nitelikler eklemek durumu gerekli olduğunda, Bir ilişkinin parçası olacak olan nesneleri tanımak gerekli olduğunda, ISA kullanmak modelimizin anlaşılmasını kolaylaştırır. 24

3. Fiziksel Veri Tabanı Modellemesi 3.1 Fiziksel Veri Tabanına Giriş 3.1.1 Genel Bilgiler VTYS bilgileri ikincil hafıza olan yan bellekte (hard diskte) tutar. VTYS nin verileri yan bellekte tutmasının bazı sonuçları vardır. Bunlar; READ: Verilerin yan bellekten (hard disk) ana belleğe (RAM) transfer edilmesi. WRITE: Verilerin ana bellekten yan belleğe transfer edilmesi. Bu iki operasyon da ana bellek için operasyonlarla karşılaştırılırsa oldukça pahalıdır. Bundan dolayı çok iyi planlanmalıdır. Bu durumda neden tüm veriler ana bellekte tutulmuyor diye sorulabilir. Bunun nedenlerini şöyle sıralayabiliriz: Ana bellekte veri tutmanın masrafı çok fazladır. Örneğin 128 MB ana bellek satın alınabilirken aynı fiyata 8GB disk alınabilir. Ana bellek geçicidir (volatile). Verileri yürütmeler esnasında kaybetmek istemeyiz. Tipik depolama hiyerarşisi şu şekildedir: RAM halihazırda kullanılan veriler içindir. (ana bellek) Disk ana veritabanı içindir. (ikincil bellek) Teypler verilerin eski versiyonlarını tutmak içindir. (üçüncül bellek) Disklerde veriler disk blokları ya da sayfalar halinde tutulur ve alınırlar. Ana bellekten farklı olarak bir disk sayfasını alıp getirmenin masrafı o sayfanın diskteki yerine bağlıdır. Dolayısıyla sayfaların diskte relatif yerleştirildiği yerler VTYS nin performansına en fazla etki eden faktördür. Bir disk sayfasına ulaşmanın (READ ve WRITE) zamanı üç değişik zamanın toplamıyla bulunur. Arama zamanı (seek time disk kolunun hareketi için gerekli zaman) 25

Dönme zamanı (rotational time disk blokunun disk başının altına gelmesi için gerekli zaman) Transfer zamanı (transfer time verinin disk yüzeyine/yüzeyinden hareketi için gerekli zaman) Arama ve dönme için geçen süre tüm süreyi en fazla etkileyen süredir. Örneğin arama zamanı 1 ile 20 msec arasında değişirken, dönme süresi 0 ile 10 msec ve transfer süresi her 4 KB sayfa için 1 msec dir. Bu süreler teknolojinin gelişmesiyle değişmektedir, ancak göreli hız farklılıkları hala benzerdir. Bu durumda I/O masrafını azaltmanın anahtarı arama/dönme gecikme sürelerini azaltmaktır. Diskte sayfaları yerleştirme biçimi I/O masrafını azaltmakta etkili olabilmektedir. Örneğin bir sonraki bloğun aynı iz(track) üzerinde olması, bir kütükteki blokların ardarda yerleştirilmesi arama ve dönme gecikmesini en aza indirir. Buna ilave olarak eğer bir ardısıra (sequential) bakma yöntemi kullanılıyorsa, bir anda birkaç sayfanın önceden alınması masrafın azaltılmasında etkili olur. VTYS nin en alt seviyede yönettiği diskteki alanlardır. Daha yukarıdaki seviyelerdeki çağırma sayfayı tahsis etmek/geri tahsis etmek (allocate/deallocate) sayfayı oku/yaz Yüksek seviyelerde sayfaların tahsis istekleri belirtilir ve bunun nasıl yapıldığının, boş alanların nasıl yönetildiğinin bilinmesine gerek yoktur. Bir VTYS de ara bölge (ya da tampon - buffer) yönetimi veri tabanının performansını artıran bir yaklaşımdır. ŞEKİL 3.1 - VTYS'de tampon alanı 26

Popüler yerleştirme stratejilerinden; en az son zamanlarda kullanılan (least recently used, LRU) en son kullanılan (most recently used, MRU) günümüzde kullanılan en önemli yerleştirme stratejileridir. 3.1.2 Fiziksel Veri Tabanı Tasarımı Fiziksel veri tabanı tasarımı veri tabanının etkin bir şekilde işlenebilmesini sağlayan belirli bir veri organizasyon tekniğini seçmeye dayanır. Diskin üzerinde toplanan veriler kayıtların kütükleri olarak organize edilirler. Kayıtlar disk üzerinde öyle bir depolanmalıdır ki onlara gereksinim duyulduğunda onları bulup getirmek hızlı olabilsin. Birbiriyle ilgili olan değerlerden oluşan kayıttaki her değer kayıtın belirli bir alanına karşılık gelir ve birkaç byte yer tutar. Kayıtlar genellikle nesneleri, onların nitelikleri ve nesneler arasındaki ilişkileri tanımlarlar. Alanların isimleri onların karşılık geldiği tipler bir kayıt tipini ya da kayıt biçimi tanımını oluşturur. Bir veri tipi bir alanın alabileceği değeri belirler. Bunların en önemlileri şunlardır: - integer - long integer - real number } } } sayısal - sabit uzunluk - değişken uzunluk - boolean - tarih } } } } karakterler dizisi (string of characters) Bir kütük kayıtlardan oluşur ve kütük sabit uzunluklu kayıtlardan ya da değişken uzunluklu kayıtlardan oluşabilir. 27

ŞEKİL 3.2 - Kütükte kayıt yapıları Bir kütükte değişken uzunluklu kayıtların olması aşağıdaki nedenlerden dolayı gereklidir. Çünkü: değişken uzunluktaki alanların olması tekrarlanan alanların olması seçenekli alanların olması farklı kayıt tiplerinin (eğer farklı tiplerin ilgili kayıtları bir arada tutuluyorsa) olması ŞEKİL 3.3 - Kayıtların alternatif bir gösterimi Blok (sayfa) Biçimi : Uzunluğu Sabit Kayıtlar Kayıt_no(kno) = <sayfa_no, yer#> ŞEKİL 3.4 - Değişik blok yapıları Kayıtların yer değiştirmesi boş alan yönetimi için kno değişmesini gerektirir. 28

Sayfa Biçimi : Uzunluğu Değişken Kayıtlar ŞEKİL 3.5 - Uzunluğu değişken kayıtların bir gösterimi Uzunluğu değişken kayıtları sayfa için yer değiştirebiliriz (kno yu değiştirmeden). Bundan dolayı sabit uzunluklu kayıtlara tercih edilebilirler. ŞEKİL 3.6 - Blokların kütükte organizasyonu - Eğer kayıtların sayfa sınırlarını aşmalarına izin verilmiyorsa buna aktarımsız (unspanned) organizasyon denir. - Eğer bir kayıt birden fazla bloğa taşınabiliyorsa buna aktarımlı (spanned) organizasyon denir. 1. Ardısıra (contigious) atama: Kütük blokları diskteki ardısıra bloklara atanır. Bu tür kütüklerden okumak kolay ancak kütüğün genişlemesi zordur. 2. Bağlantılı (linked) atama: Her kütük bloğu bir diğerine bağlanabilmek için bir göstergeye (pointer) sahiptir. Bu tür kütüklerin genişlemesi kolay ancak okuma işlemi yavaştır. 3. Ardısıralı disk bloklarının salkımlarının (clusters) birbiriyle bağlanması. 4. Dizinlenmiş (indexed) atama: Bir ya da daha fazla dizin blok gerçek kütük bloklarına işaret eden göstergeler içerirler. Bu yapıyla kayıtları niteliklerin değerini belirterek hızlı bir şekilde bulmak mümkündür. 29

5. Yukarıdakilerden oluşan kombinasyonlarla elde edilen teknikler vardır. Başarılı bir kütük organizasyonu özellikle kütüğe sık sık uygulayacağımız bütün kütük operasyonlarını (find (locate), read (get), findnext, delete, modify, insert, findall, findordered, reorganize, open, close) mümkün olduğunca hızlı yapmalıdır. 3.1.3 Kayıtların Kütükleri VTYS nin yüksek seviyelerinde kayıtlar ve kayıtların kütükleri üzerinde operasyon gerçekleştirilir. Kütük, kayıtların bir grubundan oluşmuş sayfaların toplamıdır. Kütüklerle kayıtların giriş, silme, değiştirme, bir kayıdı okuma ve tüm kayıtların üzerinden geçme gibi operasyonları gerçekleştirilebilir. Sıralanmamış (unordered) Kayıtların Kütüğü: En basit kütük yapısıdır. Yeni kayıtlar kütüğün sonuna eklenir. Yeni kayıt eklemek çok hızlıdır. Kayıt arama operasyonu linear aramayı gerektirir. Kayıt silme işlemi yavaştır. Sıralanmış (ordered) Kayıtların Kütüğü: Diskteki kütüğün kayıtları kayıttaki bir alanın değerine göre fiziksel olarak sıralanmıştır. Bu alana kütüğün sıralayan alanı (ordering field) denir ve bu tür kütüklere sıralanmış ya da sırasal (sequential) kütük adı verilir. Bazı avantajları: Sıralayan alan değer sırasına göre kayıtların okunması oldukça hızlı Sıralayan alan değer sırasına göre bir sonraki kayıtın bulunması oldukça hızlı Sıralayan alan değer üzerinde bir arama kriterine göre kayıtların aranması oldukça hızlı Bu tür kütüklerde kayıtların girme ve silme işlemi oldukça pahalıdır. Çünkü kayıtlar fiziksel olarak da sıralanmış olmak zorundadır. Bu işlemleri biraz hızlandırmak için bazı teknikler kullanılabilir: o Silinmiş işareti kullanmak ve belli periyotlarla kütüğü organize etmek. 30