У вас большие запросы!
Точнее, от вашего браузера их поступает слишком много, и сервер VK забил тревогу.
Эта страница была загружена по HTTP, вместо безопасного HTTPS, а значит телепортации обратно не будет.
Обратитесь в поддержку сервиса.
Вы отключили сохранение Cookies, а они нужны, чтобы решить проблему.
Почему-то страница не получила всех данных, а без них она не работает.
Обратитесь в поддержку сервиса.
Вы вернётесь на предыдущую страницу через 5 секунд.
Вернуться назад
LR_Access2007

— 11 — Существует несколько типов отношений между таблицами: при отношении «один-к-одному» каждой записи ключевого поля в первой таблице соответствует только одна запись в связанном поле другой таблицы, и наоборот. Отношения такого типа используются не очень часто. Иногда их можно использовать для разделения таблиц, содержащих много полей, для отделения части таблицы по соображениям безопасности; при отношении «один-ко-многим» каждой записи в первой таблице соответствует несколько записей во второй, но запись во второй таблице не может иметь более одной связанной записи в первой таблице; при отношении «многие-ко-многим» одной записи в первой таблице могут соответствовать несколько записей во второй таблице, а одной записи во второй таблице могут соответствовать несколько записей в первой. 10. Закройте все открытые таблицы, так как создавать или изменять связи между открытыми таблицами нельзя. Выполните команду: вкладка ленты Работа с базами данных → кнопка . Если ранее никаких связей между таблицами базы не было, то при открытии окна Схема данных одновременно открывается окно Добавление таблицы , в котором выберите таблицы Сотрудники, Клиенты и Заказы. Если связи между таблицами уже были заданы, то для добавления в схему данных новой таблицы щелкните правой кнопкой мыши на схеме данных и в контекстном меню выберите пункт Добавить таблицу . Установите связь между таблицами Сотрудники и Заказы , для этого выберите поле Код сотрудника в таблице Сотрудники и перенесите его на со- ответствующее поле в таблице Заказы.
— 12 — После перетаскивания откроется диалоговое окно Изменение связей (рис. 1), в котором включите флажок Обеспечение условия целостности . Это позволит предотвратить случаи удаления записей из одной таблицы, при которых связанные с ними данные других таблиц останутся без связи. Рис. 1. Создание связи между таблицами Флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей обеспечивают одновременное обновление или удаление дан- ных во всех подчиненных таблицах при их изменении в главной таблице. Параметры связи можно изменить, нажав на кнопку Объединение . После установления всех необходимых параметров нажмите кн6опку ОК. 11. Связи между таблицами Клиенты и Заказы установите самостоятельно. В результате должна получиться схема данных, представленная на рис. 2.
— 13 — Рис. 2. Схема данных ЗАМЕЧАНИЕ В приведенном примере используются связи «один-ко-многим» . На схеме данных они отображаются в виде соединительных линий со специальными значками около таблиц. Связь «один-ко-многим» помечается «1» вблизи главной таблицы (имеющей первичный ключ) и «∞» вблизи подчиненной таблицы (имеющей внешний ключ). Связь «один-к-одному » помечается двумя «1» (оба поля таблиц имеют первичные ключи). Неопределенная связь не имеет никаких знаков. Если установлено объединение, то его направление отмечается стрелкой на конце соединительной линии (ни одно из объединенных полей не является ключевым и не имеет уникального индекса). 12. В таблицу Сотрудники внесите данные о семи работниках. 13. В таблицу Клиенты внесите данные о десяти предприятиях, с кото- рыми работает данная фирма. 14. В таблице Заказы оформите несколько заявок, поступивших на фирму. 15. Покажите работу преподавателю.
— 14 — Контрольные вопросы 1. С помощью чего можно создавать таблицы? 2. Что такое ключевое поле? 3. Как установить несколько ключевых полей? 4. Как установить связи между таблицами? 5. Какие существуют отношения между таблицами? 6. Что означают на схеме данных «1» и «∞»? 7. Зачем нужен Мастер подстановок ?
— 15 — Лабораторная работа № 3 Отбор данных с помощью запросов Запросы являются основным средством просмотра, отбора, изменения и анализа информации, которая содержится в одной или нескольких таблицах ба- зы данных. Существуют различные виды запросов, но наиболее распространенными являются запросы на выборку , с них и начнем наше знакомство. 1. Откройте базу данных «Фирма» , созданную ранее. 2. Выполните команду: вкладка ленты Создание → Мастер запросов → Простой запрос. 3. В появившемся диалоговом окне (рис. 3) укажите таблицу Сотрудни- ки и выберите поля Фамилия, Имя, Телефон . Нажмите кнопку Далее . Рис. 3. Создание простого запроса 4. Введите имя запроса – Телефоны – и нажмите кнопку Готово . Перед вами появится запрос, в котором можно просмотреть телефоны сотрудников. 5. Следующий запрос попробуйте создать с помощью Конструктора, для этого выполните команду: вкладка ленты Создание → Конструктор запросов.
— 16 — В диалоговом окне Добавление таблиц выберите таблицу Клиенты и щелкните на кнопке Добавить, а затем – на кнопке Закрыть . Чтобы перенести нужные поля в бланк запроса, необходимо по ним дважды щелкнуть левой кнопкой мыши (рис. 4). Рис. 4. Создание запроса в режиме Конструктора Чтобы отсортировать записи в поле Название компании в алфавитном порядке, необходимо в раскрывающемся списке строки Сортировка выбрать пункт по возрастанию . Сохраните запрос с именем «Адреса клиентов». 10. Самостоятельно создайте запрос «Дни рождения» , в котором можно будет просмотреть дни рождения сотрудников. 1) Допустим, мы хотим узнать, у кого из сотрудников день рождения в текущем месяце, например в апреле. Для этого откройте запрос в режиме Кон- структора.
— 17 — 2) В строке Условие отбора для поля «Дата рождения» введите значение *.04.*. В данной записи * означают, что дата и год рождения могут быть любыми, а месяц 4-м (т. е. апрель). После этого окно запроса должно выглядеть так, как оно представлено на рис. 5. Рис. 5. Создание запроса 3) Закройте Конструктор и просмотрите полученный результат. Если в запросе Дни рождения нет ни одной записи, значит, в таблице Сотрудники нет ни одного человека, родившегося в апреле. Добавьте в таблицу Сотрудники не- сколько человек, родившихся в апреле, и посмотрите, как изменится запрос. За- просы автоматически обновляются при каждом открытии. 4) Если нам нужно узнать, кто из сотрудников родился в мае, то придется создать новый запрос или изменить условие в существующем запросе Дни рождения . Данная процедура является неудобной и занимает много времени.
— 18 — 5) Если приходится часто выполнять запрос, но каждый раз с новыми значениями условий используют запрос с параметром . При запуске такого запроса на экран выводится диалоговое окно для ввода значения в качестве условия отбора. Чтобы создать запрос с параметром, пользователю необходимо ввести текст сообщения в строке Условие отбора бланка запроса (рис. 6). Рис. 6. Создание запроса с параметром Замечание. Запись Like[Введите дату] означает, что при открытии запроса появится диалоговое окно (рис. 7) с текстом «Введите дату» и полем для ввода условия отбора.
— 19 — Если ввести условие *.04.* , то в запросе появится список сотрудников, родившихся в апреле. Запустите запрос еще раз и введите значение *.05.* , посмотрите, как изменился запрос. Рис. 7. Окно для ввода условия отбора 6) Измените запрос «Телефоны» так, чтобы при его запуске выводилось диалоговое окно с сообщением «Введите фамилию» . Поскольку в запросе нуж- но вывести конкретную фамилию, в условии отбора слово Like писать не надо. 7) Измените запрос «Телефоны» так, чтобы при его запуске запрашивались не только фамилия, но и имя сотрудника. 8) Самостоятельно создайте запрос «Выполненные заказы» , содержащий следующие сведения: фамилия и имя сотрудника, название компании, с которой он работает, отметка о выполнении и сумма заказа. Данные запроса возьмите из нескольких таблиц. В условии отбора для логического поля Отметка о выполнении введите Да , чтобы в запросе отображались только выполненные заказы. Сделайте так, чтобы столбец Отметка о выполнении не выводился на экран. 9) . Создайте запрос Сумма заказа , в котором будут отображаться заказы на сумму более 50 000 руб . 10) Измените запрос, чтобы сумма заказа была от 20 000 до 50000 руб. Для данных запросов в условии отбора можно использовать операторы сравнения >, <, =, >=, и логические операторы And, Or, Not и др.,>
— 20 — 11) Иногда в запросах требуется произвести некоторые вычисления, например посчитать подоходный налог 13 % для каждой сделки. Для этого откройте запрос Сумма заказа в режиме Конструктора. В пустом столбце бланка запроса щелкните правой кнопкой мыши на ячейке Поле и в появившемся контекстном меню выберите команду Построить . Перед вами появится окно Построитель выражений (рис. 8), который состоит из трех областей: поля выражения, кнопок операторов и элементов выражения. Сверху располагается поле выражения, в котором оно и создается. Вводимые в это поле элементы выбираются в двух других областях окна Построителя. В левом списке откройте папку Запросы и выделите запрос Сумма заказа. В среднем списке выделите поле Сумма и нажмите кнопку Вставить. Идентификатор этого поля появится в поле выражения Построителя. Щелкните на кнопке * и введите 0,13 (см. рис. 8). Таким образом, мы посчитаем подоходный налог 13 % . Рис. 8. Построитель выражений Нажмите кнопку ОК , после чего в ячейке свойства Поле появится значение «Выражение1: [Сумма]*0,13». Замените Выражение1 на Налог и закройте Конструктор. 12) . Откройте запрос и посмотрите, что у вас получилось.
2.5. Связывание таблиц на схеме данных
Важнейшими свойствами реальных БД являются возможность получения информации из нескольких таблиц одновременно, а также целостность и непротиворечивость данных. Таблицы отображают реальные объекты, кроме того, они формируются в результате работы по нормализации исходных таблиц. После нормализации исходная таблица может быть преобразована в две или более таблицы. Связи между таблицами позволяют вывести совокупную информацию и автоматически отслеживать целостность данных.
Для связывания таблиц используются ключевые поля – первичные и внешние. Первичные ключи уникальны, внешние могут повторяться, так как их значения равны значениям первичных ключей в других таблицах.
В качестве примера связывания таблиц спроектированы две таблицы – Издательства и Книги, представленные на рисунке 2.11:


Рис. 2.11. Таблицы Издательства и Книги
При проектировании таблиц задействованы все типы полей, тип поля определяется его назначением. В качестве ключевых полей назначены счетчики, так как счетчики автоматически изменяют свое значение, хотя назначение счетчиков ключевыми полями совсем необязательно. Кроме того, можно использовать несколько полей в качестве ключа. Использование счетчика автоматически обеспечивает уникальность записи и удобство формирования записи. Код издательства и Код книги являются первичными ключами для соответствующих таблиц. Поле Код издательства присутствует и в таблице Книги в качестве обычного поля. Таким образом, оно может быть использовано в качестве внешнего ключа. Тип этого поля должен совпадать с типом первичного ключа. Счетчик имеет числовой тип (длинное целое). Имена первичного и внешнего ключей не обязательно должны совпадать, но назначение совпадающих имен упрощает дальнейшие действия как СУБД Access , так и разработчика БД.
Для формирования, отображения и редактирования схемы данных используется инструмент

,
после выбора которого загрузится окно, представленное на рисунке 2.12:

Рис. 2.12. Окно добавления таблиц и запросов
В этом окне выбираются нужные таблицы, а также запросы, которые добавляются в схему данных.
На рисунке 2.13 приведена исходная схема данных для двух таблиц, которые теперь надо связать между собой:

Рис. 2.13. Исходная схема данных
Существуют 4 типа связей между таблицами: один к одному, один ко многим, многие к одному и многие ко многим. Второй и третий типы связей различаются только тем, как по отношению друг к другу располагаются таблицы.
2.5.2. Связь один к одному
Для рассматриваемого случая связь один к одному можно создать, связав первичные ключи таблиц – Код издательства и Код книги. Такая связь будет означать, что каждому издательству ставится в соответствие только одна книга, хотя это и маловероятно. Чтобы связать таблицы, необходимо щелкнуть на ключевом поле одной таблицы и протащить мышь до ключевого поля другой таблицы. В результате сформируется окно, представленное на рисунке 2.14, в котором описывается связь:

Рис. 2.14. Окно описания связи между таблицами
Если задействовать флажок «Обеспечение целостности данных», то при формировании ключевого поля в какой-либо таблице выполняется проверка – совпадает ли его значение со значением ключевого поля в связанной таблице. В случае несовпадения, выдается соответствующее сообщение, и значение не вводится.
Если задействовать флажок «Каскадное обновление связанных полей», то при изменении значения ключевого поля в какой-либо таблице автоматически выполняется изменение значения соответствующего ключевого поля в связанной таблице, хотя значение поля типа Счетчик изменить невозможно.
Если задействовать флажок «Каскадное удаление связанных записей», то при удалении какой-либо записи в одной таблице автоматически выполняется удаление связанной записи в другой таблице.
При формировании связей необходимо правильно установить параметры объединения. От этого зависит последующая выдача информации при запросе к связанным таблицам. Для выбора параметров объединения необходимо щелкнуть по кнопке «Объединение…», после чего сформируется окно (рисунок 2.15):

Рис. 2.15. Окно выбора параметров объединения
Эти объединения называются соответственно внутреннее, левое и правое. Кроме того, существует еще и внешнее объединение, но в СУБД Access для формирования такого объединения необходимо выполнить специальные действия.
Внешний вид связи зависит от значения флажка «Обеспечение целостности данных» и выбранных параметров объединения. На рисунках 2.16 – 2.18 представлены все три варианта.
Флажок установлен, объединение внутреннее:

Рис. 2.16. Внутреннее объединение
Флажок установлен, объединение левое:

Рис. 2.17. Левое объединение
Флажок установлен, объединение правое:

Рис. 2.18. Правое объединение
Свойства этой связи можно редактировать, для чего по ней надо дважды щелкнуть. Кроме того, связь можно удалить традиционным способом.
У вас большие запросы!
Точнее, от вашего браузера их поступает слишком много, и сервер VK забил тревогу.
Эта страница была загружена по HTTP, вместо безопасного HTTPS, а значит телепортации обратно не будет.
Обратитесь в поддержку сервиса.
Вы отключили сохранение Cookies, а они нужны, чтобы решить проблему.
Почему-то страница не получила всех данных, а без них она не работает.
Обратитесь в поддержку сервиса.
Вы вернётесь на предыдущую страницу через 5 секунд.
Вернуться назад