Bir Database(Veritabanı) nedir

advertisement
Bir Database(Veritabanı) nedir?
•
Bir
database(veritabanı),
information(bilgiler)
topluluğudur.
Bu
bilgi
çok
yapısallaştırılmış bir şekilde muhafaza edilir. Bilinen bu yapıyı çok iyi değerlendirerek
bilgiye hızlı ve doğru bir biçimde erişebilir ve değiştirebiliriz.
•
İçinde bulunduğumuz bilgi çağında database‘ler hemen her yerdedir:
¾ Kitapçıya gittiğinizde ve bilgisayarda belirli bir kitabı aradığınızda kitapçının kitap
database’ine erişiyorsunuz demektir.
¾ Eğer internet üzerinden bir ürünü “on-line” olarak satın alıyorsanız, Web Sitesi sahibi
satıcının ürün database’ine ulaşıyorsunuz demektir.
¾ Bankanız bütün parasal kayıtlarınızı kendi database’i üzerinde tutmaktadır. Aylık
hesap eksterlerinizi size gönderen bankanız aslında database report/veritabanı
raporu bastırıp size göndermektedir.
¾ Doktorunuza telefon edip randevu istediğinizde, sekreter, müsait zaman için aslında
kendi database’ine bakmaktadır.
¾ Arabanızı tamire götürdüğünüzde, servis teknisyeni, arabanız üzerinde eski tarihlerde
ne türde işler yapıldığını görmek için kendi database’ine bakmaktadır.
¾ Bir süper markete gittiğinizde kasiyer, her ürünü bar-kod okuyucusu ile okuttuğunda,
süper marketin database’inden o ürünün fiyatını aldığı gibi, stok kontrolünü de aynı
zamanda birlikte yapmaktadır.
•
Database’in hayatımıza girdiği pek çok alanı eminim sizler de bulabilirsiniz. Bilmeniz
gereken şey onun her yerde olduğudur. Her database sakladığı bilgiler konusunda
kullanıcısı ile etkileşime girmek için bazı yollara ihtiyaç duyar. Böylesi etkileşimler
(interaction) bir database management system-veri tabanı yönetim sistemi (DBMS)
sayesinde olur.
•
Bir DBMS’in kullanım amaçları gerçekten basittir. Kavram olarak bir database ile
yapabileceğiniz şeyler:
1. Veriyi görmek (izlemek)
2. İlgilenilen bazı verileri bulmak (seçmek ve ayırmak)
3. Veriyi değiştirmek (edit etmek)
4. Bazı veriler eklemek
5. Bazı verileri silmek
Pek çok ticari “database management systems-veritabanı yönetim sistemleri” bu işleri
yapabilir. Access ve Oracle dünya çapında kullanılmaktadır. Bu derslerde Visual Basic’i bir
DBMS olarak inceleyeceğiz.
•
Visual Basic’i bir DBMS olarak kullanabileceğiniz yerlere örnekler:
¾ Bir veritabanı yönetimi gerektiren yeni bir uygulama oluşturmak
¾ Var olan bir database’e bağlanma
¾ Bir database ile internet yolu ile etkileşime girme
•
Bir database bilgisayarınızda (veya kullanıcının bilgisayarında) local (yerel) olarak müsait
olabilir veya bir LAN (local area network-yerel alan ağı) içinde çoklu kullanıcılar
tarafından paylaşılabilir veya sadece Web Server üzerinde kullanılabilir durumda olup,
internet yolu ile ulaşılabilir veya kullanılabilir.
Visual Basic
Programlama bilgisayarın icadıyla başlamış günümüzde çok daha yaygınlaşmış ve
giderek de yaygınlaşacaktır. Yakın geçmişe bakacak olursak DOS tabanlı programları, oyunları
hatırlarız. Ancak Windows 3.1 ile visual (görsel) ortama geçilince bu programların tahtı
sallandı ve visual programlama dilleri piyasaya sürüldü. Windows 95 ile visual programlama
dilleri'nin sayısı arttı ve günümüzde her ihtiyaca yanıt verebilecek şekilde çoğaldı ve çeşitlendi.
Microsoft Visual Basic 6.0 ise şu anda en çok tercih edilen programlama dilleri arasında
yer almaktadır. Windows işletim sistemlerinin yaratıcısı olan Microsoft firması tarafından
piyasaya sürülen bu programlama dili ile Windows'un tüm olanaklarına hakim olabilir, ticari
programlar hazırlayabilir, İnternet uygulamaları geliştirebilir; hatta Windows'da eksik
gördüğünüz her hangi bir noktayı giderebilir veya eklemeler yapabilirsiniz. Kısacası Microsoft
Visual Basic ile yapabilecekleriniz hayal gücünüz ile sınırlı.
Visual Basic Hakkında Ön Bilgi
Bill Gates ve Paul Allen 1970'lerin hemen öncesi, yani okul yıllarında bir programlama
dili yazdılar. Bu programlama dilinde birkaç oyun hazırladılar. Yazdıkları programlama diline
BASIC adı verdiler. Beginner's All-Purpose Symbolic Instruction Code kelimelerinin baş
harflerinden oluşan BASIC, 70'lerde bilgisayarın küçülmesi ve daha işlevsel hale gelmesiyle
Bill Gates ve Paul Alien tarafından 350 dolara kasetlere kaydedilerek çoğaltıldı ve satıldı.
Böylece Microsoft kurulmuş oldu. Microsoft bir yandan gelişirken diğer yandan da BASIC
geliştiriliyordu. GWBasic, QBasic ve en sonunda Windows ile Visual Basic versiyonu
piyasaya sürüldü.
Visual Basic şu an kullanımı ve öğrenimi en kolay programlama dilidir fakat diğerlerine
göre daha iyi performansa sahip donanıma ihtiyaç duymaktadır. En çok kullanılan nesneye
yönelik görsel programlama dilleri arasında Karşılaştırma yaparsak aşağıdaki sonuçları
gözlemleriz:
C++ Builder
Yazılan programlar çok hızlı, öğrenimi ve kullanımı çok zor.
Delphi
Yazılan programlar hızlı, öğrenimi zor.
Visual Basic
Yazılan programlar yavaş, öğrenimi ve kullanımı çok kolay.
Visual Basic nesneye yönelik bir programlama dilidir. Projenize nesneyi eklersiniz ve
nesneyle ilgili kod yazarsınız. Bu nesneler tamamıyla programcının hakimiyeti altındadır. İlgili
özellikler ve olaylar programcı arafından belirlenir. Bu nesneleri programlarken ise belirli bir
mantık gütmeniz gerekir. Bu mantık, daha önce hiçbirşey bilmeyen bir çocuğa marketten
alışveriş yaptırmaya benzer. Çocuğa neler yapacağını tam olarak söylemelisiniz ve bazen de
neler yapmayacağını izah etmeniz gerekir. Bu çocuğa vereceğiniz yönergeler şöyle olmalıdır:
1) Market, kapıdan çıkıp sağ taraftaki 4.sokağa girildiğinde sol taraftaki 4. bina!
2) Alacakların:Domates=kırmızı-yuvarlak-sulu, meyve suyu=kutu içerisinde- sıvı,
limon= sarı-orta boy-sulu
3) Alınacak miktar:4 domates, 1 meyve suyu, 8 limon
4) Toplam tutar:1,2Ytl
5) Oturduğun yerden kalk!
6) Markete git!
-Market kapalıysa sağ taraftan ilerle, sokağın solunda sola dön, sol taraftaki 3. sokaktan
sonra 2. kapıdan gir ve kapalı olduğunu söyle!
-Market açıksa emirleri işlemeye devam et.
7) 4 domates al.
8) 1 meyve suyu al.
9) 8 limon al.
10) Limon tezgahının arka tarafındaki giyecek reyonunun tam önündeki kasaya git.
11) Toplam tutarı öde.
12) Fişini al, kasadan ayrıl.
13) Binadan çık, sağ taraftan ilerle, sokağın solundan sola dön, sol taraftaki 3. sokaktan
sonra 2. kapıdan gir.
14) Aldıklarını teslim et.
15) Bunları bir daha yapmak için hazır ol.
Yukarıdaki mantık biraz komik fakat tam anlamıyla programlama mantığıdır.
Programınızı nasıl programlarsanız virgülüne kadar söylediklerinizi yapacaktır. Başka bir
deyişle bilgisayara ne verirseniz onu alırsınız.
Visual Basic’ te Neler Yapabilirsiniz?
Visual basic, bir programlama dili olduğundan,
•
Kayıt depolamaya yönelik ticari programlar,
•
İşletim sistemi için yardımcı programlar,
•
Oyunlar,
•
Ekran koruyucular,
•
Chat programları,
•
Sunucu-istemci sistemiyle çalışan etkileşimli programlar,
•
İnternet programları,
•
Resim işleme programları,
•
Donanım yönetim programları,
yazılabilir. Unutmayın; Visual Basic’te yapabilecekleriniz hayal gücünüzle
sınırlıdır.
Visual Basic nerede uygulanabilir?
•
Database management (veritabanı yönetimi) olarak, Visual Basic uygulamamızın,
database’e, bir front-end (ön-uç) olarak davrandığını söyleyebiliriz. Bunun anlamı,
Visual Basic uygulamasının, bir interface (arabirim)’i kullanıcı ile database arasında
sağladığıdır. Bu interface (arabirim), kullanıcıya, kulacının database’den ne istediğini
söylemesine ve database’nin bir şekilde istenilen bilgiyi cevap olarak göstermesine izin
verir.
•
Bir Visual Basic Uygulaması direkt olarak bir database ile etkileşime giremez. Database
ve uygulama arasında iki ara bileşen bulunmaktadır: data control (veri kontrolü) ve
database engine (veritabanı motoru):
Kullanıcı
Visual Basic Uygulaması
Data Control
Jet Database Engine
Database
•
Data control (veri kontrolü) bir Visual Basic nesnesi olup, uygulamayı database engine
(veritabanı motoru) yolu ile database’e bağlar. Uygulama ile “engine” arasında bir bağdır
ve bilgiyi ikisi arasında ileri ve geri olmak üzere (iki yönlü) iletir.
•
Database engine (veritabanı motoru), “Visual Basic Database Management System
(Visual Basic Veritabanı Yönetim Sistemi)’nin kalbidir. Yönetim’i(management)
sağlayan gerçek bir yazılımdır. Bu “engine” ‘e sahip olmak, programcıyı pek çok
zahmetten kurtarır. Database engine (veritabanı motoru) Visual Basic’in yapısından
(kendiliğinden) bir parçasıdır ve “Jet Engine” olarak bilinir. Veritabanı yönetimi için
kullanılan Microsoft Access tarafından kullanılan ile aynıdır. Bundan dolayı Access
Database’ler ile kullanılır, fakat diğerleri ile de çalışmaktadır.
•
Belirtildiği gibi, “Jet Engine” bizi pek çok zahmetten kurtarır. Veritabanı yönetim
sistemleri için Visual Basic’in bir “front-end” olarak kullanımının gücünü anlamak üzere
şunlara bakınız:
Visual Basic ile kullanımı var olan bir database’e bağlanma açısından oldukça
az kodlama gerektirmektedir. Bu, database içinde bulunan bütün bilgileri görmek veya bu
bilgilerden herhangi birisini veya hepsini değiştirmek için kullanılır.
Bütün database’lerin amaçları yukarıda belirtilmiştir, bir satır kod dahi yazmadan
yapılabilir! Bu, “Jet Database Engine” nin gücüdür!
•
Eğer “Jet Engine” böylesine güçlü ve eğer Microsoft Access tarafından da kullanılıyorsa
niçin Access’i, bilinen Visual Basic Uygulamaları yazmak yerine DBMS olarak
kullanmayalım? Visual Basic’i DBMS olarak Access yerine kullanmanın iki temel
avantajı bulunmaktadır:
1. Kullanıcılarınızın Access’i bilgisayarlarına kurmuş olmalarına ve Access ’in nasıl
kullanılacağını bilmelerine gerek yoktur.
2. Bilinen bir “front-end” yapılandırarak database içinde bulunan bilgiler ile
kullanıcınızın yapabileceklerini sınırlandırabilirsiniz. Normalde Access böylesine
sınırlamalar sağlamaz.
•
Bu
derste
“front-end”
ler
oluşturacak,
Visual
Basic
uygulamalarını
nasıl
yapılandıracağımızı öğreneceğiz. Araştırmalar göstermektedir ki Visual Basic
uygulamalarının yarısından fazlası database’ler ile ilgili olarak çalışmaktadır.
Uygulamalarımızı nasıl komple “database management system/veritabanı yönetim
sistemleri” içinde kullanacağımıza, yeni database bilgilerini (informations) nasıl
görebileceğimize, nasıl arayabileceğimize, değiştireceğimize, ekleyeceğimize ve/veya
sileceğimize bakacağız.
İlişkisel Veri Tabanı
İlişkisel veri tabanı, ayrı tablolara yerleştirilmiş verilerin belirli alanlarına göre
ilişkilendirilerek; ilişkisel modele göre düzenlenen veri tabanlarına verilen isimdir. Çeşitli
türden veri tabanları olmasına rağmen, ilişkisel veri tabanları günümüzde en çok kullanılandır.
Bir veri tabanının en önemli nesnesini tablo adı verilen kavram oluşturmaktadır. İlişkisel
veri tabanlarında tüm veriler tablolar içinde saklanmaktadır. Bir tablo satır (row) ve
sütunlardan (column) oluşmaktadır. Tablo içindeki satırlar tablonun bir anlamda kayıtlarıdır.
Sütunlar ise tablonun dikey alanlarıdır. Her sütunun mutlaka bir ismi vardır ve işlemler bu
isimlere göre yürütülür. Aşağıda bir tablonun satır ve sütunları görülmektedir.
Sütun İsimleri
Örgenci_No Adı
Soyadı
Doğum_Tarihi
100
Burak
Özkan
7/09/1985
213
Dilay
Dondurmacı 12/09/1990
245
Mehmet Öztürk
13/11/1982
Tablo
Satırları
İlişkisel veri tabanlarında genellikle SQL (Structured Query Language) yapısal
sorgulama dili kullanılmaktadır. Bu dilin kendine özgü deyimleri vardır.
SQL Deyimleri
SQL, İngilizce "Structured Query Language" kelimelerinin baş harfleri ile oluşturulmuş,
Türkçesiyle Yapısal Sorgulama Dilinin kısa adıdır. SQL kendisi bir programlama dili
olmamasına rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir
veri tabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veri tabanı üzerinde işlem
yapılabilir. SQL'ye özgü cümleler kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar
değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir.
Veri Tabanı Yaklaşımı ile birlikte bir veri sorgulama diline veya aracına ihtiyaç
duyulmuştur. İlk başta matematiksel bir sözdizimine sahip olan SQUARE adlı bir dil
geliştirilmiştir. Geniş kullanıcı kitleleri tarafında kolay kullanılabilmesi için matematiksel söz
dizimli SQUARE dilinden vazgeçilerek, İngilizce'ye benzer sözdizimine sahip bir dil
oluşturulmuş ve SEQUEL (Structured English Query Language) olarak adlandırılmıştır. Daha
sonra da bu SEQUEL dili, İngilizce söylenişine paralel olarak SQL olarak adlandırılmıştır.
SQL dili ilişkisel alanda büyük ilgi görmüş ve İlişkisel Veri Tabanı Yönetim
Sistemlerinin (VTYS) tümünde yer alan standart dil görünümü kazanmıştır. Bu nedenle Veri
Tabanı konusunda çalışan tüm bilişim teknik personeli tarafından bilinmesi gereken bir dil
konumundadır.
İlişkisel veri tabanının dili olan SQL’de sorgulama işlemleri, SELECT deyimi
yardımıyla yerine getirilir. SELECT deyimi temel olarak üç farklı işlemi yerine getirmek için
kullanılır:
1. Bir tablodaki satırları seçme işlemi yapılabilir.
2. Bir tablodaki belirli sütunlar seçilebilir.
3. Birden fazla tablonun belirlenen sütunları arasındaki ilişkileri kullanılarak
birleştirilebilir.
SELECT Deyiminin Yapısı
SELECT deyiminin en basit biçimi şu şekilde ifade edilmektedir:
SELECT {*\ sütun, . . .}
FROM
tablo
Tanım içinde bazı SQL anahtar kelimelere yer verilmektedir. Bu anahtar kelimeler,
SQL’in kendi özel kelimeleridir ve aynen bu şekilde ifade edilmelidir.
SELECT
SQL’in sorgulama deyimidir.
FROM
Hangi tablonun sorgulanacağını ifade eder.
Tablonun Tüm Sütunlarını Seçmek
Bir tablonun tüm sütunları seçmek söz konusu ise, SELECT deyimi içinde sütun isimleri
yerine * işareti kullanılır.
SELECT * FROM tablo
Örnek
Bölüm isimli tablo sütunlarının şu şekilde olduğunu varsayalım. Bu tablo bir firmanın
bölüm isimlerini içermektedir.
Sütun Adı
Açıklama
Bölüm_No
Bölüm numarasıdır.
Bölüm_Adı
Bölümün adı.
Bu tablonun içerdiği tüm verileri görüntülemek istiyoruz. Bunun için aşağıda belirtilen
SELECT deyimi düzenlenir:
SELECT * FROM Bölüm;
Belirli Sütunların Seçilmesi
Tablo içinde belirlenen sütunların elde edilmesi söz konusu ise, SELECT deyimi içinde
bu sütun isimlerine yer verilir. Sadece bir sütun ismi kullanılabileceği gibi, çok sayıda sütun
ismi virgüllerle birbirinden ayrılmak suretiyle de kullanılabilir.
Örnek
Bölüm tablosunun sadece bölüm numaraları ve bölüm isimlerini içeren sütunlarını, yani
Bölüm_No ve Bölüm_Adı sütunlarını seçerek görüntülemek istiyoruz. Amacımıza uygun
SELECT deyimi şu şekilde düzenlenebilir:
SELECT Bölüm_No, Bölüm_Adı FROM Bölüm;
Sütun isimleri tablo isimleriyle birlikte ifade edilebilir. Özellikle birden fazla tablo varsa
bu yola başvurulur. Bunun için, tablo ismi her bir alanın başına eklenir ve araya bir nokta
işareti konur. Sonuç yukarıdaki ile aynı olacaktır.
SELECT Bölüm.Bölüm_No, Bölüm.Bölüm_Adı FROM Bölüm;
Veri İşleme Olanakları
SELECT deyimi
SELECT
ilçe,
postakodu
from
tabloİlçeler
WHERE
plakaKodu
=
'06'
Ankara'nın ilçeleri ile posta kodları gösterir
UPDATE deyimi
UPDATE
tabloİlçeler
Bala'nın posta kodu değiştirir
set
postakodu
=
'06720'
WHERE
ilçe
=
'Bala'
INSERT deyimi
INSERT
INTO
tabloİlçeler
VALUES
(,
'Yenişehir',
,
,
'82')
Yeni veriler ekler
DELETE deyimi
DELETE
FROM
tabloİlçeler
plakaKodu 82 olan bütün veri siler
WHERE
plakaKodu
=
'82'
Download