![]() |
|
|
#1 (permalink) |
|
Paylaşımcı Tayfa
![]() Üyelik tarihi: Dec 2006
Nerden: İstanbul
Mesaj Sayısı: 2.364
Konu Sayısı: 127
Takım: Fenerbahçe
Rep Gücü: 4462
Rep Puanı: 445812
Rep Derecesi :
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
Ruh Hali:
|
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:
İş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
İ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:
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;
![]() Ş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. |
|
|
|
![]() |
| Seçenekler | |
| Stil | |
|
|