btp_209_sat_vtys

36
BTP 209 SİSTEM ANALİZİ VE TASARIMI VERİ TABANLARI VE VERİ TABANI YÖNETİMİ Dr. Önder EYECİOĞLU 2012

Upload: lppeace

Post on 07-Dec-2015

6 views

Category:

Documents


2 download

DESCRIPTION

btp

TRANSCRIPT

Page 1: BTP_209_SAT_VTYS

BTP 209SİSTEM ANALİZİ VE TASARIMI

VERİ TABANLARI VE VERİ TABANI YÖNETİMİ

Dr. Önder EYECİOĞLU2012

Page 2: BTP_209_SAT_VTYS

VERİ TABANI VE VT YÖNETİMİ

Veri Tabanı (DB), birbiriyle ilişkili verileri yönetmek ve sunmak için kullanılantablolar, formlar, veri erişim sayfaları, sorgular ve raporlardan oluşannesneler topluluğudur.

Veriler ve bunlar arasındaki ilişkileri de içerir. Veri hiyerarşisinin en üstündekiyapıdır.

Page 3: BTP_209_SAT_VTYS

Veri yönetimi yaklaşımları

Verinin yönetilmesinde iki yaklaşımdan söz edilebilir.

i) Geleneksel Yaklaşım ii) Veritabanı (VT) Yaklaşımı

i. Geleneksel yaklaşım:

Bu veri yönetimi yaklaşımı, dosya kökenlidir. Bu yaklaşımda her bir uygulama kendi dosyalarıyla yürütülmektedir.

Page 4: BTP_209_SAT_VTYS

Veri yönetimi yaklaşımları

Geleneksel yaklaşımın dezavantajları. Veri tekrarlılığı, Dosyalar arası kopukluk,

Program/veri bağımlılığı

ii.) Veritabanı (VT) yaklaşımı:

Bu yaklaşımda, her bir uygulama, birleştirilmiş veri dosyalarını kullanmaktadır. Yani veri dosyaları birleştirilmiştir. Bu yaklaşım, verinin birden fazla programca kullanılmasına izin veren bir yaklaşımdır.

Page 5: BTP_209_SAT_VTYS

Veri yönetimi yaklaşımları

Veri yönetiminde, VT yaklaşımın kullanmak için ilave bir yazılım yani Veri Tabanı Yönetim Sistemi gerekir.

VTYS, bir organizasyonun, veriyi merkezileştirmesine, onları etkin bir şekildeidare etmesine ve saklanmış veriye uygulama programlarınca erişilmesineolanak tanıyan bir yazılımdır. VTYS, uygulama programları ile fiziksel veritabanı arasında bir arayüz olarak görev yapmaktadır.

• Filemaker

• MySQL

• PostgreSQL

• Oracle

• Sybase

• MsSQL

• Berkeley

• Firebird

• Ms access

Page 6: BTP_209_SAT_VTYS

VERİ TABANLARI (DB)

VT Faydaları

• Verileri tekrarını ortadan kaldırır

• Kaynakların daha verimli kullanılmasını sağlar.

• Sorgulamaya olanak sağlar

• Veri bütünlüğü sağlar ve veriler arası ilişkiyi gösterir.

VT uygulamaları iki temel türe ayrılır.

• Düz-dosya VT

• İlişkisel (Relational- RDBMS)

Page 7: BTP_209_SAT_VTYS

1. Düz - Dosya VT

Page 8: BTP_209_SAT_VTYS

2. İlişkisel VT

İlişkisel veri tabanı, birbirinden farkı tablolara yerleştirilmiş olan verilerinbirbirleri ile belirli alanlara göre ilişkilendirilerek düzenlenen veri tabanlarıdır.İlişkisel veri tabanı günümüzde en yaygın olarak kullanılan veri tabanı türüdür.

İlişkisel veri tabanlarında veriler tablolarda birbirleri ile ilişkili bir şekildesaklanmaktadır.

İlişkisel VT ;

• Tablolar

• Formlar

• Veri Erişim sayfaları

• Sorgular

• Raporlar dan oluşur

İlişkisel veri tabanları birden fazla tablodan oluşabilir. Tablolar ise satır vesütunlardan oluşur. Tablolarda satır ve sütunların kesiştiği noktaya ise “hücre”adı verilir. Tablo içerisindeki satırlar tablonun kayıtlarını oluşturur. Anahtaralan ise tablonun tanımlayıcısı niteliğindedir.

Page 9: BTP_209_SAT_VTYS

2. İlişkisel VT

Tabloların özellikleri.

• Tablolar satır ve sütunlardan oluşur.

• Her sütunun alacağı isim birbirinden farklı olmalıdır.

• Her satır birbirinden farklı olmalıdır yani birbiri ile tamamen ayni olan iki kayıt kullanılmamalıdır.

• Satırların ve sütunların sırasının nasıl olacağı önemli değildir.

• Hücrelerdeki veriler atomik olmalıdır.

Page 10: BTP_209_SAT_VTYS

2. İlişkisel VT

İlişkiler:

Varlıklar arasındaki bağlantıdır. Bir yada daha fazla varlık arasında olabilir.

Page 11: BTP_209_SAT_VTYS

2. İlişkisel VT

İlişkilerin Türleri:

• Birden - Bire

• Birden - Çoğa

• Çoktan - Bire

• Çoktan - Çoğa

1. Birden – bire İlişki:

Page 12: BTP_209_SAT_VTYS

2. İlişkisel VT

2. Birden – Çoğa İlişki: 4. Çoktan – Çoğa İlişki:

3. Çoktan – Bire İlişki

Page 13: BTP_209_SAT_VTYS

2. İlişkisel VT

Kısıtlamalar

Bir veri tabanında depolanan bilgiler arasında bir bütünlük olması yani verilerin birbirleri ile uyumlu olması gerekmektedir. Böylelikle veriler arasında kopukluk olmayacak, geçerli bir veritabanı oluşturulmuş olacaktır.

Bütünlük kısıtlamaları, veri tabanında depolanacak verileri kısıtlayan koşullar olarak adlandırılır. Bir veritabanına kısıtlamalar uygulanarak sadece geçerli verilerin depolanmasını sağlayabiliriz.

1.3.2.1. Anahtar Kısıtlamaları

Birincil anahtar(primary key) veya yabancı anahtar(foreign key) türlerinden birisi seçilerek kısıtlamaların gerçekleştirilmesi sağlanmaktadır.

Page 14: BTP_209_SAT_VTYS

2. İlişkisel VT

İlişkisel yapıyı kullanan veritabanlarının diğer temel özellikleri:

• Sorgulama özelliği bir uygulama programı kullanılmaksızın bir üst düzey dilin özel komutları ile veri tabanından bilgi çekilmesini sağlar.

• Raporlama özelliği sorgulama sonuçlarının sorgulama sonuçlarının ekran görünüşlerini ya da rapor formatının düzenlenmesini sağlar.

Page 15: BTP_209_SAT_VTYS

NORMALİZASYON

• İlişkisel veri tabanları tasarlanırken verilerin gereksiz tekrarını, bilgilerinkaybını önlemek amacıyla normalizasyon işlemi uygulanması gerekir.Normalizasyon işlemi uygulanarak da ilişkilerin normal forma getirilmesisağlanır.

• İyi tasarlanmamış olan bir veri tabanında güncelleme, ekleme veyasilmeden kaynaklanan sapmalar nedeniyle birtakım kullanım zorluklarımeydana gelmektedir. Normalizasyon, veri tabanı tasarımında bu türsapmaların da ortadan kaldırılmasını sağlayan bir süreç olarak daadlandırılabilir.

• Normalizasyon genel anlamda, veri tekrarını önlemek ve veri tutarlılığınıyükseltmek için verilerin tek bir tabloda toplanması yerine mantıksalbütünlüğe sahip verilerden oluşan bir alt tablolar oluşturup bunlarıanahtar sütunlar ile birbirleri ile ilişkilendirmektir.

• Normal formların 1NF, 2NF 3NF …. Gibi safhaları vardır. Her normal formdaha güçlü yani daha az veri tekrarı içerir.

• Temel ilişkisel VT da hedef 3NF dir.

Page 16: BTP_209_SAT_VTYS

NORMALİZASYON

Veri fazlalığı, mutlak veri fazlalığı ve gereksiz veri tekrarı olarak ortaya çıkar..

1. Mutlak Veri Fazlalığı:

Veri Fazlalığı:

Page 17: BTP_209_SAT_VTYS

NORMALİZASYON

• R bir ilişki şeması, X ve Y nitelik kümeleri ise R’nin alt kümeleri olsun (X ⊆R, Y ⊆ R).

• Eğer X nitelik kümesinin değerleri Y nitelik kümesinin değerlerini belirliyorsa (X’in her farklı değeri Y’nin belirli bir değerine karşılık geliyorsa); “Y niteliği X niteliğine işlevsel bağımlıdır” denir ve “X → Y” şeklinde gösterilir.

• X’ten bir nitelik çıkarıldığı halde bu bağımlılık hâlâ geçerli ise kısmi bağımlılık (partial dependency) söz konusudur.

İşlevsel Bağımlılık

Page 18: BTP_209_SAT_VTYS

NORMALİZASYON

• Aynı tablodaki yinelenen grupları kaldırın.

• Her bir ilgili veri kümesi için ayrı bir tablo oluşturun.

• Her bir ilgili veri kümesini bir birincil anahtarla tanımlayın.

1NFN

orm

alle

şmem

iş T

ablo1

NF Tab

lo

müşteri_no şehir_kodu şehir_adı gönderi_no miktar

1 34 İstanbul 1,2,3,4,6 300,200,400,200,100

2 6 Ankara 1,2 300,400

3 6 Ankara 2 200

4 34 İstanbul 2,4,5 200,300,400

müşteri_no şehir_kodu şehir_adı gönderi_no miktar

1 34 İstanbul 1 300

1 34 İstanbul 2 200

1 34 İstanbul 3 400

1 34 İstanbul 4 200

1 34 İstanbul 6 100

2 6 Ankara 1 300

2 6 Ankara 2 400

3 6 Ankara 2 200

4 34 İstanbul 2 200

4 34 İstanbul 4 300

4 34 İstanbul 5 400

Page 19: BTP_209_SAT_VTYS

NORMALİZASYON

1NF Özellikleri

• Tüm anahtar özellikler tanımlanmıştır

• Tabloda tekrarlanan gruplar yoktur Yani her satır ve sütunun kesiştiği noktada sadece bir değer bulunmaktadır.

• Tüm özellikler birincil anahtara bağımlıdır

1NF Sorunları

• Satır ekleme sorunu:

• Satır Silme Sorunu:

• Güncelleştirme sorunu:

1NF

Page 20: BTP_209_SAT_VTYS

NORMALİZASYON

Veri tabanı tasarımı sırasında birinci normal formun neden olduğu birtakımsorunları çözmek için 1NF daki tabloyu başka normal tablolara bölmemizgerekir. Tablolar bölünürken fonksiyonel bağımlılık göz önündebulundurulmalıdır.

• Birden çok kayıt için geçerli olan değer kümeleri için ayrı tablolar oluşturun.

• Bu tabloları bir yabancı anahtarla ilişkilendirin.

• Kayıtlar bir tablonun birincil anahtarı (gerekirse bir bileşik anahtar) dışında bir öğeye bağımlı olmamalıdır.

• İlişkisel tablonun her bir anahtar olmayan sütunu birincil anahtara kısmi bağımlı değil, tam işlevsel bağımlı olmalıdır.

2NF

Page 21: BTP_209_SAT_VTYS

NORMALİZASYON 2NF

müşteri_no gönderi_no miktar

1 1 300

1 2 200

1 3 400

1 4 200

1 6 100

2 1 300

2 2 400

3 2 200

4 2 200

4 4 300

4 5 400

müşteri_no şehir_kodu şehir_adı

1 34 İstanbul

2 6 Ankara

3 6 Ankara

4 34 İstanbul

müşteriler

miktarlar

DAĞITIM(müşteri_no, şehir_kodu, şehir_adı, gönderi_no, miktar)MÜŞTERİLER(müşteri_no, şehir_kodu, şehir_adı)MİKTARLAR(müşteri_no, gönderi_no, miktar)

Page 22: BTP_209_SAT_VTYS

NORMALİZASYON 2NF

Page 23: BTP_209_SAT_VTYS

NORMALİZASYON

2NF Özellikleri

2NF’de,1NF’den farklı olarak tablolar tekrarlı verilerden arındırılmış olup,anahtar olmayan tüm sütunlar, birincil anahtara tam işlevsel bağımlıdır.

2NF Sorunları

İkinci normal formda ekleme ve silme işlemleri sırasında birtakım sorunlarlakarşılaşılabilmektedir. Birinci normal formdaki güncelleme sorunu 2NF’yedönüştürme işlemi ile çözülmüştür.

• Satır ekleme sorunu: Satır Silme Sorunu

2NF

Page 24: BTP_209_SAT_VTYS

NORMALİZASYON

• Kısmi işlevsel bağımlılıklar ortadan kaldırılarak birinci normal formdakisıkıntıları çözmüştük. İkinci normal form ile ortaya çıkan sıkıntılarıçözebilmek için ise nitelikler arasındaki geçişli fonksiyonel bağımlılıklarıortadan kaldırmamız gerekmektedir. .

• Bir tablodaki veriden başka bir tabloda bulunan aynı veri üzerinden ilişkilidiğer bir veriye ulaşıp, ulaştığımız veriyi kullanarak üçüncü bir tablodafarklı bir veriye erişebiliyorsak bu işlemi geçişli fonksiyonel bağımlılıkolarak adlandırırız.

3NF

Page 25: BTP_209_SAT_VTYS

müşteri_no gönderi_no miktar

1 1 300

1 2 200

1 3 400

1 4 200

1 6 100

2 1 300

2 2 400

3 2 200

4 2 200

4 4 300

4 5 400

şehir_kodu şehir_adı

6 Ankara

34 İstanbul

35 İzmir

müşteri_no şehir_kodu

1 34

2 6

3 6

4 34

5 35

şehirler miktarlar

müşteriler

NORMALİZASYON 3NF

Page 26: BTP_209_SAT_VTYS

NORMALİZASYON 3NF

Page 27: BTP_209_SAT_VTYS

NORMALİZASYON

3NF Özellikleri

3NF özelliğindeki tablolar hem 2NF’nin özelliklerine sahip olmalı hem de geçişli fonksiyonel bağımlılığı bulunmamalıdır.

ÖZEL DURUM: Üçüncü normal form teorik olarak istense de her zaman uygulanabilir değildir. Bir Müşteriler tablonuz varsa ve tüm olası alanlar arası bağımlılıkları kaldırmak isterseniz şehirler, posta kodları, satış temsilcileri, müşteri sınıfları ve birden çok kayıtta yinelenebilecek tüm diğer öğeler için ayrı tablolar oluşturmalısınız. Teorik olarak, normalleştirme yapılması doğrudur. Ancak çok sayıda küçük tablo nedeniyle performans düşebilir veya açık dosya ve bellek özellikleri yetersiz kalabilir. Üçüncü normal formun yalnızca sık sık değişen verilere uygulanması daha uygun olabilir. Bazı bağımlı alanlar kalacaksa, uygulamanızı kullanıcıdan herhangi bir alan değiştiğinde tüm ilgili alanları doğrulamasını isteyecek biçimde tasarlayın.

3NF

Page 28: BTP_209_SAT_VTYS

NORMALİZASYON

3NF Sorunları

• Tablodaki ilişki 3NF şeklinde olup birtakım sorunları mevcuttur. Bir öğrenci birden çok ders alabileceği gibi, bir derse birden fazla öğretmen girebilmektedir. Öğrenci birden çok ders alabileceği için, ÖğrNo anahtarı Dersi belirleyemeyecektir. Aynı şekilde ÖğrNo anahtarı da Ders Öğretmenini belirleyemeyecektir.

• 3 NF’de karşılaşılan sorunları önlemek için Boyce-Codd normal formunu (BCNF) elde etmeye çalışmamız gerekir.

3NF

Page 29: BTP_209_SAT_VTYS

ÖğrNo Bölüm Danışman

123 Fizik A. ERCAN

123 Kimya M. AKINCI

456 Biyoloji K. SÖNMEZ

789 Fizik A. ERCAN

999 Kimya B. ÖZKAN

• Her belirleyicinin bir anahtar oluşu halidir.

• Örnek olarak aşağıdaki ilişkiyi düşünelim:

ÖĞRENCİ(ÖğrNo, Bölüm, Danışman)

öğrenci

NORMALİZASYON Boyce-Codd Normal Formu

Page 30: BTP_209_SAT_VTYS

ÖğrNo Bölüm Danışman

123 Fizik A. ERCAN

123 Kimya M. AKINCI

456 Biyoloji K. SÖNMEZ

789 Fizik A. ERCAN

999 Kimya B. ÖZKAN

1NF ?

2NF ?

3NF ?

EVET (bütün niteliklerin aldığı değerler atomik)

EVET (kısmi bağımlılık yok)

EVET (geçişli bağımlılık yok)

NORMALİZASYON Boyce-Codd Normal Formu

Page 31: BTP_209_SAT_VTYS

ÖğrNo Bölüm Danışman

123 Fizik A. ERCAN

123 Kimya M. AKINCI

456 Biyoloji K. SÖNMEZ

789 Fizik A. ERCAN

999 Kimya B. ÖZKAN

• Her üç normal formu da sağlıyor. Sorun var mı?

• EVET

1. 456 numaralı öğrenci silinirse Biyoloji ve K.SÖNMEZ yok olacak

2. Bir öğrenci Matematik bölümüne kayıt olana kadar bu bölüm var olmayacak.

NORMALİZASYON Boyce-Codd Normal Formu

Page 32: BTP_209_SAT_VTYS

Çözüm: Belirleyicileri anahtar yap

ÖğrNo Bölüm Danışman

123 Fizik A. ERCAN

123 Kimya M. AKINCI

456 Biyoloji K. SÖNMEZ

789 Fizik A. ERCAN

999 Kimya B. ÖZKAN

• Birincil Anahtar:

– (ÖğrNo, Bölüm)

• Aday Anahtar:

– (ÖğrNo, Danışman)

• İşlevsel Bağımlılıklar:

– (ÖğrNo, Bölüm) → Danışman

– Danışman → Bölüm

Belirleyiciler

NORMALİZASYON Boyce-Codd Normal Formu

Page 33: BTP_209_SAT_VTYS

ÖğrNo Bölüm Danışman

123 Fizik A. ERCAN

123 Kimya M. AKINCI

456 Biyoloji K. SÖNMEZ

789 Fizik A. ERCAN

999 Kimya B. ÖZKAN

öğrenci

öğrenci_danışman

ÖğrNo Danışman

123 A. ERCAN

123 M. AKINCI

456 K. SÖNMEZ

789 A. ERCAN

999 B. ÖZKAN

danışman_bölüm

Danışman Bölüm

A. ERCAN Fizik

M. AKINCI Kimya

K. SÖNMEZ Biyoloji

B. ÖZKAN Kimya

NORMALİZASYON Boyce-Codd Normal Formu

Page 34: BTP_209_SAT_VTYS

• NF: Normal olmayan form• 1NF: Bütün alan değerleri atomik ise R 1NF’de• 2NF: R 1NF’de ise ve anahtar olmayan tüm nitelikler anahtara tam bağımlı

ise R 2NF’de• 3NF: R 2NF’de ise ve anahtar olmayan tüm nitelikler anahtara geçişsiz

bağımlı ise R 3NF’de• BCNF: Her belirleyici bir aday anahtar ise R BCNF’de

Belirleyici: Başka bir niteliğin tam işlevsel bağımlı olduğu nitelik

NORMALİZASYON ÖZET

Page 35: BTP_209_SAT_VTYS

NORMALİZASYON Örnek

Ö.NO Ö.AD Ö.SOYAD DERS_NO DERS_ADI VIZE FINAL H.NO H.AD H.SOYAD

2001001 Ahmet Solmaz 202 Matematik 2 70 60 11 Özlem UÇAR

2001001 Ahmet Solmaz 203 Fizik 2 80 40 11 Özlem UÇAR

2001001 Ahmet Solmaz 204Bilgisayar Mühendisliğine

Giriş 260 45 3 Aydın CARUS

2001001 Ahmet Solmaz 205Atatürk İlkeleri ve İnkılap

Tarihi 290 95 9 Zeki DURMUŞ

2001001 Ahmet Solmaz 206 Türk Dili 2 70 75 12 Nebahat YILDIZ

2001005 Seyhan Gülmez 202 Matematik 2 80 95 11 Özlem UÇAR

2001005 Seyhan Gülmez 203 Fizik 2 80 70 11 Özlem UÇAR

2001005 Seyhan Gülmez 204Bilgisayar Mühendisliğine

Giriş 260 70 3 Aydın CARUS

2001002 Selim Solmaz 702 Veri Tabanı Yönetimi 60 50 6 Altan MESUT

2001003 Ahmet Vardar 702 Veri Tabanı Yönetimi 60 60 6 Altan MESUT

2001004 Sezai Kantar 702 Veri Tabanı Yönetimi 65 55 6 Altan MESUT

Page 36: BTP_209_SAT_VTYS

NORMALİZASYON Örnek

• Verilen şema 1. Normal Formda (atomik değerler)

– OKUL (Ö.No, Ö.Ad, Ö.Soyad, Ders_No, Ders_Adı, Vize, Final, H.No, H.Ad, H.Soyad)

• 2. NF’ye geçerken kısmi bağımlılıklar ortadan kaldırılır

– NOTLAR(Ö.No, Ders_No, Vize, Final)

– ÖĞRENCİLER(Ö.No, Ö.Ad, Ö.Soyad)

– DERSLER(Ders_No, Ders_Adı, H.No, H.Ad, H.Soyad)

• 3. NF’ye geçerken geçişli bağımlılıklar ortadan kaldırılır

– NOTLAR(Ö.No, Ders_No, Vize, Final)

– ÖĞRENCİLER(Ö.No, Ö.Ad, Ö.Soyad)

– DERSLER(Ders_No, Ders_Adı, H.No)

– HOCALAR(H.No, H.Ad, H.Soyad)