26
ALTER TABLE marketing RENAME CONSTRAINT mktg_pk
TO new_mktg_pk
Шектеулерді қосу.
Шектеулер кесте деңгейінде ережелердің
орындалғандығын қамтамасыз етеді. Шектеу
басқа кестелерде бағыныңқы
деректер бар болған жағдайда кестенің жойылуының алдын алады.
Oracle-да келесі шектеулерге жол беріледі:
NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK.
DISABLE/ENABLE
операторында ALTER TABLE командасын
пайдалана отырып, шектеуді жоймай-ақ өшіруге/қосуға болады.
ALTER TABLE table DISABLE CONSTRAINT constraint [CASCADE];
Табыстау. Табыстаудың мүмкіндіктері
:
1) Деректер қорына қолжетімділікті шектейді, яғни табыстау
пайдаланушыға деректер қорының тек оның
қолжетімді бөлігін ғана
көрсетуіне болады.
2) Пайдаланушыға қарапайым сұраулардың көмегімен күрделі
сұраулардың нәтижелерін алуға мүмкіндік береді. Мысалы, пайдаланушылар,
бірнеше кестеден бірден ақпарат сұрауына болады
3) Жоспарларнбаған сұраулар жіберетін пайдаланушылар мен
қолданбалы бағдарламлар үшін деректердің тәуелсіздігін қамтамасыз етеді.
Бір табыстау бірнеше кестеден бір таңдамалыны пайдалануға мүмкіндік
береді.
4) Пайдаланушылар тобына нақты берілегн критерилер бойынша
деректерге қолжетімділік жасайды.
Табыстаулардың қарапайым және күрделі түрлері
арасында негізгі
айырмашылық DML операцияларымен байланысты (көшіріп қою, жаңарту
және жою).
Қарапайым табысау (simple view) – бұл табыстау:
1) Мәіметтерді тек бір кестеден таңдайды.
2) Құрамында
функциялар, DISTINCT сөйлемі және деректер тобы
болмайды.
3) Табыстау арқылы DML операциясын орындауға мүмкіндік береді.
Күрделі табысату (complex view) – бұл табысау:
1) Мәіметтерді бірнеше кестелерден таңдайды.
2) Қрамында функциялар, деректер тобы, DISTINCT сөйлемі бар.
3) Табыстау арқылы DML операциясын орындауға әрқашан да
мүмкіндік бере бермейді.
Табыстау CREATE VIEW сөйлемі арқылы ішкі сұрауларды қосу
арқылы жасалады:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW представление
[(псевдоним[, псевдоним]...)]
AS подзапрос
[WITH CHECK OPTION [CONSTRAINT ограничение]]
[WITH READ ONLY [CONSTRAINT ограничение]]
27
Бағаналардың аттарын ішкі сұраудағы бағанаға бүркеншек
аттар қосу
арқылы (алиастар) басқаруға болады.
Бағандардың аттарын басқарудың тағы бір әдісі – бұл олардағы
бүркеншек аттарын
CREATE VIEW
сөйлемінде табыстаудың атынан кейін
көрсету.
CREATE VIEW salvu50 (ID_NUMBER, NAME, ANN_SALARY)
AS
SELECT employee_id, last_name, salary*12
FROM employees
WHERE department_id = 50;
Бағаналардың аттарын ішкі сұрауардың бағаналарына бүркеншек ат
қосу жолымен басқаруға болады.
Бағаналардың аттарын басқарудың тағы бір жолы –
бұл олардың
бүркеншек атарын CREATE VIEW сөйлемінде табыстаудың атынан кейін
көрсету.
CREATE VIEW salvu50 (ID_NUMBER, NAME, ANN_SALARY)
AS
SELECT employee_id, last_name, salary*12
FROM employees
WHERE department_id = 50;
Табыстаумен DML операциясы арқылы орындау ережесі.
1. DML операцияларын қарапайым бабыстау арқылы орындауға
болады.
2.
Жолды жоюға болмайды, егер табыстаудың құрамында мыналар
болса:
1) Топтық функциялар.
2) GROUP BY сөйлемі.
3) DISTINCT кілттік сөзі.
4) ROWNUM жалған бағанға сілтеме.
Құрамында мыналар бар табыстауларға деректерді қосуға болмайды:
1) Топтық функциялар.
2) GROUP BY сөйлемі.
3) DISTINCT кілттік сөзі.
4) ROWNUM жалған бағанға сілтеме.
5) Көрсеткіштердің көмегімен анықталатын бағандар.
Базалық кестелерде анықталатын бағандар NOT NULL шектеулері
арқылы табыстауға деректер қосуға болмайды.
WITH CHECK OPTION
сөйлемін пайдалану.
DML
операциялардың
нәтижелері табыстаудың домен шегінде қалуын бақылау керек.
Тізбектіліктер.
Кестедегі жолдар қатарын автоматты түрде генерация жасау үшін
сандар генераторын пайдалануға болады. Тізбектілік (SEQUENCE) – бұл
пайдаланушы құрастыратын және бірнеше пайдаланушы тарапынан
28
ұжымдық түрде қолданыла алатын деректер қорының нысаны. Біріншілік
кілттің мәнін генерациялау үшін жиі қолданылады.
Тізбектіліктің саны кестеге тәуелсіз түрде сақталады және
генерацияланады. Сәйкесінше, бір тізбектілік бір уақытта бірнеше кесет үшін
қолданыла алады.
Бұл өте ыңғайлы болады және жұмысшыдан
біріншілік кілттің мәнін
құрастыру үшін мән беру алгоритмін жүзеге асыруға мүмкіндік береді. Әрбір
жаңа мән тізбекте құру кезіндегі қағидалардың негізінде жасалады. Құрудың
ортақ синтаксисі:
CREATE SEQUENCE [schema].sequence_name
[INCREMENT BY number]
[START WITH number]
[MAXVALUE number | NOMAXVALUE]
[MINVALUE number | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE number | NOCACHE]
[ORDER | NOORDER]
Тізбектілік мәндерін алу.
Тізбектілік мәндерін алуды үйренеміз. Ең
қарапайым мысал осы сұрауды орныдау болып табылады:
Достарыңызбен бөлісу: