Kral-Forum - En Büyük Paylaşım Platformu
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Kral-Forum - En Büyük Paylaşım Platformu

Alemin En Kral Paylaşım Platform Sitesi
 
AnasayfaPortalLatest imagesKayıt OlGiriş yapsitemiekle

 

 Veri Tabanı Kavramına Giriş...

Aşağa gitmek 
YazarMesaj
By LaZoLi53
Administratör
By LaZoLi53


Erkek Mesaj Sayısı : 152
Nerden : mars\'dan
İş/Hobiler : pc,hacked
Kayıt tarihi : 18/02/08

By Poyraz
masterhack:
Veri Tabanı Kavramına Giriş... Left_bar_bleue0/0Veri Tabanı Kavramına Giriş... Empty_bar_bleue  (0/0)

Veri Tabanı Kavramına Giriş... Empty
MesajKonu: Veri Tabanı Kavramına Giriş...   Veri Tabanı Kavramına Giriş... Icon_minitimeC.tesi Mart 22, 2008 12:51 pm

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



Ş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ı Kavramına Giriş... Biggrin 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ı Veri Tabanı Kavramına Giriş... Smile
Ş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…
    </li>
Bakın arkadaşlar bu sayede şöyle bir sistem kurmuş olduk;
Veri Tabanı Kavramına Giriş... 1000001041_image003

Ş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…
Sayfa başına dön Aşağa gitmek
https://kral-forum.catsboard.com
 
Veri Tabanı Kavramına Giriş...
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Kral-Forum - En Büyük Paylaşım Platformu :: Programlama Dilleri :: Veritabanları&SQL-
Buraya geçin: