Daha çox

Sahəyə əsaslanan bir atribut cədvəlində satırların birləşdirilməsi

Sahəyə əsaslanan bir atribut cədvəlində satırların birləşdirilməsi


Windows 7 PC-də ArcMap 10.2.2 istifadə edirəm.

Məndə çox növ (bir təbəqədəki çox növ) üçün shapefile sıra məlumatları var və bu sıra məlumatları növlərə aid məlumatlarla müşayiət olunur.

İşlədiyim növlərin bəzilərinin coğrafi əraziləri kəskindir. X növlərinin yaşadığı üç ayrılmış yeri varsa, atribut cədvəlimdə çox sayda lazımsız məlumatla üç fərqli satır var (yəni çoxbucaqlı ölçüsü ilə əlaqəli məlumatlar xaricində eyni məlumatlara sahib üç sıra var). Bu səbəbdən ~ 250 növ üçün təxminən 3.300 sıra var.

ArcMap-ın növlərə əsaslanan satırları birləşdirməsini istərdim, amma bunu necə düzgün edəcəyimi düşünə bilmirəm.

Növ növü sahəsinə əsasən (çox hissəli xüsusiyyətlərə görə) həll olunmağa çalışdım, amma bunu etdikdə içində heç bir şey olmayan yeni bir təbəqə alıram.

Hər hansı bir təklif?

ArcGIS for Desktop istifadə edərək atribut cədvəlindəki sətirləri necə birləşdirmək üçün təklif olunan hər şeyi sınadım? amma heç biri iş görmür.

ETA: Bunları bir şərhdə yazdınız, ancaq burada bəzi uyğun ekran görüntüləri:

Nəzərdə tutduğum çıxış, ilk ekran görüntüsündə vurğulanmış satırların hamısının tək bir sətir olmasıdır. Bunu bütün 250 növ üçün etmək istərdim.

Çözündüyü zaman istifadə etdiyim şey:


Sahə adlarından olan ikinci şəklinizdə qeyd edirəm ki, bir csv və shapefile arasında birləşdirmə var və həll etməyə çalışdığınız sahə csv-dən. Bu anda sənədləşdirilmiş şəkildə tapa bilməsəm də, bunun işə yaramayacağına inanıram. Əvvəlcə birləşdirilmiş məlumatlarınızı yeni bir shapefile / xüsusiyyət sinifinə ixrac etməlisiniz və sonra bunun üzərinə Dissolve'ı çalıştırmalısınız.

Harunun şərhlərində də qeyd edildiyi kimi, həmişə bir GP alətini işə salarkən seçilmiş bir şey olmadığından (və ya yalnız istədiyin alt hissədən) əmin olmaq istəyirsən, əksər seçim seçimlərinə görə və yalnız seçilmiş xüsusiyyətlərdə işləyəcəksən.


Sütunlardakı uyğun məlumatlara əsasən iki Excel cədvəlini birləşdirin

Bir excel problemi üzərində işləmişəm, bunun cavabını aşağıda izah edəcəyim üçün cavab tapmalıyam.

Sütunlarla Table01 etdim:

Sütunlarla Table02 etdim:

Image03-də göstərildiyi kimi Table01 & amp Table02-nin iki cədvəlini birləşdirdim, lakin sifariş olmadan.

Ancaq gördüyünüz kimi Qrup No Sütun hər iki cədvəldə oxşardır.

Mənə lazım olan şey, 'Qrup No' Sütununu nəzərə alaraq Table01 & amp 02-nin uyğun satırlarını əldə etməkdir.

Yekun nəticə son görüntü olaraq görülməlidir.

Bunu excel funksiyaları ilə etmək üçün bir yol varmı?


Uyğun sıralardakı sahənin məzmununa əsasən SOL QOŞULUN

Ümumiyyətlə, bir cədvəl götürüb başqa bir cədvəllə birləşdirməyə çalışıram, ancaq sahələrdən birində müəyyən bir dəyəri olan sətirlərdə.

Konkret olaraq istifadəçi cədvəlim və əlaqə masam var. Əlaqə masası bir istifadəçini bir əlaqə məlumatı (telefon, e-poçt və ya başqaları kimi) ilə əlaqələndirir. Ancaq əlaqə masasından yalnız müəyyən bir əlaqə tipinə uyğun satırları çəkmək istəyirəm (yəni yalnız telefon qeydlərini çəkin), amma yenə də telefon qeydlərinin olub-olmamasından asılı olmayaraq bütün qeydləri istifadəçilər cədvəlindən çıxarmaq istəyirəm. . Bu MariaDB-dədir.

Seçməyə çalışdığım şey belədir:

Ancaq sola qoşulma cəhdlərim çox və ya çox az qeydlə nəticələndi:

Bu bir sorğuda mümkündürmü? Mən əsasən yalnız SQL-in sadə sintaksisini tanıyıram, lakin istisna olmaqla, müddəaları və alt sorğularını sınamışdım. Şemanın yenidən dizayn edilməsi söz mövzusu deyil, ancaq istifadəçilərin bir çox əlaqə məlumatı formasına (əksəriyyətində 4-5 e-poçt / telefon) sahib olduqlarını bilmədiyimiz əlaqə növlərini daxil etmələrini nəzərə almalıdır. hələ.


Cədvəlin xüsusiyyətləri

  • Cədvəldə verilənlər bazasındakı bütün cədvəllərdən fərqli bir ad var.
  • Hər sətir ayrı-ayrılıqda təkrarlanan sətir yoxdur.
  • Sütunlardakı girişlər atomikdir. Cədvəldə təkrarlanan qruplar və ya çox dəyərli atributlar yoxdur.
  • Sütunlardan daxil olan məlumatlar, eyni zamanda aşağıdakı məlumatlar daxil olmaqla eyni domendəndir.
    • nömrə (ədədi, tam, float, smallint,…)
    • simvol (simli)
    • Tarix
    • məntiqi (doğru və ya yalan)

    atom dəyəri: etki alanındakı hər bir dəyər, əlaqəli model baxımından bölünməzdiratribut: verilənlər bazasında əsas saxlama vahidi

    sütun: görmək atribut

    dərəcə: cədvəldəki xüsusiyyətlərin sayı

    domen: məlumatları modelləşdirmək üçün istifadə olunan atom dəyərlərinin orijinal dəstləri, bir sütunun içərisində olmasına icazə verilən qəbul edilə bilən dəyərlər dəsti

    sahə: görmək atribut

    fayl:görmək münasibət

    qeyd: əlaqəli sahələri ehtiva edir bax

    münasibət: Cədvəl və ya sənəd üçün texniki termin adı ilə xarakterizə olunan domenlər siyahısının Kartezyen məhsulunun alt hissəsi

    sıra: bax

    strukturlaşdırılmış sorğu dili (SQL): standart verilənlər bazasına giriş dili

    masa:görmək münasibət

    korniş: sıra və ya qeyd üçün texniki bir müddət

    Terminoloji açar

    Bu fəsildə istifadə olunan bir neçə termin sinonimdir. Yuxarıdakı əsas şərtlərə əlavə olaraq aşağıdakı cədvəl 7.1-ə baxın. Alternativ 1 sütunundakı terminlər ən çox istifadə olunur.

    Cədvəl 7.1. A. Watt tərəfindən terminlər və sinonimlər.

    1-4 suallarını cavablandırmaq üçün Cədvəl 7.2-dən istifadə edin.

    1. Düzgün terminologiyadan istifadə edərək Cədvəl 7.2-dəki bütün komponentləri müəyyənləşdirin və təsvir edin.
    2. EmpJobCode sahəsi üçün mümkün domen nədir?
    3. Neçə qeyd göstərilir?
    4. Neçə atribut göstərilir?
    5. Cədvəlin xüsusiyyətlərini sadalayın.

    Verilənləri cədvəldə ümumiləşdirmək

    Bəzən xəritə xüsusiyyətləri ilə bağlı atribut məlumatlarınız istədiyiniz şəkildə təşkil olunmur - məsələn, əyalətə görə istədiyiniz zaman əhali məlumatlarına sahibsiniz. Verilənləri bir cədvəldə ümumiləşdirərək, say, orta, minimum və maksimum dəyərlər daxil olmaqla müxtəlif xülasə statistikası əldə edə və istədiyiniz məlumatı tam əldə edə bilərsiniz. ArcMap, xülasə statistikasını ehtiva edən yeni bir cədvəl yaradır. Daha sonra bu cədvəli bir təbəqənin atribut cədvəlinə qoşula bilərsiniz, beləliklə xülasə statistikası üçün onların xüsusiyyətlərini simvollaşdırmaq, etiketləmək və ya soruşmaq üçün.

    • Sıfır dəyərlər bütün statistik hesablamalardan xaric edilmişdir. Məsələn, 10, 5 və NULL ortalaması 7.5 - (10 + 5) / 2. Hesablama bu vəziyyətdə 2 olan statistik hesablamaya daxil olan dəyərlərin sayını qaytarır.
    • Sayma sahəsi (cnt_ prefiksi ilə adlandırılmışdır) statistik hesablamalara daxil olan dəyərlərin sayını tapacaqdır. Bu, sıfır dəyərlər xaricində hər bir dəyəri sayar. Bir sahədəki sıfır dəyərlərin sayını təyin etmək üçün sözügedən sahədəki sayma statistikasını və boşluqları olmayan fərqli bir sahədəki bir sayma statistikasından istifadə edin (məsələn, varsa OID), sonra iki dəyəri çıxartın.

    1. Xülasə etmək istədiyiniz sahənin sahə başlığını sağ vurun və Xülasə edin.
    2. Çıxış cədvəlinə daxil etmək istədiyiniz xülasə statistikasının yanındakı qutunu işarələyin.
    3. Yaratmaq istədiyiniz çıxış cədvəlinin adını və yerini yazın və ya göz düyməsini basın və iş sahəsinə gedin.
    4. Tamam düyməsini vurun.


    3 Cavablar 3

    @ Edmund cavabında yanaşmadan istifadə edərək nümunə məlumatları yaratmaq:

    Planlaşdırmaq üçün müxtəlif günləri fərqli rəngləndirmək üçün məlumatları DayName bölün:

    Bu cür suallar üçün istifadə etmək üçün hazırladığım ümumi "filtr məlumatları" funksiyam var.

    Daha sonra bir tarix nümunəsi yaratmaq üçün @Edmund yolundan istifadə edirəm:

    Daha sonra bunları Fold istifadə edərək müəyyən bir şəkildə birləşdirə bilərsiniz:

    Növbəti bir neçə ay üçün bazar ertəsi günü üçün sinir bozucu 8 - 11 vaxt çərçivəsi olmadan bütün məlumatları əldə edəcəksiniz. Tarixlərinizi müvafiq olaraq tənzimləyin.

    Bəzi kod və onunla getmək üçün bir verilənlər bazası təqdim etsəniz, suallarınız daha tez cavablandırılacaqdır.

    Bunu müəyyən bir həftə ərzində necə edəcəyimi düşündüm. İstisna etmək istədiyiniz həftə içi tarixləri və vaxtları yaradaraq bunu istənilən tarix aralığında ümumiləşdirə bilərsiniz.

    Göstərilən ikiyə düşən tarix vaxtları olan maddələr uyğunlaşacaq və silinəcəkdir.

    İnterval yaratmaq funksiyası ilə yeniləyin

    Başlama və bitmə tarixlərini günlər və vaxt dövrləri ilə birlikdə götürən funksiyanı istifadə edərək bir aralıq istisna aralığı yarada bilərsiniz.

    Bu funksiya məlumat alır, hər təyin olunmuş vaxt üçün həftənin ilk gününü tapır və başlanğıc və bitmə tarixi arasındakı bütün iş günü vaxt fasilələrini yaradır.

    Beləliklə, artıq yuxarıdan başlayaraq, daha böyük bir test verilənlər bazası yarada və ona yeni metodu tətbiq edə bilərik.

    Silinəcək maddələrin yerini də tuta bilərsiniz. Hansı ki, onlarla bir şey etmək istəsəniz faydalıdır.

    Bu tək bir səhv verir, amma tamamlayır. Hər kəs bu Mövqe səhvlərinin nəyə görə şərhlərdə qeyd etməsini xahiş edir.

    Ümid edirəm kömək edər. - Sol haşiyədəki yanındakı işarəni tıklayaraq cavabı qəbul etməyi unutmayın.


    Daşqın potensialının analizində Arc-GIS və OWA modelinin birləşdirilməsi (nümunə işi: Meşkinşəhr şəhəri)

    “Küçələr çaya çevrildi” bu son vaxtlar daha çox eşitdiyimiz və şəhərlərə axan sel sularına işarə etdiyimiz bir xəbər başlığıdır. Buna görə də, hazırkı araşdırma, qərar qəbuletmə qabiliyyətində yüksək çevikliyə sahib olan çox meyarlı analiz üsullarından biri olan və sifarişçiyə verilən orta ölçülü modeldən istifadə edərək Meşkinşəhr şəhərində (İranın şimal-qərbində yerləşən) daşqın potensialını təhlil etmək məqsədi daşıyır. tam risk alma və tam riskdən çəkinmə aralığında sıra çəkilərini seçərək fərqli ssenariləri qiymətləndirmək. Bu araşdırmada səkkiz meyar bu model üçün giriş olaraq istifadə edilmişdir. Kriteriyaların ilkin hazırlanması Arc GIS proqramı ilə yanaşı Arc Hydro və ArcCN-Runoff alətləri tərəfindən həyata keçirilmişdir. Sonra növbəti addımlarda məlumatlar IDRISI proqramına idxal edildi. Modelə 3 sıra ağırlıq (ANDness, ORness və Trade-off) təyin etməklə nəticələr əldə edildi. Nəhayət, modelin bu sahədəki əhəmiyyəti ortaya çıxdı və qiymətləndirmə sahəsi ilə seçilmiş sıra çəkilərinə mütənasib olaraq xəritələr şəklində nəzərdən keçirilmiş ərazi üçün daşqın potensialı təqdim edildi.

    Bu abunə məzmununun önizləməsidir, təşkilatınız vasitəsilə giriş.


    Müəssisə Münasibətləri Diaqramı (ERD)

    Bir Müəssisə Əlaqəsi Diaqramı (ERD) bir məlumat sistemi daxilində varlıqların qrafik təsvirini və qurumlar arasındakı əlaqələri yaradan bir məlumat modelləşdirmə üsuludur. Hər hansı bir ER diaqramı ekvivalent bir əlaqələndirmə cədvəlinə və hər hansı bir əlaqəli cədvələ bərabər bir ER diaqramı var. ER diaqramı, verilənlər bazası proqramlarının dizaynı, optimallaşdırılması və ayıklanmasında mühəndislərə əvəzsiz bir köməkdir.

    • Müəssisə, məlumatların toplandığı bir şəxs, obyekt, yer və ya hadisədir. Verilənlər bazası cədvəlinə bərabərdir. Varlıq atributlar adlanan xüsusiyyətləri ilə müəyyən edilə bilər. Məsələn, MÜŞTƏRİ varlığı ad, ünvan və telefon nömrəsi kimi xüsusiyyətlərə sahib ola bilər.
    • Münasibət varlıqlar arasındakı qarşılıqlı əlaqədir. Kimi bir fel istifadə edərək təsvir edilə bilər:
      • Müştəri yerlər sifariş.
      • Satış nümayəndəsi xidmət edir müştəri.
      • Sifariş ehtiva edir bir məhsul.
      • Anbar mağazalar bir məhsul.

      Bir varlıq əlaqəsi diaqramında varlıqlar düzbucaqlı olaraq göstərilir və əlaqələr düzbucaqlıları birləşdirən xətlər kimi təsvir olunur. Münasibətdə hansının 'bir' və ya 'ana' olduğunu, hansının 'çox' və ya 'uşaq' olduğunu göstərməyin bir yolu, şəkil 4-də olduğu kimi bir ox ucundan istifadə etməkdir.

      Bu, şəkil 5-də göstərildiyi kimi bir ERD yarada bilər:

      Başqa bir üsul, şəkil 6-da göstərildiyi kimi ox ucunu qarğa ayağı ilə əvəz etməkdir:

      İlgili xətt, təşkilatlar arasındakı əlaqəni rəqəmlər baxımından təyin edən əsaslılığı göstərmək üçün artırıla bilər. Müəssisə ola bilər isteğe bağlı (sıfır və ya daha çox) və ya ola bilər məcburidir (bir və ya daha çox).

      • Tək bar göstərir bir.
      • Bir cüt çubuq göstərir bir və yalnız bir.
      • Dairə göstərir sıfır.
      • Qarğa ayağı və ya ox ucu göstərir çox.

      Xəttlər və dairələr istifadə etməklə yanaşı, əsaslılıq aşağıdakı kimi rəqəmlərdən istifadə etməklə ifadə edilə bilər:

      • Təkbətək 1: 1 olaraq ifadə edildi
      • Sıfırdan çoxa 0: M olaraq ifadə edildi
      • Birdən çoxa 1: M şəklində ifadə edildi
      • Çoxdan çoxa N: M şəklində ifadə edildi

      Bu, şəkil 7-də göstərildiyi kimi bir ERD yarada bilər:

      Sadə dildə münasibətlər belə ifadə edilə bilər:

      • SATIŞ Rep-nin 1 nümunəsi 1-dən çox MÜŞTƏRİ üçün xidmət göstərir
      • MÜŞTƏRİ 1 nümunəsi 1-dən çox SİFARİŞ yerləşdirir
      • SİFARİŞİN 1 nümunəsi 1-dən çox MƏHSUL siyahısını verir
      • Anbarın 1 nümunəsi 0-dan çox məhsula qədər saxlayır

      Müəyyən bir dizaynın düzgün olub olmadığını müəyyən etmək üçün istifadə etdiyim sadə bir testdir:

      1. Yazılan qaydaları götür və diaqram qur.
      2. Diaqramı götürün və yazılmış qaydaları yenidən qurmağa çalışın.

      Addımdan (2) çıxma (1) addımla giriş ilə eyni deyilsə, bir şey səhvdir. Model real dünyada icazə verilməyən bir vəziyyətin yaranmasına imkan verirsə, bu ciddi problemlərə səbəb ola bilər. Modelin təsirli olması üçün gerçək dünyanın dəqiq bir nümayişi olmalıdır. Hər hansı bir qeyri-müəyyənliyin sürünməsinə icazə verilirsə, bunun fəlakətli nəticələri ola bilər.

      İndi məntiqi məlumat modelini tamamladıq, ancaq fiziki verilənlər bazasını qurmadan əvvəl bir neçə mərhələ olmalıdır:

      • Bütün varlıqlara atributlar (xassələr və ya dəyərlər) atayın. Axı, sütunsuz bir cədvəlin hər kəs üçün az faydası olacaqdır.
      • 'Normallaşma' olaraq bilinən bir prosesi istifadə edərək modeli zərifləşdirin. Bu, hər bir atributun lazımi yerdə olmasını təmin edir. Bu müddət ərzində yeni cədvəllər və yeni əlaqələr yaratmaq lazım ola bilər.

      Faktlar haqqında Faktlar: Veri Anbar Sistemlərində Fakt Cədvəllərinin təşkili

      Məlumat anbar sisteminizi (DWH) müəyyənləşdirmə prosesi başladı. İş tələblərinə uyğun olan müvafiq ölçü cədvəllərini qeyd etdiniz. Bu cədvəllər müəyyənləşdirir çəkirik, müşahidə edirik və tərəzi edirik. İndi müəyyənləşdirməliyik Necə biz ölçürük.

      Fakt masaları bu ölçmələri saxladığımız yerdir. Ölçü birləşmələrində toplana bilən iş məlumatlarına sahibdirlər. Ancaq həqiqət budur ki, cədvəllər o qədər də asanlıqla təsvir olunmur - özlərinə məxsus tatlar var. Bu yazıda fakt cədvəlləri ilə bağlı bəzi əsas sualları cavablandıracağıq və hər növün müsbət və mənfi tərəflərini araşdıracağıq.

      Fakt masaları nədir?

      Ən ümumi mənada, fakt cədvəlləri bir iş müddətinin ölçmələridir. Əsasən ədədi məlumatlara sahibdirlər və müəyyən bir hesabata deyil, bir hadisəyə cavab verirlər.

      Faktlar cədvəlinin ölçülərdən başqa ən vacib xüsusiyyəti də budur taxıl. Taxıl, müəyyən bir hadisə üçün hansı detal səviyyəsinin müşahidə olunduğunu təyin edir. (Bunu istifadəçilərin hesabları üçün çox kiçik detallara nəzarət edə biləcəyi mənasını verən "incə dənəli nəzarətlər" ifadəsi ilə müqayisə edin.)

      Fakt cədvəlinin taxılları nə qədər ətraflı olarsa, gözlənilməz iş tələblərini o qədər yaxşı həll edəcəkdir. Daha böyük taxılın mənfi cəhəti ondan ibarətdir ki, məlumatların saxlanması üçün daha çox fiziki yer tələb olunur. Həm də daha yavaş bir işə səbəb ola bilər.

      Fakt Masaları necə qurulur?

      Ümumi bir məlumat cədvəli iki əsas atribut qrupundan ibarətdir:

      Xarici düymələr özünü izah edir degenerasiya ölçüləri həm də bu qrupa aiddir. Degenerasiya edilmiş bir ölçü, üst ölçüsü cədvəli olmayan bir ölçü düyməsidir. Ölçü barədə bütün vacib məlumatlar onsuz da cədvəldə olduqda meydana gəlir. Nümunələr arasında müxtəlif nəzarət başlığı nömrələri, bilet nömrələri, sifariş nömrələri və s.

      Fakt cədvəlindəki tədbirlər (yəni ölçümlər və ya iş faktları) aşağıdakılar ola bilər:

      • Aşqar: istənilən ölçüdə ümumiləşdirilə bilər
      • Yarı qatqı: bəzi ölçülər üzrə ümumiləşdirilə bilər
      • Qeyri-qatqı: ümumiləşdirilə bilməz (məs. müxtəlif nisbətlər)

      Tədbirlər və xarici açarlardan başqa bir çox texniki sütun ola bilər. Texniki sütunlar modelin yoxlanılması və aşağı səviyyədə saxlanılması üçün faydalıdır. Faktlar cədvəlində əlavələr və ya yeniləmələr baş verdikdə işarələmək üçün istifadə olunan zaman damğaları texniki sütunun ümumi bir nümunəsidir.

      Ümumi bir məlumat cədvəlini göstərmək üçün çox sadə bir ulduz sxeminə baxaq:

      Bu modeldə üç ölçülü cədvəllə əhatə olunmuş tək bir məlumat masamız var. Fakt cədvəli üçün xarici açarlarımıza aşağıdakılar daxildir:

      • time_id - vaxt ölçüsü cədvəlinə istinad edir ( dim_time )
      • product_id - məhsul ölçüsü cədvəlinə istinad edir ( dim_məhsul )
      • store_id - mağaza ölçüsü cədvəlinə istinad edir ( dim_store )
      • pos_transaction - degenerasiya edilmiş bir ölçü. Bu, bizə lazım olan POS haqqında bütün məlumatlardır, buna görə də burada saxlaya bilərik. Başqa bir ölçü cədvəli qurmaq üçün heç bir səbəb yoxdur.

      Tədbir açar qrupumuz aşağıdakılardan ibarətdir:

      • sales_quantity - Bir mağazada bir dəfəyə bir məhsulun satışı. Bu tədbir əlavədir.
      • satış_qiyməti - Mağazada satılan əşyanın qiyməti. Bu, əlavə olmayan bir tədbirdir.

      Bir sıra daxil edildiyi vaxtı saxlayan time_inserted bir texniki sütun var.

      İndi həqiqət cədvəlləri haqqında ümumi bir düşüncəyə sahib olduğumuz üçün, onların fərqli ləzzətlərini araşdıracağıq. Dörd növ cədvəl var: əməliyyat, dövri anlıq görüntü, anlıq görüntü yığmaqəsassız məlumat masaları.

      Hər ləzzət, məlumat anbar sisteminin dəstəklədiyi əsas işi təmsil etmək məqsədi daşıyır. Bununla birlikdə, bu fərqli həqiqət cədvəllərinin işini araşdırmadan əvvəl, vacib bir ümumi amildən danışaq: seyrəklik və ya bir fakt cədvəlində saxlanılan məlumatların mütənasib miqdarı. Seyrəklik taxılla əlaqəlidir və sorğu performansına təsir göstərir.

      Fakt Cədvəlinin azlığı nədir?

      Seyrəkliyi hesablamaq üçün əvvəlcə doldurma nisbətini tapırıq - yəni ümumi hüceyrələrə boş olmayan hüceyrələrin sayını. Doldurma nisbətini anlamaq üçün mənbə cədvəlindəki sətirlərin sayını hər ölçü cədvəlindəki fərqli sətirlərin sayına bölün. Ardıcıllıq sonra hesablanır 1- (f), harada f = doldurma nisbəti.

      Misal:

      Tutaq ki satış_satisi_satisi iki mənbədən cədvəl: 100.000 sətirdən ibarət verilənlər bazası cədvəli və 20.000 sətirdən ibarət cədvəl. Bu sətirlər hər il doldurulur. Ölçü cədvəlləri bunlardır: tarixlər (365 sətir), məhsullar (100 sətir) və mağazalar (1000 sətir).

      1-(100,000 + 20,000)/(365*100*1,000) = 0.99671

      Bu fakt cədvəli seyrəkdir, çünki satırlarının 1% -dən azı sıfır olmayan dəyərlərə malikdir.

      Yaxşı bir baş barmağın qaydası budur ki, yuxarıda o qədər də seyrək olmayan 2% -dən çox seyrək bir şey hesab edirik.

      Əməliyyat Fakt Cədvəlləri

      Bu, ən sadə və ən çox yayılmış bir məlumat cədvəlidir. Bu tip taxıl, əməliyyat başına bir satır və ya əməliyyatda hər satır üçün bir satırdır. Əməliyyat faktları cədvəlinin dənəsi məkan və zaman nöqtəsidir. Ən kiçik biznes detallarına sahibdirlər.

      Bir əməliyyat baş verdikdə, bu barədə geniş bir kontekst tutulur. Bu kontekst, ölçü cədvəllərində çox detal yaradır, buna görə çox şey gözləyirik.

      Bir əməliyyat cədvəlinə bir sıra əlavə etdikdən sonra nadir hallarda, hətta yenidən nəzərdən keçirilir. Bu, bu tip cədvəllərin doldurulması üçün xüsusi texnikaları nəzərdən keçirməyimizə səbəb olur. Yeniləmələrin olmaması çox daha sadə bir ETL (çıxarış, çevirmə və yükləmə prosesi) deməkdir.

      Pros: Daha yüksək dənəvərlik, ətraflı iş fəaliyyətinin izlənilməsinə imkan verir.

      Eksiler: Sorğudakı performans problemləri. Zamanın sabit nöqtələrində trend davranışlarını şərh etməkdə çətinlik.

      Bir Əməliyyat Fakt Cədvəlinin Nümunəsi

      Tipik bir maliyyə ulduz sxeminə baxaq:

      Hər bir hesab əməliyyatı fakt cədvəlində qeyd olunur. Bu cədvəldəki məlumatlara aşağıdakılar daxildir:

      Qeyd: time_date göstərildiyi kimi təmsil olunur dim_time ölçü və texniki sütun nəzərə alınmır.

      Hesab sahibi pul qoyma və çıxarma kimi əməliyyatları tamamladıqca hər əməliyyatı qeyd edirik.

      Bu quruluşla aşağıdakı kimi suallara cavab verə bilərik: İşimiz gündə neçə əməliyyat keçir? Bir gündə çəkilən orta məbləğ nə qədərdir? və s.

      Periyodik Anlık Görüntü Masaları

      Periyodik anlıq cədvəllər işin əvvəlcədən təyin olunmuş müddətlərdə məcmu performansını qeyd edir. Anlık görüntülərin çəkilməsi üçün əvvəlcədən təyin edilmiş bir fasilə açardır: gündəlik, həftəlik, aylıq və s. Nəticələr dövri anlıq görüntülər cədvəlində qeyd olunur.

      Bu tip faktlar cədvəli bizə çox yol açır: bir müddət ərzində fəaliyyəti təsvir edən hər hansı bir məlumat daxil edə bilərik.

      Əməliyyatdan dövri cədvələ keçmək mümkündür. (SQL-də bununla məşğul olan bir neçə səliqəli alqoritm var, gələcək məqalələrdə görəcəyik.) Söhbət yalnız bir anlıq görüntüdən digərinə əməliyyatları əlavə etməkdən gedir. Əməliyyat faktı cədvəllərinin bir çox ölçüsü olduğu kimi, ani görüntü daha az ölçülərə də sahibdir.

      Pros: Performans qazancı, işin uzununa baxışı, fiziki kompaktlıq.

      Eksiler: Aşağı taxıl.

      Periyodik Anlık Görünüş Faktlar Cədvəlinin Nümunəsi

      Başqa bir maliyyə ulduz sxemini nəzərdən keçirək:

      Bu fakt cədvəlini və onun məlumatlarını əvvəlki nümunə ilə eyni mənbədən qurduğumuzu düşünək. Bu fakt cədvəlini əvvəlki fakt cədvəlindəki məlumatlardan da qura bilərdik.

      Bu vəziyyətdə hər anlıq tarixdə balance_amount göstərməliyik, snapshot granularity bir gündür. Gündəlik olaraq bütün xarici əməliyyatları cəmləşdiririk və depozit növü əlavə edilir və geri çəkilmə çıxılır. Nəticə:

      Qeyd: Time_date - də göstərildiyi kimi təqdim edirik dim_time ölçü və texniki sütun nəzərə alınmır.

      İndi bəzi ümumi biznes suallarına cavab verə bilərik: Bir ay ərzində bir müştəri neçə gün ərzində müsbət hesab balansı daşıyır? Hər ay müəyyən bir müştəri növünün orta qalığı nə qədərdir? və s.

      Periyodik Anlık Görüntülər Cədvəlinin yenidən təşkili

      Əvvəlki nümunədə göstərilən verilərdə bir azlıq hiss etdiniz. Bəzən anlıq görüntü cədvəli belə çox böyükdür və performans çaşqınlıq tələb edir. Bəs onda nə etməli? Anlık görüntü cədvəlimizi daha kompakt bir şeyə çevirə bilərik.

      Date_from və date_to kimi iki yeni sütun əlavə etdik. Onlar balans_ məbləğinin etibarlı olduğu dövrü təmsil edirlər.

      Bu cədvəldəki məlumatlar belə görünür:

      Balans məbləği hər dəfə dəyişdikdə, dövrü bağlayırıq və yenisini açırıq.

      Date_to sütununa daxil olmayan bir zaman ayırıcı daxil etdiyinə diqqət yetirin. Veriləri soruşduqda bunu nəzərə almalıyıq. Bir də maraqlı tarix tapırıq - 31/12/9999. Bu tarix, son sıranın bilinən son balans olduğunu göstərir. Balans dəyişdikdə yeniləyəcəyik.

      Aşağıda, müəyyən bir tarixdə (: tarix) anlıq görüntüsünü soruşmaq üçün istifadə etdiyimiz SQL-i görə bilərik.

      Snapshot Fakt Masalarının toplanması

      Toplanan anlıq görüntü cədvəli ən az yayılmış növdür, eyni zamanda ən maraqlı və çətin olanıdır. Bu cədvəl növünü müəyyən bir başlanğıcı və sonu olan prosesləri təmsil edərkən istifadə edirik və istifadəçilər boru kəməri və iş axını təhlili aparmalı olduqda ən uyğun gəlir.

      Yığma anlıq cədvəllər ümumiyyətlə hər birində iş axınında mühüm bir mərhələyə cavab verən çoxsaylı xarici xarici açarlara malikdir. Və bu tip cədvəldə çəkilən proseslərin başlanğıcı və sonu olduğu halda, aralıq addımlar da qeyd olunur.

      Əməliyyat faktı cədvəllərinin hər sətirlə əlaqəli bir neçə tarixi ola bilər, toplanan fakt cədvəli, sətir ilk dəfə yüklənəndə tarix dəyərlərinin çoxunun bilinməməsinə imkan verir. Bu, cədvəllər arasında unikaldır və ölçülü modelləşdirmədə anomaliyalara - natamam ölçülərə səbəb ola bilər.

      Bunu fakt cədvəlindəki eksik sahələrə və müvafiq ölçü cədvəlinə standart bir dəyər əlavə edərək həll edirik. Xüsusi iş axınlarını ehtiva edən sətri yenidən nəzərdən keçirərkən bu cədvəllərlə işləmək üçün fərqli bir ETL növü tətbiq etməliyik.

      Pros: Cədvəllərin və iş axını analizlərinin kompleks analizini təmin edir.

      Eksiler: Yüksək ETL mürəkkəbliyi.

      Yığan Anlık Görünüş Faktlar Cədvəlinin Nümunəsi

      Bu nümunədə təsəvvür edin ki, ilkin müraciətdən son maliyyələşdirməyə qədər borc təsdiqetmə müddətimizin effektivliyini təhlil etməliyik. Aydındır ki, əvvəlcə məlumatlarımızı hazırlamalıyıq!

      Kredit təsdiqetmə müddətimiz dörd mərhələdən ibarətdir:

      1. Bir bank müştərisindən kredit müraciəti
      2. Kreditin təsdiqlənməsi üçün lazım olan tam sənədlərin təqdim edilməsi (qiymətləndirmə, kredit statusu və s.)
      3. Daha yüksək vəzifəli bir bank işçisindən kredit müraciətinin təsdiqlənməsi
      4. Kreditin maliyyələşdirilməsi

      Bizim fakt cədvəlimizdəki bir sıra bu prosesin bir nümunəsini təmsil edir.

      Məlumat cədvəlində gördüyümüz kimi, bütün iş axınlarımız tam gələcək fəaliyyətlər deyil, bizi fakt cədvəlinə yenidən baxmağa və məlumatlarımızı yeniləməyə məcbur edəcəkdir. Bu və digər cədvəl növləri arasındakı əsas fərq budur.

      Bu tip məlumat cədvəli ilə cavab verə biləcəyimiz bəzi suallar: Kreditin təsdiqlənməsi prosesindəki darlıq haradadır? Buna nə səbəb olur? Uçtan uca təsdiq üçün lazım olan orta müddət nə qədərdir? və s.

      Faktlar cədvəlindəki məlumatlara baxaq. Ekranı iki cədvələ ayıracağıq:

      Verilənlərə baxanda qəribə bir tarix görürük: 01.01.1900. Bu tarix a itkin və ya "hələ doldurulmamış" tarix. Əsas məlumatların itkin düşməsi üçün standart qiymətə sahib olmaq daha praktikdir, belə ki, toplama apararkən anormallıq yaşamırıq.

      Bu məlumatlardan bəzi nəticələr də çıxara bilərik. Daha böyük kreditlərin işlənməsi üçün daha çox vaxt lazımdır. Bu normaldır, çünki daha çox sənəd və təhlükəsizlik yoxlamasına ehtiyacları var. Kiçik kreditlər prosesi çox daha sürətli tamamlayır.

      Faktsız Fakt Masaları

      Bu nəzərə çarpmayan fakt cədvəlinə məlumat anbarı modelləşdirmə dünyasında da rast gəlmək olar. Əsassız həqiqət cədvəlinin heç bir ölçüsü yoxdur, yalnız ölçülü cədvəllərin xarici düymələrini saxlayır. Bu məlumatlar müvafiq iş suallarını cavablandırmaq üçün kifayətdir.

      Pros: Sadəlik

      Eksiler: Məhdud istifadə

      Faktsız Faktlar Cədvəlinin Nümunəsi

      Aşağıdakı nümunədə əsassız bir məlumat cədvəlinin yer aldığı bir ulduz sxemini görürük. Şema, kursları, şəraiti, tarixləri və şöbələri təmsil edən dörd ölçülü cədvəllə tələbə davamiyyətini izləmək üçün istifadə olunur.

      Bu sxemlə aşağıdakı kimi suallara cavab tapa bilərik: Ötən ay neçə şagird bir dərsə qatıldı? Bu il ən az iştirak edən kurs hansıdır? Hansı obyekt istifadə olunmur? və s.

      Sadə bir sorğu son suala cavab verə bilər. Kod:

      Cavabımız sorğunun birinci sətrində qaytarılır.

      Fakt masaları, məlumat anbar dünyasının ətidir. Ölçüləri bir çox terabayta bərabər ola bilər və bir məlumat anbarında ən çox yer tuturlar. Əslində cədvəl dizayn prosesində bir səhv anbar inkişaf etdikcə həllini asanlaşdırmayan bir çox problem yaradır!

      Bir məlumat cədvəlindən digərinə məlumatları yenidən təşkil etmək mümkündür. Bunu etmək üçün texnikaları yaxın bir yazıda araşdıracağıq. Fərqli cədvəl növləri ilə əlaqəli təcrübələriniz nədir? Onları yeni və maraqlı bir şəkildə qarışdırmağı bacardınız? Etdinizsə, mənə bildirin.


      (1) Ümumi Axtarış Cədvəlləri

      Bir neçə il əvvəl Don Peterson SQL Server Central üçün bir məqalə yazdı ki, ümumiyyətlə kod cədvəli və ya & # 8220 icazə verilən cədvəl & # 8221 (AVT) adlanan müxtəlif məlumatlar növləri üçün tək bir axtarış cədvəli yaratmağın ümumi bir tətbiqini izah etdi. Bu cədvəllər kütləvi olur və əlaqəsiz bir məlumat yığınına sahibdirlər. Müvafiq olaraq, Don bu cədvəlləri Kütləvi Birləşdirilmiş Kod Açar (MUCK) cədvəlləri adlandırdı (Peterson, 2006) Bir çox başqaları illər keçdikcə bu barədə yazsalar da, bu ad belə bir quruluşla əlaqəli bacarıqsızlığı ən təsirli şəkildə tutur.

      Bir çox hallarda, bu cədvəllərdəki məlumatlar VARCHAR (n) olur, lakin bu dəyərlərin həqiqi məlumat növü arasında dəyişən bir şey ola bilər. TAM üçün TARİX VAXT. Bunlar əsasən nümunə cədvəlinin bir formasını ala bilən üç sütunda təmsil olunur (Şəkil 1):

      Buradakı əsas, buradakı nümunədəki hər bir varlığın oxşar xüsusiyyətlər dəstinə sahib olmasıdır və buna görə də onu tək bir cədvələ yerləşdirmək yaxşıdır. Axı bu daha az cədvəllə nəticələnir, verilənlər bazasını daha sadə tutun, düzdür?

      Dizayn prosesi əsnasında verilənlər bazası dizayneri bir neçə kiçik cədvəllə qarşılaşa bilər (məsələn, bunlar sifarişlərin vəziyyəti & # 8217, & # 8216 prioritet & # 8217, & # 8216location kimi fərqli qurum tiplərini təmsil edən cədvəllərdir. kodlar & # 8217, & # 8216 anbar növləri & # 8217 və s.).

      Daha sonra sütunlarının bənzərliyi səbəbindən hamısını birləşdirməyə qərar verir. Artıq cədvəlləri ləğv etdiyini və daha az cədvələ sahib olacağını verilənlər bazasını sadələşdirdiyini düşünür, yerdən qənaət edəcək, səmərəliliyi artıracaq və s. İnsanlar bunun tələb olunan SQL-in mürəkkəbliyini azaltdığını düşünürlər, çünki tək bir gündəlik / saxlanılan prosedur ola bilər. hər hansı bir məlumat növünə daxil olmaq üçün yazılmışdır.

      • Birincisi, dəqiq məlumat məhdudiyyətlərini təmin etmək vasitələrini itirirsiniz. Fərqli şəxsləri tək bir cədvəldə birləşdirərək, müəyyən bir kateqoriyanın dəyərlərini məhdudlaşdırmaq üçün heç bir bildiriş vasitəniz yoxdur. Əlavə etmədən sadə xarici açar məhdudiyyətləri tətbiq etməyin asan bir yolu yoxdur kateqoriyalı bütün istinad düymələrində.
      • İkincisi, hər bir məlumat tipini bu tip ümumi axtarış cədvəli ilə bir sətir kimi təmsil etmək məcburiyyətindəsiniz. Fərqli növlərin bu cür qarışması problem yarada bilər, çünki yoxlama məhdudiyyətləri böyük kod müdaxiləsi olmadan tətbiq edilə bilməz. Nümunədə verdiyimiz endirim kodu CHAR (3) və yer_nbr INT (4) olduqda & # 8216cod & # 8217 sütununun məlumat tipi Ümumi Axtarış cədvəlində nə olmalıdır?
      • Üçüncüsü, özünüzü sərtliyə və sonrakı mürəkkəbliyə bağlayırsınız. Soruşmaq istəyə bilərsiniz, belə sadə və çevik bir dizayn necə sərt ola bilər? Adi bir axtarış cədvəli sxeminə dair nümunəmizi nəzərə alaraq, sadəcə & # 8216LocationCode & # 8217 cədvəlinin & # 8216region & # 8217 ola biləcək başqa bir sütun daxil olduğunu düşünün. & # 8216DiscountType & # 8217 cədvəlinə status əlavə etməyin nəticələri barədə nə demək olar? Yalnız bir kateqoriyanı dəyişdirmək üçün yeni sütunun onlara aid olub-olmamasından asılı olmayaraq cədvəldəki bütün satırlara yol açmağı düşünməlisiniz. Bəs mürəkkəblik? Tez-tez ümumi axtarış cədvəllərindən istifadə etmək fikri, tək bir cədvəldə "çox şey" əks etdirən varlıqları ümumiləşdirmək fikrindən irəli gəlir.
        Bunu yaxşı dizayn edilmiş bir cədvəlin eyni tipli varlıqlar və ya münasibətlər haqqında bir sıra faktları təmsil etdiyi əsas qayda ilə müqayisə edin. Varlıqların ümumiləşdirilməsindəki problem, bir cədvəlin əlaqəsiz bir sıra yığınına çevrilməsidir: Nəticə etibarilə mənanın dəqiqliyini itirirsiniz, ardınca qarışıqlıq və çox vaxt istənməyən mürəkkəblik.
        DBMS-in əsas məqsədi məlumatların necə təmsil olunduğunu və idarə olunduğunu tənzimləyən qaydaları tətbiq etməkdir. Verilənlər bazası dizaynı kontekstində & # 8220generalize & # 8221, & # 8220reuse & # 8221 vs. şərtlərini qarışdırmadığınızdan əmin olun ki, dizayn olunanlar üzərində heç bir nəzarətiniz yoxdur.
      • Dördüncüsü və nəhayət, fiziki tətbiq məsələləri ilə qarşılaşırsınız. Məntiqi dizayn fiziki tətbiqetmədən tamamilə ayrı hesab edilsə də, SQL Server kimi kommersiya DBMS məhsullarında fiziki tətbiqetmələr məntiqi dizayndan və əksinə təsir edə bilər. Böyük müəssisələrdə bu cür ümumi axtarış masaları yüz minlərlə sıraya qədər böyüyə bilər və ağır fiziki verilənlər bazası tənzimləməsini tələb edir. Bu cür böyük masalarla kilidləmə və paralellik məsələlərinə də nəzarət edilməlidir. Fiziki saxlamada müəyyən bir sıra dəstinin daxili təmsilçiliyi, dəyərlərin SQL sorğuları ilə nə dərəcədə səmərəli bir şəkildə əldə edilə biləcəyini müəyyən edən bir amil ola bilər.

      Ümumi bir tövsiyə olaraq, uyğun sütunları düzgün növləri, məhdudiyyətləri və istinadları ilə müəyyənləşdirərək hər bir məntiqi varlıq üçün hər zaman ayrı cədvəllərdən istifadə edin. & # 8220dynamic code & # 8221-i hədəfləmədən cədvəllərdəki məlumatlara daxil olmaq və onları idarə etmək üçün sadə rutinlər və prosedurlar yazmaq daha yaxşıdır.

      Qısa müddətli müvəqqəti düzəliş kimi və ya uzun müddətli bir həll yolu kimi istifadə olunsa da, ümumi axtarış masalarının həssas verilənlər bazası dizaynında yeri yoxdur. Tətbiqə əsaslanan bütövlük bəzən inkişaf etdiricilər tərəfindən bəyənilsə də, DBM-lərin hələ də bütün bütövlüyün mərkəzləşdirilmiş qüvvəsi olmalıdır. Because the foremost goal in a given database design is to preserve data integrity and logical correctness, common lookup tables are one of the worst kind of mistakes that one can make..


      Combining rows in an attribute table based on field - Geographic Information Systems

      This query will select all those rows from the table Students where the value of the field ROLL_NO lies between 20 and 30.
      IN
      The IN operator is used to check for values contained in specific sets.
      Misal üçün,

      • LOWER: The purpose of this function is to return the string in lowercase. It takes a string as argument and returns the string by converting it into lower case.
        Syntax:
      • UPPER:The purpose of this function is to return the string in uppercase. It takes a string as argument and returns the string by converting it into uppercase.
        Syntax:
      • INITCAP:The purpose of this function is to return the string with first letter in uppercase and rest of the letters in lowercase.
        Syntax:
      • Insert data or rows in database
      • Delete data from database
      • Retrieve or fetch data
      • Update data in database.
      • INNER JOIN: The INNER JOIN keyword selects all rows from both the tables as long as the condition satisfies. This keyword will create the result-set by combining all rows from both the tables where the condition satisfies i.e value of the common field will be same.
      • LEFT JOIN:This join returns all the rows of the table on the left side of the join and matching rows for the table on the right side of join. The rows for which there is no matching row on right side, the result-set will contain null. LEFT JOIN is also known as LEFT OUTER JOIN
      • RIGHT JOIN:RIGHT JOIN is similar to LEFT JOIN. This join returns all the rows of the table on the right side of the join and matching rows for the table on the left side of join. The rows for which there is no matching row on left side, the result-set will contain null. RIGHT JOIN is also known as RIGHT OUTER JOIN.
      • FULL JOIN: FULL JOIN creates the result-set by combining result of both LEFT JOIN and RIGHT JOIN. The result-set will contain all the rows from both the tables. The rows for which there is no matching, the result-set will contain NULL values.

      Bu məqalə töhfə verir Harsh Agarwal. GeeksforGeeks'i sevirsinizsə və töhfə vermək istəsəniz, hisse.geeksforgeeks.org istifadə edərək məqalə də yaza və ya məqalənizi [email protected] ünvanına göndərə bilərsiniz. GeeksforGeeks ana səhifəsində görünən məqalənizə baxın və digər Geekslərə kömək edin.

      Xahiş edirəm səhv bir şey tapsanız və ya yuxarıda müzakirə olunan mövzu haqqında daha çox məlumat paylaşmaq istəsəniz şərh yazın.

      Diqqət oxucu! İndi öyrənməyi dayandırma. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course tələbə dostu bir qiymətə və sənayeye hazır olun.