Access_Database - Geomatik Mühendisliği Bölümü

advertisement
ACCESS VERİTABANI
OLUŞTURMA
Bülent Ecevit Üniversitesi, Geomatik Mühendisliği, Veri Tabanı Yönetim
Sistemleri Dersi
Veri Tabanı Planlama ve Tasarlama
Hazırlayacağınız
veri tabanını
kimler
kullanacaksa
onlarla
konuşunuz.
Veri tabanının
hangi raporları
oluşturmasını
istiyorsanız
taslağını çiziniz.
Veri tabanında
verilerinizi
kaydetmek için
kullandığınız
formları bir
araya getiriniz.
MS Access’te Tabloları,
sorguları
ve
diğer
nesneleri oluşturmadan
önce tasarımınızı kâğıt
üzerindeoluşturmak
ve
üzerinde çalışmak iyi bir
fikirdir.
Ayrıca
tasarlamakta olduğunuz
veri tabanına
benzeyen
ve
tasarlanmış
tabanlarını
inceleyebilirsiniz.
iyi
veri
da
Veri tabanınızda gerek
duyduğunuz
alanları
belirlemektir. Veri
tabanında her alan belirli
bir konuyla ilgili bir olguyu
içerir.
Örneğin,
ürünlerinizle ilgili hangi
olguları
Ayrıca oluşturacağınız veri
tabanında ana nesne olan
tabloları belirlemelisiniz.
Her
tablo
birkonu
hakkında bilgi içermelidir.
Daha önce belirlediğiniz
olgulardan yararlanarak
alan listenizi
bulundurmak istersiniz?
Düşünün: Ürünün adı,
üretim tarihi, üretim yeri,
içindekiler ve son
oluşturunuz. Bu liste
ihtiyaç
duyduğunuz
tablolara ilişkin ipuçları
sağlar
kullanma
tarihi.
Belirlediğiniz bu olguların
her biri için ayrı ayrı alan
oluşturmanız gerekecektir.
VERİ TÜRLERİ
AÇIKLAMA
Metin
Alfabetik ve sayısal türde her türlü bilgi veya işlem gerektirmeyen bilgilerin
girilebildiği alan türüdür. Bu alan maksimum 255 karakter bilgi alır.
Not
Bir tablo alanı için metin türünün uzunluğu yetmiyorsa not türü seçilebilir. Bu tür
alanlara 65535 karaktere kadar bilgi girilebilir.
Sayı
Üzerinde işlem yapılabilecek sayısal verilerin girilebileceği alan türüdür. Alan
boyutunu belirlerken aşağıdaki boyut türleri seçilebilir
Tarih/Saat
Tarih ve saat türündeki bilgilerin girilmesi için kullanılır.
Para Birimi
Parasal değerler için tanımlanır. Bu alanda 15 basamak tamsayı, virgülden sonra da 4
basamak bilgi tutulabilir.
Otomatik
Sayı
Bu bilgi alandaki sayı değeri girilen her yeni kaydın numarası otomatik olarak tutulur.
Evet/Hayır
Bu bilgi alanı iki sonuçlu bilgiler için kullanılır. Evet/Hayır, Açık/Kapalı, Doğru/Yanlış
gibi veriler tutulur.
Köprü
İnternet adresi gibi bir yere bağlantı kurmak için bu veri türü kullanılır. Bu alana
girilen veriye tıklanırsa yazılı olan İnternet adresine bağlantı kurulur.
OLE Nesnesi
Resim, ses, film gibi nesnelerin veri tabanına eklenmesini sağlar.
Tablo ve Alan Özelliklerini Tanımlama
İlişki Türleri
• 1’e 1, 1’den çoğa(1-n), çoktan çoğa(n-m).
• 1’e 1
• Bilet otomasyonu, tiyatro için bilet satılıyor ve her bileti yani koltuğu yalnızca
bir kişi satın alabiliyor. Elimizde iki tane tablo bulunsun bunlardan biri müşteri
tablosu ikincisi ise bilet tablosu. Bu iki tablo arasındaki ilişki birebir olur. Çünkü
? her müşteri yalnızca bir bilet satın alabiliyor ve her bilet yalnızca bir kişiye ait
olabiliyor. Peki ilişkiyi kurarken hangi tabloya ekleme yapacağız? Müşteri
tablosu mu Bilet tablosu mu? Eğer bilet tablosuna müşteri id’sini eklersem bu
durum da satılmayan biletler için bu bölüm null(boş) değerini alacaktır. Ancak
bu bizim istediğimiz bir durum değil. Onun yerine müşteri tablosuna bilet
id’sini eklersek her eklenen müşteri bir bilet satın almış olacağı için herhangi
bir null değeri söz konusu değildir.
• 1’den çoğa(1-n)
En fazla rastalanan ilişki türüdür.
Bir dershanede öğrenciler ve bu öğrencilere danışmanlık yapan öğretmenleri
tutan iki adet tablomuz olsun. Bu iki tablo arasında kurulan ilişki 1’e n ilişki
olur. Çünkü ?
bir öğretmen birden fazla öğrenciye danışman olabiliyor ancak bir öğrenci en
fazla bir öğretmenden danışmanlık alabiliyor. Hangi tabloya ekleme yaparak
ilişkiyi kuracağız?
Öğretmen tablosunu ele alalım. Eğer bu tabloya öğrenci id’lerini eklemeye
başlarsak her öğrenci için o öğretmen tablosuna tekrar tekrar aynı öğretmenin
verisini girmiş olacağız. Veri tekrarı en son isteyeceğimiz olaydır. Bu yüzden
öğretmen id’lerini öğrenci tablosunda tutmalıyız.
• çoktan çoğa(n-m)
• İki tabloda birden fazla bağa sahiptir. Bu yüzden iki tablo bu ilişkiyi açıklamak
için yeterli olmaz. Bir üniversitede ders seçimi yapan öğrenciler ile seçilen
derslerin kayıtlarının tutulduğunu düşünelim. Bu durumda elimizde iki adet
tablo bulunmaktadır: Öğrenci ve dersler. Bir öğrenci birden fazla
ders seçebilirken, bir derste birden fazla öğrenci tarafından seçilebilmektedir.
Bu durumda aralarında çoktan çoğa bir ilişki oluşmaktadır. Bu durumu
tablolaştırırken ?
• Bir üçüncü tabloya daha ihtiyacımız olmaktadır. Üçüncü tablo seçim tablosu
olacak ve burada ders ile öğrencinin id’leri tutulacaktır.
SQL (Structed Query Language)
• İlişkisel Veritabanı Yönetim Sistemleri (Relational Database Management SystemsRDBMS) modeli ilk önce 1970 yılında Dr. E.F. Codd tarafından tarif edilmiştir. SQL
veya Structured English Query Language (SEQUEL), IBM firması tarafından
Codd’un modelini kullanmak için geliştirilmiştir. SEQUEL daha sonra SQL olmuştur.
1979 yılında, Relational Software (günümüzde Oracle Corporation), SQL’in ilk
ticari uygulamasını geliştirmiştir. Bugün SQL, ilişkisel veritabanı yönetim sistemleri
standardı olarak kabul edilmektedir.
• SQL (Structured Query Language) 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 (sub language). SQL ile yalnızca veri
tabanı üzerinde işlem yapabiliriz. SQL cümlecikleri kullanarak veri tabanına kayıt
ekleyebilir, olan kayıtları değiĢtirebilir silebilir ve bu kayıtlardan listeler
oluşturabiliriz.
• Veritabanı içindeki verileri elde etmek ve değiştirmekle ilgili SQL deyimleridir.
SQL Deyimleri
Verilere Erişmek (SELECT)
• Veritabanındaki verilere erişmenin, diğer bir deyişle onları görmenin
en sık kullanılan yöntemidir.
• Veritabanımızdaki hangi tablo yada tablolardaki alanları (bilgileri)
görmek istiyorsak SQL cümlemizin başında mutlaka SELECT deyimi yer
almalıdır.
• Bu komut ile veritabanı üzerindeki tablonun hangi kolonları alacağımız
veritabanına söyleriz. Tablonun bütün kolonlarını görmek istiyorsak '*'
karakterini kullanırız. Sadece belli kolonları görmek istiyorsak kolon
isimlerini aralarına virgül koyarak yan yana yazmalıyız.
SELECT Alan_Adı FROM Tablo_adı;
SELECT * FROM personel;
SELECT * FROM meslekler
FROM
• Bu komut bütün SQL cümleciklerinde bulunması gerekli bir komuttur.
Bu komut ile hangi tablolar üzerinde çalışacağımızı veri tabanına
söylüyoruz. Eğer aynı sql cümleciği ile bir kaç tablo üzerinde işlem
yapmak istersek tablo isimleri arasına virgül koymalıyız.
• SELECT * FROM personel; ?
Personel tablosundaki bütün kayıtları seç(göster).
WHERE
Gerçek hayat'ta bu kayıtların sadece bir kısmına ihtiyaç duyarız. Bize
gerekli olan dataları diğerlerinden ayıran bazı özellikleri vardır. İşte bu
özellikleri Where komutu yardımı ile kullanarak gerekli datalara
ulaşabiliriz. Where komutu ile select sorgu cümleciğimize şart ifadesi
eklemiş oluyoruz.
Yaşı 40'dan büyük personeli listeleme istersek;
SELECT * FROM personel WHERE
Dogum_tarihi < ‘23.10.1976'
BETWEEN (ARASINDA)
Aralıklı sorgulama yapmak istersek kullanabileceğimiz bir operatördür.
Öğrenci numarası 240 ile 400 arasında olan öğrenciler kimlerdir?
SELECT *
FROM öğrenciler
WHERE öğrenci_no> =240 AND öğrenci_no < = 400;
• BETWEEN komutu ile daha kısa olacaktır.
SELECT *
FROM öğrenciler
WHERE öğrenci_no BETWEEN 240 AND 400;
LIKE
• İçinde belli bir karakter dizisi bulunan datalara (verilere) ulaşmak
istersek kullanabileceğimiz bir operatördür.
SELECT * FROM personel WHERE adres LIKE '%İstanbul%'
Bu sorgulama ile adres alanında İstanbul geçen kayıtları listelemiş
oluruz.
SELECT * FROM personel WHERE adres LIKE '%İstanbul'
Bu sorgulama ile adres alanının sonunda İstanbul geçen kayıtları
listelemiş oluruz.
SELECT * FROM personel WHERE adres LIKE ‘İstanbul%'
Bu sorgulama ile adres alanının başında İstanbul geçen kayıtları
listelemiş oluruz
MAX
Tablo içinde, verilen kolondaki en büyük değeri geri döndürür. Genel
yazım biçimi aşağıdaki gibidir;
Select MAX(kolon_adı) FROM tablo;
En fazla aylık ücret alan personel ne kadar maaş alıyor?
Select MAX(aylik_ucret) From ucretler;
Okul içerisinde en fazla devamsızlığı bulunan öğrenciyi görmek
istersek;
SELECT MAX (devamsızlık)
FROM öğrenciler;
MIN
Tablo içinde, verilen kolondaki en küçük değeri geri döndürür. Genel
yazım biçimi aşağıdaki gibidir;
Select MIN(kolon_adı) FROM tablo;
En düşük aylık ücret alan personel ne kadar maaş alıyor ?
Select MIN(aylik_ucret) From ucretler;
SUM (TOPLA)
Verilen kolondaki bütün değerleri toplayarak geri döndürür. Genel
yazım biçimi aşağıdaki gibidir;
Select SUM(kolon_adı) FROM tablo;
Personele ödenen toplam ücret nedir ?
Select SUM(aylik_ucret) From ucretler;
AVG (ORTALAMA)
Verilen kolondaki değerlerin aritmetiksel ortalamasını geri döndürür.
Genel yazım biçimi aşağıdaki gibidir;
Select AVG(kolon_adı) FROM tablo;
Aylık ödenen ücret ortalamasını bulmak istersek ;
Select AVG(aylik_ucret) From ucretler;
Download