2)Ïîíÿòèå èíäåêñà. Ïðåäëîæåíèÿ ÿçûêà SQL CREATE INDEX è DROP INDEX. Ïàðàìåòð UNIQUE. |
CREATE INDEX – ñîçäàòü èíäåêñ DROP INDEX – óäàëèòü èíäåêñ
Èíäåêñû ñîçäàþòñÿ â ñóùåñòâóþùåé òàáëèöå ÷òîáû áûñòðî è óäîáíî íàéòè ñòðîêè. Ìîæíî ñðçäàòü èíäåêñ äëÿ 1é è áîëåå êîëîíîê òàáëèöû, è êàæäûé èíäåêñ èìååò ñâîå èìÿ. Ïîëüçîâàòåëè íå ìîãóò óâèäåòü èíäåêñû, îíè ñîçäàþòñÿ ÷òîáû óñêîðÿòü âûïîëíåíèå çàïðîñîâ. Èçìåíåíèå òàáëèöû, ñîäåðæàùåé èíäåêñû, çàíèìàåò áîëüøå âðåìåíè, ÷åì èçìåíåíèå òàáëèöû áåç íèõ, òàê êàê èíäåêñû íàäî òîæå ìåíÿòü. Òàê ÷òî íåîáõîäèìîñòü â ñîçäàíèè èíäåêñîâ ïîÿâëÿåòñÿ ëèøü òîãäà, êîãäà êîëîíêè ÷àñòî èñïîëüçóþòñÿ äëÿ ïîèñêà.
CREATE INDEX index_name ON table_name (column_name) – ñîçäàåò ïðîñòåéøèé èíäåêñ
Íàïðèìåð: CREATE INDEX PersonIndex ON Person (LastName);
CREATE UNIQUE INDEX index_name ON table_name (column_name)- ñîçäàåò óíèêàëüíûé èíäåêñ äëÿ òàáëèöû. 2 êîëîíêè íå ìîãóò èìåòü 1í è òîò æå èíäåêñ.
3)Ìîäåëèðîâàíèå ñëîæíûõ ñòðóêòóð ñðåäñòâàìè ðåëÿöèîííîé ÑÓÁÄ. Òðè áàçîâûõ ñïîñîáà ìîäåëèðîâàíèÿ äåðåâüåâ.
Íàèáîëåå ÷àñòî âîçíèêàþò ñëåäóþùèå çàäà÷è, õàðàêòåðíûå òîëüêî äëÿ èåðàðõèé:îïðåäåëèòü, íàõîäèòñÿ ëè óçåë À â ïîääåðåâå, âåðøèíîé êîòîðîãî ÿâëÿåòñÿ óçåë Á; âûáðàòü íåïîñðåäñòâåííîãî ðîäèòåëÿ óçëà À; âûáðàòü âñåõ ðîäèòåëåé óçëà À â ïîðÿäêå èõ óðîâíÿ â äåðåâå; âûáðàòü âñå óçëû, íàõîäÿùèåñÿ â ïîääåðåâå, âåðøèíîé êîòîðîãî ÿâëÿåòñÿ óçåë À; âûáðàòü âñå óçëû, íåïîñðåäñòâåííûì ðîäèòåëåì êîòîðûõ ÿâëÿåòñÿ óçåë À; îïðåäåëèòü íàèáîëåå áëèçêîãî îáùåãî ðîäèòåëÿ äëÿ óçëîâ À è B.. Êðîìå òîãî, ñóùåñòâóþò áîëåå ñëîæíûå çàäà÷è, íàïðèìåð çàäà÷à îáúåäèíåíèÿ äåðåâüåâ, îáðàòíàÿ çàäà÷à – âûäåëåíèå (óäàëåíèå) ïîääåðåâà èç èåðàðõèè, ïîëó÷åíèå êîëè÷åñòâà âñåõ ïîòîìêîâ ó äàííîãî ýëåìåíòà, âû÷èñëåíèå òîãî, íà êàêîì óðîâíå íàõîäèòñÿ íåêîòîðûé óçåë, èëè òðåáóåòñÿ ïîëó÷èòü ñïèñîê âñåõ ïîòîìêîâ çàäàííîãî óçëà, ó êîòîðûõ, â ñâîþ î÷åðåäü, íåò ïîòîìêîâ è ò.ï.
Òðè áàçîâûõ ñïîñîáà ìîäåëèðîâàíèÿ èåðàðõèé Ðåêóðñèâíûé ñïîñîá ïðåäñòàâëåíèÿ èåðàðõèè. Êëàññè÷åñêè ïðîáëåìà ïðåäñòàâëåíèÿ èåðàðõèé ðåøàåòñÿ ñ ïîìîùüþ ðåêóðñèâíîé ñâÿçè, ÷òî ïîçâîëÿåò õðàíèòü â îäíîé òàáëèöå äåðåâî ëþáîé ãëóáèíû è ðàçìåðíîñòè
Ñïîñîá ïðàâîãî è ëåâîãî êîýôôèöèåíòîâ
Ìåòîä, ïðåäëîæåííûé Äæî Ñåëêî, íàçûâàåìûé åù¸ ìåòîäîì âëîæåííûõ ìíîæåñòâ, îñíîâàí íà ïîëíîì îáõîäå äåðåâà (ðèñ. 43). Ïðè ïîëíîì îáõîäå äåðåâà êàæäîìó óçëó íàçíà÷àåòñÿ ïàðà çíà÷åíèé – ëåâûé è ïðàâûé êîýôôèöèåíòû. Ëåâûå êîýôôèöèåíòû ïðèñâàèâàþòñÿ âî âðåìÿ äâèæåíèÿ îò ïðåäêà ê ïîòîìêó. Ïðàâûå êîýôôèöèåíòû íàçíà÷àþòñÿ ïðè äâèæåíèè îò ïîòîìêà ê ïðåäêó.
Ðèñ. 1. Íàçíà÷åíèå êîýôôèöèåíòîâ ïðè âûïîëíåíèè ïîëíîãî îáõîäà äåðåâà
Êîðåíü âñåãäà èìååò ëåâûé êîýôôèöèåíò, ðàâíûé 1. Ðàçíîñòü ìåæäó çíà÷åíèÿìè ëåâîãî è ïðàâîãî êîýôôèöèåíòîâ äëÿ ëèñòüåâ âñåãäà ðàâíà 1. Ïðàâûé êîýôôèöèåíò äëÿ êîðíÿ ðàâåí óäâîåííîìó ÷èñëó óçëîâ â èåðàðõèè (2n), òàê êàê ïðè îáõîäå ìû äîëæíû ïîñåòèòü êàæäûé óçåë äâàæäû, îäèí ðàç ñ ëåâîé ñòîðîíû è îäèí ðàç ñ ïðàâîé ñòîðîíû.
Îòíîøåíèå, ñîîòâåòñòâóþùåå èåðàðõèè èç íàøåãî ïðèìåðà, âûãëÿäèò ñëåä îáðàçîì
Òàêèì îáðàçîì, ãëàâíûé íåäîñòàòîê ìåòîäà âëîæåííûõ ìíîæåñòâ ñîñòîèò â òîì, ÷òî ïðè èçìåíåíèè â ñòðóêòóðå äåðåâà (óäàëåíèè, äîáàâëåíèè óçëîâ) ïðèõîäèòñÿ çàíîâî ïåðåñ÷èòûâàòü çíà÷åíèÿ ïðàâîãî è ëåâîãî êîýôôèöèåíòîâ äëÿ âñåé òàáëèöû. Ýòî äîâîëüíî òðóäî¸ìêàÿ ïðîöåäóðà, îñîáåííî â ñëó÷àå áîëüøèõ èåðàðõèé. Ïîýòîìó òàêîé ñïîñîá ãîäèòñÿ òîëüêî äëÿ íåáîëüøèõ è/èëè ðåäêî èçìåíÿåìûõ òàáëèö.
Ñïîñîá, îïèñàííûé Ðàëüôîì Êèìáàëëîì, ìîæåò ðàññìàòðèâàòüñÿ êàê ðàñøèðåííûé âàðèàíò ðåêóðñèâíîãî ñïîñîáà. Çäåñü ìîäåëü äåðåâà ñòðîèòñÿ íà îñíîâå äâóõ òàáëèö. Ïåðâàÿ òàáëèöà (áàçîâàÿ) õðàíèò ñïèñîê âñåõ óçëîâ, ñíàáæ¸ííûõ óíèêàëüíûìè èäåíòèôèêàòîðàìè, è âñþ ñîäåðæàòåëüíóþ èíôîðìàöèþ ïî êàæäîìó óçëó.
Òåïåðü äîïîëíèì îñíîâíóþ òàáëèöó, ñîäåðæàùóþ ïåðå÷åíü âñåõ óçëîâ èåðàðõèè, âñïîìîãàòåëüíîé òàáëèöåé. Êîíå÷íî, èåðàðõèþ ìîæíî áûëî ïðåäñòàâèòü è â âèäå îäíîé òàáëèöû, íî â ýòîì ñëó÷àå ñîäåðæàòåëüíàÿ ÷àñòü êàæäîãî óçëà áóäåò ïîâòîðÿòüñÿ äëÿ âñåõ ñòðîê, ñâÿçàííûõ ñ êàæäûì èç óçëîâ, ÷òî íåæåëàòåëüíî ñ òî÷êè çðåíèÿ íîðìàëèçàöèè.
Âñïîìîãàòåëüíàÿ òàáëèöà ïî ñâîåé ñòðóêòóðå ïîõîæà íà òàáëèöó ñî ññûëêîé íà íåïîñðåäñòâåííîãî ïðåäêà, íî, â îòëè÷èå îò íå¸, ñîäåðæèò âñå ïîëíûå ïóòè îò êîðíåâîãî ýëåìåíòà äî êàæäîãî óçëà èåðàðõèè â âèäå íàáîðîâ ïàð «ðîäèòåëü-ïîòîìîê». Çäåñü ïîòîìîê ìîæåò íå áûòü íåïîñðåäñòâåííûì (ïðÿìûì) ïîòîìêîì ðîäèòåëÿ, ïîýòîìó äëÿ êàæäîé òàêîé ïàðû óêàçûâàåòñÿ ðàññòîÿíèå («ñòåïåíü ðîäñòâà») îò ïðåäêà äî ïîòîìêà.
Êîðíåâûå óçëû äåðåâüåâ ìîãóò áûòü îáîçíà÷åíû êàê èìåþùèå â êà÷åñòâå ïðåäêà ñàìèõ ñåáÿ ñ íóëåâûì ðàññòîÿíèåì èëè, â âàðèàíòíîì èñïîëíåíèè, çàïèñü, ñîîòâåòñòâóþùàÿ êîðíåâîìó óçëó äåðåâà, ìîæåò ïðîñòî îòñóòñòâîâàòü âî âñïîìîãàòåëüíîé òàáëèöå.
Ïåðâè÷íûé êëþ÷ âî âñïîìîãàòåëüíîé òàáëèöå ñîñòàâÿò âñå òðè ñòîëáöà. Ñòðóêòóðà òàêîé òàáëèöû è åå ñîäåðæèìîå äëÿ èåðàðõèè, ïðåäñòàâëåííîé íà ðèñ. 1, ïîêàçàíà â òàáëèöå 6. Òàáëèöà 1 Ïðèìåð ñòðóêòóðû âñïîìîãàòåëüíîé òàáëèöû
Äàííàÿ ìîäåëü ïîçâîëÿåò ïðîùå, ÷åì â ñëó÷àå ðåêóðñèâíîãî ìåòîäà, íî íåñêîëüêî ñëîæíåå, ÷åì â ñëó÷àå ìåòîäà ïðàâîãî è ëåâîãî êîýôôèöèåíòîâ (èç-çà íåîáõîäèìîñòè ñâÿçûâàíèÿ äâóõ òàáëèö), âûïîëíÿòü ïðàêòè÷åñêè âñå âûáîðêè, ñïåöèôè÷åñêèå äëÿ èåðàðõèé. Äàííûé ñïîñîá, íà ñåãîäíÿøíèé äåíü, ñ÷èòàåòñÿ íàèáîëåå óíèâåðñàëüíûì äëÿ ïðåäñòàâëåíèÿ èåðàðõèé ñðåäñòâàìè ðåëÿöèîííîé ÑÓÁÄ. Îäíàêî îí íàñëåäóåò òàêîé íåäîñòàòîê ñïîñîáà ñî ñòðóêòóðîé ñî ññûëêîé íà ïðåäêà, êàê âîçìîæíîñòü îáðàçîâàíèÿ ïåòåëü. Òðóäíîñòè ìîæåò âûçâàòü ïîääåðæêà öåëîñòíîñòè äëÿ ïîëíûõ ïóòåé îò êîðíÿ äåðåâà äî óêàçàííîãî óçëà. Êðîìå òîãî, ýòîò ñïîñîá îòëè÷àåòñÿ íåêîòîðîé èçáûòî÷íîñòüþ õðàíèìûõ äàííûõ.
Ñåðèÿ ñîîáùåíèé "Áàçû äàííûõ":
×àñòü 1 - Ôàéëîâûå ñèñòåìû. Íàçíà÷åíèå ôàéëîâûõ ñèñòåì.
×àñòü 2 - Îñîáåííîñòè îðãàí õðàíåíèÿ äàííûõ
...
×àñòü 36 - Ïðîáëåìà èíôîðìàöèîííûõ õðàíèëèù è ñêëàäîâ äàííûõ. Õðàíåíèå áîëüøèõ îáú¸ìîâ äàííûõ. Óïðàâëåíèå ñêëàäàìè äàííûõ.
×àñòü 37 - Ñåòåâûå ñèñòåìû (ñèñòåìû, ðåàëèçóþùèå ñåòåâóþ ìîäåëü äàííûõ).
×àñòü 38 - 2)Ïîíÿòèå èíäåêñà. Ïðåäëîæåíèÿ ÿçûêà SQL CREATE INDEX è DROP INDEX. Ïàðàìåòð UNIQUE.
×àñòü 39 - Èåðàðõè÷åñêèå ÑÓÁÄ.
×àñòü 40 - Ïðåäñòàâëåíèÿ. Îïðåäåëåíèå ïðåäñòàâëåíèÿ. SQL ïðåäëîæåíèÿ CREATE VIEW è DROP VIEW. Îñîáåííîñòè îïåðàöèé
...
×àñòü 43 - Ìåòîä âñïîìîãàòåëüíîé òàáëèöû äëÿ ñëó÷àÿ ïðîèçâîëüíîãî ãðàôà. Îòëè÷èÿ îò ñëó÷àÿ ìîäåëèðîâàíèÿ èåðàðõèé
×àñòü 44 - Îáúåêòíî-îðèåíòèðîâàííàÿ ìîäåëü è ðåëÿöèîííàÿ ìîäåëü. Ñõîäñòâî è îòëè÷èÿ.
×àñòü 45 - Èñïîëüçîâàíèå «êîîðäèíàòíîãî» ìåòîäà äëÿ ìîäåëèðîâàíèÿ èåðàðõèé è ïðîèçâîëüíûõ ãðàôîâ. Åãî äîñòîèíñòâà è
| Ðóáðèêè: |
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |