![]() |
|
|||||||
| Kayıt ol | Yardım | Üye Listesi | Ajanda | Forumları Okundu Kabul Et |
| Tags: 100, bilgisayarla, ilgili, konu |
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|||
|
Önce bir kere daha kurmak istediğimiz ilişkinin amacını tekrar edelim:
yeni adres defterimizi oluşturduğumuz sırada öyle bir an olabilir ki, dostlarımızın çocuklarını gösteren, veya çocukların ailelerine göre sıralandığı bir liste yapmak isteyebiliriz. Böyle bir yeni tablo oluşturmaya kalktığımızda, Access'in hangi çocuğun hangi aileye ait olduğunu bilmesi gerekir. Bunu iki tabloyu ilişkilendirerek veya başka bir ifadeyle Access'e, hangi çocuğun hangi aileye ait olduğunu nasıl belirleyeceğini söyleyerek yapabiliriz. Access'e şunu söylemek zorundayız: Çocuklar tablosundaki kayıtlarla Aile tablosundaki kayıtları birleştirirken birinci tablonun Aile Sıra No alanındaki değerin Çocuk tablosundaki kaydın aynı isimli alanındaki değerle eşleşip eşleşmediğine dikkat et; eğer bu veriler aynı ise o zaman bu çocuk o aileye ait demektir; iki kaydı birleştirebilirsin. Bunu söylemenin yolu ise çok kolay: İlişkiler tablosuna ait kutudaki AileSıraNo satırını Mouse işaretçisiyle tutup, götürüp Çocuk tablosundaki AileSıraNo satırının üzerine bırakın. (İlişkiler penceresini açtığınızda tablolarına ilişkin kutuları göremiyorsanız, İlişkiler menüsünden Tablo Göster maddesini; açılacak kutuda kayıtları arasında ilişki kuracağınız, dolayısıyla görüntülenmesini istediğiniz tabloları seçerek Ekle düğmesini tıklayın.) Sürükleme sırasında Mouse işaretçisinin dikdörtgen ilişki simgesine dönüştüğünü göreceksiniz (işaretli). Mouse işaretçisi bırakacağınız yere dikkat etmelisiniz: Access 2000, dörtgeni hangi alan adı üzerinde bırakırsanız, o alanı ilişkilendirir. Mouse'un sol düğmesini bıraktığınız anda İlişkileri Düzenle diyalog kutusu açılacaktır. Burada solda ilişkinin başladığı tablo ve alan ile ilişkinin kurulduğu tablo ve alan gösterilmektedir. Her ikisinin de seçme düğmelerini tıklayarak başka alanlar seçebilirsiniz. Bu listenin altında, "Bilgi tutarlılığına zorla" seçeneğine işaret koyarsanız, Access 2000 size iki seçenek daha verir: ilişkinin sol tarafındaki alan güncelleştirilirse, bu ilişkiye dahil tabloların da güncelleştirilmesi, alan silinecek olursa diğer tablodaki kayıtların da silinmesini sağlayabilirsiniz. (Güncelleştirme kullanışlı bir seçenek olmakla birlikte, silme işlemini otomatik hale getirmek, istemeden bilgi kaybına uğramanıza yol açabilir.) İlişkileri Düzenle kutusunun sağ tarafındaki düğmelerden Birleştirme Türü düğmesini tıklaksanız, ilişkinin yönü ve türünü belirleme imkanını veren, üç seçenekli Birleştirme Özellikleri kutusunu açmış olursunuz. Burada yapacağınız tercihler, hangi tablodan hangi kaydın alınacağını belirler. (Sırasıyla her üç seçeneği seçtiğinizde, ilişki çizgisinin ucundaki okların yönünün nasıl değiştiğine dikkat edin.) Kutuları sırasıyla kapattığınızda, iki tabloyu ilişkilendirmiş, başka bir deyişle Access 2000'i bu tabloları kullanarak yapacağınız veri-işleme hazırlamış olursunuz. Bir veritabanındaki tablolar arasında ilişkileri oluştuğunuz zaman Access 2000, hiç bir yapmayacak, söz gelimi ortaya yeni bir tablo veya rapor çıkartmayacaktır. Bunu yapması için gerekli talimatı daha sonra vereceğiz. Şimdilik sadece Access'e, bu talimatı yerine getirmesi için gerekli bilgiyi vermiş, veritabanımızın tabloları arasındaki bağları tanıtmış olduk. Endeks Access 2000'in veri-işlem işleri için yapması gereken bir diğer hazırlık ise Endeks çıkartmaktır. Veritabanımızın tablolarını neden endekslettirmek isteriz? Daha sonra yapacağımız veri-işlemleri hızlı olsun diye? Access 2000'ın endeksi, tıpkı bir kitabın arkasındaki endeks gibi çalışır: aradığınızı kolay bulursunuz. Burada bulma işlemini kitap okurundan farklı olarak kullanıcı değil Access yapmaktadır. Access, kendi endekslerini, vereceğiniz sorgu talimatlarını icra ederken, tabloları sıraya sokarken, rapor oluştururken ve arama yaparken kullanır. Köprü, not ve OLE nesnesi içeren alanlar dışındaki tür alan türleri endekslenebilir. Sadece Birincil Anahtar olan alan değil, bütün alanlar (türü uygunsa) endekslenebilir; birincil anahtar alanı otomatik endekslenir. Endeks, sorgu, sıralama ve aramayı hızlandırır; fakat bir veri tabanında ne kadar çok alan endeksleniyorsa, Access 2000'in veriişlem hızı o kadar azalabilir. Access 2000'e tablo tasarımı sırasında, endeks yaparken birden fazla benzer kayıt bulunması halinde ne yapması gerektiğini biz söyleriz. Tablo tasarım penceresinde bir alan türünü tıkladığınızda, alan türü elverişli ise, pencerenin Alan Özellikleri bölümünde Sıralı satırı belirir. (Access 2000, endekse yardım dosyalarında "dizin" derken burada "Sıralı" demeyi tercih ediyor. Ama bu kadar kusur, kadı kızında da olur!) Bu satırın içini ve sağında belirecek seçme okunu tıklarsanız, üç seçeneğiniz bulunduğunu görürsünüz: "Endeks yapma!" anlamına "Hayır" ; "Endeks yap, ve tekrarlara aldırma!" anlamına "Evet, Tekrarlama Var"; ve "Endeks yap ve bu arada tekrarları yakala!" anlamına "Evet, Tekrarlama Yok." Bu sonuncu tercihi seçerseniz, Access, endekslenmiş alanlarda, tüm kayıtların benzersiz olmasına dikkat eder ve sizi uyarır. Böylece, veritabanımızı birincil anahtarları, ilişkileri ve endeksi ile veri-işleme hazırlamış bulunuyoruz. Bundan sonra, tablolarımızı sorgulayabilir; tablolar ve sorgulardan raporlar hazırlayabiliriz. Sorgular Verilerimizi, kelime işlem programının içinde tablolar oluşturup, bu tabloların içine yazmıyorsak, bunun bir nedeni olabilir: Verişlem programlarının sorgu aracı. Sorgu veya Query, veritabanı fikri ortaya atıldığı günden beri var. Hatta, veritabanı dosyalarının, diğer bilgisayar kayıt dosyalarından ayrışmasını sağlayan unsur, sorgudur. Bir veritabanı dosyasındaki bilgileri sorgulama ve bu verilerden yeni bilgiler elde etme ihtiyacı o kadar belirgin hale geldi ki, bilgisayar mühendisleri sırf bu iş için bir dil bile icad ettiler: Sorgu Dili (Query Language). Ne var ki, veritabanı biçimi kadar sorgulama dili ortalığı kaplayınca, belli başlı bilgisayar donanım ve yazılım firmaları ve üniversiteler biraraya gelerek, bu kargaşaya son vermek üzere kolları sıvadılar; ve ortaya SQL (Structured-Yapılandırılmış Sorgu Dili) çıktı. SQL'in Kısa Tarihi SQL, 1980'lerin başlarında Sybase firması tarafından UNIX ortamı için geliştirildi. Microsoft firması, Sybase'den ruhsatını aldığı bu teknolojiye dayanan Microsoft SQL Server programını 1987'de Windows 3 için piyasaya sürdü. Ertesi yıl, MS, Sybase ve Ashton-Tate firmaları MSSQL-Server'nın OS/2 sürümünü ortaklaşa hazırladılar ve daha sonra IBML'in de katıldığı bu çaba 1991'e kadar sürdü. Ashton-Tate'in bu birlikten 1990'da çekilmesi üzerine, Sybase ve MS yeni bir anlaşma yaparak, dili ve Server'ı, Windows NT ortamı için birlikte geliştirmeye başladılar. Bu çabanın sonucu SQL Server programı oldu. Bu program, bugün 7'nci sürümündedir. Bir taraftan endüstri çapında geçerli bir teknoloji ve bu teknolojinin başlıca aracı olan bir dilin adı olarak SQL, diğer taraftan Microsoft firmasının bu teknoloji ve dili kullanan bir programının adında (SQL Server) kullanıldığı için, sadece Microsoft'a ve Windows ortamına ait sanılabilir. Bu doğru değildir. SQL, bugün piyasada bulabileceğiniz belli başlı veritabanı oluşturma ve veri-işlem programlarının ortak dilidir. Microsoft Access, 1992 yılında dünyaya geldi; ve ilk günden itibaren tek başına bir veritabanı oluşturma ve işleme programı olarak değil, fakat daha büyük veritabanı dosyalarına, veri bankalarına bağlanabilen ve oradaki verileri işleyebilen bir program olarak tasarlandı. Access 2000, Access Projesi (Dosya menüsünden Yeni maddesini ve açılan şablon kutusunda "Proje (Yeni Veritabanı)" adlı simgeyi tıklayın) dosyaları oluşturarak, SQL Server dosyalarına ulaşabilir; bu dosyalarda SQL sorguları çalıştırabilir. İyi bir Access kullanıcısı, bu programla büyük veritabanı mimarisine adam atabilir; ileri düzeyde veri-işlem tekniklerini öğrenebilir. Veri Madenciliği (Data Mining) teknolojileri, Online Analytical Processing (OLAP) teknikleri ve günümüzde veri yönlendirmeli Web uygulamaları, SQL'e dayanan gelişmelerdir. Access'te öğreneceğiniz SQL, size bu teknolojilerie ilk adımı atmayı sağlayacaktır. |
|
|||
|
Basit Sorgu
Access'te SQL'e ilk adım ise daha önce gördüğümüz Süzme işleminin son bölümünde kısaca sözünü ettiğimiz Gelişmiş Süzme/Sıralama aracı ile atılabilir. Aslında Access'te yaptığımız seçme veya Form yoluyla süzme işlemleri, bir sorgu işlemidir; ancak bu sorgunun SQL komutunu (veya Access'in kullandığı kelimeyle, "deyimini") Access kendisi oluşturur. Gelişmiş Süzme/Sıralama (GSS), diğer süzme işlemlerine göre "ileri" sayılırsa da, bir sorgu deyimi (SQL komutu) yazmanın yanında basit sayılabilir. Bu sebeple, tabir yerinde ise Access'in desteklediği bir sorgu geliştirme işlemi olan GSS'yı sorguya giriş konusu olarak ele alabiliriz. GSS'yı k*****ığımız anda sorgu tekniğini kavramış oluruz. Access'in sorgu tekniği ise daha genel SQL'e giriş sayılır. GSS'nin bir sorgu aracı olarak sınırlamaları vardır. Sadece bir tablonun içerdiği verilerle çalışabilir; birden fazla tablo veya başka sorguların sonuçlarını kullanamaz. Sonuç itibariyle GSS de bir tabloda belirli ölçütleri karşılayan kayıtları görünteleme aracından başka bir şey değil; birden çok tabloda sorgu yapmak için gerçek sorgu aracını kullanıp, gerçek SQL komutları yaszmamız gerekir. GSS'te verilere sadece basit sorular sorabiliriz. (Daha gelişmiş sorgular için, gerçek sorgu aracını kullanırız.) GSS ile yapacağımız süzme sonunda görüntülenen kayıtların bütün alanları görüntülenir; oysa gerçek sorguda ortaya çıkacak yeni tablo veya formda hangi alanlar olsun istiyorsanız o alanlar olur. Bu sınırlamalarına rağmen (belki de bu yüzden) GSS, Access'te sorguya giriş için mükemmel bir adım sayılır. Şimdi bir tabloyu açın ve Kayıtlar menüsünden önce Süz, sonra Gelişmiş Süzme/Sıralama maddesini seçin. Bu, eğer başta tablo ekleyebilseydik, sorgu hazırlama penceresinin ta kendisi olurdu. GSS, belirttiğimiz gibi sadece bir tablo ile çalışır; ve o tablo da seçilmiş olarak karşımıza gelir. Bu penceresi inceleyelim. Üstte, sorguda (pardon, süzgeçte) kullanılacak tablo yer alır. Buraya alan listesi denir. Altta ise süzgeci oluştururken kullanacağımız, şimdilik boş olan, sorgu tasarım kılavuzu yer alır. Burada sadece sözme amacıyla yararlanacak da olsak oluşturacağımız "şey" gerçekten bir sorgudur. Bu bölümde, Alan isimli birinci satırın birinci sütundaki kutusunun içini, sağda seçme oku belirince oku tıklayın: yukarıda alan listesinde yer alan alan adlarının burada sıralandığını göreceksiniz. Sorgu, burada olduğu gibi ileri düzeyde süzme işlemi için bile olsa, "veriye soru sorulması" anlamına gelir. GSS'de bir sınıftaki öğrencilerin sınav notlarını içeren tablomuza örneğin "Son üç sınavda 4,5'dan aşağı not almış öğrenciler kimler?" diye sorabiliriz. Ya da yemek tariflerini derlediğimiz bir veritabanında, "Kebaplar" tablosuna "İçinde biber olmayan ve kıyma ile yapılmayan kebaplar hangileri?" sorusunu yöneltebiliriz. Müzik kaset ve CD'lerinizin veritabanındaki "Türküler" tablosuna "Yavuz Bingöl'ün 1996'dan sonra çıkmış kaset ve CD'leri hangileri?" diye sorabiliriz. Ya da elimizdeki Adres Defteri veritabanında Aile tablosuna "Istanbul ve Niğde'de oturan ve kart yollamam gereken dostlarım kimler?" şeklinde bir soru yöneltebiliriz. Bunun için, Alan sırasının birinci sütundaki kutusunun seçme okunu tıklayarak, alan listesinden Şehir'i seçmemiz gerekir. Sonra, GSS'nin sadece süzme değil aynı zamanda sıralama yaptığını hatırlayarak, ikinci sıradaki Sırala kutusunun sağındaki seçme okunu tıklayarak, Artan, Azalan ve Sırasız seçeneklerinden Artan'ı seçelim. Ve sıra geldi, süzme için uygulatacağımız ölçütleri belirlemeye. Ölçüt satırının içini tıklayıp "Istanbul" yazıyoruz. Tırnak işaretlerini siz koymazsanız, Access koyar. Istanbul VE Niğde'de oturan dostlarımızı birlikte seçmek için, alttaki VEYA satırına da "Niğde"yazalım. Buraya kadar, tabloya soracağımız sorunun birinci bölümünü sormuş olduk: Istanbul ve Niğde'de oturanlar. Şimdi sorgunun ikinci bölümüne geliyoruz: Kart göndermem gerekenler. İkinci bölümdeki veritabanı alıştırmasını yaptıysanız, "KartYolla" alanının türünü "Evet/Hayır" yaptığımızı hatırlıyor olmalısınız. Şimdi, Alan satırının ikinci sütununda KartYolla alanının seçin; ("Evet" değerlerinin sıraya sokulmasına gerek olmadığına göre ikinci satırı atlayabilirsiniz) ve Ölçüt sarımına Evet yazın. Araç çubuğundaki Süzgeçi Uygula simgesi tıklayın ve tablonuzun sadece Istanbul veya Niğde'de oturanlardan kendilerine kart yollamam gerekenleri gösterdiğini, diğerlerinin süzüldüğünü ve süzgecin diğer tarafında kaldığını göreceksiniz. Kendi kendinizi kutlayabilirsiniz: çünkü sadece Access'in gelişmiş süzme ve sıralama aracını kullanmakla kaldık; SQL komutu yazmaya da ilk adımı attık. Şimdi artık Access'te ciddi sorgulama işleri yapabiliriz. Gerçek Sorgu: Basit Seçme "Sorgu, veriye soru sormaktır!" demiştik. Kimi zaman bir tablonun cevaplayabileceği soruları, süzme ve hatta sıralama ile çözümleyebiliriz. Fakat elde iki veya daha çok tablo varsa ne yapanız? Diyelim ki, siz sadece bir sınıfın değil, beş ayrı sınıfın öğretmenisiniz ve sınıflarınızda başarı oranını etkileyen garip bir eğilim farkettiniz. Sizin derslerinizde kız öğrenciler genellikle başarısız oluyor. Sadece bir sınıfın öğretmeni olsanız, bu kuşkunuzun yerinde olup olmadığını sınamak için iki süzme işlemi size sonucu verirdi. (Nasıl?) Fakat beş ayrı sınıf söz konusu olunca, her tablonun kendi içindeki yüzdeler, anlamlı olmayabilir. Size bütün tablolardan seçme-süzme yapan bir araç gerekiyor. Ya da beş tabloya birden soru sormanızı sağlayacak bir araç. Bu aracın adı Sorgu'dur. Access'in Sorguları Access 2000, bize altı ayrı sorgu türü veriyor. Bunlardan Basit Seçme sorgusu, biraz önce ele aldığımız Gelişmiş Süzme/Sıralama aracının birden fazla tablo kabul edebilenidir. Çapraz sorgu, verileri gruplandırarak, bunlar için sayım, toplam ve ortalama gibi hesapları yapar. Örneğin öğrencileri cinsiyetlerine ve derslere göre gruplandırıp, aldıkları not ortalamalarını göstermek., çapraz tablo yapmaktır. Çapraz sorgu bir tabloda çalıştığı için, örneğin öğrencilerinizin notları derslere göre ayrı tablolarda ise bunları bir tabloda basit seçme sorgusuyla birleştirmeniz gerekir. Tablo yapma sorgusu, seçme sorgusundan farklı olarak, çalıştığı zaman ortaya bir tablo penceresi çıkmaz; Access, sizden daha önce aldığı isimle bir tablo oluşturur. Bu tablo veritabanının parçası haline gelir. Oysa diğer sorguların sonuçları ancak sorgu çalıştığı sırada vardır. Güncelleştirme sorgusu, sorgu tasarımı sırasında verdiğiniz bir sabit değeri veya verdiğiniz bir deyimin o sırada bulunacak sonucunu, tayin ettiğiniz bir alana yazar. Bu, "Bul-Değiştir" gibi basit bir araç olmayıp, her kaydı, belirli bir formüle veya kıydın kendi içindeki bir değere göre yeniden hesaplayabilir. Ekleme ve Silme sorguları da güncelleştirme sorgusu gibi, ya farklı tabloların kayıtlarını birbirine ekler, ya da tablolardaki kayıtları siler. Bunların dışında tasarım sırasında yüklediğiniz işlevlerin bir sonucu olarak bir sorgu Parametre sorgusu (verdiğiniz görevi yapabilmek için kullanıcıdan bir değer girmesini isteyen sorgu), SQL Sorgusu (SQL komutlarını kullanarak birleşim, doğrudan sorgu, veri tanımla ve alt sorgu gibi veritabanınızı ODBC yoluyla dışarıdan kullanacak kullanıcıları gözönünde tutarak hazırladığınız sorgular) ve otomatik arama sorgusu (yeni bir kaydın bazı alanlarının otomatik olarak doldurulmasını sağlayan sorgu, AutoLookup sorgusu) diye de adlandırılabilir. Basit Seçme Sorgusu (BSS) dışındaki sorgular, ileri düzeyde Access bilgisi ve hatta bir ölçüde Programlar İçin Visual Basic for Applications (VBA) bilgisi gerektirebilir. BSS'yi iyi kavrayarak, bu ileri düzeydeki sorgular için mükemmel bir başlangıç yapabilirsiniz. BSS'in temel özelliklerini sıralarsak, şunlar karşımıza çıkıyor: 1. Sorguda birden fazla tablo kullanabilirsiniz; tablolar arasında oluşturduğunuz ilişkiden yararlanabilirsiniz. 2. Sorgu sonucu sadece istediğiniz alanları görüntüleyebilir; bu sırada gerekli olmayan sütunları yeni sorgu sonucu tablosuna almayabilirsiniz. 3. Sorgu sonucu oluşacak tabloda alanları istediğiniz sütun sırasına sokabilirsiniz. 4. Seçme işlemi sonucu kaç kaydın görüntülenmesini istiyorsanız, o kadar kayda yer verebilirsiniz. 5. BSS (ve diğer) sorguları icra ettikten sonra, sorguya konu olan tabloların değerlyeri değişmez; başka bir deyişle sorgular tabloları sadece "okur," içeriğini değiştirmezler. Bir sorgu işledikten sonra tablo oluşturuyorsa (Tablo Yapma Sorgusu ise) ortaya yeni bir tablo çıkar. Sorguyu tekrar çalıştırdığınızda bu tablo yeniden yazılır ve Access 2000, Özelleştir kutusunda yaptığınız uyarı ayarlarına göre sizi uyarabilir. İkinci bölümdeki Adres Defteri alıştırmasını yaptıysanız, bu veri tabanını açın ve birlikte bir BSS oluşturalım. Adres Defteri veritabanını oluşturmadı iseniz, aşağıdaki adımları kendi veritabanınıza uygulamak zorundasınız. Burada yapmak istediğimiş iş veya Access 2000'e sormak istediğimiz soru şu: Istanbul'da oturan ve çocuğu olan dostlarımız kimler, çocuklarının adı ne? Veritabanı dosyası açıldığında, veritabanı penceresinde, nesneler listesinde Sorgular satırını tıklayın. Sorgular penceresinde "Tasarım görünümünde sorgu oluştur" ve "Sihirbazı kullanarak sorgu oluştur" şeklinde iki kısayol göreceksiniz. Pencerenin araç çubuğundaki Yeni düğmesini tıklarsanız, karşınıza daha çok imkan sunan bir sihirbazın ilk adımını içeren bir kutu açılacaktır. Bu kutudaki Basit Sorgu Sihirbazı maddesi, Sorgu nesnesi penceresindeki "Sihirbazı kullanarak sorgu oluştur" kısayolu ile aynı sonucu verir. İster Yeni'yi tıklayıp açılan kutudan Basit Sorgu Sihirbazı maddesini seçin, ister "Sihirbazı kullanarak sorgu oluştur" kısayolunu tıklayın. BSS sihirbazının ilk penceresinde hangi alanların sorguda bulunmasını istediğinizi belirtmeniz gerekir. Bir sorgu sadece tablodan değil sorgu sonucundan da seçme yapabilir; dolayısıyla sol üstteki seçmeli listede veritabanınızda mevcut bütün tablolar ve sorgular sıralanır. Bu listede seçilmiş olan tablo veya sorgunun içerdiği alanlar ise sol altta kullanılabilir alanlar listesinde yer alır. Veritabanımıza soracağımız sorunun birinci bölümü "Istanbul'da oturan" dostlarımızın seçilmesi olduğuna göre, bu kişilerin kayıtlı olduğu Aile tablosunu seçmek zorundayız. Bu alanlardan hangileri BSS sonucu oluşturulacak tablomuzda yer alsın istiyoruz? Bir kere dostlarımızın adını ve soyadını seçmemiz gerekir. Seçilecek kişilerin tümünün Istanbul'da oturanlar olması için Şehir alanının da seçilmesi şart. Bunu yapmak için arzu ettiğimiz alanın adını bir kere tıkladıktan sonra ortadaki düğmelerden en üstte olan sağa doğru tek oklu düğmeyi tıklıyoruz. Soldaki alanların tümünün sorgu sırasında kullanılabilir olmasını isteseydik, ikinci sıradaki iki oklu düğmeyi tıklamamız gerekirdi. Bir alanı yanlışlıkla sağa geçirirsek, üçüncü sıradaki sola doğru tek oklu düğmeyi tıklayarak sorguda kullanabileceğimiz alanlar listesinden çıkartırız. Bu alanların tümünü sorgu listesinden çıkartmak için el alttaki iki oklu düğmeyi tıklayabiliriz. Veritabanına sorduğumuz sorunun ikinci bölümü, Istanbul'da oturan dostlarımızdan sadece çocukları olanların seçilmesini, üçüncü bölümü ise çocukların adlarının da listelenmesini gerektirdiğine göre, bize Çocuklar tablosu ve bu tablodaki çocuk adları alanı da gerekiyor. Şimdi Tablolar ve sorgular kutusunun seçme okunu tıklayarak açılan listeden Çocuklar tablosunu seçelim, sonra da bu tablonun Adı adlı alanını sağa aktaralım. Ama hemen İleri düğmesini tıklamayın. Şimdi bir an için kendimizi Access 2000'in yerine koyalım: Biraz sonra bir seçme işlemi yapacağız; çocuğu olan ve Istanbul'da oturan kişileri seçeğiz. Istanbul'da oturanları seçmek kolay: Eğer Şehir alanındaki değer "Istanbul" ise bu kişiyi seçebiliriz. Peki bu kişilerin çocuğu olup olmadığını nasıl bilebiliriz? Veya şöyle soralım: bu kişilerin çocukları varsa bunları Çocuklar tablosunda nasıl belirleyebiliriz? Bu iki tablo arasında ilişki sağlayan alanla! Veritabanı tasarımında en zor nokta, tablolarda gereksiz yere tekrarı önlemek amacıyla alanları başka tablolara aktarmak gerektiğinden söz ettiğimiz sırada, tablolar arasında ilişki kurmamız gerektiğini belirtmiştik. İkinci bölümden hatırlıyorsanız, Aile tablosuyla Çocuklar tablosu arasındaki ilişkiyi, yani hangi çocuğun hangi aileye mensup olduğunu Aile Sıra No alanındaki bilgiyi iki tabloda ortak kullanarak biliyoruz. Başka bir deyişle bir çocuğun Aile Sıra No alanındaki değer, bu çocuğun hangi ailenin üyesi olduğunu gösteriyor. Sorgu sırasında Access 2000, şöyle düşünebilir: "Hımm. Istanbul'lu bir kişiyi seçeyim; sonra bu kişinin Aile Sıra No alanındaki değeri, Çocuklar tablosundaki aynı adlı alanda arayayım; |
|
|||
|
eğer bu iki değer aynı ise bu çocuğun adını alıp, Istanbullu kişi ile
birlikte kaydedeyim." Access'in düşündüğünü uygulayabilmesi için, ona her iki tablodan Aile Sıra No alanını da vermemiz gerekir. O halde önce açık olan Çocuklar tablosunun, sonra da yeniden Aile tablosunu seçerek, Aile Sıra No alanlarını sağa aktarın. Bu kutuda işimiz bittiğine göre Tamam'ı tıklayabilirsiniz. (Sorgu kaç tablodan kaç alan seçmeyi gerektiyorsa, o kadar alan seçebilirsiniz. Buradaki örnek bu alanları gerektirdiği için burada duruyoruz; sizin örneğiniz başka tablolardan başka alanlar gerektiyorsa, seçmeye devam edin.) Basit sorgu sihirbazının ikinci penceresi, sorgu sonucu oluşturulacak tabloda kaç kayıt olacağını belirler. Varsayılan değer, seçtiğiniz tablolardaki tüm kayıtların sorgu sonucu oluşacak tabloya alınmasıdır. Fakat diyelim ki size sorgu sonucu oluşacak tablonun ilk 5, 25 veya 100 kaydını içeren özet bir tablo da oluşturabilirsiniz. Özet tablo için Özetk seçeneğini seçin ve Özet Seçenekleri düğmesini tıklayın. Bu iş bittikten sonra veya Ayrıntılı seçeneğini seçerek, İleriyi tıklayabilirsiniz. Üçüncü pencerede yeni sorgunuza isim vermeniz, Son'u tıkladığınızda sorgunun icra edilmesini mi, yoksa sorguda sihirbazın yapmadığı değişiklikleri yapmak üzere tasarım görünümünün açılmasını mı istediğinizi belirtmeniz gerekir. Burada yardım isteyip istemediğinizi belirteceğiniz bir başka seçenek daha var. Tasarımı güç sorgular yaptığınızda, Access 2000'in yardım penceresinin açılmış olması size kolaylık sağlar. Şimdi, sorgunun tasarımı ile ilgili işlerimiz bitmediği için ikinci seçeneği işaretleyerek Son'u tıklayalım. Access 2000, seçtiğiniz iki tabloyu sorgu tasarım penceresinin üst bölümünde gösteriyor. İki tablo arasındaki ilişki çizgisine dikkat edin; bu ilişkiyi ikinci bölümdeki alıştırma sırasında kurmuştuk. Access, seçtiğiniz altı alanı, değerleri ne olursa olsun, bütün kayıtları ile seçmeyi (ve bunu yaparken iki tabloyu birleştirmeyi) sağlayan bir sorgu tasarımı öneriyor. Bütün alanların seçildiğini, sorgu tasarım penceresinin alt yarısındaki kılavuzda, Alan satırındaki alan adlarından anlıyoruz. Bu satıra yazılan alan adlarını inceleyin; tablo adı ile tablonun alan adı nasıl birleştiriliyor? İkinci satırda ise tablonun adı belirtiliyor. Sırala satırının boş bırakıldığına dikkat edin. Göster satırındaki kutuların işaretli olması bu alanın sorgu sonucu oluşturulacak tabloda gösterileceği anlamına geliyor. Ve son olarak Ölçüt satırlarının boş olduğuna dikkat edin. Biz sorgumuzun sadece çocukları olan Istanbulluları kapsamasını istiyorduk. O halde, Şehir alanının sütununda, Ölçüt satırına "Istanbul" yazmamız gerekiyor, ki sadece Istanbullular seçilsin. Peki bunlar arasından çocukları olanları nasıl seçeğiz, Access ile çalışma konusunda ustalığınız ilerledikçe, bu tür şartlı seçmeleri (SQL deyiminde "eğer" şartı geçen sorguları) oluşturma becerisi de edineceksiniz. Fakat şimdilik böyle bir sorgu deyimi oluşturmaya gerek yok: Access, çocuklar listesindeki Adı değerlerini seçerken, bunların Aile Sıra No değeri Aile tablosunda Aile Sıra No değerine denk gelmeyen kayıtları seçmeyecektir. (Aile tablonuzda çocuksuz Istanbullu dostlarınız, Çocuklar tablosunda da Istanbullu ailelere mensup olmayan çocuklar bulunmasını sağlayın, ki BSS'in gerçekten işleyip işlemediğini sınayabilelim.) Şimdi sorgu tasarım penceresinde Şehir sütununda Ölçüt satırına "Istanbul" yazın. Sorgu sonucu oluşacak yeni tablomuzda iki ayrı Aile Sıra No sütununa gerek olmadığı için Çocuklar tablosundan alınacak Aile Sıra No sütununun Görüntüle satırındaki işareti kaldırabiliriz; fakat BSS'in tablonun ilişki bağından nasıl yararlandığını görmek için şimdilik bu işareti kaldırmayın. Özetle, Access 2000 BSS sihirbazının tasarımına sadece Şehir alanında Ölçüt olarak "Istanbul" kelimesini eklemiş olduk. Bu sırada Access 2000'in araç buçuğunda ünlem işareti şeklinde bir simge belirdiğini görüyor musunuz? "Çalıştır" isimli bu araç, Access 2000'e "Bu sorguyu icra et ve sorduğum sorunun cevabını bana tablo alarak göster!" komutunun kısayoludur. Şimdi bu simgeyi tıklayalım. İşte sorumuzun cevabı: Aile listemizde yer alan Şehir alanındaki değer "Istanbul" olan ve Çocuklar tablosunda kendilerine ait çocuk bulunan dostlarımızın listesi! Access ile çalışma becerinizi arttırdıkça, her çocuğu mensup oldukları aile ile aynı satıra "Çocuk 1," "Çocuk 2" ... şeklinde yeni sütunlar halinde sıralamayı da sağlayabilirsiniz. Bu sorgunun verdiği sonuçları doğru bulmuyorsanız, tekrar tasarım görünümüne dönebilirsiniz. Bunun için Access 2000 araç çubuğunda tasarım görünümü simgesini tıklayın. Sorgunun tasarımında istediğiniz değişikleri yaptıktan sonra Çalıştır simgesini tıklayabilirsiniz. Sorgunun istediğiniz sonucu verdiğini gördükten sonra kapatmaya kalktığınızda Access 2000 sorguyu veritabanı dosyasının içinde kaydededecektir. Bir BSS tasarlamaya çalıştığınız sırada seçtiğiniz tablolar ilişkili değilse, Access 2000 sizi uyarır ve bu ilişkiyi kurmadan devam etmek istemez. Sorgu tasarımı sırasında seçtiğiniz tablolar arasındaki ilişki çizgisini silerek sorguyu çalıştırırsanız, anlamlı olmayan sonuçlar alırsınız. İleri Sorgular Access 2000 ile gerçek bir sorgu oluşturduğuma göre, şimdi bir adım ileri giderek, sorgu tasarımında oluşturacağımız bir "deyim" aracılığıyla tablolarımızdaki alanlardan elde edeceğimiz bilgi ile yeni bir alan oluşturalım ve bunu yeni bir tabloya etkeleyim. Burada yine yukarıdaki örneği kullanmaya devam edeceğiz. Amacımız, Aile tablosundaki her kayıt için Ad alanının içeriği ile Soyadi alanının içeğini birleştirmek ve tek sütunda toplamak. Sonra bir üçüncü sütun olarak Adres 1, Adres 2 ve Şehir alanlarını birleştirip Adres adı altında yeni bir alan oluşturacağız. Bu sorgunun oluşturacağı tabloyu da yeni bir tablo olarak veritabanımıza ekleyeceğiz. (Daha sonra bu tablo çok işimize yarayacak!) Adres Defteri veritabanını yaptınızsa ve açık değilse, açın. Sorgular nesnseini seçin ve "Tasarım görünümünde sorgu oluştur" kısayolunu tıklayın. Access 2000 sorguda yararlanmak istediğiniz tabloları seçebilmeniz için bir kutu açacaktır; buradan Aile tablosunu seçin, ve Ekle düğmesini tıklayın. Tablo seçme kutusunu kapatabilirsiniz; çünkü istediğimiz bütün alanlar bu tabloda mevcut. İkinci bölümdeki alıştırma sırasında Adres Defteri veritabanını oluşturmadıysanız, herhangi bir veritabanını açabilir, herhangi bir tabloyu seçebilirsiniz. Gerçi buradaki alıştırma sonunda elde edeceğiniz tablo anlamlı sonuçlar içermeyebilir, ama en azından deyim oluşturma konusundaki alıştırmaya katılmış olursunuz. Access 2000, sadece bir tablosu kullanılmaya hazır, fakat alanlarının tümü boş bir sorgu tasarım panceresi açacaktır. Şimdi, tasarım penceresinin alttaki kılavuz bölümünde, Alan satırının birinci sütununun içini sağ tıklayın, ve açılan menüden "Oluştur..." maddesini seçin. Access 2000, daha önce gördüğümüz "Deyim Oluşturucusu" aracını açacaktır. Bir kere daha tekrar edelim: Aile tablosunun "Adı" alanındaki değer ile "Soyadı" alanındaki değeri aynı alanda birleştirmek istiyoruz. En soldaki kategorilerden Tablolar'ı iki kere tıklayın; altında veritabanınızdaki bütün tabloların listesini göreceksiniz. Aile (veya hangi tabloyu örönek olarak kullanacaksınız o tablonun adını) bir kere tıklayın. Ortadaki pencerede tablonun içerdiği bütün alanların listesi görüntülenince, "Adi" alanını (veya hangi alanı kullanacaksanız o alanın adını) bir kere tıklayın. Şimdi en sağda, her kayıt için bu alandaki değeri simgeleyen "" kelimesi belirecektir. Deyim oluşturucusunun üstteki deyim penceresi ile kategori pencerelerinin yer aldığı bölüm arasındaki araç simgelerinden "Yapıştır" simgesini tıklayın. Deyim satırında "[Aile]![Adi]" ifadesi belirdi. Peki, yine araç simgelerinden beşincisi olan "&" (ekle) işaretini tıklayın; pencçerede beliren "&" işaretinin sağını tıklayıp, klavyede tırnak işareti tuşuna, aralık tuşuna ve tekrar tırnak işareti tuşuna basın. Araç çubuğundan "&" simgesini tekrar tıklayın. Deyim oluşturucunun alt bölümünde ortadaki pencerede "Soyadı" alanını ve araç çubuğunda Ekle simgesini tıklayın. Bunları sarısaylı yaptıysanız, deyim satırında şu ifade belirecektir: [Aile]![Adi] & " " & [Aile]![Soyadi] Burada işin püf noktası Access 2000'e yazdırdığınız iki alan referansı ve & işaretinin ortasına klavyeden yazdığınız tırnak-aralık-tırnak bölümünü doğru yazmaktır. Bununla Access 2000'e, "Aile tablosundan "Adi" alanının değerini al, buna önce bir aralık sonra da Alie tablosunda "Soyadi" alanının değerini ekle!" demiş oluyoruz. Deyim oluşturucu ise şu anda işimiz bitti; Tamam'ı taklayabiliriz. Geri döndüğümüz sorgu tasarım penceresinde Alan satırında şu ifadeyi göreceksiniz: Deyim1: [Aile]![Adi] & " " & [Aile]![Soyadi] Peki, şimdi ikinci sütundaki Alan kutusunu sağ tıklayın, ve aynı işlemi bu kez kutunun içinde şu ifade belirecek şekilde yapın: Deyim2: [Aile]![Adres1] & " " & [Aile]![Adres2] & " " & [Aile]![Sehir] Başka bir veritabanı ve başka tablo kullanıyorsanız, "Adres1" ve diğer alanlar yerine başka alanları seçebilirsiniz. Burada önemli olan üç alanı aralarına birer aralık koyarak birbirine eklemenizdir. Bu işlemi bitirdikten sonra, sıra sorguyu tablo yapar hale getirmektir. Bunun için Sorgu menüsünden Tablo Yapma Sorgusu maddesini tıklayın ve açılacak kutuda Tablo adı hanesine sorgunun oluşturucağı tabloya verilecek adı yazın. Bu adın veritabanında mevcut bir tablo adı olmamasına dikkat edin. Tablonun o anda açık veritabanı içinde oluşturulmasını istiyorsanız "Geçerli veritabanı" (Current'in karşılığı "geçerli" olmasa da!) maddesinin işaretli kalmalıdır; yeni tablonun başka bir veritabanı içinde oluşturulmasını da sağlayabilirsiniz. Bunun için "Farklı veritabanı" maddesini işaretleyin ve "Dosya adı" hanesine bu veritabanının adını yazın. Tamam'ı taklayın. Şimdi ne zaman bu sorguyu çalıştırırsanız, veritabanına verdiğiniz isimde bir dosya eklenecek veya mevcut dosya (sizin onayınızla) güncelleştirilecektir. Şimdi bunu yapalım. Araç çubuğundan Çalıştır simgesini tıklayın. Ve Veritabanı penceresinde Tablolar nesnesini seçin; açılacak kutuda da yeni tablonuzun adını iki kere tıklayın. İşte bir tablonun farklı alanlarını birleştirerek elde ettiğiniz yeni tablonuz. Burada alan adı olarak sorguda ortaya çıkan uzun ifade yerine sadece "Deyim1" ve "Deyim2" kelimelirinin seçildiğine dikkat edin. Bu isimler hoşunuza gitmiyorsa, yeni tabloyu tasarım görünümünde açabilir ve alan adlarını değiştirebilirsiniz. Access 2000'in Deyim Oluşturucucusu, sizin için burada yaptığınızdan çok daha ileri düzeyde, seçme, aritmetik, istatistik ve benzeri işlevlere dayanan hesaplamalar yapabilen SQL deyimleri yazmanız için yardımcı olacaktır. Buradaki örnekte de yaptığınız gerçekte bir SQL komut ifadesi yazmaktı. Sorgunuz tasarım halinde iken Görünüm menüsünden SQL Göster maddesini seçerseniz, sorgunun SQL komut ifadesi biçiminde nasıl yazıldığını görebilirsiniz: |
|
|||
|
SELECT [Aile]![Adi] & " " & [Aile]![Soyadi] AS Deyim1, [Aile]![Adres1]
& " " & [Aile]![Adres2] & " " & [Aile]![Sehir] AS Deyim2 INTO [Adres Listesi] FROM Aile; Sorgu konusunu tamamlarken bir bir çok sorgu türünü ele almadığımızı hatırlatmak erinde olur. Bu sorguları tanımak ve burada verdiğimiz iki örnekle aralarındaki farkı görebilmek için izlenebilecek yollardan biri sorgu sihirbazlarını kullanarak, Access 2000'e her birinden bir kaç örnek yaptırtmak olabilir. Sorgularda kullanabileceği işlevler ve diğer hesaplatma işleri için de Access 2000 yardım dosyalarındaki çok sayıda örneğe bakabilirsiniz. İleri Sorgular Access 2000 ile gerçek bir sorgu oluşturduğuma göre, şimdi bir adım ileri giderek, sorgu tasarımında oluşturacağımız bir "deyim" aracılığıyla tablolarımızdaki alanlardan elde edeceğimiz bilgi ile yeni bir alan oluşturalım ve bunu yeni bir tabloya etkeleyim. Burada yine yukarıdaki örneği kullanmaya devam edeceğiz. Amacımız, Aile tablosundaki her kayıt için Ad alanının içeriği ile Soyadi alanının içeğini birleştirmek ve tek sütunda toplamak. Sonra bir üçüncü sütun olarak Adres 1, Adres 2 ve Şehir alanlarını birleştirip Adres adı altında yeni bir alan oluşturacağız. Bu sorgunun oluşturacağı tabloyu da yeni bir tablo olarak veritabanımıza ekleyeceğiz. (Daha sonra bu tablo çok işimize yarayacak!) Adres Defteri veritabanını yaptınızsa ve açık değilse, açın. Sorgular nesnseini seçin ve "Tasarım görünümünde sorgu oluştur" kısayolunu tıklayın. Access 2000 sorguda yararlanmak istediğiniz tabloları seçebilmeniz için bir kutu açacaktır; buradan Aile tablosunu seçin, ve Ekle düğmesini tıklayın. Tablo seçme kutusunu kapatabilirsiniz; çünkü istediğimiz bütün alanlar bu tabloda mevcut. İkinci bölümdeki alıştırma sırasında Adres Defteri veritabanını oluşturmadıysanız, herhangi bir veritabanını açabilir, herhangi bir tabloyu seçebilirsiniz. Gerçi buradaki alıştırma sonunda elde edeceğiniz tablo anlamlı sonuçlar içermeyebilir, ama en azından deyim oluşturma konusundaki alıştırmaya katılmış olursunuz. Access 2000, sadece bir tablosu kullanılmaya hazır, fakat alanlarının tümü boş bir sorgu tasarım panceresi açacaktır. Şimdi, tasarım penceresinin alttaki kılavuz bölümünde, Alan satırının birinci sütununun içini sağ tıklayın, ve açılan menüden "Oluştur..." maddesini seçin. Access 2000, daha önce gördüğümüz "Deyim Oluşturucusu" aracını açacaktır. Bir kere daha tekrar edelim: Aile tablosunun "Adı" alanındaki değer ile "Soyadı" alanındaki değeri aynı alanda birleştirmek istiyoruz. En soldaki kategorilerden Tablolar'ı iki kere tıklayın; altında veritabanınızdaki bütün tabloların listesini göreceksiniz. Aile (veya hangi tabloyu örönek olarak kullanacaksınız o tablonun adını) bir kere tıklayın. Ortadaki pencerede tablonun içerdiği bütün alanların listesi görüntülenince, "Adi" alanını (veya hangi alanı kullanacaksanız o alanın adını) bir kere tıklayın. Şimdi en sağda, her kayıt için bu alandaki değeri simgeleyen "" kelimesi belirecektir. Deyim oluşturucusunun üstteki deyim penceresi ile kategori pencerelerinin yer aldığı bölüm arasındaki araç simgelerinden "Yapıştır" simgesini tıklayın. Deyim satırında "[Aile]![Adi]" ifadesi belirdi. Peki, yine araç simgelerinden beşincisi olan "&" (ekle) işaretini tıklayın; pencçerede beliren "&" işaretinin sağını tıklayıp, klavyede tırnak işareti tuşuna, aralık tuşuna ve tekrar tırnak işareti tuşuna basın. Araç çubuğundan "&" simgesini tekrar tıklayın. Deyim oluşturucunun alt bölümünde ortadaki pencerede "Soyadı" alanını ve araç çubuğunda Ekle simgesini tıklayın. Bunları sarısaylı yaptıysanız, deyim satırında şu ifade belirecektir: [Aile]![Adi] & " " & [Aile]![Soyadi] Burada işin püf noktası Access 2000'e yazdırdığınız iki alan referansı ve & işaretinin ortasına klavyeden yazdığınız tırnak-aralık-tırnak bölümünü doğru yazmaktır. Bununla Access 2000'e, "Aile tablosundan "Adi" alanının değerini al, buna önce bir aralık sonra da Alie tablosunda "Soyadi" alanının değerini ekle!" demiş oluyoruz. Deyim oluşturucu ise şu anda işimiz bitti; Tamam'ı taklayabiliriz. Geri döndüğümüz sorgu tasarım penceresinde Alan satırında şu ifadeyi göreceksiniz: Deyim1: [Aile]![Adi] & " " & [Aile]![Soyadi] Peki, şimdi ikinci sütundaki Alan kutusunu sağ tıklayın, ve aynı işlemi bu kez kutunun içinde şu ifade belirecek şekilde yapın: Deyim2: [Aile]![Adres1] & " " & [Aile]![Adres2] & " " & [Aile]![Sehir] Başka bir veritabanı ve başka tablo kullanıyorsanız, "Adres1" ve diğer alanlar yerine başka alanları seçebilirsiniz. Burada önemli olan üç alanı aralarına birer aralık koyarak birbirine eklemenizdir. Bu işlemi bitirdikten sonra, sıra sorguyu tablo yapar hale getirmektir. Bunun için Sorgu menüsünden Tablo Yapma Sorgusu maddesini tıklayın ve açılacak kutuda Tablo adı hanesine sorgunun oluşturucağı tabloya verilecek adı yazın. Bu adın veritabanında mevcut bir tablo adı olmamasına dikkat edin. Tablonun o anda açık veritabanı içinde oluşturulmasını istiyorsanız "Geçerli veritabanı" (Current'in karşılığı "geçerli" olmasa da!) maddesinin işaretli kalmalıdır; yeni tablonun başka bir veritabanı içinde oluşturulmasını da sağlayabilirsiniz. Bunun için "Farklı veritabanı" maddesini işaretleyin ve "Dosya adı" hanesine bu veritabanının adını yazın. Tamam'ı taklayın. Şimdi ne zaman bu sorguyu çalıştırırsanız, veritabanına verdiğiniz isimde bir dosya eklenecek veya mevcut dosya (sizin onayınızla) güncelleştirilecektir. Şimdi bunu yapalım. Araç çubuğundan Çalıştır simgesini tıklayın. Ve Veritabanı penceresinde Tablolar nesnesini seçin; açılacak kutuda da yeni tablonuzun adını iki kere tıklayın. İşte bir tablonun farklı alanlarını birleştirerek elde ettiğiniz yeni tablonuz. Burada alan adı olarak sorguda ortaya çıkan uzun ifade yerine sadece "Deyim1" ve "Deyim2" kelimelirinin seçildiğine dikkat edin. Bu isimler hoşunuza gitmiyorsa, yeni tabloyu tasarım görünümünde açabilir ve alan adlarını değiştirebilirsiniz. Access 2000'in Deyim Oluşturucucusu, sizin için burada yaptığınızdan çok daha ileri düzeyde, seçme, aritmetik, istatistik ve benzeri işlevlere dayanan hesaplamalar yapabilen SQL deyimleri yazmanız için yardımcı olacaktır. Buradaki örnekte de yaptığınız gerçekte bir SQL komut ifadesi yazmaktı. Sorgunuz tasarım halinde iken Görünüm menüsünden SQL Göster maddesini seçerseniz, sorgunun SQL komut ifadesi biçiminde nasıl yazıldığını görebilirsiniz: SELECT [Aile]![Adi] & " " & [Aile]![Soyadi] AS Deyim1, [Aile]![Adres1] & " " & [Aile]![Adres2] & " " & [Aile]![Sehir] AS Deyim2 INTO [Adres Listesi] FROM Aile; Sorgu konusunu tamamlarken bir bir çok sorgu türünü ele almadığımızı hatırlatmak erinde olur. Bu sorguları tanımak ve burada verdiğimiz iki örnekle aralarındaki farkı görebilmek için izlenebilecek yollardan biri sorgu sihirbazlarını kullanarak, Access 2000'e her birinden bir kaç örnek yaptırtmak olabilir. Sorgularda kullanabileceği işlevler ve diğer hesaplatma işleri için de Access 2000 yardım dosyalarındaki çok sayıda örneğe bakabilirsiniz. Araştır düğmesini tıkladığınızda, büyük bir ihtimalle tam aradığınız konuya uygun bir başlığın yer aldığı bir kaç yardım konusu liste halinde karşınıza gelecektir. Ofis Yardımcısı'nın diyalog kutusundaki Seçenekler düğmesini tıklarsanız, Yardımcı için farklı simgeler seçebilirsiniz. Ofis Yardımcısının sağladığı hızlı yardım yeterli olmadığı anlarda, arama ve dizinden geçme gibi diğer bazı imkanları olan yardım kutusunu açabilirsiniz. Bunun için Yardım menüsünden Microsoft Access Yardım maddesini seçmeniz gerekir. Yardım gereken konunun anahtar kelimelerinin ne olabileceği hakkında şüphede iseniz, bu kutuda İçindekiler sekmesini tıklayarak bütün yardım konularını ana başlıklar halinde inceleyebilirsiniz. Bu kutuda ikinci sekme olan, Cevap Sihirbazı ise Ofis Yardımcısı gibi, düzgün bir Türkçe soruyu anlayabilir! (Kurulu Windows sisteminizin varsayılan dili Türkçe değilse, Ofis Asistanı, soru yazmanıza imkan veren kutuyu görüntülemeyecektir.) Dizin ise kelime aratmak için kullanılır. Bunu iki ayrı şekilde yapabilirsiniz. Önce arama yapılmasını istediğiniz kelime veya kelimeleri arama kutusuna yazın. Access 2000, kendi dizininde buraya yazdığınız kelimelerle ilgili gördüklerini iki numaralı kutuya yazacaktır. İsterseniz bu kutudaki bir kelimeyi de işaretleyebilirsiniz. Sonra Ara düğmesini tıklayın. İçinde yazdığınız veya seçtiğiniz kelimelerin geçtiği yardım metinlerinin başlıkları üçüncü kutuda sıralanacaktır. Bu kutudaki başlıklardan size uygun görüneni iki kere tıklayın; yardım metni sağdaki çerçevede görüntülenecektir. Yardım kutusunun kendi araç çubuğundaki yazıcı simgesini tıklayarak, görüntülediğiniz metni yazıcıya gönderebilirsiniz; ileri-geri simgelerini tıklayarak önceki ve sonraki yardım metinleri arasında gidip-gelebilirsiniz. Şimdi Access 2000'in yüzünü tanımış oldunuz. Aşağı yukarı hangi düğmenin ne yapacağını biliyorsunuz. Şimdi sıra Access'e bunları yaptırtmaya geldi. |
|
|||
|
Access ile Veritabanı Tasarımı
Access 2000'i tanıdık diye hemen veri tabloları oluşturmak ve onlarla sihirbazlık yapmak için henüz erken. Önce veritabanı planlama konusundan söz etmemiz gerekiyor. Dikkatlice planlanmamış bir veritabanı kullanıcıya yarardan çok zarar getirir. Veri planlama, daha sonra verinin nerede ve nasıl kullanılacağına dayanır. İmkansız olmamakla birlikte çok az veritabanı ilk amacının dışında kullanılabilecek hale getirilebilir. İyi bir planlama ise önce veritabanı terimlerine aşina olmayı gerektirir. Şimdi kısaca bu terimleri ele alalım. Veri ve Alan Access 2000 ile kaydedeceğiniz ve kullanacağınız bilgilere veri denir. Access açısından veriler, ait oldukları alanın türünde sayılır. Bir alan sayı içeriyorsa, "123456789" sayıdır. Bir alan metin içeriyorsa "123456789" metindir. Access 2000'de verileriniz şu türlerden birine girmek zorundadır: Metin: Rakam, harf veya işaretlerden oluşan ve 255 karakter genişliğinde bir alandır. Metin olarak tayin edilmiş bir alana yazılan rakamlar, sayı işlemi görmez; yani aritmetik işleme konu olamaz. Metin alanları, belirlediğiniz (nasıl belirleyeceğimize sonra geleceğiz) genişliğin üstünde karakter tutamazlar. Söz gelimi bir metin alanını 8 karakter boyutunda oluşturduysanız, bunun içine "Mustafa Durcan" yazamazsınız. İyi bir veritabanı tasarımı, daima gerektiğinden biraz fazla geniş boyut tayinini gerektirir. Not: Metin alanı olmakla birlikte, 64 bin karakter alabilir. Sayı: Her türlü aritmetik işleme konu olabilecek sayıları tutar. Tarih/Saat: Belirlemenize göre, tarih veya saat veya her ikisini birden tutabilen özel bir alandır. Para Birimi: Türk lirası, Dolar, Alman Markı, Japon Yeni ve dünyada bulunabilecek hemen hemen bütün para birimlerine tayinh edilebilecek özel bir alandır. Para birimi verilerinizi gireceğiniz alanın Currency olması, Access 2000'in bu verilerle para biriminin gerektirdiği biçimde hesap yapmasını sağlar. Otomatik Sayı: Access 2000 tarafından artan şekilde otomatik olarak doldurulan bir alandır. Bir veritabanında her bir kaydın (satırın) diğerlerinden mutlaka ayırıcı bir niteliği olması gerekir. Herşeyiyle aynı iki kayıt, otomatik sayı alanının farklılığı sayesinde birbirinden ayrılabilir. Evet/Hayır: İçindeki değer Evet veya Hayır ya da Doğru veya Yanlış olabilen, mantıksal işlemlerde kullanılan bir alandır. OLE Nesnesi: Access 2000'in veritabanında bir başka program tarafından oluşturulmuş nesnelere yervermenizi sağlayan alan türüdür. Köprü: Internet sitelerinde bulunan sayfaların adresi (URL), Access 2000 tarafından bağlantı sağlanacak biçimde tutulabilir. Arama Sihirbazı: Bir alana doğrudan vergi girmek yerine, Access'in Arama Sihirbazı yardımıyla bu veriyi bir tablodan veya sorgu sonucundan seçmesini sağlayabilirsiniz. Kayıt Veritabanındaki bir birim bilgi kümesine kayıt denir. Örneğin okuldaki derslerinizde sınıvlarda, ödevlerde aldığınız notları tutan bir veritabanı tasarlıyorsanız, her bir ders bir kayıt olabilir. Buna karşılık bir öğretimenin sınıfındaki öğrenciler için tuttuğu veritabanında, her bir öğrenci bir kayıt olabilir. Access ile kendinize bir adres defteri yapıyorsanız, her kişi veya firma bir kayıttır. Veri alanlarınızı belirlerken, bazı alanları "boş olabilir" şeklinde tanımlamışsanız, telefon defterinizdeki her kaydın her alanı dolu olmayabilir; örneğin bazı kişilerin faks numarası veya elektronik posta adresi olmayabilir. Buna karşılık veri alanlarını belirlerken bazı alanlara boş olma yasağı getirmişseniz, tablolarınızı doldururken Access 2000 bu alana mutlaka alanın niteliğine uygun bir değer girmenizi şart koşacaktır. Tablo Tablo, (boş veya dolu) aynı alanlara sahip kayıtlar kümesidir. Notlarınızı tuttuğunuz dosyada 1999-2000 ders yılı notlarınız bir tablo oluşturabilir. Bir öğretmen için Lise 3 Türk Edebiyatı sınıfındaki öğrenciler bir tabloda toplanabilir. Fakat öğretmen isterse kız ve erkek öğrencileri aynı tablolara da alabilir. Daha sonra değineceğiz, bir veritabanında aynı kişiye, aynı sınıfa, yani aynı birime ait kayıtların tümü tek tabloda bulunmayabilir. Bu sebeple, tablo dendiği zaman, sadece birbirine benzeyen verileri olan kayıt kümesi aklımıza gelmelidir. Burada birbirine benzeyen tanımına dikkat edin: Diyelim ki elimizde üç kişilik bir bilgi kümesi var. Bu üç kişiye ait bilgileri, adı, soyadı ve cinsiyeti diye üç alanda toplamaya karar verdik. Bu üç kişinin de bu üç haneye yazılacak bilgisi benzer bilgilerdir. Bilgilerin içerikli çok farklı olabilir; birinin adı Mustafa, diğerinin Osman, üçüncüsünün ise Vildan olabilir. İlk ikisi için tablomuyaz "erkek," üçüncüsü için "kadın" yazmamız gerekebilir. Fakat bu üç kişi bir arada, bir tablo oluşturabilir. Veritabanı Çeşitli tablolardan oluşan ve bir Access 2000 dosyayı halinde toplanan bilgi kümesine veritabanı deriz. Bir veritabanının içinde birden fazla tablo bulunabilir. Bu tablolar birbiri ilişkilendirilmiş olabilir; ilişkilendirilmemiş olabilir. Bir veritabanında tablolar birbiri ile ilişkilendirilmemiş ise buna düz veritabanı, tablolar ilişkilendirilmiş ise (doğru bildiniz!) ilişkilendirilmiş veritabanı denir. Eğer veritabanı tasarımının bir tek püf noktası varsa, o da ilişkilendirilmiş tablo meselesini kavramaktır. Düz Veritabanı: Bir tablonun bütün alanlarına dair bütün bilgiler kendi içinde ise bu tabloya düz tablo, bu dosyaya düz dosya ve bu veritabanına da düz veritabanı denir. Diyelim ki elimizde, "Adı," "Adresi" ve "Telefon numarası" alanlarını içeren bir tablo var. Ve diyelim ki Mustafa'nın 1, Osman'ın 2, Vildan'ın da 3 telefonu var. Bu durumda Mustafa listemize bir kere, Osman iki kere, Vildan ise üç kere yazılacak demektir. Düz tablolarda tekrarlar olur. İlişkilendirilmiş Veritabanı: Düz tablolardaki tekrarı önlemek ve böylece veritabanının daha az yer tutmasını dolayısıyla sorguların daha hızlı icra edilmesini sağlamak amacıyla, tabloları ilişkilendiririz. Yukarıdaki örneğe dönersek, Osman'ın adını ve adresini iki, Vildan'ın adını ve adresini üç kere göstermek yerine, bütün kişileri bir tabloda adları ve adresleri ile toplar, bir diğer tabloya ise telefon numaralarını yazan ve her bir numarayı kişiler tablosunda bir kayıtla ilişkilendirirsek, her kisini de veritabanımız dosya olarak çok daha az yer tutar. Bunu "Anahtar alan" veya "Birincil anahtar" (Primary key) adını verdiğimiz teknikle sağlarız. Her tabloda her bir kaydı diğerlerinden benzersiz hale getiren, yani diğer hiç bir satırda aynısı bulunmayan bir alan olmalıdır. Bu nitelikteki bir alanı Birincil Anahtar olarak tayin edebiliriz. İlişkilendirilmiş bir veritabanında, her bir kayıt, bir alanından diğer bir tabloya bağlanır. Bu bağlamanın kayıtların benzersiz alanlarından yapılması yanlış bağları önleyecektir. Yine yukarıdaki örneğe dönelim. Mustafa'ya 1, Osman'a 2 ve Vildan'a 3 numaralı kişi diyelim; Elimizdeki bütün telefon numaralarını altalta yazar (telefon numaralarını kayıt yani satır olarak düşünün) ve karşılarına ait oldukları kişinin numarasını yazarsak, her bir telefonun kime ait olduğunu kolayca buluruz. "Kolayca" tabiî sözün gelişi; fakat bu durumda veri tabanı dosyamız çok daha az yer tutar. Basit bir adres defteri yaparken, herkese üç telefon, bir faks ve bir de cep telefonu hanesi açmak ve bazı kişiler için bazı sütunları (alanları) boş bırakmak daha kolay bir çözüm olabilir. Bununla birlikte daha sonra uygulama programlarına veya Web sayfalarına temel olacak veritabanları geliştirirken, ilişkilendirilmiş tablolar kullanmak daha doğru olur. İlişkilendirmenin ilkelerinden, ilerde tablolarlarımızda ilişki kurarken söz edeceğiz. Tablo Tasarımı İyi bir veritabanı tasarımı, iyi düşünülmüş tablo tasarımı ile başlar. Bu ilke uygulamada şu anlama gelir: Mouse işaretçisini Access simgesi üzerine doğru götürmeden önce, elinize bolca kağıt, bir de kalem alın ve başlayın tablo tasarımına. (Kağıdınız kareli, kaleminiz de kurşunkalem olursa ve elinizin altında bir de silgi bulunursa, tablo tasarımınızın başarılı olacağını şimdiden garanti ederim!) Önce kağıda bu veritabanı projesinin sonunda ortaya çıkmasını istediğiniz liste, rapor ve diğer ne türlü belge varsa, hepsini başlıklar halinde yazın. Bu kağıdı önünüze koyun ve ayrı sayfalara buradaki her bir maddenin kağıda döküldüğünde nasıl görünmesini istiyorsanız o şekilde görünümünü çizin. İstediğiniz başlıkları, altbaşlıkları, sütunları ve satırları belirtin. Sonra bu sayfalarda gördüğünüz şekillere bakarak, alanları (sütun başlıklarını) listeleyin. Örneğin, kendinize bir telefon defteri-temas çizelgesi hazırlıyorsanız, alan tanımlarınız şöyle olabilir: 1. Sıra no = otomatik sayı 2. Adı = metin, 20 karakter boyutunda, boş olamaz 3. Soyadı = metin, 20 karakter boyutunda, boş olamaz 4. Adres Satır 1 = metin, 30 karakter boyutunda, boş olabilir 5. Adres Satır 2 = metin, 30 karakter boyutunda, boş olabilir 6. Şehir = metin, 20 karakter boyutunda, boş olabilir 7. Posta kodu = metin, 5 karakter boyutunda, boş olabilir 8. Ülke = metin, 20 karakter boyutunda, boş olabilir 9. Doğum tarihi = tarih (otomatik olarak boyutlanır), boş olabilir 10. Doğum gününde kart yollayacak mıyım= evet/hayır, boş olabilir 11. Eşinin Adı = metin 20 karakter boyutunda, boş olabilir 12. Çocuk 1 Adı = metin 20 karakter boyutunda, boş olabilir 13. Çocuk 2 Adı = metin 20 karakter boyutunda, boş olabilir 14. Çocuk 3 Adı = metin 20 karakter boyutunda, boş olabilir 15. Ev telefon no = metin, xxxx-xxx-xxxx biçiminde, boş olabilir 16. İş telefon no = metin, xxxx-xxx-xxxx biçiminde, boş olabilir 17. Cep telefon no = metin, xxxx-xxx-xxxx biçiminde, boş olabilir 18. Faks no = metin, xxxx-xxx-xxxx biçiminde, boş olabilir 19. En son ne zaman görüştüm = tarih, boş olabilir 20. Son güncelleme tarihi = tarih, boş olamaz Alan listesini tamamladıktan sonra bu alanlar, bir tabloda mı toplanmalı, birden fazla tabloya mı bölünmeli sorusuna cevap verin. Yukarıdaki örnekte iki noktadaki aksaklığı görmüş olmalısınız. Birinci aksaklık çocuklarla, ikinci aksaklık telefon numaralarıyla ilgili. Önce birinci sorunu ele alalım. Beş çocuklu bir dostunuzun beşinci çocuğu bu listeye yazılamaz. O halde buradaki 16 alan en azından iki tabloya bölünmeli; çocuklara ilişkin olan alanlar dışındaki bütün alanlar "Aileler" tablosunda toplanmalı, bütün çocuklar "Çocuklar" adlı tabloda yer almalıdır. Çocuklar tablosunun alanları ise şöyle olabilir: 1. Sıra no = otomatik sayı 2. Çocuğun adı = metin, 20 karakter boyutunda, boş olamaz 3. Çocuğun ailesi kimliği = metin, 20 karakter, boş olamaz Şimdi burada başka bir sorun var: çocuğun aile kimliği, babasının veya annesinin soyadı olacaksa ve aynı soyadı taşıyan iki dostumuz varsa, çocuğun kime ait olduğunu bilemeyiz. Aslında bu sorun, ortaya başka bir sorun daha çıkartıyor: diyelim ki aynı adda iki dostumuz var; ikisinin de eş ve çocuk durumu ile adreslerini ve telefon numaralarına ilişkin elimizdeki bilgilerin aynı olduğunu (mesela bu bilgiler elimizde yok ve dolayısılya bu sütunlar boş!) varsayalım. Bu iki kişiyi listeye "benzersiz kayıt" olarak nasıl kaydedebiliriz? Otomatik sıra numarasını birincil anahtar yaparak! Her aileye ait kaydın benzersiz olmasını sağlayan otomatik sıra numarasını aile tablosunda birincil anahtar yaparsak, daha sonra çocuk tabllosuyla ilişki sağlayan anahtar olarak kullanabiliriz. Bunu görsel olarak ifade edelim: Şimdilik bu tabloların oluşturulacağı üzerinde durmayalım. Burada sadece kavramsal olarak çocuklarla aileleri arasında bağ kurmaya çalışıyoruz. Aileler tablosunda "Aile Sıra No" adlı bir sütun açar ve bu sütunu Access'e Otomatik Sayı alanı olarak otomatik şekilde doldurtabiliriz. Sonra, çocukları kaydettiğimiz tabloda, her çocuğun ailesini, aile tablosundaki Aile Sıra No bilgisini tekrar ederek belirtebiliriz. (Nasıl'ın üzerinde durmuyoruz!) Diyelim ki Masum Sayan adlı iki arkadaşımızın ikişer çocuğu var. 5 numaralı aileye mensup Masum Sayan ile 6 numaralı aile mensup Masum Sayan'ın çocukları da aynı Aile Sıra No'sunu aldıkları anda, gereksiz bilgi içeren veya bilgi kaybına yol açan bir tablo tasarımından kurtulmuş, yani Aile tablosunda "çocuk 1," "çocuk 2,".. "çocuk x" şeklinde kimi ailede boş kalacak, kimi ailede yetmeyecek sütunlar açmamış oluruz. Yukarıda muhtemel alanlarımızın listesini döktüğümüzde, iki sorunla karşılaştığımızı söylemiştik. Birinci sorun çocuklarla ilgiliydi. Onu çözdük. Fakat aynı durum, telefon numaraları için de var. Birden fazla ev, iş, faks veya cep telefonu olanlara ilişkin tüm telefon numaralarını tablomuza işleyebilmek için mutlaka çocuk tablosunu eklediğimiz gibi, veritabanımıza ideal olarak dört ayrı telefon numaraları tablosu (ev, iş, faks ve cep telefonları tabloları) ekleyip, bunlara da Aile Sıra No sütunu açıp, her telefon numarası ile telefonun sahibini ilişkilendirebiliriz. Böylece tablo tasarımının kağıt üzerindeki bölümü bitmiş oluyor. Nihayet sıra Access'i çalıştırmaya geldi. |
|
|||
|
Access ile Veritabanı Oluşturma Access'i çalıştırdıktan sonra, boş bir veritabanı oluşturalım. Fakat bu arada Access7in boş veritabanı şablolarını tanıyalım. Kullandığınız Access'in başka bir kullanıcı tarafından ayarları değiştirilmemişse, açıldığı anda karşınıza ne yapmak istediğinizi soran ve dosya seçmenizi sağlayan diyalog kutusu gelecektir. Bu kutuda "Access Veritabanı sihirbazları, sayfaları ve projeleri" maddesini işaretleyerek Tamam'ı tıklayın. Access'in ayarları değiştirilerek bu kutunun açılması önlenmişse, karşınızda tamamen boş bir Access penceresi de görebilirsiniz. Bu durumda Dosya menüsünden Yeni maddesini seçerek (veya klavyede Ctrl tuşunu tutarak ve N tuşuna basarak), boş bir veritabanı oluşturmanızı sağlayacak diyalog kutusunun açılmasını sağlayabilirsiniz. Yeni diyalog kutusu açıldığında Veritabanı sekmesini tıklayın. Access'i tasarlayan uzmanlar, çeşitli kullanım alanları bulunan on ayrı veritabanı şablonu hazırlamış bulunuyorlar. Access ile veritabanı projelerinde büyük bir ihtimalle bu şablonlar hemen her ihtiyacınızı karşılayacaktır. Access'i tanımak için bu şabloların teker teker hepsini seçip, oluşturulmasını önerdiği dosyaların oluşturulmasını sağlayıp, sonra şablon sihirbazının her bir veritabanında ne gibi tablolar açtığını, bu tablolara ne gibi görevler yüklediğini, ne gibi alanlar oluşturduğunu gözlemenizde yarar var. Veritabanı yapan Access sihirbazlarının bir diğer marifeti veri girme ve rapor alma işlerinde kullanacağınız formları da oluşturmaktır. Bu formları inceleyerek, ilerde kendi formlarınızı tasarlamakta kullanacağınız ipuçları edinebilirsiniz. Ayrıca Access 2000, sadece tabloları, formları ve raporları oluşturmakla kalmayacak, bu veritabanını, sanki kendi başına bir program gibi, kullanmanızı sağlayacak grafik arayüzü bile inşa edecektir. Sihirbazları kullanarak, tabloları doldurulmaya, formları kullanılmaya ve raporları baskıya hazır veritabanlarını sık sık oluşturacaksınız; fakat kimi zaman bu tablolarda, formlarda veya raporlarda yeni bir alan eklemek, veya var olan bir alanı kaldırmak isteyebilirsiniz. Bunu yapabilmek için, Access'in bu nesnelerini nasıl oluşturabileceğimizi, nasıl düzenleyebileceğimizi veya değiştirebileceğimizi bilmemiz gerekir. Şimdi bir örnek üzerinde bunu birlikte yapalım. Alan Türleri Access Sihirbazlarıyla ilgili keşif turunu bitirdiğinizde, Yeni diyalog kutusunda Boş Access Veritabanı maddesini işaretleyip Tamam'ı tıklayın. Şimdi, kendi veritabanımızı kendimiz oluşturmaya başlayabiliriz. Açılacak diyalog kutusunda Genel sekmesinin seçili olmasına dikkat edin; ve Boş Veritabanı simgesini ve Tamam'ı tıklayın; Access 2000 'in önerdiği "vt1.mdb" adını "Adres Defteri.mdb" olarak (veya oluşturmak üzere yukarıda kağıt-kalemle planını yaptığınız veritabanına uygun bir ad vererek) değiştirin; yeni veritabanınızı Veritabanı penceresinde işlenmeye hazır bulacaksınız. Nesneler'den Tablolar'ın seçildiğini, ve tablo oluşturmak için kullanabileceğiniz üç aracın kısayolunu görüyorsunuz: Bunlar, tasarım görünümünde, Sihirbaz kullanarak ve veri girerek tablo oluşturmanızı sağlayan yöntemlerdir. Madem ki Access 2000 ile tabir yerinde ise sıfırdan tablo oluşturmaya karar verdik; o halde "Tasarım görünümünde tablo oluştur" maddesini tıklayarak, tablo oluşturma penceresini açın. Bu noktada yukarıda tablo tasarımıyla ilgili bölümde kendi veritabanımızı planladıysanız, bu planları önünüze çekin. Bu alıştırmayı yapmadıysanız, örnek olarak ele aldığımız Adres Defteri'ni birlikte oluşturabiliriz. Tasarım görünümde karşınıza gelen tablo biçimindeki araç, tablonuzdaki alanların adlarını, özellikleri ve doldurulması için gerekli işlemleri belirteceğiniz yerdir. Aile tablosunu oluşturmak için imlecinizi Alan Adı sütununun birinci satırının içine getirin ve "AileSıraNo" yazın. Kendi veritabanızı oluşturuyorsanız, herhangi bir tablodan işe başlayabilirsiniz; bu tablolardan birini seçin ve birinci sütunun adını yazın. Yukarıdaki örnek planda bu sütunun adının "Aile Sıra No" olmasını kararlaştırdığımız halde, burada alan adında boşluk bırakmadığımıza dikkat etmiş olmalısınız. Bu, daha sonra yazacağımız veri seçme komutlarının alan adlarında boşluk istememesinden kaynaklanıyor. Sonra klavyenizde sekme tuşuna basarak, imlecin Veri Türü sütununa gelmesini sağlayın ve burada beliren aşağı ok simgesini tıklayarak (veya klavyede Alt tuşunu tutarak ve aşağı ok tuşuna basarak) veri türleri listesini açın: Burada gördüğünüz veri türlerini tanıyorsunuz; bizim örneğimizde birinci alanımıza Access 2000'in otomatik olarak sıra numarası vermesini istediğimiz için burada Otomatik Sayı türünü seçiyoruz (Siz, kendi planınıza uygun bir türü seçebilirsiniz). Alan Özellikleri Tablo oluşturma penceresinin üst tarafında yaptığınız seçime göre, pencerenin Alan Özellikleri başlıklı alt bölümündeki bilgilerin değiştiğine dikkat edin. Buradaki kontrollerin çoğu Access ile veritabanı oluşturma beceriniz arttıkça kullanılacak niteliktedir. Alan özellikleri, o alandaki bilgilerin boyut, renk veya konumu gibi niteliklerini ve gizli olmek-görünür olmak gibi davranış biçimlerini tanımlar. Daha sonra verilerimizi biçimlendirirken bu kontrollerden yararlanacağız. Bazı alanların bazı özellikleri yoktur. Örneğin Alan Boyutu özelliği sadece metin, sayı ve otomatik sayı alanları için geçerlidir. Şimdi alan özelliklerind sık kullancaklarımızı ele alalım: Metin Alanları için alan boyutu: 0 ile 255 karakter arasında olmalıdır. Diğer alanların boyut sınırlaması yoktur. (Varsayılan boyut: 50) Sayı alanları için alan boyutu: Sayı olarak belirlediğiniz alanın boyutunu, Alan Özellikleri bölümünde Alan boyutu satırının sağındaki aşağı oku tıklayarak, şu seçenekler arasından seçebilirsiniz: Byte, ondalık, tamsayı, uzun tamsayı, tek, çift, yineleme kimliği (Replication ID). Biçim: Siz nasıl girerseniz girin verinin tabloda (ve daha sonra bu tablodan yapılacak şekilde oluşturulacak raporlarda ve formlarda) nasıl görüntüleneceğini belirler. Ayrıca buraya yazacağınız biçim komutları, girilebilecek verinin niteliğini de tayin eder. Giriş maskesi: Veritabanıza verileri girerken, önce girişi kolaylaştırmak, daha sonra da veri işlem sırasında verilerin istediğiniz biçimde olmasıını ve dolayısıyla işlemi kolaylaştırmak amacılya, veri girişini belirli bir biçim kuralına bağlayabilirsiniz. Söz gelimi telefon numaralarının daima (0555) 555-5555 gibi girilmesini sağlamak için bir metin alanına bunu sağlayacak giriş maskesi adı verilen komut ifadesini yazabilirsiniz. Bunun için giriş maskesi olarak (9999) 000 0000;;_ yazmanız gerekir. Fakat Access 2000, sık kullanılan, telefon numarası, Vergi dairesi ve numarası, posta kodu, sosyal sigortalar numarası, sigorta kod numarası, parola, ve çeşitli tarih ve saat biçimlerine uygun giriş maskelerini hazır veriyor. Bu hazır maskeleri bir alanınızın Alan Özellikleri bölümüne katmak için, giriş maskesi satırının sağındaki üç nokta simgesini tıklayın; açılacak Giriş Maskesi Sihirbazı'nda arzu ettiğiniz giriş biçimini seçin. Bir bilginin tablolara veya formlara belirli bir maske ile girilmesi, mutlaka o şekilde kaydedileceği anlamına gelmez. Özellikle parantez, kesme ve benzeri işaretleri kullandığınız giriş maskelerini veritabanı dosyaya yazılırken kaydettirmeniz gerekmez; bu dosya boyutunda tasarruf sağlar. Daha sonra raporlarınızda veya Access dosyalarından başka programlar için veri ihraç ederken bu işaretlerin yeniden konulmasını sağlayabilirsiniz. Geçerlik Kuralı, geçerlik metni: Veri işlemin sağlıklı olabilmesi için girilen verilerin gerçekten girilmesi gereken türde olması şarttır. Access, veri girilmesi sırasında girilen değerin geçerliliğini sınayabilir ve veri gireni uyarır. Veri girişinde uyulacak kuralları Geçerlik Kuralı kutusunda, geçirli olmayan veri girişinde görüntülenecek uyarı metnini ise geçerlik metni kutusunda belirtirsiniz. (Bu kutuların etiketini Geçerlilik şeklinde göreceksiniz. Bu, Türkçe imlâ ilkelerine aykırıdır.) Gerekli: Bu özelliğin sağında belirecek aşağı oka basarak, Evet veya Hayır'ı seçebilirsiniz. Bir alanı Gerekli hale getirirseniz, veri tablosunu doldururken, Access bu alanın boş bırakılmasına izin vermez. Yukarıdaki planlama örneğinde bazı alanların niteliğini kağıda dökerken yanlarına "Boş bırakılabilir," bazılarına ise "Boş bırakılamaz" notunu koyduğumuzu hatırlıyor olmalısınız. Boş bırakılabilir alanlar için bu kutuya "Hayır" (yani doldurulması gerekli değil!), boş bırakılamaz alanlara ise "Evet" (yani doldurulması gerekli!) kaydını koymamız gerekir. Sıfır uzunluk İzni: Boş bırakılmasını önlediğiniz, yani gerekli alanların boyutu sizin için önem taşıyor olabilir. Doldurulması gerekli alanların doğru doldurulmasını sağlamanın bir yolu, alana girilecek değerin boyunun sıfır olmasını önlemektir. Yukarıdaki örnekte geliştirdiğimiz veritabanının kullanılabilir olması için en azından kişilerin ad ve soyadlarının tabloda yeralması gerekir; aksi taktirde ortada tablo denecek bir şey bulunmaz. Soyadı olmayan kişilerin ise adları ile yetinemeyiz. O halde bu iki alanı hem gerekli yapar, hem de sıfır uzunluk izni vermezsek, tablomuzu doldururken isteyerek veya kazayla bu alanları boş bırakmamız tehlikesini önlemiş oluruz. Sıralı (Endeks): Access ile oluşturduğumuz veritabanlarını işlerken yapacağımız işlerin başında, tablolarımızdan belirli ölçütlere göre seçmeler (sorgular) yaptırtmak gelecektir. Basit bir sorgunun hızla tamamlanabilmesi için Access'in tablolardaki alanları önceden endekslemesi yerinde olur. Bir alanın Alan Özellikleri bölümünde Sıralı kutusunun sağındaki aşağı oku tıklarsanız, "Hayır" seçeneğinin yanı sıra iki ayrı "Evet" seçeneği bulunduğunu göreceksiniz. "Hayır" seçeneği, bu alanın önceden endekslenmesini önler. Bu alandaki verilerin endekslenmesini sağlayan diğer iki seçenekten birincisi, "Evet (Yineleme Var)", Access'in oluşturacağı endekste, bu değerden birden fazla olmasına imkan verir. Bizim örneğimizde, kişi ad ve soyadlarından birden fazla olması ihtimali öngörüldüğüne göre, endeksimizin tekrara izin vermesi gerekir. Bir alan, tablodaki kayıtların benzersiz olmasını sağlayan Birincil Anahtar alanı olarak tayin edildiyse, tekrara izin verilmemesi gerekir. Bunun için, bu kutudaki endeksleme yaptırtan ikinci seçeneği, "Evet (Yineleme Yok)" maddesini seçmemiz gerekir. Unicode Sıkıştırma: Access 2000, Ofis 2000 ailesinin diğer üyeleri gibi Unicode-uyumlu, yani içinde 65 bin 536 adet harf, rakam ve işaret bulunan yazı tipi (font) sistemini destekler. Unicode uyumlu olmayan programlar ise sadece 256 karakter içeren fontları kullanabilirler. Metin, not ve köprü (Web adres bağlantısı) türündeki verilerinizde Türkçe karakter bulunuyorsa, alan özelliğinde Unicode Sıkıştırma'nın "Evet" olması gerekir. Bu durumda Access, bu alandaki veriyi kaydederken her bir karakter için gerekli alanı (2 byte) ayıracaktır. Bu tür alanlarınızda Türkçe karakter yoksa, Access dosyasının büyüklüğü etkilenmeyecektir. Dolayısıyla Türkçe veritabanı oluştururken bu değeri sürekli "Evet" ayarında tutmak dosya büyüklüğü bakımından olumsuz bir etki yapmaz; sadece Türkçe karakterlerinizi korumuş olursunuz. Alan Tanımları: Tablo tasarımında son nokta, tablolarımızı başkalarının da kullanabileceğini gözönünde tutarak, tanım sütununa gerekli açıklamaları yazmaktır. Tablolarımızı başkasıyla paylaşacak olmasak bile, bir süre sonra alanlarımızın ne amaçla oluşturulduğunu hatırlamak zor olabilir. Buradaki gibi "Adı," "Soyadı" adını verdiğimiz alanların işlevini hatırlamakta sorun olmayacağı düşünülebilir. Fakat verilerin başka tablolardan alındığı durumlarda veya değerlerle ilgili uyarıcı notların gerektiği durumlarda, Tanım satırlarına yazacağınız bilgiler işe yarar. Tabloyu yaptıysanız, tasarım görünümünde son şekli şöyle olmalı: Arama Sihirbazı Access'te veritabanı oluşturmanın birinci adımını attık: ilk tablomuzu yaptık; alanlarını belirledik; alanların özelliklerini tayin ettik. Buradaki örneği uyguluyorsanız, şimdi ikinci bir tablo oluşturmanız gerekir. Bitmiş tasarım görünümüne bakarak, yukarıdaki bilgiler ışığında ikinci tabloyu siz oluşturabilir misiniz? Burada dikkat edilecek tek nokta, AileSıraNo adlı alanın içeriğinin doldurulması için gerekli ifadeyi Arama Sihirbazı'na yazdırtmaktır. Çocuklar tablosunun taramın görümünde ikinci alanın adını yazdıktan sonra Veri Türü sütununda seçme okunu tıklayın ve açılan listeden Arama Sihirbazını seçin. Arama Sihirbazı'nın birinci dayalog kutusu, bu alana girilecek değerlerin mevcut bir tablo veya sorgu sonucundan mı alınacağını, yoksa bu değerleri sizin doğrudan mı yazacağınızı belirler. Buradaki örnekte, veritabanımızda Çocuklar tablosunu doldururken, bu sütunun yanında bir seçme oku belirmesini ve bu oku tıkladığımızda Aileler tablosunda, Ailei Sıra No alanına girilmiş bütün değerlerin gösterilmesini istiyoruz. Başka bir deyişle bu sütuna girecek bilgileri, Aileler tablosundan alacağız. O halde, Arama Sihirbazı'nın ilk diyalog kutusunda "Değerler tablo veya sorgudan alınsın" maddesini işaretleyerek, İleri düğmesini tıklamamız gerekir. Arama Sihirbazı'nın ikinci diyalog kutusu ise bir önceki tercihinize göre ya veritabanınızdaki bütün tablo ve sorguların listesini içerir ve siz bu listeden veri alacağınız tablo veya sorguyu seçersiniz; ya da seçme yapacağınız veri listesini oluşturmanız için küçük bir tablo oluşturma aracı açılır. Veri seçme işini bir tablo veya sorgudan yapacaksanız bu tablo veyla sorgunun adını seçerek, İleri'yi tıklayın. Veri seçme işini kendi vereceğiniz değerlerle yapacaksanız, veri seçme listesi diyalog kutusunda veri seçme listesinin tek sütunlu olduğunu göreceksiniz; seçiminizi daha çok sütunlu bir listeden yapmak istiyorsanız önce yeni sütun sayısını yazın; sonra aşağıdaki "Süt1" atdlı örnek sütunun adını tıklayın; arzu ettiğiniz kadar sütun belirecektir; şimdi sçilecek değerleri bu sütunlara ve satırlara girin ve İleri'yi tıklayın. Her iki yolda da Arama Sihirbazı'nın üçüncü diyalog kutusunda, ya mevcut talo ve sorgulardan seçtiğiniz ya da kendi oluşturduğunuz değerli içeren alanlar kullanılabilir alan olarak sıralanacak ve Son'u tıkladığınızda Arama Sihirbazı, tasarım penceresinin Alan Özellikleri bölümünde Arama sekmesindeki değerleri dolduracaktır. (İlerde arama ve sorgu konusunda uzmanlaştığınızda bu değerleri siz de doldurabilirsiniz. Şimdilik sadece Arama sekmesinde Satır Kaynak Türü ve Satır kaynağı kutularına yazılan ifadeleri inceleyin ve Access'in tablolara ve tabloların alanlarına nasıl gönderme yaptığına dikkat edin.) Bu suretle oluşturduğumuz otomatik değer seçme imkanını kullanmak üzere Çocuklar tablosunu açtığımızda ve yeni bir girdi için Aile Sıra No sütununda bir satırı tıkladığımızda, kutunun sağ kenarında bir seçme oku belirdiğini görürüz. Bu oku tıkladığımızda ise açılan listede, bu ana kadar Aile tablosunda Aile Sıra No sütuna girdiğimiz bütün değerleri görürüz. Tablo tasarımını öğrendiğimize göre, şimdi tablolara veri girme, veri arama ve tabloların Access 2000 penceresi içinde görüntülenme yöntemlerinden söz edebiliriz. Bir veritabanı ile veri-işleme başlamadan önce verileri girmemiz |