Avtomobillarga texnik ko’rik tizimi

MUNDARIJA
Mavzu: Avtomobillarga texnik ko’rik tizimi. ............................................................................................. 1
Kirish. ................................................................................................................................................... 1
I Bob. Avtomobillarga texnik xizmat ko’rsatish sohasini avtomatlashtirishning nazariy asoslari ......... 6
1.1. Texnik ko’rik tizimlarining hozirgi holati va muammolari. ............................................................. 6
1.2. Axborot tizimini loyihalashga qo’yiladigan talablar ....................................................................... 8
1.3. Web-texnologiyalar PHP, MySQL tanlovining asoslanishi ........................................................... 12
II BOB. "TEXNIK KO’RIK" TIZIMINING MA’LUMOTLAR BAZASINI LOYIHALASH ................................... 14
2.1. Tizimning relyatsion ma’lumotlar bazasi modelini ishlab chiqish. .............................................. 14
2.2. Jadvallararo bog’lanishlar va ma’lumotlar yaxlitligi .................................................................... 20
2.3. MySQL muhitida ma’lumotlar bazasini shakllantirish .SQL so’rovlar .......................................... 23
III BOB. TIZIMNING DASTURIY TA’MINOTINI ISHLAB CHIKISH VA SINOV KO’RIKLARI ......................... 25
3.1. Ma’lumotlar bazasi bilan aloqa o’rnatish va ulanish xavfsizligi ................................................... 25
3.2. PHP muhitida Web-interfeysni yaratish va foydalanuvchi tajribasini loyihalash ......................... 28
3.3. Ma’lumotlarni qayta ishlash va bazaga saqlash algoritmlari ....................................................... 32
XULOSA .............................................................................................................................................. 34
FOYDALANILGAN ADABIYOTLAR RO’YXATI ........................................................................................ 36
Mavzu: Avtomobillarga texnik ko’rik tizimi.
Kirish.
Ma’lumotlar   bazasi   bu   ma’lumotlarni   saqlash,   boshqarish   va   ulardan
samarali foydalanish uchun tashkil etilgan tizimdir. U ma’lumotlar to’plami, ularni
saqlash uchun kerakli tuzilma va ulardan foydalanuvchilar tomonidan foydalanish imkoniyatlarini yaratadi. Ma’lumotlar bazalari ko’p hollarda turli maqsadlar uchun
ishlatiladi:   ma’lumotlarni   tartibga   solish,   ma’lumotlar   bilan   ishlashni
avtomatlashtirish, xavfsiz saqlash va so’rovlarni tezkor amalga oshirish.
Ma’lumotlar   bazasi   odatda     kerakli   ma’lumotlarni   tez   va   oson   topish,   yangi
ma’lumotlar qo’shish,  o’zgartirish yoki o’chirish imkoniyatini beradi. Bu tizimlar
ko’plab   sohalarda,   jumladan   biznes,   ilmiy   izlanishlar,   sog’liqni   saqlash,   ta’lim,
moliya va hokazolarda qo’llaniladi.
Ma’lumotlar bazasi asosiy komponentlari mavjud bular:
  Ma’lumotlar   ma’lumotlar   bazasining   asosiy   qismini   tashkil   qiladi.   Ma’lumotlar
bazasida   saqlanadigan   barcha   ma’lumotlar   ma’lum   bir   tashkilot   yoki   soha   bilan
bog’liq bo’lib, tizimda samarali saqlanadi.
Jadval   ma’lumotlar   bazasida   ma’lumotlarni   tartibga   solish   uchun   ishlatiladi.   Har
bir jadval ustunlardan va qatorlardan iborat. Jadvalning har bir ustuni ma’lum bir
atributni   ifodalaydi   masalan:   ism,   sana,   telefon   raqami   va   boshqalar.   Jadvaldagi
har bir qator esa bir ma’lumotni yoki obyektni ifodalaydi.
Indeks   indekslar   ma’lumotlarga   tezkor   kirish   imkonini   beradi.   Ma’lumotlar
bazasidagi   ma’lumotlarni   tezda   qidirish   uchun   ishlatiladi.   Indekslar   ma’lumotlar
bazasining   samaradorligini   oshiradi,   ayniqsa   katta   hajmdagi   ma’lumotlar   bilan
ishlashdi. Cheklovlar bu ma’lumotlarning to’g’riligini ta’minlash uchun ishlatiladi.
Masalan,   yillar   faqat   raqam   bo’lishi   yoki   sanalar   kelajakdan   oldin   bo’lishi
kerakligini ta’minlash.
So’rovlar       bu   ma’lumotlar   bazasidan   kerakli   ma’lumotlarni   olish   uchun
ishlatiladigan buyruqlar. Sql  kabi tillar yordamida amalga oshiriladi.
  Dasturiy   ta’minot   ma’lumotlar   bazasini   boshqarish   tizimi,   ma’lumotlar
bazasining ishlashini ta’minlaydi. U ma’lumotlarni saqlash, yangilash, o’zgartirish,
o’chirish   va   so’rovlar   bilan   ishlash   imkoniyatlarini   yaratadi.   Ma’lumotlar   bazasi
turlari   relatsion ma’lumotlar bazasi      relatsion ma’lumotlar  bazasi  ma’lumotlarni
jadval shaklida saqlaydi va ular o’rtasida bog’lanishlarni ta’minlaydi. Ma’lumotlar
bazasi   jadval   shaklida   tashkil   etiladi,   va   ular   o’rtasidagi   munosabatlar     sql   orqali
amalga oshiriladi.  Bazalari relatsion bo’lmagan ma’lumotlar bazalaridir. Ular strukturaviy bo’lmagan
yoki kam strukturalangan ma’lumotlarni saqlash uchun ishlatiladi. Nosql tizimlari
katta hajmdagi ma’lumotlar bilan ishlashda samarali hisoblanadi.
Graf   ma’lumotlar   bazasi     graf   ma’lumotlar   bazalari   ma’lumotlarni   graf   shaklida
saqlaydi,   ya’ni   ularning   o’rtasidagi   bog’lanishlar   va   obyektlar   orqali   ifodalanadi.
Bu   turdagi   tizimlar   ijtimoiy   tarmoqlar   va   aloqalar   tahlili   uchun   juda   qulay,
obyektga   yo’naltirilgan   ma’lumotlar   bazasi     obyektga   yo’naltirilgan   ma’lumotlar
bazalari   obyektga   yo’naltirilgan   dasturlash   paradigmasiga   asoslanadi.   Bu   turdagi
tizimlarda   ma’lumotlar   obyektlar   sifatida   saqlanadi,   ya’ni   ular   o’z   atributlari   va
metodlariga ega.
 Ma’lumotlar bazasining bir nechta  afzalliklari bor. Bular:
Tezkor ma’lumotlarga kirish bu ma’lumotlar bazalari ma’lumotlarga tez va oson
kirish imkonini beradi. Indekslar va so’rovlar yordamida ma’lumotlarni tezda 
qidirish   va   olish   mumkin,   bu   katta   hajmdagi   ma’lumotlar   bilan   ishlashda
samaradorlikni   oshiradi.   Xavfsizlik     ma’lumotlar   bazasida   saqlanadigan
ma’lumotlar   xavfsizligi   ta’minlanadi.   Foydalanuvchilarni   autentifikatsiya   qilish,
ma’lumotlarni shifrlash, va xavfsizlik cheklovlarini qo’yish orqali ma’lumotlarning
butligi   va   maxfiyligi   himoya   qilinadi.   Ma’lumotlarni   tizimlash   ma’lumotlar
bazalari   ma’lumotlarni   samarali   va   tizimli   tarzda   saqlash   imkonini   beradi.   Bu,
ma’lumotlar to’planishi, izlanishi va ularga kirish oson bo’lishiga imkon yaratadi.
Ma’lumotlarning o’zaro bog’lanishlari   relatsion ma’lumotlar bazasida turli jadval
va   ma’lumotlar   o’rtasida   bog’lanishlar   o’rnatiladi.   Bu,   ma’lumotlar   orasidagi
o’zaro   bog’lanishlarni   aniqroq   tushunishga   va   tahlil   qilishga   yordam
beradi.Ma’lumotlarni   yangilash   va   qo’llab-quvvatlash       ma’lumotlar   bazalarida
ma’lumotlar real vaqt rejimida yangilanishi  va boshqarilishi mumkin. Bu tizimlar
avtomatik   ravishda   ma’lumotlarni   yangilash,   qo’shish,   o’zgartirish   va   o’chirishni
ta’minlaydi.
Yangi ma’lumotlar qo’shilishi va tizimga yangi foydalanuvchilarni qo’shish
uchun tizimning ishlashiga zarar yetkazmasdan kengaytirish mumkin.
 SQL bu ma’lumotlar bazalarini boshqarishning fundamental asosi hisoblanadi.   SQL texnologiyasining evolyutsion taraqqiyoti :
SQL     tarixi   1970-yillarning   boshiga   borib   taqaladi.   IBM   kompaniyasining
tadqiqotchilari   Donald   Chamberlin   va   Raymond   Boyce   tomonidan   Edgar
Koddning   relyatsion   modeli   asosida   yaratilgan.   Dastlab   "SEQUEL"   deb
nomlangan   ushbu   til,   ma’lumotlarni   mantiqiy   guruhlash   va   ular   orasidagi
aloqalarni matematik aniqlikda o’rnatishga xizmat qilgan.
Bugungi   kunda   SQL   nafaqat   so’rovlar   tili,   balki   ma’lumotlar
injeneriyasining   global   standartidir.   Uning   asosi   —   Algebraik   munosabatlar
hisoblanadi.   Ya’ni,   biz   bazaga   murojaat   qilganimizda,   orqa   fonda   murakkab
matematik amallar bajariladi, lekin foydalanuvchi buni ingliz tiliga yaqin bo’lgan
oddiy buyruqlar orqali amalga 
oshiradi.   Bu   esa   tizimning   inson   va   kompyuter   o’rtasidagi   ko’prik   vazifasini
o’tashini ta’minlaydi.
  Ma’lumotlar   bazasini   boshqarish   tizimlarining   turlari   “Avtomobillarga   texnik
ko’rik tizimi” ni yaratishda SQL tillarining bir necha dialektlaridan foydalaniladi.
MySQL:  Ochiq kodli va tezkor. Kichik va o’rta hajmdagi punktlar uchun mos.
SQL   tili   o’z   ichiga   to’rtta   asosiy   kichik   tillarni   qamrab   oladi,   ularning   har   biri
texnik ko’rik tizimida o’z o’rniga ega.
Data Definition Language – Strukturani shakllantirish
Bu   qism   bazaning   "skeleti"ni   yaratadi.   Masalan,   avtomobil   egasining   ismi,
mashina raqami va ko’rik sanasi saqlanadigan ustunlarni yaratishda ishlatiladi.
CREATE  – Jadvallar, indekslar va ko’rinishlarni yaratish.
ALTER   –   Bazaga   yangi   talablar   chiqsa   masalan,   elektromobillar   uchun   alohida
maydon qo’shish, strukturani o’zgartirish.
Data Manipulation Language – Operatsion boshqaruv
Tizim   ishga   tushgandan   so’ng,   inspektorlar   tomonidan   kiritiladigan   har   bir
ma’lumot DML orqali amalga oshiriladi. INSERT  – Yangi ko’rik natijasini qo’shish.
UPDATE  – Noto’g’ri kiritilgan ma’lumotni tuzatish.
DELETE  – Arxivlangan yoki xato yozuvlarni o’chirish.
Bugungi   kunda   har   qanday   xizmat   ko’rsatish   sohasini,   xususan,   avtomobillarni
texnik ko’rikdan o’tkazish jarayonini ham raqamli texnologiyalarsiz tasavvur qilib
bo’lmaydi.   Ushbu   loyihaning   "yuragi"   va   eng   asosiy   poydevori   bu     SQL
(Structured Query Language)  ya’ni ma’lumotlar bazasini boshqarish tilidir.
Ko’pchilik   foydalanuvchilar   faqat   saytning   chiroyli   tugmalari   yoki   oynalarini
ko’rishadi, biroq tizimning qanchalik tez va aniq ishlashi aynan orqa fonda turgan
SQL   so’rovlariga   bog’liq.   Ushbu   kurs   ishida   SQL   shunchaki   ma’lumot   saqlash
joyi emas, balki quyidagi hayotiy vazifalarni bajaruvchi asosiy vositadir:
Ma’lumotlar tartibi :  Tasavvur qiling, minglab mijozlar, ularning har xil rusumdagi
mashinalari va amalga oshirilgan yuzlab turdagi ko’rik natijalari bor. SQL bizga bu
tartibsiz   ma’lumotlarni   bir-biriga   zanjir   kabi   bog’langan   jadvallar   ko’rinishiga
keltirishga   imkon   beradi.   Masalan,   mijoz   o’z   mashinasini   sotgan   bo’lsa   ham,
bazadagi   bog’liqlik   orqali   o’sha   mashinaning   eski   tarixini   bir   necha   soniyada
topish mumkin.
Tezkor   qidiruv   va   tahlil:   Qog’ozbozlik   davrida   ma’lum   bir   davlat   raqamidagi
mashinani  arxivdan qidirish soatlab vaqt olardi. SQL yordamida esa "01A777AA
raqamli mashina oxirgi marta qachon ko’rikdan o’tgan?" degan savolga javob olish
millisekundlarda amalga oshadi.
Xavfsizlik   va   yaxlitlik:   Tizimda   ma’lumotlar   tasodifan   o’chib   ketmasligi   yoki
noto’g’ri yozilmasligi juda muhim. SQLning "Tranzaksiyalar" va "Chetki kalitlar"
Foreign   Keys   tushunchalari   bizga   shunday   kafolat   beradiki,   egasi   yo’q   mashina
yoki mashinasi yo’q ko’rik natijasi bazada paydo bo’lib qolmaydi. I Bob. Avtomobillarga texnik xizmat ko’rsatish sohasini
avtomatlashtirishning nazariy asoslari
1.1. Texnik ko’rik tizimlarining hozirgi holati va muammolari.
Bugungi kunda mamlakatimizda transport vositalari sonining keskin ortishi,
avtomobillarga  texnik xizmat  ko’rsatish   va ularni  nazorat   qilish  tizimiga  mutlaqo
yangicha yondashuvni talab qilmoqda. Agar sohaning bugungi real holatiga nazar tashlaydigan   bo’lsak,   ko’plab   texnik   ko’rik   markazlarida   ish   jarayoni   hali   ham
qisman   yoki   to’liq   an’anaviy   usullarda,   ya’ni   qog’oz   hujjatlar   asosida
yuritilayotganiga   guvoh   bo’lamiz.   Bu   esa   bir   qarashda   oddiy   ko’ringani   bilan,
amaliyotda   jiddiy   tizimli   muammolarni   keltirib   chiqarmoqda.   Birinchidan,
ma’lumotlarning   tarqoqligi   va   qidiruv   qiyinchiligi.   An’anaviy   usulda   har   bir
transport   vositasi   haqidagi   ma’lumotlar   alohida   jurnallar   yoki   papkalarda
saqlanadi. Masalan, ma’lum bir avtomobilning o’tgan yilgi ko’rik natijalarini yoki
undagi   texnik   nosozliklar   tarixini   bilish   uchun   xodim   arxivdan   katta   hajmdagi
hujjatlarni   titib   chiqishga   majbur.   Bu   nafaqat   vaqtni   yo’qotishga,   balki
navbatlarning ko’payishiga va mijozlarning haqli e’tirozlariga sabab bo’ladi.
I nson   omili   va   xatoliklar   ehtimoli.   Ma’lumotlarni   qo’lda   to’ldirish   jarayonida
texnik xatolarga yo’l qo’yish ehtimoli juda yuqori. Davlat raqami, dvigatel raqami
yoki   pasport   ma’lumotlarini   yozishda   bitta  harf   yoki   raqamning  noto’g’ri  ketishi,
kelajakda   o’sha   transport   vositasi   haqidagi   ma’lumotni   umuman   topib
bo’lmasligiga   olib   kelishi   mumkin.   Shuningdek,   hujjatlarning   jismoniy
shikastlanishi,   yong’in   yoki   namlik   natijasida   yaroqsiz   holga   kelishi   tizimning
ishonchliligini   nolga   tushiradi.   Uchinchidan,   tahliliy   hisobotlarning   yo’qligi.
Mavjud holatda rahbarlar yoki nazorat qiluvchi organlar uchun umumiy statistikani
chiqarish  imkonsiz darajada qiyin. Chunki qog’ozdagi raqamlarni umumlashtirish
uchun   yana   o’sha   "qo’l   mehnati"   talab   etiladi,   bu   esa   oylik   yoki   yillik
hisobotlarning aniqligini shubha ostiga qo’yadi.
Hozirgi   tizim   zamon   talabi   bo’lgan   tezkorlik,   shaffoflik   va   xavfsizlik
talablariga   javob   bermay   qoldi.   Sohani   raqamlashtirish   shunchaki   xohish   emas,
balki hayotiy zaruratdir. Bu muammolarni bartaraf etishning yagona yo’li — inson
aralashuvini   minimallashtiradigan,   barcha   ma’lumotlarni   yagona   bazaga
jamlaydigan   va   ularni   bir   necha   soniyada   qayta   ishlay   oladigan   markazlashgan
axborot   tizimini   joriy   etishdir.   Aynan   mana   shu   ehtiyoj   loyihamizning
dolzarbligini   belgilab   beradi.   Yuqorida   ta’kidlangan   texnik   va   tashkiliy
kamchiliklardan  tashqari, tizimning hozirgi  holatida yana  bir  jiddiy muammo bor bu   shaffoflikning   yetishmasligi   va   korrupsion   xavf-xatarlarning   yuqoriligi   bilan
bog’liq.
Qog’ozbozlikka   asoslangan   tizimda   ko’rik   jarayonini   masofadan   nazorat   qilish
deyarli   imkonsiz.   Ya’ni,   avtomobil   haqiqatdan   ham   ko’rikdan   o’tdimi   yoki
shunchaki   hujjatda   "soz"   deb   belgilab   qo’yildimi   buni   aniqlash   qiyin.
Raqamlashtirilgan   tizimning  yo’qligi   "kelishuv"   orqali   texnik   nosoz   mashinalarni
yo’lga   chiqarishga   yo’l   ochib   beradi.   Bu   esa   o’z   navbatida   yo’l-transport
hodisalarining   ko’payishiga   va   insonlar   hayotining   xavf   ostida   qolishiga   sabab
bo’ladi. Axborot tizimi esa har bir harakatni xotirada muhrlab borishi bilan bu kabi
sun’iy aralashuvlarga to’siq qo’yadi.
Yana   bir   muhim   jihat   moliyaviy   hisob-kitoblarning   murakkabligi .   Ko’rik
xizmatlari   uchun   to’lovlarni   qabul   qilish,   tushumlarni   xizmat   turlari   bo’yicha
tashkillashtirish   va   kunlik   daromadni   hisoblashda   chalkashliklar   ko’p   uchraydi.
Xodimning xatosi tufayli narxlar noto’g’ri hisoblanishi yoki tushumlar hisobotida
nomuvofiqliklar   kelib   chiqishi   mumkin.   Avtomatlashtirilgan   tizimda   esa   xizmat
narxi   ma’lumotlar   bazasidan   avtomatik   olinadi   va   inson   omilisiz   hisoblanadi.   Bu
nafaqat   buxgalteriya   ishini   osonlashtiradi,   balki   markazning   iqtisodiy
samaradorligini tahlil qilish imkonini beradi.
Shuningdek,  mijozlar bilan qayta aloqa qilish tizimi  mutlaqo mavjud emas. Hozirgi
holatda avtomobilning keyingi texnik ko’rik vaqti qachon kelishini egasi  o’zining
yodida saqlashi yoki hujjatiga qarab aniqlashi kerak. Markazlar esa o’z mijozlarini
ogohlantirish   imkoniga   ega   emas.   Tizimning   raqamli   ko’rinishga   o’tishi   esa,
bazadagi   "sana"   ustunidan   foydalanib,   mijozlarga   avtomatik   eslatmalar   yuborish,
chegirmalar taklif qilish va xizmat sifatini oshirish uchun zamin yaratadi.
1.2. Axborot tizimini loyihalashga qo’yiladigan talablar
Avtomobillarni   texnik   ko’rikdan   o’tkazishni   boshqarish   tizimini
loyihalashda   uning   nafaqat   bugungi   ehtiyojlarni   qondirishi,   balki   kelajakda kengayish imkoniyatlariga ham ega bo’lishi hisobga olinishi lozim. Shuning uchun
tizim oldiga qo’yiladigan talablarni  bir necha asosiy  yo’nalishlarga bo’lib chiqish
maqsadga muvofiqdir.
1. Funksional talablar: Tizim nima qila olishi kerak?
Dasturiy   ta’minotning   asosiy   vazifasi   —   ko’rik   markazi   xodimining   ishini
osonlashtirish. Shu sababli loyihalash bosqichida quyidagi funksional imkoniyatlar
birinchi darajali hisoblanadi:
Bosqichma-bosqich   ma’lumot   yig’ish   :   Tizim   foydalanuvchini   chalg’itmasligi
uchun   ma’lumotlarni   bitta   katta   jadvalda   emas,   balki   mantiqiy   ketma-ketlikda
Mijoz   ->   Avto   ->   Ko’rik   natijasi   qabul   qilishi   kerak.   Bu   xodimga   diqqatni
jamlashga va xatoliklarni kamaytirishga yordam beradi.
Relatsiyaviy   bog’liqlik:   Ma’lumotlar   bazasi   shunday   loyihalanishi   kerakki,   bitta
mijozning bir nechta avtomobili bo’lishi mumkinligini tizim avtomatik tushunishi
va tarixni saqlab qolishi shart.
Avtomatlashtirilgan   hisob-kitoblar:   Tizim   xizmat   turi   tanlanganda   uning   narxini
bazadan   mustaqil   ravishda   chiqarishi   va   umumiy   summani   inson   aralashuvisiz
hisoblab berishi lozim.
2. Foydalanish qulayligi va interfeysga qo’yiladigan talablar
Texnik ko’rik markazlarida ishlovchi xodimlarning barchasi ham yuqori darajadagi
IT mutaxassisi bo’lmasligi mumkin. Shu bois:
Interfeysning   soddaligi:   Dastur   interfeysi   intuitiv   bo’lishi,   ortiqcha   murakkab
menyulardan   xoli   bo’lishi   kerak.   Har   bir   tugma   va   maydonning   vazifasi   aniq
ko’rinib turishi lozim. Moslashuvchanlik:   Tizim   nafaqat   kompyuterda,   balki   planshet   yoki   mobil
qurilmalarda   ham   birdek   sifatli   ishlashi   kerak,   chunki   xodim   bevosita   avtomobil
oldida turib ma’lumotlarni kiritishi ehtiyoji tug’ilishi mumkin.
3. Ma’lumotlar xavfsizligi va yaxlitligi 
Avtomobil   egalarining   pasport   ma’lumotlari   va   shaxsiy   telefon   raqamlari
saqlanishi sababli tizimga quyidagi talablar qo’yiladi:
Ma’lumotlar yaxlitligi:   Agar avtomobil haqidagi ma’lumot kiritilayotgan bo’lsa, u
albatta   qaysidir   mijozga   biriktirilgan   bo’lishi   shart.   "Egasiz"   mashinalar   bazada
paydo bo’lishiga yo’l qo’yilmaydi.
4. Texnik va samaradorlik talablari
Tezkorlik:   So’rovlarni   qayta   ishlash   vaqti   foydalanuvchini   kutib   qoldirmasligi
uchun minimal odatda 1-2 soniya bo’lishi kerak.
Ma’lumotlarni   arxivlash:   Tizim   yillar   davomida   to’plangan   ma’lumotlarni   tezkor
arxivlash va kerak bo’lganda qayta tiklash imkoniyatiga ega bo’lishi lozim.
  Tizimga   qo’yiladigan   talablar   shunchaki   dasturiy   kod   yozish   bilan   tugamaydi.
Ular   ma’lumotlarni   to’g’ri   boshqarish,   xodimlar   vaqtini   tejash   va   har   bir
tranzaksiyaning shaffofligini ta’minlashga xizmat qilishi kerak. Loyihamizda mana
shu talablarning har biri inobatga olingan holda arxitektura ishlab chiqildi. 
Avtomobillarni   texnik   ko’rikdan   o’tkazish   jarayonlarini   avtomatlashtirishga
mo’ljallangan   axborot   tizimini   loyihalash   bu   shunchaki   ma’lumot   yig’ish   emas,
balki   murakkab   texnik-iqtisodiy   jarayonni   raqamli   qoliplarga   solish   demakdir.
Tizim   muvaffaqiyatli   ishlab   ketishi   va   uzoq   muddatli   foydalanishga   yaroqli
bo’lishi uchun loyihalash bosqichida quyidagi tizimli talablar o’rnatildi:
1. Arxitektura va struktura yaxlitligi talablari Tizim "modulli arxitektura" tamoyiliga asoslanishi shart. Bu degani, tizimning har
bir   bo’limi   mijozlar   bazasi,   avtomobillar,   To’lovlar   va   Hisobotlar   bir-biri   bilan
uzviy bog’langan bo’lsa-da, mustaqil mantiqiy blok sifatida loyihalanadi.
Ma’lumotlar   normallashuvi   SQL   ma’lumotlar   bazasi   kamida   uchinchi   normal
shakl   darajasida   loyihalanishi   talab   etiladi.   Bu   bazada   ma’lumotlarning   dublikat
bo’lishiga yo’l qo’ymaydi, ya’ni bir xil ma’lumot bir necha marta yozilmaydi, bu
esa xotirani tejash va so’rovlar tezligini bir necha barobar oshirish imkonini beradi.
Ma’lumotlar relatsiyasi:  Tizimda "bitta mijoz  ko’p avtomobil" va "bitta avtomobil
ko’p   ko’rik   natijasi"   kabi   mantiqiy   bog’liqliklar   qat’iy   saqlanishi   kerak.   Bu
avtomobil   egasi   o’zgarganda   yoki   yangi   ko’rik   o’tkazilganda   ma’lumotlar
tarixining buzilmasligini kafolatlaydi.
2.   Foydalanish   qulayligi   va   inson   omili   talablari.Texnik   ko’rik   markazi
xodimlarining ish unumdorligi tizimning qanchalik soddaligiga bog’liq.
Bosqichma-bosqichlik :  loyihalashdagi asosiy talab foydalanuvchini axborot oqimi
bilan   charchatmaslikdir.   Ma’lumotlar   qadamma-qadam   mijoz,   keyin   avto,   so’ng
xizmat   kiritilishi   xodimning   diqqatini   jamlaydi   va   xatoliklar   ehtimolini   70-80%
gacha   kamaytiradi.   Input   validatsiyasi:   Tizim   noto’g’ri   kiritilgan   ma’lumotlarni
masalan,   telefon   raqami   o’rniga   harf   yozish   yoki   asrlar   oldingi   sanani   kiritish
bazaga   qabul   qilmasligi,   foydalanuvchiga   real   vaqt   rejimida   xato   haqida   xabar
berishi shart.
3. Ma’lumotlar xavfsizligi va maxfiyligi 
Tizimda   shaxsiy   ma’lumotlar   va   davlat   raqamlari   saqlanishi   sababli,   xavfsizlik
talablari eng yuqori darajada qo’yiladi:  SQL Injection himoyasi:  PHP kodida  PDO
texnologiyasidan   foydalangan   holda   barcha   kiruvchi   ma’lumotlar   filtrlanishi   va
"PreparedStatement" usuli orqali bazaga yuborilishi shart. Bu bazani tashqi zararli
hujumlardan 100% himoya qiladi. Kirish   nazorati:   Tizim   har   bir   foydalanuvchining   vakolat   doirasini   aniq   belgilab
berishi   lozim.   Har   bir   kishi   faqat   o’ziga   tegishli   ma’lumotlarni   ko’rishi   yoki
o’zgartirishi talab qilinadi.
4. Hisob-kitob aniqligi va mantiqiy qoidalar
Dinamik   narxlash:   Xizmat   narxlari   ma’lumotlar   bazasidagi   joriy   tariflarga   mos
holda   avtomatik   hisoblanishi,   inson   tomonidan   narxni   qo’lda   o’zgartirish
imkoniyati cheklanishi lozim. Bu moliyaviy shaffoflikni ta’minlaydi.
Natija   ob’yektivligi:   Texnik   ko’rik   natijasi   O’tdi/O’tmadi   kiritilmaguncha   tizim
jarayonni yakunlashga va kvitansiya chiqarishga yo’l qo’ymasligi shart.
5. Audit va tizim monitoringi
Tizimda amalga oshirilgan har bir operatsiyaning "izi" qolishi lozim. Kim, qachon
va   qaysi   avtomobilni   ko’rikdan   o’tkazdi?   bu   savollarga   har   doim   javob   tayyor
bo’lishi talab etiladi. Bu talab tizimning nafaqat dastur, balki jiddiy nazorat quroli
bo’lishini ta’minlaydi.
1.3. Web-texnologiyalar PHP, MySQL tanlovining asoslanishi
Axborot   tizimini   ishlab   chiqishda   texnologik   stekni   to’g’ri   tanlash
loyihaning   kelajakdagi   barqarorligi,   xavfsizligi   va   unumdorligini   belgilovchi   eng
muhim   bosqichdir.   Avtomobillarni   texnik   ko’rikdan   o’tkazish   tizimi   uchun
dunyoda   eng   ommalashgan   va   vaqt   sinovidan   o’tgan   PHP   dasturlash   tili   hamda
MySQL   ma’lumotlar   bazasini   boshqarish   tizimi   tanlab   olindi.   Ushbu   tanlov
tasodifiy emas, balki quyidagi fundamental omillarga asoslanadi:
1. PHP dasturlash tilining afzalliklari va mosligi
PHP   (Hypertext   Preprocessor)     server   tomonida   ishlovchi   skript   tili   bo’lib,   u
murakkab   biznes-mantiqqa   ega   dinamik   veb-ilovalarni   yaratishda   yuqori
samaradorlik ko’rsatadi. Server   bilan   integratsiya:   PHP   ma’lumotlar   bazasi   bilan   ishlash   uchun   juda   keng
va qulay kutubxonalarga ega. Ayniqsa, biz foydalangan   PDO   moduli ma’lumotlar
bazasiga ulanishni xavfsiz va universal qiladi.
Keng hamjamiyat va ochiq kod:  PHP ochiq manbali til bo’lgani uchun, u mutlaqo
bepul va har qanday xosting provayderlarida mukammal ishlaydi. Bu tizimni joriy
etish va texnik xizmat ko’rsatish xarajatlarini sezilarli darajada kamaytiradi.
Tezkorlik   va   unumdorlik:   PHP   kodlari   serverda   juda   tez   qayta   ishlanadi,   bu   esa
texnik   ko’rik   markazidagi   xodimning   ma’lumotlarni   kiritish   va   kvitansiya
chiqarish jarayonida kutib qolmasligini ta’minlaydi.
2. MySQL ma’lumotlar bazasining tanlanishi
Ma’lumotlar bazasi  tizimning "xotirasi" bo’lib, unda barcha mijozlar, avtomobillar
va ko’rik natijalari saqlanadi. MySQL quyidagi sabablarga ko’ra tanlandi:
Relyatsion   struktura:   MySQL   relyatsion   jadvallararo   bog’langan   modelga
asoslangan.   Bu   bizning   loyihamizdagi   “Mijoz   ->   Avtomobil   ->   Ko’rik”   zanjirini
mantiqiy va xatosiz bog’lash uchun ideal vositadir.
Yuqori   tezlikdagi   so’rovlar:   MySQL   minglab,   hattoki   millionlab   ma’lumotlar
ichidan kerakli avtomobil raqamini millisekundlar ichida topish imkonini beruvchi
indekslash tizimiga ega.
Xavfsizlik   MySQL  ma’lumotlarni  ruxsatsiz  kirishdan  himoya  qilish  uchun kuchli
autentifikatsiya   va   huquqlarni   boshqarish   tizimiga   ega.   Bu   shaxsiy   ma’lumotlar
maxfiyligini ta’minlashda muhim rol o’ynaydi.
3. PHP va MySQL hamohangligi
Ushbu   ikki   texnologiya   o’n   yilliklar   davomida   birgalikda   rivojlanib   kelgan   va
dunyodagi eng barqaror "juftlik" hisoblanadi. Ma’lumotlar   almashinuvi:   PHP   va   MySQL   o’rtasida   ma’lumot   almashinuvi   juda
silliq   kechadi.   PHP   orqali   yuborilgan   har   qanday   murakkab   SQL   so’rovi     baza
tomonidan tezda qayta ishlanib, natija veb-interfeysga uzatiladi.
Moslanuvchanlik:   Ushbu   texnologiyalar   asosida   yaratilgan   tizim   kelajakda
osongina   kengayishi   mumkin.   Masalan,   tizimga   onlayn   to’lov   tizimlarini   Click,
Payme xizmatlarini qo’shish PHP muhitida juda oddiy va qulay amalga oshiriladi.
4. Iqtisodiy va ekspluatatsion omillar
Loyihani   ishlab   chiqishda   iqtisodiy   samaradorlik   ham   inobatga   olingan.   PHP   va
MySQL   uchun   litsenziya   talab   etilmaydi,   bu   esa   korxona   byudjetini   tejaydi.
Shuningdek, tizimni qo’llab-quvvatlash uchun kadrlar topish oson, chunki bu stek
bo’yicha   mutaxassislar   bozorda   yetarli   darajada   mavjud.   PHP   va   MySQL   juftligi
avtomobillarni texnik ko’rikdan o’tkazish tizimi uchun nafaqat texnik jihatdan eng
ma’qul,   balki   strategik   jihatdan   eng   ishonchli   yo’ldir.   Bu   texnologiyalar   asosida
qurilgan tizim yillar davomida barqaror xizmat qiladi va texnologik o’zgarishlarga
moslashuvchan bo’lib qoladi.
II BOB. "TEXNIK KO’RIK" TIZIMINING MA’LUMOTLAR
BAZASINI LOYIHALASH
2.1. Tizimning relyatsion ma’lumotlar bazasi modelini ishlab
chiqish.
Axborot   tizimini   loyihalash   jarayonida   ma’lumotlar   bazasining   mantiqiy
arxitekturasi   eng   muhim   bosqich   hisoblanadi.   Transport   vositalarini   texnik ko’rikdan   o’tkazish   tizimida   ma’lumotlar   hajmi   va   dinamikasi   yuqori   bo’lganligi
sababli,   loyihada   bog’langan   ma’lumotlar   modeli   tanlab   olindi.   Ushbu   model
ma’lumotlarning   takrorlanishini   minimallashtirish   va   jadvallar   orasidagi
munosabatlarni qat’iy tartibga solish imkonini beradi.
Quyida tizimning tarkibiy qismini tashkil etuvchi har bir jadval, ularning ustunlari
va saqlanadigan ma’lumotlarning xususiyatlari mukkamal tahlil qilinadi:
  "mijozlar"   jadvali   tahlili.Ushbu   jadval   tizimning   fundamental   asosi   bo’lib,   u
barcha   xizmat   ko’rsatish   jarayonlarining   sub’yektini   belgilaydi.   Jadvalda   har   bir
mijozning shaxsiy identifikatsiya ma’lumotlari saqlanadi.
id_mijoz INT, Primary Key, Auto-increment:  Har bir mijoz uchun tizim tomonidan
beriladigan   noyob   raqam.   Bu   raqam   orqali   mijoz   boshqa   jadvallarda   masalan,
avtomobillar jadvalida tanib olinadi.
Ism VARCHAR:  Mijozning ismi.
Familiya   VARCHAR:   Mijozning   familiyasi.   Ism   va   familiyaning   alohida
ustunlarda   saqlanishi   keyinchalik   hisobotlarni   alifbo   tartibida   filtrlashda   qulaylik
yaratadi.
telefon VARCHAR:  Mijoz bilan bog’lanish uchun aloqa raqami. Xalqaro formatni
qo’llab-quvvatlash uchun matnli format tanlangan.
passport_raqam   VARCHAR:   Shaxsni   tasdiqlovchi   hujjat   ma’lumoti.   Bu   ustun
tizimda huquqiy javobgarlikni belgilashda muhim ahamiyatga ega.
yaratilgan_vaqt   DATETIME:   Mijoz   birinchi   marta   tizimda   qachon   ro’yxatdan
o’tganligini muhrlaydi. Bu vaqtinchalik tahlillar va xavfsizlik auditi uchun xizmat
qiladi. 2. "avtomobillar" jadvali tahlili
Bu jadval transport vositalarining texnik pasport ma’lumotlarini o’zida jamlaydi va
har bir yozuvni aniq bir egasiga mijozga bog’laydi.
id_avto INT, Primary Key:  Avtomobilning tizimdagi tartib raqami.
id_mijoz   INT,   Foreign   Key:   Ushbu   ustun   orqali   avtomobil   "mijozlar"   jadvaliga
mantiqan   bog’lanadi.   Bu   relatsiyaviy   bog’lanish   bo’lib,   bir   mijozga   bir   nechta
avtomobil tegishli bo’lishi mumkinligini ta’minlaydi.
brend va model VARCHAR:  Transport vositasining markasi va rusumi.
yil INT:  Ishlab chiqarilgan yili. Ushbu ko’rsatkich ko’rik jarayonida avtomobilning
eskirish darajasini aniqlashda mantiqiy filtr vazifasini o’taydi.
davlat_raqam  VARCHAR:   Avtomobilning eng  asosiy   identifikatori. SQL  qidiruv
so’rovlarida eng ko’p foydalaniladigan ustun.
yoqilgi_turi   VARCHAR:   Transport   vositasi   foydalanadigan   yoqilg’i:   Benzin,
Metan,   Elektr.   Bu   ko’rik   paytida   tekshirilishi   kerak   bo’lgan   maxsus   uskunalarni
belgilaydi. 3. "xizmat_turi" va "xodimlar"  jadvallari tahlili
Tizimning   moliyaviy   va   ma’muriy   shaffofligini   ta’minlash   uchun   ushbu   katalog
jadvallar loyihalashtirilgan.
"xizmat_turi":   Bunda   id_xizmat ,   nomi   va   narxi   ustunlari   mavjud.   Narxlarning
alohida   jadvalda   saqlanishi   narxlar   o’zgarganda   tizim   kodini   o’zgartirmasdan,
faqat bazadan qiymatni yangilash imkonini beradi.
"xodimlar":   Har   bir   ko’rikni   rasmiylashtirgan   mas’ul   xodimning   Familiya   va
lavozim   ma’lumotlarini   saqlaydi.   Bu   korrupsion   holatlarni   kamaytirish   va
javobgarlikni aniqlash uchun muhim.
“Xodimlar” jadvali: “Xizmat turi” jadvali:
4. "texnik_korik" tizimning markaziy tuguni:
Bu   jadval   barcha   avvalgi   jadvallarni   bitta   mantiqiy   yakunga   ko’rik   natijasiga
birlashtiradi.   Jadval   mukkamal   arxitekturaga   ega   bo’lib,   u   ismlar   yoki   matnlarni
emas,   balki   boshqa   jadvallarning   ID   raqamlarini   Foreign   Keys   saqlaydi.   Bu
bazaning o’ta tez ishlashini va ma’lumotlar yaxlitligini ta’minlaydi.
id_korik INT: Har bir kvitansiya va bayonnomaga mos noyob raqam.
korik_natijasi   VARCHAR:   Avtomobilning   yaroqlilik   holati   haqidagi   yakuniy
xulosa.
umumiy_summa :  Moliyaviy hisobotlar uchun jami to’lov miqdori.
sana DATE :  Hisobotlar davrini kunlik, oylik belgilash uchun xizmat qiladi. 5. "to’lovlar"  jadvali tahlili
Texnik   ko’rik   markazining   iqtisodiy   samaradorligini   tahlil   qilish   va   moliyaviy
hisobotlarni   yuritish   uchun   alohida   "to’lovlar"   jadvali   loyihalashtirilgan.   Ushbu
jadval   har   bir   ko’rik   natijasi   bo’yicha   amalga   oshirilgan   pul   o’tkazmalarini
muhrlab boradi.
id_to’lov INT, PK, Auto-increment:  Har bir to’lov kvitansiyasining noyob raqami.
id_korik INT, Foreign Key:   Ushbu to’lov aynan qaysi texnik ko’rik bayonnomasi
uchun   amalga   oshirilganini   ko’rsatadi.   Bu   orqali   "to’lovsiz   ko’rik   yo’q"   tamoyili
nazorat qilinadi.
to’lov_miqdori   :   To’langan   mablag’ning   aniq   qiymati.   Moliyaviy   aniqlik   uchun
DECIMAL  formatidan foydalanilgan.
to’lov_usuli   VARCHAR:   Mablag’   qanday   shaklda   kelib   tushgani   Naqd,   Plastik
karta, Onlayn o’tkazma. Bu buxgalteriya tahlili uchun juda muhim.
to’lov_vaqti   DATETIME:   Pul   to’langan   aniq   vaqt.   Kunlik   tushum   hisobotini
chiqarishda asosiy filtr vazifasini o’taydi.
Jadvallarning   bunday   strukturalangan   holda   loyihalanishi   bazadagi
ma’lumotlarning   bir-birini   takrorlamasligini   ta’minlaydi   va   tizim   xotirasidan
unumli   foydalanishga   imkon   beradi.   Eng   muhimi,   har   bir   ustun   va   unga
biriktirilgan   ma’lumot   turlari   INT,   VARCHAR,   DECIMAL   tizimning   kelajakda
kengayishi, masalan,  onlayn xizmatlar  yoki  avtomatlashtirilgan tahliliy hisobotlar tizimi bilan integratsiyalashuvi uchun mustahkam texnik poydevor yaratadi. Aynan
mana   shu   mantiqiy   tartib   keyingi   bosqichlarda   PHP   dasturlash   tili   orqali
ma’lumotlarni boshqarishda yuqori samaradorlik va xatosiz ishlashni kafolatlaydi.
2.2. Jadvallararo bog’lanishlar va ma’lumotlar yaxlitligi
Ma’lumotlar bazasini loyihalashda eng katta xato barcha ma’lumotlarni bitta
jadvalga   tiqib   tashlashdir.   Bu   xuddi   hamma   narsani   bir   qopga   solib   qo’yishga
o’xshaydi;   keyin   kerakli   narsani   topish   qiyin   bo’ladi.   Bizning   tizimimizda   esa
jadvallar   relyatsion   usulda tuzilgan. Bu degani, har bir ma’lumot turi o’z "uyida"
yashaydi va ular bir-biri bilan maxsus "ID raqamlar" orqali bog’lanadi.
 Jadvallararo bog’liqlikning mantiqiy mohiyati
Bog’lanishlar   tizimning   barqarorligini   ta’minlaydi.   Keling,   buni   real   misolda
ko’rib chiqamiz:
Mijoz   va   Avtomobil   bog’liqligi:   Biz   "avtomobillar"   jadvaliga   mijozning   ismini
emas, balki uning   id_mijoz   raqamini yozamiz. Nega? Chunki agar mijozning ismi
xato   yozilgan   bo’lsa   yoki   u   familiyasini   o’zgartirsa,   biz   buni   faqat   "mijozlar"
jadvalida   bir   marta   to’g’rilaymiz.   Tizim   avtomatik   ravishda   barcha   mashinalar
o’sha ID raqamli insonga tegishli ekanligini "tushunib" turaveradi.
 Kalitlar tizimi: Primary Key va Foreign Key
Tizimda   ma’lumotlar   yo’qolmasligi   va   chalkashib   ketmasligi   uchun   ikki   xil
kalitdan foydalaniladi:
Birlamchi   kalit:   Primary   Key   -   PK:   Bu   har   bir   jadvalning   eng   birinchi   va   eng
muhim   ustuni.   U   xuddi   insonning   barmoq   izi   kabi   takrorlanmasdir.   Masalan,
id_mijoz  ustunida ikkita 5-raqamli mijoz bo’lishi mumkin emas. Bu har bir shaxsni
bazadan aniq topishga kafolat beradi. Tashqi   kalit:   Foreign   Key   -   FK:   Bu   boshqa   jadvalning   birlamchi   kalitini   o’zida
saqlaydigan   ustundir.   Bu   ustun   orqali   jadvallar   bir-biri   bilan   "qo’l   berib
so’rashadi". Masalan,   avtomobillar   jadvalidagi   id_mijoz   ustuni tashqi kalit bo’lib,
u bizni mijozning shaxsiy ma’lumotlariga olib boradi.
Ma’lumotlar yaxlitligi 
Tizimga   shunday   qattiq   mantiqiy   qoidalar   o’rnatilganki,   ular   foydalanuvchining
ehtiyotsizlik qilib xato kiritishidan himoya qiladi:
Mantiqiy   zanjir:   Tizim   "mijozlar"   jadvalida   yo’q   bo’lgan   insonning   ID   raqamini
"avtomobillar" jadvaliga yozishga ruxsat bermaydi. Bu orqali "egasiz" mashinalar
paydo bo’lishining oldi olinadi.
Himoyalangan   o’chirish:   Agar   mijozning   bazada   ko’rik   tarixi   bo’lsa,   tizim   u
mijozni   o’chirishni   taqiqlaydi.   Aks   holda,   uning   o’tgan   ko’rik   natijalari   kimga
tegishli ekani noma’lum bo’lib qolardi.
"Bitta ko’pga" munosabati tahlili
Loyihamizda   eng   ko’p   qo’llanilgan   munosabat   turi   bu   "Bitta   ko’pga"
bog’lanishidir.
Tushuntirish:   Bitta   mijoz   (Bir)   —   bir   nechta   mashinaga   (Ko’p)   ega   bo’lishi
mumkin. Bitta mashina (Bir) — yillar davomida bir necha marta ko’rikdan (Ko’p)
o’tishi   mumkin.   Bitta   xodim   (Bir)   —   bir   kunda   o’nlab   mashinalarni   (Ko’p)
ko’rikdan o’tkazadi. Foydasi:   Bu usul ma’lumotlar hajmini tejaydi. Biz bazaga matnlarni emas, asosan
qisqa sonlarni ID yozamiz, bu esa qidiruv tezligini yuzlab barobarga oshiradi.
 To’lovlar va Ko’riklarning uzviy bog’liqligi
texnik_korik   jadvali   bilan   to’lovlar   jadvali   o’rtasidagi   bog’liqlik   moliyaviy
shaffoflikni ta’minlaydi. Har bir ko’rik o’zining ID raqami orqali tegishli to’lovga
ulanadi.   Bu   degani,   istalgan   vaqtda   kassa   hisoboti   bilan   ko’rikdan   o’tgan
mashinalar sonini solishtirish va tushumlarni aniq nazorat qilish mumkin.
Yuqorida   “avtomobillar”,”xodimlar”,”xizmat   turi”   jadvallarining   “texnik   korik”
jadvaliga svyaz orqali boglanggan surati turipti.
Bu   yerda   esa   “texnik   korik”   jadvalini   “tolovlar”   javaliga   boglanggani.   Ushbu
"svyaz"lar   tizimi   loyihaning   intellektual   poydevorini   tashkil   etadi.   Jadvallarning
bir-biriga   mantiqan   jipslashishi   ma’lumotlar   bazasini   nafaqat   tartibli   saqlaydi,
balki kelajakda tizimni yanada murakkabroq funksiyalar bilan boyitish uchun keng
imkoniyatlar ochadi. 2.3. MySQL muhitida ma’lumotlar bazasini shakllantirish .SQL
so’rovlar
Ma’lumotlar   bazasining   loyihasini   chizib   bo’lgach,   uni   kompyuter
tushunadigan   tilga,   ya’ni   SQL   buyruqlariga   aylantirish   bosqichi   keladi.   SQL     bu
ma’lumotlar bazasi bilan "suhbatlashish" tili. Biz bu tilda bazaga qanday jadvallar
kerakligini,   ular   ichida   nimalar   saqlanishini   va   jadvallar   bir-biri   bilan   qanday
do’stlashishini tushuntiramiz.
 Jadvallarni nolga qurish: CREATE TABLE
Dastlab biz bazaga "skelet" yasab olishimiz kerak. Har bir jadvalning o’z vazifasi
bor. Masalan, "mijozlar" jadvalini yasayotganda, biz bazaga: "Menga shunday joy
ajratki,   unda   ism-familiyalar   matn   ko’rinishida,   ID   raqamlar   esa   o’z-o’zidan
bittaga ko’payib boradigan tartibda bo’lsin", — deb buyruq beramiz.
SQL dagi korinishi:
CREATE   TABLE  mijozlar (
    id_mijoz  INT  AUTO_INCREMENT  PRIMARY  KEY,
    Ism  VARCHAR ( 50 ),
    Familiya  VARCHAR ( 50 ), 
    passport_raqam  VARCHAR ( 20 ) 
);
Nega   bu   muhim?   AUTO_INCREMENT   funksiyasi   bizga   juda   katta   yordam
beradi:   biz   har   safar   mijoz   qo’shganda   unga   nechanchi   raqamni   berishni   o’ylab
o’tirmaymiz, baza buni o’zi adashmasdan bajaradi.
 Jadvallarni "svyaz" qilish: FOREIGN KEY
SQL   tilining   eng   kuchli   tomoni   shundaki,   u   jadvallarni   bir-biriga   bog’lab   qo’ya
oladi.   Masalan,   "avtomobillar"   jadvalini   yaratayotganda,   biz   unga:   "Sening
ichingdagi   id_mijoz   ustuni   shunchaki   raqam   emas,   u   ‘mijozlar’   jadvalidagi
odamning raqamidir"  deb uqtiramiz. SQL tilida:
ALTER   TABLE  avtomobillar 
ADD   FOREIGN  KEY (id_mijoz)  REFERENCES  mijozlar(id_mijoz);
Bu   bizga   nima   beradi?   Bu   tizimda   tartib   o’rnatadi.   Agar   biz   bazaga   mavjud
bo’lmagan   mijozning   mashinasini   qo’shmoqchi   bo’lsak,   SQL   bizni   to’xtatadi   va:
"To’xta,   bunday   mijoz   yo’q-ku!"   deb   xato   beradi.   Bu   ma’lumotlar   chalkashib
ketmasligini ta’minlaydi.
3. Ma’lumotlarni aqlli qidirish: SELECT va JOIN
Tizim   tayyor   bo’lgach,   undan   ma’lumot   olishimiz   kerak.   Eng   ko’p   ishlatiladigan
buyruq bu  SELECT . Lekin bizga faqat raqamlar emas, tushunarli ma’lumot kerak.
Masalan, "Qaysi  mashina egasi to’lov qilmadi?" degan savolga javob olish uchun
biz uchta jadvalni Mijoz, Avto, To’lov bir-biriga yopishtirib o’qiymiz.
SQL tilida:
SELECT  mijozlar.ism, avtomobillar.davlat_raqam, tolovlar.holat 
FROM  tolovlar 
JOIN   mijozlar   ON   tolovlar.id_mijoz   =   mijozlar.id_mijoz   JOIN   avtomobillar   ON
tolovlar.id_avto  =  avtomobillar.id_avto;
Bu   buyruq   bazaga   aytadi:   "Menga   to’lovlar   jadvalini   olib   kel,   lekin   raqamlarni
o’rniga ularga mos keladigan mijozning ismini va mashinasining raqamini boshqa
jadvallardan qidirib topib, bitta chiroyli ro’yxat qilib ber".
4. Ma’lumotlarni kiritish: INSERT INTO
PHP   orqali   saytda   tugmani   bosganimizda,   orqa   fonda   aynan   mana   shu   SQL
buyrug’i   ishlaydi.   U   biz   kiritgan   ma’lumotlarni   olib,   bazadagi   tegishli   qutilarga
joylaydi.
SQL tilida:
INSERT   INTO  mijozlar (Ism, Familiya, telefon) 
VALUES  ( ‘Ali’ ,  ‘Valiyev’ ,  ‘+998901234567’ ); SQL tizimning "poydevori" va "xotirasi"ni boshqaradigan tildir. Biz yozgan har bir
buyruq   ma’lumotlarning   xavfsiz   saqlanishiga,   kerak   bo’lganda   tez   topilishiga   va
asosiysi   —   hech   qachon   yo’qolib   ketmasligiga   xizmat   qiladi.   SQL   bo’lmasa,
bizning   dasturimiz   shunchaki   chiroyli   rasm   bo’lib   qolar   edi,   ma’lumotlar   bilan
ishlash esa imkonsiz bo’lardi.
III BOB. TIZIMNING DASTURIY TA’MINOTINI ISHLAB
CHIKISH VA SINOV KO’RIKLARI
3.1. Ma’lumotlar bazasi bilan aloqa o’rnatish va ulanish xavfsizligi
Har qanday dinamik veb-ilovaning "yuragi" uning ma’lumotlar bazasi bilan
bo’lgan   aloqasidir.   Agar   dastur   bazaga   ulanolmasa,   u   shunchaki   jonsiz   kodlar
to’plamiga   aylanadi.   Loyihada   bu   muhim   vazifani   bajarish   uchun   alohida
arxitekturaga ega bo’lgan  db.php  (yoki  connection.php ) fayli ishlab chiqildi.
 Ulanish texnologiyasini tanlash: Nega aynan PDO? PHP   tili   ma’lumotlar   bazasi   bilan   ishlash   uchun   bir   nechta   usullarni   taklif   etadi.
Ushbu   loyihada   biz   eng   zamonaviy   va   professional   hisoblangan   PDO
texnologiyasini tanladik. Buning bir qancha muhim sabablari bor:
Xavfsizlik:  PDO tizimi ma’lumotlarni bazaga yuborishdan oldin ularni "tozalaydi".
Bu hakerlarning sayt orqali bazani o’chirib tashlash yoki ma’lumotlarni o’g’irlash
harakatlaridan ishonchli himoya qiladi.
Universal   imkoniyatlar:   PDO   faqat   MySQL   bilan   emas,   balki   kelajakda   boshqa
turdagi   bazalarga   o’tish   kerak   bo’lsa   ham,   kodni   deyarli   o’zgartirmasdan   ishlash
imkonini beradi.
Xatolarni boshqarish:   PDO orqali  ulanishda  xatolik yuz bersa   u tizimni  to’xtatib
qo’ymasdan, xatoni maxsus "Exception" sifatida tutib oladi.
db.php faylining tarkibi va ishlash mantiqi
Ushbu   fayl   loyihaning   barcha   sahifalarida   birinchi   bo’lib   ishga   tushadi.   Uning
ichida biz bazaga kirish uchun kerakli "kalitlarni" saqlaymiz:
$host : Bazamiz joylashgan manzil odatda  localhost .
$dbname : Loyiha uchun yaratilgan bazaning nomi  texnik_korik_db .
$user  va  $pass : Bazaga kirish uchun ruxsat etilgan foydalanuvchi ma’lumotlari. Try-Catch bloki: Xatoliklarga chidamlilik
Dasturimiz "sinib qolmasligi" uchun biz ulanish kodini  try { ... } catch { ... }  bloki
ichiga joylashtirdik.
Try   qismi:   Dastur   bazaga   ulanishga   harakat   qiladi.   Agar   hamma   narsa   to’g’ri
bo’lsa, ulanish amalga oshadi va dastur ishlashda davom etadi.
Catch   qismi:   Agar   aloqa   uzilgan   bo’lsa   yoki   serverda   nosozlik   bo’lsa,   bu   qism
ishga   tushadi   va   foydalanuvchiga:   "Kechirasiz,   ma’lumotlar   bazasi   bilan   aloqa
yo’q. Iltimos, keyinroq urinib ko’ring" degan tushunarli xabarni chiqaradi. Bu usul
foydalanuvchining   qo’rqib   ketmasligini   va   tizimning   professional   ko’rinishini
ta’minlaydi.
 Ma’lumotlarni kodirovka qilish 
O’zbek tilidagi  ma’lumotlarni (ayniqsa, "O’", "G’", "Sh", "Ch" harflarini)  bazada
to’g’ri saqlash va ekranda tushunarli ko’rsatish uchun ulanish vaqtida maxsus  SET
NAMES   utf8   buyrug’i   berilgan.   Bu   orqali   bazadan   kelayotgan   ism-shariflar
tushunarsiz belgilar ieryogliflar bo’lib ko’rinishining oldi olingan.  Ulanishning tizimdagi o’rni 
Loyihaning boshqa barcha fayllarida   index.php ,   save_final.php    biz ushbu   db.php
faylini  birgina qator kod    require_once ‘db.php’;   orqali  chaqirib olamiz.   Nega bu
usul qulay?   Chunki agar biz kelajakda bazaning parolini o’zgartirmoqchi bo’lsak,
yuzlab   sahifalarni   titib   chiqishimiz   shart   emas.   Biz   faqat   bitta   db.php   faylini
o’zgartiramiz va butun tizim yangi parol bilan ishlay boshlaydi.
 Tizimli ulanishning afzalligi:
Hozirda   tahlil   qilingan   ushbu   ulanish   usuli   loyihaning   barqarorligini
kafolatlaydi. Bu shunchaki  kod emas, balki butun tizim ma’lumotlarining xavfsiz
va   tezkor   aylanishini   ta’minlovchi   “magistral   yo`l”dir.   PDO   texnologiyasi   va
markazlashgan   ulanish   tizimi   yordamida   biz   dasturning   xavfsizlik   darajasini
maksimal darajaga ko’tardik, bu esa texnik ko’rik markazi kabi jiddiy muassasalar
uchun eng birinchi talabdir.
3.2. PHP muhitida Web-interfeysni yaratish va foydalanuvchi
tajribasini  loyihalash
Dasturning   foydalanuvchi   bilan   muloqot   qiladigan   qismi,   ya’ni   veb-
interfeysi   frontend,   axborot   tizimining   samaradorligini   belgilovchi   asosiy
omillardan   biridir.   Texnik   ko’rik   markazidagi   ish   jarayoni   odatda   shoshilinch   va
mas’uliyatli   bo’lganligi   sababli,   loyihada   "Stepper"   qadamma-qadam   shakllar
dizayn   tamoyili   asos   qilib   olindi.   Bu   usul   operatorga   barcha   ma’lumotlarni   bir
vaqtning o’zida emas, balki mantiqiy tartibda kiritish imkonini beradi.
 "index.php" sahifasining mantiqiy arxitekturasi.
Loyihaning   asosiy   sahifasi   bo’lgan   index.php   nafaqat   HTML   teglaridan,   balki
dinamik  PHP  kodlaridan   ham   iborat.  Sahifa   yuklanganda,   PHP   birinchi   navbatda
db.php   orqali   bazaga   ulanadi   va   zarur   ma’lumotlarni   xizmat   turlari,   xodimlar
ro’yxati bazadan yuklab oladi. Bu interfeysning "jonli" bo’lishini ta’minlaydi. Interfeys quyidagi uchta asosiy bosqichga ajratilgan:
 Birinchi bosqich: Mijoz ma’lumotlarini kiritish.
Bu qismda tizim operatori birinchi bo’lib mijozni ro’yxatdan o’tkazadi.
Atributlar:  ism, familiya, telefon va pasport raqami.
Ishlash   mexanizmi:   Ushbu   maydonlar   PHP   orqali   maxsus   tekshiruvdan   o’tadi.
Masalan, telefon raqami formati noto’g’ri bo’lsa yoki pasport seriyasi kiritilmasa,
PHP   filtrlari   foydalanuvchini   keyingi   bosqichga   o’tkazmaydi.   Bu   orqali   bazada
"chala" mijozlar paydo bo’lishining oldi olinadi.
 Ikkinchi bosqich: Avtomobil texnik ma’lumotlari 
Mijoz   ma’lumotlari   kiritilgach,   tizim   avtomatik   ravishda   avtomobil   ma’lumotlari
bo’limini   ochadi.   Bu   yerda   ma’lumotlar   bazasining   relyatsion   bog’liqligi   amalda
ko’rinadi. Atributlar:  davlat raqami, brend, model, ishlab chiqarilgan yili va yoqilg’i turi.
UX   qulayligi:   Yoqilg’i   turi   benzin,   metan,   elektr   uchun   maxsus   tanlov   Select
menyusi qo’yilgan. Bu xodimning qo’lda matn yozishini kamaytiradi va xatoliklar
ehtimolini nolga tushiradi.
 Uchinchi bosqich: Xizmat tanlash va ko’rik natijasi.
Bu bosqichda barcha jarayonlar bitta mantiqiy yakunga keltiriladi.
Dinamik xizmatlar:  Xizmat turi tanlanganda, PHP bazadagi  xizmat_turi  jadvalidan
uning narxini avtomatik olib chiqadi.
Natijani muhrlash:   Inspektor ko’rik natijasini  "Soz" yoki "Nosoz"   belgilaydi. Bu
qismda  interfeys  operatorga hamma  narsa  to’g’riligini   tekshirish  uchun "Ko’zdan
kechirish" imkonini beradi.
 Interfeysning texnik afzalliklari va validatsiya.
Interfeysni yaratishda quyidagi qo’shimcha imkoniyatlar joriy etildi: AJAX texnologiyasi:  ayrim qismlarda sahifani to’liq qayta yuklamasdan ma’lumot
almashish yo’lga qo’yilgan. Bu tizim tezligini 2 barobar oshiradi.
Input   Masking:   Telefon   raqami   yoki   davlat   raqami   kiritishda   foydalanuvchiga
tayyor shablon ko’rsatiladi.Masalan, +998 __ ___ __ __.
Responsive   Design:   Tizim   CSS   Media   Queries   yordamida   loyihalangan,   shuning
uchun   texnik   ko’rik   markazi   xodimi   planshet   orqali   mashina   yonida   turib   ham
ma’lumotlarni kirita oladi.
6. Nima uchun ushbu interfeys mukkamal?
Ushbu   tahlil   qilingan   interfeys   shunchaki   chiroyli   ko’rinish   emas,   balki   ish
unumdorligini oshiruvchi vositadir.
Vaqt   tahlili:   Avvallari   mijoz   va   avto   ma’lumotlarini   alohida-alohida   qog’ozlarga
yozishga   10   daqiqa   ketgan   bo’lsa,   bizning   bosqichma-bosqich   shaklimizda   bu
jarayon 1.5 - 2 daqiqani tashkil etadi. Inson   omili   operator   har   bir   qadamda   ma’lumotlarni   tekshirib   boradi,   bu   esa
bazaga   noto’g’ri   ma’lumot   tushishidan   95%   himoya   qiladi.   index.php   orqali
yaratilgan   ushbu   interfeys   tizimning   barqaror   ishlashi   va   foydalanuvchiga   zavq
bag’ishlashi   uchun   barcha   zamonaviy   talablarga   javob   beradi.   PHP   va
JavaScriptning   uyg’unligi   natijasida   yaratilgan   ushbu   "Step-by-Step"   tizimi
loyihaning eng kuchli amaliy qismlaridan biridir.
3.3. Ma’lumotlarni qayta ishlash va bazaga saqlash algoritmlari
Dasturning  foydalanuvchi   interfeysida   ma’lumotlar   kiritilib,  "Yakunlash   va
saqlash"   tugmasi   bosilganda,   asosiy   yuklama   server   tomonidagi   save_final.php
fayliga   tushadi.   Ushbu   fayl   tizimning   "logistika   markazi"   bo’lib,   u   kelgan
ma’lumotlarni saralaydi, tekshiradi va ma’lumotlar bazasidagi  tegishli jadvallarga
mantiqiy ketma-ketlikda joylashtiradi.
 Tranzaksion algoritm tushunchasi bu: 
Ma’lumotlarni   saqlashda   biz   "zanjirsimon   algoritm"dan   foydalandik.   Chunki
bizning   bazamiz   relyatsion   bo’lib,   birinchi   jadvalga   ma’lumot   yozilmasdan   turib,
ikkinchisiga yozish mumkin emas.
 Algoritm quyidagi bosqichlardan iborat:
Ma’lumotlarni   qabul   qilish   ( $_POST   massivi):   PHP   index.php   sahifasidan
kelayotgan barcha o’zgaruvchilarni ism, raqam, summa va h.k. qabul qilib oladi.
Filtratsiya:   htmlspecialchars()   va   strip_tags()   kabi   funksiyalar   yordamida
ma’lumotlar zararli kodlardan tozalanadi.
 Birinchi bosqich: Mijozni ro’yxatga olish va ID olish
Dastlab   mijoz   ma’lumotlari   mijozlar   jadvaliga   INSERT   qilinadi.   Bu   yerda   eng
muhim texnik uslub  lastInsertId()  funksiyasidan foydalanishdir. Nega bu kerak?   Mijoz bazaga yozilgandan so’ng, unga avtomatik tarzda ID raqam
beriladi   .   Bizga   esa   ushbu   raqam   keyingi   bosqichda     avtomobilni   aynan   shu
odamga bog’lash uchun zarur bo’ladi.
 Ikkinchi bosqich: Avtomobilni mijozga biriktirish
Endi   qo’limizda   yangi   mijozning   ID   raqami   bor.   PHP   avtomobil   ma’lumotlarini
avtomobillar   jadvaliga   yozayotganda,   ushbu   ID   raqamni   id_mijoz   (tashqi   kalit)
ustuniga qo’shib yuboradi.
Mantiqiy natija:  Shu tariqa baza: "Bu mashina aynan 105-raqamli mijozga tegishli"
degan xulosaga keladi. Bu bosqichda ham avtomobil uchun yangi  id_avto  olinadi.
 Uchinchi bosqich: Texnik ko’rik va To’lovni yakunlash
Oxirgi   qadamda   barcha   yig’ilgan   "ID"lar   mijoz   id,   avto   id,   xizmat   id   va   ko’rik
natijasi  texnik_korik  jadvaliga yoziladi.
Tranzaksiyani nazorat qilish:  Agar ushbu uchta bosqichdan birortasida xatolik yuz
bersa   tizim   "Rollback"   funksiyasini   bajaradi.   Ya’ni,   chala   ma’lumotlar   bazada
qolib ketmaydi. Bu ma’lumotlar yaxlitligini ta’minlashning eng yuqori darajasidir. Ma’lumotlar   bazaga   muvaffaqiyatli   tushgandan   so’ng,   save_final.php
foydalanuvchiga natijani taqdim etadi.
Xavfsizlik   va   unumdorlik   tahlili.   Ushbu   algoritmning   mukkamalligi   shundaki,   u
server resurslarini juda kam sarflaydi. Barcha jarayonlar server tomonida Backend
millisekundlar   ichida   bajariladi.   PDO   texnologiyasining   qo’llanilishi   esa   tizimni
tashqi   SQL-in’eksiya   hujumlaridan   butunlay   himoya   qiladi.   Har   bir   so’rov
"Prepared   Statement"   ko’rinishida   yuboriladi,   bu   esa   ma’lumotlar   xavfsizligi
bo’yicha   dunyo   standartlariga   mos   keladi.   save_final.php   orqali   amalga
oshiriladigan   ushbu   murakkab   saqlash   algoritmi   loyihaning   eng   muhim   texnik
qismidir.   U   foydalanuvchi   tomonidan   kiritilgan   bir   necha   bo’lak   ma’lumotlarni
yagona, tartibli va ishonchli axborot tizimiga aylantirib beradi.
XULOSA
Ushbu   kurs   ishi   doirasida   avtomobillarni   texnik   ko’rikdan   o’tkazish
jarayonlarini   avtomatlashtirishga   qaratilgan   axborot   tizimini   yaratish   bo’yicha keng   ko’lamli   tadqiqot   va   amaliy   ishlar   olib   borildi.   Loyiha   ustida   ishlash
jarayonida nafaqat dasturiy kod yozish, balki sohadagi  mavjud real muammolarni
o’rganish   va   ularga   zamonaviy   axborot   texnologiyalari   yordamida   yechim   topish
asosiy maqsad qilib olindi.
Olib borilgan ishlar natijasida quyidagi xulosalarga kelindi:
Texnik   ko’rik   markazlarida   ma’lumotlarni   qog’oz   ko’rinishida   yoki   oddiy
jadvallarda   saqlash   usuli   bugungi   kun   talablariga   mutlaqo   javob   bermaydi.
Tadqiqotlar   davomida   inson   omili   sababli   yuzaga   keladigan   xatoliklar,
ma’lumotlarning   yo’qolishi   yoki   ularni   qidirib   topish   uchun   soatlab   vaqt
sarflanishi tizim samaradorligini sezilarli darajada tushirib yuborishi aniqlandi. Biz
ishlab   chiqqan   axborot   tizimi   esa   bu   kabi   muammolarni   tizimli   hal   qilib,   barcha
ma’lumotlarni   yagona,   xavfsiz   va   tezkor   raqamli   bazaga   jamladi.   Bu   esa   o’z
navbatida ish jarayonining shaffofligini ta’minladi.
Loyihaning texnik asosi bo’lgan PHP dasturlash tili va MySQL ma’lumotlar
bazasi   juftligi   o’zining   qanchalik   ishonchli   va   moslashuvchan   ekanligini   amalda
isbotladi.   Ma’lumotlar   bazasini   relyatsion   bog’liqliklar   asosida   qurishimiz
natijasida   ma’lumotlarning   asossiz   takrorlanishi   bartaraf   etildi.   Bu   nafaqat   server
xotirasini   tejashga,   balki   murakkab   so’rovlarning   ishlash   tezligini   bir   necha
barobar   oshirishga   xizmat   qildi.   Endilikda   minglab   mijozlar   va   avtomobillar
orasidan kerakli ma’lumotni soniyaning ulushlarida topish imkoniyati yaratildi.
Dasturning   foydalanuvchi   interfeysini   loyihalashda   xodimning   ish   qulayligi   eng
ustuvor   vazifa  sifatida  qaraldi.  "Step-by-Step"  yoki   bosqichma-bosqich   ma’lumot
kiritish shakllarining joriy etilishi operatorlar uchun katta amaliy qulaylik yaratdi.
Bu usul foydalanuvchining diqqatini tarqatmasdan, har bir bosqichda (mijoz, avto,
ko’rik   natijasi)   ma’lumotlarni   aniq   kiritishga   yordam   beradi.   Natijada,   tizimda
noto’g’ri   yoki   chala   ma’lumotlar   saqlanishi   ehtimoli   nolga   tushirildi.   Bu   esa
bazaning "tozaligi" va ishonchliligini kafolatlaydi. Tizimning xavfsizlik va ma’lumotlar yaxlitligi jihatlariga alohida e’tibor qaratildi.
PDO   texnologiyasining   qo’llanilishi   tizimni   tashqi   SQL   in’eksiya   hujumlaridan
ishonchli   himoya   qildi.   Dasturiy   kod   darajasida   kiritilgan   validatsiya   algoritmlari
esa operator ehtiyotsizlik qilib bo’sh maydonni saqlab yubormasligini ta’minlaydi.
Har bir amalning mantiqiy bog’liqligi bazaning mantiqiy butunligini saqlab turadi.
Tizimning   amaliy   natijalari   tahlil   qilinganda,   u   texnik   ko’rik   markazi   faoliyatini
butunlay yangi bosqichga olib chiqqani ma’lum bo’ldi. Ish jarayonining tezlashishi
mijozlarning   markazda   kutish   vaqtini   qisqartiradi,   raqamli   hisobotlar   esa
moliyaviy   shaffoflikni   ta’minlaydi.   Har   bir   kvitansiya   va   ko’rik   natijasining
raqamli muhrlanishi hujjat almashinuvini zamonaviylashtirdi.
Ushbu   kurs   ishi   doirasida   yaratilgan   "Texnik   ko’rik"   axborot   tizimi
zamonaviy  texnik talablarga  to’liq javob  beradigan,  amaliyotda qo’llashga  tayyor
va   barqaror   ishlovchi   dasturiy   mahsulotdir.   Ushbu   loyiha   nafaqat   nazariy
bilimlarni   amalda   qo’llashga,   balki   real   ishlab   chiqarish   jarayonlarini
raqamlashtirish orqali ish unumdorligini oshirishga xizmat qildi. Tizimning sodda
va tushunarliligi uni kelgusida keng ko’lamda joriy etish imkonini beradi.
FOYDALANILGAN ADABIYOTLAR RO’YXATI
1.G’ulomov S. S.  Axborot tizimlari va texnologiyalari. Darslik. T.: “Sharq”, 2002 
y.
2.Nixon R.  Learning PHP, MySQL & JavaScript: With Case Studies from 
Cheerful to Professional. – O’Reilly Media, 2018 3.Welling L., Thomson L.  PHP and MySQL Web Development. Addison-Wesley, 
2016.
4.Ziyodullayev A. R.  Ma’lumotlar bazasini boshqarish tizimlari (MySQL). O’quv 
qo’llanma. Toshkent, 2020 y.
5.Aliev R. M.  Axborot texnologiyalari. O’quv qo’llanma. T.: “Fan va 
texnologiya”, 2014 y.
6.PHP Official Documentation    www.php.net  (PHP tili bo’yicha rasmiy 
qo’llanmalar va funksiyalar kutubxonasi).
7.MySQL Official Documentation   dev.mysql.com  (Ma’lumotlar bazasini 
loyihalash va optimallashtirish bo’yicha qo’llanma).
8.W3Schools Online Web Tutorials    www.w3schools.com  
9.Stack Overflow  –
10.ZiyoNET Axborot ta’lim tarmog’i    www.ziyonet.uz  
11.   https://www.texnoman.uz/post/sql-structured-query-language-haqida.html
12.   https://uzbekdevs.uz/darsliklar/sql/sql-da-kirish

Ma’lumotlar bazasi bu ma’lumotlarni saqlash, boshqarish va ulardan samarali foydalanish uchun tashkil etilgan tizimdir. U ma’lumotlar to’plami, ularni saqlash uchun kerakli tuzilma va ulardan foydalanuvchilar tomonidan foydalanish imkoniyatlarini yaratadi. Ma’lumotlar bazalari ko’p hollarda turli maqsadlar uchun ishlatiladi: ma’lumotlarni tartibga solish, ma’lumotlar bilan ishlashni avtomatlashtirish, xavfsiz saqlash va so’rovlarni tezkor amalga oshirish.