|
Деректер қоры операциялық жүйенің бір немесе бірнешефайлдарындаорналасады. Операциялық жүйенің бір файлы бірнеше деректер қорларынантұра алмайды. Бұл файлда кесте жəне индекстер сияқты объектілерсақталынады.Транзакция журналы – бұл SQL Server - дің транзакция орындалғаннан
кейінгі жəне оған дейінгі ақпараттарды жазуға пайдаланатын жұмыс аймағы.Бұл ақпарат транзакция жұмысын тоқтатуға немесе деректер қорын қайтақалпына келтіруге пайдаланылады, əрине егер қажет болса. Деректерқорын Transact-SQL көмегімен құру үшін CREATE DATABASE командасықолданылады.
CREATE DATABASE kadryON PRIMARY(NAME = kadry_data, FILENAME='C:\Program Files\Microsoft SQLServer\MSSQL\Data\kadry_data.mdf', size = 4, maxsize =25, filegrowth = 1 mb)LOG ON(NAME = kadry_log, FILENAME='C:\Program Files\Microsoft SQLServer\MSSQL\Data\kadry_log.ldf', size = 4, maxsize = 20,filegrowth =1 mb)Деректер қорын жəне транзакция журналын 'С:\…’ – ға орналастыру SQLтүріне байланысты.
Мұндағы:kadry - Құрылатын деректер қорының аты.
ON – Деректер қоры туралы ақпараттар сақталынатын дискідегі файлдартізімін анықтайды.PRIMARY – жүйелік кестелер мен деректер қорының логикалықбасталуынан тұратын файлды анықтайды. Деректер қорында тек бір ғанабірінші файл (PRIMARY) болады. Егер бұл параметр жұмысты орындау
барысында жасалмаса, онда бірінші файл болып тізімдегі бірінші файлтағайындалады.LOG ON – транзакция журналы сақталынады сақталынатын дискідігіфайлдар тізімін анықтайды. Егер бұл параметр анықталмаса, онда транзакцияжурналының өлшемі деректер файлының жалпы өлшемінің 25 % ын құрайды.kadry_data – файлдарға сілтеме жасау үшін SQL Server қолданатынлогикалық атты анықтайды.FILENAME – Операциялық жүйе файлдарының параметрлерін береді (SQLServer орнатылған сервердеорналасатын файл аты, size, maxsize, filegrowth –деректер қорының бастапқы жəне максималды өлшемі).
9. MS SQL Server ортасында деректер қорымен жұмыс жасау. Кеселерді құру және жою.Деректер қорында кестелерді Transact-SQL тілінің CREATE TABLEоператорының көмегімен құруға болады. Кесте құру барысында кестебағанының деректер типін анықтап алу басты рольді атқарады. Мұндабағандардың деректер типін анықтау ғана емес, NULL немесе NOT NULLқосымша сипаттамасын да анықтау қажет. Егер бағанда NULL атрибуты
қойылса, онда берілген бағанның мəндерін енгізуде бос орын қалтырып кетугемүмкіндік беріледі. Егер керісінше бағанда NOT NULL атрибуты қойылса, ондаSQL Server жолдарды толтыру кезінде берілген бағанды бос қалтырып кетугежол бермейді. Осылайша NULL жəне NOT NULL атрибуттары мəліметтердің
енгізілуін қадағалап отырады(мұндағы бағандағы бос қалтыру деген босорын(пробел) жəне нөл емес).CREATE TABLE командасының синтаксисы келесі түрде болады:
CREATE TABLE <table name >
(<column namel ><data type>
<column name2 ><data type>)
Мысалретінде Sclad кестесіналуғаболады. Бұлкестеқоймадағықұрылысматериалдарынаесепжүргізугеқажетболсындепалайық. Кестеқұруғамысалтөмендекелтірілген:
CREATE TABLE Sclad
(Tovar char (20),
Firma char (20),
Col int,
DataPostup DateTime)
Енді kadry деректерқорын Create Database kadry командасының көмегімен құрайық. Осы деректер қорын келесі команда арқылы анықтайық: USE kadry. Енді кездесетін командалардың барлығы осы деректер қорында пайдаланылады.
Қызметі (Должности) кестесініңқұрылуы:
CREATE TABLE doljn (kodd bigint not null PRIMARY KEY, nazv char(15) not null)
Бөлімдер (Отделы) кестесініңқұрылуы:
CREATE TABLE otdel (
Kodotd bigint not null PRIMARY KEY,
nazotd char(15) not null
)
Дəрежесі(Степени) кестесініңқұрылуы:
CREATE TABLE Stepen (
kodst bigint not null PRIMARY KEY,
nazvst char(10) not null
)
Бағыты (Направлениестепеней) кестесініңқұрылуы:
CREATE TABLE napr (
kodn bigint not null PRIMARY KEY,
nazvn char(15) not null,
kodst bigint not null
Foreign key References Stepen (kodst)
)
Қызметкератағы (Звания) кестесініңқұрылуы:
CREATE TABLE Zvanie (
kodz bigint not null PRIMARY KEY,
nazvz char(15) not null
)
Қызметкерлер (Сотрудники) кестесініңқұрылуы:
CREATE TABLE person (
nud int not null PRIMARY KEY,
Family char(15) not null,
name char(10) not null,
father char(15) not null,
sik char (15) not null,
pnn char (10) not null,
pol char(1) not null,
kodd bigint not null Foreign key References doljn (kodd),
kodotd bigint not null Foreign key References otdel (kodotd),
kodst bigint not null Foreign key References Stepen (kodst),
kodn bigint not null Foreign key References napr (kodn),
kodz bigint not null Foreign key References zvanie (kodz),
staj int not null,
ostaj int not null,
data_r datetime not null,
data_p datetime not null
) Деректерқорынанкестелердіжоюүшін DROP TABLE командасы
қолданылады. Алоныңсинтаксисітөмендекөрсетілгендейөтеқарапайым:
DROP TABLE <table name>
10.Берілгендерді модификациялау. AlterTable операторы. Индекстерді құру және алыптастау. Деректер қорындағы кестенің құрылымын өзгерту үшін ALTER TABLEоператорын қолдануға болады. Бұл операторды қолдана отырып серверлік
шектеуді немесе өрістерді қосуға жəне алып тастауға болады. ALTER TABLEоператорының 4 түрі болады.Бұл оператордың бірінші түрі кестеге бағандарды қосу үшін қолданылады
жəне синтаксисі келесі түрде болады:
ALTER TABLE table ADD [COLUMN] column datatype
[(size)]
[CONSTRAINT sinlge-column-constraint]
Сұраныстардакестеаты, жаңаөрісатауы, жəнеолардыңдеректертипі, қажетболсаөлшеміанықталады. Соныменқатарберілгенөрістерменбайланыстысерверлікшектеулердідекөрсетугеболады. Мысалы, Simple кестесінің Phoneөрісінқосуүшінкелесісұраныстыжазуғаболады:ALTER TABLE Simple ADD Phone varchar(30)ALTER TABLE операторыныңекіншітүрікестегесерверлікшектеулерқоюүшінқолданылады, алоныңсинтаксисікелесітүрдеболады:ALTER TABLE table ADD CONSTRAINT constraintМұндайсұраныстартексəйкесболатынөрістердібіріншінемесесыртқыкілттерретіндеқолдануғамүмкіндікберетіниндекстердіқосады.Оператордың үшінші түрі кестеден өрісті жою үшін қолданылады:
ALTER TABLE table DROP [COLUMN] column
Мұндағы COLUMN кілттік сөзін қолдану міндетті емес. Мысалы:
ALTER TABLE Simple DROP PhoneБұлжердеиндекстелгенөрістіжоюүшін, еңалдыменөрістіңиндексіналыптастауқажет. Алолүшін ALTER TABLE операторыныңтөртіншітүріқолданылады.
ALTER TABLE table DROP CONSTRAINT indexМұндайсұранысретіндетөмендекелесімысалкелтірілген:
ALTER TABLE Simple DROP CONSTRAINT PrimaryKey
1 - мысал.
Person кестесінезейнеткерліккелісімшартномерітуралыақпараттарсақталынатынөрісқосайық:
USE kadry
ALTER TABLE person
ADD Npers int
Кестедененгізілгенөрістіалыптастайық:
ALTER TABLE person
DROP COLUMN Npers
Егеркестедебіріншіжəнесыртқыкілттеранықталмағанболса, онда ALTERTABLE командасыныңкөмегіменқосуғаболады.
Айталық, person кестесіндебіріншікілтқойылмағанболсындепесептейік:
ALTER TABLE person
ADD CONSTRAINT PK_person PRIMARY KEY (Nud).
Егер person кестесіндесыртқыкілттердіңбіріқайылмағанболса:
ALTER TABLE person
ADD CONSTRAINT VK_ person FOREIGN KEY (kodotd)
REFERENCES otdel (kodotd).
2 - мысал.
Біріншікестеніқұрыпжəнеоғанбіріншікілтқою.
Create table reader
(nomer int constraint pk_nomer primary key,
Family char(15),
Name_r char(10)
)
Екіншікестеніқұрыпжəнеоғанбіріншікілтқою.
Create table book
(shifr int constraint pk_shifr primary key,
Avtor char(15),
Nazvanie char(15)
)
Біріншікестегеөзгертулеренгізу. Біріншікілттіалыптастау.
Use bibl
Alter Table reader
Drop constraint pk_nomer
Біріншікестегеөзгертулеренгізу. Өріскебіріншікілтқою.
Use bibl
Alter table reader
Add constraint pk_nomer primary key(nomer)
Үшіншікестеніқұрып, оғанекіншікілтқою.
Create table readbook
(nomer int foreign key references reader (nomer),
Shifr int foreign key references book (shifr),
Data_v datetime)
Индекстердіқұружəнеалыптастау
Индекстердіқұрукомандасыныңсинтаксисітөмендекөрсетілген:
CREATE INDEX <index name> ON <table name>
(<fieldl>,<field2>,...)
Командасыөтеқарапайым. Ондаиндекстелетінөрістертізімі, индексаты,кестекөрсетіледі. Мысалретіндеқұрылғанкестедегі Firma өрісінеиндексқояйық:
CREATE INDEX Scladlndex ON Sclad (Firma)Мұндаиндексқұрылатынкестежəнеиндексаты, индекстелетінөрістертізімі
көрсетіледі. Мысалретіндеқұрылғанкестедегі Firma өрісіниндекстепкөрейік:
CREATE INDEX Scladlndex ON Sclad (Firma)
Өрістіиндекстеудебірегейиндексқолдансынделік, онда INDEX кілттіксөзініңалдына UNIQUE директивасынқоюқажет. Ондасұранысымызмынатүрдеболады:
CREATE UNIQUE INDEX Scladlndex ON Sclad (Firma)
Өрістегіиндекстібірегейиндексретіндеқұруүшіналдымен Firma кілттікөрісіндегімəндердіңқайталанбайтындығытексеріледі. Яғни Firma өрісіндегімəндерқайталанатынболса, ондаиндексқұрылмайды.Өрістегіиндекстіалыптастауүшін DROP INDEX командасынқолданады:
DROP INDEX Sclad.Scladlndex
DROP INDEX командасынанкейінкестеатыжəнеиндексатыкөрсетіледі.
11.Сақталынған процедурлар. Процедураларды қолдану. Сақталынған процедуралар – программада қолдануға ыңғайлы етіп құрылған SQL операторларының жиыны. Оған кірететін SQL операторларының барлық жиындарын қайта қайта жазып отырғаннан қарағанда сақталынған процедураларды қолдану ыңғайлы. Сақталынған процедуралардың біріне басқасын қоюға болады (қою реті 16 дан аспау керек).
Сақталынған процедура қолданушы енгізген мəндерді алдын ала қойылған шарттар бойынша салыстыра алады, қандайда бір нəтижелер есептеп береді жəне т.б.
Сақталынған процедураны пайдаланудағы кейбір артықшылықтар: - процедура операторлары деректер қорында сақталынып қойылған;
- процедура операторлары тексерілген жəне қолдануға дайын күйде тұрады;
- процедураны пайдалануда нəтиже жылдам алынады;
- процедураны сақтау мүмкіндігі модульдік программалауды қолдануға мүмкіндік береді;
- сақталынған процедуралар басқа процедураларды шақыра алуы мүмкін;
- сақталынған процедуралар басқа процедуралармен шақырылуы мүмкін.
SQL - Server – де процедуралар келесі операторлар көмегімен құрылады: CREATEPROCEDURE процедура_ аты
[ [ (] @параметра_аты
ДЕРЕКТЕР_ТИПІ [(ҰЗЫНДЫҒЫ) | (ДƏЛДІГІ) [, МАСШТАБЫ ]) [=DEFAULT][OUTPUT] ]
[, @ПАРАМЕТР_АТЫ ДЕРЕКТЕР_ТИПІ [(ҰЗЫНДЫҒЫ) | (ДƏЛДІГІ) [, МАСШТАБЫ ])
[=DEFAULT][OUTPUT] ] [WITH RECOMPILE]
AS SQL операторлары
Сақталынған процедураларды келесі түрде қолдануға болады: EXECUTE [@ =] процедура_аты
[ [ @ параметр_аты =] мəні |
[@ параметр_аты =] @ Айнымалы [OUTPUT]]
[WITHRECOMPILE]
Мысалы, бізге курс номерін GRUPPA кестесінде бірге артыру қажет болсын (Grup_COURSE): CREATEPROCEDUREnew_course
AS
UPDATE GRUPPA
SET Grup_COURSE = Grup_COURSE +1
Процедура нəтижесін тексерейік: EXEC new_course
SELECT * FROM GRUPPA
Құрылған сақталынған процедураны С++Builder ортасында келесі түрде шақыруға болады: ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(“Exec new_course”);
ADOQuery1->ExecSQL();
GRUPPA кестесінің бастапқы кұйіне келейік: CREATE PROCEDURE old_course
AS
UPDATE GRUPPA
SET Grup_COURSE = Grup_COURSE -1
EXEC old_course
SELECT * FROM GRUPPA
SELECT операторын қолданудағы қарапайым процедура: CREATE PROCEDURE spisok_stud
AS
SELECT * from Students
Дата добавления: 2015-09-12; просмотров: 79 | Поможем написать вашу работу | Нарушение авторских прав |