VERİTABANI ORGANİZASYONU. Neslihan GENÇ BiliĢim Teknolojileri Öğretmeni

Benzer belgeler
BMB202. Veritabanı Yönetimi Ders 4. Normalizasyon. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

İşlevsel Bağımlılık. DAĞITIM (müşteri_no, şehir_kodu, şehir_adı, gönderi_no, miktar)

BTP 209 SİSTEM ANALİZİ VE TASARIMI

1 Temel Kavramlar. Veritabanı 1

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

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

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

VERİTABANI ORGANİZASYONU

2. NORMALİZASYON. Normalizasyon, taslak veri tabanı üzerinde birtakım işlemler yapılarak taslağı son haline yaklaştırma yöntemidir.

VERİTABANI DERS NOTLARI

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

1 Temel Kavramlar. Veritabanı 1

2 Temel Kavramlar (Devam) Veritabanı 1

Veri Tabanı Hafta Dersi

İLİŞKİSEL VERİTABANLARI

Tekrar. Veritabanı 2

Veri Tabanı Hafta Dersi

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

Fonksiyonel(İşlevsel) Bağımlılık

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

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar

VERİ TABANI SİSTEMLERİ

KISITLAMALAR (CONSTRAINT)

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

VERİTABANI Veritabanı Normalizasyonu

VERİTABANI YÖNETİMİ. Veritabanı Normalizasyonu 5.HAFTA. Veritabanı Yönetimi Prof. Dr. İbrahim Çil

Veri Tabanı-I 2.Hafta

Veri Tabanı Tasarım ve Yönetimi

VERİ TABANI YÖNETİM SİSTEMLERİ. Öğr. Gör. Selçuk Özkan

BIM 312 Database Management Systems. Veritabanı Kavramına Giriş

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

SORGULAR VE ÇEŞİTLERİ II

UZAKTAN EĞİTİM MERKEZİ

BĠLĠġĠM TEKNOLOJĠLERĠ

Veri Tabanı-I 1.Hafta

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

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

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

YBS104 - VERİ TABANINA GİRİŞ. Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü

Veritabanı Uygulamaları Tasarımı

VERİ TABANI ve YÖNETİMİ

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

Veritabanı ve Yönetim Sistemleri

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

İnternet Programcılığı

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

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

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

BĐL378 - VERĐTABANI YÖNETĐM SĐSTEMLERĐ

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

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

Veri Tabanı-I 4.Hafta

Veri Tabanı Örnekleri

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

Veri Bütünlüğü ve Constraint ler. Veritabanı 1

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

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

08118 Veri Tabanı I. Database Management System. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr.Gör. Murat KEÇECĠOĞLU

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

VERİ TABANI UYGULAMALARI

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

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

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

VERİTABANI YÖNETİMİ. İlişkisel Veritabanı 4.HAFTA. Veritabanı Yönetimi Prof. Dr. İbrahim Çil

Veritabanı Tasarımı. Basit Eşleme: Dönüşüm İşlemi

Veritabanı, Veri Madenciliği, Veri Ambarı, Veri Pazarı

VERİTABANI & VERİTABANI YÖNETİMİ

1-Veritabanı Yönetim Sistemleri /Tanım

VERİTABANI VERİTABANIN AVANTAJLARI ÖZET

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

İlişkisel Veri Tabanları I

Veri Tabanı-I 1.Hafta

T.C. MALTEPE ÜNĠVERSĠTESĠ MÜHENDĠSLĠK FAKÜLTESĠ ENDÜSTRĠ MÜHENDĠSLĠĞĠ BÖLÜMÜ LĠSANS PROGRAMI Güz Yarıyılı

Veritabanı Tarihi. 1960s: Bilgisayarlar artan saklama kapasiteleri ile birlikte firmalar tarafından karşılanabilir hale gelmeye başladı

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

VERİTABANI Veritabanı Yönetimi

Veri Tabanı Hafta Dersi

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

10-Veri Tabanları.

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

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

Database Management System

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

SQL e Giriş. Uzm. Murat YAZICI

VERİTABANI Veritabanı Tasarımı

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Çok tablolu sorgulamalar

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Normalizasyon

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

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

SQL (Structured Query Language)

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

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

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

Üst Düzey Programlama

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

«BM364» Veritabanı Uygulamaları

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

VERİSETİ ORGANİZASYONU. Dr. Cahit KARAKUŞ

Transkript:

VERİTABANI ORGANİZASYONU Neslihan GENÇ BiliĢim Teknolojileri Öğretmeni

VERİ (DATA) Daha küçük parçalara bölünemeyen, tek baģına bir anlam ifade etmeyip bir baģlık altında toplanınca anlam ifade bilgi parçacıkları. Dağınık bilgi kümesidir. Veri, anlamlı bir Ģekilde düzenlendiği zaman yararlı bilgi olur. Veri kaydedilebilir bilinen gerçeklerdir. 2

VERİTABANI (DATABASE) Verilerin düzenli bir Ģekilde elektronik ortamda saklandığı dosyalardır. Birbiri ile iliģkili veriler topluluğudur. Ya da, daha detaylı bir tanımla; veriyi yönetmek ve sunmak için kullanılan tablolar, formlar, veri eriģim sayfaları, sorgular ve raporlardan oluģan nesneler topluluğudur. Veritabanı sadece veriler yığınını değil, bunlar arasındaki iliģkiyi de inceler. 3

VERİTABANI (DATABASE) Bilgisayar ortamında saklanan düzenli verilerdir. Bilgisayar terminolojisinde, sistematik erişim imkanı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bilgisayarda sistematik Ģekilde saklanmıģ, programlarca iģlenebilecek veri yığınıdır 4

Veritabanı ile, VERİTABANI (DATABASE) Verilerinizi kaydedebilir, Verileriniz üzerinde sorgular yapabilir, Yeni veriler ekleyebilir, Mevcut verileri güncelleyebilir, Verileri silebilirsiniz. 5

Veritabanı Yönetim Sistemleri (VTYS) Database Management System (DBYS) Veri tabanı tanımlamak, yaratmak, yaģatmak ve veri tabanına denetimli eriģim sağlamak için kullanılan yazılım sistemidir. Bir veri tabanı oluģturup üzerinde çeģitli iģlemler yapılmasını sağlayan programlar topluluğudur. VTYS, kullanıcı ile veri tabanı arasında bir arabirim oluģturmaktadır ve veritabanına her türlü eriģimi sağlar. 6

VTYS ile Neler Yapabiliriz? Veritabanı oluģturabilir, Veritabanına yeni tablolar ekleyebilir, Verileri okuyabilir, Yeni veri ekleyebilir, Verileri güncelleyebilir, Verileri silebilir, Veriler arası iliģki sağlayabilir, Verilere eriģim hakkı tanıyabilir veya kısıtlayabilir, Verileri yedekleyebilir, Gerektiğinde verileri geri yükleyebiliriz. 7

Veritabanı Yönetim Sistemi (VTYS) VTYS ile kullanıcı arasındaki iliģki aģağıdaki Ģekilde gösterilmiģtir. Kullanıcı tarafından uygulama programı aracılığı ile VTYS ne gelen istek, VTYS tarafından değerlendirilmektedir. Ardından yerine getirilmek üzere bu istek veritabanına iletilir. Veritabanına gelen istek gerçekleģtirildikten sonra elde edilen sonuç tekrar VTYS ne iletilmektedir. Ardından sonuç yine uygulama programı aracılığı ile kullanıcıya iletilmektedir. 8

Belli Başlı VTYS leri Günümüzde kullanılan pek çok VTYS i vardır. Bunların orta ve büyük ölçekli olmak üzere birçok türü vardır. En yaygın olarak bilinenleri Ģunlardır. MS SQL Server Oracle Sybase Informix MySQL PostrageSQL MS Access Advantage DB/2 Progress 9

Neden Veritabanı Kullanılır? Bilgisayar ortamında veri saklama ve eriģiminde geçmiģten günümüze değiģik yöntemler ve yaklaģımlar kullanılmıģtır. Bunlardan Geleneksel YaklaĢım (Dosya - ĠĢlem Sistemi) verileri ayrı ayrı dosyalarda gruplamaya dayanır. Geleneksel YaklaĢımın birçok sakıncası vardır ve bu sakıncaların beraberinde getirdiği sorunların üstesinden gelebilmek için de Veri Tabanı YaklaĢımı zamanla Geleneksel YaklaĢımın yerini almıģtır. Günümüzde veriler artık Veri Tabanı YaklaĢımı ilkesine göre VTYS lerde tutulmakta ve iģlenmektedir. 10

a) Geleneksel Yaklaşım (Dosya Sistemi) ve Dezavantajları Veri saklama birimlerinde depolanan veri topluluklarına dosya adı verilmektedir. Dosyalar ise kendi içerisinden kayıtlara bölünmüģtür. Uygulamaları gerçekleģtirmek için genel amaçlı bir programlama dili kullanılır. 11

a) Geleneksel Yaklaşım (Dosya Sistemi) ve Dezavantajları Veri tekrarı: Aynı veri çeģitli dosyalarda birden fazla yer alabilmektedir buda sistemin hantallaģmasına neden olur. Mesela bir stok dosyasında stok numarası verisinin malzeme dosyasında, fatura dosyasında ve ambar giriģi dosyasında yer alması gibi. Verinin birkaç dosyada güncellemesi: Veri birden fazla dosyada tekrar edilebildiği için, verinin bir dosyada güncellenip diğerlerinde güncellenmemesi Veri Bütünlüğünün (Data Integrity) bozulmasına neden olabilir. Buna bağlı olarak birbiri ile çeliģen raporlar üretilebilir. Belleğin tekrarlı bilgi nedeniyle israfı: Aynı verinin birden fazla dosya içinde bulunması nedeniyle kullanılan veri hard diskte fazla yer iģgal edecek. Yani hard disk tekrarlı veriler için kullanılmıģ olacaktır. Sadece belirli bir dilin kullanılması :Verilerin dosya sisteminde saklandığı ortamlar için değiģik programlama dillerinden bir tanesi kullanılır. Kullanılan bu programlama dili ise SQL dili gibi esnek değildir. Uygulamalardaki her yeni gereksinimin ve değiģikliğin yalnız uzman kiģiler tarafından karģılanabilmesi. Veriye eriģim ve istenen veriyi elde etme güçlükleri KarmaĢık veri saklama yapıları ve eriģim yöntemlerini bilme zorunluluğu Güvenlik, gizlilik sorunları Tasarım farklılıkları, standart eksikliği Yedekleme, yeniden baģlatma, onarma gibi iģletim sorunları 12

b) Veritabanı Yaklaşımı ve Avantajları Veritabanı, veri kümelerinin düzenli biçimde tutulduğu ve bu verilerin yazılımlar aracılığı ile yönetildiği ortamlardır. 13

b) Veritabanı Yaklaşımı ve Avantajları Gereksiz yere veri tekrarını önler. Bu sağlamasının nedeni verilerin belli bir iliģki dahilinde tutulmasından kaynaklanmaktadır. Dolayısı ile veriler farklı tablolara tekrar tekrar yazılmamaktadır. Veri tekrarı olmadığı için bellek ve hard disk israfını önlemektedir. Aynı verilerin baģka kullanıcılar tarafından paylaģılmasını sağlamaktadır. Verilerin bütünlüğünü sağlamak için birçok mekanizmanın kurulmasını sağlar. Güvenlik ve gizlilik istenilen düzeyde ayarlanabilmektedir. Uygulama programlarından bağımsız olarak çalıģmaktadır. Verilerin yedeklenmesi, onarılması ve istenilen çözümlerin yerine getirilmesi oldukça kolaydır. Her kullanıcıya yalnız ilgilendiği verilerin, alıģık olduğu kolay, anlaģılır yapılarda sunulur. Sunulan çözümleme, tasarım ve geliģtirme araçları ile uygulama yazılımı geliģtirme kolaylaģmaktadır. 14

VTYS lerin Sağladığı Yararlar Veri Tekrarı: Aynı veriler değiģik bilgisayarlarda tekrar tekrar tutulmak zorunda değildir. Dolayısı ile verilerin tekrarı azaltılmıģ olur. Veri Tutarlılığı: Herhangi bir tabloda güncellenen bir bilgi baģka bir yerde güncellenmemiģ olabilir. Böyle bir durum verilerin tutarsızlığına neden olabilir. Bu nedenle bir tabloda güncellenen bir bilgi baģka bir tabloda da güncellenmek zorundadır. Veri PaylaĢımı / EĢzamanlılık: Bir VTYS de bir veritabanına saniyede yüzlerce kez bağlanılabilir. Bu iģlem sırasında veritabanının bütünlüğü ve tutarlılığı bozulmamalıdır. Veri Bütünlüğü: Bir tablodan herhangi bir kayıt silinirse bununla iliģkili olan diğer kayıtlarda tüm tablolardan silinmelidir. Aksi halde verilerin bütünlüğü sağlanamamıģ olur. 15

VTYS lerin Sağladığı Yararlar Veri Güvenliği: Verilerin yanlıģ kullanım sonucu zarar görmelerini engellemek için çok kapsamlı mekanizmalar mevcuttur. Veri Bağımsızlığı: Bir verinin fiziksel olarak temsili, bulunduğu yer ve verinin kullanımı birbirinden bağımsızdır. Bir uygulamanın veritabanının veriyi nasıl ve nerede depoladığını bilmesi gerekmez. Uygulama sadece istekte bulunur. Ayrıca veritabanı üzerinde tablo ekleme, silme gibi iģlemlerden uygulama programı etkilenmemelidir. 16

Veri Modeli Veri modeli, bir veritabanının yapısını tanımlamak için kullanılan kavramlar kümesidir. Veri Ģeması ise, bir veri topluluğunun modellenmesi sırasında verilen veri modelini kullanarak belirli bir veri topluluğunun tanımlanmasına verilen isimdir. Bir veri modeli, verinin hangi kurallara göre yapılandırıldığını belirler. 17

Veri Modeli Çeşitleri Birden fazla veri modelleme biçimi vardır. Bunlar; HiyerarĢik Veri Modeli ĠliĢkisel Veri Modeli Ağ Veri Modeli Nesneye Yönelik Veri Modeli 18

1. Hiyerarşik Veri Modelleri 1960 lı yıllarda ortaya atılan bir modeldir. Bir ağaç yapısına benzemektedir. Bütün veriler bir ağaç yapısında saklanmaktadır. Ġlk olarak IBM tarafından kullanılmıģtır. En üste kök ve kökün dalları bulunur. Ayrıca her dalın alt dalı sayesinde dallanma ve çeģitlilik artar. Bu modelde her bir alt dalın sadece bir tane noktadan bağlanma Ģartı bu modelin en büyük kısıtlamalarından biridir. HiyerarĢik veri modellerinde çoklu iliģkileri temsil edebilmek için, varlık tiplerinin her iliģki için ayrı ayrı tanımlanması gerekir. Bu da gereksiz veri tekrarına sebep olur. 19

1. Hiyerarşik Veri Modelleri 20

2. Ağ Veri Modeli 1970 lı yıllarda ortaya atılan bir modeldir. HiyerarĢik modelin yetersiz kalmasından dolayı ortaya çıkmıģtır. Bütün veriler arasında dolaģmayı sağlar. Veri modelleri içinde en genel olanlarından biridir. Ağ içinde bir eleman, herhangi bir baģka elemana bağlanabilir. HiyerarĢik yapılardan farklı olarak, ağ yapılarında bağlantı açısından herhangi bir sınırlama yoktur. ġebeke veri modelleri, düğümler arasında çoklu iliģkiler kurulamadığı için, kısıtlı bir veri modeli olarak kabul edilir. 21

2. Ağ Veri Modeli 22

3. Nesneye Yönelik Veri Modeli Nesne yönelimli sistemler, bir istatistiksel sistem içinde, esnek veri yapılarının geliģtirilmesi ve istatistiksel modellerin sunumunda da kullanılmaktadır. Nesne yönelimli veri modelinde, bir sorgunun karģılığında mutlaka önceden tanımlanmıģ belirli bir nesne kümesi olması gerekir. Bir sorgunun sonucu olarak tesadüfi bir nesne kümesinin elde edilmesi mümkün değildir. Çünkü bütün nesnelerin, modelde önceden tanımlanmıģ olması gerekmektedir. ĠliĢkisel modeldeki iliģki kavramı, nesne yönelimli modelde sınıf kavramına karģılık gelmektedir. 23

Nesne yönelimli bir veri modelinin çekirdeğini Ģu unsurlar oluģturmaktadır. Nesne ve nesne tanımlayıcı Öznitelikler ve metotlar Sınıf Sınıf hiyerarşisi ve kalıtım 24

4. İlişkisel Veri Modeli Esnek ve son derece güçlü bir modeldir. Günümdeki veritabanlarının hemen hepsi bu modeli kullanmaktadır. KarmaĢık olmayan bir modeldir. Bütün veriler tablolarda saklanmaktadır. Tablolar arasında gerekli olduğu durumlarda iliģki kurulabilir. Tablolara doğrudan eriģilir. Tablolar arasında birden fazla iliģki kurulabilir. 25

4. İlişkisel Veri Modeli o Bu modelde tablolara doğruda eriģim yapılabilmektedir. Tabloların birbirlerine bağlanma mantığı oldukça basittir. Kurulan bu basit mantıkla veriye eriģim ve verilerin saklanması kolay hale gelmektedir. Ayrıca bir tablo birden fazla tablo ile de iliģkili olabilmektedir. o Bu modelde birbiri ile alakalı olan veriler tablolar içinde saklanır. Ayrıca tablolar arasında değiģik türlerde iliģki kurulmaktadır. ĠliĢkiler kurulurken birincil anahtar (Primary key) ve yabancı anahtarlar (Foreign Key) kullanılır. Anahtar alanlar sayesinde indeksleme (indexing) yapma olanağı sunan iliģkisel veri tabanlarında eriģim ve 26

4. İlişkisel Veri Modeli Tanım kümesi ĠliĢkisel tablo 27

İlişkisel Veritabanı ĠliĢkisel veritabanı günümüzde en çok kullanılan veritabanı yönetim biçimidir. ĠliĢkisel veritabanı çıkmadan önce farklı sistemler kullanılırdı. Fakat bu sistemler birçok konuda yetersiz kalıyordu. Örneğin veriler arasındaki bütünlüğü sağlamak amacıyla verilerin birbirleriyle eģleģtirilmesi ve iliģki kurulması gereken konularda yetersiz kalıyorlardı. Bunun üzerine İlişkisel Veritabanı kavramı ortaya çıktı. 28

İlişkisel Veritabanı Bir veritabanında iliģkiden söz edebilmek için veritabanında en az iki tablonun olması gerekir ve bu iki tablodaki verilerin birbiri ile iliģkilendirilebiliyor olması gerekir. Öğrenci Bilgileri ve Notlar tablosunda öğrenci numaraları arasında bir iliģki vardı ve öğrenci tablosunda olmayan bir öğrencinin Notlar tablosunda not bilgisi bulunmaz. Aynı Ģekilde Notlar tablosunda kayıtlı bir öğrencinin numarası alınarak Öğrenci tablosundaki pek çok bilgiye ulaģılabilir. 29

ĠliĢkisel Veritabanı Nesneleri ve Temel Kavramlar 30

a. Tablo (Table) Tablolar verilerin saklandığı ortamlardır. Excel dosyalarına benzetilebilir, hücrelerden oluģur ve hücrelerde veriler saklanır. Bir tablo, verilerin daha düzenli olarak saklanması için satırlar ve sütunlardan oluģan yapılardır. 31

a. Tablo (Table) Etkin veri yönetimi için tablolara ait bazı tasarım kuralları Ģunlardır: Tablolar satır ve sütunlardan oluģur. Her satır tablo içinde tekil bir değere sahip olmalıdır. Her tabloda bir Birincil Anahtar (Primary Key) tanımlanmalıdır. Tablolar arasın da gerekli iliģkiler kurulmalıdır. Veriler hücrelerde saklanır. 32

Veri tabanı Tablo Tablo Tablo Tablo Tablo 1 2 3 Alan 1 Alan 2 Alan3 Alan4 33

a. Tablo (Table) Her hücreye tek bir özellikler ilgili veri saklanmalıdır. Veri tekrarı mümkün olduğunca en aza indirgenmelidir. Tablo tasarımı esnek olmalıdır. Ġlerde yapılacak değiģikliklere kolayca uyum sağlayabilmelidir. 34

b. Satır (Row) Bütün kayıtlar satırlarda yer almaktadır. Her alandaki kayıtlar birbirinden farklıdır ve verilerin birbirlerine karıģmasını engellemektedir. Örneğin öğrenci bilgilerinin tutulduğu bir tabloda bir varlığa ait kayıtlar satırlarda yer almaktadır. Satırlar, tablolardaki belirli bir kayda ait veriler bütünüdür. Tablolardaki satırlar birbirlerinden farklı olmalıdır. 35

c. Sütun (Column) Sütunlar, ilgili varlığa ait nitelikleri tutmaktadır. Bu nitelikler Adı, Soyadı v.b. niteliklerden oluģmaktadır. Satırlara ait farklı bilgileri tutan özelliklerdir. Bir tabloda birden fazla sütun bulunabilir. Bir tabloda tanımlanabilecek sütun sayısı kullanılan VTYS ye göre farklılık gösterir. 36

37

d. Anahtarlar ÇeĢitli anahtar tipleri vardır. Bunlar; Birincil Anahtar (Primary Key) Tekil Anahtar (Unique Key) Yabancı Anahtar (Foreign Key) 38

1. Birincil Anahtar (Primary Key) Bu anahtar, verilerin her kayıtta farklı olacağını belirtmektedir. Örneğin personel tablosunda personelno su her kiģi için farklıdır. Dolayısı ile personelno birincil anahtar olarak tanımlanmaktadır. Personelno değeri aynı olan baģka bir kayıt eklenmek istenildiğinde bir hata mesajı verecektir. Ayrıca birincil anahtar olarak tanımlanan alana kayıt girilmesi zorunlu hale gelecektir. BoĢ geçilemez yada NULL değeri içeremez. 39

1. Birincil Anahtar (Foreign Key) Birincil Anahtarın iki temel özelliği vardır: 1. Benzersizdir yani tekrar eden kayıtlar olmaz. 2. BoĢ geçilemez, mutlaka değer almalıdır. 40

1. Birincil Anahtar (Foreign Key) Birincil anahtar seçerken dikkat edilmesi gereken hususlar; 1. Birincil anahtar olacak olan sütün tekrar etmeyen kayıtlardan oluģmalıdır. 2. Asla boģ değer almamalıdır. 3. Birincil Anahtar mümkün olduğunca az sütundan olmalıdır. Tek sütun olması idealdir. 4. Birincil anahtar sütunu en küçük ve en basit veri tipinde tanımlanmalıdır. Örneğin integer tipi idealdir. 41

2. Tekil Anahtar (Unique Key) Birincil anahtar kısaltmasına benzemektedir. Belirlenen nitelikteki değerin benzersiz olmasını sağlamaktadır. Farklı olarak bu alana NULL değerin girilmesine izin vermektedir. Birincil anahtarı olmayan alanlarda tekrarlı kayıtların girilmesini engellemektedir. Örneğin personel tablosunda personelno sütununda her personelin numarasının farklı olmasını sağlamaktadır. Bu alandaki tüm değerler benzersizdir. 42

3. Yabancı Anahtar (Foreign Key) Tablolar arasında bulunan iliģkilerin tanımlanmasına yardımcı olan bir anahtardır. Birincil anahtar olarak tanımlanan bir alan baģka bir tabloda yabancı anahtar olarak tanımlanan baģka bir alana bağlanabilmektedir. Bu Ģekilde bağlayarak beraberinde bir grup kaydı da bağlamıģ olmaktadır. Tablolar arasındaki bilgi tutarlılığının sağlanması için önemli bir anahtardır. Birincil anahtardan farklı olarak bir tabloda birden fazla yabancı anahtar olabilir. Bir tablodaki yabancı anahtar tekrar edebilir, çünkü aynı kayda referans eden birden fazla kayıt olması doğaldır. 43

3. Yabancı Anahtar (Foreign Key) No Ad Soyad Departma n 1 Ali Demir 2 2 Kemal Yılmaz 4 3 Mehmet Çolak 1 4 Derya Korkmaz 2 FK PK Dep_no Departman 1 Bilgi İşlem 2 Yazılım 3 Web Tasarım 4 Muhasebe PK 44

e. İndeks (Index) Kütüphanelerdeki kitapların raflardaki diziliģlerini ele alalım. Bir kitap arandığında, kitaplar bir kurala göre dizilmemiģlerse, her bir kitaba teker teker bakılması gerekir. Kitaplar raflara alfabetik dizilirse, her bir kitap tek tek gözden geçirilmek zorunda kalınmaz. Aranılan kitap ile bakılmakta olunan kitabın isimleri karģılaģtırılır, sağa ya da sola yönelip aramaya devam edilir. Aynı Ģekilde yazarlarına ya da kütüphane numarasına göre sıralanmıģ birer liste olursa, bu kriterlere göre de aranılan kitap kolayca bulunur. Veritabanlarında indeks oluģturularak, veriler veritabanındaki kayıtlı oldukları sıradan baģka bir sırada gösterilebilir ve tıpkı kütüphanedeki bir kitaba ulaģmada olduğu gibi istenilen veriye daha kısa sürede ve kolayca ulaģılabilir. 45

e. İndeks (Index) Ġndeksler verileri belli bir sıralamaya tabi tutar, böylece sorgulamalarda daha hızlı ve etkin bir sonuç elde edilir. Tablolarda arama yaparken tüm tabloyu taramaya gerek yoktur. Ġndeks sayesinde istene kayıt çok hızlı bir Ģekilde elde edilir. 46

İlişkisel Veritabanında Kısıtlamalar Bir veritabanından beklenen veritabanının doğru ve tutarlı bir Ģekilde çalıģması ve iģlemleri doğru bir Ģekilde yerin getirmesidir. Bir verinin doğru ve tutarlı olmasına veri bütünlüğü adı verilmektedir. Veri bütünlüğü sağlanarak veritabanının eksik, yanlıģ tutarsız ve çeliģkili bilgiler girmesinin önüne geçilmesi sağlanır. Bir veritabanında veri bütünlüğünü sağlamak için çeģitli yollar bulunmaktadır. Bunlardan en önemlisi bütünlük kısıtlamasıdır. Bütünlük sınırlamaları, VTYS veya uygulama programları tarafından tanımlanmaktadır. 47

İlişkisel Veritabanında Kısıtlamalar Bütünlük kısıtlamalarının sağlanmasında hiç Ģüphesiz ki en önemli rol anahtarlara düģmektedir. Anahtar türü belirlenerek, sınırlamaların VTYS tarafından otomatik olarak yapılması sağlanmaktadır. Bu durumda kısıtlamaları Ģu baģlıklar altında toplayabilmek mümkündür. Anahtar kısıtlamaları Varlık bütünlük kısıtlaması Referanslı bütünlük kısıtlaması 48

İlişkisel Veritabanında Kısıtlamalar Anahtar kısıtlamaları: Herhangi bir tablodaki her bir satır için anahtarın mutlaka tek olması gerekmektedir. Aksi durumda kayıtlar arasında tutarsızlıklar meydana gelebilir. Varlık bütünlük kısıtlaması: Anahtar nitelik olarak tanımlanan nitelik hiçbir zaman boģ geçilemez. Bu alana mutlaka bir kaydın eklenmesi gerekmektedir. Referanslı bütünlük kısıtlaması: Eğer bir tablodaki bir satır baģka bir tablodaki baģka bir satırı referans ediyorsa referans edilen satır var olmalıdır. 49

Veritabanı Tasarımı ve Normalizasyon 50

Veritabanı Tasarımının Önemi Ġyi bir veritabanı tasarımı yapabilmek için yetenek, bilgi ve tecrübe çok önemlidir. Öncelikle, iliģkisel veritabanının tanımını ve bununla ilgili 5 Normalizasyon kuralını çok iyi bilmek gerekir. 5N, tasarım aģamasında yol göstermek yerine hangi Ģartlara uygun tasarım yapılması gerektiğini anlatır. Bazen, bu kurallardan vazgeçmek durumunda olunabilir ancak, veritabanında saklanacak verilerin hacmi arttıkça yani veri tabanı büyüdükçe bu kuralların daha sıkı uygulanması gerekir. Veritabanının doğru tasarlanması yapılan projenin en önemli aģamasıdır. Bir veritabanı tasarımı yapılırken 5N maddelerine uyularak yapılması gerekir. 51

Veritabanı Normalizasyonu Bir tablo içerisinde yer alacak kayıtların nelerden ve hangi özelliklerden oluģmasına karar vermeye normalizasyon kuralları denir. Normalizasyon, veritabanı tasarım aģamasında çok önemli bir iģlemdir. ĠliĢkisel veritabanı tanımı ile ortaya atılmıģ ve kabul görmüģ 5 normalizasyon (5N) kuralı vardır. 52

Normalleştirmenin Amaçları - 1 Veri bütünlüğünü sağlamak Eğer veri gereksiz yere tekrarlanıyorsa, bu değiģik kopyalar, bunlardan habersiz olan uygulama kodları yüzünden bir süre sonra birbirinden farklı değerleri taģımaya baģlayabilirler. Bu, doğruluk ve tutarlılık açısından çok kötü bir sonuçtur. Bu gibi durumlarda iliģkisel veri tabanı yönetim sisteminin otomatik bütünlük (automatic integrity) mekanizmaları bile iģe yaramaz. Düzeltmenin, uygulama seviyesinde yapılması gerekir. Fakat bu da uygulama programlarını daha karmaģık hale getirecek, dolayısıyla bakımını zorlaģtıracaktır.

Normalleştirmenin Amaçları - 2 Uygulamadan bağımsızlık NormalleĢtirme, iliģkisel model, verinin içeriğine göre kurulmalı, uygulamaya göre değil kavramını bir adım daha öne alır. Bu sayede veri modeli, üzerinde onu kullanan uygulama değiģse bile, daha tutarlı, sabit ve değiģmez olarak kalacaktır. Uygulama programının gereksinimlerinin veri tabanının mantıksal modeli üzerinde minimum etkisi olmalıdır.

Normalleştirmenin Amaçları - 3 Performansı arttırmak DıĢ anahtarların haricinde, tamamıyla normalleģtirilmiģ bir veri tabanı gereksiz yere kopyalanmıģ veri miktarını en aza indirecektir. Verilerin daha az kopyasının olması saklama kapasitesinin azalmasına ve veri tabanı motorunun arama süresinin azalmasına yol açar. Bu da performansın artması demektir.

Birinci Normal Form Ġkinci Normal Form Normalleştirme Aşamaları Üçüncü Normal Form Boyce-Codd Normal Formu Dördüncü Normal Form

Normal Olmayan Form ĠliĢkisel veri tabanı modelinin temel kuralına göre bütün niteliklerin aldığı değerler atomik (tek ve basit) olmalıdır. AĢağıdaki DAĞITIM tablosu bu kurala uymamaktadır, bu yüzden normal değildir. 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

Birinci Normal Form Uygulandığında: 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

Birinci Normal Formun Sorunları Birinci normal formdaki bir tablo bazı alanlarda tekrarlı verilere sahiptir. Örneğimizde Ģehir_kodu ve Ģehir_adı alanlarında her müģteri için tekrarlı veriler vardır. Bu tekrarlar ekleme, silme ve güncelleme iģlemlerinde sorunlara neden olacaktır.

Satır Ekleme Sorunu BaĢka bir müģterinin bilgilerinin (müģteri_no, Ģehir_kodu, Ģehir_adı) girilmesi için mutlaka o müģteriye bir dağıtım iģleminin yapılması (gönderi_no ve miktar değerlerinin girilmiģ olması) gerekiyor. müģteri_no Ģehir_kodu Ģehir_adı gönderi_no miktar 1 34 İstanbul 1 300 4 34 İstanbul 5 400 5 35 İzmir

Satır Silme Sorunu Bir müģteriye tek bir dağıtım yapıldıysa (örn. 3 no lu müģteri), o dağıtım iģlemi iptal edildiğinde, sadece gönderi_no ve miktarı değil, o dağıtımın yapıldığı müģteri hakkındaki diğer bilgiler de (müģteri_no, Ģehir_kodu, Ģehir_adı) yok olur. müģteri_no Ģehir_kodu Ģehir_adı gönderi_no miktar 1 34 İstanbul 1 300 1 34 İstanbul 2 200 3 6 Ankara 2 200

Güncelleme Sorunu 1 numaralı müģteri Ankara ya taģınırsa, bu müģteri ile ilgili tüm satırların güncelleģtirilmesi gerekecektir. Eğer tablo çok büyük ise, sadece bir müģteri ile ilgili küçük bir değiģiklik bile binlerce kaydın güncelleģtirilmesini gerektirebilir. 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

İkinci Normal Form Birinci normal formdaki sorunlardan (en azından güncelleme sorunundan) kurtulmak için nitelikler arasındaki iģlevsel bağımlılıktan yararlanılarak birinci normal form (1NF) tablolarının birden fazla tabloya dönüģtürülmesi sonucunda ikinci normal forma (2NF) ulaģılır. Ġkinci normal formda, iliģkisel tablonun her bir anahtar olmayan sütunu birincil anahtara kısmi bağımlı değil, tam iģlevsel bağımlı olmalıdır.

İkinci Normal Form Ģehir_kodu ve Ģehir_adı nitelikleri (müģteri_no, gönderi_no) birleģik anahtarının sadece müģteri_no niteliği üzerinde tam iģlevsel bağımlıdır. O halde Ģehir_kodu ve Ģehir_adı nitelikleri müģteri_no ile beraber ayrı bir tablo oluģturmalıdır. o DAĞITIM(müĢteri_no, Ģehir_kodu, Ģehir_adı, gönderi_no, miktar) o MÜġTERĠLER(müĢteri_no, Ģehir_kodu, Ģehir_adı) o MĠKTARLAR(müĢteri_no, gönderi_no, miktar)

İkinci Normal Form Uygulandığında: müģteri_no Ģehir_kodu Ģehir_adı 1 34 İstanbul 2 6 Ankara 3 6 Ankara 4 34 İstanbul MÜġTERĠLER MĠKTARLAR 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

İkinci Normal Formun Sorunları Birinci normal formdaki güncelleme sorununu ikinci normal forma dönüģtürme ile ortadan kaldırmıģ olsak ta, ikinci normal formda da ekleme ve silme sorunları olabilmektedir.

Satır Ekleme Sorunu ġehġrler tablosuna yeni bir müģteri kaydı girilmediği sürece yeni bir Ģehir tanımı yapılamaz. Ġzmir ilini tabloya dahil edebilmek için Ġzmir de bulunan bir müģteriye ihtiyaç vardır. müģteri_no Ģehir_kodu Ģehir_adı 1 34 İstanbul 2 6 Ankara 3 6 Ankara 4 34 İstanbul 35 İzmir

Satır Silme Sorunu Tablodan bir müģteri silindiğinde, eğer o Ģehirdeki tek müģteri ise, Ģehir_kodu ve Ģehir_adı bilgileri de yok olacaktır. müģteri_no Ģehir_kodu Ģehir_adı 1 34 İstanbul 2 6 Ankara 3 6 Ankara 4 34 İstanbul 5 35 İzmir

Üçüncü Normal Form Birinci normal formdaki sorunlardan kurtulmak için nitelikler arasındaki kısmi iģlevsel bağımlılıkları ortadan kaldırmıģtık. Ġkinci normal formdaki sorunlardan kurtulmak için de nitelikler arasındaki geçiģli iģlevsel bağımlılıkları ortadan kaldırmamız gerekir. Örneğimizde Ģehir_adı Ģehir_kodu iģlevsel bağımlılığının geçiģlidir. Bir anahtara bağlı olmayan bu bağımlılığı ayrı bir tabloya dönüģtürerek üçüncü normal formu (3NF) elde edebiliriz.

Üçüncü Normal Form Uygulandığında: ġehġrler Ģehir_kodu Ģehir_adı 6 Ankara 34 İstanbul 35 İzmir MÜġTERĠLER müģteri_no Ģehir_kodu 1 34 2 6 3 6 4 34 5 35 MĠKTARLAR 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

Boyce-Codd Normal Formu Her belirleyicinin bir anahtar oluşu halidir. Örnek olarak aşağıdaki ilişkiyi düşünelim: ÖĞRENCİ(ÖğrNo, Bölüm, Danışman) ÖĞRENCĠ Öğ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

Boyce-Codd Normal Formu Öğ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)

Boyce-Codd Normal Formu Öğ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.

Çözüm: Belirleyicileri anahtar yap 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 Öğ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 Belirleyiciler

Boyce-Codd Normal Formu (BCNF) Uygulandığında: ÖĞRENCĠ Öğ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 ÖĞRENCĠ_DANIġMAN ÖğrNo DanıĢman 123 A. ERCAN 123 M. AKINCI 456 K. SÖNMEZ 789 A. ERCAN 999 B. ÖZKAN DANIġMAN_BÖLÜM DanıĢman Bölüm A. ERCAN Fizik M. AKINCI Kimya K. SÖNMEZ Biyoloji B. ÖZKAN Kimya

Özet 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

Dördüncü Normal Form Bazı durumlarda BCNF daki bir iliģkide de sorunlar görülebilmektedir. Örneğin; ÖĞRENCĠ(ÖğrNo, Bölüm, Spor) ÖĞRENCĠ ÖğrNo Bölüm Spor 123 Fizik Kayak 123 Kimya Kayak 123 Fizik Tenis 123 Kimya Tenis 999 Kimya Tenis

Dördüncü Normal Form Burada bir öğrenci birden çok bölüme kayıt olabilmekte ve birden çok spor etkinliğine katılabilmektedir. Bu nedenle ÖğrNo ile Bölüm ve ÖğrNo ile Spor arasındaki iliģkiler birer iģlevsel bağımlılık değil çok-değerli bağımlılık (multivalued dependency) halindedir. ÖĞRENCĠ ÖğrNo Bölüm Spor 123 Fizik Kayak 123 Kimya Kayak 123 Fizik Tenis 123 Kimya Tenis 999 Kimya Tenis ÖğrNo Bölüm ÖğrNo Spor çok-değerli bağımlılık

Dördüncü Normal Form 123 numaralı öğrencinin bir bölüme daha kayıt olması yada bir spor etkinliğine daha katılması halinde iki kayıt daha ilave edilmelidir. Bu gibi yineleme sorunlarını ortadan kaldırmak için ÖĞRENCĠ iliģkisi ikiye ayrılırak dördüncü normal form (4NF) oluģturulur. ÖĞRENCĠ_BÖLÜM ÖğrNo Bölüm 123 Fizik 123 Kimya 999 Biyoloji ÖĞRENCĠ_SPOR ÖğrNo Spor 123 Kayak 123 Tenis 999 Yüzme

Örnek 1 Ö.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 204 2001001 Ahmet Solmaz 205 Bilgisayar Mühendisliğine Giriş 2 Atatürk İlkeleri ve İnkılap Tarihi 2 60 45 3 Aydın CARUS 90 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 204 Bilgisayar Mühendisliğine Giriş 2 60 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

Verilen Ģema 1. Normal Formda (atomik değerler) o 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 o NOTLAR(Ö.No, Ders_No, Vize, Final) o ÖĞRENCĠLER(Ö.No, Ö.Ad, Ö.Soyad) o 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 o NOTLAR(Ö.No, Ders_No, Vize, Final) o ÖĞRENCĠLER(Ö.No, Ö.Ad, Ö.Soyad) o DERSLER(Ders_No, Ders_Adı, H.No) o HOCALAR(H.No, H.Ad, H.Soyad)

Örnek 2 UrunNo UrunAd ParcaNo ParcaAd Miktar UreticiNo UreticiAd UreticiSehir UreticiTel 10026201 10026201 10026201 10026201 10026501 10026501 10026501 10026501 10220012 10220012 10220012 10220012 Pavilion DV2620ET Pavilion DV2620ET Pavilion DV2620ET Pavilion DV2620ET Pavilion DV2650ET Pavilion DV2650ET Pavilion DV2650ET Pavilion DV2650ET Satellite A200-1N2 Satellite A200-1N2 Satellite A200-1N2 Satellite A200-1N2 1 2 3 4 1 2 3 4 1 2 3 Intel Core 2 Duo T5450 Kingston 512MB DDR2 Samsung 160GB HDD Nvidia GeForce 8400M Intel Core 2 Duo T7500 Kingston 1024MB DDR2 Samsung 160GB HDD Nvidia GeForce 8400M Intel Core 2 Duo T5250 Samsung 1024MB DDR2 Maxtor 120GB HDD 1 100 HP Seattle 123456789 1 100 HP Seattle 123456789 1 100 HP Seattle 123456789 1 100 HP Seattle 123456789 1 100 HP Seattle 123456789 2 100 HP Seattle 123456789 1 100 HP Seattle 123456789 1 100 HP Seattle 123456789 1 102 Toshiba Tokyo 335678912 2 102 Toshiba Tokyo 335678912 1 102 Toshiba Tokyo 335678912 4 Intel GMA X3100 1 102 Toshiba Tokyo 335678912

Verilen Ģema 1. Normal Formda (atomik değerler) o Urun_Parca (UrunNo, UrunAd, ParcaNo, ParcaAd, Miktar, UreticiNo, UreticiAd, UreticiSehir, UreticiTel) 1NF 2NF (kısmi bağımlılıklar giderilir) o Urun_Parca (UrunNo, ParcaNo, ParcaAd, Miktar) o Urunler (UrunNo, UrunAd, UreticiNo, UreticiAd, UreticiSehir, UreticiTel) 2NF 3NF (geçiģli bağımlılıklar giderilir) o Urun_Parca (UrunNo, ParcaNo, ParcaAd, Miktar) o Urunler (UrunNo, UrunAd, UreticiNo) o Ureticiler (UreticiNo, UreticiAd, UreticiSehir, UreticiTel)

Örnek 3 SiparisNo Tarih UrunAd UrunNo Adet MusNo MusAd MusSoyad 1 23.11.2007 Nokia 6300 57463 1 875 Ali Korkmaz 1 23.11.2007 Kingston 2 GB USB 73624 2 875 Ali Korkmaz 2 23.11.2007 Samsung D600 72352 1 932 Selin Atasoy 3 24.11.2007 Nokia 5070 71224 1 123 Kamil Sönmez 4 24.11.2007 Philips DVP 5160/12 90876 1 452 Metin Kaplan 5 25.11.2007 Samsung Digimax S850 98123 1 786 Kemal Durukan 6 25.11.2007 Sinbo SBS-4414 Baskül 35465 2 932 Selin Atasoy 7 25.11.2007 Canon Powershot A560 95293 1 875 Ali Korkmaz 7 25.11.2007 Kingston 2 GB SD 37285 1 875 Ali Korkmaz 8 26.11.2007 Nokia 6300 57463 1 321 Ece Çağlayan

Verilen Ģema 1. Normal Formda (atomik değerler) o SIPARIS (SiparisNo, Tarih, UrunAd, UrunNo, Adet, MusNo, MusAd, MusSoyad) 1NF 2NF (kısmi bağımlılıklar giderilir) o SIPARIS_URUN (SiparisNo, UrunNo, Adet) o SIPARIS_MUSTERI (SiparisNo, Tarih, MusNo, MusAd, MusSoyad) o URUN (UrunNo, UrunAd) 2NF 3NF (geçiģli bağımlılıklar giderilir) o SIPARIS_URUN (SiparisNo, UrunNo, Adet) o SIPARIS_ MUSTERI (SiparisNo, Tarih, MusNo) o MUSTERILER (MusNo, MusAd, MusSoyad) o URUN (UrunNo, UrunAd)

Örnek ÇalıĢma O Normalize edilmemiş tablo O Amaç çerçevesinde veritabanında kayıtlı olması gereken tüm bilgileri içerir. O Ogrno O Adı O Soyadı O Anne adı O Baba adı O Ev telefonu O Cep telefonu O Dogum yeri O Dogum tarihi O Kimlik numarası O Giriş yili O Adres bilgisi O O O O Adres Posta kod İlçe İl O Bölümü O Dönemi O Aldığı dersler O Ders1 O Ders2 O... O Dönem sonu notu O O Ders1 notu Ders2 notu O... O Borcu O Ödediği miktar O Ödediği zaman 86

Örnek Çalışma (1NF) Tekrarlanan sütun gruplarını ortadan kaldırmak Kompozit olarak birincil anahtar oluşturmak O Kimlik Bilgileri O Ogrno (BA) O Adı O Soyadı O Anne adı O Baba adı O Ev telefonu O Cep telefonu O Dogum yeri O Dogum tarihi O Kimlik numarası O Giriş yili O Adres O Posta kod O İlçe O İl O Bölümü O Dönemi O O Ders Bilgileri O Ogrno (BA) O Donem (BA) O DersKod (BA) O DersAdi O Kredi O Dönem_sonu_notu O Tekrar Ucret Bilgisi O Ogrno (BA) O Odeme_trh (BA) O Odeme_miktari O Borcu 87

Örnek Çalışma (2NF) Anahtar özelliğine sahip olmayan tüm sütunlar birincil anahtara tam bağımlı olmalı Buna göre tablolar bölünmeli Kimlik Bilgileri Ogrno (BA) Adı Soyadı Anne adı Baba adı Ev telefonu Cep telefonu Dogum yeri Dogum tarihi Kimlik numarası Giriş yili Adres Posta kod İlçe İl Bölümü Dönemi Borcu Ders Bilgileri Ogrno (BA) Donem (BA) DersKod (BA) DersAdi Kredi Dönem_sonu_notu Tekrar Ucret Bilgisi Ogrno (BA) Odeme_trh (BA) Odeme_miktari Borcu Ogr Ders Bilgileri Ogrno (BA) Donem (BA) DersKod (BA) Dönem_sonu_not u Tekrar Ders Bilgileri DersKod (BA) DersAdi Kredi 88