Mavzu:18.Relyatsion ma'lumotlar bazasini loyihalash asoslari

Mavzu:18.Relyatsion ma'lumotlar bazasini loyihalash asoslari.
Reja:
1. Relyatsion ma'lumotlar haqida.
2. Relyatsion ma'lumotlar loyihalash asoslari.
3. Relyatsion ma'lumotlar funksiyalari.
SQL shunchaki so'rovlar tili emas. Bu juda o'ziga xos bo'lsa-da, amalda dasturlash tili. Boshqa tillarda bo'lgani kabi, muayyan vazifalar uchun ajralmas funktsiyalar mavjud.
Masalan, sahifalashni amalga oshirishda ular odatda sahifalarning umumiy sonini ko'rsatadi. Ammo buni bilish uchun siz ma'lum bir jadvaldagi qatorlar sonini hisoblashingiz kerak. Muntazam tanlov yordamida bu ishlamaydi, ammo funktsiyalar bu vazifaga to'g'ri keladi.
Jadvaldagi biror narsani hisoblaydigan funksiyalar yig‘ma funksiyalar deyiladi. Masalan, bularga yozuvlar sonini, qiymatlar yig'indisini, o'rtacha arifmetikni va boshqa ko'plab parametrlarni topish bilan bog'liq funktsiyalar kiradi. Ushbu qo'llanmada biz faqat eng mashhur funktsiyalarni ko'rib chiqamiz va siz to'liq ro'yxatni hujjatlarda topishingiz mumkin.
COUNT() - bu tanlovdagi yozuvlar sonini hisoblaydigan funksiya. E'tibor bering, u jadvalda emas, balki tanlovda hisobga olinadi:
SELECT COUNT(*) FROM users WHERE birthday < '2018-10-21';
count
-------
91
(1 row)
Bunday so'rov bitta qiymatga ega bo'lgan aniq bitta yozuvni qaytaradi - belgilangan shartga muvofiq qatorlar soni.
COUNT() agregat funksiyadir. Uning bir nechta shakllari bor:
Funktsiya argumenti * bo'lsa, qatorlar sonini hisoblang
Agar siz unga ma'lum bir maydon nomini o'tkazsangiz, maydon NULL bo'lmagan qatorlar sonini hisoblang Relyatsion algebra - relyatsion ma'lumotlar modelidagi munosabatlar bo'yicha operatsiyalarning yopiq tizimi. Relyatsion algebra amallari relyatsion amallar deb ham ataladi.
8 ta operatsiyadan iborat asl to'plam 1970-yillarda E. Kodd tomonidan taklif qilingan bo'lib, u hali ham ishlatilayotgan operatsiyalarni (proyeksiya, qo'shilish va boshqalar) va ishlatilmagan operatsiyalarni (masalan, munosabatlarni taqsimlash) o'z ichiga oladi.
Munosabatlar nazariyasi va amaliyotini ishlab chiqish jarayonida yarim qo'shilish (SEMI-JOIN) va yarim farq yoki yarim qo'shilishga qarshi (ANTI-SEMI-JOIN), CROSS APPLY va OUTER APPLY kabi bir nechta yangi relyatsion operatsiyalar taklif qilindi. , tranzitiv yopilish (TCLOSE) va boshqalar.
Relyatsion algebraning bir qismi sifatida ko'plab operatsiyalar bir-biri orqali ifodalanishi mumkinligi sababli, bazisning bir nechta variantlarini (qolganlarning barchasi ifodalanadigan operatsiyalar to'plami) ajratish mumkin. Eng mashhur va aniq belgilangan asos (A algebrasi) Kristofer Date va Xyu Darven tomonidan taklif qilingan.
Relyatsion algebra va relyatsion hisob ekspressiv kuchida bir xil. Ular orasida so'rovlarni aylantirish qoidalari mavjud.
Relyatsion algebraning asosiy qo'llanilishi relyatsion ma'lumotlar bazalari uchun nazariy asosni, xususan, SQL bo'lgan bunday ma'lumotlar bazalari uchun so'rovlar tillarini ta'minlashdir.
Codd algebrasiga asoslangan birinchi so'rovlar tili Coddning o'zi tomonidan ishlab chiqilgan Alpha edi. Keyinchalik, ISBL yaratildi va bu kashshof ish Kodd g'oyasini foydali tilga aylantirish yo'lini ko'rsatuvchi ko'plab rasmiylar tomonidan maqtovga sazovor bo'ldi. Business System 12 qisqa muddatli relyatsion ma'lumotlar bazasi bo'lib, ISBL yetakchiligiga ergashdi.
1998 yilda Kristofer Date va Xyu Darven relyatsion ma'lumotlar bazasi nazariyasini o'qitishda foydalanish uchun D Tutorial tilni taklif qilishdi, bu so'rovlar tili ham ISBL g'oyalariga asoslangan edi. Rel - bu D o'quv qo'llanmasining amalga oshirilishi.
Hatto SQL so'rovlar tili ham relyatsion algebraga asoslanadi, garchi SQL (jadvallar)dagi operandlar aniq munosabatlar emas va bir nechta foydali relyatsion algebra teoremalari SQLda amal qilmaydi (ehtimol optimallashtiruvchilar va/yoki foydalanuvchilarning zarariga). SQL jadval modeli to'plam emas, balki multisetdir. Masalan, ifoda
{\displaystyle (R\kubok S)\setminus T=(R\setminus T)\kupa (S\setminus T)} - toʻplamlardagi relyatsion algebra teoremasi, lekin multisetlardagi relyatsion algebra emas; Ko'p to'plamlarda relyatsion algebrani o'rganish uchun Garsiya-Molina, Ullman va Vidomning "To'liq" darsligining 5-bobiga qarang
|