Veritabanı Nedir?
Ne İşe Yarar?
Bilgisayarınızda bir txt dosyası oluşturabilir misiniz? Bunu sizden istiyorum. Musibet de faaliyet de sözden daha tesirli ve kalıcıdır. Milyon faaliyet içinden size en ugyun olanı seçtim.
Veritabanı nedir bunu hakikaten öğrenmek istiyorsunuz değil mi?
Evet ise şu txt dosyasını oluşturun ki veritabanını (DB yi) hemen öğrenip sizinle başka konulara geçelim. Veritabanı hakkında artık zihniniz kullanılabilir bir bilgi ile donanmış olsun.

Yukarıdaki resim sizden istediğimi kendim eğitimci olarak yaptığımın resmidir.
Web programlama yaparken (iki örnek verelim) müşteri de sınıf da takip edilmesi gereken birer nesnedirler. Fazlaca veri oluşuyorsa bu verinin yönetimi web programcılığında ayrıca ele alınmalıdır ve alınıyor. Bunun ayrı bir nesne gibi ele alınmasına veritabanı denir.
Buradaki taban (Base) kelimesinin büyük bir fabrikanın yerleştiği fiziksel alan gibi düşünün. DBMS kısaltmasının açılımı M: yönetim ve S ise Sistem kelimesinin kısaltılmasıdır.
Veri kayıtları DB'ye değil de böyle bir txt dosyasına da yapılabilir ama yönetim zorluğunu bizden öncekiler nasıl aştıysa (DB-DBMS) biz de onların yaptığı gibi aşacağız. DB yönetiminin bilgisayar programı ile yapılmasının zorluğundan dolayı gereklidir.

Run ingilizce bir kelimedir. Bilgisayar programlama dillerinin menülerindeki RUN çalıştırmak anlamına gelir. Windows tuşu ile R tuşuna birlikte basmak ne işe yarar? Bir programın adını bilirseniz çalıştırsınız. Bu iki tuşa basınca gelen ekrana Notepad.exe yazıp Enter** tuşuna basın; txt oluşturup değiştiren programı başlatmış olalım.

Esaslı öğrenmek o şeyle maksimum vakit geçirmekle olur. O yüzden notepad.exe ile müşteri listesi oluşturma zamanınız boşa gitmeyecek söz veriyorum. Sizin zihninize saldıran bir ordu var. Bu ordu zihninize yerleşmek ve ayrıcalıklı yer elde etmek istiyor. Bu ordu içinden veritabanına (database)'e öncelik verin ki nedir neden gereklidir zihninize yerleşsin. Sizin rotanız web programcılığı değil mi? O halde rotanıza uygun olarak DB'nin öğrenilmesine zaman ayırıp; okuma ve uygulamaya devam...
Ne İşe Yarar?
Bu kadar detaylı anlatmama ihtiyaç var mıydı?
Anlamanız cep çakısı gibi olursa lazım olduğu an direkt kullanılır. Notepad.exe ile veritabanı anlama çalışmasını yaparken: Biçim menüsünden "Sözcük Kaydır" seçili olmasın. Seçiliyse tıklayıp o seçililiği kaldırın. Tab tuşu ile de musteri tablosunun sonraki alanlarına geçiş yapın. Tablomuzun alanları sırasıyla yetkili kisi, telefon, teslim alan, teslim gun, aldigi urunler.

Örnek bir müşteri listesi çalışması için benim kendi yaptığım
musteri-listesi.txt'yi açıp bi inceleyin. View port'unuz cep telefonu ekranı ise benim örneği açmayın bilgisayardan açın lütfen.
Şimdi bu dosyanın 100 yada 1000 müşteri kaydı olduğunda nasıl olacağını gelin beraber bir düşünelim. TXT dosyasında sadece CTRL+F tuşu ile arama yapabiliyoruz. CTRL+F ye basıp musteri-listesi.txt dosyasında "
Mehmet" olan satırı aratalım. Peki bu arama bize yeterli olacak mı?
Müşteri listesini açıp "Mehmet" kelimesini yazmak için CTR+F yaptık. musteri-listesi.txt dosyasında Mehmet kelimesini bu şekilde aradık. Yetkili sütununda daki mehmet'i mi aradık yoksa teslim alanlar içindeki mehmet'i mi aradık?
Veritabanı ile konuşurken biz bunu WHERE den sonra like '%Ahmet%' diye yazarak belirteceğiz. Bütün veriler tablolarda yer aldığı ve tablolarda satırlardan oluştuğu için neredeki (where) satırları istiyorsak bunu koşul olarak yazarken where ifadesi kullanacağız. Büyük bir çarşaf düşünün ve bir yerinde ufak bir yırtık olsun biz de o yırtığı dikecek olalım. Neredeki yırtık dikilecek? DB de büyük bir çarşaf gibidir.
Excel Müşteri Takip
Veritabanı nedir? Anlamak için txt gibi ilkel bir veri tutmayı geçip excel ile veri tutmaya çalışalım.
DBMS'nin bize sağladığı kolaylığı txt den hesap tablosuna geçiş ile biraz daha anlamış olacağız. Musteri_takip.ods yada musteri_takip.xls dosyası oluşturup txt dosyadan hesap tablosu mantığına geçtik.
Yukarıdaki resim Open Office programından alınmıştır.
Veritabanında bir müşterinin bilgisi diğer müşterinin bilgisinden satır ile ayrılır. Bu yukarıdaki resimdeki numaralar yeni müşteri anlamına gelir. A, B, C ise müşterinin hangi bilgi türünü tutacağımızı gösterir.
TXT dosyasında tab tuşu kullanarak aynı hizadan başlamıştık. Bu aşamada hizalamayı bize program otomatik yapıyor. Örneğin A sütunu yetkili kişi sutunudur.
Yukarıdaki resimdeki Sheets1 DB'deki musteri tablosuna isabet eder. Tablonun (sheet1) maksimum kayıt tutma kapasitesi 65 bin 5 yüz 36 adettir. 2nin katı olan bu sayı birçok Tablo için yeterli olsa da sonuçta bir sınırlamadır. CTRL + Aşağı ok tuşu ile belge sonuna gidebilirsiniz.
Firmamızda çalışan 3 kişi "Müşteri takip excel" dosyasını kullanmak istese nasıl olacak? Hadi herkes kendisine birer kopya alsın. Bu kopya dosyalardaki bilgiler zamanla ekleme, çıkartma ve değiştirme ile değişmeyecek mi? Giden müşteri ile yeni gelen müşteriler listeye ekleme çıkartma işlemi gerektirdiğinde kişilerdeki kopyaların aynılığı nasıl sağlanacak. Bir kişinin adı yanlış girilmiş ise daha sonra bu bilgiyi kopya1 de düzeltiğimizde kopya2 de de düzeltmek gerekir.
DB Yönetim Sistemlerini Daha iyi anlamak
Bu müşteri tablosu dosyasını bir de devasa kitap listesi olarak düşünün. Bu listeden sipariş vermek için siteyi ziyaret eden kişinin oradan kitap siparişi verdiğini düşünebiliyor musunuz? Çok satan kitaplar listesini nasıl oluşturacağız. Eyvah birisi sipariş sütununa ekleme yaparken diğer bütün müşterilerin siparişlerini de görmüş...
Excel (open office) de bize yetmez. TXT veritabanı yolunda ilk adımdı. Hesap tablosu ikinci adım. İlişkisel veritabanı 3. adım peki ama bunun 4. adımı da mı var. Evet var OLAP denilen yapılar var. İlişkisel veritabanlarının da yetmediği durumlar vardır.
Bu yüzden bilgi yönetmek için veritabanı diye birşey varoldu. İlişkisellik bilgiler (tablolar) arası ilişkiyi ifade eder. Peki tablo nedir? Bu örnek veritabanı dosyamızda sağa doğru her bilgiyi eklediğimizi düşünün her hafta oluşan siparişiler için bir sütun gerekmez mi? 2022 1. hafta siparişler sütunu 2. hafta sipariş sütunu. İşte burada 2. bir tablo gerekiyor. Alışveriş tablosu; Yani Sheet2 bizim ikinci tablomuz olacak.
Müşteri nesnesinin birden fazla olan (tekrarlanan) özelliği siparişleridir. Ve biz bu noktada siparişler diye 2. bir tablo oluşturuyoruz.
İki tablo arasındaki ilişkiyi ID denilen bir rakam ile yaparız. Bu rakam bir satıra verildiğinde tekrar sonsuza kadar ikinci bir satıra verilmez ise artık bu tekil bir rakam olur. Bilgi satırına ulaşmamızı sağlayan bir anahtar görevi görür. Sheet1.A1 birinci müşterinin birinci bilgisidir. Sheet1.A2 ise ikinci müşterinin birinci bilgisidir. (yetkisi kişisidir). Sheet2'de (sipariş tablosunda) birinci sutuna biz 1 yazarsak birinci müşterinin siparişi olur. Sipariş tablosu kurgusu ile artık müşteri birden fazla sipariş verebilir. Müşterinin ana bilgileri ile bu siparişin ilişkisi de kimlikleme numarası ile sağlanır.
Binary Bilgi Veritabanı (DataBase)
Veritabanı nedir? Daha iyi anlamak için veri türlerini bilmek gerek. Notepad.exe ile oluşturduğumuz txt uzantılı dosya ile tutulabilen bilgilerden başka bilgiler de tutulur. Yazı ve rakamlardan başka ne gibi bilgiler tutulur. Binary dediğimiz ikili 010100111 lerden oluşan bilgisayarın elektronik ve magnetik olarak bilgi tuttuğu düzende olan bilgiler de tutulur. Bunlar resim, ses, video vb. şekilde olan bilgilerdir. Tarih bilgi türü de tutulur. Mantıksal bilgi dediğimiz true ve false bilgisi tutulur. Mantıksal bilgi var yada yok gibi doğru yanlış gibi ikili durumların tutulduğu bilgi türleridir.
VT neden gereklidir ve nedir bir parça anladık sanırım. Peki VT ile konuşmak için hangi dili bilmek gerek? SQL denilen yapısal sorgulama dili diye türkçeye çevirebildiğimiz Structure Query Language ile veritabanları ile konuşabiliriz. Ben sizlere bu dili öğreteceğim inşaAllah.
PhpMyAdmin Mysql Yönetim Programı
Phpmyadmin ne işe yarar? MYSQL veritabanlarından bedava olanıdır. Açık kaynak kodlu proje denilen kodları herkese açık olan ve çalıştırılabilir halini indirip kurabildiğimiz bir DB programıdır. DB diye bir kısılatma görürseniz bu DataBase ifadesinin kısaltmasıdır. Buradaki my İngilizce'deki benim kelimesidir.
EasyPHP'yi kurduğumuzda yukarıdaki gibi bir ekran ile çalışmaya başlar. Bize Apache Web Server ve Mysql ile PHP otomatik kurulur ve çlaıştırılır. Saatin oraya gelen EasyPHP ikonuna sağ tıklayıp Phpmyadmin'in de olduğu yönetim ekranını açacağız. Aşağıdaki menü bendeki EasyPHP nin menüsüdür. Versiyonu 5.3.9'dur. Administration seçeneği ile PHPmyAdmin'nin de olduğu ana yönetim ekranı açılır.
Biraz da tablolalar arası ilişkiden bahsedelim. İlişkinin türleri şu 3 şekilde olabilir: Bire-bir, Bire-çok, Çoka-çok.
Bire-Bir İlişki
Bu yapılarda iki tablo birbirinin devamı gibidir. İlişki tablosu dediğimiz 3. bir tabloya gerek bile yoktur. İki tabloya yada birine diğerindeki satırın ID değerini tutan bir alan açılması yeterlidir. Bir kişinin bir tane babası olur. İki tablo dedik ama tek tablo da kendisindeki bir başka kayıt ile ilişkili olabilir. Kişi tablosunda ID_baba diye bir alan yine kişi tablosundaki diğer bir kişiye götürecektir bizleri.
Bire-Çok İlişki
Bu tarz bir relation (ilişki) için şunu örnek verebiliriz: Bir müşteri alışverişe geldiğinde bizim ürünlerimizden tek değil çok çeşitli alabilir. Müşteri alışveriş tablomuzu biz buna göre düşünürüz. Ürünler tablosundaki müşteriye filtreleyip gösterdiğimiz ürünlerden 1çeşit de 10 çeşit de alabilir. Buradaki ürün adetini ürün çeşidiyle karıştırmayın lütfen. 5 tane 500 gr manda yoğurdu alırken 3 tane 300 gr beyaz peynir alacaktır. Alışveriş tablosundaki ilgili alışverişi tutarken her bir ürüne adet girilebilmelidir.
Çoka-çok İlişki
Bu tarz bir ilişkide iki farklı müşterinin de manda yoğurdu alabileceğini düşünmeniz gerekir. Müşterinin birden fazla ürün çeşidi alabilmesi bire-çok ilişki iken aynı ürünü birden fazla müşterinin alabilmesi çoka-çok ilişkidir.
DB nedir? Ne işe yarar sizlere anlaşılır bir şekilde anlattım mı? Evet ise geriye Apache web server kaldı.
PHP - APACHE - MYSQL bilgisayarınızda çalışıyor mu?
Üçünü birden kolayca kurmak için EasyPHP yi indirebilirsiniz.
Tarih 9.7.2022 Cumartesi
_______________________________
** (evlere girişteki bütün odaların kapılarının açıldığı boşluğa verilen antire kelimesi sizce "Enter" kelimesine yakın mı?)
Bu sayfanın TEKİL ziyaretçi sayısı:
289
Web Bölümü Anasayfa