Ob`yektlar
1
|
Bo'limlar
|
2
|
Mijozlar,
|
3
|
Tovarlar
|
4
|
Tovarlarni sotish
|
5
|
Yetkazib beruvchilar
|
Bo'lim jadvali quyidagi xususiyatlarga ega 1.2 jadval
Bo'lim nomi
|
Hisoblagich soni
|
Sotuvchilar soni
|
Zal raqami
|
Marvarid
|
1
|
2
|
1
|
Benazir
|
2
|
2
|
2
|
Jadval mijozlar quyidagi xususiyatlarga ega 1.3 jadval.
Mijozning nomi
|
Manzili
|
To'lov turi
|
Meliboyev Masrurbek
|
Qo’qon shahar devonbegi 25 uy
|
Naqd pul
|
Omonov Abbosxon
|
Qo’qon shahar dangara 65 uy
|
Placti
|
Jadval yetkazib beruvchilar quyidagi xususiyatlarga ega 1.4jadval
Etkazib beruvchining nomi
|
Manzili
|
Mamlakati
|
Transport turi
|
To'lov turi
|
Azamjon
|
Qo’qon shahar devonbegi 25 uy
|
O’zbekiston
|
Yengil avto
|
Naqd pul
|
Mamurjon
|
Fargona shahri 12/5
|
O’zbekiston
|
Yengil avto
|
Clikc
|
Jadval mahsulotlar quyidagi xususiyatlarga ega: 1.5 jadval
Mahsulot nomi
|
Bo'lim
|
Etkazib beruvchi
|
Saqlash shartlari
|
Saqlash muddati
|
Yarko salatni yogi
|
Marvarid
|
Azamjon
|
Iliqligi:23 gradus
Namlik:qrug’
|
10.12.2025
|
Tea
|
Benazir
|
Mamurjon
|
Namligi: Qurug’
|
1.09.2024
|
Tovarlarni sotish jadvali quyidagi xususiyatlarga ega: 1.6 jadval
Mijoz
|
Mahsulot
|
Sana
|
Vaqt
|
Miqdor
|
Narx
|
Miqdor
|
Meliboyev Masrurbek
|
Yarko salatni yogi
|
14.10.2021
|
15:30
|
10
|
94 000
|
5 L
|
Quyidagi rasmda aloqalar (ob`yektlar orasidagi munosabatlar)ning ko`rinishi keltirilgan
“Mohiyat – aloqa” modeli predmet sohani tashkil etuvchi uchta asosiy komponentalardan
foydalanib quriladi: mohiyat, atribut, aloqa. Konstruktiv elementlar tarkibida “VAQT” tashkil
etuvchisi faqat oshkormas holda ishtirok etishi mumkin. Modelda vaqt, yil, sana va shunga
o`xshash atributlar bilan tasvirlanadi.
Yetkazib beruvchilar
Mijozlar
Bolimlar
Tovarlarni sotish
Tovarlar
Supermarketning Mohiyat-Aloqa modeli
SUPERMARKET AXBOROT TIZIMIMa predmet sohasi uchun mohiyat – aloqa modelini qurilishi
Ma’lumotlarning fizik modeli. Relatsion ma’lumotlar bazasining fizik bosqichi (fizik
model) axborotlarni saqlash va qayta ishlash usullarini xaraktyerlaydi. Ma’lumotlar bazasi va
ma’lumotlar bazasini boshqarish tizimlarini ishlab chiqish nazariyasi va amaliyotida
ma’lumotlarning fizik modelini qurishga ikki xil yondashish mavjud. Birinchi yondashish aniq
MBBTga bog‘liq bo‘lmay har bir jadval ma’lumotlarining fizik xossalarini tavsiflashga
asoslanadi. Ya’ni, ma’lumot bazalari jadvallarining fizik modeli.
Fizik modellarni ishlab chiqishga ikkinchi yondashish aniq MBBTda ma’lumotlarni
saqlash, tashkil qilish, arxityekturasini ishlab chiqish bilan bog‘liq va ko‘pincha ma’lumotlarni
saqlashning fizik modeli deyiladi. Ma’lumotlar bazasini loyihalovchi o‘zi yaratayotgan axborot
tizimi uchun amaliy dastur tuzilishining arxityekturasini bilmasligi mumkin, lekin har bir jadval
uchun fizik modelni ishlab chiqishi kerak.
Ma’lumotlar bazasi jadvallarining fizik modeli. Ma’lumotlar bazasi jadvallarining fizik
modeli jadvalning har bir maydoni xossalarini tavsiflashni nazarda tutadi. Maydon xossalarini
tavsiflash uchun quyida ko‘rsatilgan shaklga qarab loyiha jadvali tuzilishi zarur.
MB obyektlarining belgilari tarkibi
|
MB maydonlarining xarakateristikalari
|
Tartib raqami
|
Belgisi
|
Maydon nomi
|
Simvillar soni
|
Aniqlik
|
1
2
3
|
|
|
|
|
Jadval nomi. Jadvalga nom berishda quyidagi tavsiyalarni hisobga olish kerak:
• jadval nomi unda joylashgan ma’lumotlarning mazmuniga mos bo‘lishi kerak; jadval
nomida tinish belgilari, qavs, undov belgisini ishlatish mumkin emas;
• jadval nomi oraliq (probel) bilan boshlanishi mumkin emas;
• bitta ma’lumot faylida bir xil ismli jadvallar bo‘lishi mumkin emas. Amaliy qism:
2 - TOPSHIRIQ
Mavzu: SQL tilida jadvallar yaratish, o‘zgartirish va o‘chirish
Ishdan maqsad: predmet soha ma’lumotlar bazasini so`rovlar orqali yaratishni va so`rovlar orqali oddiy jarayonlarni bajarishni o`rganish, hamda ko`nikmaga ega bo`lish. Talabalarda DDL komandalaridan foydalanish va shu orqali relyasion MB yaratish ko’nikmasini hosil qilish.
Masalani qo`yilishi: Predmet soha ma`lumotlar bazasini SQL so`rovlari orqali yaratish. Mavjud ob`yektlarni so`rovlar orqali ma`lumotlar bilan to`ldirish, o`zgartirish va keraksiz ma`lumotlarni o`chirishni ko`rib chiqish.
Ishni bajarish tartibi(Barcha jarayon Ubuntu Linux operatsion tizimida olib b orildi).
1.1-rasm(Databasesni tekshirish)
1.2-rasm(Database qo’shish)
1.3-rasm(Database table qo’shish)
1.4-rasm(Table Atributelarni tekshirish)
1.4-rasm(Qolgan tablelar ham xuddi shunday tartibda yaratildi)
1.5-rasm(Tablelar yaratish jarayoni)
1.6-rasm(Table Atributelarini tekshirish)
3-Topshiriq
Mavzu: Qidiruv algoritmlari: chiziqli va binary qidiruv.
Ishdan maqsad: Ushbu laboratoriya ishining maqsadi talabalar qanday qidirish usullari va algoritmlari mavjudligini va ularning samaradorliklarini baholashni o’rganishlari kerak. Shu asosda qidirish usullarini qiyosiy tahlil qilishlari, C++ dasturlash tilida qidirish bilan islashni va ularga oid dasturlar tuzishni o’zlashtirishlari kerak.
Qo’yilgan masala: Talabalar topshiriq variantiga mos qidirish usuli yordamida masalani yechish dasturini yaratish ko’nikmasiga ega bo’lishlari kerak.
Ish tartibi:
1.Tajriba ishi nazariy ma’lumotlarini o’rganish;
2.Berilgan topshiriqning algoritmini ishlab chiqish;
3. C++ dasturlash muhitida dasturni yaratish;
4. Natijalarni tekshirish;
5.Hisobotni tayyorlash va topshirish.
Aytaylik bizga massiv berilgan:
a[]={15, 23, 7, 45, 87, 16};
Bizga ushbu massivda biron bir element bor yoki yo'qligini tekshira oladigan dastur tuzish sharti qo'yilgan. Ushbu masalani yechishda eng birinchi xayolga keladigan usul - bu massivni ketma-ket har bir elementini solishtirib chiqish va bu usul:
Chiziqli qidiruv - Linear Search deb ataladi, va bu usul kodi quyidagi ko'rinishda:
#include
usingnamespace std;
int linearSearch(int array[], int size, int searchValue)
{
for(int i =0; i < size; i++)
{
if(searchValue == array[i])
{
return i;
}
}
return-1;
}
int main()
{
int a[]={15, 23, 7, 45, 87, 16};
int userValue;
cout<<"Enter an integer: "<< endl;
cin>> userValue;
int result = linearSearch(a, 6, userValue);
if(result >=0)
{
cout<<"The number "<< a[result]<<" was found at the"
" element with index "<< result << endl;
}
else
{
cout<<"The number "<< userValue <<" was not found. "<< endl;
}
}
Endi bundan optimal bo'lgan usul - binar(ikkilik) qidiruvni ko'rib chiqsak. Bu usulda ham funksiyaga 2 ta parametr, birinchisi massiv o'zi keyin esa biz qidirayotgan elementni parametr sifatida beriladi. Qidiruv esa quyidagicha: Dastlab biz massiv boshi va oxirini o'zimiz uchun o'zgaruvchilarda belgilab olamiz, mening kodimda bu left va right o'zgaruvchilaridir:
left := 0 right := len(a)
so'ngra quyidagi shart bajarilgan holda
left< right
Shu zaylda qidiruv left < right shart bajarilmagunicha davom etadi, agar bu jarayonda biz qidirgan element topilmasa u xolda -1 javob qaytariladi, quyida dastur kodi keltirilgan:
#include
Using namespace std;
int binarySearch(int array[], int size, int searchValue)
{
int low =0;
int high = size -1;
int mid;
while(low <= high)
{
mid =(low + high)/2;
if(searchValue == array[mid])
{
return mid;
}
elseif(searchValue > array[mid])
{
low = mid +1;
}
else
{
high = mid -1;
}
}
return-1;
}
int main()
{
int a[]={12, 22, 34, 47, 55, 67, 82, 98};
int userValue;
cout<<"Enter an integer: "<< endl;
cin>> userValue;
int result = binarySearch(a, 8, userValue);
if(result >=0)
{
cout<<"The number "<< a[result]<<" was found at the"
" element with index "<< result << endl;
}
else
{
cout<<"The number "<< userValue <<" was not found. "<< endl;
}
}
Bu usul binar qidiruvni iterativ usuli deyiladi, shuningdek bu algoritmni rekursiya usulida ham yozish mumkin, rekursiv usulni erinmasangiz o'zingiz yozib ko'ring. Bitta urinishda ko'pchilik dasturchilar bu narsani to'g'ri yoza olishmaydi va bu normal holat, chunki xato bor joyda o'z ustida ishlash uchun imkoniyat bo'ladi.
Endi bu qidiruv usullarini ayrim jihatlarini keltirib o'tamiz:
funksiyaga berilayotgan massiv Binar qidiruv uchun albatta o'sish tartibida bo'lishi talab qilinadi, chiziqli qidiruv uchun esa berilayotgan massiv qay tartibda bo'lishini ahamiyati yo'q
chiziqli qidiruvda elementlarni bittalab har birini tekshiriladi, binarda esa algoritmidan kelib chiqib chiziqliga nisbatan ancha kam solishtirish amali bajariladi, chiziqli qidiruvning ishlash vaqti ko'pi bilan O(n) va binar qidiruvniki ko'pi bilan O(log n)
Bundan tashqari massivda qidirishning boshqa usullari ham mavjud bu haqida bu yerda batafsil bilib olishingiz mumkin.
Savoli:
Butun sonlar orqali berilgan 150 dan 300 gacha bo’lganlari ichida ekranga 205 raqami chiquvchi binar qidiruv algoritmi tuzilsin va natijalar taxlil qilinsin.
#include
using namespace std;
int main()
{
int a=0, b=300-150+1, top=205;
int element[b], c=(a+b)/2;
bool q=1;
for(int i=0; i<=b; i++)
element[i]=150+i;
while(q)
{
c=(a+b)/2;
if(element[c]a=c;
else if(element[c]>top)
b=c;
else
q=0;
}
cout << top << " soni element[" << c << "] massivga tegishli" << endl;
return 0;
}
|