Мәліметтер базасын анықтау
Автосалонның деректер қорын жобалау
КІРІСПЕ
1. Мәліметтер базасын анықтау
1.1 MySQL-де индекстерді пайдалану
1.2 MySQL деректерінің түрлері
1.3 Кестелерді құру
2
2.1
2.2
2.3
3.
3.1
3.2
3.3
ҚОРЫТЫНДЫ
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
КІРІСПЕ
Дипломдық жұмыстың идеясы әртүрлі қалаларда орналасқан, бірнеше филиалы бар компанияға деректер қорын құру болып табылады. Бұл автокөлік сату компаниясы. Әр тармаққа мәліметтер базасынан деректерді қосуға, жаңартуға және алуға мүмкіндік береді. Бұл мәліметтер базасы реляциялық модельге негізделеді. Қазіргі кезде көптеген салаларда реляциялық модель кеңінен қолданылады. Компьютерленген мәліметтер базасының компания үшін артықшылықтары әр түрлі. Ескі карта немесе басқа файлдық жүйе арқылы іздегеннен гөрі, компьютердегі дерекқордан ақпаратты алу жылдамырақ. Сонымен қатар, жаңа деректерді қосу тезірек жүреді, бұл оны үнемді шешім етеді. Компьютерлік мәліметтер базасы да сенімді. Қосарланған жазбалар сияқты қателіктер жіберу ықтималдығы аз. Бұл қауіпсіз, өйткені оны тек рұқсат етілген және дұрыс құпия сөзі бар адамдар ғана пайдалана алады. Егер сізде қажетті бағдарламалар болса, мәліметтер базасы кез-келген жерден, компанияның кез-келген филиалынан сізге қол жетімді болады. Microsoft Access, Oracle және visual FoxPro-мәліметтер базасын құру үшін қолданылатын негізгі реляциялық өнімдер.
Бұл дипломдық жұмыстың мақсаты: басқа сақтау жүйелеріне қарағанда дерекқордан қажетті ақпаратты табу қаншалықты жылдам және оңай екенін көрсету. Деректер базасын қолдана отырып, компанияның орташа сатылымын қалай есептей аламыз? Қызметкерді оның аты басталатын немесе аяқталатын әріппен қалай табуға болады? Қандай келісімшарттардың құны белгілі бір мөлшерден асатынын қалай білуге болады? Бұл сұрақтар кейінірек MySQL тілі арқылы шешіледі.
SQL (Structured Query Language) - бұл адамдар мәліметтер базасын құруға, мәліметтер базасына жаңа деректер қосуға, деректерді енгізуге, жаңартуға және жоюға мүмкіндік беретін арнайы жасалған салалық стандарт тілі. SQL бастапқыда реляциялық модельді ұстанатын мәліметтер базасындағы мәліметтермен жұмыс істеуге арналған. SQL-деректерді сұрауға және өзгертуге, сондай-ақ деректерді басқаруға арналған бағдарламалау тілі.
Дерекқорды басқару жүйесі сонымен қатар тілдік командаларды енгізуге және орындауға мүмкіндік беретін пәрмен жолы интерфейсін пайдаланатын басқару және басқару функцияларын қамтиды. Мәліметтер базасы-бұл ақпаратты сақтау үшін құрылған құрылым
1 Мәліметтер базасын анықтау
Деректер базасы-бұл реляциялық деректер моделіне сәйкес басқаруға болатын кестелер жиынтығы. Бұл біріктірілген жазбалар жинағы. Жазба-бұл клиенттің аты, мекен-жайы және телефон нөмірі сияқты бірнеше атрибуттары бар кез-келген тұжырымдамалық объектінің көрінісі.
Деректер базасы деректерден де, метадеректерден де тұрады. Метадеректер-бұл мәліметтер базасындағы мәліметтер құрылымын сипаттайтын мәліметтер. Олар метадеректерді кестелерді, бағандарды, индекс шектеулерін және дерекқорды құрайтын басқа элементтерді сипаттайтын деректер сөздігі деп аталатын аймақта сақтайды. [1] мәліметтер базасы қарапайым бірнеше жазбалар жинағынан миллиондаған жазбаларға дейінгі барлық көлемде болады.
Деректер базасы-бұл реляциялық деректер моделіне сәйкес басқаруға болатын кестелер жиынтығы. Бұл біріктірілген жазбалар жинағы. Жазба-бұл клиенттің аты, мекен-жайы және телефон нөмірі сияқты бірнеше атрибуттары бар кейбір тұжырымдамалық объектінің көрінісі.
Деректер базасы деректерден де, метадеректерден де тұрады. Метадеректер-бұл мәліметтер базасындағы мәліметтер құрылымын сипаттайтын мәліметтер. Олар метадеректерді кестелерді, бағандарды, индекс шектеулерін және дерекқорды құрайтын басқа элементтерді сипаттайтын деректер сөздігі деп аталатын аймақта сақтайды. Дерекқорлар бірнеше жазбалардың қарапайым жиынтығынан миллиондаған жазбаларға дейін барлық өлшемдерде келеді.
Деректер базасы-бұл ұйым, автомобиль жиналысы немесе барлық Жоғары лигадағы бейсбол клубтарының өнімділік статистикасы сияқты физикалық немесе тұжырымдамалық құрылымның көрінісі. Ұсынудың дәлдігі мәліметтер базасының дизайнының егжей-тегжейлі деңгейіне байланысты. Дерекқорды әзірлеуге жұмсайтын күш-жігер мөлшері дерекқордан алғыңыз келетін ақпарат түріне байланысты болуы керек. Деректер базасының жоспарын құру және сізге қажет мәліметтер базасының көлемін бағалау әрқашан жақсы. Жоспар Бір қағаз сызбасынан бастап, дерекқормен жасалуы мүмкін барлық мүмкін нәрселерді сипаттайтын жүз беттік құжатқа дейін болуы мүмкін, әдетте жоспар үлкенірек болған кезде күрделі дерекқор қажет. Сізге қазір қанша бөлік қажет екенін және болашақта қанша қажет болуы мүмкін екенін шешіңіз, содан кейін дизайныңызда дәл осындай егжей-тегжейлі деңгей беріңіз. Деректер базасы көптеген қолданушылары бар қосымшалар үшін өте қолайлы, өйткені барлық пайдаланушылар арасындағы үйлестіру қарапайым.
Техникалық қызмет көрсету және қауіпсіздік мәселелері де ештеңені жобаламас бұрын дұрыс ойластырылуы керек. Деректер базасы мүмкіндігінше аз болуы керек және пайдалы емес ақпараттан аулақ болу керек. Кейінірек дерекқорға үлкен өзгерістер енгізу оңай болмауы мүмкін. Қалыпқа келтіру ережелері әрқашан сақталуы керек және әртүрлі қолданбалардың өнімділікке қойылатын талаптары әртүрлі болуы мүмкін. Деректер базасы да шамадан тыс қалыпқа келтірілуі мүмкін, яғни қалыпқа келтірмес бұрын оның өнімділікке әсер етуі мүмкін күрделі қатынастар желісін құрайтын көптеген шағын кестелері бар және мүмкіндігінше аулақ болу керек. Өнімділік сонымен қатар пайдаланушылар санына байланысты, сондықтан болашақта сіздің дерекқорыңыздың пайдаланушылар санына қандай өзгерістер болуы мүмкін және оның салдары қандай болуы мүмкін екендігі туралы ойлануыңыз керек. Егер сіз енгізілген мәндерді өрістермен дұрыс шектемесеңіз, деректердің тұтастығына қауіп төнеді, бұл деректердің сапасын төмендетеді.
1.1 MySQL-де индекстерді пайдалану
Индекстер көрсетілген баған мәні бар жолдарды жылдам іздеу үшін қолданылады. Индекссіз кестені оқу тиісті жолдар табылғанға дейін бірінші жазбадан бастап бүкіл кесте бойынша жүзеге асырылады. Кесте неғұрлым үлкен болса, үстеме шығындар соғұрлым көп болады. Егер кестеде қарастырылып отырған бағандар бойынша индекс болса, онда MySQL барлық деректерді көрмей-ақ деректер файлының ортасында іздеу орнын тез анықтай алады. 1000 жолдан тұратын кесте үшін бұл барлық жазбалардың дәйекті санымен салыстырғанда кем дегенде 100 есе жылдам болады. Алайда, барлық 1000 жолға қол жеткізу қажет болған жағдайда, дәйекті оқу тезірек болады, өйткені дискіні іздеу операциялары қажет емес.
Барлық MySQL индекстері (PRIMARY, UNIQUE, және Индекс) B ағаштары ретінде сақталады. Жолдар префикстердегі бос орындарды және соңғы бос орындарды жою арқылы автоматты түрде қысылады (see section 6.5.7 create INDEX операторының синтаксисі).
Индекстер мыналар үшін қолданылады:
* Қай жерде өрнекке сәйкес келетін жолдарды жылдам табыңыз.
* Бірлестіктерді орындау кезінде басқа кестелерден жолдарды шығарыңыз.
* Берілген индекстелген баған үшін MAX() немесе MIN() мәндерін табыңыз. Бұл операцияны preprocessor оңтайландырады, ол сіз қай жерде key_part_4 = тұрақты, композиттік кілттің барлық бөліктерінде N. бұл жағдайда MySQL бір кілт көрінісін жасайды және өрнекті MIN () тұрақтысымен ауыстырады. Егер барлық өрнектер тұрақты мәнмен ауыстырылса, сұрау нәтижені бірден қайтарады: select MIN (key_part2), MAX (key_part2) from table_name where key_part1=10
*
* Кестеде сұрыптау немесе топтастыру, егер бұл операциялар сол жақта қолданылатын кілттің префиксінде жасалса (мысалы,ORDER BY key_part_1, KEY_PART_2). Егер кілттің барлық бөліктерінен кейін DESC болса, онда бұл кілт кері тәртіпте оқылады (see section 5.2.7 MySQL BDER by оңтайландырады).
* Кейбір жағдайларда сұранысты деректер файлына қол жеткізбестен шамаларды алу үшін оңтайландыруға болады. Егер кейбір кестеде қолданылатын барлық бағандар сандық болса және кейбір кілт үшін сол жақтағы префиксті құраса, онда үлкен жылдамдықты қамтамасыз ету үшін ізделген шамаларды тікелей индекс ағашынан алуға болады: select key_part3 from table_name WHERE key_part1=1
*
Келесі select операторы шақырылды делік:
mysql SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;
Егер col1 және col2 бағандарында көп бағанды индекс болса, онда тиісті жолдар тікелей таңдалуы мүмкін. Col1 және col2 бағандарында бөлек индекстер болған жағдайда, оптимизатор қай индекстің аз жол табатынын анықтау арқылы ең шектеулі индексті табуға тырысады және осы жолдарды таңдау үшін берілген индексті пайдаланады.
Егер бұл кестеде көп бағанды индекс болса, онда сол индекстің кез-келген префиксін оңтайландырушы жолдарды табу үшін қолдана алады. Мысалы, егер үш баған бойынша индекс болса (col1,col2,col3), онда индекстелген іздеу мүмкіндігі бар (col1), (col1,col2) және (col1,col2,col3).
Егер бағандар сол индекстің сол жақтағы префиксін құрмаса, MySQL-де ішінара индексті қолдануға болмайды. Төменде көрсетілген select командалары бар делік:
mysql SELECT * FROM tbl_name WHERE col1=val1;
mysql SELECT * FROM tbl_name WHERE col2=val2;
mysql SELECT * FROM tbl_name WHERE col2=val2 AND col3=val3;
Егер индекс (col1,col2,col3) бойынша болса, онда жоғарыда көрсетілген бірінші сұрау ғана берілген индексті пайдаланады. Екінші және үшінші сұрауларға индекстелген бағандар кіреді,бірақ (col2) және (col2,col3) префикстердің сол жағында емес (col1,col2, col3).
MySQL индекстерді like салыстыру үшін де қолданады, егер LIKE өрнегіндегі аргумент шаблон таңбасынан басталмайтын тұрақты жол болса. Мысалы, келесі таңдау пәрмендері индекстерді пайдаланады:
mysql SELECT * FROM tbl_name WHERE key_col LIKE "Patrick%";
mysql SELECT * FROM tbl_name WHERE key_col LIKE "Pat%_ck%";
Бірінші командада тек "Patrick" = Key_col "Patricl" бар Жолдар, ал екіншісінде тек "Pat" = key_col "Pau"бар жолдар қарастырылады.
Келесі таңдау пәрмендері индекстерді пайдаланбайды:
mysql SELECT * FROM tbl_name WHERE key_col LIKE "%Patrick%";
mysql SELECT * FROM tbl_name WHERE key_col LIKE other_col;
Бірінші командада LIKE шамасы шаблон белгісінен басталады. Екінші командада LIKE шамасы тұрақты емес.
MySQL 4.0 нұсқасында LIKE өрнегінде басқа оңтайландыру жасалады. Егер өрнек қолданылса ... "%String% " сияқты және жол ұзындығы (string) 3 таңбадан үлкен, MySQL жолға шаблонды инициализациялау үшін Бойер-Мур Турбо алгоритмін қолданады, содан кейін бұл үлгіні жылдамырақ іздеу үшін пайдаланады.
Column_name is NULL көмегімен іздеу кезінде, егер column_name индекс болса, индекстер қолданылады.
MySQL әдетте жолдардың ең аз санын табатын индексті пайдаланады. Индекс келесі операторлармен салыстырылатын бағандар үшін қолданылады: =, , =, , =, between және something%сияқты шаблондық таңбасы жоқ префиксі бар сияқты.
Егер индекс WHERE өрнегіндегі барлық and деңгейлерін қамтымаса, онда ол осы сұранысты оңтайландыру үшін қолданылмайды. Басқаша айтқанда: индексті пайдалану үшін осы индекстің префиксі әр and тобына кіруі керек.
Келесі өрнектер индекстерді қолданады:
... WHERE index_part1=1 AND index_part2=2 AND other_column=3
... Қайда индекс=1 OR A=10 және Индекс=2 * индекс = 1 немесе индекс = 2 *
... WHERE index_part1='hello' AND index_part_3=5
* "index_part1='hello'"ретінде оңтайландырылған *
... WHERE index1=1 and index2=2 or index1=3 and index3=3;
* Индексті index1 арқылы пайдалануға болады, бірақ index2 немесе index 3 емес *
Келесі өрнектер индекстерді қолданбайды:
... WHERE index_part2=1 AND index_part3=2
* index_part_1 пайдаланылмайды *
... WHERE index=1 OR A=10
* Индекс AND екі бөлігінде де қолданылмайды *
... WHERE index_part1=1 OR index_part2=10
* Барлық жолдарды қамтитын индекс жоқ*
Кейбір жағдайларда MySQL мүмкін болса да индексті пайдаланбайды. Мұндай жағдайлардың бірнеше мысалдары төменде келтірілген:
* Егер индексті пайдалану MySQL-ден берілген кестедегі жолдардың 30% - дан астамын өтуді талап етсе (мұндай жағдайларда кестені қарау әлдеқайда жылдам болады, өйткені аз іздеу әрекеттерін орындау қажет болады). Егер мұндай сұрау жолдардың тек шығарылатын бөлігіне қатысты лимитті қолданса, онда MySQL индексті кез-келген жағдайда қолданады, өйткені нәтижені қайтару үшін жолдардың аз санын тезірек табуға болады.
* Егер индекстің өзгеру диапазонында ORDER by өрнектерін қолданған кезде NULL шамалары болуы мүмкін ... DESC.
1.2 MySQL деректер түрлері
MySQL-де деректердің үш негізгі түрі бар: мәтін, сан және күн.
Мәтіндік деректер түрлері:
CHAR(size)
Белгіленген ұзындықтағы жолды қамтиды (әріптер, сандар және арнайы таңбалар болуы мүмкін). Бекітілген өлшем жақшада көрсетіледі. 255 таңбаға дейін сақтай алады
VARCHAR(size)
Айнымалы ұзындықтағы жолды қамтиды (әріптер, сандар және арнайы таңбалар болуы мүмкін). Максималды мөлшері жақшада көрсетіледі. 255 таңбаға дейін сақтай алады. Ескерту: егер 255-тен үлкен мән қойылса, ол мәтін түріне ауыстырылады
TINYTEXT
Максималды ұзындығы 255 таңбадан тұратын жолды қамтиды
TEXT
Максималды ұзындығы 65 535 таңбадан тұратын жолды қамтиды
BLOB
BLOB нысандары үшін (екілік үлкен нысандар). 65 535 байт деректерді сақтайды
MEDIUMTEXT
Максималды ұзындығы 16 777 215 таңбадан тұратын жолды қамтиды
MEDIUMBLOB
BLOB нысандары үшін (екілік үлкен нысандар). 16 777 215 байт деректерді сақтайды
LONGTEXT
Максималды ұзындығы 4 294 967 295 таңбадан тұратын жолды қамтиды
LONGBLOB
BLOB нысандары үшін (екілік үлкен нысандар). 4 294 967 295 байт деректерді сақтайды
ENUM(x,y,z,etc.)
Мүмкін мәндердің тізімін енгізуге мүмкіндік береді. Enum тізімінде 65535 мәнге дейін шығаруға болады. Егер кірістірілген мән тізімде болмаса, бос мән енгізіледі.
Ескерту: мәндер оларды енгізу ретімен сұрыпталады.
Сіз осы форматтағы мүмкін мәндерді енгізесіз: Enum ('X', 'Y', 'Z')
SET
Enum-ге ұқсас, тек жиынтықта 64-ке дейін тізім элементтері болуы мүмкін және бірнеше таңдауды сақтай алады
Сандар деректерінің түрлері:
TINYINT(size)
-128-ден 127-ге дейін қалыпты. 0-ден 255-ке дейін қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
SMALLINT(size)
-32768 дейін 32767 қалыпты. 0-ден 65535-ке дейін қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
MEDIUMINT(size)
-8388608 8388607 дейін қалыпты. 0 дейін 16777215 қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
INT(size)
-2147483648 e 2147483647 қалыпты. 0 дейін 4294967295 қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
BIGINT(size)
- 9223372036854775808 дейін 9223372036854775807 қалыпты. 0 18446744073709551615 қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
FLOAT(size,d)
Шағын өзгермелі нүкте саны. Сандардың максималды саны size параметрінде көрсетілуі мүмкін. Ондық үтірдің оң жағындағы сандардың максималды саны d параметрінде көрсетілген
DOUBLE(size,d)
Үлкен өзгермелі нүкте. Сандардың максималды саны size параметрінде көрсетілуі мүмкін. Ондық үтірдің оң жағындағы сандардың максималды саны d параметрінде көрсетілген
DECIMAL(size,d)
Double түрінің мәні жол ретінде сақталады және бекітілген ондық нүктеге мүмкіндік береді. Сандардың максималды саны size параметрінде көрсетілуі мүмкін. Ондық үтірдің оң жағындағы сандардың максималды саны d параметрінде көрсетілген
*бүтін түрлерде қол қойылмаған деп аталатын қосымша параметр бар. Әдетте, бүтін сан теріс мәннен оң мәнге ауысады. Қол қойылмаған атрибутты қосу диапазонды жоғары қарай жылжытады, сондықтан ол теріс саннан емес, нөлден басталады.
Деректер күндерінің түрлері:
DATE()
Күн. Пішім: ЖЖЖЖ-мм-DD
Ескерту: '1000-01-01' - ден '9999-12-31' - ге дейінгі көрсетілетін диапазон
DATETIME()
* күн мен уақыттың тіркесімі. Пішім: ЖЖЖЖ-мм-DD HH: MI: SS
Ескерту: '1000-01-01 00:00:00' - ден ' 9999-12-31 23:59: 59 'дейінгі диапазоны
TIMESTAMP()
* Уақыт белгісі. Timestamp мәндері Unix уақытынан бастап секундтар саны ретінде сақталады ('1970-01-01 00:00:00' UTC). Пішім: ЖЖЖЖ-мм-DD HH: MI: SS
Ескерту: '1970-01-01 00:00:01' UTC-ден '2038-01-09 03:14: 07' UTC дейін көрсетілетін диапазон
TIME()
Уақыт. Пішім: HH: MI: SS
Ескерту: '-838:59:59' - ден '838:59: 59' - ге дейін қолдау көрсетілетін диапазон
YEAR()
Жыл екі немесе төрт саннан тұратын форматта.
Ескерту: төрт сан форматындағы рұқсат етілген мәндер: 1901-ден 2155-ке дейін. Екі цифрмен форматтағы рұқсат етілген мәндер: 70 - тен 69-ға дейін, 1970 жылдан 2069 ... жалғасы
КІРІСПЕ
1. Мәліметтер базасын анықтау
1.1 MySQL-де индекстерді пайдалану
1.2 MySQL деректерінің түрлері
1.3 Кестелерді құру
2
2.1
2.2
2.3
3.
3.1
3.2
3.3
ҚОРЫТЫНДЫ
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
КІРІСПЕ
Дипломдық жұмыстың идеясы әртүрлі қалаларда орналасқан, бірнеше филиалы бар компанияға деректер қорын құру болып табылады. Бұл автокөлік сату компаниясы. Әр тармаққа мәліметтер базасынан деректерді қосуға, жаңартуға және алуға мүмкіндік береді. Бұл мәліметтер базасы реляциялық модельге негізделеді. Қазіргі кезде көптеген салаларда реляциялық модель кеңінен қолданылады. Компьютерленген мәліметтер базасының компания үшін артықшылықтары әр түрлі. Ескі карта немесе басқа файлдық жүйе арқылы іздегеннен гөрі, компьютердегі дерекқордан ақпаратты алу жылдамырақ. Сонымен қатар, жаңа деректерді қосу тезірек жүреді, бұл оны үнемді шешім етеді. Компьютерлік мәліметтер базасы да сенімді. Қосарланған жазбалар сияқты қателіктер жіберу ықтималдығы аз. Бұл қауіпсіз, өйткені оны тек рұқсат етілген және дұрыс құпия сөзі бар адамдар ғана пайдалана алады. Егер сізде қажетті бағдарламалар болса, мәліметтер базасы кез-келген жерден, компанияның кез-келген филиалынан сізге қол жетімді болады. Microsoft Access, Oracle және visual FoxPro-мәліметтер базасын құру үшін қолданылатын негізгі реляциялық өнімдер.
Бұл дипломдық жұмыстың мақсаты: басқа сақтау жүйелеріне қарағанда дерекқордан қажетті ақпаратты табу қаншалықты жылдам және оңай екенін көрсету. Деректер базасын қолдана отырып, компанияның орташа сатылымын қалай есептей аламыз? Қызметкерді оның аты басталатын немесе аяқталатын әріппен қалай табуға болады? Қандай келісімшарттардың құны белгілі бір мөлшерден асатынын қалай білуге болады? Бұл сұрақтар кейінірек MySQL тілі арқылы шешіледі.
SQL (Structured Query Language) - бұл адамдар мәліметтер базасын құруға, мәліметтер базасына жаңа деректер қосуға, деректерді енгізуге, жаңартуға және жоюға мүмкіндік беретін арнайы жасалған салалық стандарт тілі. SQL бастапқыда реляциялық модельді ұстанатын мәліметтер базасындағы мәліметтермен жұмыс істеуге арналған. SQL-деректерді сұрауға және өзгертуге, сондай-ақ деректерді басқаруға арналған бағдарламалау тілі.
Дерекқорды басқару жүйесі сонымен қатар тілдік командаларды енгізуге және орындауға мүмкіндік беретін пәрмен жолы интерфейсін пайдаланатын басқару және басқару функцияларын қамтиды. Мәліметтер базасы-бұл ақпаратты сақтау үшін құрылған құрылым
1 Мәліметтер базасын анықтау
Деректер базасы-бұл реляциялық деректер моделіне сәйкес басқаруға болатын кестелер жиынтығы. Бұл біріктірілген жазбалар жинағы. Жазба-бұл клиенттің аты, мекен-жайы және телефон нөмірі сияқты бірнеше атрибуттары бар кез-келген тұжырымдамалық объектінің көрінісі.
Деректер базасы деректерден де, метадеректерден де тұрады. Метадеректер-бұл мәліметтер базасындағы мәліметтер құрылымын сипаттайтын мәліметтер. Олар метадеректерді кестелерді, бағандарды, индекс шектеулерін және дерекқорды құрайтын басқа элементтерді сипаттайтын деректер сөздігі деп аталатын аймақта сақтайды. [1] мәліметтер базасы қарапайым бірнеше жазбалар жинағынан миллиондаған жазбаларға дейінгі барлық көлемде болады.
Деректер базасы-бұл реляциялық деректер моделіне сәйкес басқаруға болатын кестелер жиынтығы. Бұл біріктірілген жазбалар жинағы. Жазба-бұл клиенттің аты, мекен-жайы және телефон нөмірі сияқты бірнеше атрибуттары бар кейбір тұжырымдамалық объектінің көрінісі.
Деректер базасы деректерден де, метадеректерден де тұрады. Метадеректер-бұл мәліметтер базасындағы мәліметтер құрылымын сипаттайтын мәліметтер. Олар метадеректерді кестелерді, бағандарды, индекс шектеулерін және дерекқорды құрайтын басқа элементтерді сипаттайтын деректер сөздігі деп аталатын аймақта сақтайды. Дерекқорлар бірнеше жазбалардың қарапайым жиынтығынан миллиондаған жазбаларға дейін барлық өлшемдерде келеді.
Деректер базасы-бұл ұйым, автомобиль жиналысы немесе барлық Жоғары лигадағы бейсбол клубтарының өнімділік статистикасы сияқты физикалық немесе тұжырымдамалық құрылымның көрінісі. Ұсынудың дәлдігі мәліметтер базасының дизайнының егжей-тегжейлі деңгейіне байланысты. Дерекқорды әзірлеуге жұмсайтын күш-жігер мөлшері дерекқордан алғыңыз келетін ақпарат түріне байланысты болуы керек. Деректер базасының жоспарын құру және сізге қажет мәліметтер базасының көлемін бағалау әрқашан жақсы. Жоспар Бір қағаз сызбасынан бастап, дерекқормен жасалуы мүмкін барлық мүмкін нәрселерді сипаттайтын жүз беттік құжатқа дейін болуы мүмкін, әдетте жоспар үлкенірек болған кезде күрделі дерекқор қажет. Сізге қазір қанша бөлік қажет екенін және болашақта қанша қажет болуы мүмкін екенін шешіңіз, содан кейін дизайныңызда дәл осындай егжей-тегжейлі деңгей беріңіз. Деректер базасы көптеген қолданушылары бар қосымшалар үшін өте қолайлы, өйткені барлық пайдаланушылар арасындағы үйлестіру қарапайым.
Техникалық қызмет көрсету және қауіпсіздік мәселелері де ештеңені жобаламас бұрын дұрыс ойластырылуы керек. Деректер базасы мүмкіндігінше аз болуы керек және пайдалы емес ақпараттан аулақ болу керек. Кейінірек дерекқорға үлкен өзгерістер енгізу оңай болмауы мүмкін. Қалыпқа келтіру ережелері әрқашан сақталуы керек және әртүрлі қолданбалардың өнімділікке қойылатын талаптары әртүрлі болуы мүмкін. Деректер базасы да шамадан тыс қалыпқа келтірілуі мүмкін, яғни қалыпқа келтірмес бұрын оның өнімділікке әсер етуі мүмкін күрделі қатынастар желісін құрайтын көптеген шағын кестелері бар және мүмкіндігінше аулақ болу керек. Өнімділік сонымен қатар пайдаланушылар санына байланысты, сондықтан болашақта сіздің дерекқорыңыздың пайдаланушылар санына қандай өзгерістер болуы мүмкін және оның салдары қандай болуы мүмкін екендігі туралы ойлануыңыз керек. Егер сіз енгізілген мәндерді өрістермен дұрыс шектемесеңіз, деректердің тұтастығына қауіп төнеді, бұл деректердің сапасын төмендетеді.
1.1 MySQL-де индекстерді пайдалану
Индекстер көрсетілген баған мәні бар жолдарды жылдам іздеу үшін қолданылады. Индекссіз кестені оқу тиісті жолдар табылғанға дейін бірінші жазбадан бастап бүкіл кесте бойынша жүзеге асырылады. Кесте неғұрлым үлкен болса, үстеме шығындар соғұрлым көп болады. Егер кестеде қарастырылып отырған бағандар бойынша индекс болса, онда MySQL барлық деректерді көрмей-ақ деректер файлының ортасында іздеу орнын тез анықтай алады. 1000 жолдан тұратын кесте үшін бұл барлық жазбалардың дәйекті санымен салыстырғанда кем дегенде 100 есе жылдам болады. Алайда, барлық 1000 жолға қол жеткізу қажет болған жағдайда, дәйекті оқу тезірек болады, өйткені дискіні іздеу операциялары қажет емес.
Барлық MySQL индекстері (PRIMARY, UNIQUE, және Индекс) B ағаштары ретінде сақталады. Жолдар префикстердегі бос орындарды және соңғы бос орындарды жою арқылы автоматты түрде қысылады (see section 6.5.7 create INDEX операторының синтаксисі).
Индекстер мыналар үшін қолданылады:
* Қай жерде өрнекке сәйкес келетін жолдарды жылдам табыңыз.
* Бірлестіктерді орындау кезінде басқа кестелерден жолдарды шығарыңыз.
* Берілген индекстелген баған үшін MAX() немесе MIN() мәндерін табыңыз. Бұл операцияны preprocessor оңтайландырады, ол сіз қай жерде key_part_4 = тұрақты, композиттік кілттің барлық бөліктерінде N. бұл жағдайда MySQL бір кілт көрінісін жасайды және өрнекті MIN () тұрақтысымен ауыстырады. Егер барлық өрнектер тұрақты мәнмен ауыстырылса, сұрау нәтижені бірден қайтарады: select MIN (key_part2), MAX (key_part2) from table_name where key_part1=10
*
* Кестеде сұрыптау немесе топтастыру, егер бұл операциялар сол жақта қолданылатын кілттің префиксінде жасалса (мысалы,ORDER BY key_part_1, KEY_PART_2). Егер кілттің барлық бөліктерінен кейін DESC болса, онда бұл кілт кері тәртіпте оқылады (see section 5.2.7 MySQL BDER by оңтайландырады).
* Кейбір жағдайларда сұранысты деректер файлына қол жеткізбестен шамаларды алу үшін оңтайландыруға болады. Егер кейбір кестеде қолданылатын барлық бағандар сандық болса және кейбір кілт үшін сол жақтағы префиксті құраса, онда үлкен жылдамдықты қамтамасыз ету үшін ізделген шамаларды тікелей индекс ағашынан алуға болады: select key_part3 from table_name WHERE key_part1=1
*
Келесі select операторы шақырылды делік:
mysql SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;
Егер col1 және col2 бағандарында көп бағанды индекс болса, онда тиісті жолдар тікелей таңдалуы мүмкін. Col1 және col2 бағандарында бөлек индекстер болған жағдайда, оптимизатор қай индекстің аз жол табатынын анықтау арқылы ең шектеулі индексті табуға тырысады және осы жолдарды таңдау үшін берілген индексті пайдаланады.
Егер бұл кестеде көп бағанды индекс болса, онда сол индекстің кез-келген префиксін оңтайландырушы жолдарды табу үшін қолдана алады. Мысалы, егер үш баған бойынша индекс болса (col1,col2,col3), онда индекстелген іздеу мүмкіндігі бар (col1), (col1,col2) және (col1,col2,col3).
Егер бағандар сол индекстің сол жақтағы префиксін құрмаса, MySQL-де ішінара индексті қолдануға болмайды. Төменде көрсетілген select командалары бар делік:
mysql SELECT * FROM tbl_name WHERE col1=val1;
mysql SELECT * FROM tbl_name WHERE col2=val2;
mysql SELECT * FROM tbl_name WHERE col2=val2 AND col3=val3;
Егер индекс (col1,col2,col3) бойынша болса, онда жоғарыда көрсетілген бірінші сұрау ғана берілген индексті пайдаланады. Екінші және үшінші сұрауларға индекстелген бағандар кіреді,бірақ (col2) және (col2,col3) префикстердің сол жағында емес (col1,col2, col3).
MySQL индекстерді like салыстыру үшін де қолданады, егер LIKE өрнегіндегі аргумент шаблон таңбасынан басталмайтын тұрақты жол болса. Мысалы, келесі таңдау пәрмендері индекстерді пайдаланады:
mysql SELECT * FROM tbl_name WHERE key_col LIKE "Patrick%";
mysql SELECT * FROM tbl_name WHERE key_col LIKE "Pat%_ck%";
Бірінші командада тек "Patrick" = Key_col "Patricl" бар Жолдар, ал екіншісінде тек "Pat" = key_col "Pau"бар жолдар қарастырылады.
Келесі таңдау пәрмендері индекстерді пайдаланбайды:
mysql SELECT * FROM tbl_name WHERE key_col LIKE "%Patrick%";
mysql SELECT * FROM tbl_name WHERE key_col LIKE other_col;
Бірінші командада LIKE шамасы шаблон белгісінен басталады. Екінші командада LIKE шамасы тұрақты емес.
MySQL 4.0 нұсқасында LIKE өрнегінде басқа оңтайландыру жасалады. Егер өрнек қолданылса ... "%String% " сияқты және жол ұзындығы (string) 3 таңбадан үлкен, MySQL жолға шаблонды инициализациялау үшін Бойер-Мур Турбо алгоритмін қолданады, содан кейін бұл үлгіні жылдамырақ іздеу үшін пайдаланады.
Column_name is NULL көмегімен іздеу кезінде, егер column_name индекс болса, индекстер қолданылады.
MySQL әдетте жолдардың ең аз санын табатын индексті пайдаланады. Индекс келесі операторлармен салыстырылатын бағандар үшін қолданылады: =, , =, , =, between және something%сияқты шаблондық таңбасы жоқ префиксі бар сияқты.
Егер индекс WHERE өрнегіндегі барлық and деңгейлерін қамтымаса, онда ол осы сұранысты оңтайландыру үшін қолданылмайды. Басқаша айтқанда: индексті пайдалану үшін осы индекстің префиксі әр and тобына кіруі керек.
Келесі өрнектер индекстерді қолданады:
... WHERE index_part1=1 AND index_part2=2 AND other_column=3
... Қайда индекс=1 OR A=10 және Индекс=2 * индекс = 1 немесе индекс = 2 *
... WHERE index_part1='hello' AND index_part_3=5
* "index_part1='hello'"ретінде оңтайландырылған *
... WHERE index1=1 and index2=2 or index1=3 and index3=3;
* Индексті index1 арқылы пайдалануға болады, бірақ index2 немесе index 3 емес *
Келесі өрнектер индекстерді қолданбайды:
... WHERE index_part2=1 AND index_part3=2
* index_part_1 пайдаланылмайды *
... WHERE index=1 OR A=10
* Индекс AND екі бөлігінде де қолданылмайды *
... WHERE index_part1=1 OR index_part2=10
* Барлық жолдарды қамтитын индекс жоқ*
Кейбір жағдайларда MySQL мүмкін болса да индексті пайдаланбайды. Мұндай жағдайлардың бірнеше мысалдары төменде келтірілген:
* Егер индексті пайдалану MySQL-ден берілген кестедегі жолдардың 30% - дан астамын өтуді талап етсе (мұндай жағдайларда кестені қарау әлдеқайда жылдам болады, өйткені аз іздеу әрекеттерін орындау қажет болады). Егер мұндай сұрау жолдардың тек шығарылатын бөлігіне қатысты лимитті қолданса, онда MySQL индексті кез-келген жағдайда қолданады, өйткені нәтижені қайтару үшін жолдардың аз санын тезірек табуға болады.
* Егер индекстің өзгеру диапазонында ORDER by өрнектерін қолданған кезде NULL шамалары болуы мүмкін ... DESC.
1.2 MySQL деректер түрлері
MySQL-де деректердің үш негізгі түрі бар: мәтін, сан және күн.
Мәтіндік деректер түрлері:
CHAR(size)
Белгіленген ұзындықтағы жолды қамтиды (әріптер, сандар және арнайы таңбалар болуы мүмкін). Бекітілген өлшем жақшада көрсетіледі. 255 таңбаға дейін сақтай алады
VARCHAR(size)
Айнымалы ұзындықтағы жолды қамтиды (әріптер, сандар және арнайы таңбалар болуы мүмкін). Максималды мөлшері жақшада көрсетіледі. 255 таңбаға дейін сақтай алады. Ескерту: егер 255-тен үлкен мән қойылса, ол мәтін түріне ауыстырылады
TINYTEXT
Максималды ұзындығы 255 таңбадан тұратын жолды қамтиды
TEXT
Максималды ұзындығы 65 535 таңбадан тұратын жолды қамтиды
BLOB
BLOB нысандары үшін (екілік үлкен нысандар). 65 535 байт деректерді сақтайды
MEDIUMTEXT
Максималды ұзындығы 16 777 215 таңбадан тұратын жолды қамтиды
MEDIUMBLOB
BLOB нысандары үшін (екілік үлкен нысандар). 16 777 215 байт деректерді сақтайды
LONGTEXT
Максималды ұзындығы 4 294 967 295 таңбадан тұратын жолды қамтиды
LONGBLOB
BLOB нысандары үшін (екілік үлкен нысандар). 4 294 967 295 байт деректерді сақтайды
ENUM(x,y,z,etc.)
Мүмкін мәндердің тізімін енгізуге мүмкіндік береді. Enum тізімінде 65535 мәнге дейін шығаруға болады. Егер кірістірілген мән тізімде болмаса, бос мән енгізіледі.
Ескерту: мәндер оларды енгізу ретімен сұрыпталады.
Сіз осы форматтағы мүмкін мәндерді енгізесіз: Enum ('X', 'Y', 'Z')
SET
Enum-ге ұқсас, тек жиынтықта 64-ке дейін тізім элементтері болуы мүмкін және бірнеше таңдауды сақтай алады
Сандар деректерінің түрлері:
TINYINT(size)
-128-ден 127-ге дейін қалыпты. 0-ден 255-ке дейін қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
SMALLINT(size)
-32768 дейін 32767 қалыпты. 0-ден 65535-ке дейін қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
MEDIUMINT(size)
-8388608 8388607 дейін қалыпты. 0 дейін 16777215 қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
INT(size)
-2147483648 e 2147483647 қалыпты. 0 дейін 4294967295 қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
BIGINT(size)
- 9223372036854775808 дейін 9223372036854775807 қалыпты. 0 18446744073709551615 қол қойылмаған*. Сандардың максималды саны жақшада көрсетілуі мүмкін
FLOAT(size,d)
Шағын өзгермелі нүкте саны. Сандардың максималды саны size параметрінде көрсетілуі мүмкін. Ондық үтірдің оң жағындағы сандардың максималды саны d параметрінде көрсетілген
DOUBLE(size,d)
Үлкен өзгермелі нүкте. Сандардың максималды саны size параметрінде көрсетілуі мүмкін. Ондық үтірдің оң жағындағы сандардың максималды саны d параметрінде көрсетілген
DECIMAL(size,d)
Double түрінің мәні жол ретінде сақталады және бекітілген ондық нүктеге мүмкіндік береді. Сандардың максималды саны size параметрінде көрсетілуі мүмкін. Ондық үтірдің оң жағындағы сандардың максималды саны d параметрінде көрсетілген
*бүтін түрлерде қол қойылмаған деп аталатын қосымша параметр бар. Әдетте, бүтін сан теріс мәннен оң мәнге ауысады. Қол қойылмаған атрибутты қосу диапазонды жоғары қарай жылжытады, сондықтан ол теріс саннан емес, нөлден басталады.
Деректер күндерінің түрлері:
DATE()
Күн. Пішім: ЖЖЖЖ-мм-DD
Ескерту: '1000-01-01' - ден '9999-12-31' - ге дейінгі көрсетілетін диапазон
DATETIME()
* күн мен уақыттың тіркесімі. Пішім: ЖЖЖЖ-мм-DD HH: MI: SS
Ескерту: '1000-01-01 00:00:00' - ден ' 9999-12-31 23:59: 59 'дейінгі диапазоны
TIMESTAMP()
* Уақыт белгісі. Timestamp мәндері Unix уақытынан бастап секундтар саны ретінде сақталады ('1970-01-01 00:00:00' UTC). Пішім: ЖЖЖЖ-мм-DD HH: MI: SS
Ескерту: '1970-01-01 00:00:01' UTC-ден '2038-01-09 03:14: 07' UTC дейін көрсетілетін диапазон
TIME()
Уақыт. Пішім: HH: MI: SS
Ескерту: '-838:59:59' - ден '838:59: 59' - ге дейін қолдау көрсетілетін диапазон
YEAR()
Жыл екі немесе төрт саннан тұратын форматта.
Ескерту: төрт сан форматындағы рұқсат етілген мәндер: 1901-ден 2155-ке дейін. Екі цифрмен форматтағы рұқсат етілген мәндер: 70 - тен 69-ға дейін, 1970 жылдан 2069 ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz