Bir Database(Veritabanı) nedir

advertisement
(Julia Case Bradley / Anita C. Millspaugh)
Dr. Mehmet AKSARAYLI
Programmıng In Visual Basic 6.0
1- Bir Database(Veri tabanı) nedir?
•
Bir database (veri tabanı), 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 ekstrelerinizi 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.
•
Veri tabanı için bilinmesi gereken şey onun her yerde olduğudur. Her veri tabanı 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 veri tabanı 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
2
Dr. Mehmet AKSARAYLI
Programmıng In Visual Basic 6.0
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 veri tabanına bağlanma
¾ Bir veri tabanı ile internet yolu ile etkileşime girme
•
Bir veri tabanı 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
3
Dr. Mehmet AKSARAYLI
Programmıng In Visual Basic 6.0
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 hâkimiyeti altındadır. İlgili
özellikler ve olaylar programcı tarafı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.
4
Dr. Mehmet AKSARAYLI
Programmıng In Visual Basic 6.0
7) 4 domates al.
8) 1 meyve suyu al.
9) 8 limon al.
10) Limon tezgâhı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.
5
Dr. Mehmet AKSARAYLI
Programmıng In Visual Basic 6.0
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 veri tabanı ile etkileşime giremez. Veri
tabanı 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 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.
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.
6
Dr. Mehmet AKSARAYLI
Programmıng In Visual Basic 6.0
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.
7
Dr. Mehmet AKSARAYLI
Programmıng In Visual Basic 6.0
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
Tablo
Satırları
13/11/1982
İ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.
8
Dr. Mehmet AKSARAYLI
Programmıng In Visual Basic 6.0
İ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;
9
Dr. Mehmet AKSARAYLI
Programmıng In Visual Basic 6.0
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
set
postakodu
=
'06720'
WHERE
(,
'Yenişehir',
ilçe
=
'Bala'
,
,
'82')
Bala'nın posta kodu değiştirir
INSERT deyimi
INSERT
INTO
tabloİlçeler
VALUES
Yeni veriler ekler
DELETE deyimi
DELETE
FROM
tabloİlçeler
WHERE
plakaKodu
=
'82'
plakaKodu 82 olan bütün veri siler
10
Download