Mühendislikte Veri Tabanları Dersi Uygulamaları İstanbul Teknik Üniversitesi, İnşaat Fakültesi, Geomatik Mühendisliği Bölümü Prof. Dr. Nebiye MUSAOĞLU Doç. Dr. Elif SERTEL Y. Doç. Dr. Şinasi KAYA Araş. Gör. Kaan KALKAN 2010 – 2011 Güz Yarıyılı VERİ TABANLARINA GİRİŞ TANIM: Veri tabanı, verilerin belirli bir amaca yönelik olarak düzenlenerek bir araya getirilmiş biçimidir. Microsoft access veritabanlarını yaratmak ve yönetmek için kullanılan güçlü bir programdır. Bilgiyi yapılandırmak ve görüntülemek için program içinde birçok menü vardır. Sistemin olanakları yardımıyla veriler; sorgulanabilir, süzülebilir, sıralanabilir, işlenebilir, raporlar hazırlanabilir ve daha pek çok işlem yerine getirilebilir. Veri tabanı, en geniş anlamıyla; birbiriyle ilişkili verilerin tekrara yer vermeden, çok amaçlı kullanımına olanak sağlayacak şekilde depolanması olarak tanımlanabilir. Veri tabanlarını yaratmayı ve kullanmayı sağlayan programlar topluluğuna “veri tabanı sistemi” ya da “veri tabanı yönetim sistemi – database management system (DBMS)” denir. Access’in veri tabanını nasıl analiz ettiği incelenecek olursa, 1 VERİ TABANI DOSYASI OLUŞTURMA Yeni veritabanı dosyasının oluşturulması için öncelikle dosyanın bilgisayarda hangi dizin altına ve ne isimle kaydedileceğine karar verilir ve kayıt işlemi ile dosya oluşturulur. Bu işlemden sonra, program kullanıcıya tablo oluşturma olanağını otomatik olarak sunar ve uygulayıcı kendi için uygun olan tablo oluşturma şeklini seçer. Tablo oluşturma yöntemi seçildikten sonra tablo ekranı açılır ve bu ekranda alan isimleri girilir ve uygun olan veri türleri seçilir Alan adı alfabetik veya alfa nümerik ise veri türünün metin olarak seçilmesi gerekmektedir. Örneğin alan adı kısmına isim yazdığımızda veri türü olarak metin seçilmesi gibi. Metin seçildiğinde tablo ekranının sol alt köşesinde yer alan kısmın doldurulması gerekmektedir. 2 Alan Boyutu: Tanımlanan metin alanlarının uzunluğunun karakter sayı cinsinden tanımlanması ile alan boyutu belirlenir. En fazla 255 karakter olabilir. Biçim: Alanlara girilecek değerlerin istenilen şekilde biçimlendirilmesi amacıyla kullanılır.Örn: ! ünlem işareti yapılarak girişler sola yaslanır. Giriş Maskesi:Verilerin belli bir kurala uymasını sağlamak için kullanılır.Örneğin Alana sayısal bir karakterin girilmesi gerekiyorsa, giriş esnasında kullanıcıyı buna zorlamak gerekir. Resim Yazısı: Ekranda alanın üst kısmında form ve raporda görünen başlık kısmıdır. Varsayılan Değer:Bazı alanlara herhangi bir değer girilmediği zaman, önceden belirlenen bir değer otomatik olarak yerleştirilir. Geçerlilik Kuralı ve Metni: Belirtilen Alana girilecek veri üzerine bir sınırın konulması için kullanılır. Geçerlilik kuralı kısmına sınırlama ve metni kısmına ise sınırlamaya uyulmaması durumunda ekranda görünecek olan mesaj yazılır. Gerekli: Girişin zorunlu olması gerektiği alanlar için kullanılır İkinci alan adı olarak soyisim yazılır ve veri türü olarak metin seçilir. Üçüncü alan ismi olarak numara yazılır ve veri türü olarak sayı seçilir. Seçilen sayı verisine ait özelliğe uygun olarak alan boyutu kısmında mevcut olan türlerden biri seçilir. 3 Alan Boyutu içinde mevcut tanımlar bayt, tamsayı, uzun tamsayı, tek, çift, ondalık ve yineleme kimliğidir. Bayt: İşaretsiz sayıların girilmesi için kullanılır. Tamsayı: İşaretli tamsayı olarak girilebilmektedir. Uzun Tamsayı: Büyük tamsayıları tanımlamak için kullanılır. Tek/Çift: Tek, tek sayılar için ,çift ise çift sayılar için kullanılır. Ondalık: Ondalık sayılar için kullanılır. Dördüncü alan ismi olarak doğum tarihi yazılır ve veri türü olarak tarih/saat seçilir. Program içersindeki hazır formatlardan istenilen tarih biçimi seçilir. Son alan olarak ödeme tutarı yazılarak veri türü olarak para birimi seçilir. Uygun para birimi mevcut seçeneklerden seçilir. 4 Alanlar yazıldıktan sonra tablo kapanırken tablo kayıt menüsü görülür. Değişiklikleri kaydetmek için evet tıklanır. Tablonun ismi yazılır (uygulama) ve değişiklikler kayıt edilir. 5 UYGULAMA 1: Fakülte, Bölüm, Öğrenci, Ders varlıklarına ait tablolar aşağıdaki şekilde oluşturulsun. Uygulamada izlenmesi gereken yol, aşağıda maddeler şeklinde verilmiştir. 1‐ Aşağıda verilen tablo verilerini kullanarak tasarım görünümünde tablo oluşturun. 2‐Tabloların alan veri türleri yukarıda konu anlatımında bahsedilen şartlara bağlı kalınarak oluşturulmalıdır. 3‐Kayıt aşamasında tabloların üzerindeki isimler tablo ismi olarak kullanılacaktır. FAKÜLTE BÖLÜM ÖĞRENCİ DERS 4‐ Sistemine dahil olabilecek isim ve kayıtları kendinizin belirlediği bir tablo oluşturun. 6 TABLOLAR ARASINDA İLİŞKİLERİN OLUŞTURULMASI Birden fazla tablo içeren uygulamalarda sorgulama yapabilmek için tabloların ilişkilendirilmesi gerekmektedir. Veritabanı içindeki tabloları belirli alanlarına göre birbirleriyle ilişkilendirmek olasıdır. Bu sayede, bir tablodaki kayıtlar işlenirken, o kayıt ile ilişkili olan diğer tablodaki kayıtlarla da işlemler yapılabilecektir. Tabloların ilişkilendirilmesi için; 1. Aralarında ilişki kurulacak olan tabloların açık olmaması gerekmektedir. 2. Veritabanı araçlar (DatabaseTools) menüsünden relationships (ilişkiler) tıklanır. 3. Tabloyu göster penceresindeki tüm tablolar seçilir. 4. Tablolar arasında ilişki kurmak için, iki tabloda da ortak olan alan ismi belirlenir. Bir tablo üzerinde alan ismi seçilir ve o alan sürüklenerek diğer tablodaki aynı alan üzerine bırakılır. 5. İlişkiler kurulurken aşağıdaki şekiller görülecektir. 7 SORGULAR Sorgu, veritabanı sistemi içinde yer alan tablolardaki verilerin isteğe uygun olarak seçilerek, belirli bir düzen içerisinde sunulmasıdır. Bir Sorgunun Yaratılması Sorgu yaratmak için Oluştur (Create) menüsü içerisindeki Sorgu (Query) seçenekleri kullanılır. Sorgu iki şekilde yaratılabilir. Tasarım görünümünde (Query Design) veya sihirbaz ile (Query Wızard), uygulamada detayların daha iyi anlaşılabilmesi için tasarım görünümünde sorgu yaratma seçeneği kullanılacaktır. Sorgu tasarımı seçildikten sonra, “Tabloyu göster (show table)” menüsünden sorgu yapmak için kullanılacak olan tablolar seçilir. İlk sorguyu gerçekleştirmek için tablo göster menüsünden fakülte adlı tablo seçilir. Sorgu 1: Fakülte adlı tablodan sorgulanacak başlıklar olarak Fakülte adı ve Fakülte Dekanı başlıkları field kısmında seçilerek hangi fakültenin dekanın kim olduğunu gösteren bir sorguya erişilir. 8 Sorgulama ile ilgili tanım yapıldıktan sonra sorgu saklanarak pencere kapatılır ve kaydedilir. Veri tabanı penceresinin sol kısmında, tablo isimlerin göründüğü bölüme yeni yaratılan sorguda eklenmiş olacaktır. Sorguyu çalıştırmak için bu sorgu (sorgu1) üzerine gelinerek çift tıklanır. Sonuç sorgulama aşağıdaki gibi elde edilecektir. Birden Fazla Tablo Kullanarak Sorgu Oluşturma Birden fazla tablo kullanarak sorgu oluşturmak için yukarıda anlatılan sorgu oluşturma işlemi tekrarlanır. Fakat tabloyu göster menüsü çıktığı zaman ctrl tuşu kullanılarak aynı anda birden fazla tablo seçilir ve seçilen tablolar add (ekle) menüsü kullanılarak veri tabanına eklenir. Sonuçta, aşağıdaki görünüm elde edilir. 9 Yapılmak istenilen sorgu ile ilişkili alanlar yukarıda görüldüğü gibidir. Sorgunun amacına bağlı olarak gerekli alanlar seçilir. Sorgu 2: Hangi öğrencinin hangi bölümde olduğunu sorgulamak amacıyla, öğrenci tablosundan öğrenci no, öğrenci adı ve öğrenci soyadı; bölüm tablosundan, bölüm adı seçilir. Gerekli alanlar seçildikten sonra sorgu kayıt edilerek veri tabanına geri dönülür. Sorgu görüntülendiğinde aşağıdaki şekil elde edilecektir. 10 DEĞİŞİK SORGULAMA ÖRNEKLERI Bir Ölçüte Uygun Kayıtların Seçilmesi Sorgu işlemlerinde tablo içinde yer alan bazı kayıtların, belirli bir ölçüte ya da bir başka deyişle bir koşula göre seçilerek görüntülenmesi söz konusu olabilir. Ölçütler tanımlanırken amacına uygun biçimde bazı özel işleçler kullanılabilir. Söz konusu işleçler aşağıdaki gibidir; > Büyük < Küçük <> Eşit değil <= Küçük veya eşit >= Büyük veya eşit Between…And Verilen iki değer arasında Sorgu 3: Ders kredisi 3 veya 5 olan dersleri gösteren sorgulama örneği oluşturmak için ilk olarak yeni sorgu oluşturulur. Sorgu için ise ders tablosu seçilir ve tablodan dersin kredisi ve dersin adını gösteren alanlar seçilir. Kriter olarak criteria kısmına 3 veya 5 (3 or 5) yazılır ve sorgu kaydedilir. Sonuç sorgulama aşağıdaki gibi elde edilir. Sorgu 4: 02‐09‐2008 ve 06‐09‐2003 tarihleri arasında kayıt yaptıran öğrencileri sorgulamak için gerekli alanlar seçilir. Derse kayıt tarihi alanının altındaki kriter (criteria ) kısmına Between # 02‐ SEP‐2003# And #06‐SEP‐2003# (YADA Between # 09/02/2008# And #09/06/2008#) yazılır. Sorgu kaydedilerek veri tabanına geri dönülür. Sorgu görüntülenmek için açıldığında aşağıdaki tablo elde edilecektir. NOT: Bilgisayarınız ayarlarına göre ay daha önce görünüyor olabilir, eğer gün daha önce görünüyorsa sorgu ona göre dizayn edilir. 11 Sorgunun sonucu aşağıdaki gibi olacaktır. Sorgu 5: Başarı notu olarak CB alıp Bilgisayar Müh. Bölümünde olmayan öğrencilerin gösterilmesi. Bunun için ilk olarak ilgili alanlar seçilir ders başarı notu alanı altındaki kısma “ BB “ ve bölüm adı kolonu altında kriter kısmına denk gelen birime Not “ Bilgisayar “ yazılır ve sorgu kaydedilir. Aşağıdaki sorgulama sonuç tablosu elde edilir. Sorgu 6 : Bir tablodaki sayısal alanların toplanması gerekebilir. Örneğin bölümlerdeki toplam öğrenci sayısını hesaplayan bir sorgu yapılmasına gerek duyulduğunda ilk olarak yeni sorgu için bölüm tablosu seçilir. Sorgu içinde alan olarak öğrenci sayısı seçilerek, Tasarım (Design) manüsü altında yer alan ∑ butonu seçilir. Bu butonun seçilmesiyle alt kısımda total (toplam isimli) yeni bir 12 menu olaşacaktır. Menünün içinde bulunan çeşitli seçeneklerden sum seçilerek, toplam öğrenci sayısı bulunabilir. Bu durumda aşağıdaki sonuç elde edilecektir. Sorgu sonucu aşağıdaki gibi olacaktır. Sorgu 7: Tablonun içerdiği kayıtlar arasında belirli bir alana göre en büyük olanı seçmek gerekebilir. Örneğin, kredisi en fazla olan ders bulunmak istendiğinde. Yeni sorgu oluşturulur, tablo seçilir ve dersin kredisi alanı altında total (toplam) menüsünden en çok (max) seçilerek sorgu bitirilir. Daha sonra sorgu görüntülendiğinde elde edilecek olan tablo aşağıdaki gibidir. Sorgu 8: Tablo içindeki veri gruplarını sıralamak gerekebilir. Örneğin, öğrenci isimlerine göre alfabetik sırada bir tablo oluşturulmak istenirse, öncelikle sorgu oluşturulur ve gerekli alanlar seçilir. Daha sonra, öğrenci adı alanın altındaki sort (sırala) menüsü seçilir. Sonuç tablo aşağıdaki gibidir. 13 Sorgu 9: Son olarak oluşturduğumuz tüm tabloları kullanan bir sorgu oluşturalım. Başarı notu ‘CB’ olan öğrencinin; Adı ve soyadını (öğrenciler tablosundan), hangi dersten bu notu aldığı (dersler tablosundan), hangi bölümde olduğu (bölüm tablosundan) ve hangi fakültede olduğu (fakülte tablosundan) sorgulamalarını yapan bir sorgu oluşturalım. Oluşturulan sorgunun sonucu olarak; 14 FORMLARIN YARATILMASI Formlar, uygulama ile kullanıcı arasında bilgi iletişimini yani etkileşimi sağlayan ortamlardır. Form yaratmak için veritabanı penceresinde oluştur yazan sekme açık olmalıdır. Bunun içinde formlar kısmına girilebilmektedir. Burda form ve Birden çok Öğe adlı sekmeler yardımı ile form oluşturulabilmektedir. Formun biçimlendirilmesi ise form oluşturma sekmeleri seçildikten sonra açılan otomatik biçimlendirme sekmesi ile gerçekleştirilmektedir. Formu oluşturulacak olan tablonun açık olması ve tabloda gösterilmek istenilen satır ve sütunların seçili olması gerekmektedir. İlgili sekmelerin seçilmesi sonucunda açılan pencereler aşağıdaki gibidir. 15 Her öğrenci kendi formunda görmek istediği alan isimlerini belirleyerek kendi formunu oluşturacaktır. Form sihirbazında formun ne şekilde görüntülenmek istediğine dair bir pencere açılır. İstenilen form altlık formatı yukarıda belirtilen şekilde seçilir. Formun ismi yazılarak form oluşturma işlemi tamamlanır. Bu işlem sonucundan istenilen form oluşturulmuş ve kaydedilmiş olur. 16