Одним из важнейших условий обеспечения эффективного функционирования любой организации является наличие развитой информационной системы и системы управления базой данных.
Современной формой информационных систем являются банки данных, которые включают в свой состав вычислительную систему, одну или несколько баз данных (БД), систему управления базами данных (СУБД) и набор прикладных программ (ПП).
Основными функциями банков данных являются:
• хранение данных и их защита.
• изменение (обновление, добавление и удаление) хранимых данных.
• поиск и отбор данных по запросам пользователей.
• обработка данных и вывод результатов.
База данных обеспечивает хранение информации и представляет собой поименованную совокупность данных, организованных по определенным правилам, включающим общие принципы описания, хранения и манипулирования данными.
С понятием базы данных тесно связано понятие система управления базой данных.
Система управления базами данных представляет собой пакет прикладных программ и совокупность языковых средств, предназначенных для создания, сопровождения и использования баз данных.
Прикладные программы (приложения) в составе банков данных служат для обработки данных, вычислений и формирования выходных документов по заданной форме.
Большинство систем управления базами данных (СУБД) позволяют размещать в своих структурах не только данные, но и методы (то есть программный код), с помощью которых происходит взаимодействие с потребителем или с другими программно-аппаратными комплексами. Таким образом, можно говорить о том, что в современных базах данных хранятся отнюдь не только данные, но и информация.
В мире существует множество систем управления базами данных. Несмотря на то, что они могут по-разному работать с разными объектами и предоставляют пользователю различные функции и средства, большинство СУБД опираются на единый устоявшийся комплекс основных понятий.
По степени универсальности различают два класса СУБД:
• системы общего назначения СУБД общего значения - это сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией базы данных информационной системы.
• специализированные системы. Специализированные СУБД создаются в редких случаях при невозможности или нецелесообразности использования СУБД общего значения.
Производительность СУБД оценивается:
• временем выполнения запросов.
• скоростью поиска информации в неиндексированных полях.
• временем выполнения операций импортирования базы данных из других форматов.
• скоростью создания индексов и выполнения таких массовых операций, как обновление, вставка, удаление данных.
• максимальным числом параллельных обращений к данным в многопользовательском режиме.
• временем генерации отчета.
На производительность СУБД оказывают влияние два фактора:
СУБД, которые следят за соблюдением целостности данных, несут дополнительную нагрузку, которую не испытывают другие программы; производительность собственных прикладных программ сильно зависит от правильного проектирования и построения базы данных.
СУБД, как правило, разделяют по используемой модели данных (как и базы данных) на следующие типы: иерархические, сетевые, реляционные и объектно-ориентированные.
Хранимые в базе данные имеют определенную логическую структуру, то есть представлены некоторой моделью, поддерживаемой СУБД.
К числу важнейших относятся следующие модели данных:
• иерархическая.
• сетевая.
• реляционная.
• объектно-ориентированная.
В иерархической модели данные представляются в виде древовидной (иерархической) структуры. Она удобна для работы с иерархически упорядоченной информацией и громоздка для информации со сложными логическими связями.
Сетевая модель означает представление данных в виде произвольного графа. Достоинством сетевой и иерархической моделей данных является возможность их эффективной реализации по показателям затрат памяти и оперативности. Недостатком сетевой модели данных является высокая сложность и жесткость схемы БД, построенной на ее основе.
Реляционная модель данных (РМД) название получила от английского термина relation — отношение. При соблюдении определенных условий отношение представляется в виде двумерной таблицы, привычной для человека. Большинство современных БД для персональных ЭВМ являются реляционными.
Достоинствами реляционной модели данных являются ее простота, удобство реализации на ЭВМ, наличие теоретического обоснования и возможность формирования гибкой схемы БД, допускающей настройку при формировании запросов.
Реляционная модель данных используется в основном в БД среднего размера. При увеличении числа таблиц в базе данных заметно падает скорость работы с ней. Определенные проблемы использования РМД возникают при создании систем со сложными структурами данных, например, систем автоматизации проектирования.
Объектно - ориентированные БД объединяют в себе две модели данных, реляционную и сетевую, и используются для создания крупных БД со сложными структурами данных.
По характеру использования СУБД делят на:
• персональные (СУБДП)
• многопользовательские (СУБДМ)
К персональным СУБД относятся Visual FoxPro, Paradox, Clipper, dBase, Access и др. К многопользовательским СУБД относятся, например, СУБД Oracle и Informix. Многопользовательские СУБД включают в себя сервер БД и клиентскую часть, работают в неоднородной вычислительной среде — допускаются разные типы ЭВМ и различные операционные системы. Поэтому на базе СУБДМ можно создать информационную систему, функционирующую по технологии клиент-сервер. Универсальность многопользовательских СУБД отражается соответственно на высокой цене и компьютерных ресурсах, требуемых для их поддержки.
СУБДП представляет собой совокупность языковых и программных средств, предназначенных для создания, ведения и использования БД. Персональные СУБД обеспечивают возможность создания персональных БД и недорогих приложений, работающих с ними, и при необходимости создания приложений, работающих с сервером БД.
Язык современной СУБДП включает подмножества команд, относившиеся ранее к следующим специализированным языкам:
• язык описания данных — высокоуровневый непроцедурный язык декларативного типа, предназначенный для описания логической структуры данных.
• язык манипулирования данными — командный язык СУБД, обеспечивающий выполнение основных операций по работе с данными — ввод, модификацию и выборку данных по запросам.
• структурированный язык запросов (Structured Query Language, SQL) — обеспечивает манипулирование данными и определение схемы реляционной БДП, является стандартным средством доступа к серверу БД.
Обеспечение целостности БД — необходимое условие успешного функционирования БД. Целостность БД — свойство БД, означающее, что база данных содержит полную и непротиворечивую информацию, необходимую и достаточную для корректного функционирования приложений. Обеспечение безопасности достигается в СУБД шифрованием прикладных программ, данных, защиты паролем, поддержкой уровней доступа к отдельной таблице.
Основные понятия
Поле - наименьший поименованный элемент информации, хранящейся в БД и рассматриваемой как единое целое.
Поле может быть представлено числом, буквами пли их сочетанием (текстом). Например, в телефонном справочнике полями являются фамилия и инициалы, адрес, номер телефона, т.е. три поля, причем все текстовые (номер телефона также рассматривается как некоторый текст).
Рисунок 1. Представление информации в БД
Запись - совокупность полей, соответствующих одному объекту. Так, абоненту телефонной сети соответствует запись, состоящая из трех полей.
Файл - совокупность связанных по какому-либо признаку записей (т.е. отношение, таблица). Таким образом, в простом случае база данных есть файл.
Все данные в БД разделены по типам. Вся информация полей, принадлежащих одному столбцу (домену), имеет один и тот же тип. Такой подход позволяет ЭВМ организовать контроль вводимой информации.
Рисунок 2
Основные типы полей баз данных:
• Символьный (текстовый). В таком поле по умолчанию может храниться до 256 символов.
• Числовой . Содержит числовые данные различных форматов, используемые для проведения расчетов.
• Дата / время . Содержит значение даты и времени.
• Денежный . Включает денежные значения и числовые данные до пятнадцати знаков целой части и четырех знаков дробной части.
• Поле примечание . Оно может содержать до 2^16 символов (2^16 = 65536).
• Счетчик . Специальное числовое поле, в котором СУБД присваивает уникальный номер каждой записи.
• Логический . Может хранить одно из двух значений: true or false.
• Поле объекта OLE (Object Linking and Embedding - технология вставки и связывания объекта). Это поле может содержать любой объект электронной таблицы, документ microsoft word, рисунок, звукозапись или другие данные в двоичном формате, внедренные или связанные с СУБД.
• Гиперссылка . Может содержать строку, состоящую из букв и цифр, представляющую адрес сайта или web - страницы.
• Мастер подстановок . Создает поле, в котором предлагается выбор значений из списка или содержащего набор постоянных значений.
Поля базы данных не просто определяют структуру базы — они еще определяют групповые свойства данных, записываемых в ячейки, принадлежащие каждому из полей.
Ниже перечислены основные свойства полей таблиц баз данных на примере СУБД Microsoft Access:
• Имя поля — определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).
• Тип поля — определяет тип данных, которые могут содержаться в данном поле.
• Размер поля — определяет предельную длину (в символах) данных, которые могут размещаться в данном поле.
• Формат поля — определяет способ форматирования данных в ячейках, принадлежащих полю.
• Маска ввода — определяет форму, в которой вводятся данные в поле (средство автоматизации ввода данных).
• Подпись — определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля).
• Значение по умолчанию — то значение, которое вводится в ячейки поля автоматически (средство автоматизации ввода данных).
• Условие на значение — ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как правило, для данных, имеющих числовой тип, денежный тип или тип даты).
• Сообщение об ошибке — текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных (проверка ошибочности выполняется автоматически, если задано свойство Условие на значение).
• Обязательное поле — свойство, определяющее обязательность заполнения данного поля при наполнении базы.
• Пустые строки — свойство, разрешающее ввод пустых строковых данных (от свойства Обязательное поле отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например к текстовым).
• Индексированное поле — если поле обладает этим свойством, все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значения в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных.
Поскольку в разных полях могут содержаться данные разного типа, то и свойства у полей могут различаться в зависимости от типа данных. Так, например, список вышеуказанных свойств полей относится в основном к полям текстового типа. Поля других типов могут иметь или не иметь эти свойства, но могут добавлять к ним и свои. Например, для данных, представляющих действительные числа, важным свойством является количество знаков после десятичной запятой. С другой стороны, для полей, используемых для хранения рисунков, звукозаписей, видеоклипов и других объектов OLE, большинство вышеуказанных свойств не имеют смысла.
СУБД имеет свою собственную структуру и состоит из основных объектов, используемых при ее создании и работе с ней.
• Работа с любыми объектами начинается с окна База данных (рисунок 3). На левой панели данного окна сосредоточены элементы управления для вызова всех семи типов объектов программы. Создание таблиц начинается с выбора элемента управления Таблицы.
Рисунок 3
• На правой панели представлен список таблиц, уже имеющихся в составе базы, и приведены элементы управления для создания новой таблицы. Чтобы создать таблицу вручную, следует использовать значок Создание таблицы в режиме конструктора.
• При создании таблицы целесообразно (хотя и не обязательно) задать ключевое поле. Это поможет впоследствии, при организации связей между таблицами. Для задания ключевого поля достаточно щелкнуть на его имени правой кнопкой мыши и в открывшемся контекстном меню выбрать пункт Ключевое поле.
• Закончив создание структуры таблицы, бланк закрывают (при этом система выдает запрос на сохранение таблицы), после чего дают таблице имя, и с этого момента она доступна в числе прочих таблиц в основном окне База данных. Оттуда ее и можно открыть в случае необходимости.
• Созданную таблицу открывают в окне База данных двойным щелчком на ее значке. Новая таблица не имеет записей — только названия столбцов, характеризующие структуру таблицы (рисунок 4). Заполнение таблицы данными производится обычным порядком. Курсор ввода устанавливается в нужную ячейку указателем мыши. Переход к следующей ячейке можно выполнить клавишей TAB. Переход к очередной записи выполняется после заполнения последней ячейки.
Рисунок 4
В нижней части таблицы расположена Панель кнопок перехода. Ее элементами управления удобно пользоваться при навигации по таблице, имеющей большое число записей.
Начинающим пользователям Microsoft Access доставляет неудобство тот факт, что данные не всегда умещаются в ячейках таблицы. Шириной столбцов можно управлять методом перетаскивания их границ. Удобно использовать автоматическое форматирование столбцов «по содержимому». Для этого надо установить указатель мыши на границу между столбцами (в строке заголовков столбцов), дождаться, когда указатель сменит форму, и выполнить двойной щелчок. Это общесистемный прием Windows 98, и им можно пользоваться в данной программе, как и во многих других.
После наполнения таблицы данными сохранять их не надо — все сохраняется автоматически. Однако если при работе с таблицей произошло редактирование ее макета (например, изменялась ширина столбцов), СУБД попросит подтвердить сохранение этих изменений.
Если возникнет необходимость изменить структуру таблицы (состав полей или их свойства), таблицу надо открыть в режиме Конструктора. Для этого ее следует выделить в окне База данных и щелкнуть на кнопке Конструктор.
Если на этапе проектирования базы данных была четко разработана структура таблиц, то создание таблиц с помощью Конструктора происходит очень быстро и эффективно. Даже без использования автоматизированных средств создание основы для достаточно крупных проектов происходит в считанные минуты — это ценное свойство СУБД Microsoft Access, но оно реализуется при непременном условии тщательной предварительной подготовки.
Если структура базы данных продумана заранее, а связи между таблицами намечены, то создание реляционных отношений между таблицами выполняется очень просто. Вся необходимая работа происходит в специальном окне Схема данных и выполняется с помощью мыши. Окно Схема данных открывают кнопкой на панели инструментов или командой Сервис --> Схема данных (если в меню Сервис не видно соответствующего пункта, следует раскрыть расширенную часть меню).
Образовавшаяся межтабличная связь отображается в окне Схема данных в виде линии, соединяющей два поля разных таблиц. При этом одна из таблиц считается главной, а другая — связанной. Главная — это та таблица, которая участвует в связи своим ключевым полем (название этого поля на схеме данных отображается полужирным шрифтом).
Здесь мы подходим к важному вопросу: «А зачем вообще нужна связь между таблицами?» У связи два основных назначения. Первое — обеспечение целостности данных, а второе — автоматизация задач обслуживания базы. Представим себе, что в таблице Клиенты, где каждый клиент уникален, кто-то удалит запись для одного из клиентов, но не сделает этого в таблице Заказы. Получится, что согласно таблице Заказы, некто, не имеющий ни имени, ни адреса, а только абстрактный код, делал заказы. Узнать по коду, кто же это был на самом деле, будет невозможно — произошло нарушение целостности данных.
В данном случае владелец базы может применить три подхода: либо вообще ничего не делать для защиты целостности данных, либо запретить удаление данных из ключевых полей главных таблиц, либо разрешить его, но при этом адекватно обработать и связанные таблицы. Вручную сделать это чрезвычайно трудно, поэтому и нужны средства автоматизации.
Связь между таблицами позволяет:
• либо исключить возможность удаления или изменения данных в ключевом поле главной таблицы, если с этим полем связаны какие-либо поля других таблиц.
• либо сделать так, что при удалении (или изменении) данных в ключевом поле главной таблицы автоматически (и абсолютно корректно) произойдет удаление или изменение соответствующих данных в полях связанных таблиц.
Для настройки свойств - связи надо в окне Схема данных выделить линию, соединяющую поля двух таблиц, щелкнуть на ней правой кнопкой мыши и открыть контекстное меню связи, после чего выбрать в нем пункт - Изменить связь — откроется диалоговое окно Изменение связи. В нем показаны названия связанных таблиц, имена полей, участвующих в связи (здесь же их можно изменить), а также приведены элементы управления для обеспечения условий целостности данных.
Если установлен только флажок Обеспечение целостности данных, то удалять данные из ключевого поля главной таблицы нельзя. Если вместе с ним включены флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей, то, соответственно, операции редактирования и удаления данных в ключевом поле главной таблицы разрешены, но сопровождаются автоматическими изменениями в связанной таблице.
Таким образом, смысл создания реляционных связей между таблицами состоит, с одной стороны, в защите данных, а с другой стороны — в автоматизации внесения изменений сразу в несколько таблиц, при изменениях в одной таблице.
В целом все запросы решают проблему обновления базы данных. Существуют различные формы запросов. Выбор формы запросы зависит от решаемой рекламной задачи, от системы организации системы базы данных, а так же от пристрастий пользователя. В любом случае пользователь получает из базы данных информацию, требуемую в данный момент времени.
Запросы представляют собой набор выборочной информации из общей базы данных.
Если структура базы данных предприятия хорошо продумано, то исполнители, работающие с базой, должны навсегда забыть о том, что в базе есть таблицы, а ещё лучше, если они об этом вообще ничего не знают. Таблицы – слишком ценные объекты базы, чтобы с ними имел дело кто-либо, кроме разработчика базы.
Если исполнителю надо получить данные из базы, он должен использовать специальные объекты – запросы. Все необходимые запросы разработчик базы должен подготовить заранее. Если запрос подготовлен, надо открыть панель Запросы в окне базы данных, выбрать его и открыть двойным щелчком на значке – откроется результирующая таблица, в которой исполнитель найдёт то, что его интересует.
В общем случае результирующая таблица может не соответствовать ни одной из базовых таблиц базы данных. Её поля могут представлять набор из полей разных таблиц, а её записи могут содержать отфильтрованные и отсортированные записи таблиц, на основе которых формировался запрос. Лишь в тех случаях, когда исполнитель не находит нужных данных в результирующей таблице, возникает необходимость готовить новый запрос – это задача разработчика базы.
Управление отображением данных в результирующей таблице.
В нижней части бланка запроса по образцу имеется строка Вывод на экран . По умолчанию предполагается, что все поля, включённые в запрос, должны выводиться на экран, но это не всегда целесообразно. Например, бывают случаи, когда некое поле необходимо включить в запрос, на пример потому, что оно является полем сортировки, но в то же время, не желательно, чтобы пользователь базы видел его содержание. В таких случаях отображения содержимого на экране подавляют сбросом флажка Вывод на экран.
Рисунок 5
Упорядочение записей в результирующей таблице.
Если необходимо, чтобы данные, отобранные в результате работы запроса по образцу, были упорядочены по какому-либо полю, применяется сортировка. В нижней части бланка имеется специальная строка Сортировка . При щелчке на этой строке открывается кнопка раскрывающегося списка, в котором можно выбрать метод сортировки: по возрастанию или по убыванию. В результирующей таблице данные будут отсортированные по тому полю, для которого задан порядок сортировки.
Рисунок 6. В приведённом примере в поле Наименование изделия сортировка будит производиться по возрастанию, а в поле Рекламодатель – по убыванию.
Возможна многоуровневая сортировка – сразу по нескольким полям. В этом случае данные сначала сортируются по тому полю, которое в бланке запроса по образцу находится левее, за тем по следующему полю, для которого включена сортировка, и так далее слева направо. Соответственно, при формировании запроса надо располагать поля результирующей таблицы не как попало, а с учётом будущей сортировки. В крайнем случае, если запрос уже сформирован, и надо изменить порядок следования столбцов, пользуются следующим приёмом:
Выделяют столбец щелчком на его заголовке (кнопку мыши отпускают).
Ещё раз щёлкают на заголовке уже выделенного столбца (но кнопку не отпускают) Перетаскивают столбец уже в другое место.
Использование условия отбора.
Дополнительным средством, обеспечивающим отбор данных по заданному критерию, является так называемое Условие отбора . Соответствующая строка имеется в нижней части бланка запроса по образцу.
Рисунок 7
Вычисляемые поля в запросах.
Допустимо использование вычисляемых полей. Для этого применяется «построитель выражений». В этой структуре используются следующие обозначения:
Sum – определяет сумму значений числового поля.
Count – определяет количество группируемых записей.
Min и Max – определяют минимальное и максимальное значение поля.
First – выбирает первое значение.
Визуальные средства создания запросов.
Определяющим моментом формированием запросов является связь между таблицами. Связи в информационных технологиях показывают, какие поля, из каких таблиц связанны и каким образом. Синонимом слова Связь является слово Отношение.
В системе управления базы данных рассматриваются три типа отношений:
• «Один-к-одному». При данном типе отношения в запросе по образцу происходит объединение только совпадающих записей.
Рисунок 8
• «Один-ко-многим». При данном типе отношения происходит объединение всех записей из одной таблицы, с совпадающими записями из другой.
Рисунок 9
• «Многие-ко-многим».
Особенность запроса состоит в том, что по запросу выбираются данные из базовых таблиц, и на их основе создаются временные результирующие таблицы.
Эти временные таблицы находятся в оперативной памяти. При запросе пользователь имеет дело с отражением требуемых полей оперативной памяти, потому что работы с запросами происходит гораздо эффективнее, так как время доступа к базе данных, хранящейся на винчестере гораздо больше времени доступа к запросам в оперативной памяти.
В запрос заносятся только требуемые поля из общей таблицы, поэтому просмотр результата в значительной мере упрощается.
Безопасность хранения данных в базе данных.
При обращении к винчестеру могут возникнуть ситуации, приводящие к разрушению структуры базы данных:
• Неопытность пользователя.
• Хакерство.
• Выключение электричества.
• Повреждение вычислительной системы.
• Повреждение программного обеспечения (вирус).
7. Виды запросов, применяемых в рекламной практике
Этот запрос может быть разработан с помощью специального языка SQL (Structured Query Language). Однако пользователям MS Access изучать данный язык программирования необязательно, а большинство операций можно выполнить щелчками кнопок мыши и приёмом перетаскивания в бланке, так как пакет MS Access имеет визуальные средства разработки запроса по образцу.
Пример:
Рекламному агентству по производству сувенирной продукции необходимо закупить партию ручек для нанесения логотипа фирмы. Стоимость данных ручек не должна превышать пять рублей за единицу продукции.
Технология разработки запроса по образцу в MS Access:
• Запуск программы MS Access (Пуск-->Программы-->MS Access).
• В окне MS Access включите переключатель открыть базу данных, выберете раннее созданную базу Сувенирная продукция и щёлкните на кнопку ОК.
• В окне Сувенирная продукция: База данных откройте панель Запросы. Дважды щёлкните на значке Создание запроса в режиме Конструктора - откроется бланк запроса по образцу.
• Добавьте в созданный запрос таблицу Поставщики.
• В строке Условие отбора поле Наименование введите: Ручка.
• Строку Условие отбора для поля Цена оптовая надо заполнить таким образом, чтобы при запуске запроса выдавались данные о ручках стоимостью до пяти рублей. Для этого необходимо в строке Условие отбора для поля Цена оптовая написать: <=5
Рисунок 10
• Закройте запрос. При закрытии сохраните его под именем Отбор ручек стоимостью до пяти рублей.
• В окне Сувенирная продукция: База данных откройте панель Запросы и запустите запрос Отбор ручек стоимостью до пяти рублей. На экране появится результирующая таблица, которая содержит информацию о ручках стоимостью до пяти рублей.
• Закройте все объекты базы данных. Закройте программу MS Access.
Специальный тип запросов, называемый запросами с параметрами, позволяет пользователю самому ввести критерий отбора данных на этапе запуска запроса. Этим приёмом обеспечивается гибкость работы с базой.
Пример:
Рекламному агентству по производству печатной рекламы необходимо выбрать информацию из ранее созданной базы данных о поставщиках цветных принтеров для выпуска новой партии рекламных буклетов.
Технология разработки запроса с параметрами MS Access:
• Запуск программы MS Access (Пуск->Программы->MS Access).
• В окне MS Access включите переключатель открыть базу данных, выберете раннее созданную базу печатная техника и щёлкните на кнопку ОК.
• В окне Печатная техника: База данных откройте панель Запросы. Дважды щёлкните на значке Создание запроса в режиме Конструктора - откроется бланк запроса по образцу.
• Добавте таблицу Поставщики, из которой выберите поля: Компонент, Модель, Цена оптовая, Поставщик, Телефон.
• В строке Условие отбора поля Компонент введите: Принтер.
• Строку Условие отбора для поля Цена оптовая надо заполнить таким образом, чтобы при запуске запроса пользователь получал предложении ввести нужное значение. Текст, обращённый к пользователю, должен быть заключён в квадратные скобки. Если бы хотели отобрать принтеры, цена которых более 200 у.е., мы бы написали: >200. если бы нам нужны были принтеры дешевле 200 у.е., мы бы написали: <200. но если мы хотим дать пользователю возможность выбора, мы должны написать «Введите цену».
Рисунок 11
• Закройте запрос. При закрытии сохраните его под именем Отбор принтера.
• В окне Печатная техника: База данных откройте панель Запросы и запустите запрос Отбор принтера – на экране появится диалоговое окно Введите значение параметра.
• Введите какое-либо число и щёлкните по кнопке ОК. В зависимости оттого, что реально содержится в таблице Поставщики, по результатам запросам будит, сформирована результирующая таблица.
Рисунок 12
• Закройте все объекты базы данных. Закройте программу MS Access.
Запрос, выполняющий вычисление по всем записям для какого-либо числового поля, называются итоговыми запросами. В итоговом запросе может рассчитываться сумма значений или величина среднего значения по всем ячейкам поля, может выбираться максимальное или минимальное значение данных в поле, может, так же исполнятся иная итоговая функция. Итоговые запросы, как и запросы на выборку, готовятся с помощью бланка запроса по образцу.
Пример:
Полнопрофильному рекламному агентству необходимо определить наиболее востребованный вид услуг за прошедший период времени, для того чтобы выявить сильные и слабые стороны своей деятельности. Рекламное агентство оказывает следующие виды услуг:
• Создание видеороликов.
• Создание аудиороликов.
• Наружная реклама.
• Неоновая реклама.
• Планирование и реализация рекламных кампаний.
• Реклама в прессе.
• Реклама на транспорте.
• Изготовление сувенирной продукции с нанесением логотипа фирмы.
Технология создания итогового запроса в MS Access:
• Запустите программу MS Access (Пуск-->Программы -->MS Access).
• В окне MS Access включите переключатель открыть базу данных, выберите ранее созданную базу Рекламное агентство и щёлкните на кнопку ОК.
• Щёлкнит откройте панель Запросы щёлчком на одноимённой кнопке окна Рекламное агентство: База данных.
• Выполните двойной щелчок на значке Создание запросов в режиме конструктора. В открывшемся диалоговом окне Добавление таблицы выберите таблицу Виды услуг и заказы, на основе которой будет разрабатываться итоговый запрос. Закройте окно Добавление таблицы.
• В бланке запроса по образцу ввдете следующие поля таблицы Виды услуг и заказы: Виды услуг, Количество заказов, Общая прибыль.
• На панели инструментов MS Access щёлкните на кнопке Групповые операции или воспользуйтесь строкой меню (Вид-->Групповые операции). Эта команда необходима для создания в нижней части бланка строки Групповые операции. Именно на её базе создаются итоговые вычисления. Все поля, отобранные для запроса, получают в этой строке значение Группировка.
• Для поля, по которому производится группировка записей (в нашем случае – Вид услуг), оставьте в строке Групповые операции значения Группировка. Для остальных полей щёлкните в этой строке – появится кнопка раскрывающего списка, из которого можно выбрать итоговую функцию для расчёта значений в данном поле.
• Для поля Количество заказов выберите итоговую функцию Count, определяющую общее количество заказов на конкретный вид услуг.
• Для поля Общая прибыль выберите итоговую функцию Sum для определения общей прибыли по конкретному виду услуг.
Рисунок 13
• Закройте бланк запроса по образцу и дайте ему имя Расчёт общей прибыли по различным видам услуг.
• Запустите запрос и убедитесь, что он правильно работает.
Он позволяет создать результирующие таблицы на основе результатов расчётов, полученных при анализе группы таблиц.
В перекрёстном запросе отображаются результаты расчетов (таких как суммы, количество записей и среднее значения), выполненных по данным из одного поля таблицы. Эти результаты группируются по двум наборам данных, один из которых расположен в левом столбце таблицы, а второй в верхней строке. Для примера, при создании перекрёстного запроса мы используем таблицу Код газеты и Запрос на вычисление. Запрос на вычисление был создан на основе таблиц Вспомогательная 1 и Код газеты.
Рисунок 14
Для строк перекрёстного запроса выберем поле Наименование изделия из таблицы Код газеты, а так же поле Рекламодатель из Запроса на вычисления. Для вывода расчетов используем поле Наименование изделия.
Рисунок 15
В данном перекрёстном запросе отражена стоимость объявления в различных газетах города Ростова – на – Дону по отдельно взятым рекламодателям.
Это запрос, который за одну операцию вносит изменения в несколько записей. Запрос на изменения бывают четырёх типов:
Запрос на удаление
Удаляет группу записей из одной или нескольких таблиц.
В рекламной практике запрос на удаление позволяет удалить записи о рекламодателях, которые не делали долгое время заказов в рекламном агентстве.
Запрос на обновление записей
Вносит общие изменения в группу записей одной или несколько таблиц.
Запрос на обновление записей в рекламной практике может использоваться, когда происходит повышение цен на 10% на бумагу для печатной рекламы, так как охватывает большую группу различных видов печатной продукции.
Запрос на добавление
Добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких других таблиц.
При появлении новых клиентов у рекламного агентства, сведения о них можно не вводить в ручную, а добавить в таблицу Клиенты с помощью запроса.
Запрос на создание таблиц
Создаёт новую таблицу на основе всех или части данных из одной или нескольких таблиц.
• Создание таблицы для экспорта в другую базу данных MS Access.
• Создание отчётов, содержащих данные, соответствующие определённому моменту времени.
• Создание резервной копии таблицы.
• Создание архивной копии, содержащей старые записи.
• Повышение быстродействия форм и отчётов, базирующихся на многотабличных запросах или инструкциях SQL.
Для создания любого из этих запросов бланке запроса конструктора щёлкнуть правой кнопкой и выбрать Тип запроса, а затем выбрать необходимый варианта запроса.
Запрос к серверу базы данных написанные на языке запросов SQL.
Язык включает в себя несколько функциональных категорий:
• Язык определения данных (или язык определения схемы) содержит команды для создания объектов (таблиц, индексов, представлений) в базе данных.
• Язык манипулирования данными, представляющим множество команд, определяющих какие данные представлены в таблице в данный момент времени.
• Язык управления данными состоит из предложений, определяющих, может ли пользователь выполнить определённое действие.
Для создания этих специфических запросов необходимо составить инструкции SQL в режиме SQL, так как визуальных средств нет.
К запросам SQL относятся запросы на объединение, запросы к серверу или управляющие запросы.
Смысл формы - пользователь получает возможность заполнять только некоторые из полей. Преимущество форм раскрывается особенно наглядно при вводе данных заполненных бланков. Здесь форма повторяет вид бланка. Это снижает количество ошибок, упрощает работу.
Работа с формами
С одной стороны, формы позволяют пользователям вводить данные в таблицы базы данных без непосредственного доступа к самим таблицам. С другой стороны, они позволяют выводить результаты работы запросов не в виде скупых результирующих таблиц, а в виде красиво оформленных форм. В связи с таким разделением существует два вида формирования структуры форм: на основе таблицы и на основе запроса, хотя возможен и комбинированный подход, — это вопрос творчества.
Автоформы
В отличие от таблиц и запросов, которые мы формировали вручную, формы удобнее готовить с помощью средств автоматизации. Полностью автоматическими являются средства, называемые автоформами.
Существует три вида автоформ:
• Автоформа «в столбец» отображает все поля одной записи — она удобна для ввода и редактирования данных.
• «Ленточная» автоформа отображает одновременно группу записей — ее удобно использовать для оформления вывода данных.
• Табличная автоформа по внешнему виду ничем не отличается от таблицы, на которой она основана.
Для создания автоформы следует открыть панель Формы в окне База данных и воспользоваться командной кнопкой Создать. В открывшемся диалоговом окне Новая форма выбирают тип автоформы и таблицу (или запрос), на которой она основывается. После щелчка на кнопке ОК автоформа формируется автоматически и немедленно готова к работе, то есть к вводу или отображению данных.
Обратите внимание на то, что автоформа основывается только на одном объекте. Иные средства создания форм позволяют закладывать в основу структуры формы поля нескольких таблиц или запросов. Если форма основывается только на одном объекте, она называется простой формой. Если форма основывается на полях из нескольких связанных таблиц, то она называется сложной и представляет собой композицию из нескольких форм.
Создание форм с помощью мастера. Автоматизированные средства предоставляет Мастер форм — специальное программное средство, создающее структуру формы в режиме диалоге с разработчиком.
Создание формы с помощью мастера на панели Формы:
• На первом этапе работы Мастера форм выбирают таблицы и поля, которые войдут в будущую форму.
• На втором этапе выбирается внешний вид формы.
• На третьем этапе выбирается стиль оформления формы.
• На последнем этапе выполняется сохранение формы под заданным именем. Здесь же можно включить переключатель - Изменить макет формы, который открывает только что созданную форму в режиме Конструктора. Этим удобно воспользоваться в учебных целях, чтобы рассмотреть структуру формы на готовом примере.
Структура формы Форма имеет три основных раздела:
• область заголовка.
• область данных.
• область примечания.
Линии, разделяющие разделы, перетаскиваются по вертикали с помощью мыши — это позволяет изменять размеры разделов так, как требуется.
Разделы заголовка и примечания имеют чисто оформительское назначение — их содержимое напрямую не связано с таблицей или запросом, на котором основана форма. Раздел данных имеет содержательное значение — в нем представлены элементы управления, с помощью которых выполняется отображение данных или их ввод. Разработчик формы может разместить здесь дополнительные элементы управления для автоматизации ввода данных (переключатели, флажки, списки и другие, типичные для приложений Windows).
Элементы управления формы. Элементы управления, которыми может пользоваться разработчик, представлены на Панели элементов. Ее открывают щелчком на соответствующей кнопке панели инструментов Microsoft Access или командой Вид --> Панель элементов.
Выбор элемента управления выполняется одним щелчком на его значке в Панели элементов, после чего следующим щелчком в поле формы отмечается место, куда он должен быть поставлен. Вместе с элементом в поле формы вставляется его присоединенная надпись. По умолчанию эта надпись стандартная, например, для переключателей это Переключатель 1, Переключатель 2 и т. д. Редактированием свойства элемента управления (доступ к свойствам открывается через контекстное меню) можно дать элементу управления более содержательную подпись.
Основными элементами оформления формы являются текстовые надписи и рисунки. Для создания в форме текстовых надписей служат два элемента управления — Надпись и Поле. В качестве надписи можно задать произвольный текст. Элемент Поле отличается тем, что в нем отображается содержимое одного из полей таблицы, на которой основана форма, то есть при переходе от записи к записи текст может меняться.
Для создания графических элементов оформления служат элементы управления Рисунок, Свободная рамка объекта и Присоединенная рамка объекта. Рисунок выбирается из графического файла и вставляется в форму. Элемент Свободная рамка объекта отличается тем, что это не обязательно рисунок — это может быть любой другой объект OLE, например мультимедийный. Элемент Присоединенная рамка объекта тоже в какой-то степени может служить для оформления формы, но его содержимое берется не из назначенного файла, а непосредственно из таблицы базы данных (если она имеет поле объекта OLE). Естественно, что при переходе между записями содержимое этого элемента будет меняться.
Дизайн формы. В то время как таблицы базы данных глубоко скрыты от посторонних глаз, формы базы данных — это средства, с помощью которых с ней общаются люди. Поэтому к формам предъявляются повышенные требования по дизайну.
В первую очередь, все элементы управления форм должны быть аккуратно выровнены. Это обеспечивается командой Формат -->Выровнять. Если нужно равномерно распределить элементы управления по полю формы, используют средства меню Формат --> Интервал по горизонтали или Формат --> Интервал по вертикали.
Ручное изменение размеров и положения элементов управления тоже возможно, но редко приводит к качественным результатам. При работе вручную используют перетаскивание маркеров, которые видны вокруг элемента управления в тот момент, когда он выделен. Особый статус имеет маркер левого верхнего угла. Обычно элементы управления перетаскиваются вместе с присоединенными к ним надписями. Перетаскивание с помощью этого маркера позволяет оторвать присоединенную надпись от элемента.
Существенную помощь при разработке дизайна формы оказывает вспомогательная сетка. Ее отображение включают командой Вид --> Сетка. Автоматическую привязку элементов к узлам сетки включают командой Формат --> Привязать к сетке.
Управление последовательностью перехода. Пользователь, для которого, собственно, и разрабатывается форма, ожидает, что ввод данных в нее должен происходить по элементам управления слева направо и сверху вниз. Однако при проектировании сложных форм, когда в процессе дизайна элементы управления многократно перемещаются с места на место, очень легко перепутать их последовательность и создать неудобный порядок ввода данных.
Физически последовательность перехода — это порядок перехода к следующему полю по окончании работы с предыдущим. Она легко проверяется с помощью клавиши TAB. Если при последовательных нажатиях этой клавиши фокус ввода «мечется» по всей форме, значит, последовательность перехода нерациональна, и ее надо править.
Для управления последовательностью перехода служит диалоговое окно Последовательность перехода. В нем представлен список элементов управления формы. Порядок элементов в списке соответствует текущему порядку перехода.
Изменение порядка перехода выполняется перетаскиванием в два приема:
• щелчком на кнопке маркера слева от названия выделяется элемент управления (кнопка мыши отпускается).
• после повторного щелчка с перетаскиванием элемент перемещается на новое место.
Закончив разработку макета формы, ее следует закрыть и сохранить под заданным именем. После открытия формы в окне База данных, с ней можно работать: просматривать или редактировать данные из базовой таблицы. Проверку последовательности перехода выполняют клавишей TAB.
Отчёты отличаются от прочих объектов Access тем, что предназначены только для вывода данных на печатающее устройство, но не на экран. В них приняты специальные меры для группировки выходных данных и для вывода специальных элементов оформления, характерных для печатных документов.
Работа с отчетами
Отчеты во многом похожи на формы и страницы доступа к данным, но имеют иное функциональное назначение — они служат для форматированного вывода данных на печатающие устройства и, соответственно, при этом должны учитывать параметры принтера и параметры используемой бумаги.
Большая часть того, что было сказано о формах, относится и к отчетам. Здесь также существуют средства автоматического, автоматизированного и ручного проектирования. Средства автоматического проектирования реализованы автоотчетами (База данных --> Создать --> Новый отчет --> Автоотчет в столбец). Кроме автоотчетов «в столбец» существуют «ленточные» автоотчеты. Разницу между ними нетрудно увидеть, поставив эксперимент.
Средством автоматизированного создания отчетов является Мастер отчетов. Он запускается двойным щелчком на значке Создание отчета с помощью мастера в окне База данных. Мастер отчетов работает в шесть этапов. При его работе выполняется выбор базовых таблиц или запросов, на которых отчет базируется, выбор полей, отображаемых в отчете, выбор полей группировки, выбор полей и методов сортировки, выбор формы печатного макета и стиля оформления.
Структура готового отчета отличается от структуры формы только увеличенным количеством разделов. Кроме разделов заголовка, примечания и данных, отчет может содержать разделы верхнего и нижнего колонтитулов. Если отчет занимает более одной страницы, эти разделы необходимы для печати служебной информации, например номеров страниц. Чем больше страниц занимает отчет, тем важнее роль данных, выводимых на печать через эти разделы. Если для каких-то полей отчета применена группировка, количество разделов отчета увеличивается, поскольку оформление заголовков групп выполняется в отдельных разделах.
Редактирование структуры отчета выполняют в режиме Конструктора (режим запускается кнопкой Конструктор в окне База данных). Приемы редактирования те же, что и для форм. Элементы управления в данном случае выполняют функции элементов оформления, поскольку печатный отчет не интерактивный объект, в отличие от электронных форм и Web-страниц. Размещение элементов управления выполняют с помощью Панели элементов (Вид --> Панель элементов), которая по составу практически не отличается от Панели элементов формы. Важной особенностью отчетов является наличие средства для вставки в область верхнего или нижнего колонтитула текущего номера страницы и полного количества страниц. Эту операцию выполняют с помощью диалогового окна Номера страниц (Вставка --> Номера страниц).
Страница (страница доступа к данным) – объект, выполненный в коде HTML – язык гипертекстовой разметки, размещаемый на web-странице, и передаваемый клиенту вместе со страницей. Сам по себе этот объект не является БД, но содержит компоненты, через которые осуществляется связь переданной web-страницы с БД, остающейся на сервере.
Работа со страницами доступа к данным
Страницы (страницы доступа к данным) — новый объект баз данных, вошедший в последнюю версию Microsoft Access. Как и формы, этот объект служит для обеспечения доступа к данным, содержащимся в базе, но здесь речь идет об удаленном доступе, например о доступе через Интернет или через корпоративную сеть Intranet.
С помощью страниц доступа к данным решается вопрос передачи данных из базы удаленному потребителю. Обычно базы данных имеют очень большие размеры, и напрямую передавать их через медленные каналы связи непрактично. В то же время, большинство современных Web-браузеров пока не имеют функций для работы с базами данных, размещенными на серверах. Таким образом, страницы доступа выполняют как бы посредническую функцию. Они имеют небольшой размер, содержат удобные элементы управления для навигации в базе данных, могут быть записаны в формате кода HTML, переданы по медленным каналам связи и воспроизведены в стандартном браузере. В связи с тем, что по формату они являются Web-документами, их нетрудно встроить в любой Web-документ, например, разместить на Web-странице.
От прочих объектов базы данных страницы доступа отличаются тем, что имеют двойную природу. Прочие объекты базы являются внутренними. Так, например, мы не можем выделить ни таблицу, ни запрос, ни форму в виде самостоятельного файла. Эти объекты размещаются где-то внутри файла базы данных, но операционная система компьютера работать с ними не может, поскольку это не файлы. С ними работает лишь сама система управления базой данных. Страница же представлена двумя объектами — внутренним объектом базы (его можно редактировать) и внешним объектом — файлом в формате HTML. Запись этого файла происходит при сохранении спроектированной страницы доступа.
Создание страницы доступа к данным.
Для страниц доступа, как и для форм, важную роль играет внешний вид, поэтому создавать их удобно с помощью мастера.
Создание страницы доступа к данным с помощью мастера.
• На первом этапе работы Мастера форм выбирают таблицы (или запросы), в их составе — поля, к которым должна обеспечить доступ страница.
• Второй этап работы мастера предназначен для управления группировкой данных. Эта возможность предусмотрена для доступа к базам, содержащим большие объемы данных. Если значения в некотором поле часто повторяются, имеет смысл объединить соответствующие им записи в группу. Так, например, для страницы, обеспечивающей доступ к таблице Комплектующие, в отдельные группы могут быть собраны записи, относящиеся к процессорам, материнским платам, жестким дискам и т. д.
• На третьем этапе выбирается метод упорядочения отображаемых данных. Возможно задание до четырех полей сортировки, причем сортировка возможна как по возрастанию, так и по убыванию.
• На последнем этапе выполняется сохранение страницы под заданным именем. Здесь же можно перейти в режим Конструктора, включив переключатель Изменить макет страницы. В случае изменения макета к странице можно применить одну из тем оформления, входящих в состав пакета Microsoft Office 2000. Темы оформления представляют собой совокупности стилей оформления текстов, фоновых узоров и специфических элементов оформления страницы (маркеров, линий и прочих).
Редактирование страницы доступа к данным.
Редактирование созданной страницы доступа выполняется в режиме Конструктора теми же приемами, которые были описаны для форм. Основными отличиями являются:
• наличие большего количества разделов (связано с возможностью группировки).
• в расширенный состав элементов управления на Панели элементов (Вид --> Панель элементов).
• иной механизм перетаскивания элементов управления и присоединенных надписей (элементы управления перетаскиваются вместе с присоединенными надписями, но присоединенные надписи перетаскиваются отдельно от элементов управления).
Макросы и модули предназначены для автоматизации повторяющихся операций с БД, а также для создания новой функции путём программирования. Макросы в СУБД Ms Access состоят из последовательности внутренних команд. Модули создаются с помощью языка Visual Basic for Application. Модули предназначены для удовлетворения специфических требований пользователя, повышения быстродействия системного управления, для повышения уровня защищённости БД.
1. Каковы функции банков данных?
2. Для чего предназначена СУБД?
3. Назовите и охарактеризуйте классы СУБД.
4. Как можно оценить производительность СУБД?
5. Какие существуют языки СУБД?
6. Назовите и охарактеризуйте поля БД.
7. Каковы основные свойства полей БД?
8. Алгоритм работы при создании Таблицы базы данных в СУБД MS Access.
9. Зачем необходима связь между таблицами?
10. Самостоятельно создайте таблицы базы данных в СУБД MS Access и установите между ними связь.
11. Виды Запросов и их назначение.
12. Самостоятельно создайте Запрос в режиме Конструктора.
13. Смысл Форм и их преимущества. Три вида Автоформ.
14. Самостоятельно создайте Форму с помощью мастера Форм.
15. Что такое страницы доступа к данным, для чего они предназначены и чем они отличаются от прочих объектов базы данных? Как выполняется редактирование созданной страницы доступа?
16. Самостоятельно создайте страница доступа к данным с помощью Мастера.
17. Каковы основные отличия Отчетов от прочих объектов MS Access? Что необходимо для формирования Отчета? Как выполняется редактирование отчета?
18. Где находится временные результирующие таблицы?
19. В чём заключается преимущества хранения запросов в оперативной памяти, а не на винчестере?
20. Какую проблему призваны решать различные формы запросов?
21. Каким образом определяются поля, которые содержатся в запросе?
22. От чего зависит выбор вида запросов в той или иной ситуации?
23. Что является определяющим моментом при формировании запроса?
24. Что показывают связи между таблицами?
25. Какие виды отношений или связей Вы знаете?
26. В чём состоит особенность каждого вида отношений?
27. Что такое вычисляемые поля в запросе?
28. Какие виды запросов Вы знаете?
29. Для чего предназначены запросы?
30. Как и в каком режиме готовятся запросы?
31. На основании, каких объектов базы данных можно построить запрос?
32. Чем отличается запросы на Выборку от запросов с Параметром и Итоговых запросов?
33. В чём особенность создания Перекрёстных запросов?
34. С помощью какого языка программирования можно разработать запрос по Образцу?
35. Как называется запрос, который позволяет пользователю самому вводить критерий отбора данных на этапе запуска запроса?
36. Какие запросы на изменения Вы знаете?
37. Для чего используется запрос на Изменение?