5. UYGULAMA
5.2 ADDM Veritabanı
5.2.3 ADDM Veritabanının Yapısı
Şekil 5.19 ADDM veritabanı tabloları (36 adet)
Şekil 5.20 ADDM veritabanı stored procedure ve fonksiyonları
t_bms_webview_1
sat_id int
urun_no decimal(10, 0)
Column Name Data Type Allow Nulls
t_bms_webview_2
sat_id int
urun_no decimal(10, 0)
Column Name Data Type Allow Nulls
t_migros_kadir_has
Hesap_No decimal(10, 0)
Tarih datetime
Kasa_No tinyint Islem_No int
Saat decimal(4, 0)
Urun_No decimal(10, 0) Urun_Adi nvarchar(50) Adet_Kg decimal(10, 3) Tutar decimal(10, 2) Harcama decimal(10, 2)
Column Name Data Type Allow Nulls
Şekil 5.21 Excel ve metin dosyalarındaki bilgilerin aktarıldığı, ham verilerin bulunduğu tablolar
t_bms1_fptree
fpg_id int
nesne decimal(10, 0) ust_fpg_id int destek_sayi int
Column Name Data Type Allow Nulls
t_bms1_satis
sat_id int
tarih datetime
Column Name Data Type Allow Nulls
t_bms1_satis_detay
sdk_id int
sat_id int
urk_id int
Column Name Data Type Allow Nulls
t_bms1_urun
urun_no decimal(10, 0) urun_ad nvarchar(50)
urk_id int
Column Name Data Type Allow Nulls
t_bms1_urun_kategori
urk_id int
ad nvarchar(50)
Column Name Data Type Allow Nulls
t_bms2_fptree
fpg_id int
nesne decimal(10, 0) ust_fpg_id int destek_sayi int
Column Name Data Type Allow Nulls
t_bms2_satis
sat_id int
tarih datetime
Column Name Data Type Allow Nulls
t_bms2_satis_detay
sdk_id int
sat_id int
urk_id int
Column Name Data Type Allow Nulls
t_bms2_urun
urun_no decimal(10, 0) urun_ad nvarchar(50)
urk_id int
Column Name Data Type Allow Nulls
t_bms2_urun_kategori
urk_id int
ad nvarchar(50)
Column Name Data Type Allow Nulls
t_migros_fptree
fpg_id int
nesne decimal(10, 0) ust_fpg_id int destek_sayi int
Column Name Data Type Allow Nulls
t_migros_satis
sat_id int
tarih datetime
Column Name Data Type Allow Nulls
t_migros_satis_detay
sdk_id int
sat_id int
urk_id int
Column Name Data Type Allow Nulls
t_migros_urun
urun_no decimal(10, 0) urun_ad nvarchar(50)
urk_id int
Column Name Data Type Allow Nulls
t_migros_urun_kategori
urk_id int
ad nvarchar(50)
Column Name Data Type Allow Nulls
t_satis
sat_id int
tarih datetime
Column Name Data Type Allow Nulls
t_satis_detay
sdk_id int
sat_id int
urk_id int
Column Name Data Type Allow Nulls
t_urun
urun_no decimal(10, 0) urun_ad nvarchar(50)
urk_id int
Column Name Data Type Allow Nulls
t_urun_kategori
urk_id int
ad nvarchar(50)
Column Name Data Type Allow Nulls
Şekil 5.22 Ham verilerin bulunduğu tablolardan türetilmiş, algoritmalara veri sağlayan tablolar
t_ass_apriori
apr_id int
tip bit
boyut int
destek_sayi int
Column Name Data Type Allow Nulls
t_ass_apriori_kural
apk_id int
boyut int
nesneX varchar(MAX) nesneX_ad varchar(MAX) nesneY varchar(MAX) nesneY_ad varchar(MAX) destek decimal(10, 3) guven decimal(10, 3)
Column Name Data Type Allow Nulls
t_ass_apriori_sonuc
aps_id int
boyut int
nesnekume varchar(MAX) nesnekume_ad varchar(MAX) destek_sayi int destek decimal(10, 3)
Column Name Data Type Allow Nulls
t_ass_apriori_sonuc_detay
aps_id int
nesne decimal(10, 0)
Column Name Data Type Allow Nulls
t_ass_fpgrowth_kural
fpk_id int
boyut int
nesneX varchar(MAX) nesneX_ad varchar(MAX) nesneY varchar(MAX) nesneY_ad varchar(MAX) destek decimal(10, 3) guven decimal(10, 3)
Column Name Data Type Allow Nulls
t_ass_fpgrowth_sonuc
fps_id int
boyut int
nesnekume varchar(MAX) nesnekume_ad varchar(MAX) destek_sayi int destek decimal(10, 3)
Column Name Data Type Allow Nulls
t_ass_fpgrowth_sonuc_detay
fps_id int
nesne decimal(10, 0)
Column Name Data Type Allow Nulls
t_ass_apriori_detay
apr_id int
nesne decimal(10, 0)
Column Name Data Type Allow Nulls
t_ass_fpgrowth_tree
fpg_id int
nesne decimal(10, 0) ust_fpg_id int destek_sayi int
Column Name Data Type Allow Nulls
Şekil 5.23 Algoritmaların çalışması esnasında kullanılan, sonuçların ve birliktelik kurallarının bulunduğu tablolar
tmp_fpgrowth_satis_detay
sdt_id int
sat_id int
urk_id int
sayi int
Column Name Data Type Allow Nulls
tmp_kural
tmk_id int
nesne_kural decimal(10, 0) nesne decimal(10, 0) destek_sayi int
Column Name Data Type Allow Nulls
tmp_kural_nesne
tmp_id int
nesne_kural decimal(10, 0) nesne decimal(10, 0) destek_sayi int
Column Name Data Type Allow Nulls
tmp_kural_nesne_yaygin
tmy_id int
nesne_kural decimal(10, 0) nesne decimal(10, 0) destek_sayi int
Column Name Data Type Allow Nulls
tmp_kural_son
tip_kod char(1) nesne decimal(10, 0)
Column Name Data Type Allow Nulls
Şekil 5.24 Algoritmaların çalışması esnasında ve birliktelik kuralları oluştururken kullanılan geçici tablolar
Şekil 5.25 sp_apriori stored procedure’ünden bir kesit
Şekil 5.26 sp_fpgrowth_executesql stored procedure’ünden bir kesit
Şekil 5.27 fn_fpgrowth_bul_fpg_id_by_nesne_ust_fpg_id isimli fonksiyon
Excel’deki veri seti bilgilerini içeren t_migros_kadir_has tablosundan faydalanarak, hareketsel (transactional) satışları içerecek t_migros_satis ve her bir satışa ait alınan ürünler ve detaylarını içerecek t_migros_satis_detay tabloları tasarlanmıştır. Böylelikle, Excel’de tekrar eden Hesap_No, Tarih, Kasa_No bilgilerinin tekilliği (unique) kullanılarak, ilgili tarihteki ilgili satış numarası ana bilgileri, t_migros_satis tablosunda oluşturulmuştur.
t_migros_satis_detay tablosuna ise, ilgili satış numarasında alınmış ürünler, satış numaralarıyla birlikte işlenmiştir. Migros verisi üzerinde yapılan bu işlemlerin benzeri, BMS verileri için de uygulanmıştır.
Şekil 5.22’de yer alan satış, satış detay, ürün, ürün kategori tablolarının yapıları aynıdır.
Böylelikle, birliktelik kuralları çıkarılacak olan veri setindeki bilgiler, t_satis, t_satis_detay, t_urun ve t_urun_detay tablolarına sp_veri_sec stored procedure’ü yardımıyla aktarılır ve algoritmalar çalıştırılır. Satış ve satış detay bilgileri kullanılarak her bir veri seti için oluşturulmuş ve ancak veri seti değiştiğinde baştan oluşturulması gereken FP-Tree yapılarını bulunduran tablolar vardır. Bu tabloların amacı, veri seti değişmediği müddetçe sabit kalacak olan FP-Tree yapısının tekrar oluşturulmasını ve zaman kaybını önlemektir. Aynı şekilde bu tablolardaki veriler de, sp_veri_sec stored procedure’ü çalıştırıldığında t_ass_fpgrowth_tree
tablosuna aktarılır.
Tabloları dört gruba ayırmak mümkündür:
• Excel ve metin dosyalarındaki bilgilerin aktarıldığı, ham verilerin bulunduğu tablolar (Şekil 5.21)
• Ham verilerin bulunduğu tablolardan türetilmiş, algoritmalara veri sağlayan tablolar (Şekil 5.22)
• Algoritmaların çalışması esnasında kullanılan, sonuçların ve birliktelik kurallarının bulunduğu tablolar (Şekil 5.23)
• Algoritmaların çalışması esnasında ve birliktelik kuralları oluştururken kullanılan geçici tablolar (Şekil 5.24)
Stored procedure’ler, algoritmaların çalışmasından önce veri sağlayan ve performans arttırıcı bir grup ile algoritmaları içeren operasyon grubu olmak üzere iki gruptur. Fonksiyonlar ise, operasyonel stored procedure’ler tarafından çağrılır.