1. Ayyıldız Tim forumu Hariç Hiç Bir şekilde Rütbeli Oldugunu İdda edenlere inanmayınız.. Ayyıldız Tim Adına Sizden Bilgi Belge TC Kimlik Vb Evrak İsteyenlere Asla Bilgilerinizi Vermeyiniz.
    Duyuruyu Kapat

Veritabani Tasarim | Database Design

'Database's' forumunda ComTrego tarafından 1 Kasım 2019 tarihinde açılan konu

  1. ComTrego Guest

    • Guest
    Katılım:
    2 Şubat 2016
    Mesaj:
    32
    Alınan Beğeniler:
    38
    Meslek:
    Secret

    Özel Mesaj
    Diyelimki aklimiza bir fikir geldi veya bir sorunu cözmek icin bir sistem tasarlicagiz bununda bir veri tabani olucak ne yapmamiz lazim? Hemen bilgisayarin basina gecip düsünmeden veritabani mi olusturmaliyiz? Tabikide bu cok yanlis bir cözüm olacaktir…


    Veritabaninda önemli olan veriyi tutmak degil, o veriyi tutarli, güvenli, yarin öbürgün yeni eklenecek verilere uygun sekilde tasarlamak, ona uygun modellemektir.


    Bu yüzden planliyarak calismamiz lazim. Planlarken her türlü olasiligi düsünmek, tutarliligi bozmamak icin kisitlar ve kurallar belirlememiz lazim. Tüm bunlari düsündükten sonra tasarim asamasina gecilmesi gerekir. Düsünülmeden yapilan Veritabani tasarimlari ileride hem sizin hemde baskalarinin zamanini bosa harcamasina yol acacaktir.


    İlk defa veri tabanı kelimesini duyanlar için tanımı biraz açmak istiyorum. Veri tabanı, içinde birilerine veya ürüne ait bilgileri içeren ortamdır. Veri tabanları tablolardan, tablolar ise sütun ve satırlardan oluşur. Örnek Tablo:

    [​IMG]


    Iliskisel Veri Tabaninin en önemli yani tablolardan olusmasidir ve bu tablolar birbirleriyle iliski halindedir. Tablolar arasi iliskiyi görselleştirebilmek icin karga ayagi Notasyonu (Crow’s Foot Notation) bir diger adiylada IEM James Martin Notasyonunu kullunacagiz.


    Veri Tabani İlişki Türleri

    1-1 (Bire-Bir İlişki)
    1-N (Bire-Çok İlişki)
    N-M (Çoka-Çok İlişki)


    1-1 (Bire-Bir İlişki):
    Bir Vatandasin bir kimligi vardir. Bir kimligin sadece bir sahibi vardir.

    [​IMG]



    1-N (Bire-Cok İlişki):
    En fazla rastlanan ilişki türüdür. Bir Annenin bir veya birden fazla cocugu vardir. Bir veya birden fazla cocugun bir annesi vardir.

    [​IMG]



    N-N Iliski (Çoka-Çok İlişki):
    Son ilişki türümüz en karmaşık olan çoktan çoğa ilişki türü. Örnek üzerinden konuyu anlatmaya calisayim. Bir Yazar bir veya birden fazla kitap yazmis olabilir. Ama bir kitabın da bir veya birden fazla yazari olabilir. Bu durumda aralarinda coktan coga bir iliski olusmaktadir. Bu ilişki türünde iki tabloda birden fazla bağa sahiptir. Bu yüzden iki tablo bu ilişkiyi açıklamak için yeterli olmaz.

    Bu durumu tablolastirirken bir ücüncü tabloya daha ihttiyacimiz olmaktadir. Ücüncü tablo secim tablosu olacak ve burada yazar ile kitabin ID’ leri tutulacaktir.
    [​IMG]

    Evet Iliski türlerini ve Notasyonu ögrendigimize göre sira Entity Relationship Diagrama geldi.


    Entity Relationship-Diagram (ERD)

    Bir Entity-Relationship-Diyagramı (ERD), insanlar, nesneler ve bir sistemdeki kavramlar gibi "varlıklar" arasındaki ilişkilerin neler olduğunu gösteren bir tür akış şemasıdır. ER-diyagramları genellikle yazılım geliştirme, işletme bilişimi, eğitim ve araştırma alanlarındaki ilişkisel veritabanlarını tasarlamak için kullanılır. Bu şemalar, varlıklar, ilişkiler ve özellikleri arasındaki ara bağlantıyı temsil etmek için dikdörtgenler ve bağlantı çizgileri gibi sınırlı bir sembol seti kullanır.

    Primary Key, PK (birincil anahtar), bir veri tablosunda yer alan her satır için bir tanımlayıcı görevi görür, kısıtlamadır ve eşsizdir. Satırlara ait değerlerin karışmaması adına bu alana ait bilginin tekrarlanmaması gerekir.

    Foreign Key, FK (Yabancı Anahtar) ilişkisel veri tabanlarında iki tabloyu bir birine bağlamak ve bunları uygulamak için kullanılan sütun veya sütunların birleşimidir.


    Yukardaki Çoka-Çok örnegimizin ER-Diyagrami:
    [​IMG]


    Buda Veritabanimizin son hali... Böylelikle Coka Cok sorununu ücüncü tablo yardimiyla cözmüs olduk.
    [​IMG]

     
    mehmettircim, Grazzs, zerdust ve 5 kişi daha bunu beğendi.
  2. ComTrego Guest

    • Guest
    Katılım:
    2 Şubat 2016
    Mesaj:
    32
    Alınan Beğeniler:
    38
    Meslek:
    Secret

    Özel Mesaj
    Genelleme / Spesifiklestirme(uzmanlik)

    Bu modelleme yapısında, ortak varlık özellikleri yalnızca bir kez modellenir. Yani buradaki amacimiz fazlaliksiz Veritabani olusturmak.

    Genelleme türü, tüm varlıkların ortak sahip olduğu özellikleri içerir.
    Spesifiklestirme türü ise, kendisine özgü özellikleri icerir buna ilaveten genelleme özelliklerini miras alir.


    Konuyu örnek üzerinden anlatalim…

    Diyelimki bir sirketimiz var. Internet üzerinden ürün satiyoruz. Sirketimizin saglikli ilerliyebilmesi icin tabiiki müsterilerimiz ve calisanlarimiz olacak.
    Müsterilerimizin ve calisanlarimizin bilgilerini bir veritabaninda tutmamiz gerekir. Tablolari olustururken bakmamiz gereken olay, müsteri ve calisan’in ortak özellikleri varmi.
    Özellikten kastim, hem müsterinin hemde iscinin ad ve soyadi vardir. Ad ve soyadi özelliklerini her tabloda belirlemek yerine Genelleme teknigini kullanmamiz gerekir. Böylelikle tablolardaki fazlaliklarin önüne gecmis oluruz.

    Sonucta müsteri de isci de birer kisidir. Ad ve soyadi gibi ortak özellikleri vardir.

    [​IMG]
    Spesifiklestirme tekniginde ise bir tablo kendisine özgü özellikleri icerir. Yani ortak özelliklerin olmadigi yerler. Isciye maas veririz ama müsteriye vermeyiz bu yüzden isci tablosunda maas özelligini spesifik olarak belirlememiz gerekir.

    Buda Veritabanimizin kullanimdaki hali:

    [​IMG]

     
  3. Alaeddin Keykubad Site Yetkilisi TÜMGENERAL

    • Forum Developer Admin
    Katılım:
    15 Temmuz 2012
    Mesaj:
    79
    Alınan Beğeniler:
    1,358

    Özel Mesaj
    Konuların güzel eline sağlık fakat yapıcı bir eleştiri yapmak istiyorum birincisi konuyu tam açıklamıyorsun konumuz ne kullandığın araç ne hiç bilmeyen için fazlasıyla yabancı kalıyor konular birde aynı örnek üzerinden devam ettir .Kodlar ne bak hiç bir şey yok bunu şuan yapmak isteyen biri anlamadığı için bakıp kalacak.
    Kullanılan tüm kelimeler için bir sözlük yap varchar ne ınt ne id önce daha ufak detaylardan başarılarının devamını dilerim.
     
  4. ComTrego Guest

    • Guest
    Katılım:
    2 Şubat 2016
    Mesaj:
    32
    Alınan Beğeniler:
    38
    Meslek:
    Secret

    Özel Mesaj
    Güzel yorumunuz ve yapici elestiriniz icin tesekkür ederim. Bundan sonraki konularimda elestirilerinizi daha dikkate alacagim.
     
  5. ComTrego Guest

    • Guest
    Katılım:
    2 Şubat 2016
    Mesaj:
    32
    Alınan Beğeniler:
    38
    Meslek:
    Secret

    Özel Mesaj
    Sanirim konuya baslangicta biraz hizli giris yaptim. Konuyu biraz daha hafiften almam gerekirdi. Alaeddin Keykubad pasamizin da önerilerini dikkate alarak, konuya sözlük ekleme geregi duydum. Bundan sonraki konularda Sözlügü basta eklemeye calisacagim. Konunun ortasindan baslayip basa dönmek gibi oldu ama hicbirsey yapmamaktan iyidir. Sözlügü alttaki "Icerigi Göster" dügmesine basarak inceleyebilirsiniz.

    Tablo:
    Tablo, müsteriler veya ürünler gibi belirli bir konuyla ilgili veriler içerir. Tablodaki her kayıt, belirli bir müsteri gibi tek öge hakkında bilgiler icerir. Kayıtlar id, ad, adres ve telefon numarası gibi alanlardan olusur. Kayıt genellikle satır(row) olarak, alan da genellikle sütun(column) olarak bilinir.

    [​IMG]

    Veri Tipleri:
    Sql Server, verileri çeşitli türleri ile saklamak için,veritabanı programcılarına ve kullanıcılarına çeşitli veri tipleri sunmaktadır.Bu veriler metinsel,tarihsel,sayısal ve parasal tipte olabilmektedir.

    INT_: -2.147.483.648 ile 2.147.483.647 arasında ki tam sayıları tutar.
    CHAR_: char_(n) şeklinde kullanılırlar. - n: karakter sayısını ifade eder. 8000 karaktere kadar değer alabilirler.Belirtilenden(n) az karakter girilse dahi giriş yapılan boyut kadar yer kaplar. Unicode desteklenmedigi icin genelde VARCHAR kullanilir.
    VARCHAR_: varchar_(n) seklinde kullanilirlar. - n: karakter sayısını ifade eder. Chardan farklı olarak verinin boyutu kadar yer kaplar. 8000 karaktere kadar depolama yapar.
    DATE_: YYYY-MM-DD yani YIL – AY – GÜN şeklinde tarihi tutar.

    Kaynak & daha fazlasi icin: https://www.yazilimkodlama.com/sql-server-2/sql-server-da-veri-tipleri/

    Entities (Varliklar) & Properties (Özellikler):
    Varlik: Veri modellemesinde bilgiyi saklamak veya işlemek için kullanılan benzersiz bir nesnedir. Nesne maddi veya maddi olmayan, somut veya soyut olabilir. Örnekler: Bir araç, bir kisi, bir bilgisayar.

    Özellik: Nesnenin sahip oldugu özellikler. Örnek: Bilgisayarin 16GB RAM’i var.

    [​IMG]

    Entity Relationship-Diagram (ERD) :
    Bir Entity-Relationship-Diyagramı (ERD), insanlar, nesneler ve bir sistemdeki kavramlar gibi "varlıklar" arasındaki ilişkilerin neler olduğunu gösteren bir tür akış şemasıdır. ER-diyagramları genellikle yazılım geliştirme, işletme bilişimi, eğitim ve araştırma alanlarındaki ilişkisel veritabanlarını tasarlamak için kullanılır. Bu şemalar, varlıklar, ilişkiler ve özellikleri arasındaki ara bağlantıyı temsil etmek için dikdörtgenler ve bağlantı çizgileri gibi sınırlı bir sembol seti kullanır.

    [​IMG]

    Primary Key, PK (birincil anahtar), bir veri tablosunda yer alan her satır için bir tanımlayıcı görevi görür, kısıtlamadır ve eşsizdir. Satırlara ait değerlerin karışmaması adına bu alana ait bilginin tekrarlanmaması gerekir.

    Bu ne demek oluyor? Eger tablonun icinde müsteri_id = 903 olan bir müsteri varsa siz ikinci bir müsteri_id numarası 903 olan bir müsteri ekleyemezsiniz.

    Foreign Key, FK (Yabancı Anahtar) ilişkisel veri tabanlarında iki tabloyu bir birine bağlamak ve bunları uygulamak için kullanılan sütun veya sütunların birleşimidir.


    Iliski Türleri:
    İlişkiler, veritabanlarının bir tablodaki satırı ilişkili bir tablodaki bir satırla eşleştirmesine izin vermek için birincil ve yabancı anahtarlar kullanır. Bu ilişkileri diyagramınızda Crow's Foot notasyonunu kullanarak gösterebilirsiniz.

    1-1 (Bire-Bir İlişki):
    İlişkisel veritabanlarındaki birebir ilişkide, tablo A'daki her kayıt tablo B'deki tam bir kayıtla ilişkilendirilir ve bunun tersi de geçerlidir.

    1-N (Bire-Çok İlişki):
    "Bir-çok" ilişkisi, veritabanındaki en yaygın ilişki türüdür. "Bir-çok" ilişkisinde, tablo A’daki bir kayıt tablo B’de bir veya daha fazla kayda bağlanabilir. Örneğin, bir müşterinin birden fazla siparişi olabilir.

    N-M (Çoka-Çok İlişki):
    İlişkisel veritabanlarındaki "çoktan çoğa" ilişkiler için, Tablo A'daki her kayıt Tablo B'de birden fazla kayitla eşleşebilir ve bunun tersi de geçerlidir. Bu ilişkiler ancak üçüncü bir tablo, bir bağlantı tablosu C yoluyla gerçekleştirilebilir. Bağlantı tablosu C genellikle diğer iki tablonun (A / B) yalnızca yabancı anahtarlarını içerir.


    Hangi Tool'lari kullanarak ER-Diyagrami yapabiliriz?
    Bu konudaki ER-Diyagramlarini Visio Professional 2019 kullanarak yaptim. Fakat ücretsiz Diyagram yapmak isterseniz size su siteyi önerebilirim: draw.io Site'de bircok diyagram olusturabiliriz.

    Device > Create New Diagram > Software > sonuncusu olan entity-relationship.xml seç > create diyerek kendi diyagramimizi gerceklestirmeye basliyabiliriz. Sol taraftaki menü'de Entity Relation bölümüne tiklayarak Tablo ve iliski baglantilarini kullanabiliriz
     
    Orion-Pax bunu beğendi.
  6. EzraK Guest

    • Guest
    Katılım:
    14 Kasım 2019
    Mesaj:
    26
    Alınan Beğeniler:
    3

    Özel Mesaj

    Komutanım Konusu Gercekten Güzel Alıntı Gibi Geldi
     
  7. AYDOĞAN TUĞGENERAL

    • Forum Denetleme Gözlem Komutanı
    Katılım:
    11 Ağustos 2012
    Mesaj:
    11,390
    Alınan Beğeniler:
    52,684
    Meslek:
    Defender Ayt

    Özel Mesaj
    Gibi geldi.?..İspatlıyormusun..Ve olaki alıntı.emek var çalışma var.
     
    Orion-Pax, ComTrego ve Vecihi_33 bunu beğendi.
  8. ComTrego Guest

    • Guest
    Katılım:
    2 Şubat 2016
    Mesaj:
    32
    Alınan Beğeniler:
    38
    Meslek:
    Secret

    Özel Mesaj
    Entity Relationship Diyagramina bakarak Veritabani Programlama

    Bugün sizlere ER-Diyagramina bakarak veritabanimizi nasil programlayacagimizi anlatacagim.

    Veritabani tasarlarken elimizde bir ER-Diyagrami bulunuyorsa bu bize bircok avantaj saglicaktir. En büyük avantaji ise SQL’ ile Veritabanini programlarken, fazla düsünmeden, Diyagrama bakarak kolaylikla bir veritabani olusturabiliriz.

    Eger elimizde bir ER-Diyagrami olmasaydi bütün olasiliklari kafadan düsünerek ilerlememiz gerekirdi: Hangi Tablolara ihtiyacim var? XZ Tablosunda hangi Özellikler gerekli? Özelliklerin veri tipleri nasil olacak? Büyük projelerde 50-100 Tablo bulunabilir. Yani demek istedigim herseyi aklimizda tutmamiz imkansiz hale gelebir. Bu yüzden önce herseyi planlamamiz ardindan güzel bir diyagram olusturup son adim olarakta programlamamiz gerekir.

    Veritabani Programlama icin Gerekli Tool’lar:
    -XAMPP (Lokal Server) https://www.apachefriends.org/de/download.html
    -MySQL Workbench (SQL Editörü) https://dev.mysql.com/downloads/workbench/

    Indirme ve kurulumunu burada anlatmayacagim. Google’da aratarak kurulumunu yapabilirsiniz. Tikanirsaniz yorum olarak yazin yardimci olmaya calisirim.

    Tool’lari kurduktan sonra XAMPP’te MySQL Start butonuna basin.
    MySQL Workbench’te ise localhost(127.0.0.1) baglanin.

    Karsimiza böyle bir ekran cikacak ve bos alanda SQL ile veritabanimizi programlamaya basliyabiliriz:

    [​IMG]

    Basta zorlanmiyalim diye simdilik sadece alttaki tabloyu programlayalim.

    [​IMG]

    1. Satir: Eger “test” adinda veritabani mevcut ise onu sil

    2. Satir: “test” adinda yeni veritabani olustur

    3. Satir: “test” veritabanini kullan

    5. – 13. Satir: Müsteri Tablomuzu olusturuyoruz

    [​IMG]

    Bütün bunlari yazdiktan sonra üst kisimdaki Simsek(Execute) butonuna basarak scriptimiz calistiriyoruz ve «test» adinda yeni veritabanimiz olusturuluyor icindede sadece «müsteri» tablosu var.
    Son olarakta tablomuza bir Müsteri ekleyelim. Ekledikten sonra SELECT sorgusunu kullanarak tablodaki herseyi console’a yazdiralim:
    PHP:
    INSERT INTO müsteri(müsteri_admüsteri_soyad)
        
    VALUES("Ahmet""Sarikaya");

    SELECT FROM müsteri;
    [​IMG]

    Müsteriyi tabloya eklerken ID'sini biz vermiyoruz cünkü tabloyu olustururken ID alanini AUTO_INCREMENT olarak ayarladik. Yani SQL Server ID'yi otomatik olarak atiyor.
    Kodlari buraya birakiyorum:
    PHP:
    DROP DATABASE IF EXISTS test;
    CREATE DATABASE test;
    USE 
    test;

    CREATE TABLE müsteri(
      
    müsteri_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
      
    müsteri_ad VARCHAR(80NOT NULL,
      
    müsteri_soyad VARCHAR(80NOT NULL
    );

    INSERT INTO müsteri(müsteri_admüsteri_soyad)
        
    VALUES("Ahmet""Sarikaya");
        
    SELECT FROM müsteri;

    INSERT INTO komutu tabloya veri eklemek için kullanılan bir SQL terimidir.

    NOT NULL kısıtlamasını kullanmamız o sütunun NULL değerini kabul etmemesini sağlar. Bu durum o alanın her zaman bir değer içermesini bekler. Yani biz yeni müsteri eklerken müsteri adini girmezsek Server bize hata verecektir

    AUTO_INCREMENT yani otomatik artan alan, ID alanlarına uygulanan bir işlemdir. Tabloya yeni bir kayıt eklendiğinde diğer kayıtlardan farklı bir sayının ID alanına atanması ile gerçekleştirilir.

    SELECT komutu veritabanında bulunan değerleri seçmek ve getirmek için kullanılır.

    Sözlügün kaynagi: https://www.lifeacode.com/sql-dersleri/sql-egitimi.html
     
    Orion-Pax bunu beğendi.
  9. k4r4nl1kofke Guest

    • Guest
    Katılım:
    14 Mart 2017
    Mesaj:
    54
    Alınan Beğeniler:
    45

    Özel Mesaj
    Komutanım Javascript Hakkında derslere başlamak istiyorum .Javascript konusu açılabilirmi.Veya ben yeni gelenlere konu mu açayım siz taşırmısınız.
     
    Grazzs bunu beğendi.
  10. AYDOĞAN TUĞGENERAL

    • Forum Denetleme Gözlem Komutanı
    Katılım:
    11 Ağustos 2012
    Mesaj:
    11,390
    Alınan Beğeniler:
    52,684
    Meslek:
    Defender Ayt

    Özel Mesaj
    Ac konuyu tasırız.
     
    Orion-Pax, 42hfa42, megalanya ve 1 kişi daha bunu beğendi.
  11. 42hfa42 Guest

    • Guest
    Katılım:
    5 Kasım 2019
    Mesaj:
    8
    Alınan Beğeniler:
    0

    Özel Mesaj
    Özelden konuşmak nasıl oluyor
     
  12. AYDOĞAN TUĞGENERAL

    • Forum Denetleme Gözlem Komutanı
    Katılım:
    11 Ağustos 2012
    Mesaj:
    11,390
    Alınan Beğeniler:
    52,684
    Meslek:
    Defender Ayt

    Özel Mesaj
    Erler arası özel mesaj ikinci bir emre kadar kapalıdır.
     
    Orion-Pax ve 42hfa42 bunu beğendi.
  13. 42hfa42 Guest

    • Guest
    Katılım:
    5 Kasım 2019
    Mesaj:
    8
    Alınan Beğeniler:
    0

    Özel Mesaj
    Ne zaman rütbe atlayabilirim komutanım
     
  14. AYDOĞAN TUĞGENERAL

    • Forum Denetleme Gözlem Komutanı
    Katılım:
    11 Ağustos 2012
    Mesaj:
    11,390
    Alınan Beğeniler:
    52,684
    Meslek:
    Defender Ayt

    Özel Mesaj
    Acelenmi var.? Ayt de rütbe istenmez,rütbe üst yönetim tarafından hakedene verilir.Bır daha rütbe konusu mesaj yazarsan aramızdan ayrılırsın..
     
    Orion-Pax ve 42hfa42 bunu beğendi.
  15. TikTok Atıldı

    • Guest
    Katılım:
    17 Kasım 2019
    Mesaj:
    15
    Alınan Beğeniler:
    4

    Özel Mesaj
    Paşam müsaitseniz sizlere birşey konuşmak isterim özel ama
     
  16. AYDOĞAN TUĞGENERAL

    • Forum Denetleme Gözlem Komutanı
    Katılım:
    11 Ağustos 2012
    Mesaj:
    11,390
    Alınan Beğeniler:
    52,684
    Meslek:
    Defender Ayt

    Özel Mesaj
    Özel yasak buradan yaz ne diyeceksen
     
    Orion-Pax bunu beğendi.
  17. TikTok Atıldı

    • Guest
    Katılım:
    17 Kasım 2019
    Mesaj:
    15
    Alınan Beğeniler:
    4

    Özel Mesaj
    Benim eski Ayyıldız Tim er hesabım vardı
    BYE adında ama hesabım sınırsız ban yedi nedenini öğrenebilirmiyim
     
  18. AYDOĞAN TUĞGENERAL

    • Forum Denetleme Gözlem Komutanı
    Katılım:
    11 Ağustos 2012
    Mesaj:
    11,390
    Alınan Beğeniler:
    52,684
    Meslek:
    Defender Ayt

    Özel Mesaj
    Hesap soracak durumda değilsin.Sucun olmasa banlanmazdın.Yasaklı ğye olarak foruma girmişsin bu hesapta banlanacak.
     
    Orion-Pax bunu beğendi.
  19. TikTok Atıldı

    • Guest
    Katılım:
    17 Kasım 2019
    Mesaj:
    15
    Alınan Beğeniler:
    4

    Özel Mesaj
    Ben birşey yapmadım ki ban atıyorsunuz
     

Bu Sayfayı Paylaş