Dokümanistan

Access Alt Form Tasarlama #29

Access Eğitimi

Bu bölümde Müşteri Kartı bölümüne Alt Form tasarlayarak daha önceki bölümde anlattığımız müşteri bilgileri formda görünürken alt formda da müşterinin borç hareketlerini göstermeye çalışacağız.

Oluştur Sekmesinden Form Tasarımı seçiyoruz.

Boş Form

Boş Formu Formu Tabloya Bağlama

Açtığımız boş formu bir tabloya bağlayacağız. Bunun için Form Özelliklerini açıyoruz.

Form Özellikleri

Veri Sekmesinden Kayıt Kaynağını TABLO_SATISISLEMI tablosunu seçiyoruz.

Özellik Sayfası Kayıt Kaynağı

Böylelikle seçeceğim denetimleri bu tablo ile ilişkilendirmiş olacağız.

Tablodaki Alanları Boş Forma Ekleme (Alan Listesi)

Tasarım Sekmesinden Var Olan Alanları Ekle seçiyoruz ve sağ kısımda Alan Listesi açılacaktır.

Alan Listesi Menüsü

Karşımıza TABLO_SATISISLEMI tablosunun alanlarını göreceksiniz. Alanların tamamını seçip Form alanına ekleyelim.

Form Alan Ekleme

Amacımız alt form tasarlamaktı. Bunun için Etiketlerin Sayfa başlığında, verilerin de altında Detay kısmında olması gerekiyor. Bu işlemi tek tek manuel de yapabiliriz. Ama bunu yapmanın kalay yolu da var.

Tüm alanları seçiyoruz.

Form Alan Ekleme

Tasarımı Sekmeli Yapma

Düzenle Sekmesinde Tablo bölümündeki Sekmeli butonuna basıyoruz.  Tasarım aşağıdaki şekilde olacaktır.

Form Üst Bilgisi

Gördüğünüz gibi Form Üst Bilgisi alanına başlıklar, Ayrıntı alanında da verileri görülmektedir.  Görüldüğü gibi iki formun solunda, altında ve üstündeki boşlukları temizleyelim.

Boşluklarını aldığımızda sıralamasını da belirledikten sonra aşağıdaki şekilde görülecektir.

Satış Alt Form

Formu Sürekli forma Çevirme

Formu FORM_SATIS_ALTFORM şeklide kaydediyoruz. Form görünümünde aşağıdaki şekilde görülmektedir.

Alt Form Veri Görünümü

Görüldüğü gibi 3 kayıt var ama tek kayıt çıkmakta. Bu alanı alt form olacak kullanacağımız için tüm kayıtların çıkması lazım. Bunu yapmak için form’dan sağ tuşa basarak Form Özellikleri seçiyoruz.

Form Satış Alt Form

Özellikler sayfası açıldığında Varsayılan Görünüm Tek Form seçilidir.

Özellik Sayfası - Varsayılan Görünüm - Tek Form

Bu sayede formu açtığımızda 3 kayıt olmasına rağmen tek kayıt görünüyor.  Tek Form yerine Sürekli Form seçiyoruz.

Özellik Sayfası - Vaysayılan Görünüm - Sürekli Form

Kaydedip Form görünümünde açıyoruz.

Form Satış Alt Form Sürekli Form

Hazırlanan Alt Formu Ana Forma Ekleme

Artık alt formu tasarladık. FORM_TABLO_MUSTERIKARTI açıyoruz ve alana müşterinin borç listesini eklemeye çalışacağız.

Form Tablo Müşteri Kartı

Formun alt kısmına Kaydet butonunun altına Alt Formu ekleyeceğiz. Bunun için önce Formun ayrıntı bölümünde Alt form için yeterli bir yer açıyoruz.

Form Adres Bilgisi

Tasarım sekmesinden Alt Form/ Alt Rapor seçiyoruz.

Form Tasarım Sekmesi

Belirlediğimiz boş alana uygun şekilde yerleştiriyoruz. Alt Form Sihirbazı açılacaktır. Bu sihirbazı iptl ediyoruz. Gelen Etiketi silebiliriz. Gerek yok. Seçip Delete yapıyoruz.

Alt Form Objesi Ekleme

Alt Formu seçip Tasarım Sekmesinden Özellik Sayfasını açıyoruz.

Özellik Sayfası

Veri Sekmesinden Kaynak Nesne olarak daha önce hazırladığımız FORM_SATIS_ALTFORM seçiyoruz.

Özelik Sayfası Kaynak Nesne Alt Form Bağlama

Sonra tabloyu Form görünümünde açtığımızda aşağıdaki şekilde görülecektir.

Tablo Form Müşteri Kartı

 

Alt Formdaki başlıklar boyutları düzensiz. Bunları düzenliyoruz. Ben aşağıdaki şekilde düzenledim.

form Tablo Alt Form Görüümü

Form Tablo Alt Form Görünümü

Alt Formda Müşteri kartındaki kişinin satışlarının görüldüğünü fark ettiniz mi?

Bunun sebebi alt formun özellik sayfasında Üst Alanları Bağla kısmındaki ID alanı ile ilişkilendirmektedir.

Özellik Sayfası Alt Form Ayarları

Alt Formda Açılır Liste (Combobox) olarak Göstermek

Taksit Sayısında limit belirlemek için Taksit Alanını açılır menü yaparak sonsuz bir taksit imkânı değil en fazla 12 taksit yapılabilir hale getirelim.

Alt Form Tasarımı

Yukardaki gibi Alt Formu seçiyoruz sonrasında taksit verisini seçip sağ tuş diyoruz.  Değiştir – Birleşik Giriş Kutusu seçiyoruz.

Alt Form Birleşik Kutusu ekleme

Form açılır kutu hale gelecektir.

Birleşik Kutusu Seçimi

Ancak halen sayıları belirlemedik. Taksit alanı seçili iken özelliklere gidiyoruz.

Veri Kaynağı yine TAKSIT_SAYISI alanı olmaya devam edecektir. Çünkü değişiklik yine orada olacaktır.

Açılır Kutusu Deneyim Kaynağı Belirleme

Satır Kaynağı Türü : Değer Listesi Seçiyoruz. Sonrasında

Satır Kaynağı alanının sağında üç noktayı açıp alt alta 1’den 12’ye kadar yazıyoruz.

Liste Öğelerini Düzenle

Özellik sayfası aşağıdaki şekilde görülecektir.

Açılır Liste Satır Kaynağı Görünümü

Böylece taksit alanını aşağıdaki şekilde belirleyebilmiş oluyoruz.

Açilir Liste Görünümü


Access Dosya Download Makalede kullandığımız Access Dosyasını buradan indirebilirsiniz.

Eğitime Access Rapor Temel Bilgiler #30 makaleden devam edin.

Form Tasarlamak için Kullanılan Office Sekmeleri #27

Access Eğitimi

Access’de Tablo ve Sorgu tasarımı sonrasında Form tasarlayarak kullanıcı girişi ile doğru veri girilmesini ve anlaşılabilir bir görsel sunar. Bu bölümde de form tasarımında kullanacağımız Office Sekmeleri işlemek istiyorum.

Tasarım Sekmesi

Tasarım Sekmesi Office uygulamasının aşina olduğumuz menüler var. Yada menüyü seçecek ne işe yaradığı anlaşılabilir. Ancak tasarlarken en çok kullanacağımız alan Denetimler Bölümüdür. Bu bölümü ayrıca işleyeceğiz.

Görünüm

Görünüm Menüsü

Formun Görümünü Değiştirir. Tasarladıktan sonra Form görünümünde açarsanız kullanım halini görebilirsiniz. Daha önce bahsettiğimiz form görünümlerine buradan da erişebilirsiniz.

Temalar, Renkler, Yazı Tipleri

Tasarım Sekmesi Temalar Renkler Yazı Tipleri

Formda kullanılan buton yazı tipi gibi Formdaki görünüme ait tüm ayarlamalar bu bölümde yapılır. Hazır temaları kullanmanızı tavsiye ederim. Formlar standardın dışında ve daha güzel görünüyor.

Üst Bilgi Alt Bilgi

Tasarım Sekmesi Üst Bilgi Alt Bilgi

Formunuzun Üst veya alt bölümünde açılan Form Üst Bilgisi veya Form Altbilgisi alanına Logo, Başlık ve Tarih Saat alanları  eklemek için kullanılır. Bu alanları seçtiğinizde aşağıdaki şekilde Üst bilgi ve Alt bilgi alanları açılmaktadır.

Form Üst Bilgi Görünümü

Araçlar

Tasarım Sekmesi Araçlar Bölümü

Formlar kısmında birçok araç diğer bir ifade ile özelikleri vardır. Bu alanların hepsi açık değildir. Araçlar bölümü ile bu alanları açıp kapatmanızı sağlar.

Örneğin

Var Olan Alanlar Ekle butonuna bastığımızda Alan listesi açılıp ve kapanır. Bu alan ile forma tablolardaki kolonlardan textbox ekleyebilirsiniz

Form Alan Listesi

Özellik Sayfası butonu ise adından da anlaşılacağı gibi Form veya bir buton yada form elemanının özelliğini göreceğiniz bölümdür. Form tasarlarken en çok kullanacağımız bölüm burası olacaktır.

Özellik Sayfası

Düzenle Sekmesi

Düzenle Kısmı ise formdaki yerleşimler ilgili alandır.

Düzenle Sekmesi

Biçim Sekmesi

Adından da anlaşılacağı gibi Yazı Tipi Arka Plan Resmi gibi dizaynların yapıldığı bölümdür.

Biçim Sekmesi

Denetimler Bölümü – (Buton, Combobox vs.)

Tasarım Sekmesinde Denetimler bölümünü ayrı olarak anlatmak istedim. Çünkü form tasarlarken bu bölüm kullanılacaktır.

Form kısımları bir programcının sürekli kullandığı bir araçtır. Kullanıcıya daha kolay veri girişi yapabilmesi için en anlamlı şekilde veri girilmesini sağlayacağı alanlardır. Kötü bir tasarımda kullanıcı hatalı değerler girmesi ve programda sürekli hata almasını sağlar. Doğru tasarımla yapılan işin kolaylaştırmasını sağlar. Formdan girilen verilerdeki amaç tablolarda verilerin eklenmesi güncellenmesi veya silinmesi için kullanılmaktadır. Böylelikle Raporlarda istediğimiz bilgileri alabileceğiz.

Form Denetimini açtığımızda aşağıdaki araçlar çıkacaktır.

Denetimler Bölümü

Standart olarak ok işareti seçilidir. Bunun anlamı hiçbir form ekleme işlemi yapmaz. Form üzerinde mevcut işlemler arasında gezinti yapmanızı sağlar.

Metin Kutusu

Metin Kutusu

Metin Kutusu eklediğimizde aşağıdaki şekilde metinsel değerlerin girilebildiği alandır. Genellikle Tablolarda Kısa Metin veya Uzun Metin veri tipleri bağlamak istediğimizde Metin Kutusu Form Denetimini kullanılmaktadır.

Metin Kutusu Görünümü

Etiket

Etiket Butonu

Dikkat ederseniz Metin Kutusu eklediğimizde sol kısmında Etiket’de gelmişti. Bunun yerine ayrı bir etiket istersek bu alanı kullanılmaktadır. Nedir bu etiket? Hiçbir özelliği olmayan sadece formda yazı yazmak için kullanılmaktadır.

Örnek Etiket

Düğme

Düğme Butonu

Düğme diğer bir anlamı butondur. Formda butonlar kullanmak isterseniz Düğme butonu kullanılmaktadır.

Örnek Düğme

Düğme butonu bastığınız anda bir sihirbaz açılmaktadır..

Komut Düğme Sihirbazı

En çok kullanılan diğer bir ifade ile işimize yarayacak bir çok buton bu kısımda yer almaktadır. Örneğin kaydetme, kayıtlar arasında gezinti, form açma, programı kapatma gibi birçok butonu kullanabilirsiniz.

Sekme Denetimi

Sekme Denetimi

Tek bir formda sayfaya sığamayan form elemanları kullanılmak istenebilir. Böyle durumda Sekme Denetimi kullanılmaktadır. Her sekmede ayrı formlar tasarlayarak alandan tasarruf etmiş oluruz.

Örnek Sekme Denetimi

Bağlantı

Bağlantı Düğmesi

Bir Web sayfa adresi, bir Word dosyası, excel dosyası veya herhangi bir dosya için link verilir. Örneğin formun kullanma dokümanı için bir pdf dosyası oluşturulabilir ve yardım resmi kullanarak pdf’e bağlantı sağlanmaktadır.

Web Tarayıcısı Denetimi

Web Tarayıcısı Denetimi

Formda bir Web sayfasını açmak için kullanılmaktadır. Ancak browser’da sürekli hata vermektedir. Görüldüğü gibi site açılırken bile doğru yüklenememiştir.

Web Tarayıcısı Sonucu

Gezinti Denetimi

Gezinti Denetimi

Sekme Denetimine benzer bir araçtır. Buton şeklide sekmeler görüntüsü ile kullanabilirsiniz.

Örnek Gezinti Denetimi

Seçenek Grubu

Seçenek Grubu

Radio Grup olarak geçer. Örneğin Evli Bekar gibi belirlediğiniz gruptan sadece birini seçme zorunluğu olan durumlarda kullanılmaktadır.

Seçenek Grubu Sihirbazı

Hatırlarsanız Müşteri kartında Sadık Müşteri olup olmadığı sormuştuk. Seçenek Grubu ile aşağıdaki şekilde görsel oluşturabilirsiniz.

Seçenek Grubu Sonucu

Birleşik Giriş Kutusu – Combobox

Birleşik Giriş Kutusu

Kullanıcıyı belirlediğimiz listeden seçim yapılır. Örneğin İller Listesi gibi. Elle yazıp yanlış yazmaları önlemek için çok etkili bir yöntemdir. Böylelikle Raporlama da daha kararlı veriler elde etmiş oluruz. Birleşik Giriş Kutusu seçtiğimizde aşağıda şekilde sihirbaz gelir ( sihirbazı kısalttım ) örnek tablomuzdan seçim yapılmıştır.

Liste Kutusu Sihirbazı

Liste Kutusu Sihirbazı Anahtar Sütunu

Birleşik Giriş Kutusu formda aşağıdaki şekilde görülmektedir.

Örnek Combobox

Değiştirme Düğmesi

Değiştirme Düğmesi-1

Değiştirme düğme iki farklı görseli ile işlem yapmanızı sağlar.

 

Değiştirme Düğmesi 2

Düğmeyi ekledikten sonra basıldığında ne işlem yapılacağı gibi işlemler Olay bölümünden Kod yazarak ya da makro kullanarak yapabilirsiniz.

Liste Kutusu

Liste Kutusu

Birleşik formla aynı mantıkla çalışmaktadır. Tek farklı açılır şekilde değil bir liste olarak görülür. Görseli aşağıdaki şekildedir.

Liste Kutusu Görünüm

Onay Kutusu

Onay Kutusu

Onay kutusunda 2 seçenek vardır. Seçili veya Seçili değil. Proje örneğimizde Sadık Müşteri mi? Sorusunda veri tabanında 1 veya 0 vardı. Evet/ Hayır, Doğru / Yanlış, True/ False gibi değerler de olabilmektedir. Tabloda kaydedilen bu değerlerin görsel halini Onay Kutusu ile sağlayabilirsiniz.

Onay Kutusu Görünüm

Seçenek Düğmesi

Seçenek Düğmesi

Evli/ Bekar  gibi sadece bir seçeneği seçebileceğiniz alternatiflerden bir tanesidir. Seçenek Grubu olarak kullanılırsa bir anlamlı olur. Tek başına bu seçenekle seçilirse Onay kutusundan farklı olmayacaktır. Bu seçenek yerine Seçenek Düğmesi yerine Seçenek Grubu kullanılmasını tavsiye ederim.

 

Alt Form / Alt Rapor

Alt Form / Alt Rapor

Form içinde Alt form ya da Alt rapor ya da alt tablo göstermek için kullanılmaktadır.. Bunun anlamı tasarladığımız bir formda bu forma bağlı tablo, veya form ekleyebilirsiniz. Projemizin tasarımında da gördüğünüz gibi alt kısımda olan işlemi alt form seçeneği ile yapacağız.

Müşteri Kartı Alt Form Görünümü

İlişkili Nesne Çerçevesi

İlişki Nesne Çerçevesi

Forma Resim veya herhangi bir obje eklemek için kullanılmaktadır..

Grafik

Grafik

Adından da anlaşılacağı gibi grafik oluşturmada kullanılmaktadır. Burada amaç doğru tablolarla doğru verileri tespit edilerek rapor oluşturmak gerekir. Eğer doğru veri yoksa ilgili tablolardan sorgu oluşturmak gerekir.

Genelde formlar kısmında çok kullanılmıyor. Ancak raporlar kısmında Grafikler kullanılabilir.

Access Grafik

 


Access Dosya Download Makalede kullandığımız Access Dosyasını buradan indirebilirsiniz.

Access Formlar Temel Bilgiler #26

Access Eğitimi

Bu bölümde Access üzerinde formlar tasarlayacağız. Daha önce anlattığım Tablolar, Sorgular gibi kavramlar son kullanıcının kullanmayacağı işin mutfak kısmıydı. Formlar ise kullanıcının göreceği ve arkada hangi tabloya kaydedileceği ekranları tasarlamış olacağız.

Eğitimin ilk başında projemiz olan Giyim Mağazası sahibi ile görüşürken formlar tasarlamış müşteriden onay almıştık. İşte bu bölümde tasarladığımız formların aynısını yapacağız. Proje boyunca Müşteri Kartı üzerinden gittiğimizden yine Müşteri kartı formu üzerinden konuyu anlatmaya çalışacağım.

Formu birçok yöntemle oluşturabilirsiniz. Oluştur sekmesindeki Formlar bölümündeki tüm seçeneklerle form oluşturulabilir.

Formlar Sekmesi

Form Oluşturma Yöntemleri

Tablo Seçili iken Form Oluşturma

TABLO_MUSTERIKARTI seçili iken

Tablo Seçili İken Form Oluşturma

oluştur sekmesinden Form butonuna basıyoruz.

Oluştur Sekmesi Form Butonu

Hızlı şekilde aşağıdaki gibi bir form oluşuyor.

Hazır Form Yapımı

Kaydetmeden kapatıyoruz.

Form Tasarımı ile Form Oluşturma

Form tasarımı seçtiğiniz de ise boş form gelmektedir. Bu kısımda tasarımı kendiniz belirlemektesiniz.

Boş Form Ekranı

Boş Form İle Form Oluşturma

Form tasarımından farkı düzen görünümünde açmasıdır.

Form Sihirbazı ile Form Oluşturma

Belirlediğimiz nesneye göre Tablo veya Form seçilerek sihirbaz yardımıyla form tasarlamamızı sağlar.

TABLO_MUSTERIKARTI tablosunu seçip tüm kolonlarını seçili alana geçiriyoruz.

Form Sihirbazı Tablo Alanları

Form yerleşiminin nasıl olacağını belirliyorsunuz. Sütunlu seçiyorum.

Form Sihirbazı Sütunlu Form

Son adımda isim vererek sihirbazı sonlandırıyoruz.

Form Sihirbazı Görüntülenecek Form Aç

Aşağıdaki şekilde form sihirbazı ile form tasarlamış olduk.

Form Sihirbazı Sonucu

Form Görünümleri

Form kısmında 3 çeşit görünüm vardır.  Bu görünümlere göre Formun ayarlamasını veya kullanma işlemlerini yapabilirsiniz.

Form Görünümünü Değiştirme

Form Görünümü

Form görünümü tasarımını bitirdikten sonra veri işlemleri yapmak için kullanılacak ekrandır. Bunun dışında veri girişi değişikliği, güncellemesi silinmesi gibi işlemler yapılamaz.

Düzen Görünümü

Gerçek verileri görerek Formu tasarlamak için kullanılır.

Form Düzen Görünümü

Tasarım Görünümü

Tasarım görünümü ise işin arka tarafıdır. Genelde bu kısımda tasarım yapılır. Hangi tablo ile bağlantısı varsa, makro yazılacaksa gibi tüm detay işlemler tasarım görünümünde yapılır.

Form Tasarım Görünümü

Form ile Tablo arasındaki bağlar

Oluşturduğumuz formlar bildiğiniz gibi tablolardan beslenmektedir.

Örnek Form

Oluşturduğunuz bu form tablodaki karşılığı aşağıdaki şekildedir.

Örnek Tablo

Gezinti Bölmesi

Form kısmında aşağıdaki şekilde bir yer vardır. Bu bölüm kayıtlar arasında gezmek için kullanılır. Örneğin 1/ 11 yazması toplamda 11 kayıt var, formda gösterilen ise 1. Kayıttır anlamına gelir.

Form Gezinti Bölmesi

Tıpkı kaset kaydı gibi ileri ve geri butonları vardır. |> ve |< görselleri ise ilk kayıt ve en son kayda gitmek için kullanılmaktadır.

En sondaki ara tıklayıp herhangi bir kolon için arama yapabiliriz. Aradığımız kelime yazdığımız anda aşağıdaki şekilde ilgili kolonu seçili olarak aradığımızı bulacaktır.

Gezinti Bölmesi Örnek Kayıt

Görüldüğü üzere aradığımız NİSA kelimesi Adı kısmında ve 11 kaydın 4. Kaydına ait olduğu görülmektedir.

 

Görüntüden de anlaşılacağı üzere kayıtlarda gezinti yaparken tablolardaki satırlar arası gezinti yapılabilmektedir.

Formdan Veri değiştirdiğimizde Tablodan da değişmektedir.

Örneğin Nisa OĞUZ’un yaşını 30 iken 24 olarak değiştiriyoruz. Kaydetmek için başka bir kayda gitmeniz yeterlidir.

Form Görünümü Müşterinin Yaşı

Görüldüğü gibi Nisa OĞUZ’un yaşı 24 olarak değişmiştir.

Müşterinin Yaşı Tablo Görünümü

Aynı şekilde tablodan da değiştirdiğimizde Formdan değişmektedir.

Aslında tablolar ile formlar veya Raporların birbirleri ile bağlantıları Access’in Access yapan işlemdir.

Formda Yeni Kayıt Ekleyip Tabloda Kontrolünü sağlama

Formdaki 4/11 toplamda 11 kayıt olduğu anlamına gelmekteydi. Şimdi Form üzerinden yeni bir kayıt ekleyip tabloda eklemiş mi kontrolünü yapacağız.

Gezinti bölmesindeki en sondaki ok işaretine geldiğimizde Yeni (boş) kayıt butonuna basıyoruz.

Gezinti Bölmesi Boş Kayıt Ekleme

Formun görüntüsü aşağıdaki şekilde olacaktır.

Form Boş Kayıt Görünümü

Sıra No alanı elle giremiyorduk. Sistem üzerinden otomatik ekleniyordu. Aynı şekilde kayıt tarihi de aynı durumdaydı. Sistem üzerinden eklendiği tarihi eklemiştik Hatırlarsanız formül yazmıştık. Bu sebeple 2  alana veri girişi yapmıyoruz. Diğer alanları dolduruyoruz.

Form Müşteri Kartı

Yavuz Türkmen adında yeni bir müşteri kaydettik. Kaydettiğiniz ilk bakışta Gezinti bölmesinde data önce 11 kayıt varken 12/12 yazmasında 12 kayda çıktığı görülmektedir.

Şimdi de tabloda yeni bir kayıt eklemiş mi kontrol için TABLO_MUSTERIKARTI tablosunu açalım.

Tablo Müşteri Kartı

Görüldüğü gibi en sonda Yavuz TÜRKMEN müşterisi eklenmiştir. Aynı şekilde tablo üzerinden de bir değişiklik yaptığımızda formda da değişmektedir.

 

Access Dosya Download Makalede kullandığımız Access Dosyasını buradan indirebilirsiniz.

Eğitime Form Tasarlamak için Kullanılan Office Sekmeleri #27 makaleden devam edin.

Access Koşullarda Joker Karakter Kullanma #25

Access Eğitimi

Önceki Access Eğitim bölümlerde Tablolar ve Sorgularda örnekler yapmıştık. Bu eğitim serisinin sonunda Formlar, Raporlar bölümlerine geçeceğimizden sorgularımızda kullanıcıdan veri alma işlem yapmayı anlatacağız. Kullanıcıdan veri almayı Seçme, Güncelleştirme, Silme ve Joker Karakter kullanımı olarak 4 başlıkta inceleyeceğiz. Bu bölümde Koşullarda Joker Karakter Kullanma konusunu işleyeceğiz. Diğer Veri Alma işlemlerine aşağıdaki linklerden ulaşabilirsiniz.

Sadece URUN_LISTESI tablosu ile çalışacağız. Aşağıdaki dosyadan veriye ulaşabilirsiniz.

Güncelleme Konusunda Ürün Listesi Örneği

 

Joker karakter iki tanedir. Biri ? ( Soru İşareti) diğer de * ( Yıldız)’dır. Joker karakterler genellikle “Like komutu ile birlikte  kullanılır.

Bu bölümde bu joker karakterlerin nasıl kullanıldığını inceleyeceğiz.

Kullanıcıya arama Sorgusu Yapmak

Parametre Sorgulama işlemleri genelde arama ve Rapor işlemlerinde kullanılır. Bunun için de bir örnek yapalım. Örneğimizde aşağıdaki listeden Ürün adı için arama sorgusu yapalım.

Aslında Arama Sorgusu demek kelimenin baş harflerinden 1 veya daha fazla (kullanıcının istediğine bağlı olarak) değer girer sonundaki karakterler ne olursa olsun hepsini getirmemiz istenir. Google arama motoru da böyle değil midir!.

Oluştur – Sorgu Tasarımı – URUN_LISTESI tablosun ekleyin. Aşağıdaki alanları sorgunuza ekleyin.

Joker Karakter Sorgu Tasarımı

Ürün adı alanının Ölçüt kısmına aşağıdaki kodu yazıyoruz.

Like [AranacakÜrün Adı Giriniz] & *

LIKE ile başlıyoruz. Köşeli parantezlerle kullanıcıdan değer girmesini istiyorum. & işareti  sonrasında * yapıyorum. & işlareti ile kullanıcının girdiği değerin yanına * işareti koymuş oluyorum. Yani bir kullanıcı Co kelimesini arama yaparsa Co* olarak Sorgu algılayacak.

Access Sorgu Like Kullanımı

Sorguyu çalıştırıyoruz ve  Co kelimesi ile başlayan ürün adlarını aramak istiyoruz.

Parametre Değer Girişi

Ve Co ile başlayan ürünler aşağıdaki şekilde gelmiş oluyor.

Sorgu Sonucu Tablo

Bu Sorguyu içeren anlamına gelen başlangıcı olması şart değil ister ortasından ister başından ister sonundan bir karakter yazdığınızda sonucu getirecek sorgu çeşididir.

Like *& [AranacakÜrün Adı Giriniz] & *

Örneğin Kullanıcı Ürün adının içinde ter kelimesi olanları aratmak istediğinde bu sorgu ile yapabilirsiniz.

Sorgu Tasarımı Like Parametre Girişi

Parametre Değer Girişi

aratıyoruz ve Ürün adlarının içinde ter kelimesi olanlar listelenmiş olacaktır.

Arama Kelimesi İle Liste

Aynı Sorguda iki kolon için Arama yapmak

İçeren Sorgumuzu Ürün Adı için yapmıştık. Aynı Sorguyu Marka için de yaparsak sorguyu çalıştırdığımızda ard arda iki adet parametre isteyecektir. Sorgu aşağıdaki şekilde olmalı.

İki Ölçütlü Like Parametre Girişi

Sorguyu çalıştırıyoruz. Ürün Adı sorgusu için parametre istedi.

Birinci Parametre Girişi

Sonra da marka için parametre istedi.

İkinci Parametre Girişi

Tamam dedikten sonra iki kolonda arama sorgusu istediğimiz gibi aşağıdaki sonuçları vermektedir.

Çift Arama Sorgusu Sonucu

Örnek – T ile başlayan Kitap Adlarını Listeleme

tablo_kutuphane tablosunu örnek alalım. Bunun için Sorgu Tasarımı tablo_kutuphane tablosunu seçiyoruz ve kitap_ad ve kitap_yazar alanlarını sorguya ekliyoruz.

Örnek Sorgu Tasarımı

Tabloyu koşulsuz sorguladığımızda aşağıdaki veriler gelecektir.

İle Başlayan Sorgu Sonucu

Kitap Adı kısmında T ile başlayan Kitap Adlarını getirelim. Joker karakterleri LIKE ifadesi ile birlikte kullanılır.  T ile başlayanları istediğimiz için Like “T*” şeklide yazıyoruz.

Sorgu Tasarımında Like T*

T ile başlayan kitap adları aşağıdaki şekilde gelecektir.

Like T ile başlayan Sorgu Sonucu

Bu işlem bilgisayarda dosya arama mantığına benzemektedir.

Örnek – 5 Karakterli isminin son harfi t ile biten kişileri listeleme

Sorgu tasarımından tablo_ogrenciler alanını çağırıyoruz ve Ad ve Soyad alanlarını sorguda çağırıyoruz. Verileri aşağıdaki şekilde görülecek.

Örnek Sorgu Tablosu

Adı alanında 5 karakterli ve sonu t ile biten değerleri getirelim. Bunun için Adı alanındaki sorguya Like “????t” şeklide yazıyoruz. Kaç soru işareti koyarsam o kadar karakter olacağını temsil eder.

Sorgu Tasarımı Like Soru İşareti

Sorguyu çalıştırdığımızda bu kriterlere uyan yani 5 karakter olup sonu t ile biten 3 kayıt olduğunu görülmektedir.

Sorgu Sonucu Tablosu

 

Joker Karakterlerle ilgili diğer örnekler Tablosu

 

Like “E*” T Harfi ile başlayanlar. Örn Eskişehir
Like “*UN” Sonu UN ile bitenler Örn. Samsun
Like “*RA*” İçinde RA ifadesi geçenler Örn. Ankara
Like “?Z???” 5 Karakterli 2. Harfi z olan Örn. İzmir

Bu bölümle birlikte Sorgular bölümünü bitirmiş oluyoruz. Eğer sorularınız olursa yorumlar bölümünde bizimle paylaşabilirsiniz.


Access Dosya Download Makalede kullandığımız Access Dosyasını buradan indirebilirsiniz.

Eğitime Access Formlar Temel Bilgiler #26 makaleden devam edin.

Access Silme Sorgusunda Kullanıcıdan Veri Alma #24

Access Eğitimi

Önceki Access Eğitim bölümlerde Tablolar ve Sorgularda örnekler yapmıştık. Bu eğitim serisinin sonunda Formlar, Raporlar bölümlerine geçeceğimizden sorgularımızda kullanıcıdan veri alma işlem yapmayı anlatacağız. Kullanıcıdan veri almayı Seçme, Güncelleştirme, Silme ve Joker Karakter kullanımı olarak 4 başlıkta inceleyeceğiz. Bu bölümde Silme Sorgularında Kullanıcıdan Veri Alma konusunu işleyeceğiz. Diğer Veri Alma işlemlerine aşağıdaki linklerden ulaşabilirsiniz.

Sadece URUN_LISTESI tablosu ile çalışacağız. Aşağıdaki dosyadan veriye ulaşabilirsiniz.

Güncelleme Konusunda Ürün Listesi Örneği

Bu sorgu ile tablodaki kayıtlardan silme işlemi yapmak için kullanıyoruz. Aslında güncelleme işlemi ile mantığı aynıdır. URUN Listesindeki 4 nolu kaydı silelim.

Silme Sorgusu Örnek Verisi

Önemli Not : Eğer tablonuzdaki ilişki varsa ve başka bir ilişkili tabloda 4 nolu kayda bağlı bir ilişki varsa silmeyecektir. Birbirine bağlı olduğu için önce ilişki olduğu tabloyu silmenizi isteyebilir.

 

Oluştur – Sorgu Tasarımı Ürün listesini seçiyoruz.

Silmek için sadece Kimlik alanını seçiyorum.  Tasarım Sekmesinden de Sorgu Türünü Sil yapıyoruz.

Sil Sorgu Butonu

Ölçüt kısmına da aşağıdaki şekilde kullanıcıya vereceğimiz mesajı yazıyoruz.

=[Silmek İstediğiniz Ürünün Kimlik Numarasını Giriniz]

Sil Sorgusuna Parametre Giriş Formülü

Sil sorgusunu sorgu_UrunSil olarak kaydediyorum ve sorguyu kapatıyorum. Sorgu kısmıdan aşağıdaki şekilde görünecektir.

Sorgu Dosya Görünümü

sorgu_UrunSil  çift tıklıyorum. Silme işlemi için Uyarı veriyor. Evet diyoruz.

Silme Uyarı Mesajı

Silmek istediğimiz Kimlik numarasını yazıyoruz. Örneğimizde 4 demiştik.

Silme Parametre Değeri Gir

Tamam diyoruz.  Tekrar Uyarı veriyor. Evet diyoruz.

Silme İşlemi Uyarı Mesajı

Hatalı bir durum yoksa bir uyarı vermeyecektir. Ama kayıt silinmiştir. Kontrol için ÜRÜN LİSTESİ’ni açıyoruz.

Sorgu Tablo Görünümü

4 nolu kaydın silindiğiniz görmüş olduk.


Access Dosya Download Makalede kullandığımız Access Dosyasını buradan indirebilirsiniz.

Eğitime Access Koşullarda Joker Karakter Kullanma #25 makaleden devam edin.

Sayılardan Virgülleri Kaldırma

Soru Cevap Bölümü

mehmet sordu

Soru

 

  ,01,
  ,1,
  ,1,
  ,11,
  ,11,
  ,11,
  ,11,
  ,12,
  ,12,
  ,12,

Örnek olarak bu sayıları 0,01 / 0,1 /0,11… şeklinde excelde yazmak istiyorum ve sondaki virgülü kaldırıp ondalık sayı şeklinde düzgünce kalmasını istiyorum ne yapabilirim yardımcı olursanız sevinirim.

 

Cevap

Merhabalar,

Aşağıdaki formülle hesaplama yapabilirsiniz.

=SAYIYAÇEVİR(SOLDAN(A1;UZUNLUK(A1)-1))

Hücre Biçimlendirme İsteğe Uyarlanmış

Soru Cevap Bölümü

 

Soru

Mustafa bey merhabalar;

Benim sorunum şöyle; Bir Veritabanından veya bir programdan verilerimi excel’e aktarmak istiyorum. Veritabanı tarafında veri tipi metin olarak saklaniyor.  Örn: 4000195790133. Ancak bu verilerimi excel’e export ettigimde hücre içerisinde 4,0002E+12 yazısını görüyorum. Veri tipi metinsel olduğundan dolayı hücre tipini metin’e çevirsemde bir şey değişmiyor. Ancak hücreyi seçip tipini Sayısal olarak belirlediğimde görmek istediğimi görebiliyorum. Bu alanları metinsel olarak saklayıp ama veriyi kaybetmeden kullanabilmemin bir yolu varmı acaba.

İyi çalismalar dilerim.

 

Cevap

Merhabalar,

4000195790133 krakterdeki sayıyı hem sayısal olarak hem de tam değerlerini gösterebilirsiniz.

Bunun için Veritabanından gelen veriyi excel’e yapıştırdıktan sonra hücreleri seçin ve Sağ Tuş – Hücreleri Biçimlendir (Kısayol : Ctrl + 1) seçin.

En alttaki isteğe uyarlanmış seçin ve Genel yazan yere kaç bu sayı kaç karakterse o kadar 0 (sıfır) yazın.

Aşağıda görüldüğü gibi 13 karakterlik değer sayısal olarak görülecektir.

 

Eğer metinsel olarak görünmesini istiyorsanız uzun sayı yapıştırılacak kolonu önceden seçin ve Giriş Sekmesindeki Sayı grubundan Hücrenin veri tipini Metin yapıp öyle yapıştırın. O zamanda hücrede yeşil işaretle ‘Metin olarak saklanan Sayı’ şekilde uyarı verecektir. Ama dikkate almayın.

Ama özel bir sebebi yoksa sayısal olarak saklayıp yukardaki işlemi yapmanızı tavsiye ederim.

Selamlar.

Access Güncelleme Sorgusunda Kullanıcıdan Veri Alma #23

Access Eğitimi

Önceki Access Eğitim bölümlerde Tablolar ve Sorgularda örnekler yapmıştık. Bu eğitim serisinin sonunda Formlar, Raporlar bölümlerine geçeceğimizden sorgularımızda kullanıcıdan veri alma işlem yapmayı anlatacağız. Kullanıcıdan veri almayı Seçme, Güncelleştirme, Silme ve Joker Karakter kullanımı olarak 4 başlıkta inceleyeceğiz. Bu bölümde Güncelleme Sorgularında Kullanıcıdan Veri Alma konusunu işleyeceğiz. Diğer Veri Alma işlemlerine aşağıdaki linklerden ulaşabilirsiniz.

Sadece URUN_LISTESI tablosu ile çalışacağız. Aşağıdaki dosyadan veriye ulaşabilirsiniz.

Güncelleme Konusunda Ürün Listesi Örneği

Daha önce yaptığımız örnekler kullanıcıya değer girdirerek verdiği değere göre listeleme yapmaktı. Şimdi ise kullanıcıdan aldığımız bilgilerle tablodaki verileri değiştireceğiz yani güncelleyeceğiz.

Kullanıcının girdiği Kimlik Numarasına Fiyat değeri %10 artırarak Güncelleme

Oluştur – Sorgu Tasarımı – Ürün Listesini seçiyoruz. Sadece iki kolonla işimiz olduğu için Kimlik ve Fiyat kısmını sorgu kısmına ekliyorum.

Güncelleme Parametre

Tasarım sekmesindeki Sorgu Türü normalde Seç olarak seçilidir. Sorgu Türünü Güncelleştir olarak değiştiriyoruz.

Sorgu alanında Güncelleştir satırı belirecektir.

Sorgu Tasarım Güncelleme Aktif Etme

Öncelikle Kullanıcının girmesi gereken değer ürün kimlik değeri olduğu için Ölçüt Kısmındaki Kimlik alanına aşağıdaki gibi bir açıklama yazıyorum.

=[Fiyatı %10 artırılacak ürünün kimlik Numarasını Giriniz]

Güncelleme Ölçüt Belirleme

Sorgu kriterimiz tamam. Kullanıcı hangi satır için güncelleme yapacağını belirlemiş oldu. Şimdiki adımda ise  çıkan sorgu sonucunu hangi kolonda nasıl bir güncelleme yapacağımızı belirliyoruz.

Örneğimizde fiyatına %10 artıracağımızı söylemiştik.

Sorgu kısmında beliren güncelleştir alanının Fiyat kısmına denk gelen yere gelip Sağ tuş yaparak Oluştur geçiyoruz.

Güncelleme Güncel Veri Girişi

Karşımıza İfade Oluşturucusu gelecektir. Tüm hesaplamayı bu ekrandan yapacağız.

Güncelleme İfade Oluşturucu

İfade Oluşturucu ekranında Access dosyamızı seçiyoruz. Bende 5h.SORGULAR diye başlıyor.  Açılır ekranda Tablolar – URUN LISTESINI seçiyoruz. Böylece ifade kategoride ÜRÜN LİSTESI’ndeki kolonlar çıkacaktır.

Güncelleştirmede İfade Oluşturucu

Bu kısımda Fiyat kolonuna çift tıklıyoruz. Kolon ismi [URUN_LISTESI]![Fiyat] şekilde üst ekranda görülecektir. Formül ise şu şekilde olacaktır.

( Fiyat x 0,1 ) + Fiyat

Fiyat kısmını 0,1 ile çarparak %10 olan değerini buluyorum. Sonrasında da Fiyatın kendi değeri ile topluyorum.

Örneğin fiyat kolonunda 1000 yazıyorsa sonuç 1100 olmalı.

ifade oluşturucu aşağıdaki şekilde formülü yazdıktan sonra Tamam diyerek çıkıyoruz.

([URUN_LISTESI]![Fiyat]*0,1)+[URUN_LISTESI]![Fiyat]

İfade Oluşturucu Formülü

Sorgu ekranındaki ise aşağıdaki gibi olacaktır.

Güncelleştirmede Formül Kullanımı

Sorguyu sorgu_Fiyat%10_Guncelle olarak kaydediyoruz.

Güncelleştirme Farklı Kaydet

Aşağıdaki gibi bir sorgu oluşacaktır.

Sorgu Kayıt Gösterimi

Önemli Not: Güncelleştirme ve Silme sorgularında önce kaydetmemiz gerekiyor. Aksi halde sorgularınız çalışmayacaktır.

Şimdi Örneğimizi test edelim.

Güncelleme Sonucu Tablo

1 nolu kaydın fiyat bilgisi 1000 olarak görünmektedir.  Sorguyu çalıştırdığımızda 1 nolu kaydı girerek 1000 sayısının 1100 olarak gelmesini sağlayalım.

Sorgu Kayıt Gösterimi

Güncelleştirme sorgusunu çalıştırmak için sorgu_Fiyat%10_Guncelle alanına çift tıklıyoruz.

Güncellem Onay Ekranı

Güncelleştirme Sorgusu çalıştırdığımız için bizi uyarıyor. Tamam diyoruz.

Güncelleme Parametre Değeri Gir

1 satırda değişiklik yapacağımız için 1 yazıyor ve tamam diyoruz. Güncelleme yaptığım için onay istiyor. Evet diyoruz.

Güncelleme Öncesi Uyarı Ekranı

Tabloyu tekrar açıp baktığımızda fiyat kısmının 1000’den %10 ilave haline 1100 olarak değiştiğini görmüş olduk.

Güncelleme Verisi Kontrol Tablo

Güncelleme ile ilgili basit bir işlem yapmış olduk. Böylelikle güncellemenin temel mantığını öğrenmiş oldunuz. Yapacağınız birçok işlemde bu mantıkla farklı örnekler yapabilirsiniz.

 


Access Dosya Download Makalede kullandığımız Access Dosyasını buradan indirebilirsiniz.

Eğitime Access Silme Sorgusunda Kullanıcıdan Veri Alma #24 makaleden devam edin.

SQL Server Kurulumu: En Sık Yapılan 5 Hata ve Çözümleri | Adım Adım Anlatım #q04

SQL Server Ücretsiz İndirip Kurmak

SQL Serverı ücretsiz kurulum yapabilirsiniz. Google’la “SQL Server Download” yapıp arattın. Çıkan Microsoft sayfasını açınız.

En temel hali ile Express kullanabilirsiniz. İndireceğiniz dosya lisanslı ücretli versiyonla aynı özelliğe sahiptir. Ancak canlı ortamda kullanıldığında ücrete tabidir.

https://www.microsoft.com/en-us/sql-server/sql-server-downloads

Sayfaya girdikten sonra açılan sayfadan Express sürümünü indiriyoruz. (İsterseniz Developer’da indirebilirsiniz. Full kurulum olur. Ancak planladığım SQL eğitiminde Express yeterlidir.)

SQL2022-SSEI-Expr.exe şekilde bir dosya inecek. Kurulumu başlatın ve ilk adımda Basic seçiyoruz.

Kurulum bittiten sonra aşağıdaki şekilde bir ekran gelecektir. Burada Install SSMS butonunu seçiyoruz.

SQL Server Management Studio İndirip Kurmak

SQL Server kurduk ama uygulamaları çalıştırdığımız “SQL Server Management Studio” Uygulaması var ayrıca onu kurucaz. Google Aramaya;

SQL Server Management Studio download

Ya da

SSMS download

Diye aratın

Açılan sayfayı sayfayı açıp biraz kaydırdığınızda Free Download 19.2 diye dosyayı indiriyoruz.

SSMS SQL Server’i kullanacağımız bir arayüzdür. Microsoft web sitesi açılacak. Aşağıda görülen linke tıklayıp SSMS-Setup-ENU.exe adında 653 mb’lık bir dosya yüklenecek.

SSMS-Setup-ENU.exe dosyasını indirdikten sonra kuruluma başlıyoruz. Herhangi bir özel ayar yoktur. Direk kuruyoruz.

Kurulum tamamlanmıştır. Başlat çubuğuna “manage” yazdığınızda aşağıdaki program eğitim boyunca kullanacağız.


SQL Kurulumunda Çıkan Sorunların Çözümleri

Evet arkadaşlar, kurulumu tamamladık ama maalesef iş burada bitmiyor. Deneyimlerime göre, birçok kişi tam “işte oldu” derken aşağıdaki hatalarla karşılaşıyor ve motivasyonu düşüyor. Hatta bazıları defalarca SQL Server’ı kaldırıp yeniden kuruyor. Aslında çözümleri çok basit. Gelin en sık karşılaşılan sorunlara ve çözümlerine bakalım:

🚫 Sorun 1: “sa” Hesabı ile Bağlanamıyorum / Login Failed

  • Sebep: Varsayılan kurulumda ‘sa’ hesabı devre dışı gelir ve SQL Server Authentication modu kapalıdır.
  • Çözüm:
    1. Önce Windows Authentication ile bağlanın
    2. Sunucuya sağ tıklayıp Properties > Security bölümüne gidin
    3. SQL Server and Windows Authentication mode‘u seçili hale getirin
    4. Security > Logins > sa hesabını bulun, sağ tıklayıp Properties deyin
    5. Password ve Confirm Password alanlarına güçlü bir şifre girin
    6. Status bölümünden Login‘i Enabled yapın

🚫 Sorun 2: Windows Authentication ile de Giremiyorum

  • Sebep: Bazen kullanıcı izinleri tanımlı olmayabilir veya SQL Server servisi doğru kullanıcıyla çalışmıyordur.
  • Çözüm:
    • Bilgisayarınızı yeniden başlatmayı deneyin
    • Services.msc’den SQL Server servisinin çalıştığından emin olun

🚫 Sorun 3: SQL Server Servisi Çalışmıyor

  • Sebep: SQL Server arka planda bir servis olarak çalışır ve bazen bu servis başlamaz.
  • Çözüm:
    1. Windows + R tuşuna basın
    2. services.msc yazın
    3. Listeden SQL Server (MSSQLSERVER) veya kurulumda verdiğiniz instance adını bulun
    4. Durumu “Running” değilse, üzerine sağ tıklayıp Start‘a tıklayın

🚫 Sorun 4: “Cannot connect to …” Hatası

  • Sebep: SQL Server’ın dinlediği portlar etkin değil veya firewall engelliyor.
  • Çözüm:
    • SQL Server Configuration Manager’ı açın
    • SQL Server Network Configuration > Protocols for … bölümüne gidin
    • TCP/IP‘nin Enabled olduğundan emin olun
    • Firewall’dan SQL Server için gerekli portları (varsayılan 1433) açın

💡 PROFESYONEL TÜYO:
Bu sorunlardan herhangi biriyle karşılaşırsanız, sakın panik yapmayın ve hemen SQL Server’ı kaldırıp yeniden kurmaya kalkmayın. Çünkü %90 ihtimalle sorun sunucunun kendisinde değil, yapılandırmadadır. Yukarıdaki adımları sırasıyla deneyin.

Unutmayın, bu sorunlar SQL Server öğrenme yolculuğunun doğal bir parçasıdır ve hepimiz başlangıçta benzer şeyler yaşıyoruz.

Artık bilgisayarımızda SQL Server kurulmuştur.  Diğer yazımızda SQL Server içine örnek veri tabanını yine microsoft’un belirlediği örnek database kurulumu ve SQL Server’a yüklemesini konuşucaz.

İlişkisel Veri Tabanı ve Normalizasyon Kuralları #q03

Merhaba arkadaşlar, Bugün, veri tabanı tasarımının olmazsa olmazı, belki de en çok kafa karıştırdığı düşünülen ama aslında hayat kurtaran konusuna, Normalizasyon‘a derin bir dalış yapacağız arkadaşlar. Amacımız, bu soyut gibi görünen kuralları, somut örneklerle adım adım çözümlemeye çalışacağız. Hazırsanız başlayalım!

İlişkisel Veri Tabanı nedir?

Bir önceki videoda, bir veritabanının düzenli bir bilgi deposu olduğundan bahsetmiştik. Peki, kelimenin başında geçen ‘İlişkisel’ ifadesi nereden geliyor? Cevabı, tabloların birbiriyle olan bağlantısında yatıyor arkadaşlar Öncelikle Veritabanındaki tabloları ve bunun ilişkilerini anlatmak için Excel’den örnek vermek istiyorum. Excel bize ilişkisel veritabanının temel yapı taşlarını anlatır. Şöyle ki;
  • Excel’deki bir çalışma sayfası, veritabanındaki bir tabloya karşılık gelir arkadaşlar.
Gördüğünüz gibi birçok Excel Sayfası var. Eğer Veritabanı olsaydı her biri birer tablo olduğunu düşünebilirsiniz.
  • Excel’deki bir satır, veritabanında bir kaydı temsil eder (örneğin, tek bir müşteriye ait tüm bilgiler). Adres, Ad Soyad, telefon gibi
  • Excel’deki sütunlar ise, veritabanında bir alanı tanımlar arkadaşlar (her bir alana veri tabanında biz attribute diyoruz)
(örneğin, tüm müşterilerin ‘İsim’ bilgisinin saklandığı yer diyebiliriz)  Veri Tabanı yapısını Excel’den örnekledik. Peki Excel ile Veritabanı arasındaki kritik fark Nedir? Excel’de genelde tüm veriyi tek bir sayfada tutmaya çalışırız. Bize daha kolay gelir. Öyle alıştık çünkü Oysa ilişkisel veri tabanının gücü, bu veriyi mantıklı, küçük tablolara bölüp, sonra bu tabloları birbirine akıllıca bağlamakta yatar. Bu bağlantılar sayesinde hem veri tekrarının önüne geçeriz, hem de verimliliği ve doğruluğu artırmış oluruz.

Peki Neden Normalizasyon?

Tam da bu noktada şöyle bir soru aklımıza gelmeli: “Madem Excel’deki gibi tek bir tabloda tutabiliyoruz, neden uğraşıp veriyi parçalara ayıralım ki?” Bu, çok yerinde bir soru. Hemen bu sorunun cevabını somut bir örnekle birlikte verelim.

Giyim Mağazası Örneği ile Normalizasyon

[EXCEL AÇ : “Tablo Yapım Aşaması 1” Sayfasına Geç] Diyelim ki bir giyim mağazası için bir sipariş takip sistemi tasarlıyoruz. İlk aklımıza gelenler:
  • Sipariş verilen Ürün nedir? / Ürün Adı
  • Sipariş verilen ürünün tutarı? / Sipariş Tutarı
  • Siparişi veren Müşteri Kim? / Müşteri Adı
  • Siparişin Verildiği Tarih Nedir? / Sipariş Tarihi
  • Siparişin Ödeme yöntemi Nedir? / Ödeme yöntemi (Visa, mı, Nakit mi?)
  • Siparişin gideceği adres neresi?/ Teslimat Adresi
Sorulara cevap verdiğimizde Tablo başlıklarımız bu şekilde mantıklı görünüyor. Hadi bu tabloyu biraz veriyle dolduralım. Sizin için verileri ben bu şekilde doldurdum. Tabloda tekrar eden verileri renklendiriyorum. İşte! Tam da burada anlatmak istediğim sorunu görüyoruz Arkadaşlar. Bakın neler oluyor:
  • “Ahmet Ltd. Şti.” ismi neredeyse her siparişte tekrar ediyor.
  • “Kaban” ürünü defalarca satıldığı için sürekli tekrar ediyor.
  • “Kredi Kartı” ödeme yöntemi aynı şekilde onlarca yerde yazılı.
Bu verileri tekrar etse ne olur?  Bir zararı var mı? Bunu Şöyle Açıklayım “Ahmet Ltd. Şti.” binlerce sipariş vermiş olsun. Bir gün bize gelip, “Şirketimizin ismi artık Ahmet Tekstil A.Ş. oldu, lütfen tüm kayıtlarımızı günceller misiniz?” dedi. Ne yapacağız? Tablomuzda binlerce satırı tek tek bulup, elle değiştirmemiz gerekecek! Bu:
  • İnanılmaz bir zaman kaybıdır.
  • Hata riski çok yüksektir. Bir satırı unutma ihtimaliniz var.
  • Canlı bir sistemde bu kadar çok satırı güncellemek, performansı düşürür, hatta sistemi kilitleyebilir.
Ayrıca, aynı bilgi defalarca kaydedildiği için depolama alanı israfı da cabası.  İşte Normalizasyon tam da bu kaosu önlemek için var! Arkadaşlar. Normalizasyonun İki temel hedefi vardır:
  1. Veri tekrarını engellemek,
  2. Veri bütünlüğünü korumak.
Yani, Normalizasyon bize “Dur, bu veriyi buraya bu şekilde yazma, şu şekilde ayır, daha temiz ve güvenli olur!”  diyen bir kılavuzdur arkadaşlar.

Normalizasyon İşlemi Aşamaları

O zaman bu veriyi ayrı ayrı, küçük tablolara taşıyıp sonra da bu tabloları birbirine bağlayalım arkadaşlar. Yani Normalizasyon işlemi yapalım. Müşteri bilgileri için bir Müşterilertablosu oluşturuyoruz. Her Müşteriye bir Numara atayalım Ürün bilgileri için bir Ürünler tablosu, Ödeme yöntemleri için bir Ödeme Yöntemleritablosu oluşturuyoruz. Ana Siparişler tablosunda ise artık; Müşteri adı yazmak yerine, MüşteriID yazıp karşılık gelen numarasını yazıyoruz. Ürün adı yazmak yerine ÜrünID yazıyoruz. Artık “Ahmet Tekstil”in ismini değiştirmek için Müşteriler tablosundaki tek bir satırı güncellememiz yeterli oluyor! İnanılmaz değil mi?  

Peki Bu çizgilerle gösterdiğim, Tablolar Nasıl Birbirine Bağlanıyor?

(Ses tonunuzu hafifçe değiştirerek, bir sonraki mantık adımını işaret edin) MüşteriID: 1 yazdığımızda, veritabanı nasıl oluyor da bunun ‘Ahmet Bey’ olduğunu anlıyor? İşte ilişkisel veri tabanının sihri ve ‘ilişkisel’ kelimesinin veritabanındaki karşılığı İkincil Anahtar ya da İngilizce adıyla Foreign Key ile tabloları birbirine bağlıyoruz. Şu an ekranda gördüğünüz, Siparişler tablomuzdaki MüşteriID aslında bir referanstır. Buradaki ‘3’ rakamı, ‘Ahmet Bey’in kimlik kartı numarası gibi. Siparişi Veren 3 Numarayı Alıp, Müşteriler tablosuna gittiğinde, birebir o numarayı buluyoruz ve ‘Ahmet Bey’in tüm bilgilerine bu sayede ulaşabiliyoruz. Excel’de DÜŞEYARA Bilenler durumu kavrayacaktır. İşte ilişkisel veri tabanınındaki bu işlemi İkincil Anahtar, yani Foreign Key dediğimiz kavram yapıyor. Bu bağ, sadece bir bağlantı değil, aynı zamanda bir güvenlik mühendisidir. Veri bütünlüğünü otomatik olarak sağlar. Örnek verecek olursak; Siparişler tablosunda siparişi olan bir müşteriyi (örneğin ID’si 3 olan Ahmet Bey’i) Müşteriler tablosundan silmeye kalktığınızda, veri tabanı size izin vermez. Sizi uyarır: “Dur! Bu müşteriye ait aktif siparişler var. Önce onları silmelisin.” der Ya da Ürünler tablosunda olmayan bir ÜrünID (mesela 999) ile yeni bir sipariş girmeye çalıştığınızda, veri tabanı yine reddedecektir: “Böyle bir ürün yok, lütfen geçerli bir ürün kodu girin.” Der size.  

Günlük Hayattan Bir Örnek: Banka

Peki, bu Foreign Key kavramını günlük hayatta nerede görüyoruz? Aslında her yerde! Varlar. Bu sefer’de size çok tanıdık gelecek bir örnekle anlatayım: Banka. Düşünün, Örneğin Ziraat Bankasına gidip yeni bir hesap açtırdınız. Banka size hemen benzersiz hiçbir müşterisinde olmayan  bir müşteri numarası verir. İşte bu numara, bankanın devasa veri tabanının Müşteriler tablosundaki (Birincil Anahtarınız) yani Primary Key olarak sizin adınıza bir kayıt açılır. Bu Tablomuzda Primary Keyiniz Müşteri No’dur. ilaveten adınız, soyadınız, adresiniz, anne kızlık soyadınız gibi sadece sizi ilgilendiren sabit bilgileriniz tutulur. Şimdi, Ziraat Bankasında bir işlem yaptığınızı hayal edin. ATM’den Para çekiyorsunuz, İnternet Bankacılığından havale yapıyorsunuz veya fatura ödüyorsunuz. Banka, bu işlemi kaydederken, Banka İşlemleri veya Hesaplar gibi bir tabloya şunları yazar: ‘Şu tarihte, şu ATM’den, 500 TL çekilmiştir.’ Ama asla bu kaydın içine sizin adınızı ve soyadınızı tekrar tekrar yazmaz! Yapacağı şey çok basittir. Görselde gördüğünüz gibi O kaydın ‘MüşteriID’ sütununa sizin o benzersiz müşteri numaranızı (yani 1234567’i) yazar. Karşılığında da Banka İşlemlerinde 1234567’ye karşılık gelen kayıtlar size ait işlemlerdir. İşte Banka İşlemleri Tablosundaki yazan 1234567 kaydı bir Foreign Key yani İkincil Anahtardır. ‘dir. Banka, Mustafa Bey 500 TL çekti’ raporunu oluşturmak istediğinde, Banka İşlemleri tablosundaki MüşteriID’yi alır, Müşteriler tablosundaki ID ile birleştirir (JOIN işlemi yapar) ve işlemi yapan kişinin siz olduğunu anlar. Excel’de Düşeyara bilenler ne demek istediğimi anlayacaklardır. Yani, Primary Key (Müşteri Numaranız) sizi tanıtken, Foreign Key  ile yaptığınız tüm işlemleri fiziksel bir bağ gibi birbirine bağlıyor. Primary Key Benzersiz kayıtlara verilir. Foreign Key ise benzersiz kayıtlarla bağ kuran yapı diyebiliriz. İşte veri tabanı ilişkilerinin büyüsü ve mantığı tam olarak budur.  

Peki, Bu Kadar Mükemmel Bir Sistemin Hiç Mi Eksisi Yok?

Maalesef var arkadaşlar, her güzel şeyin bir de bedeli vardır. Normalizasyon dediğimiz kavram, veri tutarlılığı ve güvenliği için bir mükemmel olsa da, bu avantajın bir karşılığı var o da : Sorgu Performansı Düşüklüğü. Arkadaşlar. Şimdi şu görsele bir bakın. Ne kadar çok tablo, ne kadar çok ilişki varsa, bir rapor almak için o kadar çok JOIN işlemi yapmamız işlemi yapmamız gerekiyor. Tekar hatırlatıyım JOIN Excel’deki DÜŞEYARA gibidir. Onlarda Tablodaki verileri DÜŞEYARA ile çağırdığınızı düşünün Bu da veritabanı için ekstra iş yükü demek ve raporlama için yapacağınız sorguları yavaşlayacaktır. Yani, normalize edilmiş bir yapı, güncelleme için hızlıdır, ama sorgulama için nispeten yavaştır.  

Peki Bu Sorunla Nasıl Başa Çıkıyoruz? Pratik Çözüm Ne?

Pratikte bu durumun çok akıllıca bir çözümü var: İki sistemli (Hybrid) yaklaşımdır. 1. OLTP (İşlemsel) Veritabanı: Günlük işlemlerinizi yaptığınız, Normalizasyon kurallarına uygun tasarlanmış sistemdir. Sipariş girme, müşteri güncelleme gibi işlemler burada, hızlı ve güvenli bir şekilde yapılır. 2. OLAP (Analitik) Veri Ambarı: Raporlama ve analiz için kullanılan, bilerek (Normalizasyonun Tersi)  denormalize edilmiş yapıdır. Her gün işlenen veriler, sistemin az kullanıldığı saatlerde (genellikle gece olur) buraya aktarılır ve raporlamayı hızlandırmak için tekrar içeren geniş, yassı tablolar halinde saklanır. Yani, hem güvenli işlem yaparız, hem de hızlı rapor almış oluruz. Böylece her iki sisteminde en iyi yanlarını bir arada kullanmış oluyoruz.  

Sonuç

Özetle arkadaşlar,
  • Normalizasyon, veri tekrarını önleyerek bize tutarlılık, güvenlik ve esneklik sağlar.
  • Foreign Key ise bu yapıyı bir arada tutan, ilişkileri güvence altına alan çimento görevi görür.
Bu temel prensipleri özümsediğinizde, ister bir e-ticaret sitesi, ister bir banka sistemi tasarlayın, her veri tabanını çok daha sağlam kurgulayabilirsiniz arkadaşlar. Bir sonraki videoda görüşmek üzere, kendinize iyi bakın
error: İçerik Kopyalamaya Karşı Korulamlıdır. !!