Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. Birinci normal formu Aşağıdaki tablo ile ele alacağız.



Benzer belgeler
SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

SQL e Giriş. Uzm. Murat YAZICI

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Fonksiyonel(İşlevsel) Bağımlılık

Veri Tabanı-I 4.Hafta

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

10-Veri Tabanları.

SORGULAR. Öğr.Gör.Volkan Altıntaş

ACCESS DERS Tablolarda Düzenleme

VERİTABANI ve YÖNETİMİ

Veri Tabanı Hafta Dersi

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

VERİ TABANI ve YÖNETİMİ

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

Veritabanına Uygulanması

VERİTABANI Veritabanı Normalizasyonu

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ.

İLETİNİN İLETİLMESİ 1. ADRES DEFTERI

SORGULAR VE ÇEŞİTLERİ II

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir.

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ II. 10. FORMLAR ve VISUAL BASIC PROGRAMINDA FORM OLUŞTURMA

Bölüm 4: DDL Veri Tanımlama Dili

VERİ TABANI YÖNETİM SİSTEMLERİ II. 9. FORMLAR ve ORACLE FORMS PROGRAMINDA FORM OLUŞTURMA

Oracle da kullanılan veri tipleri:

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

DESTEK DOKÜMANI. FORM Ba ve Bs

KISITLAMALAR (CONSTRAINT)

EVRİM YENİ YIL İŞLEMLERİ

SQL TRIGGERS (Tetikleyiciler)

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

SQL Kod ile Tablo Oluşturma

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

KATEGORİ MİZANI BAŞLARKEN KATEGORİ NEDİR? NEDEN N İHTİYAÇ DUYULUR?

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

T.C. MĠLLÎ EĞĠTĠM BAKANLIĞI EĞĠTĠM TEKNOLOJĠLERĠ GENEL MÜDÜRLÜĞÜ BĠLĠġĠM HĠZMETLERĠ DAĠRESĠ MEZUN ÖĞRENCĠ SORGULAMA MODÜLÜ KULLANIM KILAVUZU

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Oracle Database 11g: Introduction to SQL

Veri Tabanı-I 9.Hafta

VERİTABANI Veritabanı Yönetimi

MICROSOFT ACCESS DERS NOTLARI

Logo Market Satınalma. Kullanıcı El Kitabı

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

DESTEK DOKÜMANI. Ürün : GO/TIGER2/UNITY2 Bölüm : Sistem Đşletmeni

Bölüm 10: PHP ile Veritabanı Uygulamaları

MOBİL UYGULAMA GELİŞTİRME

OYS OLAY YÖNETİM SİSTEMİ. Kullanım Kılavuzu. Türkiye Halk Sağlığı Kurumu

VERİ TABANI YÖNETİM SİSTEMLERİ

YAYINLANAN RAPORLAR FORMU EĞİTİM DOKÜMANI

Fiyat Farkı Faturası

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

TABLO ve HÜCRE SEÇİMİ

Zoru Kolay Yapmak İçin...

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

YENİ NESİL 720 SÜRÜMÜ e-irsaliye DEĞİŞİKLİKLERİ

1 Temel Kavramlar. Veritabanı 1

Orkestra Ürünler. Ana Sayfa / Orkestra Ürünler

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ.

Örnek: HAFTA12B isimli bir kullanıcı tanımlayalım. Bu kullanıcıya gerekli yetkileri verelim.

UZAKTAN EĞİTİM MERKEZİ

İLAÇ PROVİZYON SİSTEMİ SAĞLIK TESİSİ KULLANIM KILAVUZU TÜRKİYE VAKIFLAR BANKASI T.A.O. MEMUR VE HİZMETLİLERİ EMEKLİ SAĞLIK YARDIM SANDIĞI

VERİ TABANI YÖNETİM SİSTEMLERİ-II

Veri Bütünlüğü ve Constraint ler. Veritabanı 1

DetailsView. DetailsView kontrolünün GridView kontrolüyle paralel şekilde kullanımı ile ilgili örnek

AYDES PROJESİ AFETZEDE ADRES DEFTERİ EĞİTİM DOKÜMANI

Barkomatik. Stok Yönetimi. Ürün Yönetimi. Kullanım Kılavuzu

VERİ TABANI YÖNETİM SİSTEMLERİ I

12 Ocak 2012 / Perşembe

ELEKTRİK SİSTEMLERİ MODÜLÜ

AGSoft Vade Farkı Hesaplama Programı

BÖLÜM 1 GİRİŞ 1.1 GİRİŞ

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

DynEd. Kayıt Yöneticisi (Records Manager)

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

Veritabanı. SQL (Structured Query Language)

KULLANIM KILAVUZU. Programda veri gireceğiniz yerler beyaz renklidir. Sarı renkli alanlar hesaplama veya otomatik olarak gelen bilgilerdir.

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

DUYURU PANELİ KULLANMA YÖNERGESİ

YEDEKLEME PROGRAMI KURULUM VE KULLANIMI

02 Temmuz İlgili Versiyon/lar: ETA:SQL, ETA:V.8-SQL. İlgili Modül/ler: Muhasebe IV

2 İlişkisel Veritabanı Tasarımı ve Normalizasyon. Veritabanı 1

AYDES PROJESİ HIZLI RAPORLAR FORMU EĞİTİM DOKÜMANI

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

22. Ölçü ve Kot Eklemek

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Varlık-İlişki Şemaları

İLİŞKİSEL VERİTABANLARI

1 Nisan Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Stok

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri

Ders 3 - Eğitim 3. İlk önce çizimleri ve aşağõdaki konularõ gözden geçirin. Yeni bir model başlatmak

İşlem Adımları. 23 Haziran Stok, Cari, Fatura

EKLEME SORGUSU. 2) ornekveritabani.accdb isimli veritabanınızı çift tıklayarak açınız. Sorarsa, İçeriği Etkinleştir komutunu uygulayınız.

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Transkript:

Normalleştirme ve Uygulaması Normalleştirme Neden Uygulanır: İlişkisel veritabanı oluşturmak için normalleştirmeyi bilmek çok önemlidir. Normalleştirme işlemini anlayabilmek için ise fonksiyonel bağımlılık kavramını iyi öğrenmek gerekir. Normalleştirme veri kayıplarını engellemek, verinin tekrarlanmamasını sağlamak ve yetersizliği önlemek için veritbanına uygulanır. Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. Birinci normal formu Aşağıdaki tablo ile ele alacağız. Dikkat edilecek olursa belirli alanlarda tekrarlar yer almaktadır. Satır Ekleme Sorunu: Böyle bir tabloda ancak yeni bir ürün satın alıdığında yeni bir müşteri eklenir eğer alış veriş yoksa mantıksal olarak müşteri eklemek boş kayıt eklemekle aynı anlama gelir. 1

Normalleştirme ve Uygulaması Satır Silme Sorunu: Eğer Müşteri bir defa alışveriş yapmışsa yapılan alışveriş silindiğinde tüm müşteri kaydı silineceğinden bu kayıttaki müşteri biliglerine birdaha ulaşılamaz. Güncelleştirme Sorunu: Eğer Müşterilerden birinin oturma adresi değişirse bu tablodaki bu müşteri ile ilgili tüm kayıtlar güncellenmelidir örneğimizde 5 kayıt olmasına rağmen büyük bir veri tabanında böyle küçük bir değişiklik için bile binlerce kayıdı güncellemek gerekir. İkinci Normal Form: Birinci normal formda tekrarların ne tür sorunlara neden olduğunu öğrendik şimdide bu sorunları çözmek için birinci normal formdaki tabloyu başka normal tablolara bölmeliyiz. Fonksiyonel bağımlılık göz önünde bulundurularak tablolar bölünmelidir. Bölünen tablolardan birinin birincil anahtarı ile bölünen diğer tablodaki birncil olamayan bir alan arasında bağımlık varsa buna tam bağımlılıkta denir; bu duruma ikinci normal form denilir. ikinci normal formda da satır ekleme ve silme sorunları ortaya çıkıyor. Satır ekleme sorunu: Müşteri tablosuna bir il eklemek istediğinizde mantıken bir müşteri eklemek gerekir. 2

Normalleştirme ve Uygulaması Satır Silme Sorunu: Müşteri silindiğinde (Örn: Gökmen İmamoğlu) müşterinin oturduğu şehir ve şehirle ilgili plaka verisi de silinebilir Bu sorunları Düzeltmek için Üçüncü Normal form uygulanır. Üçüncü Normal Form İkinci Normal Form yapısındaki Tabloların Fonksiyonel bağımlılık içermese de alt tablolara bölünmesinden elde edilir. 3

Master-Detail Form Oluşturmak: Beyaz eşya satışı yapan bir firmanın sattığı ürünler için fatura kesme işleminde kullanılacak bir veritabanı yapısı oluşturulmak istenmektedir aşağıdaki örnekte bu işe yarayan bir veritabanının nasıl hazırlanacağı adım adım anlatılmaktadır. İlgili veritabanının şematik yapısı ve ilişki diagramı Şekil 1. de gösterilmektedir. Şekil 1. Veritabanının Şematik Yapısı. Öncelikle veritabanında yer alan tabloları aşağıdaki bilgiler ışığında tanımlamamız gerekir 1) Müşteri Tablosu tblmusteri MusteriID Adi Text 25 Soyadi Text 25 Adresi Text 250 TelefonNumarası Text 15 InputMask: \(999") "000\ 00\ 00;;_ Eposta Text 50 Şekil 2. Müşteri Tablosu 4

Şekil 3. Müşteri Verileri 2) Ürün Tablosu tblurun UrunID Adi Text 50 Kodu Text 50 Fiyati Currency Format: #,##0.00" TL";-#,##0.00" TL" Şekil 4. Ürün Tablosu Şekil 5. Ürün Verileri 5

3) Fatura Tablosu tblfatura FaturaID MusteriID Adres Text 250 Tarih Date/Time InputMask: 00/00/0000;0;_ FaturaNumarasi Text 10 Şekil 6. Fatura Tablosu 4) Fatura Detay Tablosu tblfaturadetay FaturaDetayID FaturaID UrunID Adet 1) Birinci adımda master-detail türünde bir ilişkinin bulunduğu tblfatura ya müdahale edeceğiz. İlk değişikliği bu tablodaki MusteriID alanının, Caption (Başlık) ve Default Value (İlk değer) özelliklerinde yapıyoruz. MusteriID Caption ına Adı Soyadı bilgisini giriyoruz ve Default Value 0 ı siliyoruz ve bu sayede bir ilk değer görüntülenmesini engellemiş oluyoruz (Bknz: Şekil 7). 6

Şekil 7. Caption ve Default Value değişikliği MusteriID Caption ına Adı Soyadı bilgisinin girilmesi ile bundan sonra Tabloda MusteriID ifadesinin Görünmesi Yerine Adı Soyadı Bilgisinin Görünmesini Sağlamış oluyoruz ve Dolayısıyla bundan sonra yaratacağımız tüm Rapor, Form ve Sorgularda Listeleme Anında başlık olarak girdiğimiz Başlık Metni görüntülencektir. (Önemli not: Sorgularda başlıkta görülen değil Tablonun tanımında kullanılan hali ile alan ismi kullanılmalıdır Örneğin: Yanlış : SELECT Adı Soyadı, Adresi,Tarih FROM tblfatura Doğru: SELECT MusteriID, Adresi,Tarih FROM tblfatura ) 2) İkinci Adım olarak MusteriID alanında iken Lookup (Arama) tabına geçiyoruz. Bu alanda öncelikle Display Kontrol kutucuğundaki Text Box tanımını Combo Box haline getirmemiz gerekmektedir. 7

Daha sonra Row Source satırına SELECT Adi, Soyadi, MusteriID FROM tblmusteri SQL komutunu giriyoruz Yaptığımız bu işlemle Fatura tablosunda MusteriID alanına veri girmek istediğimizde müşterilerinin ID lerini (örn : 1, 5, 200) yazmak yerine yaptığımız tanım sayesinde Müşterinin İsmini açılan listeden Seçip bu isimle özdeş MüşteriID sayısal verisini yazdığımız SQL Komutunun üçüncü (3) kolonundan Şekil 8. Bound Column 8

alıyoruz ve Bound Column a (İlişkili Sütun) bu nedenle 3 sayısını giriyoruz. Bound Column a 3 değerini girdiğimizde veritabanına şu komutu vermiş oluyoruz; tabloya veri girerken ismini listeden seçtiğim kişinin ID sini bul ve bu ID değerini fatura tablosundaki MusteriID alanına sayısal olarak yaz. Ancak listeleme durumu için Column Counta 2 değerini verdiğimizde bu SQL Cümlesinden dönen sonuçlardan sadece ilk iki kolondaki verileri metin olarak yani Adı Soyadı olarak Listele demiş oluyoruz. Şekil 9. Veri Giriş ve Sonuç Listesi Dikkat edilecek olursa yukarıdaki Şekil 9 da veri girerken listeden isim soyad seçilmiş olmasına rağmen kayıt girildikten sonra tblonun genel listesinde sadece adı alanı görüntülenmektedir bu durumu düzeltmek için Fatura tablosundaki MusteriID alanında küçük bir değişiklik gerekmektedir. Bu değişiklik Şekil 10 da gösterilmektedir. Row source kutucuğundaki SQL cümlesinde bir alan birleştirme işlemi 9

Şekil 10. Alan Birleştirme uygulanmaktadır. Ancak bu işlem yapıdıktan sonra Adı ve Soyadı alanları tek bir alan haline gelmiş oldukları için listlenen kolon sayısı değişmiştir bu nedenle MuşteriID nin listelem sırası olan 2 Row Source alanına değer olarak verilmeli ve listelenecek kolon sayısı bilgisi içinse sadece ilk kolonu listelemek için 1 değeri girilmelidir.bu düzeltmeler yapıldıktan sonra Fatura tablosu durumu aşağıdaki şekilde verilmiştir. Şekil 11. Düzeltmeden Sonraki Durum 10

Form Oluşturmak: Form oluşturmak için öncelikle Form Tabına geçmeliyiz. Create Form by using wizard komutunu verin. Komutu verince aşağıdaki dialog kutusu karşınıza çıkacaktır. Table/Queries Listesinde tblfatura tablosu seçili iken Available Field Listesinden MusteriID, Adres, Tarih ve FaturaNumarası alanlarını sağ tarafa aktarın FaturaID solda kalsın. 11

işlemden sonra dialogun durumu yukaradaki gibidir. Bu işlemden sonra Tables/Queries alanında tblfaturadetay tablosunu seçin bu durumda dialog aşağıdaki gibi görünecektir. Burda bilinmesi gereken ilk seçilen tblfatura nın Master tblfaturadetay ın Detail olduğudur. Ayrıca tblfaturadetay dan alanları sağa atarken Master tablonun (bu örnekte tblfatura) Primary Key alanıyla aynı isimli alanı sağ tarafa aktarmamalıyız. Master tablonun Primary Key ile Detail Tablodaki Foreign Key arasında kurduğumuz ilişki nedeni ile bir bağlantı vardır. Bu nedenle eklediğimiz her detay veriye aktif faturanın FaturaID si otomatik olarak eklenir. İşlemi uyguladıktan sonra dialog aşağıdaki gibi görünmelidir. Ekran bu halde iken Next tuşuna basılır. Bu komut verildikten sonra dilaog aşağıdaki gibi görünür. 12

Ekran görüntüsü böyle iken Next tuşuna basılır. Ekran da seçenekler belirir datasheet bu işlem için uygun bir seçenektir. Bu durumda Next tuşuna basılır. Form için uygun bir stil seçilir ve Next tuşuna basılır. Aşağıdaki Dialog kutusunda Form alanında İsmi frmfatura ve Subform alanına frmfaturadetay Subform yazın ve Finish tuşuna basın. 13

Şonuç aşağıdaki gibidir. 14