( номер_продавца INTEGER NOT NULL,
..
план MONEY CHECK(MONEY>=0.0))
Берілген мысалда бағанға шектемені жоспар сатушыға жоспарлы сатылым көлемінен 0.0
кем беруге мүмкіндік бермейді.
Бағанда сақтала алатын көптеген мəндерді бейнелеуді домен дейміз. Ол CREATE
DOMAIN инструкциясы бойынша құрылады, домен құрылған соң оны деректер қорындағы
кестеден түрлі бағандарды анықтауға əдеттегі деректер түрі сияқты болса да қолдануға
болады.
Кестенің тұтастығы. Кестенің алғашқы кілті басқа жолдардағы мəндерге қарағанда əрбір
жолда ерекше мəнге ие болуы тиіс. ДҚБЖ-ге кестенің тұтастығын қамтамасыз етуін ұсынуге
болады. Мұндай тəсілмен жолды өңдеу немесе қосу əрекетінен алғашқы кілт өзінің ерекшелігін
жоғалтады, қате жайлы хабарлама шығумен аяқталады.
Кейде кестенің алғашқы кілті болмайтын баған барлық жолдарда ерекше мəн болуын
талап етеді. Бағанға ерекшелік шартын салып, кестедегі ПРОДАВЦЫ фамилиясынан екі
бірдей фамилияларды ПРОДАВЦЫ-ды болдырмаумен шектейік. Алғашқы кілт бөлігін
бейнелейтін немесе ерекшелік шарты салынған кез келген баған NOT NULL шектеуімен
жариялануы тиіс.
Сілтемелі тұтастық. Реляциялық деректер қорында əрбір ұрпақ-кесте жолынан сыртқы
кілт көмегімен алғашқы кілті бар мəні сыртқы кілт мəніне тең аталы-кесте жолымен
байланысты.
Аталық/ұрпақтық қатынас тұтастық сілтемесін бұзатын деректер қорының өзгеруінің төрт
түрі бар:
1. жаңа ұрпақ-жолының қосылуы;
2. ұрпақ-жолдағы сыртқы кілт өңделуі;
3. аталық-жолдың жойылуы;
4. ұрпақ-жолдағы алғашқы кілттің өңделуі.
Тапсырмаларды орындауға қажетті əдістемелік нұсқаулар:
Оқулық материалды жəне түсіну кезінде негізгі түсініктемелерді ұғу жəне материалды
бекіту арқылы жүргізілу керек. Тақырып бойынша терминдердің сөздігін құрастыр.
10 Ұсынулар
Сұрақтар:
1. WHERE ұсынысы неліктен тік ұсынуларда орындалмайды?
2. Неліктен ұсынуларды бақылау тəртібі орындалу керек?
3. CASCADE жəне LOCAL параметрлерінің қандай айырмашылықтары бар?
4. Материализацияланған ұсынуларды қай уақытта тиімді қолданған ыңғайлы?
5. Ұсынулардың айырмашылықтарын түсіндір.
Тапсырмалар:
1. Ұсынуларды құру.
2. Ұсынулардың түрлері.
3. Ұсынуларды жаңарту
Солтүстік аймақ сатушылары жайлы ақпаратты көрсететін ұсыну құру:
CREATE VIEW СЕВЕР AS
SELECT *
FROM ПРОДАВЦЫ
WHERE магазин IN (62, 63, 64)
Орталық аймақ сатушылары жайлы ақпаратты көрсететін ұсыну құру:
CREATE VIEW ЦЕНТР AS
SELECT *
FROM ПРОДАВЦЫ
WHERE магазин IN (51, 52)
Озінің сатып алушылары жасаған тапсырыстарын көрсететін Мадаева ұшін ұсыну құру
(идентификаторы 306):
CREATE VIEW ЗАКАЗЫ_МАДАЕВА AS
SELECT *
FROM ЗАКАЗЫ
WHERE продавец=306
The command(s) completed successfully
Қызметкерлер жайлы таңдаулы ақпаратты көрсететін ұсыну құру:
CREATE VIEW ИНФОСЛУЖ AS
SELECT номер_продавца, фамилия, магазин
FROM ПРОДАВЦЫ
The command(s) completed successfully.
SELECT *
FROM ИНФОСЛУЖ
Баешованың (идентификаторы 305) барлық клиенттері үшін несие лимиті, сатып алушы
аты, оның идентификаторы бар ұсынуды құру:
CREATE VIEW Баешова AS
SELECT номер_покупателя, название, кредит
FROM ПОКУПАТЕЛИ
WHERE продал=305
The command(s) completed successfully.
Əрбір қызметкер бойынша тапсырыстар қосынды деректерінен тұратын ұсыну құру.
CREATE VIEW СУММАРНЫЕ_ЗАКАЗЫ
(продавцы, кол_во, сумма, мин_м, мак_м, среднее) AS
SELECT продавец, COUNT(*), SUM(стоимость),
MIN(стоимость), MAX(стоимость), AVG(стоимость)
FROM ЗАКАЗЫ
GROUP BY продавец
Ұсынуды жою. SQL2 стандартында ұсынуды жою үшін DROP VIEW инструкциясын
қолдану бекітілген.
DROP VIEW СЕВЕР CASCADE
CASCADE параметрі, ДҚБЖ инструкцияда көрсетілген ұсынуды ғана емес оның негізінде
құрылған барлық ұсынуларды жоюы тиістігін білдіреді.
DROP VIEW СЕВЕР RESTRICT
RESTRICT параметрі, ДҚБЖ ұсынуды оның негізінде құрылған басқа ұсыну жоқ болған
кезде жоюы керектігін білдіреді. Бұл берілген инструкцияны қолданғанда кездейсоқ əсерден
қосымша қорғану. Көптеген коммерциялық ДҚБЖ-де нақты берілген параметрлерсіз DROP
VIEW инструкциясы қолданылады.
Тапсырмаларды орындауға қажетті əдістемелік нұсқаулар:
Оқулық материалды жəне түсіну кезінде негізгі түсініктемелерді ұғу жəне материалды
бекіту арқылы жүргізілу керек. Тақырып бойынша терминдердің сөздігін құрастыр.
11 Сақталатын процедуралар
Сұрақтар:
1. Енгізілетін параметрлі жəне үнсіз келісім бойынша қабылданатын мəндер
процедурасына анықтама беріңіз.
2. Сақталатын процедуралар типтерін атап беріңіз.
3. Ішкі процедуралар қалай қолданылады?
4. Сақталатын процедураларын қолданудың артықшылықтарын атап беріңіз.
Тапсырмалар:
1. Сақталатын процедураларды құру, өзгерту жəне жою.
2. Сақталатын процедураларын қолдану.
Параметрсіз процедураны қарастырайық:
БОЛТ компаниясымен алынған қосалқы бөлшектер құнын жəне атын алу үшін процедура
құру:
CREATE PROC ПРОЦЕДУРА1 AS
SELECT ЗАПЧАСТИ.название
FROM ПОКУПАТЕЛИ INNER JOIN (ЗАПЧАСТИ
INNER JOIN ЗАКАЗЫ
ON шифр_запчасти=запчасть)
ON номер_покупателя=покупатель
WHERE ПОКУПАТЕЛИ.название='БОЛТ'
Процедураға назар аударғанда қолданылатын командалар:
EXEC ПРОЦЕДУРА1 немесе ПРОЦЕДУРА1
Процедура деректер жиынтығын қайтарады:
Енгізілетін параметрлі процедураны қарастырайық.
Берілген сатып алушы алған қосалқы бөлшектер атын жəне құнын алу үшін процедура
құру:
CREATE PROC ПРОЦЕДУРА2
@k VARCHAR(10) AS
SELECT ЗАПЧАСТИ.название,ЗАПЧАСТИ.цена
FROM ПОКУПАТЕЛИ INNER JOIN( ЗАПЧАСТИ
INNER JOIN ЗАКАЗЫ
ON шифр_запчасти=запчасть)
ON номер_покупателя=покупатель
WHERE
ПОКУПАТЕЛИ.название=@k
Процедураға назар аударғанда қолданылатын командалар:
EXEC ПРОЦЕДУРА2 @k='БОЛТ' немесе
ПРОЦЕДУРА2 @k='БОЛТ'
Енгізілген параметрлі процедураны келтірейк.
Достарыңызбен бөлісу: |