SQL тілінің стандарты


Дәріс №6. Тақырыбы: Сұраныстар тілі - SQL. SQL тілінің стандарты.
Дәрістің мақсаты: Жаңа мағлұматтармен, анықтама-терминдермен таныстыру, түсінік беру, мамандық бойынша машықтық бағдарлау.
Дәріс жоспары:
- SQL стандарты кезеңдері.
- SQL тілінің жалпы құрылымы мен қолданбалы программалармен интерфейсі.
- Қондырылған SQL, динамикалық SQL.
- Таңдау операторы SELECT.
- МБ жетілдіру операторлары.
SQL тілінің атауы азғантай ғана мағына береді. Әрине, тұтынушыларға бұл тіл реляциондық мәліметтер базасына оңай болу үшін енгізілген. Бұнымен SQL-ді білгендіктен МБ-да кез келген әрекетті жасай аламыз деп тусінеміз. Сұраныс және МБ басқарудан басқа операторлар бар:
- МБ схемасын анықтау және оны басқару
- Бүтінділік шегі
- МБ анықтау құралы
- Транзакцияны басқару құралы.
Басқа тілмен айтқанда, SQL тілі мәліметтердің реляциондық моделін толық көрсетуге күші жететінін айқындайды, ол дегеніміз, Кодда терминінде реляциондық мәліметтер базасының барлық аспектерде көрсетуге болады.
Сонымен қатар, көп жылдық тарихына қарамай көптеген реляциондық МББЖ қолдануды жаңадан үйренушілерге SQL тілі әр алуан болып келетіндігіне сену қиын. Бұл сұраққа әрі оңай жауап беру қиын.
Шын мәнісінде бұл программалау тілінің әр алуан реализациялауға жатады. (Мысалы Си тілі мен Borland компаниясының диалектерін салыстырып көріңіз) Стандартқа сәйкес келетін, кез келген компиляторда жүретін Халықаралық Си тілі бар. Ашық стандартты жүйемен кездесуі қолданбалы программаларды шығаруңа мүмкіндік береді.
1989ж алғашқы халықаралық SQL ( SQL-89) тілінің стандарты шыққаннан кейін, 1982ж екінші халықаралық SQL-92 стандарты қабылданды. Осыдан кейін МББЖ бейімделген SQL тілі туралы айтуға болатын болды. Кез келген SQL тілді қолдану үшін стандарт тілдерін білу қажет.
SQL тілінің стандарттау жұмысы оның ең алғашқы коммерциялық реализациясы басталғанмен тұспа-тұс келеді. Стандарт негізінде SQLSYSTEMR қолдануға тиым салынған еді. Оны реализациялау қиынға түскен еді.
1989ж қабылданған халықаралық SQL стандарттарының көп бөлімі бірдей болып келеді. Бұл стандартта МБ схемасын басқару және динамикалық SQL деген тарау мүлдем жоқ.
Осының негізінде SQL-2 стандартын шығару жұмысы басталған болатын. Бұл да быраз жылға созылып, ақырында 1992 ж наурыз айында біткен еді (оны енді SQL-92 деп атайды) . Бұл стандарт толық және реализацияға қажет аспектілерді қамтиды: МБ схемасын басқару, транзакция мен сессияларды басқару (сессия басқару дегеніміз транзакцияның уақыт қатынастарының сақтала тізбектелуі), МБ қосылуы, динамикалық SQL.
SQL-2 стандартын аяқтай келе, SQL-3 стандартын шығару жұмысы басталып еді. SQL-3 триггерлер механизмі және абстрактілі мәліметтерді қолдану мүмкіндігін қамтиды.
Қолданылуы
Бұл сандарт М. Б. -сы тілінің семантикасы мен синтаксисін анықтайды.
- Мәліметтер базасы құрылымы мен шегінің сұлбасын анықтайтын тіл.
- Мәліметтер базасында белгілі бір оператоорды орындауды басқаратын тіл.
Бұл стандарт мәліметтерінің логикалық құрылымын анықтайды. Ол мәліметтер базасын жобалауға, басқаруға және қорғауға мүмкіндік береді.
Ескерту. Бұл стандартқа қосымша тағы SQL тілі жобалануда. Оның негізі тақырыбы транзакцияны басқаруды және символдармен жұмыс істеуді жақсарту.
Ұйымдастыру
Бұл стандарт келесі түрде ұйымдастырылған:
- «Нотация» және «Келісім» бөлімінде осы стандартта қоданылатын нотация және келісімді анықтайды.
- «Сәйкес келу» - критерийдің сәйкес келуі
- «Түсінік» SQL - де қолданылатын түсініктер көрсетілген
- «Жалпы элемент» бөлімінде SQL-дің мәліметтер базасында анықталған
- «Схеманы анықтайтын тіл» бөлімінде SQL-ң мәліметтер базасы анықталады.
- « Тіл модулі» бөлімінде SQL-ң мәліметтер базасын анықтайды.
- «мәліметтерді басқару тілі» бөлімі SQL-ң моделі мен процедурасын анықтайды.
Орнатылған SQL.
Программалау тіліне SQL операторын енгізуге SQLSystemR-де арнайы оператор бар. SQL-ң енгізудегі негізгі кедергі SQL тілі - реляциондық тіл болуы. Ол дегеніміз программалау тілі негізі скалярлық операция болса, оның операторы - көпшеленген оператормен жұмыс істейді. Белгілі бір курсормен, мынадай оператор орындауға болады. OPEN операторы сұраныс нәтижесінің қатынас материализмін анықтайтын оператор. FETCH операторы қатынасты нәтижелейтін кезектегі кортеж таңдауға мүмкіндік береді. CLOSE операторы курсор жұмысының соңын білдіреді.
SELECT таңдау операторы
Оңай болу үшін осы оператордың сиетаксисін қайталайық:
<select statement> ::=
SELECT [ALL DISTINCT] <select name>
INTO <select target list> <table expression>
<select target list>::=
<target specification>
[{, <target specification>} . . . ]
Айтып өткендей, жалғыз оператордың нәтжесі кем дегенде 1 жолдан тұратын операция
WHERE операторы. Егер таблицада WHERE бөлімі болса, онда келесі кезекте саналады. WHERE бөлімінің синтаксисі төмендегідей:
<where clause> ::= WHERE <search condition>
<search condition> ::=
<boolean term>
( <search condition> OR <boolean term>
<Boolean term> ::=
<boolean factor>
( <boolean term> AND <boolean factor>
<boolean factor> ::= [NOT] <boolean primary>
<boolean primary> ::= <predicate> (<search condition>)
WHERE бөлімінің шығарылуы келесі ереже бойынша: R- from бөлімінің нәтижесі. Онда іздеу шарты барлық жолдарға R қолданылады және Where бөлімінің нәтижесі -3 жолдан R тұратын таблица болады. Оның іздеу шартының нәтижесі true .
SQL -дың мәліметтер базасында анықталмаған мәндердің бар екенін ескерсек, іздеу шартын есептеу Бульдік емес, 3мәнді логикада true, false unknown орындалады. And, or, not бульдік операторы 3 мәнді логикада келесі түрде жұмыс істейді.
true AND unknown = unknown
unknown AND true = unknown
unknown AND unknown = unknown
true OR unknown = true
unknown OR true = true
unknown OR unknown = unknown
NOT unknown = unknown
HAVING операторы
Есептеу кезінде ең соңғы таблицалық өрнек HAVING бөлімі
GROUP BY жағдайда, HAVING бөлімі таблицалық өрнекте шыға алады. HAVING бөлімінің іздеу шарты, Where бөлімінің синтаксистік ереже бойынша құрылады. Тек өзіндік синтаксистік шектеуі бар. Іздеу шартын ол жекелеген жолдарға емес, түгелдей топқа қоя алады. Сондықтан, тікелей ішінен тек GROUP BY бөлімінде көрсетілген бағандарды қолданады, қалғандарын Count, AVG, Min, Max агрегаттық функциясын қолданады.
<having clause> ::=
HAVING <search condition>
<Таңдау операторы> (<select statement>)Функция
Кестенің арнайы жолынан мәнді таңдайды .
Формат
<select statement> ::=
SELECT [ALL DISTINCT] <select name>
INTO <select target list>
<table expression>
<select target list>::=
<target specification> [{, <target specification>} . . . ]
Мәліметтер базасын модификациялау операторы
<Жабу операторы> (<close statement>)Функция
Курсорды жап.
Формат
<close statement>::=
CLOSE <cursor name>
<Оператор фиксации> (<commit statement>) ... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz