Relyatsion hisoblash elementlari

Relyatsion hisoblash elementlari
"Relyatsion hisoblash" muammosi, umumiy holda, biror bir narsa yoki tizimning boshqa bir narsa yoki tizimga qanday qilib munosabat qilishi yoki munosabatlarni o'rganish va boshqarish jarayonini ifodalovchi bir konsept sifatida foydalaniladi. Bu, bir tizim yoki narsa boshqaruvini o'zida o'zgartirish uchun boshqa tizim yoki narsalar bilan o'rtacha axborot almashish va o'zaro hamkorlik qilish imkoniyatini ta'minlashda muhim bo'lgan tuzilma va protokollarga ega bo'lishni talab qiladi.
Relyatsion hisoblash elementlari asosan ma'lumotlar o'zgartirish va ularga kirishni boshqarish jarayonlarini o'z ichiga oladi. Bu, relatsion ma'lumotlar bazasidagi (RDBMS) jadvallarni (tables) o'z ichiga oladi. Har bir jadval, ma'lumotlarni saqlash uchun kerak bo'lgan maydonlar (fields) va ularga oid bo'lgan ma'lumot turlari (data types) bilan belgilangan bo'ladi.
Quyidagi misollar, relyatsion hisoblash elementlarini (jadvallar, maydonlar, qatorlar, bog'lanishlar) ko'rsatish uchun foydalaniladi:
Jadval (Table):
Masalan, "Talaba" jadvali, talabalarning ma'lumotlarini saqlaydi. Jadval maydonlari o'zgaruvchan sifatida talaba_id, ism, familiya, yosh va boshqalar bo'lishi mumkin.
Maydon (Field):
Jadvaldagi har bir ustun maydonni ifodalaydi. Masalan, "talaba_id", "ism", "familiya" va "yosh" maydonlari.
Qator (Row):
Jadvaldagi har bir qator, biror bir obyektni (masalan, talabani) ifodalaydi. Misol uchun, birinchi qatorda Ali Valiyevning ma'lumotlari mavjud.
Bog'lanish (Relationship):
Bir necha jadvallar o'rtasidagi aloqalarni ifodalovchi element. Masalan, "Talaba" jadvali va "Fan" jadvali o'rtasidagi bog'lanish, talabalar va ularning o'qish fanlarini bog'laydi.
Talaba jadvali:
Bu misollar, relyatsion hisoblash elementlarini tushuntirish uchun amaliy misollardir. Relyatsion hisoblash, umumiy tizimlarda ma'lumotlar bilan ishlashning hamda o'zaro aloqalarni boshqarishning keng jamlanmasini ta'minlaydi.
Relyatsion operatsiyalar
Aloqaviy algebra
Relyatsion ma'lumotlar bazasiga qilingan so'rovlar va olingan ma'lumotlar relvars ma'lumotlar bazasida a munosabat hisobi yoki a munosabat algebra. Dastlabki relyatsion algebrasida Codd har biri to'rtta operatordan iborat ikkita guruhga sakkizta relyatsion operatorlarni kiritdi. Dastlabki to'rtta operator an'anaviy matematikaga asoslangan edi operatsiyalarni o'rnatish:
The birlashma operator ikkitaning gorizontallarini birlashtiradi munosabatlar va natijadan barcha takrorlangan katakchalarni olib tashlaydi. Relatsion birlashma operatori ga teng SQL UNION operator.
The kesishish operator ikkita munosabatlar umumiy bo'lgan korreklar to'plamini ishlab chiqaradi. Kesish SQL-da. Shaklida amalga oshiriladi INTERSECT operator.
The farq operator ikki munosabatlarda harakat qiladi va ikkinchi aloqada mavjud bo'lmagan birinchi munosabatlardan topllar to'plamini hosil qiladi.
Farq SQL-da Istisno yoki MINUS operatori.
The kartezian mahsuloti ikki munosabat - bu hech qanday mezon bilan cheklanmagan birlashma, natijada birinchi munosabatlarning har bir katakchasi ikkinchi munosabatlarning har bir katakchasiga to'g'ri keladi. Kartezyen mahsulot SQL-da Xoch qo'shilish operator.
Codd tomonidan taklif qilingan qolgan operatorlar relyatsion ma'lumotlar bazalariga xos bo'lgan maxsus operatsiyalarni o'z ichiga oladi:
Tanlash yoki cheklash operatsiyasi o'zaro bog'liqlikdan tortib oladi, natijalarni faqat ma'lum bir mezonga javob beradigan natijalar bilan cheklaydi, ya'ni kichik to'plam to'plam nazariyasi nuqtai nazaridan. Tanlovning SQL ekvivalenti bu SELECT bilan so'rov bayonoti Qaerda band.
The proektsion operatsiya koreysdan yoki korrekka to'plamidan faqat ko'rsatilgan atributlarni ajratib oladi.
Relyatsion ma'lumotlar bazalari uchun birlashtirilgan operatsiya ko'pincha tabiiy birikma deb ataladi. Birlashtirishning bu turida ikkita munosabatlar o'zlarining umumiy sifatlari bilan bog'lanadi. MySQL-ning tabiiy qo'shilishga yaqinlashishi Ichki qo'shilish operator. SQL-da INNER JOIN so'rovda ikkita jadval mavjud bo'lganda kartezian mahsuloti paydo bo'lishining oldini oladi. SQL so'roviga qo'shilgan har bir jadval uchun kartezian mahsulotini oldini olish uchun bitta qo'shimcha INNER JOIN qo'shiladi. Shunday qilib, SQL so'rovidagi N jadvallar uchun kartezian mahsulotini oldini olish uchun N-1 INNER JOINS bo'lishi kerak.
The munosabat taqsimoti operatsiya biroz murakkabroq operatsiya bo'lib, asosan ikkinchi munosabatni (bo'luvchi) ajratish uchun bitta munosabat (dividend) korotkalarini ishlatishni o'z ichiga oladi. Relyatsion bo'linish operatori kartezian mahsuloti operatoriga qarama-qarshi bo'lib turadi (shuning uchun uning nomi).
Boshqa operatorlar Codd tomonidan taqdim etilgan dastlabki sakkizta, shu jumladan o'zaro aloqador taqqoslash operatorlari va kengaytmalar, shu jumladan, uyalar va ierarxik ma'lumotlarga yordam beradigan takliflar kiritildi.
Relyatsion ma'lumotlar bazasining izchilligi uni ishlatadigan dasturlarda o'rnatilgan qoidalar bilan emas, aksincha amalga oshiriladi cheklovlar, mantiqiy sxemaning bir qismi sifatida e'lon qilingan va Ma'lumotlar bazasi barcha ilovalar uchun. Umuman olganda, cheklovlar relyatsion taqqoslash operatorlari yordamida ifodalanadi, ulardan faqat bittasi, "" (⊆) ning kichik qismi ", nazariy jihatdan etarli[iqtibos kerak ]. Amalda, bir nechta foydali stenografiyalar bo'lishi kutilmoqda, ulardan eng muhimi nomzod kaliti (haqiqatan ham, superkey ) va tashqi kalit cheklovlar.
Normallashtirish birinchi marta relyatsion modelning ajralmas qismi sifatida Codd tomonidan taklif qilingan. U oddiy bo'lmagan domenlarni (atom bo'lmagan qiymatlar) va ma'lumotlarning ortiqcha (takrorlanishini) yo'q qilishga qaratilgan protseduralar to'plamini o'z ichiga oladi, bu esa o'z navbatida ma'lumotlar manipulyatsiyasi anomaliyalari va ma'lumotlar yaxlitligini yo'qotadi. Ma'lumotlar bazalariga qo'llaniladigan normallashtirishning eng keng tarqalgan shakllari oddiy shakllar.
RDBMSlar 1980 yildan beri moliyaviy yozuvlar, ishlab chiqarish va moddiy-texnika ma'lumotlari, xodimlar ma'lumotlari va boshqa ilovalar uchun foydalaniladigan ma'lumotlar bazalarida ma'lumotlarni saqlashning keng tarqalgan variantidir. Relatsion ma'lumotlar bazalari ko'pincha meros o'rnini egallagan ierarxik ma'lumotlar bazalari va tarmoq ma'lumotlar bazalari, chunki RDBMSni amalga oshirish va boshqarish osonroq edi. Shunga qaramay, ma'lumotlar bazalari olingan ma'lumotlar uzluksiz, muvaffaqiyatsiz tugadi ob'ekt ma'lumotlar bazasi 1980 va 1990 yillarda boshqaruv tizimlari (ular deb atalmish masalalarni hal qilish uchun kiritilgan ob'ekt-munosabat impedansining mos kelmasligi relyatsion ma'lumotlar bazalari va ob'ektga yo'naltirilgan dastur dasturlari o'rtasida), shuningdek tomonidan XML ma'lumotlar bazasi 1990-yillarda boshqaruv tizimlari.[iqtibos kerak] Biroq, kabi texnologiyalarning kengligi tufayli gorizontal masshtablash ning kompyuter klasterlari, NoSQL ma'lumotlar bazalari yaqinda RDBMS ma'lumotlar bazalariga alternativa sifatida ommalashib ketdi.
Video:
Talabalarni qiziqtiradigan oddiy misol bilan biz relatsion algebr va relatsion hisoblash o'rtasidagi farqni ko'rib chiqamiz. Select operatori yordamida qaysi atributlar bizni qiziqtirayotganini belgilaymiz, from operatori bilan esa ma'lumotlarni qayerdan olishimizni ko'rsatamiz. Mana shu sharoitlarda relatsion algebr va relatsion hisoblash ham o'ziga xos usullarga ega. Biz bu ma'ruzalarda kerakli atributlarni ko'rsatamiz va qaysi joydan olishni belgilaymiz. Misol uchun, bizni talabalar qiziqtirsa, ularni relatsion algebrda va relatsion hisoblashda qanday tanlashimiz mumkinligini ko'rib chiqamiz.
Bizni qiziqtiradigan narsa shuki, talabalarning identifikatorlari, shundayki, ular o'qiydigan guruh mavjud va bu guruhning nomi 3437. Ya'ni, biz so'rovni qanday amalga oshirishni aniq ko'rsatmaymiz, faqat bizni qiziqtiradigan talabalarni tasvirlaymiz. Buning uchun, dastlab tuple hisoblashini ko'rib chiqamiz. Tuple hisoblashda, tuple o'zgaruvchilar har bir vaqtda, ya'ni har bir davrda mavjud bo'ladi. Har bir tuple o'zgaruvchisi o'ziga xos tuplelarni o'z ichiga oladi va ularga mos ravishda nomlar beriladi.
Bu sharoitda, biz quyidagi relatsion hisoblash ifodasini yozishimiz mumkin: {S.id∣∃G(S.gid=G.gid∧G.name=′3437′)} Bu yerda:
S - talaba tuple o'zgaruvchisi.
G - guruh tuple o'zgaruvchisi.
S.id - bizni qiziqtirgan talabalar identifikatorlari.
S.gid va G.gid - talabalar va guruhlarning identifikatorlari.
G.name=′3437′ - guruh nomining 3437 bo'lishi sharti.
Guruh 4 kurs talabalari uchun talab qilingan ma'lumotlarni vergul bilan ajratib yozing, shuningdek, 35 yoshda o‘qiyotganlarni aniqlash uchun ipni belgilashimiz mumkin. 739 ham bor, sizda 34a ham bo'lishi kerak edi. Sharoitlarni qo'shish bilan hamma narsa oydin bo'lishi kerak. Relatsion algebraga oid darslardan so‘ng, agar sharoitlar oddiy bo‘lsa, biz atributlarni bir-biriga yoki konstantalarga taqqoslashimiz mumkin, va murakkab sharoitlar mantiqiy bog'lanishlar bilan ifodalanadi: va, yoki, emas. 3-shaxsdan farqli o'laroq, bizda panterlar paydo bo'ladi.
|