SORĞULAR. HESABATLAR
• Sorğu nədir və onun nəticəsi nə olur
• Sorğular necə formalaşdırılır
• Mürəkkəb sorğular necə yaradılır
• Hesablar necə yaradılır
Verilənlər bazasında verilənlər cədvəllərdə saxlanılır. Ancaq istifadəçilərin
bilavasitə bu cədvəllərlə işləməsi təhlükəsizlik və etibarlılıq baxımından məs-
ləhət görülmür. Verilənlərə müraciət,
adətən, birbaşa deyil, aralıq obyektlər
– sorğular, formalar və hesabatlar va -
sitəsilə həyata keçirilir. Baza cədvəl-
lərinin strukturu kimi, bu obyektlər də
verilənlər bazasının layihələn dirilməsi
mərhələsində yaradılır.
Sorğular. Qeyd olunduğu kimi, veri -
lənlərə müraciət etmək üçün, adətən,
sorğulardan [ query] istifadə olunur.
Sorğularla işləmək rahatdır, sürətlidir
və onlar təhlükəsizlik baxımından eti -
barlıdır.
Bir cədvəl üçün bir neçə sorğu for-
malaşdırmaq olar. Hər bir sorğu cəd-
vəldə saxlanılan informasiyanın bir
hissəsini – yalnız ona lazım olan
hissəsini seçib götürə bilər. Sorğu nəticəsində ilkin verilənlər bazasının əsasında
ye kunlaşdırıcı cədvəl yaradılır. Bu cədvəldə yalnız sorğuya uyğun verilənlər top -
lanır.
Sorğular xüsusi qaydalara uyğun yazılır. Bu qaydaların toplusuna sorğu dili
[query language] deyilir. Ayrı-ayrı sistemlərin sorğu dili fərqli ola bilər, ancaq
onların əsasında, adətən, eyni ümumi prinsiplər dayanır. Avtomobillərlə bağlı
misa la yenidən baxaq.
1. Əgər bizə bütün göy rəngli avtomobilləri tapmaq lazımdırsa, onda kom-
püterə belə bir sorğu verilməlidir:
rəng = “göy”
Məmmədova məxsus avtomaşını axtarmaq üçün sorğu belə olacaq:
sahibi = “Məmmədov”
Sorğu
Sorğu dili
Sadə sorğu
Mürəkkəb sorğu
Hesabat
S
Ö
Z
L
Ü
K
2.9.
2.
VERİLƏNLƏR
BAZASI
49
2. Tutaq ki, bizə 2000-ci ildə buraxılmış avtomobillərin siyahısı lazımdır. Bu
hal da sorğu
buraxılış ili = 2000
şəklində veriləcək. Əgər bizi 2000-ci ilədək buraxılmış avtomobillər
maraqlandırırsa, sorğunu belə vermək olar:
buraxılış ili < 2000
İkiqat bərabərsizlikdən də istifadə etmək olar.
1990 <= buraxılış ili <= 1999
sorğusu 1990-cı ildən 2000-ci ilədək buraxılmış avtomobilləri tapıb çıxaracaq.
3. Sorğuda ayrı-ayrı sahələrin qiymətlərini də müqayisə etmək olar. Əgər bizə
buraxıldığı ildə qeydiyyatdan keçmiş avtomobillər lazımdırsa, sorğunu
belə vermək olar:
buraxılış ili = qeydiyyat ili
Bəzən əslində olmayan halların da, məsələn, buraxılmamışdan öncə qey-
diy-yatdan keçmiş avtomobillərin tapılması sorğusunu vermək olar:
qeydiyyat ili < buraxılış ili
Aydındır ki, belə hal olmamalıdır, ancaq bu cür sorğunun yerinə yetirilməsi
bazaya yanlış daxil edilmiş yazıları aşkar etməyə imkan verəcək.
4. Sorğuda hesab əməllərindən də istifadə etmək olar. Məsələn, aşağıdakı sorğu
buraxılış ilindən 3 və daha artıq il vaxt keçəndən sonra qeydiyyata düşən avto-
mobilləri tapmağa imkan verir:
qeydiyyat ili – buraxılış ili > 3
5. İndiyədək baxdığımız sorğularda axtarış aparılan sahələrin qiymətləri qa -
baq cadan məlum idi. Ancaq çox zaman axtarılan qiymətlər dəqiq məlum
olmur. Bu halda sorğunu örnəklər (şablonlar) vasitəsilə vermək əlverişli
olur. Şablonlarda sahənin qiyməti dəqiq deyil, ulduz (*) və sual işarəsinin
(?) köməyi ilə göstərilir. Bir sual işarəsi sahənin qiymətinin uyğun yerində
istənilən bir simvolun ola biləcəyini göstərir. Ulduz işarəsi də sahənin
qiymətinin uyğun yerində ixtiyari simvolun ola biləcəyini göstərir, ancaq
bu halda bir “*” işarəsinin yerində istənilən sayda simvol ola bilər.
50
Tutaq ki, sahiblərinin soyadı “C” hərfi ilə başlayan avtomobilləri tapmaq tə -
ləb olunur. Bu halda sorğu
sahibi = “C*”
şəklində olacaq. Əgər bizi sahibinin soyadı “Cəlilli”, yaxud “Cəmilli” olan
avtomobillər maraqlandırırsa, sorğunu belə vermək olar:
sahibi = “Cə?illi”
Nömrəsində “3” rəqəmi olan maşınları tapan sorğu aşağıdakı şəkildə olacaq:
nömrə = “*3*”
İndiyədək qurduğumuz sorğuların hamısında axtarış yalnız bir sahəyə görə
aparılırdı. Belə sorğulara sadə sorğular deyilir. Çox zaman axtarışı bir neçə sahə
üzrə aparmaq lazım gəlir. Məsələn, tutaq ki, bizə bütün qara “Mersedes”lərin
siyahısı lazımdır.
Marka = “Mersedes”
sorğusu bizə bütün “Mersedes”ləri tap-
mağa imkan verəcək, ancaq onların içərisində hər cür rəngdə olanları ola bilər.
Eynilə,
rəng = “qara”
sorğusu bütün qara rəngli avtomobilləri seçib ayıracaq,
yəni seçilmiş maşınların içərisində hər markadan ola biləcək. Belə məsələləri həll
etmək üçün mürəkkəb sorğulardan istifadə olunur. İki sadə sorğunun bir-
ləşməsindən ibarət olan
marka = “Mersedes” və rəng = “qara”
sorğusu məhz bizə lazım olan siyahını verəcək.
Aşağıdakı sorğu nömrəsi 3-lə başlayan və sahibinin soyadı “Vəlizadə” olan
“BMW” markalı avtomobilləri axtarıb tapacaq:
marka = “BMW” və nömrə = “3*” və sahibi = “Vəlizadə”
İndi tutaq ki, bütün qara və göy rəngli maşınları tapmaq tələb olunur.
rəng = “qara” və rəng = “göy”
sorğusu uğursuz olacaq, çünki şərtdəki “və” bağlayıcısı avtomobilin rənginin
eyni zamanda həm qara, həm də göy olmasını bildirir. Bu isə, aydındır ki, ola
bilməz. Belə məsələni həll etmək üçün sorğu
rəng = “qara” və ya rəng = “göy”
şəklində verilməlidir.
Bəzən hər hansı şərti ödəməyən yazıları tapmaq lazım gəlir. Tutaq ki, rəngi
qırmızı olmayan avtomobilləri tapmaq lazımdır. Bunu aşağıdakı sadə sorğu ilə
etmək mümkündür:
rəng <> “qırmızı”
2.
VERİLƏNLƏR
BAZASI
51
Dostları ilə paylaş: |