AXV

SCD va surrogate kalitlar

SCD Type 1 va Type 2, surrogate kalit, tarix saqlash, joriy qator

10-sinfBI & ML6-hafta · 16-dars

Bugun nimalarni o'rganamiz?

SCD nima

Dimension o'zgaradi

Type 2 amalda

Tarix saqlash

Surrogate kalit

Nega kerak

Takrorlash

VIEW ma'lumotni saqlaydimi?

VIEW — saqlangan so'rov.
01

SCD nima

Dimension o'zgaradi

Direktor almashdi

Eski: Karimov Type 1:ustiga yoz Type 2:yangi qator Tarix saqlandi Type 1 tarixni yo'qotadi, Type 2 saqlaydi

Type 1: ustiga yozish


UPDATE dim_maktab
SET direktor = 'B. Aliyev'
WHERE maktab_id = 101;
-- Natija: faqat 'B. Aliyev'. 'A. Karimov' yo'q bo'ldi.
  
Type 1 ni yozuv xatosini tuzatishda ishlating. Tarix kerak bo'lsa, Type 1 xavfli: eski hisobotlar jimgina o'zgaradi.

Mini-test

Type 1 da eski qiymatga nima bo'ladi?

Type 1 tarixni saqlamaydi.
02

Type 2 amalda

Tarix saqlash

Type 2 qadamlari

Joriy qatorniyoping Yangi qatorqo'shing Yangisurrogate kalit Fakt to'g'riqatorga Natural kalit bir xil, surrogate kalit yangi

Type 2 yangilash


UPDATE dim_maktab
SET tugadi = '2024-09-01', joriy = 0
WHERE maktab_id = 101 AND joriy = 1;

INSERT INTO dim_maktab (maktab_id, nomi, direktor, boshlandi, tugadi, joriy)
VALUES (101, '5-maktab', 'B. Aliyev', '2024-09-01', '9999-12-31', 1);
  
Ikki amalni bitta tranzaksiyada bajaring: yarim bajarilsa, jadvalda ikkita joriy qator yoki bitta ham joriy qator qolmaydi.

Mini-test

Type 2 da joriy qatorni qaysi ustun ko'rsatadi?

joriy bayrog'i va tugadi = 9999-12-31.
03

Surrogate kalit

Nega kerak

Kalitlar

maktab_id(natural) maktab_key(surrogate) Fakt:maktab_key JOIN tezva aniq Surrogate kalit versiyani aniq belgilaydi

Tarixni JOIN bilan ko'rish


SELECT m.direktor, f.yil, f.oquvchilar
FROM fakt f
JOIN dim_maktab m ON m.maktab_key = f.maktab_key
ORDER BY f.yil;
-- A. Karimov | 2023 | 640
-- B. Aliyev  | 2024 | 655
  
Joriy holatni olish uchun WHERE joriy = 1 yozing, aks holda bir maktab bir necha marta chiqadi.

Mini-test

Type 2 da birlamchi kalit nima?

Natural kalit takrorlanadi.

Type 1 va Type 2

Type 1

Ustiga yozish: oddiy, joy tejaydi, tarix yo'q
VS

Type 2

Yangi qator: tarix saqlanadi, jadval kattalashadi

Tarix kerak bo'lsa — Type 2.

Atamalar. Bosing

SCD

bosing

Sekin o'zgaruvchi dimension

Type 2

bosing

Yangi qator bilan tarix saqlash

Surrogate kalit

bosing

Omborning sun'iy kaliti

Natural kalit

bosing

Manbadagi identifikator

SCD tanlash

1. Savol

Tarix hisobotga kerakmi?

2. Tanlov

Yo'q: Type 1; ha: Type 2.

3. Tekshiruv

JOIN bilan eski yilni tekshiring.

SCD solishtirish

BelgiType 1Type 2
Tarixyo'qbor
Qatorbittaversiya bo'yicha
Murakkablikoddiyo'rtacha
Qachonxatoni tuzatishtarix muhim bo'lsa
Kalitnatural yetadisurrogate shart

Pastga bosing: tekshirish

Type 2 ni sinash

  1. dim_maktab ga bitta qator qo'shing.
  2. Direktorni Type 2 usulida almashtiring.
  3. JOIN bilan eski va yangi yil direktorini chiqaring.

Type 1 dan Type 2 ga


UPDATE dim_maktab SET direktor = 'B. Aliyev'
WHERE maktab_id = 101;
  

Type 1 dan Type 2 ga


UPDATE dim_maktab SET tugadi = '2024-09-01', joriy = 0
WHERE maktab_id = 101 AND joriy = 1;
INSERT INTO dim_maktab (...) VALUES (...);
  

SCD raqamlarda

0
ta asosiy tur: Type 1 va Type 2
0
ta Type 2 ustuni: boshlandi, tugadi, joriy
0
ta joriy qator har maktab uchun

Type 2 da har natural kalitga bitta joriy qator.

Amaliy topshiriq 20 daqiqa

OsonSCD turini tanlang: Qaysi holatda Type 1, qaysida Type 2: familiyadagi imlo xatosi; direktor almashishi?
OsonJadvalni yarating: Type 2 uchun dim_maktab ni yarating.
O'rtaType 1: 101-maktab direktorini Type 1 bilan B. Aliyev ga o'zgartiring.
O'rtaType 2: Direktorni Type 2 bilan 2024-09-01 sanasida almashtiring.
QiyinTarixni JOIN qiling: fakt bilan JOIN qilib har yil direktorini chiqaring.
BonusJoriy qatorlar: Faqat joriy direktorlar ro'yxatini chiqaring.

Dars xulosasi

SCD

Type 1 — ustiga yozish; Type 2 — yangi qator.

Type 2

boshlandi, tugadi, joriy; UPDATE + INSERT.

Kalit

Surrogate kalit versiyani ajratadi.

Uyga vazifa: direktor almashinuvi uchun Type 1 va Type 2.

Keyingi dars: Data Warehouse (DWH)

tushuncha, arxitektura, afzalliklari

6-hafta · 17-dars