Файл: Базы данных Учебное пособие.pdf

Добавлен: 28.11.2018

Просмотров: 7741

Скачиваний: 53

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

36 

второй сущности, а каждому экземпляру второй сущности соот-
ветствует только один экземпляр первой сущности.  
 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

В таком случае первую сущность называют родительской, а вторую – до-

черней.  

Пример  связи  1:М  подробно  рассмотрен  на  рисунке 2.3.  Очевидно,  что 

сущности «Студент» и «Группа» связаны друг с другом следующим образом: 

•  в каждой группе может обучаться много студентов; 

•  каждый студент может обучаться только в одной группе. 

 

Рис. 2.3 – Пример связи 1:М между таблицами 

Получается, что одному экземпляру сущности «Группа», например груп-

пе 116, будет соответствовать несколько экземпляров сущности «Студент», т. е. 
студенты Иванов и Белов. Согласно определению этот вид связи является свя-
зью 1:М. Сущность «Группа» выступает здесь в качестве родительской сущно-
сти, а сущность «Студент» – дочерней. Отметим, что каждая сущность может 
выступать  и  в  роли  дочерней,  и  в  роли  родительской  одновременно,  так  как 
может одновременно быть связанной со многими сущностями (рис. 2.3). 

В базе данных связь 1:М исполняется с помощью первичных и внешних 

ключей,  когда  поле,  являющееся  первичным  ключом  родительской  сущности, 

НФ (ПК) Полное название

Декан

ЭТ

Факультет электронной техники

Сергеев А. А.

Эконом. Экономический факультет

Серов И. И.

«Факультет»

Группа (ПК) Специальность

Факультет (ВК)

116

Электронная техника

ЭТ

445

Менеджмент

Эконом.

«Группа»

ВС

Факультет вычислительных систем

Котов В. В.

598

Информационные системы

ВС

599

Информационные системы

ВС


background image

37 

связывается с неключевым атрибутом дочерней сущности, который и становит-
ся  внешним  ключом.  В базах  данных  связь  вида  1:М  является  самой  распро-
страненной. 

2.3.3 Связь «многие-ко-многим» 

Данный вид связи обозначается как М:М или M:N.  

 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

Связь  «многие-ко-многим»  означает,  что  каждому  экзем-

пляру первой сущности может соответствовать несколько экзем-
пляров второй сущности, а каждому экземпляру второй сущности 
может соответствовать несколько экземпляров первой сущности. 
 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

В качестве  примера  рассмотрим  связь  между  сущностями  «Группа»  и 

«Предмет». Очевидно, что у каждой учебной группы имеются занятия по раз-
ным предметам, т. е. одному экземпляру сущности «Группа» соответствует не-
сколько  экземпляров  сущности  «Предмет».  Кроме  того,  по  каждому  предмету 
занятия  могут  проходить  у  разных  групп,  т. е.  одному  экземпляру  сущности 
«Предмет» также соответствует несколько экземпляров сущности «Группа». На 
рисунке 2.4 в качестве примера связи М:N изображено два отношения «Группа» 
и «Предмет», описывающие данные сущности и хранящие информацию об эк-
земплярах. В данном случае приведена ситуация, когда у группы 116 есть заня-
тия по предметам «Экономика» и «Физика», а предмет «Базы данных» изучает-
ся группами 445 и 598. 

 

Рис. 2.4 – Пример связи М:N между сущностями 

Однако  на  представленном  рисунке  нет  реализации  самой  связи  между 

отношениями с помощью первичных и внешних ключей, а указаны лишь запи-
си, которые должны быть связаны по смыслу. 

В реляционной  модели  для  реализации  связей  такого  вида  используют 

дополнительную таблицу, в которой, по сути, и указывается – какой экземпляр 

Группа (ПК) Специальность

...

116

Электронная техника

445

Менеджмент

«Группа»

598

Информационные системы

Предмет (ПК) Курс

Базы данных

2

Экономика

4

«Предмет»

Физика

1


background image

38 

одной сущности связан с каким экземпляром второй сущности. На рисунке 2.5 
приведено решение, позволяющее реализовать подобную ситуацию. 

 

Рис. 2.5 – Реализация связи М:N в БД 

В третьей таблице происходит сопоставление экземпляров обеих сущно-

стей  друг  с  другом.  При  этом  каждая  из  исходных  таблиц  является  родитель-
ской для третьей и связана с ней связью 1:М, а первичный ключ каждой из ро-
дительских таблиц становится частью составного ключа в новой подчиненной 
таблице.  Более подробно особенности реализации связей в  БД  будут  рассмот-
рены в главе 5. 

2.3.4 Управление связанными записями в БД 

Среди рассмотренных видов связи в базе данных в большинстве случаев 

используется только связь 1:М. Связь 1:1 используется редко, ведь чаще всего 
проектировщик  объединяет  атрибуты  сущностей  в  единое  отношение.  Связь 
М:N также преобразовывается в 2 связи типа 1:М. Таким образом получается, 
что  практически  все  связи  в  спроектированной  базе  данных  относятся  к  виду 
1:М. 

При связывании таблиц любая СУБД в дальнейшем производит так назы-

ваемый контроль целостности данных. Он включает в себя следующие прави-
ла: 

Группа (ПК) Специальность

...

116

Электронная техника

445

Менеджмент

«Группа»

598

Информационные системы

Предмет (ПК) Курс

Базы данных

2

Экономика

4

«Предмет»

Физика

1

Группа (ПК) Предмет (ПК) Преподаватель Часы

116

Физика

Бурков А. В.

90

116

Экономика

Трошин В. С.

68

445

Базы данных

Марков К. Т.

98

598

Базы данных

Марков К. Т.

102


background image

39 

•  каждому  экземпляру  (записи)  родительской  таблицы  может  соответ-

ствовать ноль, одна или более записей дочерней таблицы; 

•  каждому экземпляру дочерней таблицы соответствует только один эк-

земпляр родительской таблицы; 

•  в дочерней таблице не может быть экземпляров без соответствующего 

экземпляра в родительской. 

Данные  правила  распространяются  на  все  операции  с  данными  в  дочер-

них  и  родительских  таблицах  и  позволяют  избежать  ситуаций  потери  или  ис-
кажения данных, нарушающих полноту и целостность БД. Во многих случаях 
проектировщик имеет возможность настраивать подобные правила для различ-
ных ситуаций или, например, отключать контроль целостности, но тогда ответ-
ственность за корректное содержимое в базе данных будет нести он сам. 

Рассмотрим наиболее типичные ситуации при операциях с данными. 
При добавлении новых записей в таблицы БД важно понимать, что необ-

ходимо  первоначально  добавлять  записи  в  родительскую  таблицу,  а  затем  – 
в дочернюю. В обратном случае возникнет ситуация, когда добавляемые записи 
не будут иметь связанных записей, а потому их добавление может быть просто 
заблокировано. 

Изменение  данных  в  записях  связанных  таблиц  также  контролируется 

СУБД. Если поля не участвуют в связях, т. е. не являются ни первичными, ни 
внешними ключами, то здесь происходит стандартный контроль, например, на 
соответствие  типу  данных.  Если  поле  является  внешним  ключом  в  дочерней 
таблице, важно, чтобы после изменения его значения у него по-прежнему оста-
лась связанная запись в родительской таблице. Другими словами, дочерняя за-
пись может поменять «родителя», но остаться без него она не должна

В ситуации изменения первичного ключа родительской таблицы возмож-

ны следующие ситуации: 

•  если у записи родительской таблицы нет соответствующих записей в 

дочерней таблице, тогда изменение можно производить; 

•  если  у  записи  родительской  таблицы  есть  соответствующие  записи  в 

дочерней таблице, тогда изменение будет заблокировано процессором 
СУБД, т. к. в противном случае связанные записи в дочерней таблице 
будут связаны с несуществующей записью; 

•  если  у  записи  родительской  таблицы  есть  соответствующие  записи  в 

дочерней таблице, тогда изменение можно произвести в случае, когда 
включено  так  называемое  каскадное  изменение  данных.  Это  значит, 


background image

40 

что  новое  значение  первичного  ключа  родительской  таблицы  будет 
присвоено всем внешним ключам связанных записей дочерней табли-
цы вместо старого измененного значения. 

Удаление  записей  дочерней  таблицы  можно  производить  по  своему 

усмотрению, не обращая внимание на записи родительской таблицы. Очевидно, 
что запись родительской таблицы может не иметь ни одной связанной записи в 
дочерней таблице. 

В обратном  случае,  т. е.  при  удалении  записи  в  родительской  таблице, 

возникает ситуация, аналогичная той, которая происходит при изменении дан-
ных: 

•  если у записи родительской таблицы нет соответствующих записей в 

дочерней таблице, тогда удаление можно производить; 

•  если  у  записи  родительской  таблицы  есть  соответствующие  записи  в 

дочерней  таблице,  тогда  удаление  будет  заблокировано  процессором 
СУБД, т. к. в противном случае связанные записи в дочерней таблице 
будут связаны с несуществующей записью; 

•  если  у  записи  родительской  таблицы  есть  соответствующие  записи  в 

дочерней  таблице, тогда  удаление  можно  произвести  в  случае,  когда 
включено так называемое каскадное удаление данных. Это значит, что 
вместе с удалением записи родительской таблицы произойдет удале-
ние всех связанных записей дочерней таблицы. 

2.4 Реляционные СУБД 

В настоящее время большинство из представленных на рынке СУБД ис-

пользуют реляционную модель данных. Наиболее популярными из них являют-
ся  MySQL,  PostgreSQL,  Microsoft  SQL  Server,  Oracle,  Interbase,  Firebird,  Mi-
crosoft  Access  и  т. д.  В данном  пособии  особое  внимание  уделено  СУБД 
Microsoft  Access  и  MySQL  как  наиболее  доступным  и  простым  при  первона-
чальном  использовании.  Данные  продукты  позволят  на  практике  закрепить 
представленные в пособии теоретические основы баз данных. 

2.4.1 Microsoft Access 

СУБД Microsoft Access является системой управления реляционной базой 

данных, включающей все необходимые инструментальные средства для созда-
ния локальной базы данных, общей базы данных в локальной сети с файловым 
сервером или базы данных на SQL-сервере, а также для создания приложения