Групповые операции в запросах




Создание таблиц

Создать таблицы базы данных можно тремя разными способами:

· В режиме конструктора;

· С помощью мастера;

· Путем ввода данных.

Если выбран режим ввода данных, программа формирует таблицу с 10 столбцами и 20 строками. После того как в таблицу будут добавлены данные, ее можно сохранить под каким-либо именем. Проще всего закрыть окно щелчком на кнопке с крестиком в верхнем правом углу окна. При этом программа выведет сообщение о необходимости сохранения таблицы.

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

Если выбран режим мастера, появляется возможность быстро сформировать таблицы, содержащие наиболее типичные, с точки зрения разработчиков программы, данные. Так, на рисунке 3.3 представлено диалоговое окно Создание таблиц, которое появилось в результате запуска мастера.

Рисунок 3.3- Создание таблиц с помощью мастера

 

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

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

При разработке таблицы в режиме конструктора используется следующая форма

Рисунок 3.4 – Основная форма конструктора

 

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

Рисунок 3.5 – Разработка таблицы «кадры»

Формат Тип данных Размер
Текстовый (Значение по умолчанию) Текст или числа, не требующие проведения расчетов Д 255 знаков
Поле MEMO Очень длинный текст До 65 535 знаков
Числовой Числовые данные, используемые для проведения расчетов  
Денежный Денежные значения, с точностью до 15 знаков в целой и до 4 знаков в дробной части  
Счетчик Уникальные данные последовательно возрастающие (на 1)  
Логический     Поля, содержащие только одно из двух возможных значений (Да/Нет, True/False)  
Дата/время Даты и время, относящиеся к годам с 100 по 9999  
Мастер подстановок При выборе этого параметра запускается мастер подстановок подстановок, создающий Поле подстановок. После завершения работы мастера устанавливается тип данных, основанный на значениях, выбранных в мастере.  
Поле объекта OLE Объект (например, электронная таблица Microsoft OLE, Excel, документ Microsoft Word, рисунок, звукозапись или другие данные в двоичном формате), связанный или внедренный в таблицу MS Access Обычно 4 байта
Гиперссылка Текст или комбинация текста и чисел, хранимые как текст и используемые в качестве адреса гиперссылки  

 

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

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

Свойство «Обязательное поле» может принимать два значения ДА или НЕТ. Если установит значение ДА, то при вводе данных в таблицу это поле нельзя будет пропустить, т.е. обязательно должны быть введены в это поле данные.

Свойство «Индексированное поле» устанавливается в значение ДА в случае, когда по данному полю предполагается упорядочивание.

Рассмотрим таблицу «Журнал».

Для полей Студент, Дисциплина, ВидЗанятий, Оценка в качестве типа данных выбирается мастер подстановок. Источниками данных для поля Студент будет таблица Кадры, для поля Дисциплина Учебный план, для полей ВидЗанятий и Оценка наборы предопределенных значений.

 

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

 

Рисунок 3.6 – Схема данных

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

Рисунок 3.7 – Установка свойств связей

 

Здесь требуются пояснения относительно трех установленных флажков.

Транзакции и целостность баз данных.

Одним из главных требований к БД является требование не противоречивости или как чаще говорят требование целостности данных. При сложной структуре данных это условие реализовать иногда бывает достаточно сложно. Нарушение целостности может произойти, например, при аварийном прерывании некоторых операций модификации данных в базе, либо некорректных действиях пользователя. Предположим, в таблице Кадры удалена запись, с которой связаны несколько записей в таблице Журнал. Эти оставшиеся в Журнале записи оказываются не привязанными ни к одному студенту, т.е. явный случай нарушения целостности базы данных. Такой же эффект будет при изменении в таблице Кадры кода студента.

С понятием целостности БД непосредственно связано понятие транзакции.

Транзакцией принято понимать неделимую с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации), которая переводят систему из одного целостного состояния в другое, не гарантируя сохранение целостности в промежуточных состояниях.

Одна транзакция чаще всего состоит из последовательности операций. Например, Вы решили изменить Код дисциплины в базе данных Электронный журнал. Транзакция будет состоять из следующих операций:

Рисунок 3.8 – Пример транзакции в базе данных

 

Механизм управления транзакциями должен быть построен таким образом, что либо результаты всех операторов, входящих в транзакцию, отображаются в БД, либо воздействие всех этих операторов полностью отсутствует. Лозунг транзакции - "Все или ничего": при завершении транзакции оператором COMMIT результаты гарантированно фиксируются во внешней памяти (смысл слова commit - "зафиксировать" результаты транзакции); при завершении транзакции оператором ROLLBACK результаты гарантированно отсутствуют во внешней памяти (смысл слова rollback - ликвидировать результаты транзакции).

Примечание: Указанные два оператора используются в СУБД SQL для управления транзакциями.

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

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

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

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

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

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

После того как в режиме Конструктора создана структура базы данных, ввод данных осуществляется в режиме Таблица.

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

Разработка запросов

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

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

Любой запрос можно сохранить для последующего использования. Это можно сделать несколькими способами, например, выбирая позиции меню «Файл» - «Закрыть», ответив «Да» на вопрос о сохранении файла и задав после этого имя запроса. Имя запроса не может совпадать не только с именем другого запроса, но и с именем какой-либо таблицы в данной базе данных. Сохраненный запрос можно впоследствии «открывать», что означает его выполнение. Сохраненный запрос может быть скорректирован, если открыть его в режиме конструктора.

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

Рисунок 3.9 – Форма конструктора запросов

 

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

Можно переносить в бланк запроса не по одному полю, а сразу требуемую совокупность полей. Выделение полей, подлежащих переносу, осуществляется стандартным для Windows-систем способом (нажать клавишу Shift для выделения полей, расположенных друг за другом, и, удерживая ее, выбрать первое и последнее поле набора; выбирать поля при нажатой клавише Ctrl для полей, располагающихся в произвольном порядке не подряд друг за другом).

Можно перенести в бланк запроса одновременно все поля. Для этого надо установить указатель на заголовок списка полей и дважды щелкнуть кнопкой мыши или установить указатель на символ звездочки (*) и нажать кнопку мыши.

Не все поля, которые используются при формировании запроса, должны обязательно отражаться в ответе. Так, поле может быть необходимо для задания условия отбора, но надобность в его появлении в ответе отсутствует.Поля, выводимые в ответ, указываются в строке конструктора запроса «Вывод на экран». В соответствующих колонках этой строки указывается знак вхождения поля в ответ («•» – «галочка»). Если же поле не должно включаться в ответ, то этот знак отсутствует (□).

Рассмотрим пример запроса к БД на студентов получившим неудовлетворительные оценки (рисунок 3.10).

Рисунок 3.10 – Пример построения запроса

 

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

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

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

Для ввода выражения в пустом поле щелкните правой клавишей мышки и выберите команду меню Построить (рисунок 3.11).

Рисунок 3.11 – Создание вычисляемого поля

 

Само выражение разрабатывается в построителе выражений (рисунок 3.12).

 

Рисунок 3.12 - работа с построителем выражений

 

Укажем порядок сортировки в запросе в позиции Фамилия. Сортировка может быть выполнена по нескольким полям. Например, по группам и фамилиям. При этом первой позицией должна быть группа. На рисунке 3.13 представлен результат выполнения запроса.

Рисунок 3.13 – результат выполнения запроса

Перекрестные запросы

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

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

Для создания перекрестного запроса следует воспользоваться позицией «Перекрестный запрос» в окне «Новый запрос» (рисунок 3.14) или выбрать соответствующую строку в меню «Запрос». Далее надо выполнить ряд шагов, предлагаемых мастером по созданию перекрестных запросов.

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

Запрос с параметрами

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

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

Рисунок 3.14- Создание перекрестного запроса

 

Для каждого поля, которое предполагается использовать как параметр, в конструкторе запросов надо ввести в ячейку строки «Условие отбора» текст приглашения, заключенный в квадратные скобки. Это приглашение будет выводиться при запуске запроса. Текст подсказки должен отличаться от имени поля, но может включать его (рисунок 3.15).

Рисунок 3.15 – Разработка запроса с параметром

Групповые операции в запросах

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

Рисунок 3.16- Запрос с групповыми операциями

Разработка форм

Экранные формы в Access используются для разных целей:

· для ввода данных в базу данных;

· корректировки данных;

· вывода данных;

· для управления обработкой данных.

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

Рассмотрим основные рекомендации по созданию форм

 

1. Порядок размещения элементов в форме будет зависеть от типа и назначения формы.

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

 

2. Если форма предназначена для ввода данных, то из нее могут быть исключены поля, которые автоматически вводятся в БД и не могут быть изменены пользователем (например, поле счетчика, вычисляемые поля).

 

3. При выборе стиля оформления экрана:

а) не стоит злоупотреблять использованием цветов, шрифтов и других оформительских эффектов; оформление экрана не должно отвлекать от выполнения основных функций;

б) яркие цвета (например, красный) следует использовать только для целей привлечения внимания (например, при сигнале о существенной ошибке);

в) надо быть осторожными при изменении размера шрифта для значений полей (так как при его увеличении текст может не уместиться в отведенное ему «окошко» и пользователю придется вручную подгонять поля к новому размеру текста);

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

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

 

4. В настоящее время значительно возросли возможности задания настройки формы во время ее использования.Access позволяет для отдельных элементов формы указывать, выводится ли этот элемент всегда либо только на экран, или только на печать (свойство «режим вывода»).

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

 

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

 

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

· выбор из списка;

· автоматический перенос данных из других таблиц;

· задание значений по умолчанию, использование шаблонов и др.

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

 

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

Создание экранных форм

Форму можно создавать несколькими разными способами. Для того чтобы создать новую форму, надо выбрать позицию «Формы» в окне базы данных и нажать на кнопку «Создать». После этого появится окно «Новая форма».

Рисунок 3.17 – Создание новой формы

 

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

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

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

Далее необходимо определить вид формы, т.е. способ размещения выводимых в форму данных и далее стиль формы.

Рисунок 3.18 – Определение внешнего вида формы

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

Рисунок 3.19 – Окно свойств и панель элементов

 

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

Виды экранных форм

 

1. Многостраничные формы. Создаются в том случае, если элементов в форме много и размещение их на экране загромождает пространство формы. Для создания таких форм используется элемент управления «Разрыв страницы».

2. Формы с несколькими вкладками (рисунок 3.20).

Рисунок 3.20 – Форма с несколькими вкладками

3. Кнопочная форма. Эта форма открывает другие формы или отчеты базы данных. Пример такой формы приведен на рисунке 3.21.

Рисунок 3.21- Главная кнопочная форма

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: