SQL

მასალა ვიკიპედიიდან — თავისუფალი ენციკლოპედია
Jump to navigation Jump to search

SQL (ინგლ. Structured Query Language, Listeni/ˌɛsˌkjuːˈɛl/, „ეს-ქიუ-ელ“, ან /ˈskwəl/, „სი-ქველ“) — პროგრამირებაში გამოყენებადი დომენ-სპეციფიკური სადეკლარაციო ენა, რომელიც შექმნილია რელაციურ მონაცემთა ბაზის მართვის სისტემაში (ᲠᲛᲑᲛᲡ) შენახული მონაცემების სამართავად, ან რელაციურ მონაცემთა ნაკადის მართვის სისტემებში (ᲠᲛᲜᲛᲡ) ნაკადის დამუშავებისთვის. განსაკუთრებით მოსახერხებელია სტრუქტურირებულ მონაცემებთან ურთიერთქმედებისას, სადაც არსებობს დამოკიდებულება მონაცემთა სხვადასხვა ობიექტებს / ცვლადებს შორის.

ჩაწერა/წაკითხვის ძველ პროგრამირების ინტერფეისებთან შედარებით, მაგალითად ISAM ან VSAM, SQL გვთავაზობს ორ უმთავრეს უპირატესობას: მასში რეალიზებულია ერთი ბრძანებით მრავალ ჩანაწერთან წვდომის კონცეფცია; აქრობს ჩანაწერამდე მიღწევის გზის განსაზღვრის აუცილებლობას, მაგ., ინდექსით თუ ინდექსის გარეშე.

SQL დაფუძნებულია რელაციურ ალგებრასა და კორტეჟთა რელაციურ აღრიცხვაზე და შედგება მრავალი სახის ოპერატორებისგან, რომლებიც არაფომალურად შეიძლება დაიყოს შემდეგ ქვეენებად: მონაცემთა მოთხოვნის ენა (Data Query Language, DQL), მონაცემთა განსაზღვრის ენა (Data Definition Language, DDL), მონაცემთა წვდომის კონტროლის ენა (Data Control Language, DCL), მონაცემთა მანიპულაციის ენა (Data Manipulation Language, DML) და ტრანზაქციების კონტროლის ენა (Transaction Control Language, TCL). SQL-ის მოქმედების არეში ხვდება მონაცემთა მოთხოვნა, მონაცემებზე მანიპულაცია (დამატება, განახლება და წაშლა), მონაცემთა განსაზღვრა (სქემის შექმნა და მისი ცვლილება) და მონაცემებთან წვდომის კონტროლი. SQL დიდწილად სადეკლარაციო ენას წარმოადგენს, თუმცა კი, მასში პროცედურული ელემენტებიც გამოიყენება.

SQL არის ერთ-ერთი პირველი კომერციული ენა, რომელიც შეიქმნა ედგარ კოდის რელაციური მოდელისთვის. კოდმა საკუთარი მოდელის აღწერა მოიყვანა 1970 წელს გამოცემულ ნაშრომში „მონაცემთა რელაციური მოდელი დიდი ზიარი მონაცემთა ბანკებისთვის“. მიუხედავად იმისა, რომ მასში სრულყოფილად დაცული არ არის კოდის მიერ ნაშრომში ჩამოყალიბებული მოდელი, SQL იქცა მონაცემთა ბაზებთან სამუშაო ყველაზე გავრცელებულ ენად.

SQL აღიარებულ იქნა სტანდარტად ამერიკის ეროვნული სტანდარტების ინსტიტუტის (ANSI) მიერ 1986 წელს, ხოლო 1987 წელს სტანდარტიზაციის საერთაშორისო ორგანიზაციის (ISO) მიერ. SQL-ის სტანდარტმა დროთა განმავლობაში მრავალი ცვლილება განიცადა ახალი შესაძლებლობებით გამდიდრების მიზნით. სტანდარტის მიუხედავად, არ არის მიღწეული SQL-ის კოდის სრული გადატანადობა მონაცემთა ბაზების განსხვავებულ სისტემებს შორის, შესწორებების შეტანის საჭიროების გარეშე.

ისტორია[რედაქტირება | წყაროს რედაქტირება]

SQL პირველად შემუშავებულ იქნა IBM-ში, დონალდ ჩემბერლინის და რეიმონდ ბოისის მიერ ედგარ კოდის რელაციური მოდელის გაცნობის შემდეგ ადრეულ 1970-იან წლებში. პირველ ვერსიას დაარქვეს SEQUEL (Structured English Query Language, სტრუქტურირებული ინგლისური მოთხოვნების ენა) და განკუთვნილი იყო System R სისტემაში შენახულ მონაცემთა გამოსატანად და მანიპულაციისთვის. System R იყო კვაზი-რელაციურ მონაცემთა ბაზის მართვის სისტემა და შემუშავდა IBM-ის სან-ხოსეს კვლევით ლაბორატორიაში 1970-იან წლებში.

ჩემბერლინის და ბოისის მიერ რელაციურ მონაცემთა ბაზის ენის შექმნის პირველი მცდელობის შედეგი იყო Square, თუმცა ეს უკანასკნელი ძნელად გამოსაყენებელი გამოდგა. 1973 წელს სან-ხოსეს კვლევით ლაბორატორიაში გადასვლის შემდეგ მკვლევარებმა SEQUEL-ზე მუშაობა დაიწყეს. მოგვიანებით აკრონიმიდან SEQUEL ამოღებულ იქნა რამდენიმე ასო და დარჩა SQL, რაც გამოწვეული იყო იმით, რომ სავაჭრო ნიშნის რეგისტრაციის მცდელობისას გაირკვა, რომ SEQUEL სახელი უკვე მისაკუთრებული ჰქონდა ბრიტანულ ავიამწარმოებელ კომპანიას Hawker Siddeley Dynamics Engineering Limited.

SQL-ის გამოცდა პრაქტიკულობასა და გამოყენებადობაზე ჩატარებულ იქნა კლიენტთა მონაწილეობით, რომლის შედეგების გათვალისწინებით IBM-მა დაიწყო System R-ის პროტოტიპზე დაფუძნებული კომერციული პროდუქტების შემუშავება, რომელთა შორის იყო System/38, SQL/DS, DB2 და კომერციულად ხელმისაწვდომი იყო 1979, 1981 და 1983 წლებში შესაბამისად.

გვიან 70-იანებში კომპანია Relational Software-ში (ამჟამად Oracle Corporation) გაიაზრეს კოდის, ჩემბერლინის და ბოისის კონცეპტების შესაძლებლობები და მალევე შეიმუშავეს SQL-ზე დაფუძნებული საკუთარი ᲠᲛᲑᲛᲡ, აშშ-ის საზღვაო ძალებზე, ცენტრალურ სადაზვერვო სამმართველოზე და აშშ-ის სხვა სახელმწიფო ორგანოებზე გაყიდვის მიზნით. 1979 წლის ივნისში Relational Software Inc-მა წარმოადგინა VAX კომპიუტერებისთვის შექმნილი პირველი საკუთარი კომერციული SQL პროდუქტი Oracle V2.

1986 წლისთვის ANSI-ს და ISO-ს სტანდარტიზების ჯგუფებმა ოფიციალურად მიიღეს სტანდარტად „მონაცემთა ბაზების ენა SQL“ ენის აღწერა. ამ სტანდარტის ახალი ვერსიები გამოქვეყნდა 1989, 1992, 1996, 1999, 2003, 2006, 2008, 2011 და 2016 წელს.

დიზაინი[რედაქტირება | წყაროს რედაქტირება]

SQL ენა გარკვეულ სხვაობას იძლევა საკუთარ თეორიულ საფუძვლებთან, რელაციურ მოდელთან და კორტეჟების აღრიცხვასთან მიმართებაში. კერძოდ, რელაციური მოდელის მიხედვით, ცხრილი ესაა კორტეჟების ნაკრები, მაშინ როდესაც SQL-ში ცხრილი და მოთხოვნის შედეგი არის სტრიქონების სია: ერთი და იგივე სტრიქონი შეიძლება გამეორდეს რამდენიმე ჯერ, ხოლო მათი მიმდევრობა შეიძლება გამოცხადებულ იქნას მოთხოვნის ბრძანებაში. კრიტიკოსების განცხადებით, აუცილებელია SQL შეიცვალოს ისეთი ენით, რომელიც ხისტად შესაბამისი ქნება რელაციური მოდელის აღწერილობის. თუმცა, არ არსებობს არც ერთი ცნობილი დასაბუთება იმისა, რომ შეუძლებელია თავად SQL ან მისი რომელიმე ვარიანტი მოყვანილ იქნას შესაბამის სახემდე. სხვა სიტყვებით რომ ვთქვათ, სავსებით შესაძლებელია SQL „გამოსწორდეს“ ან გაუმჯობესდეს ისე, რომ მთელ ინდუსტრიას არ მოუწევს სრულად განსხვავებულ ენაზე „გადაბარგება“ უნიკალური მოდელის უზრუნველსაყოფად.

სინტაქსი[რედაქტირება | წყაროს რედაქტირება]

SQL-ის ენა იყოფა ენობრივ რამდენიმე ელემენტად:

  • წინადადებები — მოთხოვნების და ინსტრუქციების შემადგენელი ნაწილები. ზოგ შემთხვევაში გამოყენება არასავალდებულოა;
  • გამოსახულებები — შეიძლება დააბრუნონ სკალარული მნიშვნელობა, ან მონაცემების სტრიქონების და სვეტებისგან შემდგარი ცხრილი;
  • პრედიკატები — განსაზღვრავენ პირობებს, რომლებიც შეიძლება გადამოწმდეს SQL-ის სამმნიშვნელობიანი ლოგიკის (ჭეშმარიტება/მცდარობა/უცნობი) ან ბულის ალგებრის მიხედვით და შესაბამისად გავლენა მოახდინონ ინსტრუქციების და მოთხოვნების შესრულებაზე, ან შეცვალონ პროგრამის მსვლელობის მიმართულება.
  • მოთხოვნები —– ამოაქვთ მონაცემები განსაზღვრული პირობების მიხედვით. არის SQL-ის ერთ-ერთი ძირითადი შემადგენელი ნაწილი.
  • ინსტრუქციები — შეიძლება იქონიონ მუდმივი გავლენა სქემებზე და მონაცემებზე, ან აკონტროლონ ტრანზაქციები, პროგრამის მსვლელობა, კავშირები, სესიები ან აწარმოონ დიაგნოსტიკა.
    • SQL-ინსტრუქციები მოიცავს წერტილ-მძიმესაც ; რომელიც ინსტრუქციის დამსრულებელია. წერტილ-მძიმის გამოყენება უმეტეს პლატფორმებსა და SQL-ის რეალიზაციებში აუცილებელებელი არ არის, თუმცა იგი შედის SQL-ის სინტაქსის სტანდარტში.
მოძიებულია „https://ka.wikipedia.org/w/index.php?title=SQL&oldid=3644457“-დან