04-06-2007, 12:38 AM
dengesiz_tosbaga
08-01-2008, 12:59 AM
İndeks Oluşturmanın Amacı :
Bir indeks, veri tabanı ortamında bir tablo ya da bir view gibi bir nesnedir ve ilişkili olarak kullanıldığı tablo ya da view’deki satırların, indeksleme alanı olarak kullanılan kolondaki verilere göre sıralanmış biçimde işlenme sokulmasını sağlar.
Bir tablo, indekslenmiş ise , bu tablo içinde gerçekleştirilecek bir arama ya da koşullu listeleme ( SELECT komutu ile ) işlemi çok daha hızlı biçimde gerçekleştirecektir.
6.1 İndeks Yaratma :
SQL ‘de bir tablo ile ilişkili olarak bir indeks yaratmak için gerekli komut CREATE INDEKS komutudur.Komutun yazılış biçimi aşağıdaki gibidir :
CREATE INDEX indeks adı
ON tablo adı ( kolon adı1, koon adı2,………kolon adı (n)) ;
İndeksleme artan ya da azalan şekilde olabilir. A’dan Z’ye nümerik olarak küçükten büyüğe şeklindedir. Azalan ise bunun tam tersidir. Hiçbir özel sözcük kullnılmazsa indeksleme artan sayılır ya da alan adının yanında ASC sözcüğü kullanılırsa artan sıralama yapılacağı anlaşılır. Herhangi bir DESC sözcüğünün kullanılması ise azalan sıralama yapılacağı anlamına gelmektedir.
6.1.1 Tek Bir Alana Göre Artan Sırada İndeksleme :
İşletmede çalışan personeli brüt maaşlarına göre artan sırada listelemek istersek, brüt alanına göre bir indeks oluşturmalıyız.
CREATE INDEX pers_maas
ON personel (brüt) ;
Index created 127 rows
127 satırlık personel tablosu ile ilişkili olarak brüt kolonuna indeks anahtarı olarak kullanılan pers_maas adlı indeks oluşturuluştur. Bu durumda
SELECT *
FROM personel ;
Şeklindeki listeleme komutu sonucunda personel tablosundaki tüm personel brüt maaşlarına göre listelenecektir.
6.1.2 Tek Bir Alana Göre Azalan Sırada İndeksleme :
İşletmede çalışan personeli brüt maaşlarına göre azalan sırada listelemek istenirse brüt alanına göre aşağıdaki gibi indeks oluşturmak gerekir :
CREATE INDEX pers_maas
ON personel (brüt DESC) ;
6.1.3 Birden Fazla Alana Göre İndeksleme :
İşletmedeki personelin öncelikle adlarına göre aynı adda olanların soyadlarına göre hem adı hem soyadı aynı olanların maaşlarına göre sıralanmış olarak listelenmesi istenirse aşağıdaki komut kullnılmalıdır :
CREATE INDEX p_ad_soy_m
ON personel ( ad, soyad ,brüt ) ;
Bu durumda
SELECT *
FROM personel ;
Komutu sonucunda sıralanmış tablo görülecektir.
Unıque Sözcüğü :
Bir tablo , seçilen bir sütuna göre indekslenirken indeksleme alanı olarak seçilen sütundaki verilerin tekrarlanmasına izin verilmesi istenmiyorsa indeksleme yapılırken , CREATE INDEX komutu içinde UNIQUE sözcüğü kullanılır.
CREATE UNIQUE INDEX pers_sicil
ON personel ( sicil );
Mevcut Bir İndeksin Silinmesi :
Bir tablo üzerinde tanımlanmış herhangi bir indeks , o tablonun veri tabanından silinmesi ile otomatik olarak silinecektir.
Tablo silinmeksizin , o tablo üzerinde oluşturulan indeksin silinmesi içinse DROP INDEX komutu kullnılmalıdır.
DROP INDEX pers_in ;
komutu ile
INDEX DROPPED
Mesajı alınacaktır.
SQL ‘in Diğer Bilgisayar Dillerine Ve Yazılımlarına Katılımı :
SQL’in Katılım Amacı :
SQL için iki çalışma modu vardır :
· Etkileşimli SQL modu
· Katılımlı SQL modu
Buraya kadar SQL’in etkileşimli modu anlatıldı. Bu modda her komut , sisteme gönderilmekte ve sistem cevabı olarak bir sonuç ya da bir hata mesajı karşılığı alınmaktadır. Etkileşimli modda belirtilen 3 noktada güçlük vardır :
· Tablolara bilgi girişi : Her tablo satırı girişi için ayrı bir INSERT komutuna gerek vardır. Bu oldukça önemli güçlük oluşur. Ayrıca kullnıcı için kolaylık sağlayan bilgi giriş ekranlarını etkileşimli modda ve SQL komutları ile gerçekleştirmek olanaksızdır.
· Bilgi İşleme : Belli bir anda tek bir komut icra edebilir ve aynı zamanda bir komut otomatik olarak tekrar tekrar icra edebilme yeteneğine sahip değildir.
· Bilgi Çıkışı : Gerçekleştirilen bir sorgulama sonucunu kullanıcının arzu edeceği düzen ve esneklikle ekrana aktarma imkanı yoktur.
SQL , tanım olarak bir veri tabanı alt dilidir. Yani bilgisayar dilinin gerek gösterdiği tüm yapılara saip değildir.
SQL’in sahip olduğu özellikler bu noktaya kadar görüldüğü gibi, veri tanımlam,bütünlük kontrolü, veriye erişim ve sorgulama ,veriyi güncelleme ile ilişkili komut yapılarıdır. Dolayısıyla eksik olan I/O, ekran tasarımı,loop ili ilişkili program eksiklikleridir.
SQL, dili yordamsal bir dil değildir tamtersine küme esaslı bir dildir. Bunun anlamı şudur: SQL dili bir sorgulama esnasında SELECT komutu ile belli bir koşulu sağlayan tablo satırlarının tümü birden elde edilebilir.
Kürsör * Kullanımı :
SQL’deki kürsörün anlamı : SELECT komutu ile seçilmiş tablo satırları arasından belirli bir satırı işaret eden gösterge demektir. Belli bir anda kürsörün işaret ettiği satırın üzerinde güncelleme ya da silme işlemi yapılabilir.Bir SELECT işlemi ile ilişkili olarak bir kürsör tanımlama iki aşamalı bir süreçtir :
· DECLARE CURSOR komutu ile kürsör için bildiride bulunulur.
· OPEN komutu ile de kürsör açılır.
Kürsör açıldığı zaman veriye erişmek için FETCH deyimi kullanılmalıdır. Kürsör ile ilgili işlemler bitince CLOSE deyimi ile ürsör kapatılır.
DECLARE komutu bir kürsör ismini SELECT komutu ile ilişkili hale getirir.
DECLARE kürsör adı CURSOR
FOR SELECT –komutu [FOR READ [ONLY]]
Kullanım şeklidir.
OPEN komutu, DECLARE CURSOR komutundaki SELECT deyiminin icra edilmesi ile elde edilen tablo satırları kümesi içinden erişim yapılabilmesi işlemini başlatır.
OPEN kürsör1
Komutu ile küsör1 adlı kürsör açılmaktadır.
FETCH komutu ile açılan erişim seti içindeki tablo sütunlarındaki veriler SQL’in içinde kullanıldığı program içindeki değişkenlere aktarılabilir.
SQL’in Access İle Kullanımı :
Access 7.0 :
Veri tabanı yönetim yazılımı içinde, veri tabanına erişim amacı ile yapılacak işlemler ve sorgulamalar, sistem içinde , SQL’e dönüştürülür ve uygulanır. Dolayısı ile Access , sorgulama dili olarak tamamen SQL kullanır.
Kullanıcının kendi tasarladığı SQL ifadelerini kullanabilmesi için , Access menüsü içinden View SQL alternatifini seçmesi gerekir.Karşısına çıkacak olan SQL penceresi içinde, SQL komutlarını kullanabilir.
Ver Tabanı Tasarımı :
Access ile gelen sihirbazları kullnarak kendi işimizi kolayca halledebiliriz. Boş bir veri tabanı ile işe başlayalım. Önce Dosya/Yeni Veritabanı seçenekleri ile açılan pencereden Boş Veritabanı seçeneği seçilir. Access veri tabanımıza isim vermemizi isteyecektir. Buraya uygun bir isim verdikten sonra aşağıdaki proje yönetim penceresine erişilecektir.
Veri tabanı birçok bileşenden meydana gelir. Ancak her veri tabanında mutlaka tabloların bulunması gerekir. Tablolarda saklanacak bilgilerin özellikleri ve bilgilerin kendisi bulundurulur.
Şekil2.1. Veri tabanı tasarımı
Yukarıdaki tablolar kısmında iken yeni düğmesi kullanılarak yeni bir tablo oluşturmak isteyelim.
Şekil2.2.
Açılan pencereden isterseniz sihirbazı kullanarak hazır işimize yarayanları seçerek kullanabiliriz.Biz tasarım görünümü seçeneğini kullanarak tabloyu kendimiz tasarlayalım.
Şekil2.3. Tablo tasarımı
Yukarıdaki tabloyu kullanarak alanları , bu alanların içinde barındıracakları bilginin tiplerini ve bir çok özelliği belirleyeceğiz.
Örnek : Küçük bir işletmenin müşteri işlemlerini yapmak isteyelim. Ve müşteri bilgilerini bir tabloda saklayalım. Tablomuzda bulunacak bilgiler şunlar olsun :
Müşterinin : adı soyadı, ev adresi, ev telefonu, iş adresi, iş telefonu, ilişki, düşünceler. Bunların her birine bir alan diyoruz. Ve bu alanların içerikleri farklı tiplerde olduklarından bu alanlara ait alan tiplerini belirtmemiz gerekir.
Pencerenin Alan Adı sütununa alanların isimlerini yazarız. Diğer veri tabanı programlarından farklı olarak Access ‘de bu ismi herhangi bir sınırlama olmaksızın tanımlayabiliriz.
Tanım sütununa o alanla ilgili bir açıklamayı yazacağız. Bu açıklama bilgisini yazmak zorunda değiliz. Buraya yazacağımız bilgi pencerenin en altındaki durum çubuğunda görülecektir.Dolayısıyla kullnıcı buraya bakarak ne girmesi gerektiğini görebilir. Penceredeki veri türü sütununa ise bu alana girilecek bilginin türünü belirleyeceğiz.
Access’de kullanabileceğimiz veri türleri ve özellikleri şöyledir :
Metin : Sadece metin içeren , sayı veya metini birlikte içeren veya üzerinde işlem yapılması gerekmeyen alanlarda bu tip belirtilir. ( adı soyadı, kapı numarası,telefon numarası vb.) Ençok 255 karaktere kadar bilgiyi içerebilir. Karakter sınırı genel kısmındaki alan boyutu ile belirtilir.
Sayı : Üzerinde hesap yapılması gereken ve para olmayan alanlar bu tipten tanımlanır. Bu alana girilebilecek sayıların tipi ve sınırı genel kısmındaki alan boyutu ile belirlenir. Bayt 0-255 arasındaki tam sayılar bu alanda tutulur. 1 bayt yer işgal eder.
Para Birimi : Aslında bu da bir sayı veri tipidir. Ancak para hesapları düşünülerek geliştirilmiş. Para hesaplarında virgülden sonraki basamak sayısı fazla önemli değildir. Önemli olan virgülden önceki basamakların tutulmasıdır. Bu veri tipi tam kısmı 15 basamak ve virgülden sonra ise 4 basamak olan sayılar tutulabilir.
Otomatik Sayı : Bazı durumlarda her bir kayda bir numara girilmesini isteyebiliriz. Örneğin müşteri numarası alanı böyle bir alan olabilir. Bu alanı Otomatik sayı tipinden belirleriz.Sayının nasıl verileceğini ise genel kısmındaki yeni değerler kutusundan belirleyebiliriz. Bu kutudan artan değerini seçersek sayı otomatik olarak her kayıtta bir artırılacaktır.
Tarih / Saat : Doğum tarihi , giriş saati gibi alanları text olarak tanımlarsak bunlar üzerinde işlem yapamayız. Tarih ve saat gibi bilgiler bu tipte belirtilmelidir.
OLE Nesnesi : Veri tabanımıza resim, ses, animasyon gibi bir çok şeyler ekleyebiliriz. Windows altında bir çok program OLE (nesne bağlama ve gömme)’yi destekler. Örneğin paint brush’da çizmiş olduğumuz bir resmi veri tabanımıza ekleyebiliriz. Ole nesnesi olarak tanımlanmış alanlara bilgi girişi için Ekle menüsündeki NESNE seçeneği kullanılır ve eklenmiş nesneleri görmek için de o alanları çift tıklayabiliriz.
Örnek : Sınav girişi yapılacak alana not girişini 0-100 arasına sınırlayalım ve yanlış değer girilmesi halinde de uygun bir mesaj ile uyarılmasını sağlayalım.
Geçerlilik kuralı >0 OR 100
Geçerlilik Metni Sınav notu 0 ile 100 arasında olabilir.
Alan özelliklerini detaylarıyla gördükten sonra şimdi müşteri listesi için gerekli
alanları tanımlayalım. Bunun için aşağıdaki tabloyu şu özelliklerde oluşturalım:
Şekil2.4.
Her bir alana ait özellikleri ise Genel kutusundan şöyle belirleyelim :
Adı soyadı :
Alan boyutu : 30
Resim yazısı : Müşterinin adı soyadı
Gerekli : Evet
Ev adresi ve iş adresi için :
Alan boyutu : 50
Ev telefonu ve iş telefonu için :
Alan boyutu : 11
Giriş maskesi : \ (009”
”900\00\\00;;_
İlişki tarihi için :
Biçim : Uzun tarih
Varsayılan değer : =date$()
Artık pencereyi kapatabilirsiniz. Ancak hemen birşeyi hatırlatalım. Eğer birşeyi girmeyi unuttuysanız veya yeni bir alan girmek istiyorsanız farenin sağ tuşu kullanılabilir.
Artık müşteri tanımları adında yeni bir tablomuz var. Ama yeni bir tablo oluşturmak için yine aynı buradaki yeni düğmesini kullanacağız. Hazırladığımız tabloya giriş yapmak için tasarla düğmesi kullanacağız. Bilgi girişi yapmak için şimdilik Aç düğmesini kullanacağız. Artık bilgi girişi yapabiliriz. Sütun çizgilerini kullanarak sütunları genişletip daraltabiliriz.
Şekil2.5.
Menüdeki artan sıralama ve azalan sıralama seçeneklerini kullanaraak alanları kolayca sıralayabiliriz. Kayıtların tamamı ekrana sığmadığında kaydırma çubuklarını kullanarak kayıtların ekranda görülmesini sağlayabiliriz. Ancak bazı sütunların ekranda her zaman ekranda görülebilir olmasını sağlamak için sütunları dondur seçeneği kullanılır. Her zaman gerekli olmayan veya gizli olması gereken sütunları sütunları gizle seçeneğini kullanarak gizleyebiliriz. Bul seçeneğini kullandığımızda aşağıdaki pencere açılacaktır. Bu pencerede istediğimiz kaydı kolayca bulabiliriz.
Şekil2.6. Kayda erişim
Kayıtları bazı ifadeleri başkasıyla değiştirmek için Düzen menüsünden değiştir seçeneği kullanılarak değiştirilebilir.
Form Oluşturma :
Asıl veri girişini formlar üzerinden gerçekleştiririz. Proje yönetim menüsünden Formlar menüsüne geçilir. Ama henüz tanımlanmış bir formumuz yok. Yeni düğmesi tıklanarak yeni bir form oluşturmaya başlayalım. Önce yeni form penceresinden bir veri tabanı seçilir. Örneğin eğer sütunlu form seçilecek olursa karşımıza şu ekran gelir.
Şekil2.7. Sütunlu form
Şu anda formuçalışma modunda görüyoruz. Tasarım moduna geçmek için Görünüm menüsündeki Form Tasarımı seçeneği seçilir. Tasarım modunda iken ekrandaki alanların yerlerini ve etiketlerini değiştirebiliriz. Ayrıca ekrandaki kontrolleri değiştirip yeni kontroller oluşturup kodlar yazabileceğiz. Şu anda form üzerinde gördüğümüz alanlariki parçadan oluşmaktadır. Soldakiler etiket, sağdakiler ise metin kutularıdır.Penceredeki araç kutusunu kullanarak yeni kontroller oluşturabiliriz.
İlişki Kurma :
Müşteri tanımı yapılırken hiç bir satış bilgisine yer verilmedi. Halbuki müşteri bilgisinin yanı sıra müşterinin aldığı mallar ve ödeme tarihleri de veri tablosunda yer almalıdır.
Bir müşteri birden fazla mal satın alabileceği için , müşterinin aldığı her bir mal için tüm müşteri bilgilerinin bulunduğu bir tablomuz olmalı. Bu tabloyu daha önceden tanımladık. Başka bir tabloda ise sadece müşterinin aldığı mallarla ilgili bilgiler ve müşterinin adı bulunacak. Böylece müşterinin aldığı her mal için tüm müşteri bilgilerini tekrar girmeyeceğiz.
İkinci tablomuzda sadece müşterinin adı bulunacak ve aldığı mallarla ilgili bilgiler bulunacak. Birinci tablo ile ikinci tablo arasında bir ilişki kurarak da müşteri bilgileri ile aldığı malları bağlantılamış oluruz.
Önce müşterinin aldığı mallarla ilgili bilgilerin bulunacağı ikinci Tabloyu oluşturalım.
Tablo kısmından Yeni düğmesi ile aşağıdaki tabloyu oluşturalım.
Tablo oluşturulduktan sonra satış bilgileri adıyla kaydedilir. Şimdi satış bilgileri ile müşteri bilgileri arasında ilişki kuracağız.
Araçlar menüsünden İlişkiler seçeneğini kullandığımızda ilişki kuracağımız tabloları belirleyebileceğimiz pencere açılacaktır.Şimdi ilişkileri gösteren pencere görülecektir.
Şekil2.8. Tablolar arası ilişki kurma
Henüz bir ilişki belirlemiş değiliz. Müşteri tablosundaki Adı Soyadı alanını fare ile tutup taşıyarak Satış bilgileri tablosundaki Müşterinin adı soyadı alanı üzerine bırakılır. Böylece iki alan üzerinde ilişki kurmak istediğimizi bildirmiş oluruz. Bu işlemden sonra ilişkinin özelliklerini belirlemek için aşağıdaki pencere açılacaktır.
Şekil2.8. İlişki kurma (devam)
Satış bilgilerine girilen müşterinin bilgileri müşteri bilgilerinde tanımlanmış olması gerekir. Bu yüzden penceredeki Bilgi Tutarlılığını Zorla seçeneğini işaretleyerek tanımlanmamış bir müşteriye satış yapılmamasını sağlayalım.
Bu seçeneği işaretledikten sonra Yarat düğmesini kullanarak aşağıdaki ilişkiyi kurmuş olacağız. Aşağıda görüldüğü gibi Adı soyadı ile müşterinin adı soyadı alanları arasında 1’e sonsuz bir ilişki kurmuş olduk. Bununla müşteriye ait birden fazla satış bilgisi olabileceğini belirtmiş oluyoruz.Yani sadece bir müşteri tanımlayarak o müşteriye ait bilgileri tekrar girmeden birden fazla satış bilgisi girebiliriz.
Access Kullanımı :
Buraya kadar anlattıklarımla zaten Access’de tablo oluşturup üzerine kayıt girip, ilişkilendirmeyi gördük. Girilmiş olan bir kaydın silinmesi için Düzen menüsündeki Kayıt Sil seçeneği ile aktif kayıt silinebilir.
Kayıt Arama :
· Bir kaydı aramak için önce aramak istediğimiz sütuna girilir. Adını arayacağımız Ad sütununa , soyadını soyad sütununa girilir.
· Düzen menüsünden Bul komutunu seçerek açılan aşağıdaki pencereye aramak istediğiniz şeyi yazarız.
· Eğer tüm alanı değil de alan içinde bir parçayı arıyorsak eşleştir listesinden Alanın herhangi bölümü seçeneğiseçilerek aramayı başlatırız.
Visual Basic :
Bu bölümde , geniş anlamda olmasa da genel hatlarıyla Visual Basic hakkında bilgi vereceğim. Visual programlama dillerinin en önemli özelliklerinden birir programın ekran tasarımını kodlama ile değil tasarım zamanı bir resim çiziyormuş gibi rahatça yapılabilmesidir.
Şekil2.9.
Form Tasarımı :
Programlarda kullanılabilecek standart işlemler birer kontrol olarak tasarlanmış ve programcının kullanımına sunulmuştur. Örneğin personel ile ilgili bilgilerin girileceği bir programda personelin adı, doğum yeri, doğum tarihi, vb. birer boş kutu (text kutusu) kullanıcının ne yapması gerektiğini belirten veya neyi girmesi gerektiğini belirten yazılar vb. bilgiler personelş kutusunun içinde bulunabilecek seçeneklerdendir. Aşağıdaki formu oluşturmaya çalışalım. Form üzerindeki kontrolleri oluşturabilmek için Ana formun altında bulunan aşağıdaki kontrollerden seçerek formumuzun üzerine çizmemiz gerekir.
Formumuzu bu şekilde oluşturduktan sonra Label1, Label2, Command1 yerine bunlara ait açıklamaları yazmamız gerekir.Visual dillerde bunları da program kodları ile değil tasarım zamanında yapabiliriz.
Şekil2.10. Toolbox
Şimdi Label1 nesnesini seçelim ve F4 tuşuna basalım.
Şekil2.11. Özellikler menüsü
Artık yukarıdaki penceredeki gibi Label1 nesnesine ait özellikleri görebiliriz. Pencerenin sol tarafındaki Allignment, Autosize vb. kelimelere özellikler denir. Sağ taraftaki left, justify, false gibi yazılarda bu özelliğin şu andaki değerini göstermektedir. Her nesnenin farklı ve ortak özellikleri vardır. Bu özelliklerin etkisini görmek için Caption yazan özelliğin karşısındaki Label1 kelimesi üzerine Adı Soyadı kelimesini yazın aynı şeyin formumuzun üzerinde de yazıldığını göreceksiniz. İşte bu özelliği kullanarak kutuların önündeki Labellere gerekli açıklamaları böyle yazacağız.
Şekil2.12. Form tasarımı
Şeklinde formumuzu düzenleyebiliriz.
Kod Yazma :
Önce en kolay olanını yazalım. Çıkış için gerekli kodu yazalım. Kodu herhengi bir yere değil o nesne üzerine yapılabilecek değişik işlemlere göre ilgili yere yazmamız gerek. Örneğin fare ile düğme üzerinden geçerken bir mesaj vermek istiyorsak bunu o komut düğmesinin Mouse move olayına yazmamız gerekir. Biz düğme tıklanınca program sona ersin istiyorsak kodumuzu click olayına yazmamız gerekir. Bu olay alt programına erişmek için iki yolumuz var. Birincisi varsayılan olaylara ulaşmak için o düğmeyi çift tıklamamız gerekir. Komut düğmesi çift tıklanırsa Click olayına gidilir.
Şekil2.13
Hataları Düzeltme :
Eğer bir elemanı listeden seçmeden silmeye çalışırsanız hata mesajı ile karşılaşırsınız. VB'’de programdaki procedürun geçersiz bir parametre ile çağrıldığını belirten bir hata mesajı verir. İstersek End düğmesi ile programı sonlandırabiliriz.
Visual Basıc’de SQL Kullanımı :
İlişkisel veri tabanı sorgulaması , güncellenmesi vb.işlemleri Visual Basic ortamından SQL ile gerçekleştirmek mümkündür. Visual Basic içindeki SQL komutları ve bu komutların yazılış biçimleri microsoft access ‘deki SQL’in aynısıdır. Visual Basic ‘de kullanılabilecek SQL sözcükleri şunlardır.
ALL LEFT
DELETE OPTION
DISTINCT ORDER BY
DISTINCTROW OWNERACCESS
FROM PARAMETERS
GROUP BY RIGHT
IN SELECT
INNER TRANSFORM
INSERT UPDATE
INTO WHERE
JOIN WITH
Bu listede daha önceden incelenmiş sözcükler dışındakiler incelenmiştir.
Distinctrow :
SELECT komutu ile elde edilecek çıkışta tekrar eden hiçbir satır bulunması istenmiyorsa bu sözcük kullanılır.
SELECT DISTINCTROW *
FROM proje ;
Inner :
İki tabloyu birleştirerek yeni bir tablo elde etmeyi sağlayacak Join işleminin bir türünü anlatmak üzere kullanılır. INNER JOIN sözcüğünün kullanılması birleştirilecek tablolar içinde birleştirme alanı için sadece ortak veriye sahip olan satırların birleştirilmesini sağlayacaktır.
Left-Right :
Birleştirme işleminde LEFT sözcüğü kullanılırsa soldaki tablonun tüm satırları sağdaki tablo ile ilişkili müşterek alanla hiçbir veri bulunmasa dahi birleşim tablosuna katılır.
Owneraccess :
Güvenli bir çok kullanıcılı sistemde Wıth Owneraccess Option sözcükleri kullanıcıya belli tablolara erişmek için izin verilmemiş dahi olsa , o tablolardan sorgulama yaparak bilgi edinme imkanı sağlar.
Visual Basic’de Execute SQL Özelliği :
SQL içinde , tablo satırları üretmeyen SQL komutlarının Visual basic içinden icra edilmesi için kullanılabilecek bir yöntemdir. Belirtilen SQL komutunu belirtilen veri tabanı üzerinde icra eder. SELECT komutu için geçerli değildir. Yazılış biçimi :
Satırlar = veri tabanı. Execute SQL (SQL deyimi )
Satırlar sayısal bir veri tipi olup değeri SQL komutunun etkilediği tablo satırları sayısıdır. Veri tabanı Visual Basic’de bir veri kontrolünün veri tabanı özelliğidir. Komutlar etkilenecek veri tabanını belirler.
SQL deyimi, sadece ağ ortamında uzak bir lokasyondaki bir ODBC veri tabanı üzerinde çalışabilir.
Örnek :
Satsay = OracleDB.Execute SQL ( *update personel SET
böl_kod =’ SATIŞ’ WHERE böl_kod =’SAT’”
Burada OracleDB adlı bir veri tabanı içindeki personel adlı tabloda bölüm kodu SAT olan satırlar SATIŞ haline çevrilmekte ve değişen satırların sayısı da SatSay adlı değişkende saklanmaktadır. SatSay long türünde bir sayısal değişken olmalıdır.
Visual Basıc ‘de Database , Dynaset ve Field Nesneleri :
Visual Basic profesyonel yazılımda Dim ve Set deyimleri kullanılarak herhangi bir nesne türü için , nesne değişkenleri yaratılabilir. Örneğin aşağıdaki bilgisayar program parçası Database, Dynaset veField adlı Visual Basic nesneleri için nesne değişkenleri yaratmaktadır. Bu kod içinde SQL ‘in kullanışına dikkat ediniz:
Dim VT As Database, Dina
As Dynaset, Ala As Field
Set VT = Open Database ( “ kitap . mdb” )
Set Dina = VT .CreaateDynaset (“SELECT * FROM kitaplar”
Set Ala= Dina.Fields (“Yaz_ID”
Visual Basic’de veri tabanı ve erişimi konusunda ve SQL kullanımı ile ilişkili daha pek çok imkan vardır.
SQL ‘de Erişim Kontrolü ve Sistem Güvenliği :
Veri tabanına erişim kontrolü ve sistem güvenliğinibn sağlanması en önemli konulardan bir tanesidir.
Veri Tabanı Nesnelerin Güvenliğinin Sağlanması :
Oracle veri tabanı yönetim sisteminin kontrol ettiği veri tabanı rtamında dört farklı türde kullanıcı vardır:
· Sistem Kullanıcısı
Tüm veri tabanı ortamına hükmeden kullanıcıdır. Veri tabanı yöneticisinin üstündedir. Sisteme, yeni kullanıcıları dahil edebilir, bir veya daha fazla kullanıcıya veri tabanı yöneticisi yetkisi verebilir.Kullanıcıların paralolarını değiştirebilir.
· Veri tabanı yöneticisi yetkisine sahip olan kullanıcılar, yeni kullanıcıların sistemde çalışmaya başlamalrı için gerekli koşulları ve yeni kullanıcıların ayrıcalıklarını belirleme, kullanıcıların çalışmalarına son verme yetkilerine sahiptir.
· CONNECT ve RESOURCE ayrıcalıkları verilen kullanıcılar, veri tabanına bağlanabilirler, yeni tablolar ve indeksler yaratabilirler.
Bir indeks, veri tabanı ortamında bir tablo ya da bir view gibi bir nesnedir ve ilişkili olarak kullanıldığı tablo ya da view’deki satırların, indeksleme alanı olarak kullanılan kolondaki verilere göre sıralanmış biçimde işlenme sokulmasını sağlar.
Bir tablo, indekslenmiş ise , bu tablo içinde gerçekleştirilecek bir arama ya da koşullu listeleme ( SELECT komutu ile ) işlemi çok daha hızlı biçimde gerçekleştirecektir.
6.1 İndeks Yaratma :
SQL ‘de bir tablo ile ilişkili olarak bir indeks yaratmak için gerekli komut CREATE INDEKS komutudur.Komutun yazılış biçimi aşağıdaki gibidir :
CREATE INDEX indeks adı
ON tablo adı ( kolon adı1, koon adı2,………kolon adı (n)) ;
İndeksleme artan ya da azalan şekilde olabilir. A’dan Z’ye nümerik olarak küçükten büyüğe şeklindedir. Azalan ise bunun tam tersidir. Hiçbir özel sözcük kullnılmazsa indeksleme artan sayılır ya da alan adının yanında ASC sözcüğü kullanılırsa artan sıralama yapılacağı anlaşılır. Herhangi bir DESC sözcüğünün kullanılması ise azalan sıralama yapılacağı anlamına gelmektedir.
6.1.1 Tek Bir Alana Göre Artan Sırada İndeksleme :
İşletmede çalışan personeli brüt maaşlarına göre artan sırada listelemek istersek, brüt alanına göre bir indeks oluşturmalıyız.
CREATE INDEX pers_maas
ON personel (brüt) ;
Index created 127 rows
127 satırlık personel tablosu ile ilişkili olarak brüt kolonuna indeks anahtarı olarak kullanılan pers_maas adlı indeks oluşturuluştur. Bu durumda
SELECT *
FROM personel ;
Şeklindeki listeleme komutu sonucunda personel tablosundaki tüm personel brüt maaşlarına göre listelenecektir.
6.1.2 Tek Bir Alana Göre Azalan Sırada İndeksleme :
İşletmede çalışan personeli brüt maaşlarına göre azalan sırada listelemek istenirse brüt alanına göre aşağıdaki gibi indeks oluşturmak gerekir :
CREATE INDEX pers_maas
ON personel (brüt DESC) ;
6.1.3 Birden Fazla Alana Göre İndeksleme :
İşletmedeki personelin öncelikle adlarına göre aynı adda olanların soyadlarına göre hem adı hem soyadı aynı olanların maaşlarına göre sıralanmış olarak listelenmesi istenirse aşağıdaki komut kullnılmalıdır :
CREATE INDEX p_ad_soy_m
ON personel ( ad, soyad ,brüt ) ;
Bu durumda
SELECT *
FROM personel ;
Komutu sonucunda sıralanmış tablo görülecektir.
Unıque Sözcüğü :
Bir tablo , seçilen bir sütuna göre indekslenirken indeksleme alanı olarak seçilen sütundaki verilerin tekrarlanmasına izin verilmesi istenmiyorsa indeksleme yapılırken , CREATE INDEX komutu içinde UNIQUE sözcüğü kullanılır.
CREATE UNIQUE INDEX pers_sicil
ON personel ( sicil );
Mevcut Bir İndeksin Silinmesi :
Bir tablo üzerinde tanımlanmış herhangi bir indeks , o tablonun veri tabanından silinmesi ile otomatik olarak silinecektir.
Tablo silinmeksizin , o tablo üzerinde oluşturulan indeksin silinmesi içinse DROP INDEX komutu kullnılmalıdır.
DROP INDEX pers_in ;
komutu ile
INDEX DROPPED
Mesajı alınacaktır.
SQL ‘in Diğer Bilgisayar Dillerine Ve Yazılımlarına Katılımı :
SQL’in Katılım Amacı :
SQL için iki çalışma modu vardır :
· Etkileşimli SQL modu
· Katılımlı SQL modu
Buraya kadar SQL’in etkileşimli modu anlatıldı. Bu modda her komut , sisteme gönderilmekte ve sistem cevabı olarak bir sonuç ya da bir hata mesajı karşılığı alınmaktadır. Etkileşimli modda belirtilen 3 noktada güçlük vardır :
· Tablolara bilgi girişi : Her tablo satırı girişi için ayrı bir INSERT komutuna gerek vardır. Bu oldukça önemli güçlük oluşur. Ayrıca kullnıcı için kolaylık sağlayan bilgi giriş ekranlarını etkileşimli modda ve SQL komutları ile gerçekleştirmek olanaksızdır.
· Bilgi İşleme : Belli bir anda tek bir komut icra edebilir ve aynı zamanda bir komut otomatik olarak tekrar tekrar icra edebilme yeteneğine sahip değildir.
· Bilgi Çıkışı : Gerçekleştirilen bir sorgulama sonucunu kullanıcının arzu edeceği düzen ve esneklikle ekrana aktarma imkanı yoktur.
SQL , tanım olarak bir veri tabanı alt dilidir. Yani bilgisayar dilinin gerek gösterdiği tüm yapılara saip değildir.
SQL’in sahip olduğu özellikler bu noktaya kadar görüldüğü gibi, veri tanımlam,bütünlük kontrolü, veriye erişim ve sorgulama ,veriyi güncelleme ile ilişkili komut yapılarıdır. Dolayısıyla eksik olan I/O, ekran tasarımı,loop ili ilişkili program eksiklikleridir.
SQL, dili yordamsal bir dil değildir tamtersine küme esaslı bir dildir. Bunun anlamı şudur: SQL dili bir sorgulama esnasında SELECT komutu ile belli bir koşulu sağlayan tablo satırlarının tümü birden elde edilebilir.
Kürsör * Kullanımı :
SQL’deki kürsörün anlamı : SELECT komutu ile seçilmiş tablo satırları arasından belirli bir satırı işaret eden gösterge demektir. Belli bir anda kürsörün işaret ettiği satırın üzerinde güncelleme ya da silme işlemi yapılabilir.Bir SELECT işlemi ile ilişkili olarak bir kürsör tanımlama iki aşamalı bir süreçtir :
· DECLARE CURSOR komutu ile kürsör için bildiride bulunulur.
· OPEN komutu ile de kürsör açılır.
Kürsör açıldığı zaman veriye erişmek için FETCH deyimi kullanılmalıdır. Kürsör ile ilgili işlemler bitince CLOSE deyimi ile ürsör kapatılır.
DECLARE komutu bir kürsör ismini SELECT komutu ile ilişkili hale getirir.
DECLARE kürsör adı CURSOR
FOR SELECT –komutu [FOR READ [ONLY]]
Kullanım şeklidir.
OPEN komutu, DECLARE CURSOR komutundaki SELECT deyiminin icra edilmesi ile elde edilen tablo satırları kümesi içinden erişim yapılabilmesi işlemini başlatır.
OPEN kürsör1
Komutu ile küsör1 adlı kürsör açılmaktadır.
FETCH komutu ile açılan erişim seti içindeki tablo sütunlarındaki veriler SQL’in içinde kullanıldığı program içindeki değişkenlere aktarılabilir.
SQL’in Access İle Kullanımı :
Access 7.0 :
Veri tabanı yönetim yazılımı içinde, veri tabanına erişim amacı ile yapılacak işlemler ve sorgulamalar, sistem içinde , SQL’e dönüştürülür ve uygulanır. Dolayısı ile Access , sorgulama dili olarak tamamen SQL kullanır.
Kullanıcının kendi tasarladığı SQL ifadelerini kullanabilmesi için , Access menüsü içinden View SQL alternatifini seçmesi gerekir.Karşısına çıkacak olan SQL penceresi içinde, SQL komutlarını kullanabilir.
Ver Tabanı Tasarımı :
Access ile gelen sihirbazları kullnarak kendi işimizi kolayca halledebiliriz. Boş bir veri tabanı ile işe başlayalım. Önce Dosya/Yeni Veritabanı seçenekleri ile açılan pencereden Boş Veritabanı seçeneği seçilir. Access veri tabanımıza isim vermemizi isteyecektir. Buraya uygun bir isim verdikten sonra aşağıdaki proje yönetim penceresine erişilecektir.
Veri tabanı birçok bileşenden meydana gelir. Ancak her veri tabanında mutlaka tabloların bulunması gerekir. Tablolarda saklanacak bilgilerin özellikleri ve bilgilerin kendisi bulundurulur.
Şekil2.1. Veri tabanı tasarımı
Yukarıdaki tablolar kısmında iken yeni düğmesi kullanılarak yeni bir tablo oluşturmak isteyelim.
Şekil2.2.
Açılan pencereden isterseniz sihirbazı kullanarak hazır işimize yarayanları seçerek kullanabiliriz.Biz tasarım görünümü seçeneğini kullanarak tabloyu kendimiz tasarlayalım.
Şekil2.3. Tablo tasarımı
Yukarıdaki tabloyu kullanarak alanları , bu alanların içinde barındıracakları bilginin tiplerini ve bir çok özelliği belirleyeceğiz.
Örnek : Küçük bir işletmenin müşteri işlemlerini yapmak isteyelim. Ve müşteri bilgilerini bir tabloda saklayalım. Tablomuzda bulunacak bilgiler şunlar olsun :
Müşterinin : adı soyadı, ev adresi, ev telefonu, iş adresi, iş telefonu, ilişki, düşünceler. Bunların her birine bir alan diyoruz. Ve bu alanların içerikleri farklı tiplerde olduklarından bu alanlara ait alan tiplerini belirtmemiz gerekir.
Pencerenin Alan Adı sütununa alanların isimlerini yazarız. Diğer veri tabanı programlarından farklı olarak Access ‘de bu ismi herhangi bir sınırlama olmaksızın tanımlayabiliriz.
Tanım sütununa o alanla ilgili bir açıklamayı yazacağız. Bu açıklama bilgisini yazmak zorunda değiliz. Buraya yazacağımız bilgi pencerenin en altındaki durum çubuğunda görülecektir.Dolayısıyla kullnıcı buraya bakarak ne girmesi gerektiğini görebilir. Penceredeki veri türü sütununa ise bu alana girilecek bilginin türünü belirleyeceğiz.
Access’de kullanabileceğimiz veri türleri ve özellikleri şöyledir :
Metin : Sadece metin içeren , sayı veya metini birlikte içeren veya üzerinde işlem yapılması gerekmeyen alanlarda bu tip belirtilir. ( adı soyadı, kapı numarası,telefon numarası vb.) Ençok 255 karaktere kadar bilgiyi içerebilir. Karakter sınırı genel kısmındaki alan boyutu ile belirtilir.
Sayı : Üzerinde hesap yapılması gereken ve para olmayan alanlar bu tipten tanımlanır. Bu alana girilebilecek sayıların tipi ve sınırı genel kısmındaki alan boyutu ile belirlenir. Bayt 0-255 arasındaki tam sayılar bu alanda tutulur. 1 bayt yer işgal eder.
Para Birimi : Aslında bu da bir sayı veri tipidir. Ancak para hesapları düşünülerek geliştirilmiş. Para hesaplarında virgülden sonraki basamak sayısı fazla önemli değildir. Önemli olan virgülden önceki basamakların tutulmasıdır. Bu veri tipi tam kısmı 15 basamak ve virgülden sonra ise 4 basamak olan sayılar tutulabilir.
Otomatik Sayı : Bazı durumlarda her bir kayda bir numara girilmesini isteyebiliriz. Örneğin müşteri numarası alanı böyle bir alan olabilir. Bu alanı Otomatik sayı tipinden belirleriz.Sayının nasıl verileceğini ise genel kısmındaki yeni değerler kutusundan belirleyebiliriz. Bu kutudan artan değerini seçersek sayı otomatik olarak her kayıtta bir artırılacaktır.
Tarih / Saat : Doğum tarihi , giriş saati gibi alanları text olarak tanımlarsak bunlar üzerinde işlem yapamayız. Tarih ve saat gibi bilgiler bu tipte belirtilmelidir.
OLE Nesnesi : Veri tabanımıza resim, ses, animasyon gibi bir çok şeyler ekleyebiliriz. Windows altında bir çok program OLE (nesne bağlama ve gömme)’yi destekler. Örneğin paint brush’da çizmiş olduğumuz bir resmi veri tabanımıza ekleyebiliriz. Ole nesnesi olarak tanımlanmış alanlara bilgi girişi için Ekle menüsündeki NESNE seçeneği kullanılır ve eklenmiş nesneleri görmek için de o alanları çift tıklayabiliriz.
Örnek : Sınav girişi yapılacak alana not girişini 0-100 arasına sınırlayalım ve yanlış değer girilmesi halinde de uygun bir mesaj ile uyarılmasını sağlayalım.
Geçerlilik kuralı >0 OR 100
Geçerlilik Metni Sınav notu 0 ile 100 arasında olabilir.
Alan özelliklerini detaylarıyla gördükten sonra şimdi müşteri listesi için gerekli
alanları tanımlayalım. Bunun için aşağıdaki tabloyu şu özelliklerde oluşturalım:
Şekil2.4.
Her bir alana ait özellikleri ise Genel kutusundan şöyle belirleyelim :
Adı soyadı :
Alan boyutu : 30
Resim yazısı : Müşterinin adı soyadı
Gerekli : Evet
Ev adresi ve iş adresi için :
Alan boyutu : 50
Ev telefonu ve iş telefonu için :
Alan boyutu : 11
Giriş maskesi : \ (009”
”900\00\\00;;_İlişki tarihi için :
Biçim : Uzun tarih
Varsayılan değer : =date$()
Artık pencereyi kapatabilirsiniz. Ancak hemen birşeyi hatırlatalım. Eğer birşeyi girmeyi unuttuysanız veya yeni bir alan girmek istiyorsanız farenin sağ tuşu kullanılabilir.
Artık müşteri tanımları adında yeni bir tablomuz var. Ama yeni bir tablo oluşturmak için yine aynı buradaki yeni düğmesini kullanacağız. Hazırladığımız tabloya giriş yapmak için tasarla düğmesi kullanacağız. Bilgi girişi yapmak için şimdilik Aç düğmesini kullanacağız. Artık bilgi girişi yapabiliriz. Sütun çizgilerini kullanarak sütunları genişletip daraltabiliriz.
Şekil2.5.
Menüdeki artan sıralama ve azalan sıralama seçeneklerini kullanaraak alanları kolayca sıralayabiliriz. Kayıtların tamamı ekrana sığmadığında kaydırma çubuklarını kullanarak kayıtların ekranda görülmesini sağlayabiliriz. Ancak bazı sütunların ekranda her zaman ekranda görülebilir olmasını sağlamak için sütunları dondur seçeneği kullanılır. Her zaman gerekli olmayan veya gizli olması gereken sütunları sütunları gizle seçeneğini kullanarak gizleyebiliriz. Bul seçeneğini kullandığımızda aşağıdaki pencere açılacaktır. Bu pencerede istediğimiz kaydı kolayca bulabiliriz.
Şekil2.6. Kayda erişim
Kayıtları bazı ifadeleri başkasıyla değiştirmek için Düzen menüsünden değiştir seçeneği kullanılarak değiştirilebilir.
Form Oluşturma :
Asıl veri girişini formlar üzerinden gerçekleştiririz. Proje yönetim menüsünden Formlar menüsüne geçilir. Ama henüz tanımlanmış bir formumuz yok. Yeni düğmesi tıklanarak yeni bir form oluşturmaya başlayalım. Önce yeni form penceresinden bir veri tabanı seçilir. Örneğin eğer sütunlu form seçilecek olursa karşımıza şu ekran gelir.
Şekil2.7. Sütunlu form
Şu anda formuçalışma modunda görüyoruz. Tasarım moduna geçmek için Görünüm menüsündeki Form Tasarımı seçeneği seçilir. Tasarım modunda iken ekrandaki alanların yerlerini ve etiketlerini değiştirebiliriz. Ayrıca ekrandaki kontrolleri değiştirip yeni kontroller oluşturup kodlar yazabileceğiz. Şu anda form üzerinde gördüğümüz alanlariki parçadan oluşmaktadır. Soldakiler etiket, sağdakiler ise metin kutularıdır.Penceredeki araç kutusunu kullanarak yeni kontroller oluşturabiliriz.
İlişki Kurma :
Müşteri tanımı yapılırken hiç bir satış bilgisine yer verilmedi. Halbuki müşteri bilgisinin yanı sıra müşterinin aldığı mallar ve ödeme tarihleri de veri tablosunda yer almalıdır.
Bir müşteri birden fazla mal satın alabileceği için , müşterinin aldığı her bir mal için tüm müşteri bilgilerinin bulunduğu bir tablomuz olmalı. Bu tabloyu daha önceden tanımladık. Başka bir tabloda ise sadece müşterinin aldığı mallarla ilgili bilgiler ve müşterinin adı bulunacak. Böylece müşterinin aldığı her mal için tüm müşteri bilgilerini tekrar girmeyeceğiz.
İkinci tablomuzda sadece müşterinin adı bulunacak ve aldığı mallarla ilgili bilgiler bulunacak. Birinci tablo ile ikinci tablo arasında bir ilişki kurarak da müşteri bilgileri ile aldığı malları bağlantılamış oluruz.
Önce müşterinin aldığı mallarla ilgili bilgilerin bulunacağı ikinci Tabloyu oluşturalım.
Tablo kısmından Yeni düğmesi ile aşağıdaki tabloyu oluşturalım.
Tablo oluşturulduktan sonra satış bilgileri adıyla kaydedilir. Şimdi satış bilgileri ile müşteri bilgileri arasında ilişki kuracağız.
Araçlar menüsünden İlişkiler seçeneğini kullandığımızda ilişki kuracağımız tabloları belirleyebileceğimiz pencere açılacaktır.Şimdi ilişkileri gösteren pencere görülecektir.
Şekil2.8. Tablolar arası ilişki kurma
Henüz bir ilişki belirlemiş değiliz. Müşteri tablosundaki Adı Soyadı alanını fare ile tutup taşıyarak Satış bilgileri tablosundaki Müşterinin adı soyadı alanı üzerine bırakılır. Böylece iki alan üzerinde ilişki kurmak istediğimizi bildirmiş oluruz. Bu işlemden sonra ilişkinin özelliklerini belirlemek için aşağıdaki pencere açılacaktır.
Şekil2.8. İlişki kurma (devam)
Satış bilgilerine girilen müşterinin bilgileri müşteri bilgilerinde tanımlanmış olması gerekir. Bu yüzden penceredeki Bilgi Tutarlılığını Zorla seçeneğini işaretleyerek tanımlanmamış bir müşteriye satış yapılmamasını sağlayalım.
Bu seçeneği işaretledikten sonra Yarat düğmesini kullanarak aşağıdaki ilişkiyi kurmuş olacağız. Aşağıda görüldüğü gibi Adı soyadı ile müşterinin adı soyadı alanları arasında 1’e sonsuz bir ilişki kurmuş olduk. Bununla müşteriye ait birden fazla satış bilgisi olabileceğini belirtmiş oluyoruz.Yani sadece bir müşteri tanımlayarak o müşteriye ait bilgileri tekrar girmeden birden fazla satış bilgisi girebiliriz.
Access Kullanımı :
Buraya kadar anlattıklarımla zaten Access’de tablo oluşturup üzerine kayıt girip, ilişkilendirmeyi gördük. Girilmiş olan bir kaydın silinmesi için Düzen menüsündeki Kayıt Sil seçeneği ile aktif kayıt silinebilir.
Kayıt Arama :
· Bir kaydı aramak için önce aramak istediğimiz sütuna girilir. Adını arayacağımız Ad sütununa , soyadını soyad sütununa girilir.
· Düzen menüsünden Bul komutunu seçerek açılan aşağıdaki pencereye aramak istediğiniz şeyi yazarız.
· Eğer tüm alanı değil de alan içinde bir parçayı arıyorsak eşleştir listesinden Alanın herhangi bölümü seçeneğiseçilerek aramayı başlatırız.
Visual Basic :
Bu bölümde , geniş anlamda olmasa da genel hatlarıyla Visual Basic hakkında bilgi vereceğim. Visual programlama dillerinin en önemli özelliklerinden birir programın ekran tasarımını kodlama ile değil tasarım zamanı bir resim çiziyormuş gibi rahatça yapılabilmesidir.
Şekil2.9.
Form Tasarımı :
Programlarda kullanılabilecek standart işlemler birer kontrol olarak tasarlanmış ve programcının kullanımına sunulmuştur. Örneğin personel ile ilgili bilgilerin girileceği bir programda personelin adı, doğum yeri, doğum tarihi, vb. birer boş kutu (text kutusu) kullanıcının ne yapması gerektiğini belirten veya neyi girmesi gerektiğini belirten yazılar vb. bilgiler personelş kutusunun içinde bulunabilecek seçeneklerdendir. Aşağıdaki formu oluşturmaya çalışalım. Form üzerindeki kontrolleri oluşturabilmek için Ana formun altında bulunan aşağıdaki kontrollerden seçerek formumuzun üzerine çizmemiz gerekir.
Formumuzu bu şekilde oluşturduktan sonra Label1, Label2, Command1 yerine bunlara ait açıklamaları yazmamız gerekir.Visual dillerde bunları da program kodları ile değil tasarım zamanında yapabiliriz.
Şekil2.10. Toolbox
Şimdi Label1 nesnesini seçelim ve F4 tuşuna basalım.
Şekil2.11. Özellikler menüsü
Artık yukarıdaki penceredeki gibi Label1 nesnesine ait özellikleri görebiliriz. Pencerenin sol tarafındaki Allignment, Autosize vb. kelimelere özellikler denir. Sağ taraftaki left, justify, false gibi yazılarda bu özelliğin şu andaki değerini göstermektedir. Her nesnenin farklı ve ortak özellikleri vardır. Bu özelliklerin etkisini görmek için Caption yazan özelliğin karşısındaki Label1 kelimesi üzerine Adı Soyadı kelimesini yazın aynı şeyin formumuzun üzerinde de yazıldığını göreceksiniz. İşte bu özelliği kullanarak kutuların önündeki Labellere gerekli açıklamaları böyle yazacağız.
Şekil2.12. Form tasarımı
Şeklinde formumuzu düzenleyebiliriz.
Kod Yazma :
Önce en kolay olanını yazalım. Çıkış için gerekli kodu yazalım. Kodu herhengi bir yere değil o nesne üzerine yapılabilecek değişik işlemlere göre ilgili yere yazmamız gerek. Örneğin fare ile düğme üzerinden geçerken bir mesaj vermek istiyorsak bunu o komut düğmesinin Mouse move olayına yazmamız gerekir. Biz düğme tıklanınca program sona ersin istiyorsak kodumuzu click olayına yazmamız gerekir. Bu olay alt programına erişmek için iki yolumuz var. Birincisi varsayılan olaylara ulaşmak için o düğmeyi çift tıklamamız gerekir. Komut düğmesi çift tıklanırsa Click olayına gidilir.
Şekil2.13
Hataları Düzeltme :
Eğer bir elemanı listeden seçmeden silmeye çalışırsanız hata mesajı ile karşılaşırsınız. VB'’de programdaki procedürun geçersiz bir parametre ile çağrıldığını belirten bir hata mesajı verir. İstersek End düğmesi ile programı sonlandırabiliriz.
Visual Basıc’de SQL Kullanımı :
İlişkisel veri tabanı sorgulaması , güncellenmesi vb.işlemleri Visual Basic ortamından SQL ile gerçekleştirmek mümkündür. Visual Basic içindeki SQL komutları ve bu komutların yazılış biçimleri microsoft access ‘deki SQL’in aynısıdır. Visual Basic ‘de kullanılabilecek SQL sözcükleri şunlardır.
ALL LEFT
DELETE OPTION
DISTINCT ORDER BY
DISTINCTROW OWNERACCESS
FROM PARAMETERS
GROUP BY RIGHT
IN SELECT
INNER TRANSFORM
INSERT UPDATE
INTO WHERE
JOIN WITH
Bu listede daha önceden incelenmiş sözcükler dışındakiler incelenmiştir.
Distinctrow :
SELECT komutu ile elde edilecek çıkışta tekrar eden hiçbir satır bulunması istenmiyorsa bu sözcük kullanılır.
SELECT DISTINCTROW *
FROM proje ;
Inner :
İki tabloyu birleştirerek yeni bir tablo elde etmeyi sağlayacak Join işleminin bir türünü anlatmak üzere kullanılır. INNER JOIN sözcüğünün kullanılması birleştirilecek tablolar içinde birleştirme alanı için sadece ortak veriye sahip olan satırların birleştirilmesini sağlayacaktır.
Left-Right :
Birleştirme işleminde LEFT sözcüğü kullanılırsa soldaki tablonun tüm satırları sağdaki tablo ile ilişkili müşterek alanla hiçbir veri bulunmasa dahi birleşim tablosuna katılır.
Owneraccess :
Güvenli bir çok kullanıcılı sistemde Wıth Owneraccess Option sözcükleri kullanıcıya belli tablolara erişmek için izin verilmemiş dahi olsa , o tablolardan sorgulama yaparak bilgi edinme imkanı sağlar.
Visual Basic’de Execute SQL Özelliği :
SQL içinde , tablo satırları üretmeyen SQL komutlarının Visual basic içinden icra edilmesi için kullanılabilecek bir yöntemdir. Belirtilen SQL komutunu belirtilen veri tabanı üzerinde icra eder. SELECT komutu için geçerli değildir. Yazılış biçimi :
Satırlar = veri tabanı. Execute SQL (SQL deyimi )
Satırlar sayısal bir veri tipi olup değeri SQL komutunun etkilediği tablo satırları sayısıdır. Veri tabanı Visual Basic’de bir veri kontrolünün veri tabanı özelliğidir. Komutlar etkilenecek veri tabanını belirler.
SQL deyimi, sadece ağ ortamında uzak bir lokasyondaki bir ODBC veri tabanı üzerinde çalışabilir.
Örnek :
Satsay = OracleDB.Execute SQL ( *update personel SET
böl_kod =’ SATIŞ’ WHERE böl_kod =’SAT’”

Burada OracleDB adlı bir veri tabanı içindeki personel adlı tabloda bölüm kodu SAT olan satırlar SATIŞ haline çevrilmekte ve değişen satırların sayısı da SatSay adlı değişkende saklanmaktadır. SatSay long türünde bir sayısal değişken olmalıdır.
Visual Basıc ‘de Database , Dynaset ve Field Nesneleri :
Visual Basic profesyonel yazılımda Dim ve Set deyimleri kullanılarak herhangi bir nesne türü için , nesne değişkenleri yaratılabilir. Örneğin aşağıdaki bilgisayar program parçası Database, Dynaset veField adlı Visual Basic nesneleri için nesne değişkenleri yaratmaktadır. Bu kod içinde SQL ‘in kullanışına dikkat ediniz:
Dim VT As Database, Dina
As Dynaset, Ala As Field
Set VT = Open Database ( “ kitap . mdb” )
Set Dina = VT .CreaateDynaset (“SELECT * FROM kitaplar”

Set Ala= Dina.Fields (“Yaz_ID”

Visual Basic’de veri tabanı ve erişimi konusunda ve SQL kullanımı ile ilişkili daha pek çok imkan vardır.
SQL ‘de Erişim Kontrolü ve Sistem Güvenliği :
Veri tabanına erişim kontrolü ve sistem güvenliğinibn sağlanması en önemli konulardan bir tanesidir.
Veri Tabanı Nesnelerin Güvenliğinin Sağlanması :
Oracle veri tabanı yönetim sisteminin kontrol ettiği veri tabanı rtamında dört farklı türde kullanıcı vardır:
· Sistem Kullanıcısı
Tüm veri tabanı ortamına hükmeden kullanıcıdır. Veri tabanı yöneticisinin üstündedir. Sisteme, yeni kullanıcıları dahil edebilir, bir veya daha fazla kullanıcıya veri tabanı yöneticisi yetkisi verebilir.Kullanıcıların paralolarını değiştirebilir.
· Veri tabanı yöneticisi yetkisine sahip olan kullanıcılar, yeni kullanıcıların sistemde çalışmaya başlamalrı için gerekli koşulları ve yeni kullanıcıların ayrıcalıklarını belirleme, kullanıcıların çalışmalarına son verme yetkilerine sahiptir.
· CONNECT ve RESOURCE ayrıcalıkları verilen kullanıcılar, veri tabanına bağlanabilirler, yeni tablolar ve indeksler yaratabilirler.