Data konsepsiyası: tərif, nümunələr

Mündəricat:

Data konsepsiyası: tərif, nümunələr
Data konsepsiyası: tərif, nümunələr
Anonim

Məlumatlar adətən proqramlaşdırma ilə əlaqələndirilir və müasir informasiya dünyasında üç məntiqi ekvivalent versiyada təqdim olunur: proqramlaşdırma dilində proqramda təsvir edilən və istifadə olunan verilənlər; verilənlər bazası sistemlərində məlumatlar; paylanmış informasiya sistemlərində verilənlər. Müasir proqramlaşdırma informasiyanın rəsmiləşdirilməsinin yalnız birinci variantına nisbi sərbəstlik verib. İkinci iki seçim onun komponentləri arasında məlumat və əlaqələri təmin etmək üçün az və ya çox etibarlı formalardır.

Keçmiş və indiki data

Proqramlaşdırma dillərinin əsas mövqeyi verilənlərin və alqoritmlərin dəqiq təsviridir. Kompüterlər qeyri-müəyyənlik şansını "təqdim etmir": hərəkətə keçməli olan bir şey var və bu hərəkəti yerinə yetirən əmr var.

Müasir konsepsiya daha yüksək təməl üzərində qurulub: verilmiş var və onun dəqiq nə olacağı onun istifadə edildiyi yerdə müəyyən edilir. Hər halda, istifadə zamanı məlumatlar avtomatik olaraq yoxlanılır və düzgün tipə çevrilir. Müasir proqramçı onların ilkin təsvirinə və alqoritmdə tip uyğunluğuna riayət etməyə borclu deyil.

Keçmiş və indiki məlumatlar
Keçmiş və indiki məlumatlar

Keçid prosesi:

  • yazılmış məlumatdan və istifadədən əvvəl onun məcburi təsvirindən;
  • tiplənməmiş məlumatlara və onu təsvir etmək və istifadə etmək öhdəliyindən azad olmaq.

Əslində biz rəsmiləşdirmə tələblərinin nisbi rahatlamasını tanıya bilərik - bu, yalnız müasir proqramlaşdırma alətləri mühitində mövcuddur. İcra zamanı hər bir verilənlərin növü sabitdir və əmr ardıcıllığı yaxşı müəyyən edilir.

Növlər və Modelləşdirmə

Riyaziyyat və fizika, ticarət və istehsal, iqtisadiyyat və rəqəmlərin istifadə olunduğu digər sahələr həmişə verilənlərlə işləmiş və tip anlayışına heç bir əhəmiyyət verməmişdir. Rəqəmlərin tam və ya kəsrli ola bilməsi əslində heç bir əhəmiyyət kəsb etmirdi.

Hər bir xüsusi düstur və ya xüsusi hərəkət tam, sonsuz kəsr, həqiqi və ya kompleks ədəd verə bilər. İndiyə qədər ağılın sonsuz kiçik və sonsuz böyük kimi möcüzələri var. Üstəlik, bu möcüzələr hətta xüsusiyyətlərə malikdir.

Proqramlaşdırmada hələ də azadlıq yoxdur. Hər şey ciddi şəkildə rəsmiləşdirilməlidir. Məlumat anlayışı, ilk növbədə, bir növdür:

  • tam;
  • boolean;
  • char;
  • simli və s.

Növlərin adları müxtəlif proqramlaşdırma dillərində fərqli ola bilər, lakin həmişə tam və ya həqiqi ədəd, boolean dəyəri, simvol,xətt. Hələ də qalıqlar və konkret ideyalar qalıb: işarəsiz tam ədəd, kod, bayt, söz, qoşa söz, sabit uzunluqlu sətir.

Qalıqlar və ideyalar
Qalıqlar və ideyalar

Məlumat sistemindəki məlumat anlayışının azadlığı yoxdur. SQL dili - "beynəlxalq" (hər bir müasir verilənlər bazası üçün dialekt var) - təkcə verilənlərdə deyil, sql sorğularında da heç bir qeyri-dəqiqliyə dözmür. Sorğuda bir səhv nəticənin olmamasının təminatıdır. Təsvirlərin pozulması haqqında ümumiyyətlə danışmağa ehtiyac yoxdur.

İnformasiya prosesləri və məlumat təqdimatlarının modelləşdirilməsi təkamül edə bilən və dəyişən şərtlərə uyğunlaşa bilən struktur qurmaq üçün yeganə əmin yoldur.

Orijinalın dinamikası

Təbii məlumat davamlı dəyişiklikdir. Müəyyən bir mövzu sahəsində məlumat modelinin rəsmi təsvirini və konsepsiyasını vermək üç problemi həll etmək deməkdir:

  • burada hansı datanın olduğunu müəyyən edin;
  • aralarındakı münasibəti rəsmiləşdirin;
  • data və münasibətləri dəyişmək üçün prosesləri təsvir edin.

JavaScript-də sadə alqoritmin verilənlər toplusunun nümunəsi - hətta ən möhkəm verilənlər bazası idarəetmə sisteminin modelinin kiçildilmiş nüsxəsi.

Sadəcə ikinci halda ekspertlər və mütəxəssislər verilənlər strukturlarını, cədvəlləri və əlaqələri tərtib edərkən adətən əşyaların mahiyyətini görmürlər (böyük miqdarda təbii məlumatı əhatə etmək həqiqətən çətindir) və mövzu sahəsində mənbə məlumatı sərbəst və asanlıqla dövrəyə girərkən, çətin, inkişaf etdirilməmiş bir yığın məlumat toplusu əldə edilir.

Statikmümkündür

Səhifəyə əlavə edilmiş kodu və səhifə teqlərində hadisələrə təyin edilmiş funksiyaları daxil etmək adi JavaScript təcrübəsidir. İstənilən halda, səhifə teqləri verilmiş veb resursun qəbul etdiyi, dəyişdirdiyi və ya yaratdığı məlumatları müəyyənləşdirir.

İşləyici kodunu bütövlükdə səhifə kodunda deyil, element hadisələri üzərində çox diqqətlə cəmləsəniz, bu, ən yaxşı çıxış yoludur. İdeal olaraq, kod yeni məlumat təqdim etmədikdə və ya mövcud məlumatları düzəltmədikdə, lakin zamanın müəyyən bir anında dəqiq nəyə diqqət yetirir.

Əslində, əgər siz "məlumat" anlayışını mənbə məlumatının minimal statik təsviri kimi təyin etsəniz və ona əməl etsəniz, bu, uğur şansınız olduğunu bildirir.

Verilənlər bazası ilə bağlı işlər daha mürəkkəbdir. İstənilən JavaScript kodu səhifəni funksionallıqla “təmin edir”. İstənilən verilənlər bazası cədvəllər, onlar arasındakı əlaqələr, saxlanılan prosedurlar, sorğular və xaricdən əldə edilə bilən funksionallıq toplusudur.

Statik istənilən alqoritmin problemidir. Müasir verilənlər anlayışı statikdir: ədəd, sətir, simvol və s. Emal zamanı və ya verilənlər bazası cədvəlinə yazarkən hər şey rəvan çıxır. Bəs orijinal nə vaxt başqa ölçü və ya məna qazanır? Birinci seçim: işarəni dəyişdirin, lakin bağlantılar və sorğular dərhal daxil ola bilər.

Statikalar və obyektlər

"Məlumat" anlayışının obyekt kimi müəyyən edilməsi vəziyyəti kəskin şəkildə dəyişir. Obyektin öz strukturu var. Burada istənilən dəyişənlərin istənilən təsvirindən istifadə edə bilərsiniz. Rol oynamayacaq. Obyekt məlumatların mövcud olduğu üsullara malikdir. Hər şeydən bəriproqramlaşdırma sahəsində istifadə olunur, yəni üç əsas üsul: oxumaq, yazmaq, dəyişdirmək. Siz müqayisə etmək, axtarmaq, klonlamaq və s. üçün daha çox əlavə edə bilərsiniz.

Mövzu sahəsi hər bir məlumat üçün bir sıra xüsusiyyətlər tətbiq edir. Beləliklə, məlum olur ki, verilənlər anlayışı dinamik şəkildə dəyişdirilə bilən bir növ təsvirə çevrilir. Obyektin daxilindəki statik onun xaricində dinamika verir.

Obyektin daxilində statik deskriptorların kombinasiyasını dəyişdirməklə, onun digər obyektlərlə əlaqələrinin dinamikası barədə narahat olmaq lazım deyil.

Verilənlərin proqramlaşdırılması və təqdimatı

Data nədir? İctimai şüur artıq informasiya texnologiyalarına öyrəşib, buludlarda işləyir və virtual məkanlarda konteynerlərə malikdir. İndi təkcə peşəkar proqramçılar və istifadəçilər deyil, adi insanlar da informasiya və ondan istifadə məsələlərində bacarıqlıdırlar.

İctimai rəy
İctimai rəy

Bəs proqramlaşdırma nədir? Bu günə qədər ictimai rəy bu anlayışa və onun anlayışlarına aşağıdakı tərif verir:

  • İnformasiya və verilənlər kompüter elmində istifadə olunan əsas anlayışlardır.
  • Data ətrafdakı reallığa nisbətən müəyyən bir şəkildə qəbul edilmiş və qeydə alınmış müşahidələrdir.
  • Onlar sadə və mürəkkəbdir (strukturlar), əsas və köməkçidir.
  • Verilənlər bazası sistemli şəkildə təqdim edilən müstəqil materialların toplusudur ki, onları tapmaq, dəyişdirmək və istifadə etmək olar.

Bu nə dərəcədə obyektivdir? Səlahiyyətli müəlliflərbelə hesab edirəm. Həqiqi təcrübə hər bir mövzu sahəsinin öz düzgün məlumat sistemini təyin etməsini təmin edir və yaxşı dinamik model yaratmaq üçün hər fürsəti verir.

Müştərinin (istehlakçının) proqramçıya (verilənlər bazası dizaynerinə) necə və nə etməli olduğuna dair öz fikrini qəbul etdirməsi qeyri-adi deyil. Proqramlaşdırma nöqteyi-nəzərindən müştərinin istənilən istəyi son dərəcə dəqiqliklə yerinə yetirilə bilər.

Oracle lazımdır kənd su təchizatı (kənddə 21 bina) saxlanılması üçün büdcə problemi həll etmək - yaxşı. MySQL Rusiyadakı bütün poçt şöbələri üçün poçt göndərişləri üçün izləmə sistemi təşkil etmək üçün lazımdır - hər şey də işləyəcək.

Siz həmişə verilənlər bazası idarəetmə sisteminin və ya proqramlaşdırma dilinin tərtibatçısı tərəfindən qurulan verilənlər anlayışının tərifi çərçivəsində istənilən alqoritmi tərtib edə və istənilən məlumat təqdimatına çıxışı təmin edə bilərsiniz. Sual fərqlidir: bunu maksimum dinamikada minimal xərclərlə necə etmək olar?

Verilənlər bazaları, nümunələr

Sadə baza modelsiz yaradılmışdır. Məlumat və ünsiyyətin əsas anlayışları kiçikdir, funksionallıq çox sadədir. Məsələn, ali təhsil müəssisəsi üçün sizə lazımdır:

  • müəllimlər cədvəli;
  • qrup cədvəli (açar və qrup nömrəsi);
  • şagirdlərin ümumi cədvəli (qrup düymələri istifadə olunur).

Dekan müəllimlərin gedişatını öyrənmək istəyir. Müəllimlər cədvəlində sahələr var:

  • soyad;
  • ad;
  • atasının adı;
  • nəzarət edilən qrup nömrəsi.

Tələbə cədvəlində sahələr var:

  • soyad;
  • ad;
  • atasının adı;
  • doğum tarixi;
  • GPA (bütün fənlər üçün);
  • qrup nömrəsi.

Nümunə götürmək üçün ən azı iki seçim ola bilər: müəllimin adından istifadə edərək qrup nömrəsinə keçib bütün tələbələri və onların orta ballarını, yaxud müəllimin soyadı və sonuncusu ilə görə bilərsiniz. tələbənin adı ilə sonuncunun orta xalını görə bilərsiniz.

Sadə verilənlər bazası
Sadə verilənlər bazası

Belə sadə versiyada belə problemlərə zəmanət verilir və bir şey dəyişdirilməli olacaq. Vəziyyət: müəllim xəstələndi, daha bir ay onu əvəz edir, yəni iki qrupa nəzarət edir. Müəllim cədvəlində bir qrup nömrəsinin altında yalnız bir sahə var.

Problemi həll etmək üçün dublikat sahə əlavə etməlisiniz. Və ikisi xəstələnsə, üç sahə əlavə edin. Beləliklə, müəllimlər cədvəli sıfırdan böyüməyə başlayır.

Başqa bir seçim var: qrup düyməsinin rəqəm sahəsini simvolik ilə əvəz edin. Sonra hər dəfə seçdiyiniz zaman sətri düymələr ardıcıllığına çevirməli olacaqsınız və bir sql sorğusu bir neçəyə çevriləcək.

Daha perspektivli nümunə cədvəllər hazırlamaq deyil, obyektlər hazırlamaqdır. Sonra müəllim bir obyektdir və onun bir neçə nəzarət etdiyi qrup ola bilər. Ancaq həmişə bir obyektdir. Müəllim obyektinin unikal açarı var, lakin bir neçə nəzarət edilən qrup ola bilər. Qrupun həmçinin unikal açarı var. Tələbə də.

Hər üç mövqe təkcə tapşırıq daxilində mövcud deyil, daha da inkişaf etdirilə bilər.

Obyekt yönümlü əsaslar

İnformasiya sənayesi liderləriklassik relational verilənlər bazası təklif edir. Onlar həyat tərəfindən sınaqdan keçirilir, işləyirlər, təhlükəsizdirlər, etibarlıdırlar və problem olarsa, məlumatı bərpa etməyə imkan verirlər.

Obyekt yönümlü verilənlər bazaları (OODB) 1980-ci illərin ortalarında hazırlanmağa başladı və nüfuzlu müəlliflərin fikrincə, bu günə qədər vəd edir. Lakin indiyə qədər fundamental nəzəriyyələr və konseptual müddəalardan başqa, bütün müxtəlif təcəssümlərində MySQL, MS SQL Server və ya Oracle ilə eyni reytinqə və paylanmaya nail olmuş heç bir OODB yoxdur.

OO verilənlər bazası
OO verilənlər bazası

Bəs məlumatların, tiplərin, atributların, siniflərin, iyerarxiyaların tərifi, konsepsiyası bu OODB-nin mentalitetini qəbul edən proqramçılar birliyini yaratmaq üçün reytinqi kifayət olmayan bir tərtibatçı tərəfindən təklif olunarsa necə? Biz öz gücümüzə güvənməliyik.

Linux mühitində OODB-nin otuzdan çox variantı yaradılmışdır. Bəs yaradılmış verilənlər bazasının daha çox funksionallıq tələb etməyəcəyinə zəmanət haradadır? Windows mühiti bu sahədə çox zəmanət vermir.

Obyekt yönümlü həll

Ancaq bir həll yolu var. Nümunə olaraq MySQL-dən istifadə etməklə siz standart relyasiya cədvəllərinin həll olunan problemin obyekt yönümlü modelinə necə çevrildiyini göstərə bilərsiniz.

Öz OODB-nin nümunəsi
Öz OODB-nin nümunəsi

Burada verilənlər bazası yoxdur, lakin öz obyektlər sisteminizi formalaşdırmaq üçün mühit var. MySQL-in gücü yalnız məlumat sətirlərindən olan cədvəllər üçün əlaqəli yaddaş kimi istifadə olunur. İstifadə məntiqi tərtibatçının özü tərəfindən müəyyən edilir. Xüsusilə, is_cache cədvəli var. Hər şeyi varbir neçə əsas sahə:

  • sahibi_kodu;
  • sessiya_kodu;
  • h_kodu;
  • sürpriz;
  • a_contents.

Qalan sahələr xidmət funksiyalarını daşıyır. Bu cədvəl istənilən sorğunun girişində dayanır və onun gəlişini qeyd edir. Verilənlər bazası modelinin nə işləyəcəyini onun tərtibçisi müəyyən edir. Məzmun sahəsinə (a_contents) uyğun olanlar tərtibatçı tərəfindən yaradılmış modelin obyektləri ilə müəyyən edilir.

Bu ideyada dörd şey var: vuruş, vuruş sessiyası, vuruş tarixçəsi kodu və xüsusi məzmun. Zəng nədir, hansı obyektlər sistemi qurulmalıdır - tərtibatçı tərəfindən müəyyən edilir. Sessiya (iş prosesi) dedikdə nə nəzərdə tutulduğu tərtibatçı tərəfindən müəyyən edilir. Tarixçə kodu sorğular üzrə geri qayıtmaq imkanıdır.

Buradakı cədvəllərin mövzu sahəsi ilə heç bir əlaqəsi yoxdur. Zəng nəzarətçisi (is_cache), giriş var (is_customs), zəng tarixçəsi (is_histories) var. Qalan cədvəllər həll olunan tapşırıqla müəyyən edilir.

Əslində, bu həll qurulmuş domen verilənlər bazası modeli və həll olunan problem əsasında öz OODB-nizi yaratmağı təklif edir. Burada böyük bir artı var - bu, öz məlumat konsepsiyanız, onların təqdimat modeliniz və onlar arasındakı əlaqədir. Burada bir təməl var - əla əlaqəli verilənlər bazası. Nəyisə axtarmaqda və nəyisə səhv başa düşməkdə problem olmayacaq.

Model: obyekt sistemi + DBMS

İnformasiya texnologiyasında nəyisə dəyişmək demək olar ki, mümkün deyil. Əsl informasiya inqilabı hələ çox uzaqdadır. peşəkar şüurproqram tərtibatçıları klassik ənənələri dəyişdirmək niyyətində deyillər. Ancaq vəziyyətdən çıxış yolu hələ də var.

İdeal Həll
İdeal Həll

Öz modelinizin mövcudluğu üçün mühit yaratmaq üçün əsas kimi etibarlı müasir verilənlər bazası idarəetmə sistemlərindən istifadə etməklə nəzərəçarpacaq uğurlar əldə edə bilərsiniz.

Hər halda tapşırığı həll etmək üçün görünüş və ya verilənlər modeli qurmalı olacaqsınız, lakin siz bunu düzgün etməlisiniz: qoy bu obyektlər sistemi, yaxşı DBMS isə onun mühiti olsun.

Tövsiyə: