33-Mavzu: SQL tili asoslari va xossalari.
Reja:
1. SQL tili yaratilishi
2. SQL Server imkoniyatlari
3. SQL sintaksisi asoslari
SQL tili 70-yillarning oxirida IBM tomonidan ishlab chiqilgan. Birinchi xalqaro til standarti 1989 yilda ISO xalqaro standartlashtirish tashkiloti tomonidan qabul qilingan [ 2 ] va yangi (to'liqroq) 1992 yilda qabul qilingan [ 3 ]. Hozirgi vaqtda barcha relyatsion ma'lumotlar bazasi ishlab chiqaruvchilari turli darajadagi muvofiqlik bilan SQL92 standartini qo'llab-quvvatlaydi.
Relyatsion ma'lumotlar bazasida (MB) yagona ma'lumotlarni taqdim etish strukturasi (ham qo'llaniladigan, ham tizim) ikki o'lchovli jadvaldir. Har qanday jadvalni to'plam-nazariy munosabat (munosabat) tushunchasini ifodalash shakllaridan biri sifatida ko'rib chiqish mumkin , shuning uchun ma'lumotlar modelining nomi - "relyatsion".
Relyatsion ma'lumotlar modelida jadval quyidagi asosiy xususiyatlarga ega:
noyob nom bilan aniqlanadi;
chekli (odatda doimiy) nolga teng bo'lmagan ustunlar soniga ega;
chekli (ehtimol nol) qatorlar soniga ega;
jadval ustunlari noyob nomlari va raqamlari bilan aniqlanadi;
ustundagi barcha kataklarning mazmuni bir xil ma'lumotlar turiga tegishli (ya'ni, ustunlar bir hil), ustun kataklarining mazmuni jadval bo'lishi mumkin emas;
jadval satrlari hech qanday tartibga ega emas va faqat mazmuniga ko'ra aniqlanadi (ya'ni "qator raqami" tushunchasi aniqlanmagan);
umuman olganda, jadval kataklari ?bo'sh qolishi mumkin? (ya'ni hech qanday qiymatni o'z ichiga olmaydi), ularning holati NULL sifatida belgilanadi.
Eslatma . Shuni yodda tutish kerakki, ma'lumotlar bazasi foydalanuvchilariga ko'rinadigan ma'lumotlarning mantiqiy tashkil etilishi (bizning holatda, relyatsion model yordamida) ularning kompyuter xotirasida jismoniy tashkil etilishi bilan juda zaif bog'liq bo'lishi mumkin.
Quyidagi shakldagi jadvallar mazmuniga cheklovlar qo'yishga ruxsat beriladi:
har qanday ustunning har bir katakchasi va/yoki bir nechta ustunlar bilan bog'liq qatordagi katakchalar to'plami tarkibining o'ziga xosligi uchun talablar;
har qanday ustun(lar) uchun ?bo'sh? (NULL) hujayralar.
Yagonalikni cheklash jadval kaliti tushunchasi bilan chambarchas bog'liq. Jadval kaliti - bu ustun yoki ustunlar birikmasi bo'lib, ularning hujayra tarkibi(lari) jadval qatorlariga to'g'ridan-to'g'ri kirish (?tezkor? joylashuv) uchun ishlatiladi. Birlamchi kalitlarni (faqat har bir jadval uchun yagona bo'lishi mumkin) va ikkilamchi kalitlarni ajrating. Birlamchi kalit noyob bo'lib, jadval qatorini noyob tarzda aniqlaydi. Birlamchi kalit sifatida belgilangan qator ustunida ?empty? (NULL) qiymati uning istalgan katakchasida. Ikkilamchi kalit umumiy holatda jadvalning bir qatorini emas, balki bir nechta ?o'xshash? (har qanday holatda ham, asosiy kalit bilan bir xil darajada bo'lmasa ham, ularga kirishni tezlashtirish).
Kalitlar DBMS tomonidan jadval qatorlariga kirish xarajatlarini optimallashtirish uchun ichki ishlatiladi (masalan, ularni kalit qiymatlari bo'yicha jismoniy tartiblash yoki ikkilik qidiruv daraxtini yaratish orqali).
Jadvallar ustidagi asosiy operatsiyalar quyidagilardan iborat.
Proyeksiya - asl jadvalning tanlangan ustunlarini qo'shish orqali asl jadvaldan yangi jadval yaratish.
Cheklov - mantiqiy shart (cheklov) ko'rinishida ma'lum bir mezonga javob beradigan dastlabki jadvalning qatorlarini kiritish orqali asl jadvaldan yangi jadval yaratish.
Birlashma - 2 yoki undan ortiq manba jadvallaridan yangi jadval yaratish, unga manba jadvallarining barcha qatorlarini kiritish (albatta, ular o'xshash bo'lsa).
Dekart mahsuloti - manba jadvali satrlarini birlashtirishning (birlashtirishning) barcha mumkin bo'lgan variantlari bilan tuzilgan qatorlarni kiritish orqali 2 yoki undan ortiq manba jadvallaridan yangi jadval yaratish. Yangi jadvalning qatorlar soni barcha manba jadvallari qatorlari sonining mahsuloti sifatida aniqlanadi.
Yuqorida sanab o'tilgan 4 ta amal relyatsion ma'lumotlar bazasidan ma'lumotlarni olish uchun amaliy jihatdan foydali so'rovlarning ko'pini (ammo hammasi emas) qurish uchun asos bo'ladi.
Eslatma . Amallar to'plamini kesish va ayirish amallari bilan to'ldirsak to'liq bo'ladi. Biroq, ushbu o'quv qo'llanma ushbu operatsiyalarni SQLda amalga oshirishni o'z ichiga olmaydi.
Yuqorida sanab o'tilganlardan tashqari, SQL tilida jadval satrlari tarkibini o'zgartirish va jadvalni yangi qatorlar bilan to'ldirish (nazariy jihatdan birlashish operatsiyasi sifatida qaralishi mumkin), shuningdek, jadvallarni boshqarish operatsiyalari amalga oshiriladi.
Funktsional to'liqlikka ega bo'lgan relyatsion ma'lumotlar bazasi jadvallari bo'yicha yuqoridagi operatsiyalar o'zlarining "sof"larida amalda qo'llaniladi. kanonik shakl, qoida tariqasida, juda iqtisodiy emas (birinchi navbatda, bu cheklash operatsiyalari va Dekart mahsulotining kombinatsiyasiga tegishli). Haqiqiy relyatsion DBMSni ishlab chiquvchilar har xil hiyla-nayranglarga murojaat qilishadimi? ushbu operatsiyalarni bajarishda hisoblash xarajatlarini (birinchi navbatda kompyuter vaqtini) minimallashtirish. SQL tilida aks ettirilgan relyatsion DBMSlarda so'rovlarni bajarish samaradorligini oshirishning keng tarqalgan usuli bu indeks kalitlaridan foydalanishdir.
Indeks - foydalanuvchidan yashirin bo'lgan yordamchi boshqaruv tuzilmasi bo'lib, jadval satrlariga kirishning to'g'ridan-to'g'ri (yoki ?kvazi?-to'g'ridan-to'g'ri) usulini ta'minlaydi, bu jadvalning barcha qatorlarini ketma-ket qidirishni istisno qilish imkonini beradi. ba'zi qidiruv mezonlariga javob beradiganlarni topish. Indekslar jadvaldagi barcha kalitlar uchun avtomatik ravishda (foydalanuvchidan yashirin) yaratiladi.
Hozirgi vaqtda ikki guruhning relyatsion SQL DBMSlari eng keng tarqalgan:
katta hajmdagi ma'lumotlarni (gigabaytlardan) saqlashga qaratilgan kuchli yirik tijorat DBMS;
mobil ixcham erkin tarqatiladigan (shu jumladan manba kodlarida) DBMS, ulardan foydalanish faqat o'nlab kilobayt hajmli ma'lumotlar bazasi uchun ham oqlanadi.
Birinchi guruhning eng mashhur DBMSlari:
Sybase , Inc.dan Sybase SQLserver. ;
Oracle korporatsiyasi tomonidan Oracle ;
Ingres by Computer Associates International ;
Informix korporatsiyasi tomonidan Informix .
Ikkinchi guruhning eng mashhur DBMSlariga quyidagilar kiradi:
PostgreSQL tashkiloti PostgreSQL ;
Hughes Technologies Pty -dan microSQL . Ltd. ;
TCX DataKonsult AB tomonidan mySQL .
Ushbu o'quv qo'llanmada SQL tili asoslarini o'rgangandan so'ng talaba bajarishi mumkin bo'lgan amaliy mashqlar mySQL DBMS yordamida amalga oshiriladi.
Yuqorida sanab o'tilgan barcha ma'lumotlar bazasi tizimlari quyidagi rasmda ko'rsatilganidek, "mijoz-server" tamoyili asosida qurilgan.
SQL serveri haqiqiy ma'lumotlarni saqlash va manipulyatsiyani amalga oshiradi. U o'z mijozlaridan SQL so'rovlarini qabul qiladi, ularni bajaradi va natijalarni (ko'pincha yangi tuzilgan jadvallar shaklida) mijozlarga qaytaradi. Mijozlar bilan muloqot qilish uchun maxsus protokol qo'llaniladi (odatda TCP / IP tarmoq protokoli stekining dastur qatlami protokoli sifatida amalga oshiriladi ).
DBMSning mijoz qismi uchta asosiy turdagi mijozlardan iborat.
Inson foydalanuvchiga SQL tilidan foydalangan holda SQL serveri bilan bevosita muloqot qilish imkonini beruvchi interaktiv mijozlar.
SQL Server imkoniyatlaridan foydalanadigan ilovalarga amaliy dasturlash interfeysi (API) taqdim etuvchi API mijozlari. Bunday API amaliy dastur va SQL tilidagi SQL server o'rtasidagi aloqa vositasi yoki so'rovlar qatorlarini yaratmasdan relyatsion SQL ma'lumotlar bazasiga kirish uchun standart funktsiyalar to'plami bo'lishi mumkin (masalan, standart ODBC interfeysi).
WWW mijozlari World Wide Web serveriga o'rnatilgan va HTTP protokoli (Hypertext Document Transfer Protocol) orqali Internet foydalanuvchilariga SQL serverining axborot imkoniyatlaridan foydalanishni ta'minlaydi.
Bu amaliy mashg'ulotlarni bajarish uchun o'quv qo'llanmada ishlatiladigan mySQL DBMS WWW mijozidir.
SQL sintaksisi asoslari
?Dastur? SQL da bu SQL bayonotlarining oddiy chiziqli ketma-ketligidir. SQL tili o'zining ?pure? ma'lumotlar bazasiga so'rovlarni bajarish tartibini nazorat qilish uchun operatorlar shaklida (sikllar, tarmoqlar, o'tishlar kabi) yo'q.
SQL bayonotlari quyidagilardan foydalangan holda tuziladi:
zaxiralangan kalit so'zlar;
jadvallarning identifikatorlari (nomlari) va jadvallar ustunlari;
ma'lumotlar bazasidagi ma'lumotlarni qidirish mezonlarini shakllantirish va natijada olingan jadvallarning katakcha qiymatlarini hisoblash uchun ishlatiladigan mantiqiy, arifmetik va qatorli ifodalar;
ifodalarda ishlatiladigan amallar va funksiyalarning identifikatorlari (nomlari).
Barcha kalit so'zlar, funksiya nomlari va qoida tariqasida, jadval va ustun nomlari 7 bitli ASCII belgilar (boshqacha aytganda, lotin harflari) bilan ifodalanadi.
SQL tili katta (katta) va kichik (kichik) harflarni ajratmaydi, ya'ni, masalan, ?SELECT?, ?Select?, ?select? bir xil kalit so'zlar.
Jadval nomlari va ularning ustunlarini qurish uchun harflar, raqamlar va ?_? (pastki chiziq), lekin ismning birinchi belgisi harf bo'lishi kerak.
Kalit so'zlar va funksiya nomlarini jadval identifikatorlari va ustun nomlari sifatida ishlatish taqiqlanadi. Kalit so'zlar va funktsiyalar nomlarining to'liq ro'yxatini (va u juda keng) ma'lum bir ma'lumotlar bazasi uchun hujjatlarda topish mumkin.
Operator fe'l kalit so'zi bilan boshlanadi (masalan, ?CREATE? - yaratish, ?UPDATE? - yangilash, ?SELECT? - tanlash va hokazo) va ?;? bilan tugaydi. (nuqta vergul). Operator erkin formatda yoziladi va bir nechta qatorlarni olishi mumkin. Bayonotdagi leksik birliklar uchun amal qiluvchi chegaralovchilar:
bir yoki bir nechta bo'sh joy
bir yoki bir nechta yorliq belgilari,
bir yoki bir nechta ?yangi qator? belgilar.
Qo'llanmada SQL iboralarini tavsiflash uchun quyidagi konventsiyalardan foydalaniladi.
Katta harflar (masalan, SELECT, FROM, WHERE) ajratilgan so'zlardir.
O'zgaruvchilar (terminal bo'lmagan belgilar) kursiv bilan yoziladi (masalan, jadval_nomi , murakkab_shart ) haqiqiy bayonotda terminal belgilar konstruktsiyasi (identifikatorlar, operatsiya belgilari, funksiya nomlari va boshqalar) bilan almashtiriladi.
Kvadrat qavslar (?[...]?) gapning ixtiyoriy qismini o‘z ichiga oladi, uni haqiqiy gap yaratishda o‘tkazib yuborish mumkin (kvadrat qavslarning o‘zi bayonot matniga kiritilmaydi).
Vertikal chiziq (?|?) sintaktik konstruksiyaning ikki yoki undan ortiq variantlari orasidan (? yoki?) tanlash imkoniyatini bildiradi (vertikal chiziqning o‘zi operator matniga kiritilmagan). Tagi chizilgan variant (masalan, ?[ ALL | DISTINCT }? ichida) standart hisoblanadi.
Belgilar ketma-ketligi ?, ...? vergul oldidagi konstruktsiyaning ixtiyoriy sonini (shu jumladan nol) takrorlash imkoniyatini bildiradi. Belgisi ?,? konstruksiyaning har bir takrorlanishidan oldin chegaralovchi sifatida haqiqiy gapga kiritiladi.
Afsuski, haqiqiy ma'lumotlar bazasini yaratuvchilar sharhlar bo'yicha SQL tili standartlari talablariga beparvo munosabatda bo'lishadi. Shuning uchun ?dasturlar matnlarida turli ma'lumotlar bazasida foydalanilganda izohlar? SQLda quyidagi yo'llar bilan belgilanishi mumkin:
juft minusdan (?--?) chiziq oxirigacha;
belgisidan ?#? qator oxirigacha;
ketma-ketliklar orasida ?/*? Va ?*/? (C uslubidagi sharhlar).
Trening ma'lumotlar bazasi
Misol tariqasida, darslikda mexanik ob'ektning kuchlanish-deformatsiya holatini chekli elementlar usuli yordamida tahlil qilish bo'yicha ikki o'lchovli (tekis) masalani hal qilish uchun foydalaniladigan ma'lumotlarni o'z ichiga olgan ma'lumotlar bazasi ko'rib chiqiladi [ 4 ].
Cheklangan elementlar usuli (FEM) chegaraviy masalalarni (chegaraviy shartlarga ega qisman differentsial tenglamalar tizimlari) echishning universal usuli bo'lib , u tekis mexanik jismlarning kuchlanish-deformatsiya holatini tahlil qilish (imitatsiya qilish) masalasini o'z ichiga oladi. Usulning asosiy bosqichlaridan biri ?tananing bo'linish bosqichidir? modellashtirilgan ob'ektni chekli elementlar (FE) deb ataladigan elementar bo'limlarga bo'lish. Yassi jismlar uchun ko'pincha bunday FE uchburchaklardir. Ob'ektni (masalan, tutqichni) chekli elementlar to'ri bilan qoplash misoli quyida ko'rsatilgan.
Kelajakda FEM tugunlar (tugunlar) deb ataladigan bunday uchburchaklarning cho'qqilarida ob'ektning holatini (bizning holatda, kuchlar va deformatsiyalarning kuchlanish maydoni) tavsiflovchi faza o'zgaruvchilarining raqamli qiymatlarini aniqlashni ta'minlaydi. ).
Tugunlar va FE ni aniqlash uchun ular raqamlar bilan belgilanadi (tabiiy seriyadagi raqamlar 1 ...). Ikki o'lchovli (va undan ham ko'proq uch o'lchovli) ob'ektni FEga qo'lda bo'lish vazifasi ko'p vaqt talab etadi va ahamiyatsiz, shuning uchun FEMni amalga oshiradigan haqiqiy sanoat tahlil tizimlarida, qoida tariqasida, bir nechta avtomatik tizimlar mavjud. o'rganish maydonini FE to'ri bilan qoplash tartiblari. Shu bilan birga, har qanday usulda (avtomatik / qo'lda / qo'shma) yaratilgan FE mesh uning to'g'riligi uchun ma'lum qoidalar to'plami bilan tekshirilishi kerak, bu esa minimal hisoblash xarajatlarini va olingan natijalarning aniqligini ta'minlaydi.
Masalan, uchburchak FE shakli teng qirraga iloji boricha yaqinroq bo'lishi kerak (bu olingan eritmaning aniqligiga ta'sir qiladi). Hisoblash xarajatlarini kamaytirish uchun har bir FE uchun vertex identifikatorlarida minimal farq bo'lishi maqsadga muvofiqdir.
Tashqi omillar ta'sirida mexanik ob'ektlarning xatti-harakatlarini o'rganish vazifalarida har bir Idoralar Idoralar tomonidan qoplanadigan materialning xususiyatlari to'plami bilan bog'liq bo'lib, ular, masalan, muhitning zichligi (zichligi), Young's. modul (elastik modul), Puasson koeffitsienti, kuch (kuch) va boshqalar.
FEMning vazifasi turli xil chegara sharoitida (atrof-muhit ta'sirida) ob'ektlarning xatti-harakatlarini (bizning misolimizda mexanik) o'rganishdir, ular orasida:
o'zboshimchalik bilan yo'naltirilgan kuch;
kuchlarning o'zboshimchalik bilan yo'naltirilgan momenti;
chiziqli koordinatalarda panjara tugunining o'rnini va burilish burchagini qat'iy ravishda o'rnatish;
tugunni erkin "aylanish" imkonini beruvchi menteşe? chiziqli koordinatalarda uning sobit holatiga nisbatan;
tugunga x yoki y o'qi bo'ylab erkin harakatlanish imkoniyatini beruvchi "konkida uchish maydoni".
Do'stlaringiz bilan baham: |