ГЛАВА 1
Технологии администрирования баз данных
1.1
Архитектура баз данных
В са­мом ши­роком смыс­ле ин­форма­ци­он­ная сис­те­ма пред­став­ля­ет со­бой прог­рам­мный ком­плекс, фун­кции ко­торо­го сос­то­ят в под­дер­жке на­деж­но­го хра­нения ин­форма­ции в па­мяти компьюте­ра, вы­пол­не­нии спе­цифи­чес­ких для дан­но­го прог­рам­мно­го ком­плек­са пре­об­ра­зова­ний ин­форма­ции и (или) вы­чис­ле­ний, пре­дос­тавле­нии пользо­вате­лям удоб­но­го и лег­ко ос­ва­ива­емо­го ин­терфейса. Обыч­но объемы ин­форма­ции, с ко­торы­ми при­ходит­ся иметь де­ло та­ким сис­те­мам, ве­лики, а са­ма ин­форма­ция име­ет дос­та­точ­но слож­ную струк­ту­ру. Клас­си­чес­ки­ми при­мера­ми ин­форма­ци­он­ных сис­тем яв­ля­ют­ся бан­ков­ские сис­те­мы, сис­те­мы ре­зер­ви­рова­ния ави­аци­он­ных или же­лез­но­дорож­ных би­летов, мест в гос­ти­ницах и т. д.
Ин­форма­ци­он­ные сис­те­мы глав­ным об­ра­зом ори­ен­ти­рова­ны на хра­нение, вы­бор и мо­дифи­кацию пос­то­ян­но су­щес­тву­ющих дан­ных. Их струк­ту­ра за­час­тую очень слож­на, и, хо­тя струк­ту­ры дан­ных раз­личны в раз­ных ин­форма­ци­он­ных сис­те­мах, меж­ду ни­ми мно­го об­ще­го.
По­нятие сог­ла­сован­ности дан­ных яв­ля­ет­ся клю­чевым по­няти­ем баз дан­ных. Ес­ли ин­форма­ци­он­ная сис­те­ма под­держи­ва­ет сог­ла­сован­ное хра­нение ин­форма­ции в не­скольких файлах, мож­но го­ворить о том, что она под­держи­ва­ет БД. Ес­ли же не­кото­рая вспо­мога­тельная сис­те­ма уп­равле­ния дан­ны­ми поз­во­ля­ет ра­ботать с нес­кольки­ми файла­ми, обес­пе­чивая их сог­ла­сован­ность, мож­но наз­вать ее СУБД. Уже только тре­бова­ние под­держа­ния сог­ла­сован­ности дан­ных в нес­кольких файлах не поз­во­ля­ет обойтись биб­ли­оте­кой фун­кций: та­кая сис­те­ма дол­жна иметь не­кото­рые собс­твен­ные дан­ные (ме­тадан­ные) и да­же зна­ния, оп­ре­деля­ющие це­лос­тность дан­ных.
Мо­дели дан­ных. Обоб­щенные струк­ту­ры дан­ных на­зыва­ют мо­деля­ми дан­ных, так как они от­ра­жа­ют пред­став­ле­ние пользо­вате­ля о дан­ных ре­ально­го ми­ра.
Лю­бая мо­дель дан­ных дол­жна со­дер­жать три ком­по­нен­та:
1) струк­ту­ру дан­ных ― опи­сыва­ет точ­ку зре­ния пользо­вате­ля на пред­став­ле­ние дан­ных;
2) на­бор до­пус­ти­мых опе­раций, вы­пол­ня­емых на струк­ту­ре дан­ных. Мо­дель дан­ных пред­по­лага­ет, как ми­нимум, на­личие язы­ка оп­ре­деле­ния дан­ных, опи­сыва­юще­го струк­ту­ру их хра­нения, и язы­ка ма­нипу­лиро­вания дан­ны­ми, вклю­ча­юще­го в се­бя опе­рации из­вле­чения и мо­дифи­кации дан­ных;
3) ог­ра­ниче­ния це­лос­тнос­ти ― ме­ханизм под­держа­ния со­от­ветс­твия дан­ных пред­метной об­ласти на ос­но­ве фор­мально опи­сан­ных пра­вил.
В про­цес­се ис­то­ричес­ко­го раз­ви­тия в СУБД ис­пользо­вались сле­ду­ющие мо­дели дан­ных: и­ерар­хи­чес­кая, се­тевая и ре­ляци­он­ная.
И­ерар­хи­чес­кая мо­дель струк­ту­риру­ет дан­ные в ви­де дре­ва за­писей, где есть один ро­дительский эле­мент и нес­колько до­чер­них.
И­ерар­хи­чес­кая схе­ма сос­то­ит из ти­пов за­писей и ти­пов «ро­дитель—по­томок».
За­пись — это на­бор зна­чений по­лей.
За­писи од­но­го ти­па груп­пи­ру­ют­ся в ти­пы за­писей.
От­но­шения «ро­дительпо­томок» — это от­но­шения ви­да 1 : M меж­ду дву­мя ти­пами за­писей.
В се­тевой мо­дели у ро­дительско­го эле­мен­та мо­жет быть нес­колько по­том­ков, а у до­чер­не­го эле­мен­та — нес­колько пред­ков. За­писи в та­кой мо­дели свя­заны спис­ка­ми с ука­зате­лями.
Ос­новной эле­мент се­тевой мо­дели дан­ных — на­бор, ко­торый сос­то­ит из ти­па «за­пись—вла­делец», име­ни на­бора и ти­па «за­пись—член».
Ре­ляци­он­ная мо­дель пред­ло­жена сот­рудни­ком ком­па­нии IBM Е. Ф. Код­дом в 1970 г. Пе­ревод статьи Код­да на рус­ский язык с опи­сани­ем этой мо­дели опуб­ли­кован в жур­на­ле «СУБД» № 1 за 1995 г. В нас­то­ящее вре­мя эта мо­дель яв­ля­ет­ся фак­ти­чес­ким стан­дартом, на ко­торый ори­ен­ти­ру­ют­ся прак­ти­чес­ки все сов­ре­мен­ные ком­мерчес­кие СУБД.
В упо­мяну­той статье Е. Ф. Код­да ут­вер­жда­ет­ся, что ре­ляци­он­ная мо­дель пре­дос­тавля­ет средс­тва опи­сания дан­ных на ос­но­ве только их ес­тес­твен­ной струк­ту­ры, т. е. без по­треб­ности вве­дения ка­кой-ли­бо до­пол­ни­тельной струк­ту­ры для це­лей ма­шин­но­го пред­став­ле­ния. Дру­гими сло­вами, пред­став­ле­ние дан­ных не за­висит от спо­соба их фи­зиче­ской ор­га­низа­ции. Это обес­пе­чива­ет­ся за счет ис­пользо­вания ма­тема­тичес­кой те­ории от­но­шений (наз­ва­ние «ре­ляци­он­ная» про­ис­хо­дит от англ. relation — от­но­шение).
От­но­шения удоб­но пред­став­лять в ви­де таб­лиц. На рис. 1.1 по­каза­на таб­ли­ца (от­но­шение сте­пени 5), со­дер­жа­щая не­кото­рые све­дения о ра­бот­ни­ках ги­поте­тичес­ко­го пред­при­ятия. Стро­ки таб­ли­цы со­от­ветс­тву­ют кор­те­жам. Каж­дая стро­ка фак­ти­чес­ки пред­став­ля­ет со­бой опи­сание од­но­го объек­та пред­метной об­ласти (в дан­ном слу­чае ра­бот­ни­ка), ха­рак­те­рис­ти­ки ко­торо­го со­дер­жатся в стол­бцах. Мож­но про­вес­ти ана­логию меж­ду эле­мен­та­ми ре­ляци­он­ной мо­дели дан­ных и эле­мен­та­ми мо­дели «сущ­ность—связь». Ре­ляци­он­ные от­но­шения со­от­ветс­тву­ют сущ­ностям, а кор­те­жи — эк­зем­пля­рам сущ­ностей. По­это­му, так же как и в мо­дели «сущ­ность—связь», стол­бцы в таб­ли­це, пред­став­ля­ющей ре­ляци­он­ное от­но­шение, на­зыва­ют ат­ри­бута­ми.
Рис. 1.1 Основные элементы реляционной модели
Каж­дый ат­ри­бут оп­ре­делен на до­мене, по­это­му до­мен мож­но рас­смат­ри­вать как мно­жес­тво до­пус­ти­мых зна­чений дан­но­го ат­ри­бута.
Нес­колько ат­ри­бутов од­но­го от­но­шения и да­же ат­ри­буты раз­ных от­но­шений мо­гут быть оп­ре­деле­ны на од­ном и том же до­мене. В при­мере, по­казан­ном на рис. 1.1, ат­ри­буты «Ок­лад» и «Пре­мия» оп­ре­деле­ны на до­мене «Деньги». По­это­му по­нятие до­мена име­ет се­ман­ти­чес­кую наг­рузку: дан­ные мож­но счи­тать срав­ни­мыми только тог­да, ког­да они от­но­сят­ся к од­но­му до­мену. Срав­не­ние ат­ри­бутов «Та­бельный но­мер» и «Ок­лад» яв­ля­ет­ся се­ман­ти­чес­ки не­кор­рек­тным, хо­тя они и со­дер­жат дан­ные од­но­го ти­па.
Име­нован­ное мно­жес­тво пар «имя ат­ри­бута—имя до­мена» на­зыва­ет­ся схе­мой от­но­шения. Мощ­ность это­го мно­жес­тва на­зыва­ют сте­пенью, или ар­ностью от­но­шения. На­бор име­нован­ных схем от­но­шений пред­став­ля­ет со­бой схе­му ба­зы дан­ных.
Ат­ри­бут, зна­чение ко­торо­го од­нознач­но иден­ти­фици­ру­ет кор­те­жи, на­зыва­ет­ся клю­чевым (или прос­то клю­чом). В при­веден­ном при­мере клю­чом яв­ля­ет­ся ат­ри­бут «Та­бельный но­мер», пос­кольку его зна­чение уни­кально для каж­до­го ра­бот­ни­ка пред­при­ятия. Ес­ли кор­те­жи иден­ти­фици­ру­ют­ся только сцеп­ле­ни­ем зна­чений нес­кольких ат­ри­бутов, то го­ворят, что от­но­шение име­ет сос­тавной ключ.
От­но­шение мо­жет со­дер­жать нес­колько клю­чей. Всег­да один из клю­чей объяв­ля­ет­ся пер­вичным, его зна­чения не мо­гут об­новляться. Все ос­тальные клю­чи от­но­шения на­зыва­ют­ся воз­можны­ми или по­тен­ци­альны­ми клю­чами.
На пер­вом эта­пе про­ек­ти­рова­ния БД не­об­хо­димо соб­рать све­дения о пред­метной об­ласти, в том чис­ле о наз­на­чении, спо­собах ис­пользо­вания и струк­ту­ре дан­ных. По ме­ре раз­ви­тия про­ек­та осу­щест­вля­ет­ся цен­тра­лизо­ван­ное на­коп­ле­ние ин­форма­ции о кон­цепту­альной, ло­гичес­кой, внут­ренней и внеш­них мо­делях дан­ных.
Рис. 1.2. Вид словаря данных
Од­но из глав­ных наз­на­чений сло­варя дан­ных сос­то­ит в до­кумен­ти­рова­нии дан­ных. Так как БД об­слу­жива­ет мно­жес­тво пользо­вате­лей, не­об­хо­димо, что­бы они пра­вильно по­нима­ли, что пред­став­ля­ют со­бой дан­ные.
Вто­рое важ­ное наз­на­чение сло­варя дан­ных — обес­пе­чить эф­фектив­ное вза­имо­действие меж­ду раз­личны­ми ка­тего­ри­ями раз­ра­бот­чи­ков и пользо­вате­лей.
Та­ким об­ра­зом, два важ­нейших наз­на­чения сло­варя дан­ных зак­лю­ча­ют­ся в цен­тра­лизо­ван­ном ве­дении и уп­равле­нии дан­ны­ми как ре­сур­сом на всех эта­пах про­ек­ти­рова­ния, ре­али­зации и экс­плу­ата­ции сис­те­мы, а так­же в обес­пе­чении эф­фектив­но­го вза­имо­действия меж­ду все­ми учас­тни­ками про­ек­та.
В слу­чае рас­пре­делен­ной БД вся БД или ее от­дельные час­ти мо­гут раз­ме­щаться на уда­лен­ных друг от дру­га вы­чис­ли­тельных ма­шинах, со­еди­нен­ных ли­ни­ями свя­зи. Од­ни ра­бочие стан­ции в се­ти мо­гут об­ра­щаться только к ло­кальной БД, а дру­гие — как к ло­кальной, так и к внеш­ним.
В этом слу­чае в сло­варь дан­ных мо­жет быть вве­дена ин­форма­ция обо всех мес­тах фи­зичес­ко­го хра­нения дан­ных, а так­же ог­ра­ниче­ния сек­ретнос­ти, бе­зопас­ности и дос­ту­па. С по­мощью этой ин­форма­ции сло­варь дан­ных мо­жет «ре­шить», ка­ким об­ра­зом удов­летво­рить зап­рос пользо­вате­ля: об­ра­титься к ло­кальной БД или, ес­ли пользо­ватель об­ла­да­ет со­от­ветс­тву­ющи­ми пол­но­мочи­ями, пе­редать зап­рос в дру­гой узел вы­чис­ли­тельной сис­те­мы.
Для ус­пешно­го при­мене­ния сло­варя дан­ных при раз­ра­бот­ке БД сле­ду­ет осу­щест­влять на­коп­ле­ние ин­форма­ции в этом еди­ном ис­точни­ке, из ко­торо­го прог­раммис­ты смо­гут ко­пиро­вать опи­сания струк­тур дан­ных и вклю­чать их в свои прог­раммы на всех эта­пах про­ек­ти­рова­ния. В слу­чае при­мене­ния «руч­но­го» или не­ин­тегри­рован­но­го сло­варя в нем вре­мя от вре­мени мо­жет про­ис­хо­дить на­руше­ние неп­ро­тиво­речи­вос­ти ин­форма­ции по от­но­шению к фак­ти­чес­ко­му сос­то­янию сис­те­мы.
Ес­ли сло­варь дан­ных при­меня­ет­ся для раз­гра­ниче­ния дос­ту­па к БД, то дос­туп к не­му так­же нуж­но раз­гра­ничить. Сле­ду­ет стро­го ог­ра­ничить круг лиц, ко­торым раз­ре­шено мо­дифи­циро­вать сло­варь дан­ных. В от­но­шении хра­нимой в сло­варе ин­форма­ции дол­жен быть ре­али­зован ре­жим сек­ретнос­ти.
Ад­ми­нис­три­рова­ние БД не воз­можно без уче­та ос­но­вопо­лага­ющих свойств от­но­шений.
1. От­сутс­твие кор­те­жей-дуб­ли­катов. Из это­го свойства вы­тека­ет на­личие у каж­до­го кор­те­жа пер­вично­го клю­ча. При оп­ре­деле­нии пер­вично­го клю­ча дол­жно соб­лю­даться тре­бова­ние «ми­нимальнос­ти», т. е. в не­го не дол­жны вхо­дить те ат­ри­буты, ко­торые мож­но от­бро­сить без ущер­ба для ос­новно­го свойства пер­вично­го клю­ча — од­нознач­но оп­ре­делять кор­теж.
2. От­сутс­твие упо­рядо­чен­ности кор­те­жей. Свойство от­сутс­твия упо­рядо­чен­ности кор­те­жей от­но­шения яв­ля­ет­ся следс­тви­ем оп­ре­деле­ния от­но­шения-эк­зем­пля­ра как мно­жес­тва кор­те­жей. От­сутс­твие тре­бова­ния к под­держа­нию по­ряд­ка на мно­жес­тве кор­те­жей от­но­шения уп­ро­ща­ет за­дачи СУБД по хра­нению дан­ных во внеш­ней па­мяти и вы­пол­не­ние зап­ро­сов к БД.
3. От­сутс­твие упо­рядо­чен­ности ат­ри­бутов. Для ссыл­ки на зна­чение ат­ри­бута всег­да ис­пользу­ет­ся имя ат­ри­бута.
4. Ато­мар­ность зна­чений ат­ри­бутов, т. е. сре­ди зна­чений до­мена не мо­гут со­дер­жаться мно­жес­тва зна­чений (от­но­шения).
Схе­мы и объек­ты схе­мы дан­ных ис­пользу­ют­ся в мо­дели без­опас­ности ком­по­нен­та Database Engine для уп­ро­щения вза­имо­от­но­шений меж­ду пользо­вате­лями и объек­та­ми, и, сле­дова­тельно, схе­мы име­ют очень большое вли­яние на вза­имо­действие пользо­вате­ля с ком­по­нен­том Database Engine.
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website