ForumTayfa  

Go Back   ForumTayfa > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama Bölümü > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama > Programlama

Programlama Programlama hakkında herşeyi paylaştığımız, soru ve sorunlarımızı tartıştığımız bölüm...

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 26.04.07, 17:42   #1 (permalink)
Deneyimli Tayfa
 
silentwolf - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Dec 2006
Nereden: burada
Mesaj Sayısı: 3.964
Konu Sayısı: 157
Takım: Fenerbahçe
Rep Gücü: 196650
Rep Puanı: 19663395
Rep Derecesi : silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000
Ruh Hali:

Standart Veri Tabanı Kavramına Giriş




Bilge Adam eğitmenlerinden Türkay Hoca'nın Veri Tabanı Kavramıyla ilgili yazdığı makaleyi sizlerle paylaşıyorum : (Hocam sakın kızma )



Şimdi sizler bu makaleyi okumaya başlarken “vay be Şişman Adam nerelerdesin sen” demeyin sakın… Son makalemizde msn’imizi yazdık ne arayan oldu ne de soran... Bu mudur yani ? İşin esprisi sevgili dostlarım uzun süre maceralara ara verdiğim için kusuruma bakmayınız ama bakınız 2007’ye bomba gibi giriyoruz…
Sevgili dostlarım; eğer bu maceraların takipçisiyseniz; yazılımın, hayatın tam içinden olduğunu biliyorsunuz demektir ve eğer bunun bilincindeyseniz; benden de böyle bir yazım tarzı bekliyorsunuz demektir…
Ama söz konusu Veritabanı olunca…
Ya… Heyecanlanmayın tamam… Şaka yaptım sadece “Ama” sı falan yok… Veri tabanı da, hayatımızın içinden bir kavram…
Şöyle düşünün arkadaşlar (bu tarzı yemin ederim çok özlemişim.) Günlük hayatımızda, doğumumuzdan ölüme kadar olan süreç içersinde tüm yaşamsal ihtiyaçlarımızı karşılamamızda yardımcı olan en önemli şey nedir sizce? Hadi canım dürüst olun! “Para” dır. Öyle değil mi?
Peki sizler günlük hayatınızda bu paraya sürekli ulaşabilmeniz, üzerinde işlem yapabilmeniz ve paranın güvenliğini sağlamak için ne yaparsınız… Sıralayalım:
  • Anneme veririm, annemden alırım.
  • Yastığımın içine koyarım.
  • Testiye koyup bahçeme gömerim
  • Bankaya yatırırım ve böylece internet, telefon gibi iletişim cihazlarını kullanarak parama istediğim zaman erişir, üzerinde işlem yapabilirim. Hem de güvenli olur.
Buradaki durumda; “en hızlı ve güvenilir” olanı seçersek; bu seçenek hiç şüphesiz ki; “Banka” olacaktır.
İşte sevgili dostlarım; günlük hayatımızdaki paranın yerini, yazılım hayatında “veri” almaktadır. Bankanın yerini ise Veritabanı…
O zaman Yukarıda yer alan son maddeyi buna göre tekrarlayalım
“Veritabanını kullanarak verime istediğim zaman erişir, üzerinde işlem yapabilirim. Hem de güvenli olur” (yo hayır tabii ki copy-paste yapmadım ellerimle yazdım).
Arkadaşlar, üzerinde önemle duruyorum ki, veritabanına kavramına hakim olmak ve ona hak ettiği ehemmiyeti vermek çok önemli. Lütfen ve lütfen veri tabanı bilmeden yazılım konusunda çok fazla yol kat edilemeyeceğinin bilincinde olalım…
Bu benden beklenmeyen ciddi uyarıdan sonra, hayattaki örneklerimize geri dönelim…
Dostlarım; mademki, veriyi para ile bir tutuyoruz, bu yoldan hareketle şunu söyleyebiliriz, önemli olan parayı BİRİKTİRMEK değil YÖNETMEK’ tir. Yoksa efenim enflasyonu var, devalüasyonu var… Risk yönetimini ciddiye almak lazım.
Yatırım yönetimi konusunda tecrübeli insanlardan öğrendiğim kadarıyla; paranın birbiriyle ilişkili olacak şekilde birden farklı yatırım kanallarına bölünerek değerlendirilmesi çok daha iyiymiş. Ama burada önemli olan kriter, yatırım kanallarının çok olması DEĞİL, ilişkilerinin sağlıklı olmasıymış…
Devam etmek isterim ama, konumuz SQL değil mi? Mademki veri eşittir para, o zaman acaba yatırımcı ağabeylerin / ablaların sözlerini veritabanında da kullanabilir miyiz ?
Evet, aslında sevgili dostlarım iki paragraf önce, ilişkisel veritabanı yönetimi sistemi – Relational DataBase Management System (RDBMS) kavramına girmiş oldunuz. Yazılım dünyasına hayırlı ve uğurlu olsun.
Evet arkadaşlar, veritabanındaki yatırım araçlarımız ise tablolarımızdır. Tablolar arası kurulan ilişkiler aracılığıyla; verinize güvenilir ve hızlı erişir ve aynı oranda güncelleyebilirsiniz… İşte bu, verileri tablolara bölme ve tabloları birbiriyle ilişkilendirme yöntemlerine de normalizasyon adı verilir.
Dostlarım, tecrübeli yatırımcılar nasıl tecrübelerini diğer yatırımcılara aktarıyorlarsa, RDBMS kavramına yılların emeğini vermiş insanlar da bizlere öyle aktarıyorlar modelleme yöntemlerini… Normalizasyon kavramı da aslında bu tarz önerilerin bir manifestosudur. Söz gelimi; Excel’de oluşturulmuş bir belge de veri tabanı olarak düşünülebilir ancak “hmm bak böyle yaparsan daha iyi olur” der bize normalizasyon…
Bir veritabanının normalizasyonunu oluştururken başlangıç olarak “amaçladığınız sonuç” a karar vermelisiniz dostlar. Yani elinizdeki verinin olabilecek en detaylı çıktısını örnekleyerek yola çıkarsınız.
Hadi eğlence başlasın o zaman
Senaryomuz bir telefonla pazarlama şirketi üzerinden olsun. Bu şirketin, nasıl çalıştığını kaba taslak bir çizelim önce…
Şirketimiz birkaç kategoriden oluşan ve birkaç farklı tedarikçinin sağladığı ürünleri, kayıtlı müşterilerine ulaştırmaktadır. Satılan ürünler, anlaşmalı kargo şirketleri tarafından müşterilere ulaştırılmaktadır. Bu arada, şirketin çalışanları sattıkları ürünlere belli oranlarda prim alırlar. Bu durumda söz konusu şirket için sipariş verilerinin tutulması çok büyük önem taşımaktadır.
Bu paragraf, bazı şeylerin kafamızda canlanması için yeterli sanırım. Bakınız bazı kelimelerin üzerinden geçelim ve daha dikkatli olalım
  • birkaç kategoriden oluşan
  • farklı tedarikçinin sağladığı
  • ürünleri
  • kayıtlı müşterilerine
  • anlaşmalı kargo şirketleri
  • çalışanları
  • sipariş
(Bu sefer copy – paste yaptım. İtiraf ediyorum).
İstediğimiz en detaylı veri çıktısı ise aşağıdaki gibi olsun:

Sipariş No.........1
Müşteri Adı....... Ayhan Çalışkan
SiparişTarihi...... 07.01.2007
Gönd.Gereken T. 14.01.2007
Kargo Tarihi...... 10.01.2007
Kargo Ücreti..... 100 YTL
Alınan Ürün...... Plazma TV
Ürün Kategorisi. Elektronik
Ürün Adedi 1
Sipariş Toplam 2500 YTL

Şimdi… Biraz kendimizi zorlayalım ve bazı sorular soralım:
  1. Böyle bir veriyi en hızlı ve en güvenli şekilde nasıl elde ederim
  2. Bu veriden daha farklı olarak nasıl veriler üretilebilir ?
İkinci sorumuzdan başlayalım.
  • Çalışanlar satışları üzerinden prim aldıklarına göre, hangi çalışanın ne kadar ürün sattığı bilinmek istenecektir.
  • Hangi müşterinin belirli bir dönemde ne kadar ürün aldığı görülmek istenebilir.
  • Bir tarih verilip, o tarihteki siparişler görülmek istenebilir.
  • Kargo şirketlerinin durum takibi istenebilir
  • En çok hangi ürünün satıldığı / kar ettirdiği bilinmek istenebilir.
  • En çok kazandıran sipariş görülmek istenebilir
Ve daha fazlası.. Bu patronlar hep böyle canım isterler de isterler… Şimdi biz, bu veritabanının nasıl normalize edileceğine bakalım….
Bir an için, bilgisayar diye bir şeyin icat edilmediğini var sayalım. Ama yine de, yukarıdaki raporları isteyen bir patron mutlaka olurdu herhalde !! (Ey sevgili patronum eğer bu yazıyı okuyorsan seni tenzih ederim… Sözüm meclisten dışarı
Şimdi madem bilgisayar yok, o zaman raporları hazırlamanız için kendinize bir ekip kurardınız di mi? Peki Bu ekibin görev dağılımı en verimli nasıl olabilirdi ?
Verimlilik derken şunu kastediyorum, ekibinizdeki tüm kişilerin performansı yüksek olmalıdır ki; istediğiniz raporu hızlıca hazırlayabilsinler. Çok sıkılıp bunalmasınlar. Her veriyi nerede bulabileceklerini çok iyi bilsinler. Yani o konuda uzman olsunlar.
Demek ki, ekipteki her kişiye uzman olması gereken bir konu vereceğim;
Örneğin;
  • Mehmet bey; siz yalnızca çalışanların bilgilerinden sorumlusunuz. Her bir çalışanın, adı, soyadı, iletişim bilgileri, doğum tarihi sizden sorulacak
  • Aykut bey; siz ise Kargo şirketlerinden sorumlusunuz efenim
  • Emre bey, siz Kayıtlı Müşterilerden sorumlusunuz. Şirketin müşteri portföyündeki tüm bilgileri ne var ne yok bilmenizi istiyorum
  • Cihan bey aramızdaki en tecrübeli sizsiniz bu nedenle Sipariş bilgilerini de size emanet ediyorum…Hangi siparişimiz hangi müşterimiz tarafından alınmış.. Hangi çalışan satmış, sipariş tarihleri falan sizden sorumludur efendim
  • İlhan bey, siz siparişlerin bazı detaylarından sorumlusunuz. Örneğin hangi siparişte hangi üründen kaç adet var – indirim felan yapılmış mı bu görev sizin…
  • Derya hanım, siz ürün bilgilerinden sorumlusunuz…
  • Ayhancım dostum, sen kategorileri çok iyi bileceksin. Ona hakim olacaksın hadi göreyim seni…
  • Tuğrul bey siz de, efenim lütfen tedarikçi şirketlerimiz hakkındaki tüm verilere hakim olunuz…
Şimdi değerli ekip arkadaşlarım beni iyi dinleyiniz. İşleri hızlandırmak için şöyle bir şey yapacağız; Şöyle ki :
    1. Ayhan ve Tuğrul bey siz telefon numaralarınızı Derya hanıma veriniz.
    2. Derya hanım siz de telefon numaranızı İlhan bey’e veriniz lütfen.
    3. İlhan bey siz, Cihan beyin de telefon numarasını alın…
    4. Emre Aykut ve Mehmet bey sizlerde telefon numaralarınızı Cihan beye veriniz lütfen…
Bakın arkadaşlar bu sayede şöyle bir sistem kurmuş olduk;


Şimdi niye böyle bir şey yaptık? Şöyle düşünün yazılım dostları, ben Derya hanım’a, Ürünlerin hangi kategorilere ait olduklarını ve bu ürünleri kimden tedarik ettiğimizi sorarsam; Derya hanım hemen Ayhan bey’i arayarak ürünlerin kategorilerini soracak. Bilgileri aldıktan sonra da, Tuğrul beyi arayıp, tedarikçilerin isimlerini alacak. Yani, bu bilgiler, Derya hanım’da toplanacak ve istediğim rapor hazırlanmış olacak. Di mi ? Peki yukarıdaki “en detaylı veri çıktısı” nı istersem?
O zaman;
1. Cihan Bey, Mehmet Bey’i arayarak, Çalışan ismini sorar
2. Cihan Bey, Emre Bey’i arayarak, Müşteri ismini sorar
3. Cihan Bey, Aykut Bey’i arayarak siparişi götüren kargo şirketini sorar
4. Cihan Bey, İlhan Bey’i arayarak hangi ürünün sipariş edildiğini sorar
5. İlhan bey bunu bilmediğinden, Derya hanımı arar ve ürün adını öğrenir
6. Derya hanım kategorisini öğrenmek için Ayhan bey’i arar
Ve ben raporumu yine elde ederim !!!!
Ya sevgili dostlar tahmin ettiğiniz gibi yukarıdaki senaryoda, ekibimde bulunan insanlar aslında birer tablo. Ve tablolar birbirlerine ilişkiler ile bağlı…
Bakın bir kavram daha görmüş oluyorsunuz böylece….
PrimaryKey’ler ve ForeignKey’ler… Bunu şöyle açıklayalım…
Tuğrul bey’in cep telefonu numarası kendisinin PrimaryKey’idir…
Derya hanımın cep telefonundaki rehberde yer alan Tuğrul Bey’in numarası ise ForeignKey’dir…
Derya Hanım bu ForeignKey’i kullanarak Tuğrulbey’e ulaşır…
İŞTE VERİM DİYE BEN BUNA DERİM
Süper oldu ama di mi ? Ben yöneticilik mi yapsam ne ?
Evet sevgili yazılımseverler… Bu makalemde, normalizasyon kavramını naçizane Şişman Adam tarzında anlatmaya çalıştım sürç-i lisan ettiysek affola…
Umarım hoşunuza gitmiş ve veritabanı kavramının mantığını anlamışsınızdır…


__________________
bir silahım olsaydı...




hiç bir farklılık ayrımcılığa neden olamaz.
Hürriyet Hürriyettir.

silentwolf isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 23.10.09, 13:15   #2 (permalink)
Yeni Tayfa
 
cakil1907 - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Oct 2009
Mesaj Sayısı: 1
Konu Sayısı: 0
Rep Gücü: 0
Rep Puanı: 10
Rep Derecesi : cakil1907 0-250000
Standart Cevap: Veri Tabanı Kavramına Giriş




Çok yararlı oldu benim için..Teşekkür ederim.Ama devamınıda eklerseniz çok sevinirim.


cakil1907 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 05:35.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
User Alert System provided by Advanced User Tagging v3.0.6 (Lite) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
ForumTayfa

Arşiv: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 102 103 104 105 106 155 156 157 158 159 160 161 162 163 164 167 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271


ForumTayfa - Link Değişimi
Telinka İletişim | Voip Ürünleri | Link Değişimine Katılın |

Sitemiz bir forum sitesi olduğundan dolayı, kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. ForumTayfa Yöneticileri mesajları itina ile kontrol etse de, bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Yine de sitemizde yasalara aykırı unsurlar bulursanız [email protected] email adresine bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.

Any member of our web site has the right of adding comments instantly without getting permisson due to the forum structure of our site basis. Althought, our site modarators check comments with care, all the responsibilities sourced from these comments directly belong to the members. If you still find any illegal content in our site ( A.buse, H.arassment, S.camming, H.acking, W.arez, C.rack, D.ivx, Mp.3 or any Illegal Activity ), please report us via [email protected] .Your reports will be evaluated as soon as the arrival of your e-mail.