JavaRush /Блоги Java /Random-TG /Мусоҳибаи таҳиякунанда: таҳлили саволҳои базаи маълумот

Мусоҳибаи таҳиякунанда: таҳлили саволҳои базаи маълумот

Дар гурӯҳ нашр шудааст
Салом ба ҳама! Мо ҳама дар ин ҷо барои як ҳадаф кор мекунем - таҳиягари Java шудан . Шояд марҳилаи муҳимтарин дар роҳи касб шудан мусоҳибаи техникӣ бошад. Чун қоида, мусоҳиба аз мавзӯъҳои асосӣ гузашта, якчанд савол медиҳад. Дар ин мақола мо дар бораи яке аз чунин мавзӯъҳои асосӣ сӯҳбат хоҳем кард - пойгоҳи додаҳо . Биёед ба саволҳои бештар додашуда назар андозем ва кӯшиш кунем, ки ба матолиб амиқтар ғарқ нашавем ва ба онҳо ҷавоб диҳем, зеро дар ин ҳолат ҳаҷми китоб барои мо кофӣ нахоҳад буд! Пас, биёед.Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 1

1. Пойгоҳи додаҳо чист? Онҳо ба кадом намудҳо тақсим мешаванд?

Маънои DBMS чист?

Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 2Пойгоҳи додаҳо (МБ) сохтори муташаккилест, ки барои нигоҳдорӣ, тағир додан ва коркарди иттилооти бо ҳам алоқаманд, асосан ҳаҷми калон пешбинӣ шудааст. Ба ибораи дигар, пойгоҳи додаҳо нигаҳдории сохтории додаҳо мебошад. Масалан, китоби телефон.

Намудҳои пойгоҳи додаҳо

  1. Пойгоҳи додаҳои релятсионӣ маҷмӯи маълумотест, ки байни онҳо муносибатҳои пешакӣ муайяншуда доранд. Маълумот ҳамчун маҷмӯи ҷадвалҳо, ки аз сутунҳо ва сатрҳо иборатанд, нигоҳ дошта мешаванд. Ҷадвалҳо маълумотро дар бораи an objectҳои дар пойгоҳи додаҳо нишондода нигоҳ медоранд. Ҳар як сутуни ҷадвал навъи мушаххаси маълумотро нигоҳ медорад ва ҳар як чашмак арзиши атрибутро нигоҳ медорад.
  2. Системаҳои ғайрирелятсионӣ (NoSQL) системаҳое мебошанд, ки барои моделҳои мушаххаси додаҳо бо схемаҳои чандир пешбинӣ шудаанд. Ба ибораи дигар, инҳо пойгоҳи додаҳоянд, ки маълумотро на дар шакли схемаҳои ҷадвалӣ, сатрҳо ва сутунҳо, балки дар форматҳои дигар нигоҳ медоранд.
Шумо метавонед маълумоти бештарро дар бораи пойгоҳи додаҳои ғайрирасмӣ дар ин мақола хонед: Дастур ба NoSQL барои таҳиягарон . Системаи идоракунии пойгоҳи додаҳо (МБМ) маҷмӯи нармафзорест, ки корбар метавонад ба воситаи онҳо пойгоҳи додаҳо (МБ) эҷод кунад ва дар онҳо амалҳои гуногун анҷом диҳад: илова кардан, навсозӣ кардан, нест кардан, интихоб кардан ва ғайра. СБМБ бехатарӣ, якпорчагӣ ва амнияти маълумотро кафолат медиҳад. нигоҳдорӣ ва ба шумо имкон медиҳад, ки дастрасӣ ба маъмурияти пойгоҳи додаҳоро диҳед. Мисол, MySql як DBMS мебошад, ки дастрасӣ ба пойгоҳи додаҳои релятсионӣ ё MongoDB-ро барои маълумоти ғайрирасмӣ таъмин мекунад.

2. Нормализатсия чист? Шакли нормализатсияшуда? Чанд шакли нормализатсия вуҷуд дорад? Се нафари аввалро номбар кунед.

Нормализатсия раванди ташкил ва сохторбандии додаҳо дар пойгоҳи додаҳо мебошад, ки чандирии бештари пойгоҳи додаҳоро тавассути рафъи зиёдатӣ ва номувофиқатии вобастагиҳо таъмин мекунад. Шакли муқаррарӣ хосияти ҷадвал аст, ки дар заминаи нормализатсия баррасӣ мешавад, ки ҷадвалро аз ҷиҳати содда ва дурустии сохтор тавсиф мекунад. Шакли муқаррарӣ ҳамчун маҷмӯи талаботе муайян карда мешавад, ки ҷадвал бояд онҳоро қонеъ кунад. Дар маҷмӯъ шаш шакли муқаррарӣ мавҷуданд, аммо дар амал на бештар аз се шакли аввал истифода мешаванд:
  1. Аввалин шакли муқаррарӣ:
    • Ҳама сифатҳо оддӣ мебошанд (яъне атомӣ ва тақсимнашаванда);
    • Ҳама маълумотҳо скаляр мебошанд (яъне мусбат);
    • Сатрҳои такрорӣ вуҷуд надоранд (барои ин калиди ибтидоӣ барои ҳар як сатр сохта мешавад).
  2. Шакли дуюми муқаррарӣ:
    • Шартҳои шакли муқаррарии якум иҷро карда мешаванд;
    • Ҳар як атрибути калидӣ ба калиди ибтидоӣ ишора мекунад.
  3. Шакли сеюми муқаррарӣ:
    • Шартхои гурухи дуйуми нормал ичро карда мешаванд;
    • Майдонҳои ғайрикалидӣ аз дигар соҳаҳои ғайрикалидӣ мустақиланд: онҳо метавонанд танҳо бо калиди ибтидоӣ алоқаманд бошанд.

3. Деномализатсия

Деномализатсия ин кам кардан ё вайрон кардани шаклҳои ба эътидол овардани пойгоҳи додаҳо мебошад, ки одатан барои суръат бахшидан ба хондан аз пойгоҳи додаҳо тавассути илова кардани маълумоти зиёдатӣ. Умуман, ин раванд баръакси ба эътидол овардан аст. Ин аз он сабаб рӯй медиҳад, ки назарияи шаклҳои муқаррарӣ на ҳама вақт дар амал татбиқ карда мешавад. Масалан, арзишҳои ғайриатомӣ на ҳамеша "бад" мебошанд: баъзан ҳатто баръакс. Дар баъзе мавридҳо, ҳангоми иҷрои дархостҳо, махсусан ҳангоми коркарди миқдори зиёди иттилоот, пайвастагиҳои иловагӣ заруранд. Ин дар ниҳоят метавонад самаранокиро беҳтар кунад. Пойгоҳи додаҳо, ки барои таҳлил пешбинӣ шудаанд, аксар вақт барои суръат бахшидан ба иҷрои дархостҳо ғайримуқаррарӣ карда мешаванд. Масалан, шумо аксар вақт баъзе маълумотро барои гузоришҳо намуна мегиред, ки дар он сутунҳои калидӣ бо ҳам алоқаманд хоҳанд буд. Шумо дидаву дониста шакли сеюми нормализатсияро хориҷ мекунед ва ҳама чизро дар як ҷадвал барои осонии интихоб муттаҳид мекунед - то ба шумо лозим нест, ки ба ҷадвалҳои дигар дархостҳои иловагӣ ворид кунед.

4. Индексҳо

Индекс маҷмӯи мураттабшудаи арзишҳоест, ки бо ҷадвал ё намоиш бо сутуни мушаххас алоқаманд аст, ки ҷустуҷӯи маълумотро суръат мебахшад. Яъне, ин як навъ индекс аст: мисли алифбои китоби телефон, ки ҳангоми ҷустуҷӯи насаб ба мо кумак мекунад. Агар дуруст истифода шавад, ин хусусият метавонад ҳангоми кор бо пойгоҳи додаҳои калон иҷроишро хеле беҳтар созад. Ё шумо метавонед онро хеле паст кунед. Барои тезонидани ҷустуҷӯ, ин калидҳо дар сохтори дарахти мутавозин нигоҳ дошта мешаванд, ки тавассути он ҷустуҷӯ анҷом дода мешавад. Одатан, индексҳо бояд дар майдонҳое, ки бештар ҷустуҷӯ мешаванд, ворид карда шаванд. Шумо бояд дар бораи эҷоди як индекс на пештар фикр кунед, вақте ки шумо ҳадди аққал 10 ҳазор сабт доред. Дар акси ҳол, шумо натиҷаи назаррасро намебинед, зеро оптимизатсияи бармаҳал EVIL аст . Ва шумо мепурсед, ки индекс чӣ гуна метавонад ба кори система таъсир расонад? Вақте ки маълумоти нав ворид карда мешавад ё маълумоти кӯҳна нест карда мешавад, сохтори дарахти мутавозин аз нав ҳисоб карда мешавад. Дарвоқеъ, ҳар қадар маълумот ва индексҳо зиёд бошанд, ҳамон қадар дарахтонро ҳисоб кардан лозим аст. Вазъиятро тасаввур кунед: шумо дар ин ҷадвал тақрибан 20 000 сабт ва 7 индекс доред. Ин аст, ки ҳангоми ворид кардани маълумот шумо бояд 7 дарахтро аз нав ҳисоб кунед, ки ҳар кадоми онҳо 20 000 сабт доранд. Ба таври қатъӣ гӯем, истифодаи индексҳо барои ҷадвалҳое, ки ба онҳо маълумот зуд-зуд илова/нузв карда мешаванд, умуман тавсия дода намешавад. Дар охир, ман мехоҳам қайд намоям, ки индексатсияҳои сутунҳое, ки дар онҳо арзиш аксар вақт пайдо мешаванд, nullчандон муассир нахоҳанд буд, бинобар ин илова кардани онҳо ба чунин сутунҳо бамаврид нест.

Фарқи байни индексҳои кластерӣ ва ғайри кластерӣ дар SQL чист?

Кластер:

  • Тартиби ҷисмониро барои майдони интихобшуда таъмин мекунад;
  • Агар ҷадвал дорои индекси кластерӣ бошад, он гурӯҳбандӣ гуфта мешавад;
  • Барои як ҷадвал зиёда аз як индекс лозим нест;
  • Дар MySQL, индекси кластерӣ аз ҷониби корбар ба таври возеҳ муайян карда нашудааст, зеро агар шумо дар ҷадвали худ КАЛИДИ АВВАЛИ муайян накунед, MySQL шохиси аввалро, UNIQUEки дар он ҳамаи сутунҳои калидӣ ҳастанд NOT NULL, пайдо мекунад ва InnoDB онро ҳамчун шохиси кластерӣ истифода мебарад.

Кластернашуда:

  • Дар як ҷадвал то 999 индекси ғайрикластерӣ имконпазир аст;
  • Нишондиҳандаро ба сатрҳо бо маълумоти воқеии ҷадвал дар бар мегирад;
  • Тартиби ҷисмониро таъмин намекунад;
  • Барои индексатсияҳои кластернашуда ҷадвалҳои алоҳида бо маълумоти мураттабшуда мавҷуданд, яъне як ҷадвал барои як сутуне, ки индекс дар он ҷойгир аст, бинобар ин, ҳангоми дархост кардани маълумоте, ки қисми майдони додашуда нестанд, дархост аввал аз рӯи нишондод иҷро карда мешавад. майдони дар ин ҷадвал ва танҳо пас аз он дархости иловагӣ дар муқобor сатри ҷадвали аслӣ.
Эҷоди як индекси кластерӣ:
CREATE INDEX index_name ON table_name(column_name)

6. Индекси таркибї чист?

Индекси таркибӣ - бо фиристодан ба якчанд сутунҳо дар як вақт сохта шудааст. Ба ибораи дигар, ин шохиси мураккабест, ки аз якчанд сутун иборат аст. Чунин индексҳо вақте истифода мешаванд, ки дар як дархост зиёда аз як сутун пайдо мешавад. Эҷоди индекси таркибӣ:
CREATE INDEX index_name ON table_name(first_column_name, second_column_name, third_column_name)
Одатан, ин индексҳо вақте истифода мешаванд, ки маълумот дар сутунҳои сершумор мантиқӣ алоқаманд аст.

7. Индекси фарогирӣ чист? Индекси беназир?

Индекси фарогир индексест, ки барои посух додан ба пурсиш бидуни дастрасӣ ба худи ҷадвал кифоя аст. Бо истифода аз ин индекс, шумо метавонед тамоми сатри маълумотро гиред, аммо дар асл ин зарур нест. Азбаски ба шумо лозим нест, ки мустақиман ба ҷадвали манбаъ равед ва танҳо бо истифода аз индекс ҷавоб дода метавонед, истифодабарии индексҳои фарогирӣ каме тезтар аст. Дар айни замон, фаромӯш накунед, ки ҳар қадар сутунҳо зиёд бошанд, худи индекс ҳамон қадар душвортар ва сусттар мешавад. Пас шумо набояд аз ин суиистифода кунед. Дар боло мо дар бораи шохисҳои кластерӣ ва ғайри кластерӣ сӯҳбат кардем, ки метавонанд беназир бошанд . Ин маънои онро дорад, ки ҳеҷ ду майдон барои калиди индекс арзиши якхела надоранд. Дар акси ҳол, индекс ягона нахоҳад буд, зеро якчанд сатрҳо метавонанд арзиши якхела дошта бошанд. Намунаи эҷоди индекси беназири кластерӣ:
CREATE UNIQUE INDEX index_name ON table_name(column_name)

8. Калиди ибтидоӣ чист

Калиди ибтидоӣ майдонест дар ҷадвал, ки ҳар як сатри ҷадвали пойгоҳи додаҳоро муайян мекунад. Дар ҷадвал танҳо як чунин майдон мавҷуд буда метавонад ва ҳамаи арзишҳо бояд беназир бошанд. Оё шумо чизеро хотиррасон накардед? Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 3Дар ниҳоят, калиди ибтидоӣ ҷуз як шохиси беназир ва кластерӣ чизе нест . Чун қоида, калидҳои ибтидоӣ ҳангоми сохтани ҷадвал сохта мешаванд:
CREATE TABLE table_name(
column_name int PRIMARY KEY,..)
Маҳдудият ба таври худкор ба ин сутун илова карда мешавад - NOT NULL. Шумо инчунин метавонед калидро барои ҷадвали аллакай сохташуда таъин кунед:
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
Агар калиди ибтидоӣ бо усули дар боло тавсифшуда илова карда шавад, он гоҳ арзишҳои майдонҳои ҳамчун калиди ибтидоӣ ( column_name) нишондодашуда тафтиш карда мешаванд, то боварӣ ҳосил кунанд, ки онҳо дорои арзишҳои нул нестанд (маҳдудият низ илова карда мешавад - NOT NULL).

Калиди хориҷӣ чист?

Калиди хориҷӣ амволест, ки барои таъмини муносибат байни ҷадвалҳо сохта шудааст. Одатан, калиди хориҷӣ дар сутунҳои зерҷадвал гузошта мешавад ва ба яке аз сутунҳои ҷадвали асосӣ ишора мекунад. Ҳангоми сохтани ҷадвал метавон муайян кард:
CREATE TABLE table_name{
column_name int,..
FOREIGN KEY(column_name) REFERENCES another_table_name(another_table_column_name) }
Пас, пас аз сохтани ҷадвал:
ALTER TABLE table_name
ADD FOREIGN KEY(column_name) REFERENCES another_table_name(another_table_column_name));
Шумо метавонед рафтори калиди хориҷиро ҳангоми коркарди майдоне, ки ба он ишора мекунад, танзим кунед. ON DELETEМанипуляцияҳо метавонанд намудҳои зерин бошанд ON UPDATE: Вариантҳои эҳтимолии рафтор:
  • CASCADE— бо ин хосият, сатрҳои ҷадвали вобаста ба таври худкор ҳазф карда мешаванд ё ҳангоми тағир додани сатрҳои алоқаманд дар ҷадвали асосӣ;
  • SET NULL— бо ин хосият, вақте ки сатри алоқаманд аз ҷадвали асосӣ нест карда мешавад ё нав карда мешавад, арзиши NULLсутуни калиди хориҷӣ муқаррар карда мешавад;
  • NO ACTION— кӯшиши нест кардан ё тағир додани сатрҳоро дар ҷадвали асосӣ рад мекунад, агар дар ҷадвали вобаста сатрҳои алоқаманд мавҷуд бошанд;
  • RESTRICT- баробар ба NO ACTION;
  • SET DEFAULT- бо ин хосият, вақте ки сатри алоқаманд аз ҷадвали асосӣ нест карда мешавад ё нав карда мешавад, арзиши пешфарз (агар мавҷуд бошад) барои сутуни калиди хориҷӣ муқаррар карда мешавад.
Намунаи истифода:
CREATE TABLE table_name{
column_name int,..
FOREIGN KEY(column_name) REFERENCES another_table_name(another_table_column_name) ON UPDATE CASCADE ON DELETE CASCADE }
ON DELETEАгар рафтор барои ва ба таври возеҳ муқаррар нашуда бошад ON UPDATE, рафтор ба RESTRICT.

10. Намудҳои пайвастшавӣ байни ҷадвалҳо (Ҷадвал)

Пайвастшавӣ байни ҷадвалҳо дар асоси маълумоти умумӣ (майдонҳо) таъмин карда мешавад. Ин бо истифода аз оператор JOIN, амале, ки сатрҳои як ҷадвал бо сатрҳои дигар мувофиқат мекунад, сурат мегирад. Харитасозӣ тавре анҷом дода мешавад, ки сутунҳои ҳарду ҷадвал ба ҳам наздик бошанд, гарчанде ки онҳоро аз ҷадвалҳои алоҳида гирифтан мумкин аст. Ва агар мо барои се ҷадвал майдонҳои умумӣ дошта бошем, мо метавонем маълумоти онҳоро ҳамчун як ҷадвали умумӣ нишон диҳем. Бо вуҷуди ин, бояд ба назар гирифт, ки шумораи камтари ҷадвалҳое, ки ҳамроҳ карда шаванд, дархост ҳамон қадар тезтар иҷро мешавад. Ҳамин тавр, намудҳо JOIN:
  • INNER JOIN- пайвастшавӣ, ки танҳо он маълумотҳои ҷадвали якумро нишон медиҳад, ки ба баъзе маълумотҳои ҷадвали дуюм мувофиқат мекунанд. Боқимондаҳо поён мераванд.Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 4
  • LEFT JOIN- пайвасте, ки тамоми маълумоти ҷадвали якум ва маълумоти мувофиқро аз дуюм, агар мавҷуд бошад, нишон медиҳад. Агар ягон маълумоти мувофиқ мавҷуд набошад, майдонҳои маълумот аз ҷадвали дуюм холӣ хоҳанд буд.Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 5
  • RIGHT JOIN- пайвасте, ки тамоми маълумоти ҷадвали дуюм ва маълумоти мувофиқро аз ҷадвали якум, агар мавҷуд бошад, нишон медиҳад. Агар ягон маълумоти мувофиқ мавҷуд набошад, майдонҳои маълумоти ҷадвали якум холӣ хоҳанд буд.Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 6
  • FULL JOIN- пайвасте, ки тамоми маълумотро аз ҷадвалҳои якум ва дуюм нишон медиҳад. Агар дар ҷадвали дигар ягон маълумоти марбут мавҷуд набошад, майдонҳои ин маълумот холӣ хоҳанд буд.Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 7
  • CROSS JOIN- пайванди салиб, ки дар он ҳар як сатри ҷадвали якум ба ҳар як сатри ҷадвали дуюм пайваст карда мешавад (ҳар як ба ҳар як). Яъне, агар ду ҷадвал ҳар кадом 3 сатр дошта бошанд, пас аз ин пайвастан мо натиҷаи 9 сатр мегирем.Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 8
Мисол Join(inner):
SELECT *
FROM first_table
INNER JOIN second_table ON first_table.some_column = second_table.some_column

11. Хосияти ACID дар базаи маълумот чист?

A - Atomicity , кафолат медиҳад, ки ягон транзаксия қисман ба система содир карда намешавад. Ё ҳама зерамалҳои он иҷро мешаванд, ё ҳеҷ кадоме. Масалан, интиқоли пул аз бонк ба суратҳисоби дигар ду амалиётро дар бар мегирад:
  1. Интиқоли пул ба суратҳисоби бонкӣ.
  2. Интиқоли пул аз суратҳисоби бонкӣ ба суратҳисоби мушаххас.
Аммо ҳама чиз метавонад рӯй диҳад. Масалан, онҳо ба бонк мераванд ва баъд ягон хатогӣ рӯй медиҳад ва амалиёти дуюм анҷом намеёбад. Ё баръакс: танҳо амалиёти дуюм иҷро карда мешавад. Аз ин рӯ, ин амалҳо дар доираи як амалиёт анҷом дода мешаванд ва натиҷа ё ҳама ё ҳеҷ чиз аст. C - Пайвастагӣ : Ҳар як амалиёти муваффақ ҳамеша танҳо натиҷаҳои ҳалшавандаро сабт мекунад. Ин кафолат медиҳад, ки ҳама маҳдудиятҳо риоя карда мешаванд (масалан, NOT NULL), вагарна транзаксия баргардонида мешавад. Ва - изолятсия : ҳангоми иҷрои транзаксия амалиёти мувозӣ набояд ба натиҷаи он таъсир расонад. Ин ба мо имкон медиҳад, ки ҳолати маълумоти ниҳоӣ аз ҳама пинҳон карда шавад. Воқеан, барои ҳамин транзаксияҳои номуваффақ ҳеҷ чизро вайрон карда наметавонанд. Каме пасттар мо бо сатҳи изолятсияи транзаксияҳо шинос мешавем. D - Давомнокӣ : Агар транзаксия анҷом дода шавад, шумо боварӣ дошта метавонед, ки тағиротҳои он бо сабаби баъзе нокомиҳо бекор карда намешаванд.

12. Сатҳи ҷудокунии транзаксия

Ҳар як сатҳи изолятсия амалҳои муайянро (имкониятҳоро) иҷозат медиҳад/манъ мекунад:
  • Хониши фантомӣ - дар доираи як транзаксия, як дархости маълумот натиҷаҳои гуногун медиҳад, ки аз ҳисоби илова кардани маълумот аз ҷониби транзаксияи дигар (параллелӣ) рух медиҳад.
  • хондани такрорнашаванда - дар доираи як транзаксия, як дархости маълумот натиҷаҳои гуногун медиҳад, ки дар натиҷаи тағир додан ё нест кардани маълумот аз ҷониби транзаксияи дигар (параллӣ) рух медиҳад.
  • хондани "ифлос" - хондани маълумоти иловашуда ё тағир додани транзаксия, ки минбаъд баргардонида намешавад;
  • навсозии гумшуда - вақте ки транзаксияҳои гуногун як блоки маълумотро дар як вақт иваз мекунанд, ҳама тағиротҳо ба истиснои охирини онҳо гум мешаванд (монанд ба “ҳолати мусобиқа” дар бисёр ришта).
Барои роҳат, мо сатҳи изолятсия ва имкониятҳои онҳоро дар ҷадвал баррасӣ мекунем:
Сатҳи изолятсия Хониши фантом Хониши такрорнашаванда хондани «ифлос». навсозии гумшуда
СЕРИАЛИСТОН + + + +
ТАКРОР_ХОНДАН - + + +
ХОНДАН_КАРДА ШУД - - + +
READ_UNCOMMITTED - - - +

13. Инъекцияи SQL чист?

Инъекцияи SQL яке аз усулҳои ҳакерии вебсайт мебошад, ки моҳияти он ворид кардани баъзе codeи SQL ба маълумот тавассути GETдархостҳо POSTё кукиҳо мебошад. Агар вебсайт чунин тазриқҳоро анҷом диҳад, имкон дорад, ки ба пойгоҳи додаҳо дастрасӣ пайдо кунад ва барномаро вайрон кунад. Масалан, мо номи баъзе тағирёбандаҳоро медонем. Биёед column_nameбо навъи бигӯем boolean. Агар система ба тазриқҳо ҳассос бошад, мо метавонем OR column_name=trueҳама чизеро, ки ба мо лозим аст, аз базаи маълумот илова ва нависем. ORшарти Ё эҷод хоҳад кард ва ифодаи мо пас аз он ҳамеша хоҳад буд true, ки моро ба пеш мебарад. Ҳамла ба вебсайте ба монанди тазриқи SQL аз сабаби коркарди нодурусти маълумоти воридотӣ, ки дар дархостҳои SQL истифода мешаванд, имконпазир аст. Ҳангоми пайваст шудан ба пойгоҳи додаҳо бо истифода аз JDBC , шумо Statements. PreparedStatementБарои баланд бардоштани амният, ба ҷои як муқаррарӣ истифода бурдан лозим аст Statement, зеро ҳангоми истифода, Statementсатрҳо ва арзишҳои дархост ба таври оддӣ якҷоя карда мешаванд, ки тазриқро имконпазир мегардонанд. Дар навбати худ, PreparedStatementяк қолаби мушаххаси дархост мавҷуд аст ва маълумот ба он бо нохунак инъикос карда мешавад. Дар натиҷа, тазриқи SQL танҳо ҳамчун намоиши сатри баъзе майдонҳо қабул карда мешавад. Барои муҳофизат аз тазриқи SQL, шумо метавонед чекҳоро дар асоси ифодаҳои муқаррарӣ истифода баред (шумо метавонед дар бораи ибораҳои муқаррарӣ бештар дар ин мақола хонед ). Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 9Варианти дигар ин аст, ки маҳдудияти шумораи ҳарфҳои параметрҳои воридотӣ муқаррар карда шавад: масалан, агар шумо рақами на бештар аз 9999 гиред, маҳдудияти чор аломати воридотӣ иҷро хоҳад шуд. Он хатари ҳакерӣ бо истифода аз тазриқи SQL-ро коҳиш медиҳад.Шумо метавонед дар бораи амният дар Java аз мақолаи "Амният дар Java: таҷрибаҳои беҳтарин" маълумоти бештар гиред .

14. Протседурањои захирашуда кадомњоянд? Функсияҳои захирашуда? Триггер?

Процедураҳои захирашуда дар SQL як an object дар пойгоҳи додаҳо мебошанд, ки маҷмӯи дастурҳои SQL мебошанд, ки як маротиба тартиб дода мешаванд ва дар server нигоҳ дошта мешаванд. Дар як калима, ин як аналоги усулҳо дар Java аст. Процедураҳои захирашуда метавонанд амалҳоро дар бораи додаҳо иҷро кунанд, ҳам дархостҳои муқаррарӣ ва ҳам баъзе амалҳое, ки барои дархостҳои муқаррарӣ дастрас нестанд. Тартиб як an objectи SQL мебошад, ки як маротиба сохта мешавад ва сипас тавассути интиқоли аргументҳо даъват карда мешавад. Бартарии ин равиш дар он аст, ки ин дастурҳоро аз як маротиба зиёд истифода бурдан мумкин аст. Тартибҳои захирашуда иҷроишро беҳтар мекунанд, қобorятҳои барномасозиро беҳтар мекунанд ва хусусиятҳои амнияти додаҳоро дастгирӣ мекунанд. Биёед тартиб додани тартибро баррасӣ кунем:
CREATE PROCEDURE procedure_name (first_param some_type, second_param some_type..)
 begin
……...
 end
Даъват ба расмият:
CALL procedure_name (first_param, second_param…..);
Функсияи захирашуда як намуди тартиби захирашуда мебошад. Фарқи байни функсия дар он аст, ки он ҳамеша танҳо як арзиши ягонаро бармегардонад, дар ҳоле ки тартиби ҳамеша маҷмӯи арзишҳоро бармегардонад. Процедураҳои захирашударо бо SQL муқаррарӣ омехта кардан мумкин нест, дар ҳоле ки функсияи захирашуда метавонад - ва ин бартарии он аст. Аз тарафи дигар, функсияҳои захирашуда нисбат ба расмиёт маҳдудиятҳои зиёд доранд. Эҷоди функсияи захирашуда:
CREATE FUNCTION function_name (first_param, second_param…..)
RETURNS some_type
 begin
……...
RETURN some_value;
end
Даъват кардани функсияи захирашуда:
SELECT function_name(first_param, second_param…..);
Триггер як намуди дигари тартиби захирашуда мебошад, ки бевосита аз ҷониби корбар даъват карда намешавад, аммо ҳангоми тағир додани маълумот фаъол мешавад. Яъне, ин тартиб ҳангоми иҷро шудани шартҳои муайян фаъол мешавад, масалан, INSERTё DELETE, ё UPDATEмаълумот дар сутуни муайяни ҷадвали додашуда. Ҳангоми сар задани триггер бо истифода аз калимаҳои калидӣ BEFORE(сӯхторҳои триггер пеш аз ҳодисаи алоқаманд) ё AFTER(пас аз ҳодиса) муайян карда мешавад.
CREATE TRIGGER trigger_name
ON table_name
AFTER INSERT
 begin
……...
 end

15. Амал

Новобаста аз он, ки саволи маъмултарини SQL дар мусоҳиба амалия - ҳалли мушкилот хоҳад буд. Кӯшиши фаҳмидани он ки шумо бо кадом вазифаҳо рӯ ба рӯ мешавед, ҳеҷ маъное нест, зеро ҳама чиз аз мураккабии тасаввуроти шахси муқобил вобаста аст. Аз ин рӯ, ягона варианти корӣ ин беҳтар кардани дархостҳои SQL-и мураккабии гуногун хоҳад буд. sql-ex.ru метавонад ҳамчун манбаи машқ дар вазифаҳои гуногун хизмат кунад . Пас аз анҷоми бист вазифаи аввал, барои ҳамсӯҳбататон шуморо бо ягон вазифаи SQL тарсондан хеле душвор хоҳад буд. Мусоҳибаи таҳиякунанда: таҳлor саволҳои пойгоҳи додаҳо - 11Ин ҳама барои имрӯз аст: Ман умедворам, ки пас аз хондани ин мақола, саволҳо дар бораи пойгоҳи додаҳо ҳеҷ гуна мушкилот ё мушкилот намеоранд. Ташаккур барои таваҷҷуҳ ва боз дидори шумо!
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION