
SQL-ийн ертөнцтэй танилцъя.

Ө. Ариунчимэг
Багш


Ө. Ариунчимэг
Багш
За ингээд энэ удаагийн нийтлэлээрээ хамтдаа бидний өдөр тутам ашигладаг вебсайт, аппликейшнүүдийн цаана яг юу ажилладаг, бидний мэдээлэл хаана хадгалагддаг, тэдгээрийг ямар программчлалын хэл болон технологи ашиглан удирддаг талаар мэдэж авах болно. Бидний хардаг веб хуудас, дардаг товч, илгээдэг мессеж бүрийн цаана бидний тэр бүр анзаардаггүй олон технологи ажиллаж байдаг. Тэгвэл энэ бүхнийг хэрхэн хооронд нь холбож, мэдээллийг зөв зохицуулдаг юм бол? Хамтдаа энэхүү технологийн ертөнцөөр аялж, SQL гэж юу болох болон яагаад хөгжүүлэгч бүрийн мэдэх ёстой чухал чадваруудын нэг болохыг олж мэдэцгээе.

Та вебсайтад бүртгүүлэх, онлайн дэлгүүрээс бүтээгдэхүүн худалдан авах, эсвэл гар утасны аппликейшн ашиглах бүрдээ өгөгдөлтэй харилцаж байдаг. Таны нэр, имэйл хаяг, захиалгын мэдээлэл, төлбөрийн түүх зэрэг олон төрлийн мэдээлэл системийн цаана хадгалагдаж, шаардлагатай үед дахин ашиглагддаг. Тэгвэл эдгээр мэдээллийг хэрхэн хадгалж, хайж, өөрчилдөг вэ?
Энэ асуултын хариултын нэг чухал хэсэг нь SQL (Structured Query Language) юм. SQL нь өгөгдлийн сантай харилцахад ашиглагддаг хэл бөгөөд программ хөгжүүлэлт, өгөгдөл боловсруулах, мэдээллийн системийн ажиллагаанд чухал байр суурь эзэлдэг. Хэрэв та Developer болохыг зорьж байгаа бол SQL-ийн үндсийг ойлгох нь технологийн мэдлэгээ дараагийн түвшинд хүргэх нэг алхам болно шүү.

SQL буюу Structured Query Language нь өгөгдлийн сангаас мэдээлэл хайх, шинээр нэмэх, өөрчлөх, устгах болон өгөгдлийн бүтцийг удирдахад ашигладаг хэл юм. Энгийнээр хэлбэл, SQL нь өгөгдлийн санд ямар үйлдэл хийхийг зааж өгдөг.
Төсөөлөөд үзье: Сургуулийн системд мянга мянган сурагчийн мэдээлэл байлаа гэхэд SQL ашиглан "Зөвхөн 10-р ангийн сурагчдын нэрийг гаргаад ир" гэж компьютертоо ойлгомжтой заавар өгнө. Компьютер энэ зааврын дагуу асар их мэдээлэл дундаас яг хүссэн мэдээллийг чинь хоромхон зуур шүүгээд гаргаад ирнэ.
Дараагийн төсөөлөл хэхэ: Дэлгүүрийн асар том агуулахад хэдэн сая хүний гүйлгээний түүх хадгалагддаг гэж бодъё. Энэ бол Өгөгдлийн сан юм. Харин чи банкны ажилтан шиг суугаад компьютероос “Надад өнгөрсөн сард 50,000 төгрөгөөс дээш худалдан авалт хийсэн хэрэглэгчдийн нэрсийг гаргаад өг” гэж хүсмээр байна. Өгөгдлийн сан энэ хүсэлтийг шууд ойлгохгүй тул чи түүнд SQL хэл ашиглаад заавар өгнө гэсэн үг. Өөрөөр хэлбэл, SQL бол өгөгдлийн сантай ойлголцдог "харилцах хэл" юм.
Үндсэндээ та хүсэлтээ бичиж илгээхээс эхлээд өгөгдлийн сан үүнийг хүлээж авч боловсруулаад хариу буцаах хүртэлх процессоор явагддаг.
Арай энгийнээр тайлбарлах гээд үзье:
Эхлээд Хүсэлт илгээх (Query): Хэрэглэгч эсвэл програм хангамж (веб, апп) өгөгдлийн сангаас ямар нэгэн мэдээлэл авах, нэмэх, засах зорилгоор SQL хэл дээр бичсэн тушаал (Query) илгээдэг.
Жишээ нь: 10-р ангийн сурагчдын мэдээллийг гаргах гэж байна гэж бодвол
SELECT *
FROM students
WHERE class = '10'; query бичиж болно.
Дараа нь Хүлээн авч шалгах (Parsing & Compilation)
Өгөгдлийн сангийн систем (DBMS - Database Management System, тухайлбал MySQL, PostgreSQL, Oracle гэх мэт) уг SQL кодыг хүлээж авмагцаа:
Код зөв бичигдсэн эсэх (синтакс алдаа байгаа эсэх)-ийг шалгаад, Хэрэглэгч тухайн мэдээллийг харах эрхтэй эсэхийг нь нягталдаг.
Төлөвлөгөө гаргаж хайх (Query Optimization & Execution)
Систем асар том өгөгдөл дундаас тухайн мэдээллийг хамгийн хурдан бөгөөд оновчтой аргаар хэрхэн олох "гүйцэтгэх төлөвлөгөө" гаргана. Жишээ нь: Бүх хүнийг нэг бүрчлэн харалгүйгээр, шууд "10-р анги" гэсэн индекс (index)-ийг ашиглаад шууд шүүж олно. Энэ нь маш хурдан ажиллах боломжийг олгодог.
Хамгийн сүүлд хариу буцаах (Result Set)
Өгөгдлийг олсны дараа систем үр дүнг хүснэгт хэлбэрээр буцааж, хэрэглэгчийн дэлгэц эсвэл тухайн програм дээр харуулдаг.

Одоо тэгвэл SQL-н үндсэн командыг мэдэж авцгаая.
SQL нь өгөгдөлтэй ажиллах олон командтай. Эхлээд дараах үндсэн командуудыг мэдэхэд хангалттай гэж бодож байна.
Ингээд бид SQL гэж юу болох, өгөгдлийн сантай хэрхэн ажилладаг, мөн программ хөгжүүлэлтэд ямар чухал үүрэгтэй талаар анхан шатны ойлголттой боллоо. Бидний өдөр тутам ашигладаг вебсайт, аппликейшнүүдийн цаана хэрэглэгчийн мэдээлэл, нийтлэл, захиалга зэрэг өгөгдлийг хадгалах, хайх, өөрчлөх олон үйл явц өрнөж байдаг. Харин SQL нь эдгээр өгөгдөлтэй харилцахад ашиглагддаг чухал хэл болохыг мэдэж авсан гэж найдаж байна. SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER зэрэг командуудыг ашигласнаар өгөгдлийг хайх, нэмэх, өөрчлөх, устгах, хүснэгт үүсгэх болон бүтцийг нь өөрчлөх боломжтой болдог. Эдгээр команд нь эхэндээ олон шинэ ойлголт мэт санагдаж болох ч бага багаар код бичиж, бодит жишээн дээр туршиж үзэх тусам илүү ойлгомжтой болдог шүү ххэ. Программ хөгжүүлэгч болно гэдэг зөвхөн код бичих биш, харин кодын цаана мэдээлэл хэрхэн хадгалагдаж, боловсруулагдаж, хэрэглэгчид хүрдгийг ойлгох явдал юм. Тиймээс SQL-ийг сурах нь энэ ертөнцөд хийх чухал эхний алхмуудын нэг юм шүү.