Схема данных

Схема данных позволяет нам посмотреть на нашу базу как бы сверху, увидеть какие у нас таблицы, какие поля есть в этих таблицах, есть ли ключевые поля, есть ли связи между таблицами и по каким полям произведено связывание, включено ли обеспечение целостности. Можно прямо в схеме данных устанавливать связи или удалять связи, помните только, что можно связывать поля с одинаковой по смыслу информацией и с одинаковым типом данных. Например, нельзя связывать поле №зачетки с полем Группа, хотя тип данных у них одинаковый, но по смыслу информация в этих полях разная. Можно задавать обеспечение целостности или отказываться от него, Кроме того, можно включать или отключать такие дополнительные возможности, как Каскадное обновление связанных полей и Каскадное удаление связанных записей.

  1. Создайте схему данных. Добавьте туда все наши таблицы. Вы увидите, что линии связи между первичными и внешними ключами уже созданы. Они были созданы тогда,  когда мы делали поля со списком, но не было задано Обеспечение целостности, что видно по тому, что у линий связи не проставлены знаки "1" и "Бесконечность". Обеспечение целостности нам нужно для того, чтобы одна и та же информация в связанных таблицах была представлена одинаково. Например, человек может при вводе ошибиться и ввести в одном случае код группы 1721, а в другом код группы 1721_. Это разные группы с точки зрения Access. Обеспечение целостности страхует нас от таких ошибок.

  2. Задайте Обеспечение целостности для первичных и внешних ключей. Для этого надо выделить линию связи и правой кнопкой мыши вызвать контекстное меню, в котором выбрать "Изменить связь", поставить галочку для обеспечения целостности. У концов линий связи появятся знаки "1" и "Бесконечность". Таблицы на стороне "1" называются главными, а на стороне "Бесконечность" - подчиненными или связанными. Например, таблица Группы - главная, а таблица Студенты подчиненная. Тип связи между ними "один-ко-многим". Это обозначает, что в одной группе может быть много студентов, а может и ни одного. Бывают еще связи "один-к-одному" и "многие-ко-многим". Например, таблица Успеваемость обеспечивает связь "многие-ко-многим". Один студент сдает экзамены по многим дисциплинам, одну дисциплину сдают многие студенты. Правила целостности гарантируют нам, что первичный ключ (например, поле Группа таблицы Группа не будет содержать повторяющихся значений, а внешний ключ (в нашем примере поле Группа таблицы Студенты) будет содержать только те значения, которые ранее были введены в соответствующий первичный ключ.

  3. Проверьте как работает Обеспечение целостности. Для этого, надо открыть какую-нибудь таблицу, например Группы, и попробовать изменить или удалить код какой-нибудь группы. Если у этой группы есть подчиненные записи в таблице Студенты, то Access не позволит нам это сделать. Действительно, как же можно удалять группу, если в ней есть студенты. А вот если студентов в группе нет, тогда можно и удалить код группы, и изменить его. А теперь откроем подчиненную таблицу Студенты и попробуем изменить код группы у какого-либо студента, если такой группы нет в главной таблице Группы, то Access не позволит нам это сделать, в то же время перевести студента из одной группы в другую можно, Поэкспериментируйте.

  4. Задайте у линии связи таблицы Группы Каскадное обновление связанных полей. А теперь откройте таблицу Группы и измените код какой-нибудь группы. Access позволит нам это сделать, но при этом код группы в таблице Студенты также изменится.

  5. Задайте у линии связи таблицы Группы Каскадное удаление связанных записей. Если вы откроете таблицу Группы и попытаетесь удалить запись с кодом какой-либо группы, то Access позволит нам это сделать, но при этом будут удалены все студенты этой группы, так что пользоваться этой возможностью надо осторожно.