logo

AVTASALON LOYIHASINI LOYIHALASHTIRISH VA ISHLAB CHIQISH ”

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

1561.0458984375 KB
AVTASALON LOYIHASINI LOYIHALASHTIRISH VA
ISHLAB CHIQISH ”  MAVZUSIDA 
KURS ISHI
                                         
                                             MUNDARIJA
Kirish
I. NAZARIY QISM
1 .1 .Microsoft Acces dasturi 
2. 1. Microsoft Access dasturidan foydalanib,kerakli jadvallar hosil qilish va  ularni
bir-biriga bog’lash
II. AMALIY QISM
2. 1 .Qt ga Accessni bog’lanishi
2. 2 .Qt  creatorda  Avtosalon  loyihasini yaratish
Xulosa
Foydalanilgan adabiyotlar
                                                     Kirish.
Loyihalashtirilayotgan   ma`lumotlar   bazasida   avtomobillar,   yetkazib
beruvchilar,   xodimlar,   guruh   nomlari,   to`lovlar,   foydalanuvchilar,   to`lov
qiymatlari,   xaridor,   to`lov   muddatlari   haqida   ma`lumotlarini   saqlaymiz.
Mohiyat-aloqa   modelidan   foydalanib,     quyidagi       mohiyatlar   aniqlandi:
foydalanuvchi,   tashkilot,   avtomobil,   avtomobil     modifikasiya,   yetkazib
beruvchi,   xodimlar,   to`lovlar,   to`lov   qiymatlari,   to`lov   muddatlari,   model,
davlat, status, rang, aloqa, inson, lavozim, model.
Foydalanuvchi       mohiyati .   Ro`yhatga   olingan   foydalanuvchilar   haqidagi
quyidagi    ma`lumotlarni  saqlaydi:  Foydalanuvchi  tartib raqami, familiya, ism
sharifi, foydalauvchi logini va paroli, foydalanish huquqi belgilash.
Tashkilot       mohiyati .     Avtosalon   haqidagi   quyidagi     ma`lumotlarni   saqlaydi:
Avtosalo   tartib   raqami,   nomi,   manzili,   telefon,   faks,   e-mail,   bank   rekvizeti,
inn, mfo.
Avtomobil     mohiyati .     Avtomobillar   haqidagi   quyidagi     ma`lumotlarni
saqlaydi:   tartib   raqami,   nomi   ,marka,   rangi,   kelgan   kuni,   narxi,   xaridor,
avtomobil   modifikasiya,   mijoz,   yetkazib   beruvchi   mohiyati   bilan   bog`lanish
uchun tartib raqam.
Modifikasiya   mohiyati .     Avtomobil   haqida   batafsil   quyidagi     ma`lumotlarni
saqlaydi: tartib raqam, avtomobil tartib raqami avtomobil bilan mohiyat bilan
bog`lanish   uchun,   nomi,   uzunligi,   kengligi,   balandlik,   og`irligi,   uzatish   turi,
maksimal tezligi, dvigitel turi, dvigitel hajmi, yoqilg`i turi, yoqilg`i sarfi.
Xodimlar   mohiyati.   Avtosalon   xodimlari   haqida   quyidagi   ma`lumotlarni
saqlaydi:  tartib raqam, Familiya  , Ismi, Sharifi, tug`ilgan sanasi,  ishga  kirgan
vaqti,   sih   haqi,   aloqa   tartib   raqami   aloqa   mohiyati   bilan   bog`lash   uchun,
lavomiz tartib raqami lavozim mohiyat bilan bog`lash uchun  
Yetkazib   beruvchi   mohiyati.   Avtomobillarni   yetkazuvchilar   haqida   quyidagi
ma`lumotlar   saqlaydi:   Yetkazuvchi   tartib   raqami,   nomi,   manzili,   bank rekvizetlari,   inn,   mfo,   telefon   raqami,   faks,   avtomobil   mohiyati   bilan
bog`lanish uchun bilan bog`lanish uchun tartib raqam.
Status   mohiyati.     Avtomobil   holati(sotilgan,   olib   kelayotgan,   sotib
olinayotgan ) quyida ma`lumotlar saqlaydi: tartib raqami, status nomi.
Lavozim   mohiyati.     Xodimlar   lavozim   nomlari   haqida   ma`lumotlar   saqlaydi:
tartib raqami, lavozim nomi.
Aloqa   mohiyati.     Aloqa   ma`lumotlari   haqida   quyidagi   ma`lumotlar   saqlaydi:
tartib   raqami,   telefon,   manzil,   faks,   e-mail   inson   tartib   raqami   xodim   va
mijozlar mohiyatlari bilan bog`lash uchun. 
Model   mohiyati.     Avtomobil   modellari   nomlari   haqida   ma`lumotlar   saqlaydi:
tartib raqami, model nomi.
Rang   mohiyati.     Avtomobil   ranglari   nomlari   haqida   ma`lumotlar   saqlaydi:
tartib raqami, rang nomi.
To`lov   turi   mohiyati.     To`lovlar   turi   nomlari   haqida   ma`lumotlar   saqlaydi:
tartib raqami, to`lov nomi.
Davlat mohiyati.     Davlat  nomlari haqida ma`lumotlar saqlaydi:  tartib raqami,
davlat nomi.
Mijoz mohiyati.   Mijozlar haqida ma`lumotlar saqlaydi: tartib raqami, familiya,
ismi,   sharifi,   inson     tartib   raqami   inson   mohiyati   bilan   bog`lanish   uchun,
avtomobil tartib raqami avtomobil mohiyati bilan bog`lanish uchun.
Bu   loyihada   avtasalon   loyohasinig   dastur   qismini   ham   malumotlar   bazasini
ham ko’rib ishlab chiqilgan. I.NAZARIY QISM
1.1 Microsoft Access dasturi.
Microsoft Access MBBT relyatsion ma’lumotar bazasini boshqaruvchi tizim
sanalib,   local   ma’lumotlar   bazasini   yaratish   uchun   barcha   instrumental   vositalar
hamda foydalanuvchi dastur tuzish imkoniyatlari mavjud. 
Microsoft   Access   MBBT   o‘z   ichiga   turli   ob’yektlarni   yaratish   uchun
avtonom vositalarga ega: 
- Grafik   konstrucciyalar   vositasi   ma’lumotlar   bazasi   ob’ektlarini   grafik
elementlar yordamida qurish imkoniyatiga ega; 
- Dialog   vosita   ma’lumotlar   bazasini   qayta   qurish   va   tashkillashtirish   uchun
turli vazifalarni bajaruvchi masterlar yordam beradi; 
- MBBT   ning   dasturlash   vasitasi   uz   ichiga   SQL,   makrokomandalar   tili   va
VBA uchun OMD ni olgan. 
  Ma’lumotlar   bazasi   –   ma’lum   sohaga   oid   o’zaro   boglangan   ma’lumotlar
yig’indisining disk tashuvchidagi tashkiliy jamlanmasi. 
Relyatsion   ma’lumotlar   bazasi   –   ikki   o’lchamli   jadvallarning
mohiyatmunosabat   mehanizmi   orqali   bog’lanishidir.   Relyacion   ma’lumotlar
bazasining logic aloqasi o’zaro logic bog’langan jadvallar majmuini tashkil etadi. 
Ma’lumotlarning   relyacion   modeli   normallashtirish   orqali   yaratiladi.
Normallashtirish   jarayoni   qayta   takrorlanuvchi   ma’lumotlarni   yangi   jadvalga
kuchirishdan   iborat   hodisadir.   Relyacion   jadval   structurasi   maydon   bilan
belgilanadi.   Maydonga   ma’lumot   turi   v   ahajmi   kabi   hossalar   kiritiladi.   Maydon
tarkibi jadval ustunlarida keltiriladi. Har bir qator ma’lumotning bitta ekzemplyari
bo’lib,   yozuv   deb   nomlanadi.   Har   bir   yozuvni   identifikatciyasi   uchun     unikal
birlamchi   kalit   qullaniladi.   Kalit   bir   yoki   bir   nechta   maydondan   iborat   bo’lishi
mumkin. Ikki jadvalni bog’lash uchun tashqi kalitdan foydalaniladi. Bunda birga-
bir (1:1), birga-kup(1:N) va kupgakup(M:N) munosabatlar urnatilishi mumkin.    Ma’lumot sxemasi ma’lumotlar bazasinig mantiqiy structurasini yaqqol namoiysh
etadi hamda ndagi mavjud vositalar orqali ma’lumotlarni qayta ishlashni amalgam
oshiradi.  
Shunday   imkoniyatlardan   biri   bog’liqlik   birligi   bo’lib,   uning   yordamida
bog’liq jadvalda ham asosiy jadvaldagi uzgarishlarni uchirish, qushish, uzgartirish
amalgam oshirish mumkin.    
Ma’lumot sxemasida har qanday bir hil tipli maydonlari mavjud jadvallarni
birlashtirish mumkin. 
  Ma’lumotlar bazasi mdb-faylida quyidagi ob’yektlarni o‘z ichiga oladi: 
- jadvallar, surovlar, ma’lumotlar sxemasi; 
- formalar, hisobotlar, makroslar, modullar; 
Formalar,   hisobotlar   va   betlar   ma’lumotlarni   yangilash,   kurish,   kriteriya
bo’yicha qidirish va hisobot olish uchun ishlatiladi.  
Ob’ectlarga   murojaatni   avtomatlashtirish   uchun   dastur   kodi   modul   va
makroslarga   kiritiladi   va   VBA   da   kompilyaciyaga   beriladi.   Har   bir   ob’ekt   va
boshqaruv elementi hossalar tuplamiga ega.  
Jadvallar           ma’lum   bir   narsa   haqida   ma’lumotlarni   sqlash   uchun
foydalanuvchi   tomonidan   yaratiladi   –   yagona   information   obektda   ma’lumotlar
modeli   predmetli   sohasi.   Jadval   qator   va   ustunlardan   iborat.   Har   bir   ustun   bir
harakteristik   information   obekt   predmet   sohasi.   Bu   erda   bir   informatson   obekt
ekzemplyari   haqidagi   ma’lumotlar   saqlanadi.   Access   ma’lumotlar   bazasi   o’ziga
32768   tagacha   obekt   qabul   qilishi   mumkin   (formalar,   otchetlar   va   hokazo   ).   Bir
vaqtni   o’zida   2048ta   gacha   jadval   ocha   oladi.   Jadvallarni   quyidagi   ma’lumotlar
bazasidan import  qilsa bo’ladi  dBase,  FoxPro, Paradox va boshqa programma va
electron jadvallardan. 
Tanlash   so’rovi     bog’langan   jadvallarda   kerakli   ma’lumotlarni   tanlash
uchun kerak. So’rovning javobi tanlangan jadvaldagi so’ralgan narsani ko’rsatadi.  So’rovda   jadvalni   qaysi   satrini   tanlashni   ko’rsatish   mumkin   .   So’rovni   QBE
so’rovlar yordamida shakllash mumkin. 
Ma’lumotlar   sxemasi   qaysi   satr   bilan   jadval   bog’langanligini   ko’rsatadi,
qaysi   yo’l   bilan   ular   bog’lanishi,   bog’langandan   keyin   tekshirish   kerak
kerakmasligini va jadvallarda kalitlarni o’zgarishini ko’rsatadi. 
Access   boshqa   Microsoft   Windows   prorammalariga   o’hshab   qulay   grafik
interfeysga   ega,   foydalanuvchi   uchun   qulaylikka   mo’ljallangan.   Ma’lumotlar
bazasi   jadvallari   bilan   ishlash   va   boshqa   obektlar   bilan   ishlash   uchun   juda   ko’p
kommanda va menyular bor. 
Microsoft   Office   keng   tarqalgan   ofis   ishlarini   avtomatlashtiruvchi   dasturlar
paketidir.   Uning   tarkibiga   kiruvchi   Access   nomi   dasturlar   majmuasi   xozirda
MBBT sifatida keng o’rganilmoqda va qo’llanilmoqda. 
MBBT   ichida   Access   eng   sodda   va   foydanuvchi   uchun   qulay   bo’lgan,
Microsoft Office tarkibiga kiruvchi dasturdir. Microsoft Access MBBT relyatsion
modellar   asosiga   qurilgan   bo’lib,   unda   tuziladigan   MB   jadvallar   ko’rinishida   aks
etadi.  
Microsoft Access MBBT o‘z ichiga turli ob’yektlarni yaratish uchun avtonom
vositalarga ega: 
- Grafik   konstruksiyalar   vositasi   ma’lumotlar   bazasi   ob’ektlarini   grafik
elementlar yordamida qurish imkoniyatiga ega; 
- Dialog   vosita   ma’lumotlar   bazasini   qayta   qurish   va   tashkillashtirish   uchun
turli vazifalarni bajaruvchi masterlar yordam beradi; 
- MBBT   ning   dasturlash   vositasi   o’z   ichiga   SQL,   makrokomandalar   tili   va
VBA uchun OMD ni olgan. 
 Ma’lumotlar bazasi mdb-faylida quiydagi ob’yektlarni o‘z ichiga oladi: 
- jadvallar, so’rovlar, ma’lumotlar sxemasi; 
- formalar, hisobotlar, makroslar, modullar;  Formalar,   hisobotlar   va   betlar   ma’lumotlarni   yangilash,   kurish,   kriteriya
bo’yicha qidirish va hisobot olish uchun ishlatiladi.  
Ob’yektlarga   murojaatni   avtomatlashtirish   uchun   dastur   kodi   modul   va
makroslarga   kiritiladi   va   VBA   da   kompilyaciyaga   beriladi.   Har   bir   ob’ekt   va
boshqaruv elementi hossalar tuplamiga ega.  
Access  ning  “ Создание ”  bo’limi  oltita  qismni  tasvirlaydi.  Bular 
« Таблицы »(jadvallar), « Запросы »(So’rovlar), « Формы » (Shakllar), « Отчёты »
(Xisobotlar), « Макросы   и   код  » (Makroslar va kod)(1-rasm). 
1. « Таблицы »   (Jadvallar)-MB   ning   asosiy   ob’ekti.   Unda   ma’lumotlar
saqlanadi.   Ma’lum   bir   narsa   haqida   ma’lumotlarni   saqlash   uchun   foydalanuvchi
tomonidan yaratiladi – yagona information obektda ma’lumotlar modeli predmetli
sohasi.   Jadval   qator   va   ustunlardan   iborat.   Har   bir   ustun   bir   xarakteristik
informatsion   obekt   predmet   sohasi.   Bu   yerda   bir   informatsion   ob’yekt
ekzemplyari   haqidagi   ma’lumotlar   saqlanadi.   Access   ma’lumotlar   bazasi   o’ziga
32768 tagacha ob’yekt  qabul  qilishi  mumkin (formalar, otchetlar  va  hokazo). Bir
vaqtni   o’zida   2048   tagacha   jadval   ocha   oladi.   Jadvallarni   quyidagi   ma’lumotlar
bazasidan  import  qilsa  bo’ladi  dBase,  FoxPro,  Paradox  va  boshqa  programma  va
elektron jadvallardan. 
2. « Запросы »   (So’rovlar)-bu   ob’ekt     ma’lumotlarga   ishlov   berish,
jumladan,   ularni   saralash,   ajratish,   birlashtirish,   o’zgartirish   kabi   vazifalarni
bajarishga   mo’ljallangan.   So‘rovlar     ko‘rish,   taxlil   qilish   va   berilganlarni
o‘zgartirish   orqali   berilgan   mezonlarni   qondirishga   mo‘ljallangan.   Access   da
so‘rovlar   parametrlari   so‘rov   konstruktori   oynasida   beriladgan   QBE   –   so‘rovlar
(Query By Example – namuna bo‘yicha so‘rov) va so‘rovlar tashkil qilishda SQL
tilining   buyruqlari   va   funktsiyalari   qo‘llaniladigan   SQL-so‘rovlar   (Structured
Query   Language   –   so‘rovlarning   strukturali   tili)   ga   bo‘linadi.     Access   QBE   -
so‘rovlarni osongina SQL-so‘rovlarga va teskarisiga o‘tkazadi.  3. « Формы »   (Shakllar)-bu   ob’ekt   ma’lumotlarni   tartibli   ravishda   oson
kiritish   yoki   kiritilganlarni   ko’rib   chiqish   imkonini   beradi.   Shakl   tuzilishi   bir
qancha matnli maydonlar, tugmalardan iborat bo’lishi mumkin. Formalar muloqot
interfeysi ilovasining asosiy vositasi. Forma ekranda o’zaro bog’langan jadvallarni
ko’rish   uchun   qulay.   Tugmali   formalarni   boshqarish   panelini   yaratish   uchun
ishlatish   mumkin.   Formalarga   rasmlar,   diagrammalar,   tovush   fragmentlari,   video
qo’yish mumkin.  Formalarda xodisalarni qayta ishlash mumkin. 
4. « Отчёты » (Xisobotlar)-bu ob’ekt yordamida saralangan ma’lumotlar
qulay va ko’rgazmali ravishda qog’ozga chop etiladi.  Foydalanuvchi masalasining
natijalari, kiritish va chop etishlarni o’z ichiga olgan hujjatlarni formatlaydi. 
 
1-rasm. MS Access menyular qatori(MS Office 2010). 
5. « Макросы   и   код » (Makroslar va kod)-makrobuyruklardan iborat va
Microsoft Access  dasturining imkoniyatini oshirish maqsadida ichki  Visual  Basic
tilida yozilgan dasturlarni o’z ichiga  oluvchi ob’ekt. 
1.2.Microsoft Access dasturidan foydalanib, kerakli jadvallar hosil qilish va
ularni bir – biriga bog’lash.
Ma’lumotlar   bazasi   -   axborot   tizimlarining   eng   asosiy   tarkibiy   qismi   bo’lib
hisoblanadi.   Ma’lumotlar   bazasidan   foydalanish   uchun   foydalanuvchi   ishini
yengillashtirish maqsadida ma’lumotlar bazasini boshqarish trizimlari yaratilgan. 
Bu   tizimlar   ma’lumotlar   bazasini   amaliy   dasturlardan   ajratilgan   holda
qaraydi.Ma’lumotlar   bazasini   boshqarish   tizimi   (MBBT)   -   bu   dasturiy  va   apparat
vositalarining   murakkab   majmuasi   bo’lib,   ular   yordamida   foydalanuvchi
ma’lumotlar   bazasini   yaratish   va   shu   bazadagi   ma’lumotlar   ustida   ish   yuritish
mumkin.    Men   bu   kurs   ishini   Microsoft   Access   da   yaratim.   Buning   uchun   birinchi
o’rinda Microsoft Office ichidan Microsoft Access ni ochamiz. 1-rasm. 
2-rasm.
Access dasturiga kirish qismi.
Yaratilayotgan bazaga nom berilib  создать   tugmasi bosiladi va asosiy oynaga
o’tiladi. 3-rasm. Access dasturiga kiramiz.
Bizning loyihamiz Avtosalon bo’lganligi sababli jadval nomini “mashina” deb
nomladim va u quyidagi ko’rinishda namayon boldi:
4-rasm.
4-rasmda     avtasalon   loyihasiga   ,alumotlarni   kiritib   chiqdim   bunda   mashina
rusumi,rangi,narhi,kelgan   kuni,sotilgan   kuni   va   hakoza   malumotlarni   kiritib
chiqdim. II.AMALIY QISM
  2.1.Qt   creatorda   avtosalon   loyihasini   loyihalashtirishni   va   ishlab   chiqishni
ko’rib chiqamiz yaratish
Stillar   jadvallari-barcha   ilovalar   uchun   QApplication::setStyleSheet()
yoki   QWidget::setStyleSheet()   orqali   ma'lum   bir   vidjet   (va   uning   avlodlari)
uchun   o'rnatilishi   bo'lgan   matnli   xususiyatlardir.   Agar   turli   darajalarda   bir
nechta   uslublar   jadvallari   o'rnatilgan   bo'lsa,   Qt   barcha   o'rnatilgan   uslublar
jadvallaridan samarali  uslublar   jadvalini  yaratadi.  Bunga  kaskadlash   deyiladi.
mumkin
Misol   uchun,   quyidagi   uslublar   jadvali   barcha   QLineEdit   maydonlarini
fon   sifatida   sariq   rang   sifatida   ishlatishi   kerakligini   ta’minlaydi   va   barcha
QCheckbox   obyektlari   matn   rangi   sifatida   qizildan   foydalanishi   kerakligini
o’rnatadi:
QLineEdit { background: yellow }
QCheckBox { color: red }
Stillar   jadvallari   faqat   QPalette   yordamida   amalga   oshirish   qiyin   yoki
mumkin   bo'lmagan   barcha   turdagi   sozlamalarni   amalga   oshirish   imkonini
beradi. Agar siz majburiy joylar uchun sariq fonni olishni istasangiz, potentsial
xavfli tugmalar yoki odatiy tugma uchun qizil matnni o’rnatmoqchi bo’lsangiz
stillar jadvallari bunga yordam beradi.
Stillar   jadvallari   joriy   vidjetlarning   yuqori   qismida   qo'llaniladi,   ya'ni
ilovalaringiz   iloji   boricha   tabiiy   ko'rinadi,   ammo   uslublar   jadvalining   har
qanday   cheklovlari   hisobga   olinadi.   Yaroqsiz   palitradan   farqli   o'laroq,   stillar
jadvallari   quyidagilarni   ta'minlaydi:   Agar   siz   QPushButton   uchun   qizil   fon
rangini   o'rnatgan   bo'lsangiz,   tugma   fonining   barcha   uslubda,   barcha
platformalarda   qizil   bo'lishiga   ishonch   hosil   qilishingiz   mumkin.   Bundan
tashqari,   Qt   Designer   uslublar   jadvallarini   integratsiyalashni   ta'minlaydi,   bu
esa   turli   xil   vidjet   uslublarida   ulardan   foydalanish   samarasini   ko'rishni
osonlashtiradi. Bunga   qo'shimcha   ravishda,   stillar   jadvallari   QStyle   kichik   sinflarini
ishlatmasdan sizning ilovangizga o'ziga xos ko'rinish berish uchun ishlatilishi
mumkin.   Masalan,   siz   radio   tugmachalari   uchun   maxsus   rasmlarni
o’rnatishingiz   va   ularni   belgilangan   holati     uchun   boshqa   tasvirlarni
joylashtirishigiz   mumkin.   Ushbu   texnikadan   foydalangan   holda,   siz   odatda
stillar   ko'rsatmalari   kabi   bir   nechta   uslublar   sinflarida   meros   olishni   talab
qiladigan kichik o'zgarishlarni amalga oshirishingiz mumkin.
  Quyidagi   rasmda   ko'rsatilgan   stillar   jadvallari   ikkita   turli   xil   uslub
jadvallarini aniqlaydi, ularni sinab ko'rishingiz va o'zgartirishingiz mumkin.
Stillar   to'plami   har   qanday   faol   uslublar   jadvali   hisobga   olinishini
ta'minlaydi   va   boshqa   tasvirchizish   operatsiyalari   platformalarga   qaram
bo'lgan uslubni aniqlaydi.
1. Ro’yxatli vidjetlar.
Tanlov   elementlari   ma'lumotlarni   ko'rsatish,   o'zgartirish   va   tanlash
uchun standart grafik elementlar hisoblanadi.
Oddiy ro'yxat
QListwidget   klassi   foydalanuvchini   bitta   yoki   bir   nechta   elementni
tanlash   imkoniyatini   beruvchi   ro'yxat   vidjetidir.   Ro'yxat   elementlari   matn   va
rastr tasvirlarni o'z ichiga olishi mumkin. Ro'yxatga elementni qo'shish uchun
additem()  usulini ishlatish kerak.
Ushbu   usulning   ikkita   variantini   bor:   QListWidgetItem   matn   va   sinf
ob'ekti uchun. Agar ro'yxatdagi barcha elementlarni olib tashlash kerak bo'lsa,
clear()  metodidan foydalanish kerak.
QListWidgetItem-   sinfi   ro'yxat   elementlari   uchun   sinf   hisoblanadi.   Ushbu
sinflarning   ob'ektlari,   masalan,   matnni   QListWidget::addItem() .   usuliga
uzatishda   bevosita   yaratilishi   mumkin.Shuni   ta'kidlash   kerakki,
QListWidgetItem   klassi   nusxa   ko'chirish   konstruktorini   taqdim   etadi,   bu   esa
elementlarning   nusxalarini   yaratishga   imkon   beradi.   Bundan   tashqari,   bu
maqsadda  clone()  usulidan foydalanishingiz mumkin. Ro’yxat Elementlarini kiritish
Bir   vaqtning   o'zida   bir   nechta   matn   elementlarini   ro'yxatga   bir   qatorga
qo'shib   qo'yish   mumkin,   bunda   satrlarning   ro'yxatini   o'z   ichiga   olgan
QStringList-ni   InsertItems()   usulidan   foydalaniladi.   Matn   elementini   yaratish
uchun siz   InsertItem()   usulidan  foydalanish  mumkin, faqat   parameter   sifatida
satr   berilishi   kerak.  QListWidgetItem   ob'yekti,   shuningdek,   insertItem()   usuli
yordamida   ro'yxatga   kiritilishi   mumkin.   U   addItem()   usulidan   qo'shiladigan
elementning   aniq   o'rnini   ko’rsatish   mumkinligi   bilan   farq   qiladi.Yaratilgan
elementga   ro'yxat   ob'ekti   QListWidgetItem::setIcon()   usuli   yordamida
qo’shiladigan elementga rasm o’rnatiliishi mumkin.
Shunisi   e'tiborga   loyiqki,   ro'yxat   elementlarida   nafaqat   rasmlar   va
matnlar,   balki   vidjetlar   ham   o'rnatilishi   mumkin.   Buning   uchun   QListWidget
klassining   setItemWidget()   va   itemWidget()   usullaridan   foydalansa   bo’ladi.
SetItemWidget()   usulining   birinchi   parametri   ro'yxat   ob'ekti   ob'ektiga
ko'rsatgichni,   ikkinchisi   -   vidjetga   ko'rsatgichni   o'tkazish   kerak.   Ro'yxat
elementida   joylashgan   vidjetga   ko'rsatgichni   olish   uchun,   elementni
listWidget()  usuliga ro'yxat elementi ob'ektiga o'tkazish kerak.
Operatsion   tizimlarning   ro'yxatini   ko'rsatadigan   oddiy   ro'yxatni
ishlatishga misol quyida keltirilgan
#include <QtGui>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QStringList lst;
QListWidget lwg;
QListWidgetItem* pitem = 0;
lwg.setIconSize(QSize(48, 48));
lst << "Linux" << "Windows" << "MacOS" << "OS2"; foreach(QString str, lst) {
pitem = new QListWidgetItem(str, &lwg);
pitem->setIcon(QPixmap(str + ".jpg"));
}
lwg.resize(125, 175);   lwg.show();  return app.exec();
                                                              }
Oddiy ro'yxat vwget lwg yaratildi.Ro'yxat vidjetining  setIconSize()  usuli
elementlarning   rasmlari   uchun   hajmni   belgilaydi.   Keyin   lst   satrlari   ro'yxati
elementlar uchun matnlar bilan to'ldiriladi. Ushbu ro'yxatga foreach operatori
yordamida   elementlar   yaratamiz   va   qo'shamiz.   SetIcon()   usuli   bilan   har   bir
element uchun tasvir o'rnatiladi.
Ro’yxat elementlarini tanlash
QListWidget   ::   currentItem()   usuli   yordamida   foydalanuvchi   qaysi
elementni   tanlaganligini   bilib   olish   mumkin,   u   tanlangan   elementga
ko'rsatgichni   qaytaradi.   Agar   bir   nechta   element   tanlangan   bo'lsa,   u   holda
tanlangan   elementlar   ro'yxatini   qaytarib   beradigan   selectedItems()   usulidan
foydalanish   kerak.   Ko'p   tanlov   rejimini   yoqish   uchun   QAbstractItemView
bazasida   amalga   oshiriladigan   setSelectionMode()   usuliga
QAbstractItemView::MultiSelection   qiymatini   o'rnatish   kerak.   Boshqa
qiymatlarni   berib,   masalan,   tanlovni   butunlay   o'chirib   qo'yish   uchun
QAbstractItemView::NoSelection -ni   qiymatni   va   faqat   bitta   elementni
belgilaydigan   qilish   uchun   -   QAbstractItem::SingleSelection -ni   parameter
sifatida ishlatish kerak. 
Ro'yxat   elementi   ustida   sichqoncha   bosilganda   itemClicked()   signali
yuboriladi.   Ikki   marta   bosilganda,   itemDoubleClicked()   signali
QListWidgetItem*   parametri   bilan   yuboriladi.   Har   safar   tanlov   o'zgarganda,
itemSelectionChanged()  signali yuboriladi.
Foydalanuvchi tomonidan elementlarni o'zgartirish Foydalanuvchiga   elementning   matnini   o'zgartirishga   imkon   berish
uchun  QListWidgetItem::setFlags()  usuliga kerakli  ob'ektidan murojaat qiling
va   unga   Qt::ItemIsEditable   qiymatini   va   boshqa   kerakli   qiymatlarni   bering.
Misol uchun:
pitem->setFlags(Qt::ItemIsEditable|Qt::ItemIsEnabled);
Qayta   nomlash   ro'yxat   elementini   ikki   marta   bosish   yoki   <F2>
tugmachasini   bosish   orqali   amalga   oshiriladi.   Qayta   nomlash   tugagach,
QListWidget   elementni   o'zgartirilgan   (QListWidgetItem*)   va   itemRenamed
(QListWidgetItem *) signallarini yuboradi.
2.2.Qt   ga   Accesni   bog’lash   va   Avtosalon   loyiha   dasturini
yaratish
Biz birinchi navbatda Qt creator ni ishga tushirib dastur tuzishga tayyor 
holga kelgandan so’ng dastur tuzishni boshlaymiz. Ishchi maydonga 
Push Button  tugmadan  5ta quyib text xususiyatdan tugmani nomlab 
chiqamz dastur natijasni tableViewchiqaradigan qilamz.Bu dastrur kodi:
5-rasm. Quyidagi rasmda ishchi maydonga 3 ta Push Button 2 ta Label 1 ta 
lineEdit va bitta TableView larni qoyib chiqamiz:
Dastur kodi quyidagicha:
#include   "mainwindow.h"
#include   "ui_mainwindow.h"
#include   <QDebug>
#include   <QSqlError>
#include   <QDir>
#include   <QMessageBox>
#include   "kiritish.h"
MainWindow ::MainWindow( QWidget   *parent)   :
     QMainWindow (parent),
     ui ( new   Ui :: MainWindow )
{
     ui ->setupUi( this );
     QSqlDatabase   db;
     kr = new   kiritish ();
             QSqlQueryModel   *m= new  
QSqlQueryModel ();
             db   =  
QSqlDatabase ::addDatabase( "QODBC" );
            
db.setDatabaseName( "DRIVER={Microsoft   Access  
Driver   (*.mdb)};FIL={MS  
Access};DBQ=Avtosalon.mdb" );
             if (!db.open())
             {
                
QMessageBox ::critical( this ,tr( "Ошибка" ),db
.lastError().text());
             }
             QSqlTableModel   *model;              model   =   new   QSqlTableModel ( this );
                model-> setTable ( "mashina" );
                ui -> tableView -
>setSelectionBehavior( QAbstractItemView :: SelectR
ows );
                    ui -> tableView -
>setSelectionMode( QAbstractItemView :: SingleSelec
tion );
                    ui -> tableView -
>resizeColumnsToContents();
                    ui -> tableView -
>setEditTriggers( QAbstractItemView :: NoEditTrigge
rs );
                    ui -> tableView -
>horizontalHeader()-
>setStretchLastSection( true );
                    model-> select ();
                   //QTableView   *view   =   new  
QTableView;
                   ui -> tableView -
> setModel (model);
                   ui -> tableView ->show();
}
MainWindow ::~ MainWindow ()
{
     delete   ui ;
}
void   MainWindow ::on_pushButton_clicked()
{
     close();
}
void   MainWindow ::on_pushButton_2_clicked()
{      kr ->show();
}
void   MainWindow ::on_pushButton_3_clicked()
{
     QSqlQueryModel   *m;
     m= new   QSqlQueryModel ();
          int   row,col;
          row= ui -> tableView -
>currentIndex().row();
          col= ui -> tableView -
>currentIndex().column();
      //      qDebug()<<row;
     //       qDebug()<<col;
          qDebug ()<< ui -> tableView ->model()-
> index (row, 0 ).data().toString();
          QMessageBox *   pmbx   =
                              new  
QMessageBox ( "Xabar" , "Malumotni   haqiqatdan   ham  
o'chirmoqchimisiz" ,
                                  
QMessageBox :: Information ,
                                  
QMessageBox :: Yes ,
                                  
QMessageBox :: No ,
                                  
QMessageBox :: Cancel );
          int   n   =   pmbx-> exec ();
          delete   pmbx;
          if   (n   ==   QMessageBox :: Yes )
          {
            //   Yes   tugmasi   bosilganda  
bajariladigan   amal;
          }           m->setQuery( "delete   from   mashina   where  
id_mashina=" + ui -> tableView ->model()-
> index (row, 0 ).data().toString());
          m->setQuery( "Select*   from   mashina" );
          ui -> tableView -> setModel (m);
}
void   MainWindow ::on_lineEdit_2_textChanged( const
QString   &arg1)
{
  //     QSqlQuery   query;
   //        query.exec("mashina"+ui->lineEdit-
>text());
   //        query.next();
    //       ui->tableView-
>setText(query.value(0).toString());
     QSqlQueryModel   *m;
     m= new   QSqlQueryModel ();
            m->setQuery( "SELECT   mashina_rusumi,  
mashina_yili,   mashina_narxi,   mashina_soni,  
mashina_rangi   FROM   mashina   WHERE    mashina_rusumi
like   " + ui -> lineEdit_2 ->text()+ "   or   mashina_yili  
like   " + ui -> lineEdit_2 ->text()+ "   or   mashina_soni  
like   " + ui -> lineEdit_2 ->text()+ "   or   mashina_narxi
like   " + ui -> lineEdit_2 ->text()+ "   or   mashina_rangi
like   " + ui -> lineEdit_2 ->text());
            if (m) ui -> tableView -> setModel (m);
}
Bu kod qismimiz mainwindow.cpp balimidagi kod hisoblanadi Bizda kiritish qismining ham kod qisi bor bu qisim asosiy oynadan 
yordamchi oynaga murojat qiladi yani ikkinchi oynaga.
Bu qisimning dastur kodi:
#include   "kiritish.h"
#include   "ui_kiritish.h"
#include   <QSqlQuery>
#include   <QMessageBox>
#include   <QSqlQueryModel>
#include   <mainwindow.h>
kiritish :: kiritish ( QWidget   * parent )   :
     QDialog ( parent ),
     ui ( new   Ui :: kiritish )
{
     ui -> setupUi ( this );
}
kiritish ::~ kiritish ()
{
     delete   ui ;
}
void   kiritish :: on_pushButton_2_clicked ()
{
     close ();
}
void   kiritish :: on_pushButton_clicked ()
{
     QSqlQuery   query ;
//         query.exec("INSERT   INTO  
mashina(mashina_rusumi,mashina_rangi,  
mashina_narxi,   mashina_soni,   mashina_yili)"
//                    "VALUES   ('Tiko','qora')");      query . prepare ( "INSERT   INTO   mashina  
(mashina_rusumi,mashina_rangi,   mashina_narxi,  
mashina_soni,   mashina_yili)   "
               "VALUES   (:mashina_rusumi,
:mashina_rangi,   :mashina_narxi,   :mashina_soni,   :
mashina_yili)" );
        query . bindValue ( ":mashina_rusumi" ,   ui -
> lineEdit -> text ());
        query . bindValue ( ":mashina_rangi" ,   ui -
> lineEdit_2 -> text ());
        query . bindValue ( ":mashina_narxi" ,   ui -
> lineEdit_3 -> text ());
        query . bindValue ( ":mashina_soni" ,   ui -
> lineEdit_4 -> text (). toInt ());
        query . bindValue ( ":mashina_yili" ,   ui -
> lineEdit_5 -> text (). toInt ());
        query . exec ();
       
QMessageBox :: information ( this , "Xabar" , "Bazaga  
ma`lumotlar   kiritildi" );
        ui -> lineEdit -> clear ();
        ui -> lineEdit_2 -> clear ();
        ui -> lineEdit_3 -> clear ();
        ui -> lineEdit_4 -> clear ();
        ui -> lineEdit_5 -> clear ();
//         QSqlQueryModel   *m;
//         m=new   QSqlQueryModel();
//         m->setQuery("Select*   from   mashina");
//         MainWindow   *mn;
//         mn=new   MainWindow();
//         mn->table
}
void   kiritish :: on_pushButton_3_clicked () {
     ui -> lineEdit -> clear ();
     ui -> lineEdit_2 -> clear ();
     ui -> lineEdit_3 -> clear ();
     ui -> lineEdit_4 -> clear ();
     ui -> lineEdit_5 -> clear ();
    
QMessageBox :: information ( this , "Xabar" , "Kiritilga
n   malumotlarni   tozalash" );
}
Kabi ko’rinishda.
Endi dasturimizning dizaynini ko’rib chiqamiz:
Biz bu oynada fon ranglaridan va shirift ranglaridan foydalanganmiz.
Yani font bolimidan foydalanib:
Matn shiriftlarini o’zgartirganman va quyidagi ko’rinishga kelgan.
6-rasm.
Quyidagi bo’limda oynamizga ranglarni kiritib chiqamiz. Font bolimiga kirganimizda
7-rasm.
Quyidagi oynadan foydalanib shiriftlarni ozgartiramiz. 8-rasm.
Bu yerda ranglarni kiritib chiqyapmiz rang fonlarni tanlab chiqyapmiz.
9-rasm. Quyidagi   bandlar   styleSheet   bo’limida   joylashgan   va   shulardan   foydalanib
dasturimizga turli hil dizaynlarni kiritib o’zgartirishimiz mumkin.
Endi esa dasturimizning ishlashini ko’rib chiqamiz:
10-rasm.
Mana dasturimiz ishga tushdi bu yerda   bandiga kirsak  11-rasm.
Va   malumotlarni   quyidagi   ko’rinishda   kiritib   chiqamiz   va  
bolimini tanlaymiz 
12-rasm.
va OK tugmasini  bosamiz.Yana  qiymat  kiritmoqchi  bo’lsak     yoki
 bandlaridan foydalanishimiz mumkin. Dasturni qaytadan ishga tushurib
13-rasm. 
Malumotlarning ko’rinishini ko’rib chiqyapmiz.
  bandini   tanlasak 14-rasm. Bu rasmda ma’lumotlarni o’chirib chiqarishni ko’rib chiqamiz
4   satrni   tanlasak   tepadagi   oyna   hosil   bolib   YES   tugmasini   bossak   o’chib
ketadi.
 bandi esa dasturdan chiqishimizni taminlaydi.
Endi esa malumotlarni qidirishni ko’rib chiqamiz.
Misol uchun 4 sonini kiritganimizda satirda 4 soni bo’lgan malumotlarni bizga
ko’rsatadi va u quyidagicha ko’rinishda:
Har bir tugmani bosganimzda tugmadagi nom orqali uning xususiyatlari tableView
widgetga chiqadi. Bu bulimlarni kurib turganizdek hamma bulimlar bilan tanishib
chiqdik va shularni hammasini ishlashini va ishlatishni urganib chiqdik.
15-rasm.
Bu quyidagi rasmda ohirgi ishlarimiz qilib korsatib chiqdim. Xulosa. 
Xulosa qilib shuni ta’kidlash mumkin, xozirgi fan-texnika xamda informatsion 
texnologiyalarining jadal rivojlanayotgan vaqtida ATlarga bo`lgan talablar juda
xam kuchli bo`lib, bu talablarni to`laqonli qondirish biz va bizga o`xshash yosh
dasturchilarning oldida turgan ulkan vazifalardan biri bo`lib xisoblanadi.  Men 
tomonidan ishlab chiqilgan ilova har bir mijoz uchun to'lovlar va hisobdan  
yechib olinganlar haqidagi ma'lumotlarni saqlaydi; uyali aloqa operatori bilan  
shartnomalar tuzish va bekor qilish imkonini beradi; u yoki bu mijoz 
tomonidan   qilingan barcha qo'ng'iroqlarni to'ldirish. Hisobotlarni qabul qilish 
va ma'lumotlar   bazasidagi barcha jadvallarni ko'rish   mumkin.
Kurs   ishi   natijasida   mobil   operator   ma’lumotlar   bazasiga   tezkor   kirish   uchun  
dastur   ishlab   chiqdim.
Ushbu kurs ishi natijasida SQL da ma'lumotlar bazasini boshqarish 
tizimidan   foydalanish bo'yicha   ko'nikmalarga   ega   bo'ldi.
“My   SQL   Serverda   ma’lumotlarni   o‘zgartirish   operatorlari   Insert,   Update,
Delete”   nazariy   savoli   yoritildi,   My   SQL   Serverda   ma’lumotlar   bazasi   ishlab
chiqildi, kurs   ishi   matni   tuzildi.
Ishlab chiqilgan ilova korporativ serverdagi barcha ma'lumotlarni oddiygina  
kiritish orqali ishni hujjatlar bilan almashtirish orqali uyali aloqa operatori  
xodimlarining ishini soddalashtirishga mo'ljallangan. Va keyinchalik to'g'ridan-  
to'g'ri   serverda   ma'lumotlar   bilan   ishlash,   bu   ma'lumotlarni   qayta   ishlash   vaqtini  
va   tayyor   ma'lumotni   olishni   sezilarli   darajada   kamaytiradi.
Menga   berilgan   loyiha   “avtosalon   loyihasini   loyihalashtirishva   ishlab
chiqish” loyihasi ishlab chiqdim bunda avtosalon  haqida mashinalar haqida rusumi
haqida malumotlarni chiqaruvchi dastur tuzdim bu dasturni tuzishim uchun birinchi
navbatda   Acsessda   malumotlar   bazasini   yaratib   olamz   va   Qt   Creatorga   ulanish
kodlarini   terb   ulab   dsturni   tuzdim.Bunda   tugmalar   va   vedjetlardan   foydalandm
dizayn   qismini   qilsh   uchun     Background   color   bo’limidan   foydalanib   tuzdm.Bu
kurs   ishida   asosan   tableWidget     fofdalaniladi.Bu   dasturni   ishlatishdan   maqsad
foydalanuchi   ishini   osonlashtiradi.Mashina   tugmasini   bosib   rangi,qachon
sotilgani,narxi,rusumi,kelgan,ketgan vaqtlari   haqida ma’lumotlar  haqida ma’lumot
batafsil ekrang chiqadi. Foydalanilgan adabiyotlar
1. Зеленко Л. С. Программная.pdf   
2. Липаев_Программная                                  
3. antamoshkin_oa_programmnaia_inzheneriia_teoriia_i_praktika.pdf
4.  c_dasturlash_tilida_hisoblash_kalkulyatori_yaratish.pdf
5.   C++ dasturlash_tilini_organish (1).pdf
6.   Dasturlash asoslari-2018.pdf
  7.   Modern Information Systems-20200824.zip
8.  Orlov_Programmnaya_injeneria.pdf
9.  Progr_ingeneria_web.pdf
          
                 Foydalanilgan saytlar
https://www.qt.io
qt.com

AVTASALON LOYIHASINI LOYIHALASHTIRISH VA ISHLAB CHIQISH ” MAVZUSIDA KURS ISHI

MUNDARIJA Kirish I. NAZARIY QISM 1 .1 .Microsoft Acces dasturi 2. 1. Microsoft Access dasturidan foydalanib,kerakli jadvallar hosil qilish va ularni bir-biriga bog’lash II. AMALIY QISM 2. 1 .Qt ga Accessni bog’lanishi 2. 2 .Qt creatorda Avtosalon loyihasini yaratish Xulosa Foydalanilgan adabiyotlar

Kirish. Loyihalashtirilayotgan ma`lumotlar bazasida avtomobillar, yetkazib beruvchilar, xodimlar, guruh nomlari, to`lovlar, foydalanuvchilar, to`lov qiymatlari, xaridor, to`lov muddatlari haqida ma`lumotlarini saqlaymiz. Mohiyat-aloqa modelidan foydalanib, quyidagi mohiyatlar aniqlandi: foydalanuvchi, tashkilot, avtomobil, avtomobil modifikasiya, yetkazib beruvchi, xodimlar, to`lovlar, to`lov qiymatlari, to`lov muddatlari, model, davlat, status, rang, aloqa, inson, lavozim, model. Foydalanuvchi mohiyati . Ro`yhatga olingan foydalanuvchilar haqidagi quyidagi ma`lumotlarni saqlaydi: Foydalanuvchi tartib raqami, familiya, ism sharifi, foydalauvchi logini va paroli, foydalanish huquqi belgilash. Tashkilot mohiyati . Avtosalon haqidagi quyidagi ma`lumotlarni saqlaydi: Avtosalo tartib raqami, nomi, manzili, telefon, faks, e-mail, bank rekvizeti, inn, mfo. Avtomobil mohiyati . Avtomobillar haqidagi quyidagi ma`lumotlarni saqlaydi: tartib raqami, nomi ,marka, rangi, kelgan kuni, narxi, xaridor, avtomobil modifikasiya, mijoz, yetkazib beruvchi mohiyati bilan bog`lanish uchun tartib raqam. Modifikasiya mohiyati . Avtomobil haqida batafsil quyidagi ma`lumotlarni saqlaydi: tartib raqam, avtomobil tartib raqami avtomobil bilan mohiyat bilan bog`lanish uchun, nomi, uzunligi, kengligi, balandlik, og`irligi, uzatish turi, maksimal tezligi, dvigitel turi, dvigitel hajmi, yoqilg`i turi, yoqilg`i sarfi. Xodimlar mohiyati. Avtosalon xodimlari haqida quyidagi ma`lumotlarni saqlaydi: tartib raqam, Familiya , Ismi, Sharifi, tug`ilgan sanasi, ishga kirgan vaqti, sih haqi, aloqa tartib raqami aloqa mohiyati bilan bog`lash uchun, lavomiz tartib raqami lavozim mohiyat bilan bog`lash uchun Yetkazib beruvchi mohiyati. Avtomobillarni yetkazuvchilar haqida quyidagi ma`lumotlar saqlaydi: Yetkazuvchi tartib raqami, nomi, manzili, bank

rekvizetlari, inn, mfo, telefon raqami, faks, avtomobil mohiyati bilan bog`lanish uchun bilan bog`lanish uchun tartib raqam. Status mohiyati. Avtomobil holati(sotilgan, olib kelayotgan, sotib olinayotgan ) quyida ma`lumotlar saqlaydi: tartib raqami, status nomi. Lavozim mohiyati. Xodimlar lavozim nomlari haqida ma`lumotlar saqlaydi: tartib raqami, lavozim nomi. Aloqa mohiyati. Aloqa ma`lumotlari haqida quyidagi ma`lumotlar saqlaydi: tartib raqami, telefon, manzil, faks, e-mail inson tartib raqami xodim va mijozlar mohiyatlari bilan bog`lash uchun. Model mohiyati. Avtomobil modellari nomlari haqida ma`lumotlar saqlaydi: tartib raqami, model nomi. Rang mohiyati. Avtomobil ranglari nomlari haqida ma`lumotlar saqlaydi: tartib raqami, rang nomi. To`lov turi mohiyati. To`lovlar turi nomlari haqida ma`lumotlar saqlaydi: tartib raqami, to`lov nomi. Davlat mohiyati. Davlat nomlari haqida ma`lumotlar saqlaydi: tartib raqami, davlat nomi. Mijoz mohiyati. Mijozlar haqida ma`lumotlar saqlaydi: tartib raqami, familiya, ismi, sharifi, inson tartib raqami inson mohiyati bilan bog`lanish uchun, avtomobil tartib raqami avtomobil mohiyati bilan bog`lanish uchun. Bu loyihada avtasalon loyohasinig dastur qismini ham malumotlar bazasini ham ko’rib ishlab chiqilgan.

I.NAZARIY QISM 1.1 Microsoft Access dasturi. Microsoft Access MBBT relyatsion ma’lumotar bazasini boshqaruvchi tizim sanalib, local ma’lumotlar bazasini yaratish uchun barcha instrumental vositalar hamda foydalanuvchi dastur tuzish imkoniyatlari mavjud. Microsoft Access MBBT o‘z ichiga turli ob’yektlarni yaratish uchun avtonom vositalarga ega: - Grafik konstrucciyalar vositasi ma’lumotlar bazasi ob’ektlarini grafik elementlar yordamida qurish imkoniyatiga ega; - Dialog vosita ma’lumotlar bazasini qayta qurish va tashkillashtirish uchun turli vazifalarni bajaruvchi masterlar yordam beradi; - MBBT ning dasturlash vasitasi uz ichiga SQL, makrokomandalar tili va VBA uchun OMD ni olgan. Ma’lumotlar bazasi – ma’lum sohaga oid o’zaro boglangan ma’lumotlar yig’indisining disk tashuvchidagi tashkiliy jamlanmasi. Relyatsion ma’lumotlar bazasi – ikki o’lchamli jadvallarning mohiyatmunosabat mehanizmi orqali bog’lanishidir. Relyacion ma’lumotlar bazasining logic aloqasi o’zaro logic bog’langan jadvallar majmuini tashkil etadi. Ma’lumotlarning relyacion modeli normallashtirish orqali yaratiladi. Normallashtirish jarayoni qayta takrorlanuvchi ma’lumotlarni yangi jadvalga kuchirishdan iborat hodisadir. Relyacion jadval structurasi maydon bilan belgilanadi. Maydonga ma’lumot turi v ahajmi kabi hossalar kiritiladi. Maydon tarkibi jadval ustunlarida keltiriladi. Har bir qator ma’lumotning bitta ekzemplyari bo’lib, yozuv deb nomlanadi. Har bir yozuvni identifikatciyasi uchun unikal birlamchi kalit qullaniladi. Kalit bir yoki bir nechta maydondan iborat bo’lishi mumkin. Ikki jadvalni bog’lash uchun tashqi kalitdan foydalaniladi. Bunda birga- bir (1:1), birga-kup(1:N) va kupgakup(M:N) munosabatlar urnatilishi mumkin.