17
Kitab Nəşriyyatı
olaraq nəşr nömrəsi (
num) ilə birqiymətli təyin olunur. Nəşr nömrələri
ayrılıqda, ümumiyyətlə, birqiymətli deyildir. Verilənlər bazasında
həmçinin nəşrin ərsəyə gəlmə və nəşr üzərində redaktorun çalışma ili
(
appearance_year) saxlanılır. Hər bir nəşrdə minimum bir redaktor
çalışır. Hər bir əsərin bir nəşrində bir neçə dərc (
PUBLICATION) çap
olunur. Dərclər nəşr və əlavə identifikasiya nömrəsi ilə (
pid) birqiymətli
müəyyən olunur. Bundan başqa hər dərc üçün bazada səhifələrin
sayı (
pages) qeyd olunur. Nəhayət, nəşriyyatın bazasında insanlarla
bağlanılan müqavilələr (
AGREEMENT) haqqında məlumat mövcud
olmalıdır. Hər bir müqavilə haqqında bazada birqiymətli kod (
aid),
müqavilənin bağlanma tarixi (
dat) və qısa təsvir (description)
saxlanılır. Müqavilənin hansı insanla bağlanılması haqqında da bazada
məlumat mövcuddur. Nəzərə alın ki, müqavilə yalnız bir insanla bağlanılır.
18
Məsələ: ERD
Verilənlər Bazasının Modelləşdirilməsi
Verilənlər bazasının təsviri əsasında ER diaqramı qurun. Diaqramı
istənilən ERD notasiyalardan (Chen, Crow’s Foot, Bachman) biri ilə
qura bilərsiniz. Bu kitabda ERD məsələlərin həlli Chen notasiyası
ilə verilmişdir. Diaqramı qurduqdan sonra həllinizi bu bölmənin
sonunda təklif olunan cavabla müqayisə edin. Kömək məqsədilə
verilənlər bazasının təsvirində mötərizə daxilində İngilis dilində
sözlər qeyd edilmişdir. Böyük hərflərlə verilən sözlər verilənlər
bazasının subyektlərini (entity) və həmçinin cədvəl adlarını,
kiçik hərflə olan sözlər isə verilənlər bazasının subyektlərinə
məxsus sahələri (fields) və eyni zamanda cədvəl sütunlarını ifadə
edir. Nəzərə alın ki, məsələnin qoyuluşunda cədvəllər arasında
əlaqələrin adları qeyd edilməmişdir.
Məsələ: SQL DDL
Verilənlər Bazasının Yaradılması
Verilənlər bazasının təsviri və ER diaqramı əsasında Oracle
verilənlər bazası üçün bazanın yaradılma skriptini yazın. Skript
işlədikdə təsvir olunan verilənlər bazası boş olmaqla yaranmalıdır.
Skripti kompüterinizdə
create.sql adı ilə faylda saxlayın.
Skriptin hər bir SQL əmrini yazdığınız skriptdəki ardıcıllıqla Oracle
Book Manager sisteminin dinamik Oracle sxemində bir-bir icra
edərək əldə etdiyiniz nəticələri izləyin.
Məsələ: SQL DML
SQL Sorğular və Hesabatların Hazırlanması
VB-nın təsviri, ER diaqram və bazanın
create.sql yaradılma
skriptinə əsaslanaraq aşağıdakı sorğuları həll edin. Həllərinizi
əvvəlcə kitabın əvvəlində qeyd edildiyi kimi Oracle Book Manager
sisteminin məsələyə uyğun stabil Oracle sxemində test edin.
Yazdığınız SQL sorğuların sintaktik və semantik doğru olduğunu
yoxlamaq üçün bu bölmənin sonunda təqdim edilən düzgün
həllərə istinad edərək öz həllinizin nəticəsi ilə cavab həllin
nəticəsini (sətir və sütunlar) müqayisə edin. Nəzərə alın ki, eyni
məsələnin alternativ bir neçə üsulda həlli ola bilər. Kitabda
əksəriyyət məsələnin alternativ həlləri verilmişdir.
Kitab Nəşriyyatı
19
Kitab Nəşriyyatı
[1] 2004 və sonrakı illərdə yazılan bütün əsərlərin adını və təsvirini verən
sorğu yazın. Nəticə əsərin adına görə əlifba sırası ilə düzülməlidir. QEYD:
'
YYYY' formatında TO_DATE funksiyasından istifadə edin.
[2] Bazada rus dilindən tərcümə edə bilən və minimum iki tərcümə işi olan
tərcüməçilərin ad və doğum tarixlərini əks etdirən sorğu yazın. Nəticə
doğum tarixinə görə azalan sırada olmalıdır. Nəzərə alın ki, verilənlər
bazasında Rus dili '
Russian' kimi qeyd edilmişdir. QEYD: doğum tarixini
vermək üçün
TO_CHAR funksiyası və 'DD-MM-YYYY' tarix formatından
istifadə edin.
[3.1] Tərcümə olmayan bütün əsərlərin adını və təsvirini əks etdirən
sorğu yazın. Nəticə əsərlərin adına görə artan sırada düzülməlidir.
[3.2] Tərcümə olmayan və 2004-cü ildən əvvəl yazılmayan bütün
əsərlərin adını və təsvirini verən sorğu yazın. Nəticə adlara görə artan
sırada olmalıdır.
[3.3] Tərcümə olmayan, '
Science Fiction' janrına aid olmayan və
2004-cü ildən əvvəl yazılmayan bütün əsərlərin adını və təsvirini verən
sorğu yazın. Nəticə adlara görə artan sırada olmalıdır.
[4.1] Verilənlər bazasında nəşr nömrəsinin artma sırası ilə adı
'
The Man Without Qualities' olan əsərin bütün nəşrlərinin
nömrəsi və ərsəyə gəlmə ili axtarılır. QEYD: nəşr ilini çap etmək üçün
'
YYYY' formatında TO_CHAR funksiyasından istifadə edin.
[4.2] '
The Man Without Qualities' adlı əsərin bütün nəşrləri
axtarılır. Bu məqsədlə hər nəşrin nömrəsi, ərsəyə gəlmə ili və əsərin hər
dərcində səhifələrin orta sayını verən sorğu yazın. Nəticə nəşr nömrəsinə
görə artan sırada düzülmüş olmalıdır. QEYD: nəşr ilini çap etmək üçün
'
YYYY' formatında TO_CHAR funksiyasından istifadə edin.
[4.3] '
The Man Without Qualities' adlı və dərc olunma sayı
birdən çox olan əsərin bütün nəşrləri axtarılır. Bu məqsədlə hər nəşrin
nömrəsi, ərsəyə gəlmə ili və hər dərcdə səhifələrin orta sayını verən sorğu
yazın. Nəticə nəşr nömrəsinə görə artan sırada düzülmüş olmalıdır. QEYD:
nəşr ilini çap etmək üçün '
YYYY' formatında TO_CHAR funksiyasından
istifadə edin.
[5] Eyni ildə ən çox nəşrləri olan əsərlərin adını və tarixi nəticə kimi verən
sorğu yazın. Sorğunun nəticəsi tarix və əsərin adına görə artan sırada
olmalıdır.