Misingi ya kinadharia ya hifadhidata (utangulizi wa SQL). Mfano wa data ya data. Unaweza kupendezwa

Ongeza - fanya rekodi kwenye hifadhidata na, kulingana na hali ya kujumuisha, ama uijumuishe katika uhusiano wa kikundi, ambapo inatangazwa kuwa chini, au usiijumuishe katika uhusiano wowote wa kikundi.
Jumuisha katika uhusiano wa kikundi - unganisha rekodi iliyopo ya chini kwa rekodi ya mmiliki.
Badili - kuunganisha rekodi iliyopo ya chini kwa rekodi ya mmiliki mwingine katika uhusiano wa kikundi sawa.
Sasisha - kubadilisha thamani ya vipengele vya rekodi iliyotolewa hapo awali.
Dondoo - dondoo rekodi kwa sequentially kwa thamani muhimu, pamoja na kutumia mahusiano ya kikundi - unaweza kwenda kutoka kwa mmiliki hadi rekodi za wanachama, na kutoka kwa rekodi ya chini hadi kwa mmiliki wa kuweka.
Futa - ondoa rekodi kutoka kwa hifadhidata. Ikiwa rekodi hii ni mmiliki wa uhusiano wa kikundi, basi darasa la wanachama wa rekodi za chini linachambuliwa. Wanachama wa lazima lazima kwanza waondolewe kwenye uhusiano wa kikundi, washiriki waliowekwa lazima wafutwe pamoja na mmiliki, washiriki wa hiari watabaki kwenye hifadhidata.
Ondoa kwenye uhusiano wa kikundi - kuvunja uhusiano kati ya rekodi ya mmiliki na rekodi ya mwanachama.

Mfano wa hifadhidata ya uhusiano

Kwanza, data zote katika mfano zinawasilishwa tu kwa namna ya meza na mahusiano kati yao. Mfano wa uhusiano ndio pekee unaohakikisha usawa wa uwasilishaji wa data.

Kipengele cha pili mifano ni lugha kamili kimahusiano. Ukamilifu lugha inapotumika kwa modeli ya uhusiano inamaanisha kuwa lazima itekeleze yoyote upasuaji algebra ya uhusiano . Aidha, lugha lazima ielezee yoyote ombi kwa namna ya shughuli kwenye meza, badala ya safu zao. Moja ya lugha hizi ni SQL.

Kipengele cha tatu muundo wa uhusiano unahitaji mtindo wa uhusiano kudumisha fulani vikwazo vya uadilifu. Kila safu kwenye jedwali lazima iwe na ya kipekee kitambulisho, inayoitwa ufunguo wa msingi. Kizuizi cha pili kinawekwa uadilifu viungo kati ya meza.

Muundo unaolenga kitu.

Katika hifadhidata zenye mwelekeo wa kitu, tofauti na zile za uhusiano, sio kumbukumbu zinazohifadhiwa, lakini vitu (maandishi, habari za sauti na video, hati na vitu vingine). Pia muhimu ni kazi ya kuokoa hali ya vitu kati ya kukimbia mara kwa mara ya programu ya maombi. Hata hivyo, maendeleo ya vifaa vya hisabati ambayo kwa ujumla modeli ya data yenye mwelekeo wa kitu, haipo.

OODBMS nyingi ni maktaba ambayo taratibu zake za usimamizi wa data zimejumuishwa programu ya maombi. Licha ya faida za mifumo inayoelekezwa kwa kitu - utekelezaji aina ngumu za data, uhusiano na lugha za programu, nk. - katika siku za usoni, ukuu wa uhusiano DBMS uhakika.

DBMS ya uhusiano wa kitu

Tofauti kati ya kitu-mahusiano na msingi wa kitu DBMS: za kwanza ni muundo mkuu juu ya schema ya uhusiano, ilhali za mwisho zinaelekezwa kwa kitu. kipengele kikuu na tofauti kati ya kitu-mahusiano (na kitu) DBMS kutoka kwa uhusiano ni kwamba AU DBMS kuunganishwa na lugha ya programu ya Object Oriented (OO), ya ndani au nje kama C++, Java.

Kitu-kihusiano DBMS ni, kwa mfano, wanaojulikana Hifadhidata ya Oracle ,Microsoft Seva ya SQL , PostgreSQL, Microsoft Access.

Mbinu ya uhusiano ya kujenga mfano wa kikoa.

· eneo la somo inaigwa na seti ya mtu binafsi vitu vya habari(vyombo), ambayo kila moja inaelezewa na meza yake ya pande mbili;

· kuna uhusiano kati ya meza;

· kila kipengele cha jedwali ni kipengele kimoja cha data;

· nguzo zote kwenye jedwali ni sawa, i.e. vipengele vyote katika safu vina aina sawa (nambari, tabia, nk) na urefu;

Kila safu huelezea sifa moja ya huluki;

Kila safu ina jina la kipekee;

· mstari una maadili ya sifa kwa mfano wa chombo kimoja;

· hakuna safu mlalo zinazofanana kwenye jedwali (uwepo wa ufunguo msingi);

· mpangilio wa safu na nguzo unaweza kuwa wa kiholela.

Kurekebisha mahusiano- kifaa rasmi cha vizuizi juu ya malezi ya uhusiano (meza), ambayo huondoa kurudiwa, inahakikisha uthabiti wa zile zilizohifadhiwa kwenye hifadhidata, na kupunguza gharama za wafanyikazi kwa kudumisha (kuingia, kurekebisha) hifadhidata.

Fomu ya kwanza ya kawaida

Uhusiano (meza) inaitwa kawaida au kupunguzwa kwa fomu ya kwanza ya kawaida, ikiwa sifa zake zote ni rahisi (hapa hazigawanyiki).

Kubadilisha uhusiano kuwa wa kwanza fomu ya kawaida inaweza kusababisha kuongezeka kwa idadi ya maelezo (mashamba) ya uhusiano na mabadiliko katika ufunguo.

Jedwali liko ndani fomu ya pili ya kawaida, ikiwa inakidhi mahitaji ya kwanza sura ya kawaida na sehemu zake zote ambazo hazijajumuishwa kwenye ufunguo msingi zimeunganishwa kikamilifu utegemezi wa kazi na ufunguo wa msingi, yaani, yoyote uga muhimu kutambuliwa wazi seti kamili mashamba muhimu.

· Jedwali lazima liwe na data kuhusu aina moja ya kitu;

· kila jedwali lazima liwe na sehemu moja au sehemu kadhaa zinazounda kitambulisho cha kipekee (au ufunguo msingi) kwa kila safu mlalo;

· sehemu zote zisizo za ufunguo lazima zitambuliwe na kitambulisho kamili cha kipekee cha jedwali hili.

Fomu ya tatu ya kawaida

Sharti fomu ya tatu ya kawaida inakuja ili kuhakikisha kuwa sehemu zote zisizo za ufunguo zinategemea tu ufunguo msingi na hazitegemei kila mmoja. Kwa maneno mengine, unahitaji kuwa na uwezo wa kubadilisha thamani ya sehemu yoyote isiyo ya ufunguo bila kubadilisha thamani ya sehemu nyingine yoyote kwenye hifadhidata.

Aina za viunganisho. Tabia za mahusiano

· Uhusiano wa mtu na mmoja(1:1) inamaanisha kwamba kila rekodi katika jedwali moja inalingana na rekodi nyingi katika jedwali lingine.

· Uhusiano wa moja kwa wengi(1:M) inamaanisha kuwa kwa kila rekodi katika jedwali moja kuna rekodi 0 au 1 au zaidi katika jedwali lingine.

· Uhusiano wa wengi kwa mmoja(M:1) ni sawa na aina moja-kwa-nyingi iliyojadiliwa hapo awali. Aina ya uhusiano kati ya vitu inategemea hatua ya mtazamo.

· Uhusiano wa wengi kwa wengi(MM). hutokea kati ya jedwali mbili wakati kila rekodi katika jedwali moja inalingana na rekodi 0 au zaidi katika jedwali lingine na kinyume chake.

Vifunguo rahisi na vilivyojumuishwa

Ufunguo wa msingi inaweza kujumuisha sehemu moja ya jedwali ambayo maadili yake ni ya kipekee kwa kila rekodi. Vile ufunguo wa msingi inayoitwa ufunguo rahisi.

Kama meza haina uwanja hata mmoja wa kipekee, ufunguo wa msingi inaweza kujumuisha nyanja kadhaa, jumla ya maadili ambayo yanathibitisha upekee.

Vile ufunguo wa msingi kuitwa ufunguo wa kiwanja

Aina zote za uhusiano zinatekelezwa kwa kutumia funguo za msingi na viungo vya maadili yao katika jedwali zingine. Viungo vile, ambazo ni nakala za funguo za msingi za meza nyingine, huitwa funguo za kigeni.

Kuzingatiwa kihierarkia na mfano mtandao Hifadhidata, iliyo na habari juu ya mgawanyiko wa biashara na wafanyikazi wanaofanya kazi ndani yao, kuhusiana na mfano wa uhusiano watakuwa na fomu:

NA ligature"nyingi-kwa-nyingi"kutekelezwa kupitia meza ya ziada, ambayo hii uhusiano itapunguzwa hadi miunganisho miwili kama " mmoja kwa wengi".

Uendeshaji wa Hifadhidata

Njia ya kawaida ya kufikia data ya hifadhidata ni kuingia kwa anwani ya ushirika (muundo), unaofanywa na operesheni ya "utaftaji wa muundo". Hoja ya operesheni ya "utaftaji wa muundo" ni muundo, asili ambayo inaweza kutofautiana kidogo. mbalimbali kulingana na kazi zinazofanywa na hifadhidata. Matokeo ya operesheni hii ni seti (labda tupu - matokeo mabaya) ya warejeleo wote wa sampuli ya hoja, i.e. vipande vya hifadhidata, ambavyo kila kimoja kinawakilisha jibu kwa swali lililobainishwa katika mfumo wa sampuli hii.

Aina kadhaa za sampuli zinaweza kutofautishwa.

Sampuli rahisi ni kipande cha muundo wa aina sawa na sura. Katika wima za muundo rahisi, vipengele vinaweza kutajwa kwa sehemu, kwa mfano, jina tu au aina tu. Asili ya utaratibu unaotekelezwa na operesheni ya "utaftaji wa muundo" inaweza kuwa ya aina mbili:

Ulinganifu kamili - marejeleo ni isomorphic kwa sampuli hadi vipengele vilivyokosekana kwenye sampuli;

Kufunika - kunaweza kufanywa katika hali ambapo mpangilio wa sehemu umebainishwa juu ya alama zinazofanya kazi kama vipengee vya muundo. Marejeleo katika kesi hii ni vipande vya fremu iliyofunikwa na sampuli, kwa maana kwamba grafu za sampuli na rejeleo ni za isomorphic, na vitu vya sampuli ama vinaambatana na ishara inayolingana ya mrejelewa au ziko hapo juu. ni katika daraja.

Sampuli ya kupasuka - huu ni mkusanyiko wa mifumo rahisi iliyounganishwa na arcs aina maalum, kukosa kwenye fremu. Katika kesi hii, grafu za sampuli na mrejeleaji sio isomorphic, kwani mwisho hauna arcs maalum. Tunaweza kusema kwamba kwa muundo usioendelea, utaftaji haufanyiki kwenye sura yenyewe, lakini kwa kufungwa kwake kwa mpito pamoja na aina moja au zaidi ya uhusiano. B. Mchoro wenye muktadha hasi huwakilisha jozi

< положительный образец, отрицательный образец >,

ambapo kila sampuli ni rahisi au isiyoendelea. Utaratibu wa utafutaji wa muundo kama huo unafafanuliwa kama ifuatavyo. Utafutaji unafanywa kulingana na muundo mzuri unaopatikana na mrejeleaji R majina ya vipeo vya kawaida kwa sampuli chanya na hasi imedhamiriwa. Majina haya yanabadilishwa katika nafasi zinazolingana katika muundo hasi, ambao hutafutwa tena. Ikiwa seti ya warejeleaji katika kesi hii ni tupu, basi R inachukuliwa kama kirejeleo cha utafutaji wa muundo na muktadha mbaya. Vinginevyo, utafutaji hautarudisha matokeo yoyote.

Ukosefu wa uhusiano kati ya sampuli chanya na hasi inawakilisha kesi maalum utaratibu ulioelezwa hapo juu, ambapo utafutaji wa sampuli zote mbili unafanywa kwa kujitegemea, na matokeo ya jumla inafafanuliwa kwa njia sawa.

Sampuli tata - inawakilisha mchanganyiko wa aina za sampuli zilizoorodheshwa hapo juu. Matokeo ya utafutaji changamano wa muundo ni mchanganyiko wa taratibu za utafutaji kwa kila sampuli katika idadi ya watu.

Tutagawanya operesheni ya "utaftaji wa muundo" katika aina mbili kuu: lahaja moja na lahaja nyingi tafuta.

Katika kesi ya utafutaji wa lahaja moja, rejeleo moja (ya kwanza inayolingana) hupatikana kwenye hifadhidata, wakati katika utaftaji wa anuwai, mchakato unaendelea hadi vipande vyote vinavyowezekana vya hifadhidata ambavyo vinaweza kuwa marejeleo kwa sampuli fulani hupatikana.

Mojawapo ya mambo muhimu ambayo huamua matokeo ya utafutaji wa muundo katika utafutaji wa lahaja moja ni kama mpangilio wa kuchanganua fremu umewekwa au la wakati wa kutekeleza utafutaji wa muundo. Kwa mfano, kwa sura ya mnyororo inaweza kutazamwa kutoka kushoto kwenda kulia au kulia kwenda kushoto, na mti - kutoka mizizi hadi majani au ndani. mwelekeo wa nyuma. Katika hali ambapo utaratibu wa kutazama ni tabia ya nje hifadhidata, inaweza kusasishwa (imejengwa ndani) au kubadilishwa wakati wa operesheni (inayoweza kubinafsishwa).

Operesheni nyingine ya hifadhidata inaambatanishwa. Maana ya operesheni hii ni kuambatanisha data mpya kwenye hifadhidata. Hoja ya operesheni hii ina sehemu mbili: ya kwanza ni kipande ambacho kimewekwa kwenye hifadhidata, na ina shirika sawa, i.e. lina sura na seti ya vipengele vinavyohusishwa na vertices zake; sehemu ya pili ni, kwa ujumla, anwani ya ushirika inayoonyesha ni wima gani za fremu ambayo kipande kipya kitaambatishwa.

Kwa kawaida, mifumo ya hifadhidata huwa na lugha ya kuuliza ambayo inaweza kusaidia watumiaji wake kuuliza matukio. Kuna aina mbili kama hizo - aljebra ya uhusiano na calculus ya uhusiano. Ya kwanza ni ya kitaratibu ambayo inachukua hali za uhusiano kama pembejeo na mifano ya uhusiano wa matokeo kama pato. Hutumia unary au hesabu ya binary. Aljebra ya uhusiano inafanywa kwa kujirudia na kutibiwa kama mahusiano.

Bidhaa ya Cartesian (Χ)

Inachanganya habari kutoka kwa mahusiano mawili tofauti hadi moja.

Uteuzi - r Χ s,

ambapo r na s ni uwiano, na matokeo yao yatafafanuliwa kama

r Χ s = (qt | q ∈ r na t ∈ s).

Hitimisho. Huanzisha uhusiano unaoonyesha vitabu na nakala zote zilizoandikwa kwa kutumia kitabu cha kiada.

Badilisha jina la operesheni (ρ).

Mahusiano ya aljebra ya uhusiano ni matokeo, lakini bila jina lolote. Operesheni ya kubadilisha jina inakuwezesha kubadilisha thamani ya pato, iliyoonyeshwa na barua ndogo ya Kigiriki ρ .

Uteuzi - ρ x(E),

ambapo matokeo ya usemi E huhifadhiwa na jina x.

Shughuli za ziada:

  • kuweka makutano;
  • kazi;
  • uhusiano wa asili.

Hesabu ya uhusiano

Lugha ya uulizaji si ya kiutaratibu, kumaanisha inakuambia la kufanya, lakini haielezi jinsi ya kuitekeleza. Hesabu ya uhusiano huja katika aina mbili:

  • hesabu ya uwiano wa tuple;
  • kuchuja masafa ya kutofautiana.

Notation - T/Condition: Hurejesha nakala zote za T zinazokidhi hali. Matokeo. Hurejesha nakala zilizo na jina. TRC inaweza kuhesabiwa. Tunaweza kutumia vibainishi vya kuwepo (∃) na vya jumla (∀). Hitimisho. Swali lililo hapo juu litatoa matokeo sawa na ya awali.

Kokotoo ya Uhusiano ya Kikoa DRC

Tofauti ya kichujio hutumia kikoa cha sifa badala ya nambari kamili za nakala (kama inavyofanywa katika TRC iliyotajwa hapo juu).

Uteuzi - (a 1, a 2, a 3, ..., a n | P (a 1, a 2, a 3, ..., a n)),

ambapo a1, a2 ni sifa, na P inaashiria fomula zilizoundwa na maadili ya ndani.

Hitimisho. Huweka makala, ukurasa, na mada kutoka kwa uhusiano wa TutorialsPoint, ambapo mada ni hifadhidata.

Kama vile TRC, DRC pia inaweza kuandikwa kwa kutumia vihakiki vilivyopo na vya jumla. DRC pia inajumuisha waendeshaji aljebra wenye uhusiano. Nguvu ya kujieleza ya hesabu, calculus na uwiano wa mahusiano kati ya pointi ni sawa.

Tofauti na mipango ya calculus ya uhusiano na aljebra

Mtindo wa ER, unapofikiriwa katika michoro, hutoa mapitio mazuri mahusiano muhimu ambayo ni rahisi kuelewa. Uwakilishi wa schematic unaweza kupangwa kwa mchoro wa uhusiano, yaani, wanaweza kuundwa kwa kushirikiana na kila mmoja. Haiwezekani kuleta vikwazo vyote vya ER katika muundo wa uhusiano, lakini muundo wa takriban unaweza kuzalishwa. Kuna michakato na algoriti kadhaa zinazopatikana za kubadilisha chati kuwa mfumo huu. Baadhi yao ni otomatiki, wakati wengine huundwa kwa mikono. Michoro ya ER inajumuisha vigezo vifuatavyo:

  • asili na sifa zake;
  • uhusiano, ambao ni uhusiano kati ya maadili hapo juu.

Ulinganisho wa vitu na mahusiano hutokea kwa njia tofauti na mifumo. Kwa mfano, huluki ni kitu ulimwengu halisi na baadhi ya sifa. Mchakato wa kulinganisha, algorithm ni kama ifuatavyo:

  • tengeneza meza kwa kila kitu;
  • sifa zinapaswa kuwa sehemu za meza zilizo na aina zinazolingana za data;
  • tangaza ufunguo wa msingi.

Uhusiano ni uhusiano kati ya vyombo. Mchakato wa ujumuishaji ni kama ifuatavyo:

  • kuunda meza kwa mahusiano;
  • ongeza funguo msingi za huluki zote zinazoshiriki kama sehemu za jedwali zenye aina zinazofaa za data;
  • ikiwa uhusiano una sifa yoyote, weka kila sifa kama uwanja wa meza;
  • unganisha ufunguo wa msingi unaounda vingine vyote kwa vitu vinavyoshiriki;
  • taja vikwazo vyote muhimu vya kigeni.

Maonyesho ya seti dhaifu na vitu vya hierarchical hutokea kulingana na mfumo fulani. Kwanza kabisa, unahitaji kuelewa misingi muhimu na maana. Seti dhaifu ya vitu ni ile ambayo haina ufunguo wowote wa msingi unaohusishwa nayo. Mchakato wa kuchora ramani ni kama ifuatavyo:

  • kuunda meza kwa seti dhaifu ya vitu;
  • ongeza sifa zote kwenye schema kama uwanja;
  • taja ufunguo wa msingi wa kitambulisho;
  • weka vikwazo vyote muhimu vya kigeni.

Uchoraji ramani wa vitu vya daraja hutegemea utaalamu au ujanibishaji wa lugha ya aljebra ya uhusiano na hutokea katika mfumo wa huluki zinazofuatana. Algorithm ni kama ifuatavyo:

  • kuunda meza kwa vitu vyote kwa kiwango cha juu cha chini;
  • ongeza funguo za msingi;
  • kwa kiwango cha chini, tekeleza sifa nyingine zote za vitu vya chini;
  • tangaza funguo za msingi za meza;
  • weka vikwazo muhimu vya kigeni.

Chaguzi zilizopo za kuelezea, kuhifadhi, kubadilisha habari

SQL ni lugha ya programu ya hifadhidata za uhusiano data. Imetengenezwa kwa aljebra na calculus ya uwiano wa tuples. SQL hutolewa kama kifurushi chenye usambazaji mkubwa wa mfumo wa usimamizi wa hifadhidata. Ina data na lugha zote mbili za kuzibadilisha. Kwa kutumia Sifa za Ufafanuzi Data ya SQL algebra ya uhusiano, unaweza kubuni na kurekebisha schema ya hifadhidata, wakati sifa za udhibiti na urekebishaji, pamoja na urekebishaji wa data, hukuruhusu kuhifadhi na kupata habari iliyosakinishwa kwenye mfumo. Hutumia seti zifuatazo za amri kufafanua muundo na mfumo:

  • huunda majedwali na maoni mapya kutoka kwa DBMS.
  • hutupa amri.
  • inabadilisha schema ya hifadhidata.
  • amri hii inaongeza sifa kwa kitu cha aina ya kamba.

SQL imewekwa na Lugha ya Kudanganya Data (DML). Inarekebisha mfano wa hifadhidata kwa kuingiza, kusasisha, na kufuta habari. DML ina jukumu la kubadilisha data zote. SQL ina seti ifuatayo ya amri katika sehemu ya DML:

  1. SELECT ni mojawapo ya amri za msingi za hoja. Ni sawa na utendakazi wa makadirio ya aljebra ya uhusiano. Huchagua sifa kulingana na hali iliyoelezwa katika kifungu cha WHERE.
  2. KUTOKA - Sehemu hii inachukua jina kama hoja ambayo sifa zinapaswa kuchaguliwa/kutarajiwa. Ikiwa zaidi ya jina moja limepewa, bidhaa hii inalingana na bidhaa ya Cartesian.
  3. WAPI - Sehemu hii inabainisha kiima au masharti ambayo ni lazima yatimizwe ili kustahiki sifa iliyotarajiwa.

Pia kuna amri:

  • ingiza;
  • kubadilisha maadili;
  • ufutaji.

Kuunda Maswali ya Aljebra ya Uhusiano

Wakati wa kujenga utaftaji, kazi ni kupata muundo wa shughuli ambao utasababisha hitimisho sahihi. Operesheni za kimsingi za aljebra ya uhusiano ni shughuli rahisi zenye uhusiano mmoja au mbili kama operesheni. Madhara ya pamoja ya mlolongo huamua matokeo ya mwisho. Kwa kuwa mfumo wa aljebra wa uhusiano katika hifadhidata ni rahisi sana, matokeo mengi ya kati yanaweza kupatikana kabla ya kufikia matokeo ya mwisho, haya pia hutumika kama uendeshaji ambao hutoa data mpya ya matokeo.

Kwa waendeshaji wengi, mpangilio wa maswali na utekelezaji wao haujalishi, ikimaanisha kuwa matokeo sawa yanaweza kupatikana kwa kuunda na kuchanganya data ya kati kwa njia tofauti. Kwa mazoezi, kutafuta hifadhidata ni rahisi sana. Mfumo wa kutekeleza shughuli na matokeo ya kati huamuliwa na kiboreshaji cha hoja. Wakati wa kuunda maswali na mahitaji, unahitaji
kwanza chagua mahusiano gani yanahitajika ili kufikia jibu, na kisha ueleze shughuli na matokeo ya kati. Muundo wa hoja ya aljebra ya uhusiano katika hifadhidata yenye matokeo inaweza kuwakilishwa kama mchoro. Viboreshaji vya mahitaji hujaribu kufikia utekelezaji bora zaidi iwezekanavyo. Kwa mazoezi, hii ina maana kwamba wanajaribu kupunguza matokeo ya kati haraka iwezekanavyo. Mifano ya kawaida ya algebra ya uhusiano itasaidia na hili.

Taarifa kuhusu magari ya modeli ya 1996 ambapo mapungufu yalipatikana wakati wa ukaguzi wa 1999.

Kwanza, habari kuhusu mashine huonyeshwa ili kuelewa maana ya sifa zote za uhusiano. Taarifa za ukaguzi zimehifadhiwa kwenye jedwali la Ukaguzi, na ikiwa makosa yanapatikana, yameandikwa kwenye jedwali la Tatizo. Hivyo meza hizi tatu zinahitajika ili kupata taarifa zinazohitajika.

Magari tu kutoka 1996 yanavutia. Msururu gari inawakilishwa kama thamani kuweka sifa katika safu ya jedwali la habari la mashine. Kwanza matokeo ya kati lina nakala zinazowakilisha lahaja za 1996.

Kwa hivyo, safu tu zinazofunika kipindi hiki zinahitajika. Lazima utumie uteuzi ili kuzitoa. Sasa kuna magari na ukaguzi ambao ulihitajika. Kisha safu huunganishwa kwa kutumia operesheni ya muungano. Nambari ya kawaida ya rejista lazima iunganishwe nao, kwa kuwa ni safu pekee ya kawaida, kujiunga kwa asili hutumiwa.

Ili kujua ikiwa makosa yalipatikana wakati wa majaribio, unahitaji kuhusisha mistari ya shida na jaribio. Baada ya kuunganisha safu za udhibiti kwenye magari, unaweza kuunganisha matokeo haya kwenye meza ya makosa. Kujiunga lazima kuegemea kawaida nambari ya usajili na tarehe iliyothibitishwa. Hizi ni nguzo pekee za kawaida kwenye meza, hivyo kujiunga kwa asili hutumiwa.

Chaguzi za Calculus bila matokeo ya kati

Habari inayohitajika: Jina la dereva kwa mfano wa mwaka wa 1995 au magari ya zamani ambayo hayajajaribiwa kwa 2000. Jina liko kwenye jedwali la Dereva. Utekelezaji wa sheria ni ilivyoelezwa katika meza "Ukaguzi na magari katika gari la meza". Kwa hivyo meza hizi tatu zinahitajika. Kwanza, unahitaji kutambua magari ambayo hayajakaguliwa kwa 2000. Haiwezekani kutatua tatizo hili kwa kutumia tu ukaguzi ulioorodheshwa kwenye meza, kwa kuwa ina data kuhusu ukaguzi huo ambao ulifanyika, sio wale ambao hawakutekelezwa. Tatizo hili linatatuliwa kwa kutafuta magari ya ziada ambayo yanajaribiwa kabla ya mwaka wa 2000. Kwa kweli, nambari zao za usajili tu zinahitajika.

Kuna mifano mingine kando na hiyo hapo juu inayoonyesha jinsi habari inaweza kubadilishwa au kupatikana. Vibadala vya hoja vinaweza kuboreshwa kwa kutumia utendakazi maalum. Kimsingi, kufanya utafutaji na kutafuta data iwe rahisi na rahisi iwezekanavyo, kuna mfano wa uhusiano hesabu.

Je, habari imehifadhiwa na kulindwa wapi?

Algebra huhifadhiwa katika fomati za faili zilizo na rekodi. Washa kiwango cha kimwili maelezo ya kweli yamewekwa katika umbizo la sumakuumeme kwenye baadhi ya kifaa. Vifaa hivi vya kuhifadhi vinaweza kugawanywa katika vikundi vitatu:

  1. Msingi. Aina hii inajumuisha kumbukumbu ambayo inaweza kufikiwa moja kwa moja na CPU. Rejesta, kumbukumbu ya haraka(cache) na kuu (RAM) zinapatikana moja kwa moja kwa moja ya kati, kwa kuwa zote ziko kwenye ubao wa mama au chipset. Hifadhi hii kwa kawaida ni ndogo sana, ni ya haraka sana na ni tete. Ili kudumisha hali hiyo inahitajika chanzo cha kudumu lishe. Katika tukio la kushindwa, data yake yote inapotea.
  2. Sekondari. Inatumika kuhifadhi habari kwa matumizi ya baadaye au Hifadhi nakala. Inajumuisha vifaa vya kumbukumbu ambavyo si sehemu ya chipset au ubao wa mama processor, kwa mfano disks magnetic, diski za macho (DVD, CD, nk.), diski ngumu, anatoa flash na kanda za magnetic.
  3. Elimu ya juu. Inatumika kuhifadhi idadi kubwa ya data. Kwa kuwa vifaa vile vya kuhifadhi viko nje ya mfumo wa kompyuta, ni polepole zaidi kwa kasi. Vifaa hivi vya uhifadhi hutumiwa hasa kuhifadhi nakala ya mfumo mzima. Diski za macho na kanda za sumaku hutumiwa sana kwa uhifadhi wa elimu ya juu.

Utendaji maalum wa aljebra ya uhusiano ni muhimu kwa ufanisi wa hoja.

Muundo wa uhifadhi

Mfumo wa kompyuta una wazi uongozi fulani kumbukumbu. CPU ina ufikiaji wa moja kwa moja kwa mfumo mkuu na rejista za kwenye-chip. Wakati kuu wa ufikiaji wa kumbukumbu ni dhahiri chini ya kasi ya CPU. Ili kupunguza utofauti huu, kashe huletwa. Kumbukumbu ya akiba hutoa nyakati za ufikiaji wa haraka zaidi na ina data ambayo inafikiwa mara nyingi na CPU.

Kumbukumbu na wengi ufikiaji wa haraka ni ghali zaidi. Vifaa vikubwa vya uhifadhi hutoa kasi ya chini, na ni nafuu, hata hivyo wanaweza kuhifadhi kiasi kikubwa cha data ikilinganishwa na rejista ya processor au cache.

Anatoa sumaku na ngumu ni vifaa vya kawaida vya uhifadhi wa sekondari katika kisasa mifumo ya kompyuta. Wanaitwa magnetic na hujumuisha msingi wa chuma. Disks hizi zimewekwa kwa wima kwenye spindle. Kichwa cha kusoma/kuandika husogea kati yao na hutumika kutoa sumaku au kuondoa sehemu kama hiyo chini. Inaweza kutambuliwa kama 0 (sifuri) au 1 (moja).

Anatoa ngumu zimeundwa kwa utaratibu uliofafanuliwa kwa uhifadhi wa data bora. Ina miduara mingi inayoitwa nyimbo. Kila wimbo umegawanywa zaidi katika sekta, ambazo kwa kawaida huhifadhi baiti 512 za data.

Uendeshaji wa faili

Uendeshaji kwenye mfumo wa lugha ya aljebra ya uhusiano na hifadhidata yake inaweza kuainishwa kwa upana katika kategoria mbili:

  • sasisha;
  • tafuta.

Aina ya kwanza hurekebisha thamani za data kwa kuingiza, kufuta au kusasisha. Kwa upande mwingine, shughuli za utafutaji hazihariri habari, lakini zipate baada ya kuchuja kwa hiari kwa masharti. Katika aina zote mbili za shughuli, uteuzi una jukumu muhimu. Mbali na kuunda na kufuta faili, kuna shughuli kadhaa ambazo zinaweza kufanywa ndani yao:

  1. Fungua - ipo katika mojawapo ya njia mbili za kusoma au kuandika. Katika kesi ya kwanza, mfumo wa uendeshaji hauruhusu mtu yeyote kubadilisha data. Kwa maneno mengine, data inasomwa tu. Faili zinazofunguliwa katika hali ya Kusoma zinaweza kushirikiwa na vitu vingi. Hali ya kurekodi hukuruhusu kubadilisha data. Faili zinaweza kusomwa lakini haziwezi kushirikiwa.
  2. Karibu ndio zaidi operesheni muhimu kwa mtazamo mfumo wa uendeshaji, kwani huondoa kufuli zote (ikiwa iko katika hali ufikiaji wa umma), huhifadhi data (ikiwa imerekebishwa) kwa midia ya upili na kuachilia bafa na vidhibiti vyote vinavyohusishwa na faili.
  3. Kuweka faharasa ni mbinu ya muundo wa taarifa kwa ajili ya kupata rekodi kwa ufanisi kutoka kwa faili za mfumo kulingana na baadhi ya sifa ambapo mfumo ulitekelezwa. Imedhamiriwa kulingana na sifa.

Indexing inaweza kuwa ya aina zifuatazo:

  1. Msingi umefafanuliwa katika faili ya data iliyoagizwa. Faili ya habari imepangwa katika uwanja muhimu.
  2. Faharasa ya pili inatolewa kutoka kwa sehemu ambayo ni ufunguo wa mgombea na ina thamani ya kipekee katika kila rekodi au si ufunguo wenye thamani rudufu.
  3. Kuunganisha kunafafanuliwa katika faili ya data iliyoagizwa, katika sehemu isiyo ya ufunguo.

Mfumo wa usimamizi wa hifadhidata au DBMS inarejelea teknolojia ya kuhifadhi na kupata taarifa za mtumiaji kutoka ufanisi mkubwa pamoja na hatua zinazofaa za usalama. Kuzingatia kwa kina Swali hili linaongoza kwa hitimisho kwamba aljebra ya uhusiano ni lugha ya waendeshaji ambao huchukua mahusiano kama hoja na kuyarudisha kama matokeo.

Aljebra ya uhusiano inategemea nadharia iliyowekwa na ndio msingi wa mantiki ya hifadhidata.
Nilipokuwa nikisoma tu muundo wa hifadhidata na SQL, utambuzi wa awali wa aljebra ya uhusiano ulisaidia sana maarifa zaidi kutoshea kichwa changu kwa usahihi, na nitajaribu kufanya nakala hii kuwa na athari sawa.

Kwa hivyo ikiwa utaanza masomo yako katika eneo hili au una nia tu, tafadhali bonyeza paka.

Database ya uhusiano

Kwanza, hebu tuanzishe dhana ya hifadhidata ya uhusiano ambayo tutafanya vitendo vyote.

Hifadhidata ya uhusiano ni mkusanyiko wa uhusiano ambao una habari zote ambazo lazima zihifadhiwe kwenye hifadhidata. KATIKA ufafanuzi huu Tunavutiwa na uhusiano wa neno, lakini kwa sasa tutaiacha bila ufafanuzi mkali.
Hebu fikiria meza ya bidhaa bora zaidi.

Jedwali la PRODUCTS

ID NAME KAMPUNI PRICE
123 Vidakuzi Upande wa Giza LLC 190
156 Chai Upande wa Giza LLC 60
235 Mananasi OJSC "Frukty" 100
623 Nyanya OOO "Mboga" 130

Jedwali lina safu 4, safu katika jedwali ni tuple katika nadharia ya uhusiano. Seti ya nakala zilizoagizwa huitwa uhusiano.
Kabla ya kufafanua uhusiano, hebu tuanzishe neno lingine - kikoa. Vikoa vinavyohusiana na jedwali ni safu wima.

Kwa uwazi, sasa tunatanguliza ufafanuzi mkali wa uhusiano.

Acha N iweke D1,D2, … ipewe. Dn (vikoa), uhusiano R juu ya seti hizi ni seti ya N-tuples zilizoagizwa za fomu. , ambapo d1 ni ya D1, nk. Seti D1,D2,..Dn zinaitwa vikoa vya uhusiano R.
Kila kipengele cha nakala inawakilisha thamani ya mojawapo ya sifa zinazolingana na mojawapo ya vikoa.

Vifunguo katika mahusiano
Katika uhusiano, hitaji ni kwamba nakala zote lazima ziwe tofauti. Ili kutambua tuple kwa njia ya kipekee, kuna ufunguo msingi. Ufunguo msingi ni sifa au seti ya idadi ya chini kabisa ya sifa ambayo hutambulisha nakala fulani na haina sifa za ziada.
Maana yake ni kwamba sifa zote katika ufunguo msingi lazima ziwe muhimu na za kutosha ili kutambua nakala fulani, na kuacha sifa zozote kwenye ufunguo kutaifanya isitoshe kutambua.
Kwa mfano, katika meza hiyo ufunguo utakuwa mchanganyiko wa sifa kutoka safu ya kwanza na ya pili.

Jedwali la madereva

Inaweza kuonekana kuwa shirika linaweza kuwa na madereva kadhaa, na ili kutambua dereva pekee, thamani yote kutoka kwa safu ya "Jina la Shirika" na kutoka kwa safu ya "Jina la Dereva" inahitajika. Ufunguo kama huo unaitwa ufunguo wa mchanganyiko.

Katika hifadhidata ya uhusiano, majedwali yameunganishwa na yanahusiana kama jedwali kuu na ndogo. Uunganisho kati ya meza kuu na ndogo hufanywa kupitia ufunguo wa msingi ( ufunguo wa msingi) meza kuu na ufunguo wa nje (ufunguo wa kigeni) subtable.
Ufunguo wa kigeni ni sifa au seti ya sifa ambazo ni ufunguo msingi katika jedwali kuu.

Nadharia hii ya maandalizi itatosha kufahamiana na shughuli za kimsingi za aljebra ya uhusiano.

Uendeshaji wa aljebra ya uhusiano

Operesheni nane za kimsingi za aljebra ya uhusiano zilipendekezwa na E. Codd.
  • Muungano
  • Makutano
  • Kutoa
  • Bidhaa ya Cartesian
  • Sampuli
  • Makadirio
  • Kiwanja
  • Mgawanyiko
Nusu ya kwanza ya shughuli ni sawa na shughuli sawa kwenye seti. Shughuli zingine zinaweza kuonyeshwa kulingana na shughuli zingine. Wacha tuangalie shughuli nyingi kwa mifano.

Kwa uelewa, ni muhimu kukumbuka kuwa matokeo ya operesheni yoyote ya algebra kwenye mahusiano ni uhusiano mwingine, ambao unaweza kutumika katika shughuli zingine.
Wacha tuunde meza nyingine ambayo itakuwa muhimu kwetu katika mifano.

Jedwali la WAUZAJI

ID MUUZAJI
123 OOO "Dart"
156 OJSC "Vedro"
235 CJSC "Vegetable Baza"
623 JSC "Kampuni"

Hebu tukubaliane kwamba katika jedwali hili la Kitambulisho kuna ufunguo wa kigeni unaohusishwa na ufunguo msingi wa jedwali la PRODUCTS.

Kwanza, hebu tuangalie zaidi operesheni rahisi- jina la uhusiano. Matokeo yake yatakuwa uhusiano sawa, yaani, kwa kufanya operesheni ya PRODUCTS, tutapokea nakala ya uhusiano wa PRODUCTS.

Makadirio
Makadirio ni operesheni ambayo sifa kutoka kwa uhusiano hutolewa tu kutoka kwa vikoa vilivyoainishwa, ambayo ni, safu wima muhimu tu huchaguliwa kutoka kwa jedwali, na ikiwa nakala kadhaa zinazofanana zinapatikana, basi mfano mmoja tu wa nakala kama hiyo hubaki ndani. uhusiano unaotokana.
Kwa mfano, hebu tufanye makadirio kwenye jedwali la PRODUCTS kwa kuchagua ID na PRICE kutoka humo.

Syntax ya uendeshaji:
π (KITAMBULISHO, BEI) BIDHAA

Katika hali ya sampuli tunaweza kutumia yoyote kujieleza kwa mantiki. Hebu tufanye chaguo jingine kwa bei kubwa kuliko 90 na kitambulisho cha bidhaa chini ya 300:

σ(PRICE>90^ID<300) PRODUCTS

Kuzidisha
Kuzidisha au bidhaa ya Cartesian ni operesheni inayofanywa kwenye mahusiano mawili, kwa sababu hiyo tunapata uhusiano na vikoa vyote kutoka kwa mahusiano mawili ya awali. Nakala katika vikoa hivi zitakuwa mchanganyiko unaowezekana wa nakala kutoka kwa uhusiano wa awali. Itakuwa wazi zaidi na mfano.

Tunapata bidhaa ya Cartesian ya meza za BIDHAA na WAUZAJI.
Syntax ya uendeshaji:

BIDHAA × WAUZAJI
Utagundua kuwa majedwali haya mawili yana kikoa sawa cha kitambulisho. Katika hali hii, vikoa vilivyo na jina moja hutanguliwa na jina la uhusiano unaolingana, kama inavyoonyeshwa hapa chini.
Kwa ufupi, hebu tuzidishe sio uwiano kamili, lakini sampuli zilizo na kitambulisho cha hali<235

(nakala sawa zimeangaziwa kwa rangi)

PRODUCTS.ID NAME KAMPUNI PRICE KITAMBULISHO CHA WAUZAJI MUUZAJI
123 Vidakuzi Upande wa Giza LLC 190 123 OOO "Dart"
156 Chai Upande wa Giza LLC 60 156 OJSC "Vedro"
123 Vidakuzi Upande wa Giza LLC 190 156 OJSC "Vedro"
156 Chai Upande wa Giza LLC 60 123 OOO "Dart"

Kwa mfano wa kutumia operesheni hii, fikiria hitaji la kuchagua wauzaji wenye bei chini ya 90. Bila bidhaa, itakuwa muhimu kwanza kupata vitambulisho vya bidhaa kutoka jedwali la kwanza, kisha utumie vitambulisho hivi kutoka jedwali la pili ili kupata mahitaji muhimu. MUUZAJI majina, na kwa kutumia bidhaa swali lifuatalo litakuwa:

π (MUUZA) σ (RODUCTS.ID=SELLERS.ID ^ PRICE<90) PRODUCTS × SELLERS

Kama matokeo ya operesheni hii tunapata uhusiano:

MUUZAJI
OJSC "Vedro"
Uunganisho na uunganisho wa asili
Operesheni ya kuunganisha ni kinyume cha operesheni ya makadirio na inajenga uhusiano mpya kutoka kwa mbili zilizopo. Uhusiano mpya unapatikana kwa kuunganisha nakala za mahusiano ya kwanza na ya pili, wakati mahusiano ambayo maadili ya sifa maalum yanafanana yanakabiliwa na kuunganishwa. Hasa, ukiunganisha uhusiano wa PRODUCTS na WAUZAJI, sifa hizi ni sifa za vikoa vya vitambulisho.

Pia, kwa uwazi, unaweza kufikiria unganisho kama matokeo ya shughuli mbili. Kwanza, bidhaa za meza za chanzo zinachukuliwa, na kisha kutoka kwa uhusiano unaosababishwa tunafanya uteuzi na hali ya usawa wa sifa kutoka kwa vikoa sawa. Katika hali hii, hali ni usawa wa PRODUCTS.ID na SELLERS.ID.

Wacha tujaribu kuunganisha uhusiano wa BIDHAA na WAUZAJI na tupate uhusiano.

PRODUCTS.ID NAME KAMPUNI PRICE KITAMBULISHO CHA WAUZAJI MUUZAJI
123 Vidakuzi Upande wa Giza LLC 190 123 OOO "Dart"
156 Chai Upande wa Giza LLC 60 156 OJSC "Vedro"
235 Mananasi OJSC "Frukty" 100 235 CJSC "Vegetable Baza"
623 Nyanya OOO "Mboga" 130 623 JSC "Kampuni"

Uunganisho wa asili hupokea uhusiano sawa, lakini ikiwa tuna schema iliyosanidiwa kwa usahihi katika hifadhidata (katika hali hii, ufunguo msingi wa jedwali la Kitambulisho cha PRODUCTS umeunganishwa na ufunguo wa kigeni wa jedwali la ID ya WAUZAJI), basi uhusiano unaotokana una kikoa kimoja tu cha kitambulisho.

Syntax ya uendeshaji:
BIDHAA ⋈ WAUZAJI;

Unapata uhusiano huu:

PRODUCTS.ID NAME KAMPUNI PRICE MUUZAJI
123 Vidakuzi Upande wa Giza LLC 190 OOO "Dart"
156 Chai Upande wa Giza LLC 60 OJSC "Vedro"
235 Mananasi OJSC "Frukty" 100 CJSC "Vegetable Baza"
623 Nyanya OOO "Mboga" 130 JSC "Kampuni"
Makutano na kutoa.
Matokeo ya operesheni ya makutano itakuwa uhusiano unaojumuisha tuples ambazo zimejumuishwa kabisa katika mahusiano yote mawili.
Matokeo ya kutoa yatakuwa uhusiano unaojumuisha nakala ambazo ni nakala za uhusiano wa kwanza na sio nakala za uhusiano wa pili.
Operesheni hizi ni sawa na shughuli sawa kwenye seti, kwa hivyo nadhani hakuna haja ya kuzielezea kwa undani.
Vyanzo vya habari
  • Misingi ya kutumia na kubuni hifadhidata - V. M. Ilyushechkin
  • kozi ya mihadhara Utangulizi wa Hifadhidata - Jennifer Widom, Chuo Kikuu cha Stanford

Nitashukuru kwa maoni yenye hoja