Автор работы: Пользователь скрыл имя, 06 Февраля 2013 в 04:20, курсовая работа
Менің курстық жұмысымда дәмханадағы әкімшілік (администратор) жұмысын автоматтандыру мақсаты қойылды. Дәмханадағы әрбір жұмысшының қанша ақша түсіргендігін реттейтін, әрбір столдың жеке қабылдау сияқты жұмыстарын автоматтандыру – осы курстық жұмыстың қойылған талаптарының бірі. Ал теориялық бөлімде процедуралар мен функциялар туралы, мәліметтерді сұраныстар арқылы сүзгілеу және курстық жұмыстың бағдарламасын сипаттау.
КІРІСПЕ 3
1 DELPHI-ДЕ ҚОЛДАНЫЛАТЫН МӘЛІМЕТТЕР ҚОРЫНЫҢ ТҮРЛЕРІ 4
1.1 Delphi-де МҚ байланысты ұйымдастыру 7
1.2 TQuery компонентімен жұмыс 11
2 СҮЗГІЛЕУ ТӘСІЛДЕРІ 13
2.1 SQL даму тарихынан 15
2.2 SQL көмегімен мәліметтер қорын басқару 17
2.3 SQL -командаларының типтері 19
2.4 Сандық типтер 21
3 ДӘМХАНА ЖҰМЫСЫН АВТОМАТТАНДЫРУ 29
3.1 Программаны сипаттау 29
3.2 Тағамдар мен қызметкерлер тізімін толтыру 29
3.3 Тапсырыс алу 30
ҚОРЫТЫНДЫ 32
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 33
Varchar(n)
n-максималды мүмкіндікті жолды анықтайтын сан.
Character типінен айырмашылығы Varchar пайдалану дискідегі кеңістікті үнемді шығындауды қамтамасыз етеді. Хабарландыруда көрсетілген жол өлшеміне қарамастан, өріс, енгізілген ақпаратты сақтауға қанша орын қажет болса, сонша алады. Мысалы, егер Varchar(10) өрісі хабарланып және оған 3 символдан тұратын жол енгізілсе, онда бұл жолды сақтау үшін белгіленген ұзындықты жол жағдайындағы сияқты 10 емес, 3 байт қана пайдаланылады.
Сандық типтер былай бөлінеді:
Бүтін санды типтер.
ANSI SQL стандартымен екі бүтін санды типтер орнатылады:
Белгіленген нүктелі заттық типтер.
Белгіленген нүктелі
заттық типтер бөлшек сандарды нақты
беру үшін арналған. Көп жағдайда бұл
типтер қателіктер жіберілмейтін екілік
формада жүзгімелі нүктелі
Белгіленген үтірлі типті хабарлау синтаксисі келесідей:
DECIMAL (n.m)
Мұндағы n-дәлділік; m-масштаб
Дәлділік -ол сандық мәннің жалпы ұзындығы, масштаб-ол ондық нүктеден оң жақта орналасқан белгілер саны.
Жүзгімелі нүктелі заттық типтер.
Жүзгімелі нүктелі типтер әдетте ғылыми және инженерлік есептеулерде пайдаланылады. Бұл типтерді пайдалануда қандай да бір санды жүзгімелі нүктелі екілік формаға өзгерту кезінде мәліметтер қорына енгізуде үнемі қандай да бір қателік жіберіледі. Бұл қателік өте аз болса да, кейбір жағдайларда кешірілмейді және үлкен қателік әкелуі мүмкін, мысалы, үлкен санды мәндерді сомалауда. Сондықтан, жүзгімелі нүктелі типтер ақшалай шамалы мәндерді сақтауға қолданылмайды.
Көп жағдайда екі жүзгімелі нүктелі заттық типтер пайдаланылады:
Екілік жолдар.
Екілік жолдар салыстырмалы сирек қолданылады. Әдетте мұндай типті өрістер жалаулар немесе екілік маскалар ретінде қолданылады.
Символдық жолдар сияқты, екілік жолдар белгіленген және айнымалы ұзындықты болады. Белгіленген ұзындықты екілік жолдар келесі жолмен хабарланады:
BIT (n)-
Мұндағы n-байтпен берілген жол ұзындығы.
Айнымалы ұзындықты жолды хабарлау түрі мынадай:
BIT VARYING (n)
Мұндағы n- байтпен берілген жолдың максималды ұзындығы.
Аты айтып тұрғандай бұл типтер дата мен уақытқа қатысты ақпараттарды сақтау үшін пайдаланылады.
SQL-стандартында дата мен уақыт туралы ақпаратты сақтауға арналған келесі мәліметтер типтері анықталған:
Кестелерді құру, түрлендіру және жою.
Кесте, ақпаратты
реляционды мәліметтер қорында сақтаудың
негізгі объектісі болып
Шектік шарттар- мәліметтер қорының кестесінің өрісінде шама мәнін шектейтін ереже.
Үндемей қабылданатын мәндер- жаңа жазу қосқанда, егер пайдаланушы осы өрістің мәнін көрсетпесе, мәліметтер қорының кестесінің өрісіне автоматты түрде енгізілетін шама.
CREATE TABLE операторы.
Кестені құру үшін CREATE TABLE операторы пайдаланылады. Бұл оператордың синтаксисі келесі түрде болады:
CREATE TABLE имя_таблицы (
Имя_поля_1 тип_данных.
Имя_поля_2 тип_данных.
_
имя_поля_N тип_данных)
Мысал, ФИЗИЧЕСКИЕ ЛИЦА кестесін құру операторы мына түрде болады:
CREATE TABLE STUDENTS
SNUM INTEGER.
SIMA CHAR (25).
SFAM CHAR (25).
SOTCH CHAR (25).
SROZH DATE.
SADR CHAR (25).
STEL VARCHAR (25).
ALTER TRABLE операторы.
Құрылған кестені ALTER TABLE операторын пайдаланып түрлендірге болады. Осы оператор көмегімен кестеге жаңа өрістерді қосуға және жоюға, өрістер мәліметтерінің типін өзгертуге, шектеулерді қосып немесе жоюға болады.
Жалпы түрде ALTER TABLE операторының синтаксисі былай болады:
ALTER TABLE имя_таблицы [MODIFY][имя_поля тип_данных]
[ADD][имя_поля тип_данных]
[DROP][имя_поля тип_данных]
ALTER TABLE операторымен орындалатын әрекет кесте атынан кейін көрсетіоіп негізгі сөзбен анықталады:
Өрістің мәліметтерінің типін өзгерту үшін ALTER TABLE операторының келесі синтаксисі пайдаланылады:
ALTER TABLE имя_таблицы ADD (имя_поля тип_данных)
Мысалы,STUDENTS кестесінестуденттің электронды почтасынан тұратын өрісті қосу үшін келесі операторды пайдаланған жөн:
ALTER TABLE STUDENTS ADD (E-mail CHARACTER (25))
Егер бар өрістің мәліметтерінің типін өзгерту қажет болса, ALTER TABLE операторымен бірге MODIFY негізгі сөзін пайдаланған жөн:
ALTER TABLE имя_таблицы MODIFY(имя_поля тип_данных)
Мысалы, STUDENTS кестесіне E-mail өрісін енгізгеннен кейін CHARACTER типінің пайдаланылуының тиімсіздігі анықталады-студенттердің көбінде электронды почта жоқ, сондықтан дискілік кеңістіктің бөлігі пайдаланылмай, бос қалады. Бұл өріс үшін VARCHAR мәліметтер типін қолданған дұрыс. Мәліметтер типін өзгерту үшін ALTER TABLE операторын пайдаланамыз:
ALTER TABLE STUDENTS MODIFY(E-mail VARCHAR(25))
Бар өрісті өшіру үшін ALTER TABLE операторын DROP негізгі сөзбен бірге шақыруды орындаумен жүзеге асырылады:
ALTER TABLE имя_таблицы DROP (имя_поля)
DROP TABLE операторы.
Кестелерді жою үшін DROP TABLE операторы пайдаланылады. Бұл оператордың синтаксисі мына түрде болады:
DROP TABLE имя_таблицы [RESTRICT |CASCADE]
Егер DROP TABLE операторын шақыру кезінде RESTRICT негізгі сөзі пайдаланылып, және жойылатын кестеге қандай да бір ұсыныс немесе шектеу сілтелінсе, онда кестені жою операторы орындалуы кезінде қате туралы хабарлама шығарылады (генерацияланады). Егер де CASCADE негізгі сөзін пайдаланса, онда кестені жою орындалады және кестемен бірге оған сілтелінетін ұсыныстар мен шектеулер де жойылады.
Сыртқы кілт шектеуі.
Сыртқы кілт шектеуі мәліметтер қорының сілтемелік тұтастығын қолдаудың негізгі механизмі болып табылады. Сыртқы кілт болып анықталған өріс, басқа кестенің өрісіне сілтеме ретінде пайдаланылады, әдетте ол ата-аналық кілт деп аталады, ал сыртқы кілт сілтелетін кесте ата-аналық кесте деп аталады (көп жағдайда ата-аналық кілт ата-аналық кілті болып табылады).
Сыртқы және ата-аналық кілттің өрістерінің типтері міндетті түрде сәйкес болуы мүмкін. Бірақ шатыс болмас үшін сыртқы және ата-аналық кілттер өрістерінің атын да бірдей берген жөн.
Сыртқы кілт бір өрістен тұруы міндетті емес. Алғашқы кілт сияқты сыртқы кілт те бір объект болып өңделетін өрістердің кез-келген санынан тұруы мүмкін. Құрамдас сыртқы кілт сілтелетін ата-аналық кілт өрістері сыртқы кілттегі сияқты ретпен тізбектелуі керек.
Кесте өрісі сыртқы кілт болған кезде, ол қандай да бір жолмен осы кілт сілтелетін кестемен байланыста болады. Ол дегеніміз сыртқы кілттің әрбір мәні ата-аналық кілттегі мәнмен тікелей байланысқан.
Сыртық кілт шектеуін пайдалану иллюстрациясы ретінде қандай да бір ұжым қызметкерлерін есептеу мәліметтер қорын мысалға аламыз (5.1 сурет). Бұл мәліметтер қоры үш кестеден тұрады:
Бұл мәліметтер қорының негізгі кестесі екі басқа кестелерге сілтелетін және сәйкесінше екі сыртық кілттері бар ФАКУЛЬТЕТ кестесі. СТУДЕНТЫ және СПЕЦИАЛЬНОСТЬ кестелерінде ата-аналық кілттер ретінде алғашқы кілттер пайдаланылады:
Сурет 17. Факультет студенттерінің мәліметтер қоры
Сыртқы кілт шектеуі (FOREIGN KEY) не CREATE TABLE операторында, не ALTER TABLE операторының көмегімен берілуі мүмкін. FOREIGN KEY шектеуінің синтаксисі келесі түрде болады:
FOREIGN KEYимя_внешнего_ключа (список полей внешнего ключа)
REFERENCES имя_родительской_таблицы (список полей родительского ключа)
Өрістердің бірінші тізімі- үтірмен бөлінген, кестенің бін немесе бірнеше өрістеріндегі тізім. Өрістердің екінші тізімі- ата-аналық кілтті құрайтын өрістер тізімі. Сыртқы және ата-аналық кілттер ретінде көрсетілген өрістері тізімі сәйкес болуы керек:
Байланысқан кестелі мәліметтер қорын құру мысалын қарастырамыз:
CREATE TABLE СТУДЕНТЫ (
Номер_зач_книжки INTEGER NOT NULL PRIMARY KEY.
Имя VARCHAR (25) NOT NULL.
Фамилия VARCHAR (25).
Отчество VARCHAR (25)
Дата_рождения DATE.
Адрес VARCHAR (50).
Телефон VARCHAR(25))
CREATE TABLE Специальность (
Шифр_специальности INTEGER NOT NULL PRIMARY KEY.
Должность VARCHAR(50) NOT NULL UNIQUE.
Курс INTEGER NOT NULL.
Стипендия DECIMAL(7.2)NOT NULL )
CREATE TABLE Сотрудники (
Код_сотрудника INTEGER NOT NULL PRIMARE KEY.
Код_должности INTEGER.
Код_физического_лица INTEGER NOT NULL.
Рейтинг DECIMAL(4.2).
Дата_приема DATE NOT NULL.
Дата_увольнения DATE.
FOREIGN KEY Физ_ВК (Код_физического_лица)
REFERENCES Физические_лица (Код_физического_лица)
FOREIGN KEY Долж_ВК (Код_должности)
REFERENCES Должности (Код_должности)
Сыртқы кілт кесте құрылғаннан кейін де қосылуы мүмкін-ALTER TABLE операторының көмегімен (әрине, егер SQL жүзеге асыруы осы операторды қолдаса). Сыртқы кілтті құруда пайдаланылатын ALTER TABLE операторының синтаксисі келесі түрде болады:
ALTER TABLE имя_таблицы
ADD CONSTRAINT имя_внешнего_ключа FOREIGN KEY (список полей внешнего ключа)
REFERENCE имя_родительской_таблицы (список родительского ключа)
Сыртқы кілт кестеге енгізуге болатын мәндерді шектейді. Сыртқы кілтті құрайтын өрістерге қандай да мәндерді енгізу үшін, бұл мәндер ата-аналық кестеде енгізіліп тұруы қажет. Мысалы, СОТРУДНИКИ кестесіне оның жеке мәліметтері туралы жазу болуы қажет, әйтпесе "Код_физического_лица" міндетті өрісін толтыру мүмкін емес болады.
Сыртқы кілт үшін NOT NULL шектеуі берілуі мүмкін, бірақ ол міндетті емес, тіпті кей жағдайларда қажетті емес. Мысалы, ұжымға жұмысқа жаңа қызметкер қабылданады, бірақ әлі оның қызметі анықталмаған деп болжайық. Бұл жағдайда ол туралы барлық қажетті мәліметтерді ФИЗИЧЕСКИЕ ЛИЦА және СОТРУДНИКИ кестесіне енгізуге болады, "Код_должности" өрісінде ештеңе көрсетпей.
3 ДӘМХАНА ЖҰМЫСЫН АВТОМАТТАНДЫРУ
Программаны іске қосу үшін restoran.exe орындалатын файлын жүктеу керек. Экран бетіне 18-суреттегідей терезе пайда болады. Алдымен тағамдар тізімі мен қызметкерлер тізімін толтырып алу керек. Содан соң келген қонақтарды «қабылдай» беруге болады. Қонақтарды «жайлау» үшін келген клиенттер отырған столдың номерін басу керек. Ашылған терезеде не жасау керек екендігін келесі бөлімдерде қарастырылады.
Сурет 18. Программаның негізгі терезесі
Тағамдар тізімін толтыру үшін негізгі терезедегі (18-сурет) «Тағамдар тізімі» батырмасын басамыз. 19-суреттегідей терезе пайда болады. Жаңа тағам қосу үшін «қосу» өрісін таңдап, берілген екі өрісті толтырып, «Орындау» батырмасын басамыз. Тізімдегі тағамның атауын не бағасын өзгерту үшін, қажетті тағамды тізімнен таңдап, «өзгерту» өрісін таңдап, өріске қажетті өзгерістерді енгізіп, «Орындау» батырмасын басу керек. Ал өшіру әрекетін орындау қажетті тағамды тізімнен таңдап, «өшіру» өрісін таңдап «Орындау» батырмасын басу керек.
Сурет 19. Тағамдар тізімі терезесі
Қызметкерлер кестесін өзгерту дәл осындай әрекеттер арқылы орындау керек.
Тапсырыс алу үшін, қонақтар жайғасқан столды шертіп, ашылған терезеде әрі қарай әректтерімізді орындаймыз. Олар мынандай ретпен орындалады: алдымен сол столға қызмет көрсететін адамды бекітемз, содан соң терезенің оң жақ қапталында орналасқан базадағы барлық тағамдардың тізімінен тапсырыс берген тағамды таңдап, «Қосу» батырмасын басамыз. Егер қателесіп, не қонақ тапсырысн өзгерткісі келсе, «Алу» батырмасын қолданамыз. Есепті жабу үшін «Есепті жабу» батырмасын басамыз, экран бетіне 21-суреттегідей есеп парағы пайда болады.