Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория по СУБД.doc
Скачиваний:
27
Добавлен:
16.08.2019
Размер:
447.49 Кб
Скачать

3. Отношение между таблицами одной базы данных. Понятие схемы данных и целостности данных

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

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

Тип отношений в создаваемой связи Access определяет самостоятельно, он зависит от связываемых полей:

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

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

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

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

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

Свойства связи:

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

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

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

Изменение параметров целостности данных для существующей связи.

Необходимо:

  • Перейти в окно БД \ нажать кнопку Схема данных на ПИ.

  • В схеме данных выделить линию связи / щелкнуть линию связи правой кнопкой и выбрать команду. Изменить связь.

  • В диалоговом окне Установление связей снять или установить флажки, отвечающие за целостность данных.

Удаление связей.

  • Закрыть открытые таблицы. Перейти в окно БД / нажать кнопку Схема данных на ПИ

  • Выделить линию связи, которую необходимо удалить (жирная), нажать клавишу Delete.

4. Работа с запросами

Создание простого запроса с помощью мастера.

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

  • В окне БД в списке Объекты выбрать Запросы, в окне БД – команду Создание запроса с помощью мастера;

  • В диалоговом окне Создание простых запросов выбрать из списка в поле Таблицы и запросы требуемое.

  • Из списка Доступные поля перенести требуемые поля в правое поле Выбранные поля; нажать Далее;

  • Задать имя запроса и выбрать дальнейшее действие с запросом, нажать Готово.

Создание простого запроса с помощью конструктора.

  • В окне БД в списке Объекты выбрать Запросы, в окне БД – команду Создание запроса в режиме конструктора;

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

  • Дважды щелкнуть на объектах, которые нужно добавить в запрос, нажать Закрыть;

  • Добавить поля в строку Поля в бланке запроса и, если необходимо, указать условия и порядок сортировки;

  • Для просмотра результатов запроса на ПИ нажать кнопку Вид.

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

В нижней части окна находится Бланк построения запроса QBE (Query by Example), в котором каждая строка выполняет определенную функцию:

o Поле – указывает имена полей, которые участвуют в запросе

o Имя таблицы – имя таблицы, с которой выбрано это поле

o Сортировка – указывает тип сортировки

o Вывод на экран – устанавливает флажок просмотра поля на экране

o Условия отбора - задаются критерии поиска

o Или – задаются дополнительные критерии отбора

Условное выражение, использующееся в поле Условие отбора может включать операторы <,>,<=,>=,=,<>,AND,OR,NOT.

Есть 4 специальных оператора:

1. оператор IN

имя поля IN('значение 1’;’значение 2’;...)–возвращает истину, если знач. поля равно значению 1, или значению 2 или и т.д.

2. оператор BETWEEN

имя поля BETWEEN значение 1 and значение 2 –возвращает истину, если знач. поля входит в диапазон, включая концы.

3. оператор LIKE

имя поля LIKE “шаблон” – возвращает истину, если поле соответствует шаблону.

4. оператор IS [NOT] NULL – проверка на нулевое значение.

Примеры условных выражений

Условные выражения

Вывод записей, которые

Саратов

имеют значения Саратов

Not Саратов

не имеют значения Саратов

In ('Саратов’;’Томск’;’Уфа’)

имеют значения Саратов, Томск, Уфа

100

имеют числовое значение 100

<=20

имеют числовое значение 20 и более

Date()

имеют значение текущей даты

>=01.01.94

имеют значение даты позднее 01.01.94

Between 01.01.94 and 31.12.94

имеют значение 94-го года

*.02.*

имеют значение февраля

Like “P*”

Начинаются с буквы Р

>20 and <300

Имеют числовое значение от 21 до 299

>=20 and <=300

Имеют числовое значение от 20 до 300

Is NULL

Не заполнены (имеют пустое значение )

Is not NULL

заполнены (имеют не пустое значение )