Laboratoriya mashg’uloti №3
Mavzu
: Paket Tracer dastur interfeysini o‘rganish.
Ishdan maqsad
:
Texnik tizimlarda muhandislik masalalarini Paket
Tracer yordamida yechishni o’rganish.
Topshiriq:
Nazariy qismni o‘rganish.
Paket Tracer dasturida hujjatlar yaratish.
Paket Tracer dasturida hujjatlarni qayta ishlash
Bajarilgan ish haqida hisobot tayyorlash.
Nazariy qism
MySQL — bu eng mashhur va juda ko‗p foydalaniladigan
ma‘lumotlar bazasini boshqarish tizimi(MBBT) hisoblanadi. Bu
tizim juda katta ma‘lumotlar bilan ishlash uchun yaratilmagan,
aksincha biroz kichik hajmdagi bazalar bilan katta tezlikda ishlash
uchun yaratilgan. Uning asosiy ishlash doirasi, saytlar hisoblanadi.
Hozirgi kunda juda ko‗p sayt va bloklarning ma‘lumotlari aynan
shu MBBT saqlanadi.
Ho‗sh, saytlarning nimalari bazada saqlanishi mumkin?
Dastlab, ma‘lumotlar saqlash uchun dasturchilar fayllardan
foydalanishgan, ya‘ni fayl ochilib kerakli ma‘lumotlar u yerga
saqlanib, kerakli paytda chaqirib ishlatilgan. Keyinchalik fayllardan
voz kechilib(noqulayliklar yuzaga kelgan, ya‘ni faylni ochish,
o‗qish, yopish,.. ko‗p vaqtni olib qo‗ygan, u yerdan qidirish, xullas
juda ko‗p), ma‘lumotlar bazasiga o‗tilgan. Bazada saytdagi
maqolalar, sayt foydalanuvchilari haqidagi ma‘lumotlar, sayt
kontentlari,
qoldirilgan
kommentariyalar,
savol-javoblar,
hisoblagich natijalari va shunga o‗xshash juda ko‗p ma‘lumotlar
saqlanadi. MySQL shunday ma‘lumotlarni o‗zida saqlaydi.
MySQL— juda katta tezlikda ishlovchi va qulay hisoblanadi.
Bu tizimda ishlash juda sodda va uni o‗rganish qiyinchilik
tug‗dirmaydi.
MySQL tizimi tcx kompaniyasi tomonidan, ma‘lumotlarni tez
qayta ishlash uchun korxona miqyosida ishlatishga yaratilgan.
Keyinchalik ommalashib, saytlarning asosiy bazasi sifatida yoyildi.
So‗rovlar SQL tili orqali amalga oshiriladi. Bu
MBBT relyatsion ma‘lumotlar baza hisoblanadi. Bu degani baza
jadvallar, jadvallar esa ustunlardan tashkil topgandir.
MySQL MBBTi 2 xil turdagi litsenziyaga ega. Birinchisi
tekin, ya‘ni MYSQLni ko‗chirib olish va ishlatish hech qanday
harajat
talab
qilmaydi
va GPL(GNU
Public
Licenseb,
GNU) litsenziyasiga asoslanadi. Ikkinchi turi, GPL shartiga ko‗ra,
agar siz MySQL kodlarini biror dasturingizda ishlatsangiz, bu
dasturingiz ham GPL(tekin) bo‗lishi kerak. Bu esa dasturchiga
to‗g‗ri kelmaydi. Shuning uchun, bu dasturingizni pullik qilishingiz
uchun MySQL pullik litsenziyasini sotib olishingiz kerak.
MySQL
logotipi
delfin
hisoblanadi.
Bu
delfinni
ismi «Sakila»dir. Bu logotipni OpenSource tuzuvchilaridan
biri Ambrose Twebaze ga tegishlidir.
MySQL juda ko‗p operatsion tizimlar bilan ishlay oladi.
Bularni yozadigan bo‗lsam: AIX, BSDi, FreeBSD, HP-UX, Linux,
Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris,
SunOS, UnixWare, Windows 95, Windows 98, Windows NT,
Windows 2000, Windows XP, Windows Server 2000, Windows
Vista, Windows 7,…
MySQL shved korxonasi MySQl AB ga tegishli bo‗lgan,
keyinchalik SUN firmasi MySQL ni o‗ziniki qilib olgan. Bir necha
yil oldin esa, gigant korxonalardan biri Oracle, SUN firmasini sotib
oldi va hozirda MySQL Oracle firmasi mahsuloti sifatida chiqib
kelmoqda. Bu bir hisobda Microsoft SQL Server ga katta
raqobatdosh ekanligini anglatadi.
MySQL bir necha serverlarning bir qismi hisoblanadi. Misol
uchun, WAMP, AppServ, LAMP, Denwer,… Kliyentlar MySQL
serveriga ma‘lum bir kutubxonalar orqali ulanadi. MySQL ga
quyidagi dasturlash tillari ulanib ishlashi mumkin: Borland C++
builder, C, C++, Java, Perl, Php, Python, Ruby va boshqalar.
SQL so‗rovlari bilan ishlashni davom ettiramiz, agar
sezayotgan bo‗lsangiz, borgan sari so‗rovlar qiyinlashib bormoqda.
Bu maqolamiz so‗rov ichida so‗rov(podzapros) yozishga
bag‗ishlanadi, ya‘ni bir so‗rov ichida yana bir qism so‗rov ishtirok
etadi. Bu maqola uchun bizga quyidagi «test» nomli jadval kerak
bo‗ladi. Barcha kodlar Oracle 10g MBBTda sinab ko‗rilgan.
Maqolada, asosiy so‗rovga faqat bir qiymatni qaytaradigan qism
so‗rov haqida gaplashamiz.
Keling, avval bu so‗rovlar nima ekanligini bilib olaylik. Misol
uchun siz, jadvaldan o‗yinchilarni ismini chiqarmoqchisiz, lekin
hammasini emas, qaysiki tug‗ilgan yili biror o‗yinchini yilidan
kichik bo‗lsin. Siz hamma o‗yinchilarni yilini bilmaysiz, faqat
bittasini ko‗rinishidan kattaligini bilasiz, shu o‗yinchidan kichiklari
kerak. Buning uchun biz ikkita so‗rov amalga oshirishimiz kerak,
dastlab siz yoshi kattaroq deb o‗ylayotgan o‗yinchini yilini bilish
kerak va undan kichkinalarini topib, ekranga chiqarish kerak. Yoshi
kichik bo‗lish uchun, tug‗ilgan yili katta bo‗lish kerak.
Select year from test where name='Jonny';
Bu so‗rov natijasini eslab qolib(keling keyingi so‗rov uchun
eslab qolgan yilni «aa» deylik),
Select name from test where year>aa;
Ko‗rib turganingizdek, 2 ta alohida so‗rov. Qism so‗rovlar
shunaqangi ikkita so‗rovlarni birlashtirish uchun ishlatiladi. Qism
so‗rovlar, asosiy so‗rovlarga natija yetkazib berish uchun
foydalaniladi.
select name, year from test where year>(select year from
test where name='Jonny');
«Jonny»ni yili aniqlanmoqda(1988), undan keyin shu yildan
kattalar(yoshi bo‗yicha kichiklar) chiqarilmoqda.
Qism so‗rovga ega so‗rovlar tuzishda barcha solishtirish
amallarni(amallar haqida) ishlatish mumkin: teng(=), katta(>), katta
yoki teng(>=), kichik(<), kichik yoki teng(<=), teng emas(<>).
Agar jadvaldagi axborotlar murakkab ko‗rinishga ega bo‗lsa,
qism so‗rovlarni bir necha bor ishlatish mumkin. Bunda bir necha
ustundagi axborotlarga qism so‗rovlar orqali shartlar qo‗yiladi.
select id, name, year from test where id>(select id from test
where name='Antonio') and year>(select year from test where
name='Jonny');
So‗rovda, ham «id», ham «year» bo‗yicha qism so‗rov orqali
shart
qo‗yilmoqda.
Bundan
ko‗rinib
turibdiki,
qism
so‗rovlarni «like», «and», «or», «not»(operatorlar haqida) singari
operatorlar bilan ajratish mumkin ekan.
Endi qism so‗rovlarda guruhlash funksiyalarni(jamlash
funksiyalari) ishlatamiz, ya‘ni ular: min, max, count, avg, sum. Bu
maqolada, faqat «max»ni misol qilib ko‗rsataman.
select ID, name, year from test where year=(select
max(year)-1 from test);
Qism so‗rovdan eng kichik yoshdagi o‗yinchidan bir yosh
kattasi aniqlashtirib olinmoqda va asosiy so‗rovda shu o‗yinchi
haqida ma‘lumot chiqarilmoqda. Guruhli funksiyalarni, shart
qo‗yishda ishlatganda «having» kalit so‗zidan foydalaniladi, chunki
«where» kalit so‗zi guruhli funksiyalar bilan ishlay olmaydi, ya‘ni
select id, min(id), name from test group by name, id
having min(id)>3;
Agar, «having» o‗rniga «where» ishlatsangiz, xatolik beradi.
Bu operatorni qism so‗rovlar tuzishda ham ishlatish mumkin. select
name,
max(year)
from
test
group
by
name
having
max(year)<(select max(year) from test where year<>1990)3;
Agar, «having» o‗rniga «where» ishlatsangiz, xatolik beradi.
Bu operatorni qism so‗rovlar tuzishda ham ishlatish mumkin.
select name, max(year) from test group by name having
max(year);
Eng katta yil(yoshi bo‗yicha eng kichik)da tug‗ilgan o‗yinchi
qidirilmoqda, faqat uning tug‗ilgan yili «1990» yilga teng bo‗lishi
kerak emas. Bu yerda guruhli funksiya bo‗lgani uchun, bir nechta
natijalar chiqmoqda. Biz ko‗rayotgan jadval, bu misol uchun
unchalik mos tushmadi, chunki bir hil axborotlardan bir nechtasi
jadvalda mavjud bo‗lsa, so‗rov chiroyliroq chiqadi, lekin so‗rov
tuzilishini shu jadval asosida ham tushunib olish mumkin.
Agar, qism so‗rovdan hech narsa qaytmasa, asosiy so‗rovda
xatolik bermaydi, lekin hech qanday axborot ham chiqmaydi. Agar,
qism so‗rovdan boshqa tipdagi qiymat chiqsa, unda xatolik haqida
ma‘lumot beriladi.
select name, id from test where year=(select year from test
where name='Akmal');
Xatolik mavjud emas, faqat «no rows selected» yozuv.
select name, id from test where year=(select name from test
where name='Jonny');
Xatolik, «error: invalid number«.
Do'stlaringiz bilan baham: |