Foydalanuvchi ma'lumotlar turlari

|
Foydalanuvchi ma'lumotlar turlari
|
bet | 59/101 | Sana | 20.12.2023 | Hajmi | 1,17 Mb. | | #124746 |
Bog'liq Sanjar2. Foydalanuvchi ma'lumotlar turlari
Foydalanuvchi tomonidan belgilangan ma'lumotlar turi bazaning barcha turlaridan farq qiladi, chunki u dastlab ma'lumotlar bazasini boshqarish tizimiga kiritilmagan, odatiy ma'lumotlar turi sifatida tavsiflanmagan. Ushbu turni o'zi uchun istalgan foydalanuvchi va ma'lumotlar bazasi dasturchisi o'zlarining talablari va talablariga muvofiq yaratishi mumkin.
Shunday qilib, foydalanuvchi tomonidan belgilanadigan ma'lumotlar turi ba'zi bazaviy turlarning pastki turidir, ya'ni haqiqiy qiymatlar to'plamida ba'zi cheklovlarga ega bo'lgan baza turi.
Psevdokodda, quyidagi standart operator yordamida maxsus turdagi ma'lumotlar yaratiladi:
CREATE SUBTYPE quyi tip nomi
TYPE bazaviy tip nomi
AS quyi tip chegarasi ;
Shunday qilib, birinchi qatorda biz yangi, foydalanuvchi tomonidan belgilanadigan ma'lumotlar turini nomini belgilashimiz kerak, ikkinchisida - mavjud bo'lgan asosiy ma'lumotlar turlaridan qaysi birini namuna sifatida olsak, o'zimiz yaratamiz, va nihoyat, uchinchisida - biz mavjud bo'lgan cheklovlarni qo'shishimiz kerak namunaviy ma'lumotlar tipidagi qiymatlar to'plamidagi cheklovlar. Subtype cheklovlari aniqlanadigan kichik nom nomiga bog'liq bo'lgan shart sifatida yoziladi.
Yaratish bayonnomasi qanday ishlashini yaxshiroq tushunish uchun quyidagi misolni ko'rib chiqayliki. Aytaylik, biz o'z ixtisoslashgan ma'lumotlar turimizni yarataylik, masalan, pochta orqali ishlash uchun. Bu pochta indeksi raqamlari kabi ma'lumotlar bilan ishlashning bir turi bo'ladi. Bizning raqamlarimiz oddiy oltita raqamli o'nlik sonlardan farq qilishi mumkin, chunki ular faqat musbat bo'lishi mumkin. Keling, bizga kerak bo'lgan kichik tipni yaratish uchun operatorni yozamiz:
CREATE SUBTYPE Pochta indeksi
TYPE decimal (6, 0)
AS Pochta indeksi > 0.
Nima uchun biz aynan decimal(6, 0) ni oldik? Indeksning odatiy shaklini eslab, bunday sonlar noldan to'qqizgacha bo'lgan oltita butun sonlardan iborat bo'lishi kerakligini ko'ramiz. Shuning uchun biz o'nlik turini asosiy ma'lumotlar turi sifatida oldik.
Shunisi qiziqki, umumiy holda, ma'lumotlar bazasi turiga, ya'ni pastki cheklovga qo'yiladigan shart mantiqiy biriktirgichlarni o'z ichiga olmaydi va, yoki umuman, har qanday ixtiyoriy murakkablikning ifodasi bo'lishi mumkin. Shu tarzda aniqlangan shaxsiy ma'lumotlar pastki turlarini dastur kodidagi boshqa asosiy ma'lumotlar turlari bilan bir qatorda jadval ustunlarida ma'lumotlar turlarini aniqlashda bemalol foydalanish mumkin, ya'ni ular bilan ishlashda asosiy ma'lumotlar turlari va maxsus ma'lumotlar turlari mutlaqo tengdir. Vizual rivojlanish muhitida ular boshqa asosiy ma'lumotlar turlari bilan bir qatorda haqiqiy turlar ro'yxatida paydo bo'ladi.
Yangi mahalliy ma'lumotlar bazasini loyihalashda biz hujjatsiz (foydalanuvchi tomonidan belgilanadigan) ma'lumot turiga muhtoj bo'lishimiz ehtimoli juda katta. Axir, jimlik bo'yicha ma'lumotlar bazasini boshqarish tizimiga faqat eng umumiy ma'lumot turlari kiritilgan, mos ravishda eng umumiy vazifalarni hal qilish uchun mos. Mavzu bo'yicha ma'lumotlar bazasini tuzishda o'zingizning ma'lumot turlarini yaratmasdan ishlash deyarli imkonsizdir. Ammo, qiziqki, kodni chalkashtirib yubormaslik uchun biz yaratgan kichik turni o'chirishimiz kerak. Buning uchun ma'lumotlar bazasini boshqarish tizimlari odatda DROP degan ma'noni anglatuvchi maxsus operatorga. Keraksiz foydalanuvchi tomonidan belgilangan turlarni olib tashlash uchun ushbu operatorning umumiy ko'rinishi quyidagicha:
DROP SUBTYPE foydalanuvchi tipi nomi ;
Foydalanuvchi tomonidan belgilangan ma'lumotlar tiplari odatda juda oddiy kichik tiplar uchun tavsiya etiladi.
|
| |