Главная » Просмотр файлов » Диго С.М. Базы данных проектирование и использование

Диго С.М. Базы данных проектирование и использование (1084447), страница 41

Файл №1084447 Диго С.М. Базы данных проектирование и использование (Диго С.М. Базы данных проектирование и использование) 41 страницаДиго С.М. Базы данных проектирование и использование (1084447) страница 412018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 41)

Поля, выводимые в ответ, указываются в строке конструктора зап­роса Вывод на экран (Show). В соответствующих колонках этой стро­ки указывается знак вхождения поля в ответ («V» - «галочка»).

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

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

Поскольку поля, включенные в запрос путем использования «*», в явном виде в бланке запроса не высвечиваются, то те поля, которые используются в условии отбора, нужно дополнительно включить в бланк запроса. Чтобы эти поля дважды не выводились в ответ, следу­ет у этих полей снять флажок Вывод на экран (рис. 6.7).

6.2.6. Управление выводом повторяющихся строк

В том случае, если в ответ выводятся не все поля исходной табли­цы, может случиться, что строки в ответе могут быть повторяющи­мися. Для того чтобы управлять выводом повторяющихся строк, мож­но позиционироваться на произвольное место вне бланка запроса и списка полей, нажать правую кнопку мыши и в появившемся контек­стном меню (рис. 6.8) выбрать строку «Свойства» (либо выбрать со­ответствующую кнопку на панели инструментов). Среди свойств запроса (рис. 6.9) есть два: «Уникальные записи» (UniqueRecords) и «Уникальные значения» (UniqueValues), которые служат указанным целям. Если вы хотите, чтобы в ответ выдавался список кафедр без повторов, задайте для свойства «Уникальные значения» значение «Да».

6.2.7. Простые запросы

Запрос с простыми условиями, включающими только один аргумент поиска, будем коротко называть простым запросом. При создании про­стого запроса условие отбора записывается в соответствующий столбец бланка запроса. Например, если требуется отобрать информацию о кон­кретном сотруднике, то в столбец «ФИО» в строке «Условие отбора» нуж­но записать ФИО данного сотрудника. В частности, запрос, изображен­ный на рис. 6.7, является таким простым запросом.

Как известно, в большинстве СУБД при вводе в выражение зна­чений того или иного типа используются соответствующие данному типу данных ограничители. В Access при задании запроса ограничи­тели можно не ставить. В зависимости от типа поля, которое вводит­ся в выражение, определяющее условие отбора, ограничители добав­ляются системой автоматически: прямые кавычки (" ") вокруг строко­вых значений; символы (#) вокруг дат.

В столбце можно записывать не только значение атрибута, но и знак операции сравнения; по умолчанию принимается знак равенства (=). Если в условии отбора должны использоваться операции сравнения, отличные от знака равенства, то их надо указывать в явном виде. Если, например, требуется определить список всех сотрудников, имеющих оклад меньше 1000 руб., то запрос будет выглядеть так, как изображено на рис. 6.10.

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

Это же условие отбора можно было задать и следующим образом:

>=1000 And>=1500.

Можно осуществлять поиск и по подстроке. Для этого использу­ется оператор Like (рис. 6.12)

6.2.8. Сложные запросы

Если в условиях отбора используется несколько полей, то они могут соединяться оператором «И» или «ИЛИ». На рис. 6.13, 6.14 изображены примеры таких запросов. Первый из них выдает список военнообязанных мужчин (запрос «И»; аргументы запроса располо­жены на одной строке), второй (запрос «ИЛИ»; аргументы запроса расположены на разных строках) - всех мужчин и военнообязанных женщин.

Как видим, разница в примерах запросов, изображенных на рис. 6.13 и 6.14, состоит только в том, что условия отбора заданы в первом случае на одной строке, а во втором - на разных, а ответ при этом получается разный. Поэтому рассматриваемый язык запросов и называется табличным двухмерным языком: ответ зависит от взаим­ного расположения аргументов поиска относительно друг друга.

В одном запросе могут использоваться и более двух аргументов поиска, причем одна часть из них может связываться оператором «И», а другая - оператором «ИЛИ».

6.2.9. Просмотр ответа

Для того чтобы посмотреть ответ, можно щелкнуть мышью по кнопке Запуск («!») на панели инструментов, либо выбрать соот­ветствующую возможность из меню Запрос/Запуск, либо щелкнуть по стрелке на кнопке Вид и выбрать из появившегося списка вид Режим таблицы. Для того чтобы опять вернуться к построению / корректировке запроса, надо выбрать режим Конструктор (рис. 6.15).

6.2.10. Определение числа записей, выводимых в ответ

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

В ответ на запрос можно выводить не все записи, а какое-то опре­деленное их число. Причем это число может быть задано как в абсо­лютных величинах (например, выдать 10 записей, отвечающих усло­вию отбора), так и в процентах (например, 10%). Задание числа выводимых записей часто бывает удобно сочетать в запросе с упоря­дочением записей. Например, если на институт выделено пять имен­ных стипендий, можно определить средний балл студентов, упорядочить записи в порядке убывания этого поля и запросить вывод пяти записей. Если появилась возможность оказать материальную помощь определенному числу низкооплачиваемых сотрудников, то записи нуж­но упорядочить по возрастанию поля «Оклад».

Задать число записей, выводимых в ответ, можно по-разному. Во-первых, можно позиционироваться на свободное место в верхней ча­сти окна запросов, нажать правую клавишу мыши, в появившемся меню выбрать позицию «Свойства» и в появившемся окне Свойства запро­са в строке «Набор значений» указать требуемое значение (рис. 6.16). Число записей, выводимых в ответ, можно указать не только в абсо­лютных величинах, но и в процентах.

Другим способом задания числа записей, выводимых в ответ, яв­ляется использование соответствующей кнопки (рис. 6.17) на панели конструктора запросов.

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

6.2.11. Формирование запросов к связанным таблицам

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

  1. В меню Сервис выбрать команду Параметры.

  2. Перейти к вкладке Таблицы/Запросы.

  3. Установить/снять флажок Автоматическое объединение.

Параметр «Автоматическое объединение» относится только к но­вым запросам.

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

Внимание! Если связь не задана (и не отменено «Автома­тическое объединение»), то будет осуществляться связь каж­дой записи одной таблицы с каждой записью второй таблицы.

Надо осторожно относиться к формированию запросов к связан­ным таблицам. Как вы думаете, что будет получено в ответ на запрос, изображенный на рис. 6.18? На самом деле ответить на этот вопрос, не имея дополнительной информации, нельзя. Необходимо знать, ка­ковы параметры объединения (если вы внимательны, то по виду ли­нии сможете определить вид связи) и какие значения имеют свойства «Уникальные записи» и «Уникальные значения» (этого на схеме не видно). Если задано обычное («внутреннее») соединение таблиц и для свойства «Уникальные значения» задано значение «Да», то в от­вет на запрос, содержащий в бланке запроса поле «ФИО» и больше ничего, будет получен список сотрудников, имеющих детей.

Исходя из вышесказанного, можно дать следующие рекомен­дации:

  1. При задании запроса удаляйте из него все таблицы, поля кото­рых не участвуют в формировании запроса.

  2. При проектировании структуры базы данных тщательно про­думывайте имена, которые даете полям разных таблиц.

  3. Проверяйте связи, которые система задает автоматически.

Существуют понятия внутреннего, левого и правого соединения.

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

Изменить тип объединения в запросе можно, выделив нужную связь и нажав на правую кнопку мыши. В появившемся контекстном меню выбрать Параметры объединения (рис. 6.19) либо позицию меню Вид/Параметры объединения - появится окно Параметры объединения (рис. 6.20), в котором можно выбрать нужный для дан­ного запроса тип объединения. Так, например, если требуется выдать список всех сотрудников, а для тех, кто имеет детей, - информацию о детях, то для соединения таблиц «Сотрудники» и «Дети» следует выб­рать вторую альтернативу в окне Параметры объединения.

Запрос, приведенный на рис. 6.21, при всей своей схожести с за­просом на рис. 6.18, даст иной ответ, поскольку изменен тип объеди­нения.

Возможно создание запросов, в которых таблица соединяется сама с собой (так называемое самообъединение). Такая ситуация может возникнуть, когда в ER-модели имеются отношения на одном и том же классе объектов. Например, для класса объектов СОТРУДНИК имеется связь «Быть руководителем». В рассматриваемом примере для отражения этой связи в таблицу «Сотрудники» введено поле «Ру­ководитель», которое содержит код сотрудника, являющегося руково­дителем данного сотрудника.

Чтобы объединить две копии одной и той же таблицы в запросе, необходимо в режиме Конструктор запроса дважды добавить эту таблицу в запрос. Далее надо осуществить соединение таблицы с ее копией обычным путем (переместив поле из списка полей первой таб­лицы в соответствующее поле в списке полей другой таблицы). На рис. 6.22 изображен запрос «Для каждого из руководителей выдать список его подчиненных». Для того чтобы в результатной таблице было понятно, что означает поле «ФИО» в каждом столбце, можно переименовать эти столбцы, назвав первый «Руководитель», второй - «Подчиненный». Для этого можно щелкнуть правой клавишей мыши по соответствующему полю, в высветившемся меню выбрать пози­цию Свойства, а затем в появившемся окне Свойства поля в строке «Подпись» ввести требуемый заголовок столбца (рис. 6.23). Вид результатной таблицы после проведенных действий представлен на (рис. 6.24).

Характеристики

Тип файла
Документ
Размер
11,48 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее