Сіздің алғаныңыз реляционды мәліметтер бзасының негізі болып табылады, яғни ақпарттың екіөлшемді кестесі (жол немесе баған). Дегенмен реляционды мәліметтер базасы бір ғана кестеден сирек болады. Мұндай кесте файлдық жүйеден де аз. Ақпараттары бір –бірімен байланысты кестелер құру арқылы сіз мәліметтеріңізбен күрделі әрі күшті операциялар орындй аласыз. Ақпараттар фрагментінің арасында құрған мәліметтер базасының күштілігі ақпарат фрагментіне емес, байланысқа тәуелді.
БІР КЕСТЕНІ БАСҚАСЫМЕН БАЙЛАНЫСТЫРУ
Бірінші кестеміздің кейіпкерлері аурухана емделушілері деп алайық. Басқа кестеде осы емделушілер туралы қосымша ақпарат толтыруымызға болады. Екінші кесте бағандарын Емделуші, Дәрігер, Сақтандыру және Баланс деп белгілейміз.
Емделуші Дәрігер Сақтандыру Баланс
Farish Drume B.C./B.S. $272.99
Grillet Halben None $44. 76
Brock Halben Health,Inc. $9077.47
Көрсетілген параметрлерге сай осы кестелерден ақпаратты алып, көптеген күшті функциялар орындауға болады, әсіресе бұл параметрларда әртүрлі кестелерде байланысқан ақпарат фрагменттері бар болса. Мысалы, дәрігерлерді алайық. Дәрігер Halben өзінің барлық емделушілерінің телефондарын алғысы келді делік. Бұл ақпаратты алу үшін емделушілердің телефон номерлары бар кестені оның емделушілері қайсы екенін көрсететін кестемен байланыстыра алады. Дегенмен, бұл қарапайым мысалда оны басында ұстап, бірден Grillet және Brock емделушілерінің телефонын алуға болушы еді, бұл кестелер тым үлкен және тым қиын болуы мүмкін. Реляционды мәліметтер базасының бағдарламасы осындай типті мәліметтердің үлкен әрі қиын қосындыларын өңдеу үшін құрылғн, анық көріп тұрғандай іскерлік әлемде универсалды әдіс болып табылады. Аурухананың мәліметтер базасында жүздеген немесе мыңдаған ат болса да, тәжірибеде солай болады да, SQL бір командасы дәрігер Halbenге лезеде керек ақапаратты тауып беруші еді.
ЖОЛДАРДЫҢ РЕТІ КЕЗ-КЕЛГЕН
Максималды икемділігін сақтау үшін анықтау бойынша кесте жолдары белгілі бір реттілікте болмауы керек. Бұл көз қарас бойынша мәліметтер базасының құрылымы біздің мекен – жай кітабымыздан ерекшеленеді. Мекен – жай кітабына кіріс алфавитттік реттілікте болады. Реляционды мәліметтер базасы бар жүйелерде тұтынушылр үшін бір күшті мүмкіндік бар – бұл ақпаратты қайта құра алатындай етіп реттеу.
Екінші кестені қарастырайық. Кейде сізге бұл ақпаратты аты бойынша алфавитпен реттелген, кейде өсу не кему реттілігімен, ал кейде әлде бір дәрігерге қатысты топтасқан түрде көру керек болады. Жолдағы реттілікті жөндеуде тпсырыс берушының оны өзгерте алу мүмкіндігімен соқтығысамыз, сондықтан жолдар реттелмеген болып қарастырылады. Осы себеп бойынша сіз: «Біз кестенің бесінші жолын көргіміз келеді» деп айт алмайсыз. Мәліметтер еңгізілген немесе басқа критерийлер реттілігіне қарамай, біз басқа жолды анықтаймыз, дегенмен ол бесінші болады. Қарастырылатын кесте жолдары әлдебір реттілікте болмайды.
ЖОЛДАРДЫҢ ИДЕНТИФИКАЦИЯСЫ (БІРІНШІЛІК КІЛТ)
Осы және басқа себептер үшін әрбір жолды бұлжытпай идентифицировать ететін кестеңізде баған болу керек. Әдетте бұл бағанда номер болады – мысалы, әрбір емделушіге берілетін номері. Әрине сіз емделуші аттарын қолдана аласын, бірақ мысалға бірнеше Mary Smiths болуы мүмкін ғой, осындй жағдайда оларды бір бірінен айыратын басқа әдіс таппайсыз.
Сондықтан номерлер керек. Мұндай әрбір жолды әрбір жолды идентифицирлейтін және әрбір жолды юөлек сақтайтын бірден бір баған (немесе бағандар тобы) – кестенің біріншілік кілті деп аталады.
Кестенің біріншілік кілті мәліметтер бзасындағы маңызды элемент. Олар- сіздің файлға жазу жүйеңіздің негізі; егер кестедегі белгілі бір жолды тапқыңыз келсе осы біріншілік кілтке жүгінесіз. Сонымен қтар біріншілік кілт сіздің мәліметтеріңізде белгілі бір жинақылық барлығын дәлелдейді. Егер біріншілік кілт дұрыс қабылдап, қолданса сіз бос жолдың жоқтығын және әрбір жол басқасынан ерекшеленетінін біліп отырасыз.
БАҒАНДАР АТАЛАДЫ ЖӘНЕ НОМЕРЛЕНЕДІ
Жолдарға қарағанда бағандарреттеледі және аталады. Сонымен біздің мекен-жай кестемізде «баған мекені» немесе «3 бағанаға» нұсқауға болады. Әрине бұл дегеніміз әрбір бағанда өзіндік ат болу керек, әйтпесе қайталанып кетеді. Егер аттар өріс мазмұнын көрсетсе тиімді болады. Типтік кестелерде бағандардың атауларына қысқартулар қолданамыз, мысалы тапсырыс беруші атына cname, реттілік күніне odate. Сонымен қатар әрбір кестеге жеке сандық номер береміз, ол біріншілік кілт ретінде болады. Келесі бөлімде осы кестелерді және кілттерін түсіндіреді.
Типтік мәліметтер Базасын жобалау.
1, 2 және 3 кестелер реляционды мәліметтер базасын құрайды, олар минималды жеткілікті, оңай іздестіру үшін және жеткілікті толық негізгі мағлұматтарды иллюстрирлеу және SQL тәжірибесін қолдану.
Олар SQL әртүрлі ерекшеліктерін иллюстрирлеу үшін қолданылады.
Сіз әрбір кестенің бірінші бағанында әрбір жол үшін әртүрлі номер бар екенін байқаған боларсыз. Бұл кестелердің біріншілік кілттері. Бұл номерлерлердің кейбіреуі басқа кесте бағандарында көрсетілген. Мұнда еш қателік жоқ. Олар жолдар арасындағы байланысты көрсетеді.
1 кесте:
Salespeople – сатушылар
2 кесте:
Тапсырыс берушілер - customers
cnum
|
cname
|
city
|
rating
|
snum
|
2001
|
hoffman
|
London
|
100
|
1001
|
2002
|
giovanni
|
Rome
|
200
|
1003
|
2003
|
liu
|
SanJose
|
200
|
1002
|
2004
|
grass
|
berlin
|
300
|
1002
|
2006
|
clemens
|
London
|
100
|
1001
|
2008
|
cisneros
|
SanJose
|
300
|
1007
|
2007
|
pereira
|
Rome
|
100
|
1004
|
3 кесте:
Реттілік - orders
Мысалы Тапсырыс беруші кестесінде snum өрісінде қай сатушыға берілген тапсырыс беруші белгіленгені көрсетіледі. Сатушы кестесіндегі snum өріс номері осы сатушылар туралы ақпарат береді.
ЕСКЕРТУ: Мәтіндегі берілген үш кестенің аттары – Сатушылар, Тапсырыс берушілер және Реттілік, ары қарай да осылай аталады. Кесте кітабындағы басқа аттар ағылшын тілінде айтылады, оларды біздің базалық кестеден айыру үшін. Бірмәнділік мақсатта тапсырыс берушілер аттары, сатушылар, Жүйелік Каталогтар, сондай – ақ мәтіндегі өрістер латын тілінде беріледі.
Кестелер шынайы өмірдегі жағдайға ұқсас мысал сияқты берілген, SQL қолданғанда сатушылар, тапсырыс берушілер және тапсырыс беруші ретін бақылау үшін. Енді осы үш кесте мен олардың өрістернің мәнін қарастырайық.
1 кесте бағандары көрсетілген
ӨРІС МАЗМҰНЫ
--------- ----------------------------------------------
snum әрбір сатушыға белгіленген бірден бір номер
(«қызметкер номері»).
sname сатушы аты.
city сатушы орны (қала).
comm ондық формадағы сатушылардың комиссиондары
2 кестеде келесідей бағандар болады:
ӨРІС МАЗМҰНЫ
--------- ----------------------------------------------
snum әрбір сатушыға белгіленген бірден бір номер
(«қызметкер номері»).
sname сатушы аты.
city сатушы орны (қала).
rating нұсқаушы коды берілген тапсырыс берушінің басқаларынан жоғары бағалау деңгейі. Жоғарырақ номер жоғары бағалауға нұсқайды (рейтинг).
snum осы тапсырыс берушіге белгіленген сатушы номері
( Сатушылар кестесі)
3 кестеде келесідей бағандар бар:
ӨРІС МАЗМҰНЫ
--------- ---------------------------------------------------
onum әрбір алынған затқа берілетін бірден бір номер
amt алынатын зат сомма мәні
odate сатып алынған зат күні.
cnum iстеушi алуды тапсырыс берушiнiң нөмiрi
(тапсырыс берушiлердiң кестелерiнен)
snum сатып алынатын зат сатушы нөмiрi
(сатушы кестелерiнен).
ІІ MySql жұмыс
phpMyAdmin көмегімен Мліметтер Базасын құру
Егер мәліметтер базасы әлі құрылмаса, онда phpMyAdmin бағдарламасының (1сурет) бастапқы бетінде текстік өріске болашақ мәліметтер базасының атын беріп learn және Құру (Create) бтырмасын басыңыз.
1 сурет
Кестелер
SQL барлық мәліметтер кесте деп аталатын нысандарда сақталады. Кестелерде нысандар, жағдайлар, процестер туралы мағлұмат қосындысын көрсетеді. Ешқандай басқа нысандар мәлімет сақтамайды, бірақ олар кестедегі мәліметке жүгіне алады. SQL кестелерінің құрылымы басқа да СУБД кестелеріндей:
-
Жолдар; әрбір жолда нақты нысан экземплярының атрибуттар қосындысы болады;
-
Бағандар; әрбір баған атрибут немесе атрибуттар қосындысы түрінде болады. Жолдан кейін минималды кесте элементі болып табылады. Әрбір бағанның аты, мәліметтер типі және мөлшері бар.
Пайда болған терезеде (2 сурет) кесте атын, өріс санын беріп, «Пошел» батырмасын басу керек.
2 сурет
Ары қарай пайда болған терезеге (3 сурет) кесте құрылымын сипаттау керек, яғни баған аттары – Өріс бағанында
Мәліметтер типін Тип бағанында
ұзындығын
Атрибуттарын
Мәліметпен толтырылмаған Null өрісінің болу мүмкіндігі
Үндестік бойынша мәні
Әрбір кестеде бірден бір индекс болу керек, кестені модификациялаудан кейін ақпаратты жаңарту мүмкін болу үшін.
Кестесіне түсіндіру қосуға болады. батырмасын басамыз. Оң жақ фреймда құрылған кесте пайда болады.
3сурет
Кесте құрылымын көруге немесе өрістерді өзгерту үшін таңдап, батырмасын өріс сипаттамасын өзгерту үшін немесе жою үшін басамыз (4 сурет).
4 сурет
Кестені мәліметтермен толтыру үшін таңдау керек, 5 суретке ұқсас терезе пайда болады. Кейбір өрістерде мәндер көрсетілген- бұл үндестік бойынша берілген мәндер. Керек болса оларды өзгертуге болады. Алынған кестені көру үшін таңдау керек.
5 сурет
Мәліметтер типі
MySql ортасында қолданылатын барлық мәліметтер типі сипатталған.
Сандық мәліметтер типі
MySQL ANSI/ISO стндарты бойынша SQL92 тілінің барлық сандық мәліметтер типін қамтиды. Оларда нақты сандық мәліметтер типтері (NUMERIC, DECIMAL, INTEGER и SMALLINT) және жақын сандық мәліметтер типтері(FLOAT, REAL и DOUBLE PRECISION) бар. INT кілттік сөзі INTEGER үшін синоним, ал DEC кілттік сөзі DECIMAL синонимі.
NUMERIC және DECIMAL мәліметтер типі MySQL биреу болып жаслынған. Олар жоғары дәлдікті сақтайтын өлшемдер үшін қолднылады, мысалы ақша мәліметтері. Мәліметтердің керек дәлдігі және масштабы осы типтердің бір мәліметтер бағанын көрсеткен кезде беруге болады (әдетте беріледі), мыслы:
salary DECIMAL(5,2)
Бұл мысалда – 5 (дәлдік) берілген өлшем сақталатын ондық белгілердің жалпы санын көрсетеді, ал 2 (масштаб) саны үтірден кейінгі ондық белгі санын береді. Сәйкесінше бұл жағдайда salary бағанында сақталатын өлшем интервалы -99,99 бен 99,99 аралығыныда (шын мәнінде MySQL бағаны мәліметтері үшін 999,99 сақтау мүмкін, өйткені оң сандар үшін белгі сақтап керек емес).
DECIMAL және NUMERIC тип өлшемдері жол ретінде сақталады. Сонымен қтар сақталатын өлшем әрбір разряды үшін бір символдық жол қолданылады, ондық белгі үшін (егер масштаб > 0) және '-' белгісі үшін (теріс сандар үшін). Егер масштаб параметрі нольге тең болса, онда DECIMAL және NUMERIC өлшемдерінде ондық белгі және бөлшек бөлік болмайды.
DECIMAL және NUMERIC максималды интервалы DOUBLE үшін сияқты қалады, бірақ нағыз интервал DECIMAL немесе NUMERIC мәліметтер типі үшін нақтылық параметрі немесе масштаб таңдауда шектелуі мүмкін. Егер нақты бағанға ондық белгіден кейін көп разряд саны бар мән берілсе, онда берілген мән масштабпен рұсат етілген мәнге дейін домалақталынады. Егер DECIMAL немесе NUMERIC типті бағандарға интервал шегінен шығатын мән берілсе, онда MySQL берілген өлшемді берілген интервал шектік нүктесіне сәйкес мәнде сақтайды.
Тапсырма
-
Learn МҚ құрыңыз. Мәліметтер типін дұрыс таңдап Learn МҚ-нда Selespeople, Orders және Customers кестелерін құрыңыз. Оларды Мәліметпен толтырыңыз.
-
Тапсырыс беруші кестесінің қандай өрісі біріншілік кілт болып табылады?
-
Тапсырыс беруші кестесінің төртінші бағаны не болады?
-
Жолақша және баған басқаша қалай аталады?
-
Кестенің бірінші бес жолын көру үшін неліктен сұраныс жасау міндет емес?
-
Жасалған жұмыс бойынша отчет дайындау. Отчет құрамы:
-
Жұмыстың мақсаты
-
Түсіндірмесі бар SQL-сұранысының тексті
-
Сұраныстардың нәтижелері
-
Сұрақтарға жауап
-
Қорытынды
№3 Практикалық жұмыс
Тақырыбы: «Кестеден ақпаратты алу үшін реляционды операторларды қоданып SQL-сұраныстарды жасау».
Жұмыс мақсаты: екінші лабораториялық жұмысқа дайын тұрған мәліметтер қорын , булевой және реляциялық операторларды кестелерге мәлімет іріктеуге қатысты сұрау салу.
1. SQL кіріспе
Structured Query Language реляциялық ДҚБЖдардың мәлiметтерiнiң басқаруы үшiн қолданылатын процедуралық емес тiл болады.
„процедура емес„ термин осы тiлде мәлiметтерді жасауы керектігін сипаттауға болатынын білдіреді, бiрақ қалай тап солой жасауға нұсқау беруге болмайды. Басқа сөзбен айтқанда, тiл бұл алгоритм конструкцияларын болмайды, шартты өту, сондай таңбалар циклда, операторлар болмайды..
IBM жобасын зерттеу нәтижесінде SQL тiлі 70-шi жылдары реляциялық мәлiметтердiң манипуляцияның тiлiнiң жасауы болатын. Ол бастапқы (Structured English Query Language ) SEQUEL деп аталды, содан соң - SEQUEL/2, содан соң - жай ғана SQL. SQL ресми түрде стандарты (American National Standards Institute - стандартизацияның Ұлттық институты, АҚШ) ANSIда 1986 жылы жариялаған. Осы стандарт 1989 және 1992 жылдары кеңiтілген сондықтан SQLның соңғы стандарты SQL92дiң атауын таныс. Қазіргі кезде объективтiк – орентиралық кеңейтілуі бар, SQL3 тіліне жұмыстар жүргізіліп жатыр. кейбiр -хабар кеңейту болатын стандартының үстiнде жұмысты дәл қазiр апарады.
ANSIдің стандарты үш деңгейі бар: бастапқы, аралық және толық. Серверлiк ДҚБЖдардың көп өндiрушiлерi, IBM, Informix, Microsoft, Oracle және Sybase, өздерін реализациялық тіжірибелерін қолданып, берілген ДҚБЖ үшін ANSI стандартын негіздеп және кейбiр кеңейтілулер негiзделген меншiктi iске асырулары ерекше қолданады.
SQL қалай жұмыс істейді
SQL қалай жұмыс iстейтiнiн қарап шығайық. ДҚБЖ көмегiмен қандай болмасын басқарылатын деректер қорында болатынын болжаймыз. Олардың iшiнен мәлiметтердiң шығарулары үшiн SQL тiлде сипатталған сұрау салуды қолданылады. ДҚБЖ бұл сұрау салуды қарастырады, сұралатын мәлiметтер алады және оларды қайтарады. Бұл процесс схемалық 1-шi сурет көрсетiлген.
Сур 1.
SQL мәлiметтер алу ғана емес, мәлiметтер құрылымын анықтауға, мәлiметтерді толықсытып алып тастауға , мәлiметтерге қол жеткiзудi шек қойып немесе iлiгiлсiп, сiлтеме бүтiндiктi қолдау да мүмкiндiк бередi.
SQL өздігінен ДҚБЖ да бола алмайды, жеке өнiм де бола алмайды. Бұл оның ажырамас бөлiгiмен нақтылы мағына болатын ДҚБЖбен өзара әрекеттесу үшiн қолданылатын тiл.
SQL операторлары
SQL әр түрлi әсерлердiДҚБЖда орындауы үшiн шамамен 40 операторлар болады. Бұл операторлардың дәрежелерiнiң қысқаша сипаттамасын төменде тура келтірілген.
Data Definition Language (DDL)
Data Definition Language құрылуға мүмкiндiк беретiн операторларда болады, өзгерту және деректер қоры және объекттер (кесте, ұсыныс) операторларын құрайды.
Кесте 1
Оператор
|
Сипаттама
|
CREATE TABLE
|
Мәліметтер базасына жаңа кесте қосу үшін қолданады.
|
DROP TABLE
|
Мәліметтер базасынан кестені өшіру үшін қолданады.
|
ALTER TABLE
|
Кестенің берілген структурасын өзгерту үшін қолданады.
|
CREATE VIEW
|
Мәліметтер базасы туралы жаңа көрініс қосу үшін қолданады.
|
DROP VIEW
|
Мәліметтер базасын жою үшін қолданады.
|
CREATE INDEX
|
Берілген жазыққа жаңа индекс құру үшін қолданады.
|
DROP INDEX
|
Берілген индексті жою үшін қолданады.
|
Data Manipulation Language (DML)
Data Manipulation Language таңдауға болатын, қосуға , жоюға және мәліметтерді модифициалау оператоы құрайды. DML операторлары 2 кестеде көрсетілген.
Кесте 2
Оператор
|
Сипаттама
|
SELECT
|
Мәлiметтердiң таңдауы үшiн қолданылады
|
INSERT
|
Кестеге жолдардың қосу үшiн қолданылады
|
DELETE
|
Кестеден жолдардың алып тастау үшiн қолданылады
|
UPDATE
|
Мәлiметтердi өзгерту үшiн қолданылады
|
SELECT оператор кейде жеке дәрежелер жатқызады Data деп аталатын(DQL ) Query Language.
Transaction Control Language (TCL)
Transaction Control Language операторлар DMLның операторларының топ iстелiнген өзгерiстердiң басқаруы үшiн қолданылады. TCL операторлар кестеге 3 көрсетілген.
Кесте 3
Оператор
|
Сипаттама
|
COMMIT
|
Деректер қорына транзакцияның аяқтауы және өзгерiстердiң сақтауы үшiн қолданылады
|
ROLLBACK
|
Деректер қорына транзакцияның шегiнуi және өзгерiстердiң жоюы үшiн қолданылады
|
SET TRANSACTION
|
Ағымдағы транзакциядағы мәлiметке қол жеткiзудiң параметрлерiнiң қоюы үшiн қолданылады
|
Data Control Language (DCL)
Data Control Language (DCL) ның операторларының істелінген өзгерістерінің басқаруы үшін қолданады. DCL операторлар кестеге 4 көрсетілген.
Кесте 4
Оператор
|
Сипаттама
|
GRANT
|
Артықшылықтың иемденуi үшiн қолданылады
|
REVOKE
|
Артықшылықтың жоюы үшiн қолданылады
|
Cursor Control Language (CCL)
Cursor Control Language операторлар тінтуірді анықтау үшiн қолданылады және SQLды операторлар , ұсыныстарды орындау үшін дайындау керек. CCL операторлар кестеге 5 көрсетілген.
Кесте 5
Оператор
|
Сипаттама
|
DECLARE CURSOR
|
Сұрау салу үшiн мегзегiштiң анықтауы үшiн қолданылады
|
EXPLAIN
|
Сұрау салуды жоспардың сипаттамасы үшiн қолданылады. Бұл оператор Microsoft SQL Server үшiн SQLның кеңейтуi болады7.0. Ол басқа ДҚБЖдарда орындалуға мiндеттi емес. Мысалы, Oracleның жағдайында EXPLAIN PLANнiң операторы қолдану керек
|
OPEN CURSOR
|
Сұрау салудың нәтижелерi мегзегiштiң ашуы үшiн алу
кезiнде қолданылады
|
FETCH
|
Сұрау салудың нәтижелерiнен жолдың алуы үшiн қолданылады
|
CLOSE CURSOR
|
Мегзегiштiң жабуы үшiн қолданылады
|
PREPARE
|
Орындау үшiн SQLның операторының әзiрлеуi үшiн қолданылады
|
EXECUTE
|
SQLның операторының орындауы үшiн қолданылады
|
DESCRIBE
|
Дайын тұрған сұрау салуды сипаттау үшiн қолданылады
|
Барлық SQL операторларының түрлері 2-ші суретте берілген.
2- сур
SQLның әрбiр операторы кілттік сөзден тұратын етістіктерден басталады SELECT, DELETE.., DELETE… Операторда мәлiметтердiң үстiнде операциялар өндiрiп алатын туралы анықталатын болатын ұсыныстар болады. Әрбiр ұсыныс кілттік сөзден басталады, мысалы FROM, WHERE оның түрi - ұсыныстардың қатары кестелер немесе өрiстердiң аттарында болады, кейбiр қосымша кілттік сөздерден бола алады, тұрақты немесе өрнектен тәуелді болады..
Достарыңызбен бөлісу: |