Verilənlər bazalarının modelləri və “relational database” termini
Verilənlər bazalarının modelləri və “relational database” termini
Salam Dostlar.
Keçən məqalədə “verilənlər bazası” anlayışı barədə ümumi məlumat verdim və İngilis dilində olan “database” terminin Azərbaycan dilinə düzgün tərcümə edilməsi və işlənməsi barədə araşdırma aparmağa çalışdım. Məqsədim ana dilimizdə İKT terminləri üzrə yaranmış müxtəliflikləri aradan qaldırmaq və bununla da mövzu barədə daha dolğun və anlaşılan məlumat verməkdir.
Bugünkü məqalədə mövzunun davamı olaraq verilənlər bazalarının modelləri və çox maraqlı olan “relational database” termini barədə araşdırma aparmağa çalışacağam. Ümumiyyətlə bu və sonrakı bir neçə məqalələrdə yazı çox olacaq və şəkillərlə dolu olmayacaq. Bunu mövzu tələb edir, çünki nəzəri biliklər hər bir elmin təməlidir, əsasıdır və nəzəri biliklər olmadan təcrübəni təsəvvür etmək mümkün deyil. Xüsusən də verilənlər bazası sahəsində nəzəri biliklər olduqca vacibdir, çünki nəzəri biliklər olmadan mükəmməl və düzgün işləyən verilənlər bazasını yaratmaq və idarə etmək mümkün deyil.
Verilənlər bazalarının tipləri
Bütün verilənlər bazaları iki tipə bölünür: əməliyyat və analitik. Əməliyyat verilənlər bazaları buğun əksər şirkətlərdə və təşkilatlarda istifadə olunur. Verilənlər bazalarının bu tipi əsasən məlumatların gündəlik yığılması, emalı və saxlanılması üçün istifadə olunur. Saxlanılan məlumatlar dinamikdir, yəni daim yenilənir və həmişə ən son məlumatlar saxlanılır. İstehsalat müəssisələri, satış şırkətləri, xəstəxanalar və s. əməliyyat verilənlər bazalarından istifadə edirlər, çünki onların məlumatları daim yenilənmə vəziyyətindədir. Əməliyyat məlumat bazalarının ədəbiyyatda rast gələn başqa bir adı OLTP (Online Transaction Processing) – real zamanda əməliyyatların emalı.
Bunlardan fərqli olaraq analitik verilənlər bazaları müəyyən vaxt ərzində yığılmış məlumatları dinamikasını və dəyişməsini izləmək üçün istifadə olunur. Saxlanılan məlumatların tipi statikdir, yəni heç vaxt dəyişmir və ya nadir hallarda dəyişir. Analitik verilənlər bazasından alınan məlumatlar müəyyən zaman daxilində olan məlumatlardır və adətən ən son məlumatlar deyil. Marketinq araşdırmaları ilə məşğul olan şirkətlər, kimyəvi laboratoriyalar, geologiya şirkətlərini analitik verilənlər bazaları işlədən şirkətlər kimi nümunə göstərmək olar. Analitik məlumat bazalarının ədəbiyyatda rast gələn başqa bir adı OLAP (Online Analytical Processing) – məlumatların real zamanda analitik emalı.
Verilənlər bazalarının modelləri
İlk olaraq, “tip” və “model” anlayışları arasındaki fərqlərə nəzər yetirək. “Tip” anlayışı şeylərin, hadisələrin məlum qrupuna uyğun gələn variantıdır, növüdür, “model” anlayışı isə daha çox bir şeyin nümunə nüsxəsidir və real qurğunun, proseslərin və hadisələrin sadələşdirilmiş təsviridir. Verilənlər modelində əsas anlayışların və əlamətlərin məcmusu təsvir edilir.
Verilənlər bazalarının texnologiyasının tarixi 60-cı illərin əvvəllərindən başlayır. Həmin illərdə verilənlər bazalarının idarə edilməsi üçün proqram vasitələrinin yaradılması istiqamətində ilk cəhdlər atılmışdır. Onların bəzilərinin təsviri və müqayisəsi üçün biz 1969-cu ildə Edqar Frank Kodd tərəfindən təqdim edilmiş verilənlərin modeli anlayışından istifadə edəcəyik. O həmin anlayışı verilənlər bazalarının təşkilində münasibətli (relational) yanaşmanın təsviri üçün təqdim etdi. Lakin verilənlərin modeli anlayışı təkcə münasibətli yanaşmanın deyil, digər yanaşmaların da təsviri üçün rahat oldu.
Verilənlər bazalarının beş əsas modeli mövcuddur: iyerarxik, şəbəkə, münasibətli (relational), obyekt-münasibətli və son zamanlar yaranmış “NoSQL”. Onlardan ikisi – iyerarxik və şəbəkə modeli erkən modellər sayılır və hal-hazırda istifadə olunmur və həmin modellərdə yaradılmış məlumat bazaları bu gün nadir hallarda rast gəlinir. Daha müasir olan münasibətli (relational) modelini tam təsvir etmək üçün erkən modellərə ümumi baxış keçirməliyik.
İyerarxik verilənlər bazası
İyerarxik (tabeçilik münasibətləri olan) verilənlər bazası modelində çalışan ən məşhur və yayılmış VBİS (Verilənlər Bazalarının İdarəetmə Sistemləri) İBM şirkətinin İMS-dir (İnformation Management System). Sistemin ilk versiyası 1968-ci ildə çıxmışdır.
İyerarxik və şəbəkə modellərinin əsas terminləri – atribut, aqreqat və yazıdır. Atribut verilənlərin elementidir və verilənlərin ən kiçik adlandirilmiş struktur vahididir. Atributların adlandırılmış çoxluğundan verilənlərin aqreqatı yaranır. Nəhayət, digər aqreqatların tərkibinə daxil olmayan tərkib aqreqat yazı adlandırılır. İyerarxik modelində verilənlər bazasının bütün atributları, aqreqatları və yazıları iyerarxik formada təşkil olunmuş, yəni tabeçilik münasibətləri ilə bağlı olan struktur yaradır. Həmin strukturda istənilən element yalnız bir başqa elementə tabe ola bilər. İyerarxik modeldə bir qayda olaraq hər bir obyekt özündən yuxarı səviyyəli yalnız bir obyektə tabe ola bilər. İyerarxiya modellərində obyektə müraciət bir qayda olaraq digər obyektə tabeçiliyi olmayan ən yüksək səviyyəli obyektdən həyata keçirilir.
İyerarxik verilənlər bazası nizamlı şəkildə yığılmış “ağacların” cəmi kimi təsəvvür etmək olar. Tabeçiliyin belə formasını ağacvari (və ya budaqlanan) qraflarla (bağlı və dövrələrə malik olmayan nöqtələrdən və oxlardan ibarət olan sxemlə) təsvir etmək olar. Həmin “ağacların” bir nümunəsi aşağıdakı şəkildə göstərilib:
Şəbəkə verilənlər bazası
Verilənlərin şəbəkə modelinin konsepsiyası Ç.Baxmanın adıylə bağlıdır. Verilənlərin təşkilində şəbəkə yanaşması iyerarxik modelinin genişləndirilməsi nəticəsində yaradılmışdır. İyerarxik strukturda “yazı-nəsil” dəqiq olaraq bir “əcdada” malik olmalıdır. Verilənlərin şəbəkə strukturunda isə “nəsil” “əcdadların” istənilən sayına malik ola bilər. Təbii ki, burada “nəsil” və “əcdad” iyerarxik münasibətlərin terminləridir. Başqa sözlə desək iyerarxik modelindən fərqli olaraq şəbəkə modelində ixtiyari bir obyekt bir neçə obyektə tabe ola bilər. Verilənlərin şəbəkə modelinə əsasında çalışan sistemlərin tipik nümunəsi Cullinet Software İnc. Şirkəti tərəfindən hazırlanmış və ilkin olaraq İBM şirkətinin “mainframe work”larında istifadəsi nəzərdə tutulan İBMS (Integrated Database Management System) VBİS-idir. Iyerarxik və şəbəkə modelləri arasındakı fərq onların sxemlərindən də aydın görünür. Verilənlərin şəbəkə modelini aşağıdakı şəkildə göstərilən qrafla təsvir etmək olar.
“Relational Database” və ya münasibətli verilənlər bazası
İyerarxik və şəbəkə verilənlər bazalarının çatışmazlıqları – onların sxemlərinin çox çətin və sərt olmasıdır. Bir halda ki, verilənlərin dəyişdirilməsi proseduru həmin verilənlərin fiziki təşkilindən asılıdır, bu modellər proqram təminatından tam müstəqil deyillər. Başqa sözlə, əgər verilənlərin strukturunu dəyişmək lazımdırsa, proqram təminatında da dəyişiklik etmək lazımdır.
Münasibətli (relational) modelinin banisi Edqar Frank Kodd 60-cı illərin sonlarında tədqiqatçı alim idi və böyük həcmli məlumatların idarə edilməsi üzrə yeni üsullarının axtarışı ilə məşğul olurdu. Həmin vaxtda mövcud olan verilənlər bazalarının modelləri və məhsullarından narazı qalan alim yaranmış problemlərin həlli üçün riyaziyyat elmindən və strukturlarından istifadə etməyə başladı. İxtisası riyaziyyatçı olan alim hesab edirdi ki, riyaziyyatın müəyyən sahələri ona verilənlərin təkrarlanması, pis bütövlülüyü və verilənlər bazasının strukturunun onun fiziki təşkilindən asılılığı kimi mürəkkəb məsələlərinin həllində ona kömək edəcək. E.F. Kodd özünün yeni münasibətli (relational) modelini “A relational model of data for large shared data banks (Communications of the ACM, June 1970, 377-87) – “Birgə istifadə olunan böyük verilənlər bankları üçün verilənlərin münasibətli modeli” adlı əsərində 1970-ci ilin iyun ayında rəsmi olaraq elan etdi. O öz yeni modelinin əsası kimi riyaziyyatın iki sahəsini götürdü: çoxluqlar nəzəriyyəsi və predikatlar məntiqi və hesabı.
Əziz oxucu “relational” verilənlər bazasının təsvirində mənim “münasibət” sözündən istifadə etdiyimə yəqin ki diqqət yetirmişdir. Məsələ bundadır ki, Azərbaycan dilində mövcud olan ədəbiyyatda “relational database” terminin müxtəlif sözlərlə verilməsi bir qədər çaşqınlıq və qeyri-müəyyənlik yaradır. Məsələn, bir yerdə “relasiya”, başqa yerdə “relyasiya”, başqa bir kitabda “realyasiya” (“SQL asan yanaşma yolu” S. Səmədov, R. Səmədov), başqa bir yazıda “relyasion” (“Wikipedia” və s.), daha bir yerdə isə “əlaqəli” sözlərindən istifadə olunur. Bütün hallarda İngilis dilinin “relational”, daha doğrusu “relation” sözü Azərbaycan dilində verilməsi cəhd edilmişdir. Yəqin ki, müəlliflər “relational” terminin 30 ildən artıq müddətdə istifadə olunduğu və bəzi dillərdə olduğu kimi saxlanıldığı meyarı nəzərə alıblar; məsələn, Rus dilində “relational datadase” termini “реляционная база дынных” şəklində tərcümə olunur. Yuxarıda göstərilən variantlar da məhz Rus dilində olan “реляционный” sözünün Azərbaycan dilinə verilməsi cəhdləri kimi nəzərə çarpır, çünki “relational” sözü İngilis dilində “rileyşinal”, “relation” sözü isə “rileyşn” şəklində oxunur. Bəs Ana dilimizdə “relational database” termini hansı şəkildə təqdim edilməlidir? Qeyd etmək lazımdır ki, Türk dilində “relational database” termini “ilişkisel veritabanı” şəklində tərcümə olunur və bəzən mötərizədə orijinal adı da verilir – “ilişkisel veritabanı (relational database)” şəklində. Biz də Türk qardaşlarımızdan nümunə götürərək “relational database” termini “münasibətli verilənlər bazası” və bəzən mötərizədə orijinal adını əlavə etməklə “münasibətli verilənlər bazası (relational database)” şəklində versək daha məntiqli olmazmi? Niyə məhz “münasibət” və ya “münasibətli” sözündən istifadə etməliyik? Gəlin bu barədə bir qədər araşdırma aparaq.
Əslində, yeni modelin adı çoxluqlar nəzəriyyəsindən götürülən “münasibət” (relation) terminindən yaranmışdır. Qeyd etmək lazımdır ki, “relational database” terminin verilənlər bazalarının daxilində olan cədvəllərin bir biri ilə əlaqəli (related) olması və həmin sözdən yaranması – çox geniş yayılmış yanlışlıqdır. Ədəbiyyatda verilənlər bazalarının bu modeli təsvir ediləndə bazanın daxilində cədvəllər arasında olan əlaqələrin olması vurğulanır və “relation” sözü həmin əlaqələr kimi təqdim olunur. E.F. Kodd tərəfindən təqdim edilmiş modeldə isə söhbət çoxluqlar nəzəriyyəsində olan “relation” (münasibət) terminindən gedir. Gəlin çoxluqlar anlayışı ilə tanış olaq. Çoxluq anlayışı ilk anlayışdır və riyaziyyatda mövcud olan digər ilk anlayışlar kimi (məs. nöqtə, düz xətt, müstəvi və s.) ona da tərif verilmir. Çoxluq dedikdə hər hansı əlamətlərinə, xüsusiyyətlərinə görə seçilmiş obyektlər toplusu, yığımı başa düşülür. Məsələn: fabrikdəki işçilər çoxluğu, natural ədədlər çoxluğu, meşədəki ağaclar çoxluğu, auditoriyadakı tələbələr çoxluğu, və s. Çoxluğu təşkil edən obyektlər onun elementləri adlanırlar. Çoxluqları adətən böyük latın hərfləri ilə məs. A, B, C,…,X,Y,…,A1,B1, …, onun elementlərini isə kiçik latın hərfləri ilə məs. a,b,c,…,x,y,…,a1,b1,… kimi işarə edirlər. Çoxluq nəzəriyyəsində a∈A münasibəti o deməkdir ki, a A çoxluğunun elementidir. Bunun inkarı isə a∉A kimi işarə edirlər. Bu münasibət isə onu göstərir ki, a A çoxluğunun elementi deyil. Göründüyü kimi söhbət çoxluqlar daxilində olan elementlər və çoxluqlar arasında olan münasibətlərdən gedir və biz də buna əsaslanaraq “relational” terminini təsvir və tərcümə edilməsi zamanı məhz “münasibətli” sözündən istifadə etməliyik.
F.Koddun əsas ideyası ondan ibarət idi ki, iyerarxik və şəbəkə modellərində olan cədvəllərin içərisində olan sütunların, xüsusən də, sətirlərinin nizamlı olması problemi aradan qaldırılsın və bununla da əksər proqram təminatları üçün verilənlərin daha rahat şəkikdə təşkil olunsun. Faktiki olaraq, Kodd verilənlər bazasının əsas strukturu kimi sütunları və sətirləri nizamsız olan “cədvəllərdən” istifadə etməyi təklif etdi. Amma bu “cədvəllər” bizim bildiyimiz cədvəllər kimi deyil, əslində çoxluqlardır. Kodd verilənlərin çoxluqlar şəklində təşkil olunması və çoxluqlar nəzəriyyəsində istifadə olunan əməliyyatlardan istifadə edilməsi ideyasını irəli sürdü. Çoxluqlar nəzəriyyəsində olan çoxluqların kəsişməsi, birləşməsi və fərqi kimi əməliyyatlar buğun əksər müasir verilənlər bazalarında geniş istifadə olunur. Bu əməliyyatlar barədə növbəti məqalələrdə ətraflı məlumat verməyə çalışacağam. Çoxluqların əsas xüsusiyyətləri olan məhdudluq, unikallıq və nizamsızlıq münasibətli verilənlər bazalarında öz əksini tapmışdır. Beləliklə “cədvəl” və “çoxluq” anlayışları arasında əsaslı fərqlər mövcuddur və deyiləndə ki, verilənlər bazası cədvəllərdən təşkil olunub məhz nizamsız çoxluqlar nəzərdə tutulur.
K.C. Deytin təyininə uyğun olaraq cədvəl aşağıdakı beş şərtə uyğun gələrsə çoxluqların daxilində olan münasibətlərin təsviri kimi çıxış edə bilər:
- Yuxarıdan-aşağı sətirlərin nizamlılığı yoxdur (başqa sözlə, sətirlərin nizamı özündə heç bir informasiyaya daşımır).
- Soldan-sağa sütunların nizamlılığı yoxdur (başqa sözlə, sütunların nizamı özündə heç bir informasiyaya daşımır).
- Təkrarlanan sətirlər yoxdur.
- Sətrin və sütunun hər kəsişməsi uyğun olan “domendən” yalnız bir qiymətini özündə saxlayır.
- Bütün sütunlar adidir.
Cədvəllər verilənlər bazalarının əsas elementidir. Lakin bizim bildiyimiz cədvəllər – verilənlər bazalarının mürəkkəb daxili strukturlarının yalnız xarici təsviridir. Daha dəqiq desək, cədvəl – verilənlərə edilən sorğunun ekrana, printerə çıxarılan nəticəsidir. Əksər hallarda cədvəl axtarışın, seçimin, sorğunun nəticəsidir, yəni ekranda biz bütün verilənləri görmürük, yalnız rahat cədvəl formasında onların hansısa bir hissəsini görürük.
Obyekt-münasibətli və NoSQL verilənlər bazaları
Obyekt-münasibətli (object-relational database) verilənlər modeli münasibətli verilənlər modelinə obyekt yönümlü proqram təminatlarında olan elementlərin əlavə edilməsi nəticəsində yaranmışdır. Obyekt-münasibətli (object-relational) termini İnformix şirkəti tərəfindən 1996-cı ilin sonunda yeni məhsulunu – “Informix Universal Server-in (IUS)” buraxdıqdan sonra geniş yayılmağa başladı. Ondan sonra 1997-ci ildə Oracle şirkətinin “Oracle8” və İBM şirkətinin “DB2 Universal Database” VBİS-ləri çıxdı. Bu modelin yaranmasının səbəbi münasibətli verilənlər modelində çalışan VBİS-lərin qeyri-standart verilənlər tipləriylə işləməməsi olmuşdur. Yeni əhəmiyyətli verilənlər tipi çıxanda, onu VBİS tərəfindən dəstəkləməməsi problemi yaranırdı və ya proqramçı bu tip verilənləri proqram təminatında özü idarə etməli idi. Obyekt-münasibətli verilənlər modelində çalışan VBİS-ləri: Oracle Database, PostgreSQL və İnformixdir.
Son zamanlar NoSQL (ing. “not only SQL”, yalnız SQL deyil) verilənlər bazası modeli yayılmağa başladı. Ənənəvi münasibətli modelindən əhəmiyyətli dərəcədə fərqlənən bu modelin yaranması səbəbi münasibətli modeldə mövcud olan genişlənmə (İng. “scalability”) problemi olmuşdur. Google 2000-ci illərin əvvəllərində özünün genişlənən axtarış sistemini və proqram təminatlarını – GMail, Google Maps, Google Earth və s. yaratdı və eyni zamanda çox iri həcmli verilənlərin saxlanılması sistemini işləyib hazırladı. Bir ildən sonra bu ideya Amazon.com tərəfindən dəstəkləndi və beləliklə yeni nəsil verilənlər bazası modeli yaranmağa başladı.
Beləliklə, məqaləmizin sonuna gəlib çatdıq və nəticə olaraq qeyd edə bilərik ki, verilənlər bazalarının münasibətli modeli təsvir ediləndə bazanın daxilində cədvəllər arasında olan əlaqələrin olması deyil, məhz cədvəl şəklində təsvir olunan çoxluqların daxilində olan elementlərin arasında, həmçinin çoxluqlar arasında olan münasibətlər nəzərə alınmalıdır. Bununla da, “relational database” termini “münasibətli verilənlər bazası” şəklində təqdim olunması daha məntiqlidir.
Ümid edirəm ki, bu sahə ilə yenicə tanış olan və peşəkar mütəxəssislər üçün faydalı olacaq.
Növbəti məqalədə çoxluqlar üzərində əməllər və bu əməllərin münasibətli verilənlər bazalarında istifadəsi barədə məlumat verməyə çalışacağam.
Şərhlər ( 5 )
Zehninizə qüvvət, Rauf bəy. Çox sağ olun.
Rauf müəllim. Çox gözəl yanaşma təqdim etmisiniz. Zaman gələcək texniki lüğətlər hazırlananda mütləq bu tip məqalələr həmin tərcüməçilər üçün istinad nöqtəsi olacaq. Heç bir əmək boşuna sərf edilmir.
Təşəkkür edirəm.
Allah razı olsun, Elgüc müəllim. Hər hansı bir sahəni öyrənməyə başlayanda və ya davam edəndə müxtəlif ədəbiyyatdan istifadə etməli oluruq. Əksər ədəbiyyat İngilis və Rus dillərindədır. Bu təkçə İKT sahəsinə aid deyil – bütün sahələr belədir. Gənclərimiz digər dillərin ədəbiyyatından isitifadə etməyə məcburdur. Bunun bir tərəfdən müsbət cəhətləri də var, məsələn, İngilis dilini daha yaxşı öyrənməyə stimul və s., amma insan öz Ana dilində yazını və ya danışığı daha aydın başa düşür və beləliklə də müxtəlif çox mütrəkkəb məsələlərin həllini tapmış olur. Bizim borcumuzdur ki, hal-hazırki böşluğu dolduraq və gələcək nəslimiz üçün mükəmməl baza yaradaq.
Tamamilə Sizinlə razıyam. Allah sizlərdəndə razı olsun. Vaxt ayrıb elminizi insanlarla bölüşürsünüz.
Təşəkkür edirəm