- Sadə şərtləri müqayisə işarələri ilə yazmaq və hər şərti ödəyən yazıları tapmaq
- AND, OR, NOT və mötərizəli mürəkkəb sorğunu çoxluqlarla addım-addım hesablamaq
*və?maskalarını mətn sahələrində tətbiq etmək- Sorğudan və çeşidləmədən sonra yazının yeni yerini müəyyən etmək
Onlayn mağazada «qiyməti 50 manatdan az» və «reytinqi 4-dən yuxarı» süzgəclərini seçirsən — və minlərlə məhsuldan cəmi bir neçəsi qalır. Bu, sorğudur: VBİS hər yazını şərtlə yoxlayır və yalnız uyğun gələnləri göstərir.
Qəbul imtahanında hər variantda sorğuya aid bir tapşırıq olur: sorğuya neçə yazının cavab verdiyini, hansı nömrəli yazıların seçildiyini və ya çeşidləmədən sonra yazının yerini necə dəyişdiyini tapmaq lazımdır. Cədvəllərin quruluşu «Verilənlər bazası: modellər, VBİS və əlaqəli cədvəllər» dərsində izah olunub.
Sorğu və sadə şərt
VBİS-in obyekti: bazadan şərtə uyğun yazıları seçən (axtaran), lazım olduqda onları çeşidləyən və nəticəni yeni cədvəl kimi göstərən əmr. Sorğu verilənləri dəyişmir, yalnız seçir.
«sahə — müqayisə işarəsi — qiymət» şəklində yazılır: Riyaziyyat > 18, Status = «gecikir». Mətn qiymətləri dırnaqda yazılır və hərfbəhərf müqayisə olunur.
| İşarə | Mənası | Nümunə |
|---|---|---|
| = | bərabərdir | Sinif = 10 |
| <> | bərabər deyil | Platforma <> 2 |
| < | kiçikdir | Yaş < 16 |
| > | böyükdür | Bal > 90 |
| <= | kiçik və ya bərabərdir | Qiymət <= 50 |
| >= | böyük və ya bərabərdir | Tarix >= 70 |
| № | Ad | Riyaziyyat | Fizika | İnformatika |
|---|---|---|---|---|
| 1 | Aysel | 18 | 12 | 25 |
| 2 | Murad | 25 | 21 | 14 |
| 3 | Leyla | 12 | 19 | 22 |
| 4 | Elvin | 20 | 25 | 17 |
| 5 | Nigar | 9 | 16 | 20 |
| 6 | Rəşad | 23 | 11 | 24 |
| 7 | Günay | 15 | 22 | 19 |
«Olimpiada» cədvəlində hansı nömrəli yazılar şərtə cavab verir?
1) Riyaziyyat > 18 2) Fizika <= 16 3) İnformatika <> 22 4) Riyaziyyat >= 18
Həllini göstərHəllini gizlət
1) 25, 20, 23 → {2, 4, 6}. 18 > 18 yalandır, ona görə 1 yoxdur.
2) 12, 16, 11 → {1, 5, 6}. 16 <= 16 doğrudur.
3) 22-dən fərqli olanların hamısı → {1, 2, 4, 5, 6, 7}.
4) Sərhəd daxildir: 18, 25, 20, 23 → {1, 2, 4, 6}.
Mürəkkəb şərtlər: AND, OR, NOT
Sadə şərtlər məntiq əməlləri ilə birləşir — «Məntiq əməliyyatları və məntiq elementləri» dərsindəki VƏ, VƏ YA, DEYİL. DİM tapşırıqlarında onlar ingiliscə yazılır: AND, OR, NOT. Hər sadə şərtə uyğun yazıların çoxluğunu tapsaq, mürəkkəb şərt çoxluqlar üzərində əməllərə çevrilir. M(A) — A şərtinə cavab verən yazıların nömrələri çoxluğudur.
- M(A)A şərtinə cavab verən yazıların nömrələri
- ∩kəsişmə: hər iki çoxluqda olanlar
AND — hər iki şərt ödənməlidir: ortaq nömrələr qalır.
- ∪birləşmə: ən azı bir çoxluqda olanlar
OR — ən azı bir şərt ödənməlidir: nömrələr birləşdirilir, təkrar yazılmır.
- Ucədvəlin bütün yazıları
- \fərq: U-dan M(A)-nı çıxırıq
NOT — şərt ödənməyən yazılar qalır.
Nümunələr «Olimpiada» cədvəlinə görə: (Riyaziyyat > 18) AND (İnformatika >= 20) → {2, 4, 6} ∩ {1, 3, 5, 6} = {6}; (Riyaziyyat > 18) OR (Fizika > 20) → {2, 4, 6} ∪ {2, 4, 7} = {2, 4, 6, 7}; NOT (Fizika > 15) → {1, 6}. Əməllərin sırası: əvvəl mötərizələr (içəridən çölə), sonra NOT, sonra AND, ən sonda OR. DİM sorğularında mötərizələr adətən qoyulur: ən içəridəki mötərizədən başla, mötərizə olmayan yerdə isə NOT → AND → OR sırasına əməl et. Eyni məntiq internetdə axtarışda da işləyir — bax: «İnternetdə axtarış: axtarış sistemləri və sorğular».
- 1Sadə şərtləri ayır
Sorğudakı hər sadə şərt üçün yazıların çoxluğunu yaz.
- 2NOT-u tətbiq et
NOT olan şərtdə qalan yazıları götür — və ya işarəni əksinə çevir.
- 3Mötərizələri içəridən aç
AND → kəsişmə, OR → birləşmə; hər ara nəticəni ayrıca yaz.
- 4Cavabı götür
Son çoxluq — seçilən yazıların nömrələri, onun elementlərinin sayı — yazıların sayıdır.
«Olimpiada» cədvəlinə
(((Riyaziyyat < 20) AND NOT (Fizika > 18)) OR ((İnformatika > 21) AND (Fizika > 15)))
sorğusu tətbiq edilərsə, hansı nömrəli yazılar seçilər?
A) 1, 5 B) 1, 3, 5 C) 3, 5, 6 D) 1, 3, 5, 6 E) 3
Həllini göstərHəllini gizlət
2) İnformatika > 21 → {1, 3, 6}; Fizika > 15 → {2, 3, 4, 5, 7}. AND → {3}.
3) OR: {1, 5} ∪ {3} = {1, 3, 5}.
Doğru cavab: B) 1, 3, 5.
- A, Bistənilən şərtlər
De Morqan qanunları: NOT mötərizəyə daxil olanda AND ↔ OR yer dəyişir.
«Olimpiada» cədvəlində neçə yazı NOT (NOT (Riyaziyyat > 15) AND (İnformatika < 20)) OR NOT (Fizika > 20) sorğusuna cavab verir?
Həllini göstərHəllini gizlət
2-ci yol (De Morqan): NOT (NOT A AND B) = A OR NOT B, yəni (Riyaziyyat > 15) OR (İnformatika >= 20) → {1, 2, 4, 6} ∪ {1, 3, 5, 6} = {1, 2, 3, 4, 5, 6} — nəticə eynidir.
Cavab: 6 yazı.
- 1.NOT (Bal > 45) ⇔ Bal 45
- 2.NOT (Yaş >= 16) ⇔ Yaş 16
- 3.NOT (Şəhər = «Bakı») ⇔ Şəhər «Bakı»
- 4.NOT (Qiymət <= 20) ⇔ Qiymət 20
Maskalar: * və ?
Mətn sahəsində bəzən dəqiq qiyməti yox, maskanı — nümunəni axtarırıq. Maskada iki xüsusi işarə var: * — istənilən sayda (sıfır da ola bilər) istənilən simvol, ? — düz bir istənilən simvol. DİM-in yazılışında maska bərabərlik işarəsindən sonra dırnaqda yazılır: İstiqamət = «*n».
| Maska | Mənası | Uyğundur | Uyğun deyil |
|---|---|---|---|
*n | n ilə bitir | Riverton, Mapleton | Sandford, Oakdale |
M* | M ilə başlayır | Milltown, Mapleton | Riverton |
*ll* | içində ll var | Milltown, Hillside | Lakeside |
?a* | ikinci simvolu a | Oakdale, Lakeside | Milltown |
1?? | 1 ilə başlayan 3 simvol | 101, 150 | 1150, 205 |
| № | Reys | İstiqamət | Platforma | Status |
|---|---|---|---|---|
| 1 | 101 | Riverton | 2 | vaxtında |
| 2 | 205 | Oakdale | 1 | gecikir |
| 3 | 310 | Milltown | 3 | vaxtında |
| 4 | 118 | Mapleton | 2 | gecikir |
| 5 | 222 | Lakeside | 1 | vaxtında |
| 6 | 407 | Sandford | 3 | gecikir |
| 7 | 150 | Hillside | 2 | vaxtında |
| 8 | 333 | Brighton | 1 | vaxtında |
«Avtovağzal» cədvəlinə ((Status = «gecikir» OR Platforma = 1) AND İstiqamət = «*n*») sorğusu tətbiq edilərsə, neçə yazı seçilər? Maska «*n» olsaydı, cavab necə dəyişərdi?
Həllini göstərHəllini gizlət
2) «
*n*» — adında n hərfi olanlar: Riverton, Milltown, Mapleton, Sandford, Brighton → {1, 3, 4, 6, 8}.3) AND → {4, 6, 8} — 3 yazı.
4) «
*n» — yalnız n ilə bitənlər: {1, 3, 4, 8} (Sandford çıxır). Onda {2, 4, 5, 6, 8} ∩ {1, 3, 4, 8} = {4, 8} — 2 yazı.Çeşidləmə
Yazıları bir və ya bir neçə sahənin qiymətinə görə müəyyən sıraya düzmək. Artma sırası: ədədlər kiçikdən böyüyə, mətn əlifba sırası ilə (A → Z), tarixlər əvvəlkidən sonrakına. Azalma sırası — əksinə. Çeşidləmə yazıları və onların sayını dəyişmir, yalnız sırasını dəyişir.
İki sahəyə görə çeşidləmədə yazılar əvvəlcə birinci sahəyə görə düzülür; birinci sahədə qiymətləri eyni olan yazılar isə ikinci sahəyə görə sıralanır. Məsələn, Bakı, Gəncə, Lənkəran, Şəki artma sırası ilə düzülmüş şəhərlərdir. DİM-in ən çətin sorğu tapşırığı süzgəc və çeşidləməni birləşdirir:
- 1Sorğunu tətbiq et
Seçilən yazıları əvvəlki sırası ilə yeni cədvələ yaz.
- 2Köhnə yeri qeyd et
Lazım olan yazının bu yeni cədvəldə neçənci sətirdə olduğunu yaz: k.
- 3Çeşidlə
Nəticə cədvəlini göstərilən sahəyə görə artma və ya azalma sırası ilə düz.
- 4Yeni yeri müqayisə et
Yeni yer m olsun: k − m > 0 — «k − m sətir yuxarı», k − m < 0 — aşağı, k = m — dəyişməz.
| № | Ad | Riyaziyyat | Fizika | Kimya |
|---|---|---|---|---|
| 1 | Kamran | 72 | 81 | 64 |
| 2 | Səbinə | 88 | 69 | 90 |
| 3 | Orxan | 65 | 77 | 71 |
| 4 | Fidan | 90 | 85 | 58 |
| 5 | Tural | 70 | 62 | 83 |
| 6 | Günay | 59 | 74 | 76 |
«Sınaq» cədvəlinə ((Riyaziyyat >= 70 OR Kimya > 75) AND Fizika > 65) sorğusu tətbiq edildikdən sonra alınan cədvəl Kimya sahəsinə görə artma sırası ilə çeşidlənir. Fidan haqqındakı yazı yerini necə dəyişər?
A) 2 sətir aşağı B) 1 sətir yuxarı C) dəyişməz D) 2 sətir yuxarı E) 1 sətir aşağı
Həllini göstərHəllini gizlət
2) Nəticə cədvəli: Kamran, Səbinə, Fidan, Günay — Fidan 3-cü sətirdədir (k = 3).
3) Kimyaya görə artma: Fidan 58, Kamran 64, Günay 76, Səbinə 90 — Fidan 1-ci sətirdədir (m = 1).
4) k − m = 2 > 0.
Doğru cavab: D) 2 sətir yuxarı.
Yazılar (ad — sinif — bal): Aysel — 9 — 85, Murad — 10 — 90, Leyla — 9 — 92, Elvin — 11 — 78, Nigar — 10 — 88, Rəşad — 9 — 70. Cədvəl əvvəlcə Sinif sahəsinə görə artma, sonra Bal sahəsinə görə azalma sırası ilə çeşidlənir. Nigar neçənci yerdə olar?
Həllini göstərHəllini gizlət
2) 10-cu sinif: Murad 90, Nigar 88 → 4–5-ci yerlər.
3) 11-ci sinif: Elvin 78 → 6-cı yer.
Cavab: Nigar 5-ci yerdədir.
rows = [('Kamran', 72, 81, 64), ('Sabina', 88, 69, 90), ('Orkhan', 65, 77, 71),
('Fidan', 90, 85, 58), ('Tural', 70, 62, 83), ('Gunay', 59, 74, 76)]
# query: ((Math >= 70 OR Chemistry > 75) AND Physics > 65)
result = [r for r in rows if (r[1] >= 70 or r[3] > 75) and r[2] > 65]
print('After the query:', [r[0] for r in result])
# sort by Chemistry, ascending (reverse=True would give descending)
sorted_rows = sorted(result, key=lambda r: r[3])
print('After sorting: ', [r[0] for r in sorted_rows])
k = [r[0] for r in result].index('Fidan') + 1
m = [r[0] for r in sorted_rows].index('Fidan') + 1
print('Fidan:', k, '->', m, '| rows up:', k - m)▸ Gözlənilən nəticə
After the query: ['Kamran', 'Sabina', 'Fidan', 'Gunay'] After sorting: ['Fidan', 'Kamran', 'Gunay', 'Sabina'] Fidan: 3 -> 1 | rows up: 2
| DİM-in yazılışı | SQL |
|---|---|
(A > 5) AND NOT (B = 2) | WHERE a > 5 AND NOT b = 2 |
Platforma <> 2 | platform <> 2 |
İstiqamət = «*n» | destination LIKE '%n' |
Kod = «1??» | code LIKE '1__' |
| Kimya üzrə artma / azalma sırası | ORDER BY chemistry ASC / DESC |
* əvəzinə %, ? əvəzinə _ yazılır. Ətraflı: SQL kursunun «WHERE: sətirlərin süzülməsi», «LIKE, IN, BETWEEN və IS NULL», «ORDER BY və LIMIT: sıralama və məhdudlaşdırma» dərsləri.Əsas fikirlər
- Sadə şərt: sahə — işarə — qiymət; > və < sərhədi daxil etmir, >= və <= daxil edir, <> — «bərabər deyil».
- AND → kəsişmə, OR → birləşmə, NOT → qalan yazılar; ardıcıllıq: mötərizə, NOT, AND, OR.
- NOT-u əks işarə ilə əvəz et (NOT (x > a) ⇔ x <= a) və De Morqan qanunlarını tətbiq et.
- Maska:
*— istənilən sayda simvol (sıfır da),?— düz bir simvol; «*n» — n ilə bitir, «*n*» — n var. - Süzgəc + çeşidləmə: yazının yeri sorğunun nəticə cədvəlində sayılır, sonra çeşidləmədən sonrakı yerlə müqayisə olunur.
Özünü yoxla
12 sual. Hər düzgün cavab XP qazandırır.