DBMS-də Codd qaydası

Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.

Codd qaydası

Cədvəllər və məhdudiyyətlər olan hər verilənlər bazası əlaqəli bir verilənlər bazası sistemi olmamalıdır. Sadəcə əlaqəli məlumat modelinə sahib olan hər hansı bir verilənlər bazası əlaqəli bir verilənlər bazası sistemi (RDBMS) deyil. Bir verilənlər bazasının mükəmməl RDBMS olması üçün müəyyən qaydalar var. Bu qaydalar mükəmməl bir RDBMS təyin etmək üçün 1985-ci ildə Dr Edgar F Codd (EF Codd) tərəfindən hazırlanmışdır. RDBMS-in mükəmməl bir RDBMS olması üçün onun qaydalarına riayət etməlidir. Ancaq heç bir RDBMS onun bütün qaydalarına tabe ola bilməz.

EF Codd, bir verilənlər bazasının RDBMS olması üçün 13 qaydalar hazırlamışdır. Onun sözlərinə görə, bütün bu qayda mükəmməl RDBMS-yə və dolayısı ilə verilənlər bazasındakı obyektlər arasında düzgün məlumatlara və əlaqələrə kömək edir. Ancaq verilənlər bazasından heç biri bütün bu qaydalara əməl etmir; ancaq bir qədər itaət edir. Məsələn, oracle yalnız 8.5 Codd qaydalarına əməl edir.

Qaydaları bir-bir görək.

Codd qaydası 0

Bu əsas qayda. Bu qayda, hər hansı bir verilənlər bazası sisteminin əlaqəli, bir verilənlər bazası kimi və RDBMS olmaq üçün bir idarəetmə sistemi kimi xüsusiyyətlərə malik olmasını bildirir.

Bu o deməkdir ki, verilənlər bazası əlaqələr / xəritələr quraraq əlaqəli olmalıdır masaları verilənlər bazasında. Məhdudiyyətlər/ əlaqələr vasitəsi ilə bir -biri ilə əlaqəli olmalıdırlar. Verilənlər bazasında asılı olmayan müstəqil cədvəllər olmamalıdır.

RDBMS bir verilənlər bazasıdır, yəni; məlumatları cədvəl adlanan yaxşı təşkil edilmiş bir formada saxlayır. Çoxlu miqdarda məlumatları idarə edə bilməlidir. Bir sözlə, bir verilənlər bazasının məqsədlərinə cavab verməlidir.

RDBMS idarəetmə sistemidir - bu, məlumatları, əlaqəni, əldə etməyi, yeniləməyi, silməyi, obyektlərdə icazəni idarə etməyi bacarmalı deməkdir. Bütün bu inzibati tapşırıqları verilənlər bazasının hədəflərinə təsir etmədən idarə etməlidir. Bütün bu tapşırıqları sorğu dillərindən istifadə edərək yerinə yetirməlidir.

Codd qaydası 1

Məlumat qaydası

Verilənlər bazası çox məlumatdan ibarətdir - istifadəçi məlumatları və bu məlumatlar və ya metaməlumatlar haqqında məlumatlar ola bilər. Bu məlumatların hər bir qrupu satır və sütun şəklində bir cədvəldə saxlanmalıdır. Cədvəldəki hər bir hüceyrədə bu məlumatlar olmalıdır. Cədvəldəki sətir və sütunların sırası cədvəlin mənasını təsir etməməlidir. Hər hüceyrədə tək məlumat olmalıdır. Vergül, boşluq və ya tire ilə ayrılmış dəyərlər qrupu / aralığı olmamalıdır (Normallaşdırılmış məlumatlar). Verilənləri verilənlər bazasında saxlamağın yeganə yolu bu olmalıdır. Bu qayda bütün verilənlər bazaları tərəfindən təmin edilir.

Misal üçün:

'James' və 'Antony' haqqında fərdi məlumatların PERSON cədvəlində saxlanılması qaydasında heç bir fərq olmamalıdır. Bunları ardıcıl olaraq istənilən qaydada saxlamağın rahatlığı olmalıdır. Eynilə, əvvəlcə şəxsin adını və sonra onun ünvanını saxlamaq, ünvanı və sonra adını saxlamaqla eyni olmalıdır. Cədvəlin mənasında heç bir fərq yaratmır.

Codd qaydası 2

Zəmanətli giriş qaydası

Bu qayda birincil açara aiddir. Cədvəldəki hər hansı bir məlumat / sütun / atributun saxlandığı cədvəldən, cədvəlin əsas açar sütunundan və daxil olmaq istədiyimiz sütundan istifadə edərək məntiqi olaraq əldə edilə biləcəyi bildirilir. Bu 3-ün birləşməsindən istifadə edildikdə düzgün nəticə verməlidir. Hər hansı bir sütuna / hüceyrə dəyərinə cədvəl və əsas açar göstərilmədən birbaşa əldə edilməməlidir.

Pin

Kathy'nin ünvanı  TƏLƏBƏ + TƏLƏBƏ_İD (Kathy) + ADRES hər hansı bir hüceyrə dəyərini əldə etməyin düzgün yoludur. 

Kathy'nin ünvanı  Troya bu şəkildə daxil ola bilməlidir. 

Codd qaydası 3

NULL-un sistematik müalicəsi

Bu qayda verilənlər bazasındakı NULL-lərlə işləmə ilə əlaqədardır. Verilənlər bazası müxtəlif növ məlumatlardan ibarət olduğundan, hər bir hüceyrə fərqli məlumat tiplərinə sahib olacaqdır. Hüceyrə dəyərlərindən hər hansı biri bilinmirsə və ya tətbiq edilmirsə və ya yoxdursa, sıfır və ya boş olaraq göstərilə bilməz. Həmişə NULL olaraq təmsil olunacaq. Bu NULL, hüceyrə üçün istifadə olunan məlumat növündən asılı olmayaraq fəaliyyət göstərməlidir. Məntiqi və ya arifmetik əməliyyatda istifadə edildikdə, dəyəri düzgün nəticə verməlidir.

Misal üçün:

Rəqəmsal 5-ə NULL əlavə etmək NULL ilə nəticələnməlidir -

5+ naməlum = naməlum   5+ NULL = NULL  

5+ NULL! = 5 və ya 0   

Heç bir sıfır və ya ədədi bir nəticə ilə nəticələnməməlidir. DBMS bu NULL-ləri vəziyyətə və məlumat tiplərinə uyğun idarə edəcək qədər güclü olmalıdır.

Codd qaydası 4

Aktiv Onlayn Kataloq

Bu qayda məlumat lüğətini göstərir. Verilənlər bazasındakı bütün məlumatlar üçün metadata saxlanılmalıdır. Bu metadata cədvəl, sətir və sütun kimi də saxlanılmalıdır. Ayrıca giriş imtiyazlarına sahib olmalıdır. Bir sözlə, məlumat lüğətində saxlanılan bu metadata bir verilənlər bazasının bütün xüsusiyyətlərinə də tabe olmalıdır. Ayrıca, ən son məlumatlara sahib olmalıdır. Verilənlər bazasına daxil olmaq üçün istifadə etdiyimiz eyni sorğu dilini istifadə edərək bu metadata daxil ola bilməliyik.

SELECT * FROM ALL_TAB; -- ALL_TAB is the table which has the table definitions that the user owns and has access. It is queried using the same SQL query that we use in the database.

Codd qaydası 5:

Hərtərəfli Məlumat Alt dil qaydası

Hər hansı bir RDBMS verilənlər bazası birbaşa əldə edilməməlidir. Hər zaman güclü bir sorğu dili istifadə edərək əldə edilməlidir. Bu sorğu dili məlumatlara daxil ola, məlumatları idarə edə və verilənlər bazasının tutarlılığını və bütövlüyünü qoruya bilər. Sorğu, əməliyyatın tamamilə tamamlandığından və ya tamamlanmadığından əmin olmalıdır.

Misal üçün:

SQL, cədvəllər / baxışlar / məhdudiyyətlər / indekslər yaratmağı, cədvəllər / baxışların qeydlərinə daxil olmağı (SEÇMƏ), qeydləri daxil etmək / silmək / yeniləməklə manipulyasiya etməyi dəstəkləyən, müxtəlif səviyyədə giriş hüquqları (GRANT və Məhdudiyyətlərdən istifadə edərək bütövlük və uyğunluq.

Heç bir sorğu dili olmayan hər hansı bir verilənlər bazası RDBMS deyil. Verilənlər bazasına birbaşa sorğu dilindən istifadə etməklə və ya tətbiqdə istifadə etməklə daxil olmaq mümkündür.

Codd qaydası 6

Yeniləmə qaydasına baxın

Baxışlar, cədvəlin qismən görünüşünü göstərmək üçün sorğulardan istifadə edərək yaradılan virtual masalardır. Baxışlar cədvəlin alt hissəsidir, yalnız az sətir və sütunlu qismən cədvəldir. Bu qayda, cədvəldə olduğu kimi baxışların da yenilənə biləcəyini bildirir.

Misal üçün:

Tutaq ki, İşçilər cədvəlində müəyyən bir şöbədə işləyən işçilərin təfərrüatlarına sahib olduğumuz 'Sınaq' deyən bir görünüş yaratdıq. Burada TƏLƏBƏ bütün masadır və STUDENT_TEST, Sınaq İşçiləri ilə görüşdür. Bu qaydaya görə, STUDENT_VIEW-də qeydləri yeniləyə bilməliyik.

Ancaq həqiqi verilənlər bazası sistemlərində görünüşlərə bu imtiyaz verə bilmərik. Görünüşün yaradılmasının əsas məqsədi məlumat qrupunu istifadəçiyə cədvəl şəklində verməkdir. Bazadan bəzi detallar əldə etmək üçün uzun sorğuların yazılması lazım olduqda, görünüş sorğunun uzunluğunu qısaldır və daha mənalı və daha qısa sorğu verir. Bu vəziyyətdə görünüşü yeniləmək mümkün deyil. Görünüşün yenilənməsi onu yaratmaq üçün istifadə olunan cədvəli yeniləməsinə baxmayaraq, verilənlər bazasının əksəriyyəti tərəfindən tövsiyə edilmir. Beləliklə, bu qayda verilənlər bazasında istifadə olunmur.

Codd qaydası 7

Yüksək səviyyədə daxil edin, yeniləyin və silin

Bu qayda, verilənlər bazası tərəfindən istifadə edilən hər bir sorğu dilinin qeydlərdə INSERT, DELETE və UPDATE-ni dəstəkləməsini bildirir. Həm də UNION, UNION ALL, MINUS, INTERSECT və INTERSECT ALL kimi müəyyən əməliyyatları dəstəkləməlidir. Bütün bu əməliyyatlar bir dəfəyə tək masa və ya sıra ilə məhdudlaşdırılmamalıdır. Fəaliyyətində çoxlu cədvəl və sətirləri idarə edə bilməlidir.

Misal üçün:

Tutaq ki, işçilər bir ildə% 5 artım əldə etdilər. Sonra yeni maaşı əks etdirmək üçün maaşları yenilənməlidir. Bu işçilərə verilən illik artım olduğundan bu artım bütün işçilər üçün tətbiq olunur. Beləliklə, sorğu minlərlə işçi üçün əmək haqqının bir-bir yenilənməsi üçün yazılmamalıdır. Tək bir sorğu bir anda bütün işçinin maaşını yeniləyəcək qədər güclü olmalıdır.

Codd qaydası 8

Fiziki Məlumat Müstəqilliyi

Verilənlərin fiziki saxlamasında hər hansı bir dəyişiklik varsa, məlumatları məntiqi və ya xarici görünüşdə təsir etməməlidir.

Misal üçün:

Bir diskdə saxlanılan məlumatlar başqa bir diskə köçürülürsə, məlumatları seyr edən istifadəçi giriş vaxtındakı fərqi və ya gecikməni hiss etməməlidir. İstifadəçi əvvəllər əldə etdiyi kimi məlumatlara daxil olmalıdır. Eynilə, cədvəl üçün fayl adı yaddaşda dəyişdirilərsə, bu cədvələ və ya cədvələ baxan istifadəçiyə təsir etməməlidir. Bu fiziki müstəqillik olaraq bilinir və verilənlər bazası bu xüsusiyyəti dəstəkləməlidir.

Codd qaydası 9

Məntiqi Məlumat Müstəqilliyi

Bu fiziki məlumatların müstəqilliyinə bənzəyir. Burada məntiqi baxışda hər hansı bir dəyişiklik varsa, istifadəçi baxışında əks olunmamalıdır.

Misal üçün:

ƏMƏKDAŞ cədvəlini bölməsinə görə çoxlu işçi cədvəlinə ayırırıqsa, işçi cədvəlinə baxan istifadəçi bu qeydlərin fərqli cədvəllərdən gəldiyini hiss etməməlidir. Bu bölünmüş cədvəllərə qoşulmaq və nəticəni göstərmək lazımdır. Bizim nümunəmizdə UNION istifadə edə və nəticələri istifadəçiyə göstərə bilərik.

Ancaq ideal ssenaridə buna nail olmaq çətindir, çünki bütün məntiqi və istifadəçi baxışları o qədər möhkəm bağlanacaq ki, demək olar ki, eyni olacaqlar.

Codd qaydası 10

Dürüstlük Müstəqilliyi

Verilənlər bazası, sorğu dillərindən istifadə edərək bütövlük qaydalarını tətbiq etməlidir. Dürüstlüyü qorumaq üçün hər hansı bir xarici faktordan və ya tətbiqdən asılı olmamalıdır. Verilənlər bazasındakı düymələr və məhdudiyyətlər bütövlüyü idarə edəcək qədər güclü olmalıdır. Yaxşı bir RDBMS, ön tətbiqetmədən müstəqil olmalıdır. Ən azından əsas açar və xarici açar bütövlüyü məhdudiyyətlərini dəstəkləməlidir.

Misal üçün:

Bir tətbiqdən istifadə edərək 50 saylı şöbəyə bir işçi əlavə etmək istədiyimizi düşünək. Lakin sistem 50-də şöbə yoxdur. Bu vəziyyətdə, tətbiq 50 şöbəsi varsa, şöbəni daxil etmədikdə və sonra işçini daxil edərsə, gətirmə vəzifəsini yerinə yetirməməlidir. Hər şey verilənlər bazası tərəfindən idarə olunmalıdır.

Codd qaydası 11

Dağıtım Müstəqilliyi

Verilənlər bazası istifadəçi serverində və ya başqa bir şəbəkədə yerləşə bilər. Son istifadəçi verilənlər bazası serverlərini bilməməlidir. O, qeydləri yerli olaraq çəkirmiş kimi qeydləri əldə etməlidir. Verilənlər bazası fərqli serverlərdə yerləşsə də, əlçatanlıq müddəti nisbətən daha az olmalıdır.

 

Codd qaydası 12

Subversion Qaydası

Verilənlər bazasında bir sorğu atıldıqda, məlumatları əldə etmək üçün əsas sistemlər tərəfindən başa düşülə bilməsi üçün aşağı səviyyəli dilə çevriləcəkdir. Bu halda qeydlərə aşağı səviyyəli dildə daxil olarkən və ya manipulyasiya edərkən verilənlər bazasının bütövlüyünü dəyişdirən boşluqlar olmamalıdır. Başqa sözlə, yazılan sorğunun cədvəllərin bütövlüyünü dəyişdirmədiyini düşünsək də, çevrilmiş aşağı səviyyəli dil yazılan sorğu ilə eyni olmalıdır. Verilənlər bazasındakı məlumatların bütövlüyünü dəyişdirən və ya verilənlər bazasında bəzi istənməyən hərəkətləri həyata keçirən başqa bir aşağı səviyyəli dilə çevrilməməlidir.

Misal üçün:

Yeniləmə Tələbə ünvanı sorğusu həmişə yaddaşdakı tələbə sənədindəki ünvan qeydlərini yeniləyən aşağı səviyyəli bir dilə çevrilməlidir. Fayldakı başqa bir qeydin yenilənməməsi və ya zərərli bir qeydin fayl / yaddaşa əlavə edilməməsi lazımdır.

Crack Sistemi Dizayn Müsahibələri
Translate »