8 Aralık 2011 / Perşembe Veri Tabanına Giriş Veri (Data), bir veya

advertisement
8 Aralık 2011 / Perşembe
Veri Tabanına Giriş
Veri (Data), bir veya birden fazla bilgiden oluşan bir kümedir. İsim, yaş, telefon numarası gibi
bilgiler birer veridir.
Veri Tabanı (Database) : Temel olarak farklı tipteki verilerin saklandığı ve istenildiği zaman
ulaşıldığı bir depolama ortamıdır. Depolanan verilere erişimi ve veriler üzerinde işlemler
yapmayı bazı şartlar altında yaparız.
Veri Tabanı Yönetim Sistemleri: Veri tabanında depolanacak olan verilerin uyacağı
standartları, bu verilere nasıl erişilebileceği, verilerin disk üzerinde nasıl tutulacağını
belirleyen sistemler dir. Bu sistemler aracılığıyla verilerin bütünlüğü sağlanmaktadır.
Biz şu ana kadar bilgileri kaydetmedik. Programı kapatıp tekrar başlattığımız zaman bilgiler
kaybolmaktadır. Tabii ki sitemizde kullanıcının gireceği bilgileri harddiskte saklamak daha
sonra da onlara tekrar ulaşmak isteriz. Şimdi bunları kaydedeceğiz. Burada bir sürü veri
tabanı var.aspx kullanıyorsak Access en iyisi. Sunucununda bunu desteklemesi gerekir. Kişisel
bilgisayarlarda en çok kullanılan veri tabanı uygulaması “Microsoft Access” dir.
Bir veri tabanını iyi bir şekilde tasarlayabilmek için varlıklar arasındaki ilişkiyi kavramak
gerekir. SQL ile hazırlanan veri tabanında yer alacak bilgiler tablolar, alanlar (sütunlar)
içerisinde tutulur. Tablolara kaydedilecek olan verilerin uygun veri tipleri(sayısal,metin,tarih
v.s.) belirlenip, girilecek olan değerler için bazı sınırlandırmalar getirilebilir. Yine veriler
arasında işkillendirmeler yapılıp , veri tabanına ilişkisel bir yapı kazandırılabilir.
İlişkisel bir veri tabanında bütün veriler tablolarda tutulmaktadır.
Tablolar : Verilerin saklanmasını sağlayan, sütunlar (alanlar) ve satırlardan oluşur. Her satır
bir kaydı temsil etmektedir. Sütunlar ise kayıtlara ait özellikleri taşımaktadırlar. Tablo
oluşturma adımları şöyledir.
Başlat→Tüm Programlar→Microsoft Office→Access→Boş veri tabanı
Sağ altta
Dosya Adı :veritabani1.accdb
(Access de oluşturulan
veritabanı uzantısı .accdb dir )
Hemen onun yanındaki gözat
düğmesine tıklayınca açılan
pencereden Masa üstü,
Yeni Klasör oluştur,Ad:emlakci,
Tamam,Tamam,Oluştur
1
Tablo1→sağ tıkla→Tasarım Görünümü
Gelen pencerede Tablo Adı : uye yaz→
→Tamam,
Alan adı adlı sütunun altındaki kimlik yazısını silip “id” yazıyoruz. Bu sütunun yanında Veri
Türü adlı sütun var. Bunun veri türü otomatik olarak verilen sayı’dır. Diğer bilgileri girmek için
ilk önce o bilgilerin veri türünü belirliyoruz. Örneğin Üyenin adı, metin tabanlı bir veri iken,
doğum tarihi (dt) tarih gösterimli bir veridir.
Veri Türü : Veritabanı kayıtları tablolarda oluşturulurken onların yapıları hakkında fikir sahibi
olabilmek için alanların bazı özelliklerinin önceden tanımlanması gerekir. Bir tablo alanına
veri girişi yapılmadan önce o alanın bir tam sayı mı? Yoksa harf mi; tarih mi yoksa ondalıklı bir
sayı mı olacağı tanımlanmalı ve veriler daha sonra tabloya yazılmalıdır. MS Access te veri
türleri aşağıdaki gibidir.
Metin : Yazılacak bilgiler harflerden veya hem harf ham sayılardan meydana geliyorsa
kullanılacak veri türüdür.Bu alana boşlukta dahil olmak üzere en fazla 255 karakter bilgi
yazılabilir. Bu alana yazılan bilgiler sadece sayılardan da oluşabilir, ama yazılan sayılar
hesaplama işlemlerinde kullanılamazlar.
Not : Uzun metin yada metin ve sayı bileşimi kullanılabilir. Genelde açıklama ya da uzun bir
not yazılacaksa bu alan kullanılır. 64.000 karakterle sınırlıdır.
2
Sayı : Öğrenci numarası, öğrencinin sınıfı gibi sayısal bilgiler için kullanılır. Sayısal alanlar
matematiksel hesaplamalarda kullanılabilir. Borç, alacak, öğrenci harcı gibi.
Tarih/Saat : 100 ile 9999 arasındaki yıllar için tarih ve saat değerleridir.
Para Birimi : Bir ile dört arasındaki ondalık basamağı olan, matematik hesaplamalarında
kullanılan para birimi değerleri ve sayısal veriler.
Otomatik Sayı : Tabloya yeni bir kayıt eklendiğinde, Access tarafından atanan benzersiz
ardışık (birer birer artan) ya da rasgele sayılar. Otomatik sayı alanları değiştirilemez.
Evet/Hayır : Yalnızca iki değerden birini içeren alanlar Evet / Hayır, Doğru / Yanlış, Açık /
Kapalı gibi alanlar gibi.
OLE Nesnesi : Access tablosuna bağlanmış ya da katıştırılmış bir nesne. (Microsoft Word
veya Excel çalışma sayfası gibi)
Köprü : Tıklandığında kullanıcıyı başka bir dosyaya, dosyadaki bir konuma veya
Internet’teki (www) bir bölgeye yönlendiren bağlantı.
Arama Sihirbazı : Değerleri başka tablo, sorgu ya da değerler listesindeki değerlerden
seçilen bir alan yaratmamıza yardımcı olan sihirbaz.
Veri Tabanı Tasarımı :
1) Öncelikle nesneler tanımlanır. Örneğin
Kütüphane sistemi projesinde, Kitap, üyeler, türler, ödünç hareketleri birer nesnedir.
Okul Sistemi projesinde, Öğrenciler, öğretmenler, dersler, derslikler, notlar birer nesnedir.
Emlakçı sitesi projesinde, konutlar, işyerleri birer nesnedir.
2) Her nesne için bir tablo oluşturulur ve her tabloya içereceği veriyi en iyi anlatan bir isim
verilir. Tablo isimlerinden tablonun hangi bilgileri içerdiği daha iyi anlaşılır ve kodlama
aşamasında büyük kolaylık sağlar. Örneğin şirkette çalışanlara ait bilgilerin tutulduğu tabloya,
“personel” isminin verilmesi gibi. Emlakçı projesinde,
”isyerleri” isimli tabloda satılık veya kiralık işyerlerine ait bilgiler, “konutlar” isimli tabloda
satılık veya kiralık konutlara ait bilgiler, tutulur.
3
Dikkat : SQL’de, tablo adları, alanlar(sütunlar), veritabanı dosyası isimleri değişken
isimleridir. Bu nedenle değişken isimlendirme kuralları burada da geçerlidir.






Değişken isimleri harf ile başlar
Değişken isimleri, harf, rakamlar ve “_”den oluşur
Türkçe noktalı harfler kullanılmaz (İ,ı,Ü,ü,Ö,ö,Ğ,ğ,Ş,ş,Ç,ç)
Komut kelimeleri değişken ismi olamaz (select,like,not,or,delete,update)
Büyük küçük harf duyarlılığı yok
Değişken isimlerinde boşluk olmaz
3) Nesnelerin her bir özelliği için tabloya bir alan (sütun ) eklenir. Böylelikle Alanları
(tablomuzun sütunları) nı belirledikten sonra sıra geldi bu sütunların altında yer alacak
satırları oluşturmaya . Bunun için soldaki isyerleri:Tablo’yu çift tıklıyoruz. Verileri sütunlara
(alanlara) bilgileri giriyoruz..
Üyeler haberlerin altına yorum yapacak. Oluştur→Tablo→sağ tıkla→Tasarım görünümü →
Tablo adı:yorum Önce alanları ve alanların veri türlerini belirliyoruz.
4
Sonra verileri giriyoruz.
Yorumların onaylı olmasını istiyoruz. Yani bizim kontrolümüzden sonra, yorum yayınlansın.
Tasarım görünümüne geçip onay adlı bir alan oluşturuyoruz. onay alanının veri türü
Evet/Hayır dır ve Varsayılan değer onayı 0 dır. Yeni yorum girildiğinde Yani yorum yapılınca
hemen yayımlanmaz.
Diyeceğiz ki onayı 1 olanları göster. Bunu SQL veri kodlarıyla yapıyoruz.
5
9 Aralık 2011 / Cuma
Bir önceki derste, Bir veri tabanı ile proje yapılırken işin en önemli aşamasının veri
tabanının tasarlanması olduğu ve tablo ve alanların veri tabanında tasarımı ile tablolara
kaydedilecek bilgilerin özelliklerini ve hazırlanma kurallarını görmüştük.
Örnek Proje: bir işyerinde çalışan personel ve personele ait meslek, çalışılan birim ve
maaş işlemlerini kapsamaktadır.
Tablo Adı
Tablo Alanları
Personel
SicilNo,Adı,Soyadı,MeslekKodu,BirimKodu,DoğumTarihi,Adres
Meslekler
MeslekKodu,MeslekAdı
CalisilanBirim
BirimKodu,BirimAdı
Maaslar
SicilNo,Maasayı,Maas
Veritabanında meslek,çalışılan birim gibi bilgiler için kodlama yapılmalıdır. Bu hem bilgilerin
daha kısa sürede yazılmasını sağlayacak hem de verilerde bütünlük ve tutarlılık sağlayacaktır.
Örnek Proje, Matematik dersine ait sorular için bir soru bankası oluşturacağız. Konulara
sorular girip ilişkilendireceğiz. Access açıyoruz. Konu kategorileri ve sorular konulu tablolar
açıyoruz.
,
Konu kategorileri tablosunu sağ tıklayıp tasarım görünümünde açıyoruz. Konu adını giriyoruz.
Konu kategorileri tablosuna çift tıklayıp konu başlıklarını giriyoruz.
6
Sorular tablosuna sağ tıklayıp tasarı görünümünde açıyoruz. Bilgileri girip kaydet.
Sorular tablosuna çift tıklayıp değerleri gir, kaydet.
Üst menüden Veritabanı Araçları→İlişkiler→Tıkla
7
Konu_kategorilerinden fareyle sürükle bırakla ilgili yer ilişkilendirilecek.
Oluştur.Kaydet.
8
Konu kategorilerini çift tıklayınca konu adlarının sol taraflarında + işareti oluştuğunu görürüz
ve bunlara tıklayınca ilgili konularda soruların yer aldığını görürüz.
Şimdi bir veritabanındaki verileri nasıl sorgulayacağımızı görelim.
Veritabanındaki Kayıtlara Erişim ve SQL SQL kullanarak veri tabanı tablolarını sorgulaya
biliriz. SQL kelimesi Structured Query Language - Yapısal Sorgulama Dili - kelimelerinin baş
harflerinden oluşmaktadır. SQL 1970’lerin sonlarına doğru IBM tarafından geliştirilmiştir.
Web ortamında veri tabanıyla ilgili tüm tablolar bir bilgisayarda tutulur. Bu bilgisayardaki
bilgilere ulaşmak isteyen kullanıcılar için yazılan programlar istemci bilgisayarlarda
çalışacaktır. Istemci bilgisayarlardaki kullanıcılar veri tabanına ait tablolardaki bilgilere
ulaşmak istedikleri zaman, sunucu bilgisayardaki veri tabanına bir mesaj (bir SQL cümleciği)
gönderilir. Bu SQL cümleciğini alan veri tabanı, gelen SQL cümleciğinin içeriğine göre
tablolara kayıt ekleme, silme, güncelleme ya da bazı kayıtları seçme gibi işlemleri yapacaktır.
Eğer, veri tabanı bazı kayıtları seçiyorsa, bu seçtiği kayıtları internet-intranet üzerinden tekrar
istemciye gönderecektir ve istemci bilgisayardaki programa veri tabanındaki tablo satırları
ulaşmış olacaktır. Bu durumda tablomuzdaki tüm kayıtlar değil de sadece ihtiyacımız olan
kayıtlar istemci bilgisayara geleceği için çok daha hızlı olacaktır.
-----------------------------------------------------------------------------------------------------------------------Sorgu: Sql komutlarının bir cümle olarak yazılması sorguları oluşturur.
SQL'de veritabanında nesneler yaratmak, silmek, değiştirmek için CREATE, ALTER, DROP gibi
DDL kodları kullanılmaktadır. Fakat bu işlemleri kolay bir şekilde yapan veritabanı yönetim
programları mevcuttur. Tablolar oluşturma, silme için o programları kullanabilirsiniz.
SQL'de verileri seçmek, değiştirmek, silmek için DML kodları kullanılmaktadır.
SELECT deyimi;
Seçme işlemleri için kullanılan SQL komutudur.
En basit haliyle SELECT deyimi;
SELECT ALANLAR veya * FROM TABLOADI
Select adi,soyadi from ogrenci (ogrenci tablosundaki adi ve soyadi alanlarındaki tüm verileri
seçer)
Select * from ogrenci (Öğrenci tablosundaki tüm verileri seçer )
Where kullanımı;
Sorgular where ile filtrelenebilmektedir. Sadece istenen sonuçlar görüntülenir. Örneğin adı
'Mehmet' olanları seçmek için;
Select * from ogrenci where adi='Mehmet';
sorgusu kullanılmalıdır. where yazıldıktan sonra alan adı ve = yazılır istenilen değer yazılır.
filtrelenen alandaki veri türü metin ise tırnak işaretleri kullanılır, sayı ise kullanılmaz.
= yerine diğer kontrol operatörleri de kullanılabilmektedir.
Karşılaştırma operatörleri
9
(=, >, <, >=, <>, !=, !<, !>
where komutundan sonra birden fazla koşul eklenmesi de mümkündür.
AND(ve) ve OR(veya) ile koşullar birleştirilebilir.
Örnek;
select * from ogrenci where adi='Mehmet' or adi='Arif' (Adı Mehmet veya Arif olanları
gösterir)
Select * from ogrenci where adi='mehmet' and soyadi='yılmaz' (Adı Mehmet ve soyadı
Yılmaz olan verileri gösterir)
Between kullanımı;
iki aralık koşulu vermek için where ile birlikte kullanılır.
Select * from musteri where maas between 1000 and 5000 (Maaşı 1000 ile 5000
arasındakileri gösterir)
Aynı şekilde
Select * from musteri where maas>1000 and maas<5000 de kullanılabilir.
Like kullanımı;
Where ve like ile birlikte bir verinin içerisindeki karakterler aranabilir.
Örneğin;
select * from tablo_adi where alan_adi LIKE '%ar%' = içinde ar geçen veri
select * from tablo_adi where alan_adi LIKE 'ar%' = ar ile başlayan veri
select * from tablo_adi where alan_adi LIKE '%ar' = ar ile biten veri
IN kullanımı;
select * from ogrenci where adi in ('arif','mehmet','inci'); // adi arif, mehmet, inci olanları
listele
yeni alanlar oluşturma;
select sayi1+sayi2 as toplam from tablom ;
Order by kullanımı;
Sıralama yapmak için where deyimi varsa ondan sonra kullanılır.
select * from ogrenci order by adi asc
select * from ogrenci order by adi desc
ASC: Ascending - Artan - Küçükten büyüğe sıralama
DESC: Descending - Azalan - Büyükten küçüğe sıralama
Insert, Update, Delete işlemleri
Insert kullanımı;
Veritabanındaki bir tabloya veri ekleme işlemi için insert komutu kullanılmaktadır.
Kullanımı ;
Insert tablo_adi(alanlar) values('değerler');
Ogrenci isimli tabloda adi, soyadi ve sinifid alanlarına veri eklemek için gereken kod;
insert ogrenci(adi,soyadi,sinifid) values('Ahmet','Çakır',3); // sinifid alanı sayı türünde olduğu
için tırnak içerisinde yazılmamıştır.
Update kullanımı;
Tablodaki verilerde güncelleme yapmak için kullanılır.
Kullanımı;
Update tabloadi set alan1='deger',alan2='deger'... //bu işlem tablodaki bütün veriler
üzerinde değişiklik yapar. istenilen kayıtlarda güncelleme yapmak için where deyimi
kullanılmalıdır
10
Örneğin;
Update ogrenci set adi='arif', soyadi='ceylan' where id=5; // idsi 5 olan kayıtta adı alanını ve
soyadı alanını günceller.
Delete kullanımı;
Tabloda silme işlemi yapar.
Delete from tabloadi şeklinde kullanılır.
Örnek;
Delete from ogrenci where adi='ayşe'; //Adı Ayşe olan öğrencileri siler.
--------------------------------------------------------------------------------------------------------------------Örnek : Emlakci projemizde sorgulama yapacağız.
Oluştur→Sorgu tasarımı→tıklayınca sorgu sayfasını otomatik açıyor →Açılan pencereyi
Kapat → Sayfaya sağ tıkla→SQL göster
11
sayfaya otomatik olarak SELECT; yazısı geliyor. Biz buna eklemeler yapıyoruz.
SELECT fiyati,metrekaresi from konutlar;
sol üstten Çalıştır düğmesine tıklayalım
Konutlar tablosundan fiyatı ve metrekareleri sütununu seçtik.
12
Banyo sayısı 1 olanları seçtireceğim. Aynı işlemleri yapıp SQL göster dedikten sonra,
SELECT * from konutlar where banyosayisi='1';
Sol üstten Çalıştır, banyo sayısı 1 olanları gösterdi
Örnek : Bir okuldaki sınıfları ve öğrencileri kaydedip, öğrencilerin hangi sınıfta olduğunu
bileceğiz. Masa üstünde ogrenciler.mdb var, access’i kapatıp çift tıklayarak onu açıyoruz.
Oluştur→Sorgu tasarımı→ Tabloyu kapat → Sayfaya sağ tıkla → SQL göster
SELECT adi,soyadi from ogrenci;
sol üstten çalıştır tıkla
Adı Mehmet olanları seçtireceğiz.
Sorgu1 sayfasının simgesinin Üstüne
gelip sağ tıklayıp, SQL Göster diyoruz. Tekrar
SQL sayfası açılıyor, bizim biraz önce
yazdığımız kodlar duruyor.
Ekleme yapıyoruz.
13
SELECT adi,soyadi from ogrenci where adi='Mehmet';
Çalıştır
Sınıf id’si 3 olanları seçtirelim
Sorgu→sağ tıkla→Tasarım görünümü→tıkla, tablo üstüne gelip sağ tkla→Tabloyu kaldır
14
Sorgu1→sağ tıkla→tasarım görünümü,
sol üstten SQL görünüm→tık
select adi,soyadi from ogrenci where sinifid=3;
Üstten çalıştır→Tıkla
15
Download