Til:

18-dars. Ma'lumotlar Bazasi va SQL: Relyatsion Arxitektura, Indekslar va Xavfsizlik

9-sinf · 4-hafta · Birlashtirilgan Deep-Dive Vorkshop (80 daqiqa) · Backend & Data Track
Talaba: Sinf:  |  Sana: Baho:      / 10

Amaliy Missiya: Jadvallar Tuzish, JOIN Qidiruvi va SQL Injectiondan Himoyalanish

1. `users` va `orders` jadvallari uchun relyatsion DDL sxemasini yozing (PK, FK, CHECK). 2. `INSERT` buyrug'i bilan har bir jadvalga kamida 2 tadan to'g'ri test ma'lumoti kiriting. 3. Har bir mijozning buyurtmalar soni va jami summasini chiqaruvchi `LEFT JOIN` so'rovini quring. 4. Zaif SQL so'rovini Prepared Statement ko'rinishiga o'tkazib, xavfsizlik testini o'tkazing. 5. Barcha natijalarni quyidagi tekshiruv jadvaliga yozing.

⚡ Tezkor Boshlash: `sqlite3 shop.db` → `.headers on` → `.mode table` → `PRAGMA foreign_keys = ON;` Simulyator: `lab/index.html` (0-o'rnatish) | Web: `sqlime.org`
Bosqich SQL So'rovi / Terminal Buyrug'i Kutilgan Natija / Tekshiruv
1 · DDL CREATE TABLE users (...);
CREATE TABLE orders (...);
Jadvallar yaratildimi? [ HA / YO'Q ]
PK / FK / CHECK: ____________________
2 · DML INSERT INTO users VALUES (...);
INSERT INTO orders VALUES (...);
Kiritilgan yangi satrlar soni:
users: ____  |  orders: ____
3 · JOIN SELECT users.full_name, COUNT(orders.id), SUM(...)
FROM users LEFT JOIN orders ...;
Hisobotdagi qatorlar soni: _____
Xaridsizlar uchun NULL bormi? [ HA / YO'Q ]
4 · Himoya SELECT * FROM users WHERE email = $1;
(Prepared Statement)
' OR '1'='1 kiritilganda nima qaytdi:
[ 0 ta satr (Xavfsiz) / Xakerlik ]

✏️ Muhandislik Hisoboti

1. ACID kafolatlari nima uchun muhim (Bank o'tkazmasi va server avariyasi misolida):

2. Prepared Statement ($1) qanday qilib SQL Injectionni to'xtatadi va B-Tree nega tez:

📊 Baholash Mezoni (10 Ball)

  • ACID va relyatsion model tushunchasi 2
  • Toza DDL sxema (PK, FK, CHECK) 3
  • JOIN va agregat so'rovlari 3
  • SQL Injection tahlili va Prepared Statement 2
  • JAMI 10
O'qituvchi: Musulmonov Mamarajab O'qituvchi imzosi: _______________ Target International School