Arşiv Anasayfa Veritabanı Makaleleri
Sayfalar: 1
E-R (Entity-Relationship) Modeli Gönderen: newon_fire Tarih: 07 October 2005 21:06:02
E-R (Entity-Relationship) Modeli[/b
]GİRİŞ
E-R modeli gerçek hayatta karşılaştığımız varlıklar arasındaki ilişkiyi şekiller ile ifade etmemize
yarar.
Bu sayede veritabanımızı oluşturmadan önce onu şekiller ile ifade edip çok daha mantıklı bir halde
veritabanı dosyalarını çok daha fazla anlaşılır bir şekilde yapmış olacağız.
Böylece karmaşık veritabanı tasarımların altından rahatlıkla kalkabiliriz , karmaşık olayları şematik
şekilde görür daha iyi düşünürüz.
E-R modelini öğrendikten sonra veritabanı tasarımına geçiş çok kolay olacaktır.

Metin 1:Daha iyi anla
Örneğin ; bir kooperatif bir SİTE inşa edecek.Sizde bilirsiniz ki hemen binalar yapılmaya
başlanmaz.Önce bir planı yapılır , krokisi çizilir , elektriği , suyu altyapısı planlanır.Daha sonra
binaların detayları çizilir.Bu çizilen planlara bakan yapılan işi hemen anlar.İşi yapan mühendis
değişirse plana bakması yarıda kalan işin devamı için yeterli olur.
Aynı bu şekilde VERİTABANI mızı bir site gibi düşünürsek , ER modelleme ile önce planları
çizmiş oluyoruz.Yapılabilecek hataları en aza indiriyoruz.Veritabınımız üzerinde daha sonra
çalışacaklar için , bir bakışta anlayabilmesi için bir çizim yapmış oluyoruz.
Daha sonra çalışacaklardan ziyade kendimiz çizerek düşünmenin kolaylığını yaşıyoruz.

VARLIKLAR( ENTITIY)
Diğer nesnelerden farklı ve ayırtedilebilir özellikleri(attribute) olan var olan nesnedir.

Metin 2:Daha iyi anla
Örneğin ; 1
236450000000 gibi bir kimlik numarası olan DOĞAN adında biri evren de tektir.
Plaka numarası 34 DGN QWEEW olan bir ARABA başka aynı plaka sahibi araba olmadığı için
bir varlıktır.
Bu varlık soyut da olabilir.Örneğin BANKA-HESABI banka hesap numarası ile diğer hesaplardan
ayırt edilebilir.
Yani varlığın sadece kendisine ait olan onu diğerlerinden ayıran bir özelliği olması gerekir.


Varlıklar özellikler ve veri değerleri(data value) ile tanımlanırlar.Bir İNSAN varlığının ADI
özelliktir ve adının Ali olması veri değeridir(burda char , integer , float her türlü veri değeri özelliğe
göre ne gerekiyorsa olabilir.Adı:=Ali)
İLİŞKİLER( RELATIONSHIP)
Varlıklar arasındaki ilişkidir.

Metin 3:Daha iyi anlaÖrneğin ;
Müşteri , Satıcıfirma arasında SATIŞ_YAP adında bir ilişki tanımlarsak bu şunu açıklar
satıcıfirma müşteriye satış yapmaktadır.


Kareler varlığı , dikdörtgenler ilişkiyi temsil eder.


İlişkiler iki varlık arasında olduğu gibi bir kaç varlık arasında da kurulabilir.Yukarıdaki resme
ÜRÜN adında bir varlık daha ekleyerek aralarında ilişki kurabiliriz.

Metin 4:Daha iyi anla
Satıcıfirma SATIŞ_YAP maktadır müşteriye.Neyin satışını yapmaktadır?ÜRÜN ün satışını..
şeklinde bir düşünceyi (olayı) çizelim.

Daireler varlık yada ilişkiye ait özellikleri ifade eder.

İlişkeler tanımlayıcı olarak özelliklere(attribute) sahip olabilirler.Örneğin , SATIŞ_YAP ilişkisine
satış tarihi özelliği.
ÖZELLİKLER( ÖZNİTELİK - ATTRİBUTES -)
Varlıkları(Entity) ve ilişkileri(Relationship) daha iyi açıklamak için özellikler kullanılır.

Metin 5:Daha iyi anla
İNSAN adında bir varlığın AHMET adında bir üyesinin şu özellikleri olabilir.
Saç rengi , göz rengi , kan grubu , öğretim durumu , doğum tarihi , baba adı vs.
Ve AHMET i diğerlerinden ayırabiliceğimiz Kimlik No su

Zaten ileride bir varlığı diğerlerinden ayıran en önemli özelliğine primary key diyeceğiz.

KISITLAR
Kullanıcıların ne yapacakları belli olmaz.O yüzden programı tasarlayanlar kullanıcıların hataya
düşeceklerini bildikleri için bir takım kısıtlamalrın gelmesi gerekir.Bizde burada program
düzeyinde değilde daha alt bir seviyede veritabanına kısıtlar koyarak yapılabilecek hataların önüne
geçmeye çalışacağız.
Varlıklar arasında nasıl bir ilişki olduğunu belirleyerek işe başlayalım.Kullanıcı bu ilişki dışında bir
ilşki kullanamasın.

A) 1 – 1 (one to one ) ilişki: Bunları direk örneklerle anlatmak daha iyi olacak.
Örneğin evli bir çift arasında 1-1 ilişki kurarsak bunlardan birinin ikinci bir evlilik yapma
imkanı kalmaz.

Erkek ile Kadın arasında EVLENİR diye 1-1 ilişki kurduk.
Bunun manası 1 erkek 1 kadınla evlenebilir.Aynı şekilde 1 kadın 1 erkekle evlenebilir dir.

B)1-M(one to many ) ilişki:Burdada yetenekli bir yönetici ele alalım.Adam yetenekli birden fazla
kurumu yönetmesine izin vereceğiz.

Yönetici ile Kurum arasında YÖNETİR adında 1-M ilişki kurduk.
Bunun anlamı ; 1 yönetici M tane --(1 den fazla anlamında iki olabilir,üç olabilir...)-- Kurumu
yönetebilir.Ama M tane kurumdan – (kurumlardan herhangi birisi)-- birisi sadece 1 yönetici
tarafından yönetilebilir.


C ) M-1(many to 1) ilişki : Burdada örneğimiz yeteneksiz yöneticiler olsun Smile) . Yani bir kuruma
sadece bir yönetici değilde birden fazla yönetici atayabilelim.Ama bu yöneticiler başka bir kuruma
daha bakamasın(yeteneksiz işte anlayın).

Yönetici ile Kurum arasında YÖNETİR adında M-1 ilişki kurduk.
Anlamı : M tane Yöneticiden herhangi biri ni seçelim , bu adam sadece 1 kurumu yönetebilir.
Ama , Kurum dan 1 tane seçelim , bu kurumu M tane yönetici yönetebilir.(Birden fazla
anlamında)

D)M-M ilişki (many to many) : Şimdiye kadar ikili(binary ) ilişki leri gösterdik. M-M ilişki yi
genelde ternary(üçlü) ilişkide kullanırız.
Burada Satıcıfirma belirli bir ürünü bir çok müşteriye satabilir.(Firma toptancı olabilir.)
Ve Müşteri bu ürünü sadece bir satıcı firmadan değilde farklı farklı satıcı firmalardan
alabilir.Mesala x marka bir kalemden 250 adet A firmasından 300 adet B firmasından satın alabilir.



E-R MODELİNDEN TABLOLARA GEÇİŞ


Öğrendiklerimizle basit bir olayı çizebiliriz.Yukarıdaki şekli açıklayalım.
Bizim bir FİRMAMIZ var .SATICIFİRMADAN , ÜRÜN_ALIŞI yapıyoruz.
Aldığımız ÜRÜN lerden MÜŞTERİYE ÜRÜN_SATIŞI yapıyoruz.(Dikkat edin ternary ilişki
kurduk aralarında M-M ilişki var.)
Bundan sonra yaptığımız tasarımda entity lerin özelliklerini belirleyelim.


Şimdide bu son şekle geldikten sonra TABLO ları yapalım.Bunun için bir kaç kural verelim.
1.)Her VARLIK(Entity) için bir tablo yapın ve özeliklerini field olarak tanımlayın.


Örnek olarak SATICIFİRMA varlığının tablosunu yaptık , sfirmakodu nu primary key olarak
tanımladık.

2.) Her 1-.M ilişki için , M tarafındaki primary key diğer tarafa foreign key olarak geçsin.
Yani M tarafındaki primary key olan alanı , diğer tabloya yeni bir alan olarak ekleyip
foreign key olarak eşleştireceğiz.
3.)Her M-M ilişki için aradaki ilişki içinde ayrı bir tablo yapın .
Bu tabloya bağlı olduğu diğer tabloların primary key leri , foreign key olarak gelsin ve hepsi
birlikte primary key oluştursun.Ve kendi özelliklerinide alan(field ) olarak ekleyin.


Burada URUN_ALIŞ M-M ilişkisi için ayrı bir tablo oluşturduk.
SATICIFİRMA dan sfirmakodu
ÜRÜN den ürünkodu
FİRMAMIZ dan firmakodu , foreign key olarak gelip alanları oluşturdu.
Daha sonra ÜRÜN_ALIŞI na ait özellikleride alan olarak ekledik.

AlışTarihi ni de primary key olarak ekledik.Çünkü ÜRÜN_ALIŞI nı diğer ürün_alışlarından ayırt
etmemiz gerekiyor.Neden derseniz ;

Örneğin , FİRMAMIZ , A firmasından B ürünü aldı.Tablomuza hepsini kaydettik.Daha sonra
FİRMAMIZ tekrar A firmasından B ürünü almak istediğinde tabloya kayıt edemeyeceğiz çünkü
aynı primary keylere sahip ikinci bir kayıt olamaz.Program hata verecektir.

AlışTarihi sayesinde ÜRÜN_ALIŞ ları arasında farkı ortaya koymuş oluyoruz.

Diğer tablolarımız aşağıdaki şekildedir.



Buraya kadar basit anlamda E-R diagramına giriş yaptık.E-R modelinde daha karmaşık detaylı
modellerde yapabiliriz.Fakat onlar burada anlatılmadı.
newon_fire@yahoo.com

Ynt: E-R (Entity-Relationship) Modeli Gönderen: Mikdad Tarih: 09 November 2005 10:58:49
Ellerine Sağlık Abim
Ynt: E-R (Entity-Relationship) Modeli Gönderen: newon_fire Tarih: 11 November 2005 20:48:55
Sağolun ; Derslerden vakit buldukça yazmaya çalışıyorum.
Ynt: E-R (Entity-Relationship) Modeli Gönderen: Mikdad Tarih: 17 November 2005 18:41:45
Paylaşımını esirgeme kardeş daha fazla online ol daha fazla faydalanalım bilginden
Ellerine  Ve Emeğine Sağılk
Ynt: E-R (Entity-Relationship) Modeli Gönderen: newon_fire Tarih: 20 November 2005 15:28:21
şöyle bi bakarken gözüme çarptıda m-1  ilişkiyi anlatırken 1-m ilişkideki resmi koymuşum.onu düzelttim.kusura bakmayın. Confused
Ynt: E-R (Entity-Relationship) Modeli Gönderen: koca$ahan Tarih: 16 November 2006 15:32:59
Ellerinize Sağlık,Teşekkür Ederiz...
Ynt: E-R (Entity-Relationship) Modeli Gönderen: karahanli009 Tarih: 02 February 2007 14:55:15
Allah razı olsun.
devamını nasip etsin.
Ynt: E-R (Entity-Relationship) Modeli Gönderen: RewriteRule Tarih: 01 December 2007 19:20:29
Tam aradığım bir konuydu. Eskileri karıştırınca buldum Smile Teşekkürler. FABForce'un DBDesigner 4 programını kullanırken bayağı işime yaradı.