Для чего создаются связи в бд

Для чего создаются связи в бд

Иногда при работе с базой данных возникает потребность получить не полную, а частичную информацию об интересующем объекте. Например, в базе данных «Университет» имеется полная информация о преподавателях, студентах, дисциплинах, успеваемости, материальной базе и др. Безусловно, вся эта информация связана между собой, образуя своеобразную цепь. Если потащить за одно звено, то можно вытащить всю цепь. То же можно сказать и об информации по электродвигателям. Полная информация содержит сведения об электрических параметрах, о конструктивных параметрах, о заводах–изготовителях, о стоимости и др.

Если все эти сведения размещать в одной сплошной таблице, то в случае потребности получения информации только об электрических параметрах интересуемого электродвигателя, будет выдана полная информация о нем. Это не всегда нужно. Чтобы исключить такие случаи, всю информацию разделяют на отдельные логически обоснованные части и для каждой из этих частей создают отдельную таблицу. Реально база данных должна хранить информацию о нескольких взаимосвязанных сущностях, образующих предметную область, то есть быть представленной набором связанных таблиц. Эта связь должна быть синхронной. Это означает, что если удаляется, например, тип двигателя в одной таблице, то удаляется вся связанная с ним информация во всех таблицах и наоборот, если добавляется в базу данных какой–то двигатель, то автоматически во все таблицы добавляется соответствующая информация о нем.

При проектировании таблиц и определении связей между ними используют способ нормализации. Этот способ позволяет разделить исходную, сплошную таблицу на ряд элементарных таблиц, между которыми устанавливаются связи. Такая совокупность связанных таблиц создает единую информационную цепь объекта. Вместе с тем, из этой цепи можно выбирать частичную информацию об объекте, хранимую в отдельной таблице. В то же время связи позволяют осуществить и обратный процесс «сборки» информации по информации одной из таблиц.

Нормализация это пошаговый процесс замены одной таблицы (или набора таблиц) другими, имеющими более простую структуру. Способ нормализации опирается на теорию множеств и реляционной алгебры. На каждом этапе нормализации таблицы приводятся к виду, который называется нормальной формой.

Существует четыре вида связей (отношений между таблицами):

многие ко многим.

Связь один к одному означает, что каждой записи первой таблицы соответствует только одна, связанная с ней запись второй таблицы и наоборот. Такой тип отношений используется крайне редко, так как фактически все данные могут быть помещены в одной таблице. Он полезен тогда, когда одну громоздкую таблицу целесообразно разделить на две с логически сгруппированными полями. Например, в одной таблице разместить электрические параметры электродвигателя, а в другой – его конструктивные параметры.Такое деление используют тогда, когда в одну таблицу выносятся секретные или очень важные данные с ограниченным доступом.

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

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

Читайте также:  Как поставить приветствие в вк группе

Из двух связанных таблиц одна выступает в роли главной (первичной), а другая – в роли подчиненной (вторичной). Например, таблица Дисциплины содержит перечень дисциплин, которые преподаются различными преподавателями. Сведения о преподавателях содержаться в другой таблице Преподаватели. Здесь таблица Дисциплины играет роль главной, а таблица Преподаватели подчиненной.

На рис. 21.2 приведены две таблицы Дисциплины и Преподаватели. В этом примере первичным ключом таблицы Дисциплины является Код дисциплины, а первичным ключом таблицы ПреподавателиКод преподавателя. Для установления связи между этими таблицами в подчиненную таблицу Преподаватели добавлено поле внешнего ключа, роль которого играет поле Код дисциплины таблицы Дисциплины.

Из этого рисунка видно, что дисциплину Информатика преподают два преподавателя Петров И. С. и Серов Г. Л., так как их коды соответственно 2 и 3 связаны с кодом 2 таблицы Дисциплины. Таким образом, реализована связь один ко многим, где одна дисциплина Информатика таблицы Дисциплины связана с двумя преподавателями Петровым И. С. и Серовым Г. Л., таблицы Преподаватели.

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

Главная таблица

Дисциплины: таблица
Код дисциплины Дисциплина Семестр Количество лекций, час. Количество лаб. раб., час.
Математика
2 Информатика
(счетчик)

Поле первичного ключа таблицы Дисциплины.

Преподаватели:таблица
Код дисциплины Код преподавателя Фамилия Должность Ученая степень Стаж
Иванов А.В. Профессор д.ф-м.н.
Петров И.С. Доцент к.т.н.
Серов Г. Л. Доцент к.т.н.
(счетчик)

Внешний ключ Первичный ключ таблицы Преподаватели

Рис. 21.2 Пример связи типа один – ко – многим

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: При сдаче лабораторной работы, студент делает вид, что все знает; преподаватель делает вид, что верит ему. 9967 — | 7575 — или читать все.

3.1. Определение связей между таблицами

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

После того как в БД созданы основные таблицы, следует указать, как они связаны друг с другом. Эти связи Access будет использовать в запросах, формах и отчетах при отборе информации из нескольких таблиц. Задание связей между таблицами позволяет также обеспечить защиту целостности данных в БД. Окно связей вызывается командой Схема данныхменюРабота с базой данных(см. рис. 3.1)

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

Читайте также:  Amd phenom ii hdx710wfk3dgi

. Поля связи могут иметь разные имена, но они должны иметь один тип данных и иметь однотипное содержимое.

Исключение из этого правила: поле типа Счетчик можно связывать с числовым полем, имеющим в свойстве Размер поля значение «Длинное целое». Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля. Например, для получения информации о студентах и полученных ими оценках следует определить связь по полям Код Студента в таблицах Студенты и Сессия. Главной в этой связи будет таблица Студенты, а подчиненной — таблица Сессия. Каждой записи в главной таблице — данным о студенте — соответствует несколько (или ни одной) записей из подчиненной таблицы — информация об его оценках. Поле Код Студента в таблице Сессия является внешним ключом.

3.2. Типы связей между таблицами

1. Связь типа «один-ко-многим»

Описанная выше связь между таблицами Студенты и Сессия — пример связи типа «один-ко-многим». Это наиболее распространенный тип связи. При таком типе связи каждой записи в главной таблице могут соответствовать одна, несколько или ни одной записи в подчиненной таблице (например, сотрудники одного отдела: отдел один, а сотрудников в нем много), а каждая запись в подчиненной таблице не может иметь более одной соответствующей ей записи в главной таблице.

2. Связь типа «один-к-одному»

При связи типа «один-к-одному» каждой записи в главной таблице может соответствовать не более одной записи в подчиненной таблице, и наоборот, каждая запись в подчиненной таблице не может иметь более одной соответствующей ей записи в главной таблице (например, у гражданина страны есть только один паспорт, а не много).

Этот тип связи применяется реже, так как такие данные могут быть помещены в одну таблицу. Связь типа «один-к-одному» обычно используют для разделения таблиц, имеющих много полей, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице. Например, такой тип связи использован при установлении связей между таблицами Студенты и Общежитие (см. рис.3.2).

Рис. 3.2. Связи между таблицами в БД Деканат

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

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

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

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

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

В режиме конструктора выделить поле (или несколько полей, удерживая нажатой клавишу ), которое будет играть роль первичного ключа.

На вкладке Конструктор группы Сервис выбрать команду Ключевое поле (или выбрать данную команду в контекстном меню). Справа возле имени поля появится символ ключа.

Читайте также:  Виктория проверка жесткого диска официальный сайт

Если первичный ключ не определен, то при выходе из режима конструктора появится соответствующее предупреждение, и программа Access предложит вам создать ключевое поле до закрытия таблицы. Щелкнув на кнопке Да в окне сообщения, вы оставляете выбор ключевого поля за Access, и если в таблице определено поле с типом данных Счетчик, Access сделает это поле ключевым. Если такого поля нет, в таблице появится новое поле с типом данных Счетчик, выполняющее функции первичного ключа.

Перед определением связей между таблицами необходимо четко уяснить, какие именно данные содержатся в каждом из объектов и какие отношения установлены между ними. Существует три типа отношений между таблицами: «один к одному», «один ко многим» («многие к одному») и «многие ко многим».

«Один к одному». Каждой записи первой таблицы соответствует одна (и не более) связанная запись второй таблицы (и, соответственно, наоборот). Такой тип отношений используется редко, так как фактически все данные могут быть помещены в одну таблицу. Он полезен, когда, например, целесообразно разделить одну громоздкую таблицу, содержащую множество полей, на две, в которых поля будут логически сгруппированы.

«Один ко многим». Одна запись первой таблицы связана со множеством записей другой таблицы, однако одной записи второй таблицы не может соответствовать больше одной записи в первой таблице.

«Многие ко многим», или непрямая табличная связь. На практике отношение «многие ко многим» реализуется через связующую таблицу.

Существуют условия, которым должны соответствовать типы данных связываемых полей:

Связываемые поля должны быть одинакового типа.

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

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

Для того, чтобы создать межтабличную связь необходимо выполнить следующие действия:

Выбрать на вкладке Работа с базами данных команду Схема данных (группа Показать или скрыть). При этом таблицы, для которых создается связь, должны быть закрыты.

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

В том случае, если в окне Схема данных еще не добавлены никакие таблицы, сразу откроется диалоговое окно Добавление таблицы. Если окно не появится, выберите команду Отобразить таблицу группы Показать или скрыть.

Добавьте в окно Схемы данных необходимые таблицы. Для этого дважды щелкните на имени таблицы или щелкните на имени таблицы в списке, а затем – на кнопке Добавить.

После добавления всех таблиц щелкните на кнопке Закрыть. В итоге все они появятся в окне Схема данных в виде отдельных окон, где перечислены поля, содержащиеся в таблице.

Создадим теперь связь между таблицами. Переместите с помощью мыши используемое для связи поле (ключевое поле) первой таблицы к соответствующему полю второй таблицы.

После того, как поле перенесено, появится диалоговое окно Изменение связей, внизу которого буден предложен тип связи между таблицами (рис.3). Также в этом окне доступна опция Обеспечение целостности данных, с помощью которой обеспечивается корректность связи между таблицами.

Установите связь между таблицами, щелкнув на кнопке Создать. В окне Схема данных между двумя связываемыми полями появится линия объединения.

Ссылка на основную публикацию
Движение транспорта москвы в реальном времени
Благодаря повсеместному внедрению технологий GPS и ГЛОНАСС в гражданский сектор, любой желающий может отследить не только своё местоположение, но и...
Гелакси джи 1 мини
Вас интересуют характеристики Samsung Galaxy J1 mini (Самсунг Галакси Дж1 МИНИ)? Мы собрали всю важную информацию, чтобы помочь определиться с...
Гель для наклейки стекла на телефон
С помощью такого геля Вы без проблем избавитесь от появившихся пузырей и отклеивающихся краев, а так же скроете мелкие царапины,...
Двоичная система счисления с дробной частью
Перевод чисел из различных систем счисления в двоичную сводится к их представлению в виде различных комбинаций двух цифровых символов этой...
Adblock detector