Графическая интерпретация реляционной схемы
Концептуальная модель, реализованная в виде реляционной схемы, имеет свои правила графического представления.
· Отношение представляется в виде полоски, содержащей имена всех атрибутов. Имя отношения пишется над ней.
· Первичный ключ отношения должен быть выделен жирной рамкой.
· Связи, определенные между отношениями, должны быть показаны линиями, проведенными между связующими атрибутами. Значения экземпляров связующих атрибутов должны совпадать.
20. Базы данных. Проектирование реляционной базы данных.
При проектировании базы данных решаются две основных проблемы:
· Каким образом отобразить объекты предметной области в абстрактные объекты модели данных, чтобы это отображение не противоречило семантике предметной области и было по возможности лучшим (эффективным, удобным и т.д.)? Часто эту проблему называют проблемой логического проектирования баз данных.
· Как обеспечить эффективность выполнения запросов к базе данных, т.е. каким образом, имея в виду особенности конкретной СУБД, расположить данные во внешней памяти, создание каких дополнительных структур (например, индексов) потребовать и т.д.? Эту проблему называют проблемой физического проектирования баз данных.
В случае реляционных баз данных трудно представить какие-либо общие рецепты по части физического проектирования. Здесь слишком много зависит от используемой СУБД. Например, при работе с СУБД Ingres можно выбирать один из предлагаемых способов физической организации отношений, при работе с System R следовало бы прежде всего подумать о кластеризации отношений и требуемом наборе индексов и т.д. Поэтому мы ограничимся вопросами логического проектирования реляционных баз данных, которые существенны при использовании любой реляционной СУБД.
Более того, мы не будем касаться очень важного аспекта проектирования - определения ограничений целостности (за исключением ограничения первичного ключа). Дело в том, что при использовании СУБД с развитыми механизмами ограничений целостности (например, SQL-ориентированных систем) трудно предложить какой-либо общий подход к определению ограничений целостности. Эти ограничения могут иметь очень общий вид, и их формулировка пока относится скорее к области искусства, чем инженерного мастерства. Самое большее, что предлагается по этому поводу в литературе, это автоматическая проверка непротиворечивости набора ограничений целостности.
Так что будем считать, что проблема проектирования реляционной базы данных состоит в обоснованном принятии решений о том,
· из каких отношений должна состоять БД и
· какие атрибуты должны быть у этих отношений.
21.Базы данных. Назначение запросов. Типы запросов. Правила создания и выполнения запросов.
Назначение запросов.
Запрос – это требование на получение определенной информации. Запросы позволяют сфокусировать внимание именно для тех данных, которые нужны для решения текущей задачи.
Используя запросы, можно проверять данные любым образом, который мы в состоянии представить. Можно отобрать таблицы, поля и записи, содержащие необходимые для просмотра, подведения итогов или использования в вычислениях данные; отсортировать их; создать отчеты и формы для отображения указанной нами информации и даже создать диаграммы для наглядного представления данных.
Результат работы запроса называется выборкой. Выборка не сохраняется в базе данных; она создается заново каждый раз при выполнении запроса и уничтожается при его закрытии.
Типы запросов
В Microsoft Access есть несколько типов запросов.
Запросы на выборку
Запрос на выборку является наиболее часто используемым типом запроса. Запросы этого типа возвращают данные из одной или нескольких таблиц и отображают их в виде таблицы, записи в которой можно обновлять (с некоторыми ограничениями). Запросы на выборку можно также использовать для группировки записей и вычисления сумм, средних значений, подсчета записей и нахождения других типов итоговых значений.
Запросы с параметрами
Запрос с параметрами — это запрос, при выполнении отображающий в собственном диалоговом окне приглашение ввести данные, например условие для возвращения записей или значение, которое требуется вставить в поле. Можно разработать запрос, выводящий приглашение на ввод нескольких единиц данных, например двух дат. Затем Microsoft Access может вернуть все записи, приходящиеся на интервал времени между этими датами.
Запросы с параметрами также удобно использовать в качестве основы для форм, отчетов и страниц доступа к данным. Например, на основе запроса с параметрами можно создать месячный отчет о доходах. При печати данного отчета Microsoft Access выводит на экран приглашение ввести месяц, доходы за который должны быть приведены в отчете. После ввода месяца Microsoft Access выполняет печать соответствующего отчета.
Перекрестные запросы
Перекрестные запросы используют для расчетов и представления данных в структуре, облегчающей их анализ. Перекрестный запрос подсчитывает сумму, среднее, число значений или выполняет другие статистические расчеты, после чего результаты группируются в виде таблицы по двум наборам данных, один из которых определяет заголовки столбцов, а другой заголовки строк.
Запросы на изменение
Запросом на изменение называют запрос, который за одну операцию изменяет или перемещает несколько записей. Существует четыре типа запросов на изменение.
• На удаление записи. Запрос на удаление удаляет группу записей из одной или нескольких таблиц. Например, запрос на удаление позволяет удалить записи о товарах, поставки которых прекращены или на которые нет заказов. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.
• На обновление записи. Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 10 процентов поднимаются цены на все молочные продукты или на 5 процентов увеличивается зарплата сотрудников определенной категории. Запрос на обновление записей позволяет изменять данные в существующих таблицах.
• На добавление записей. Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу «Клиенты».
• На создание таблицы. Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Microsoft Access или при создания архивной таблицы, содержащей старые записи.
Запросы SQL
Запрос SQL — это запрос, создаваемый при помощи инструкций SQL. Язык SQL (Structured Query Language) используется при создании запросов, а также для обновления и управления реляционными базами данных, такими как базы данных Microsoft Access.
Когда пользователь создает запрос в режиме конструктора запроса, Microsoft Access автоматически создает эквивалентную инструкцию SQL. Фактически, для большинства свойств запроса, доступных в окне свойств в режиме конструктора, имеются эквивалентные предложения или параметры языка SQL, доступные в режиме SQL. При необходимости пользователь имеет возможность просматривать и редактировать инструкции SQL в режиме SQL. После внесения изменений в запрос в режиме SQL его вид в режиме конструктора может измениться.
Некоторые запросы, которые называют запросами SQL, невозможно создать в бланке запроса. Для запросов к серверу, управляющих запросов и запросов на объединение необходимо создавать инструкции SQL непосредственно в окне запроса в режиме SQL. Для подчиненного запроса пользователь должен ввести инструкцию SQL в строку Поле или Условие отбора в бланке запроса.
22. Базы данных. Назначение форм. Назначение отчетов. Способы создания и использования форм и отчетов.
Назначение форм
Разработчик, работая над созданием базы данных, тщательно продумывает структуру всех таблиц и запросов, которые будут в нее входить. Но последующим информационным заполнением этой базы, он уже заниматься не будет. Это будут делать специальные наборщики текста (они обычно работают над первичным информационным наполнением) и пользователи БД. Очень часто и первые и вторые могут оказаться людьми с квалификацией недостаточной для работы с базой данных в чистом виде. Вот именно для этих людей и для максимального упрощения их труда - создаются формы. Сама форма представляет собой электронный бланк, в котором есть ряд поименованных (подписанных) полей для ввода информации. Пользователь или наборщик заполняет эти поля информацией, и она автоматически заносится в соответствующие таблицы базы данных.
У формы есть несколько немаловажных плюсов. Про первый плюс я уже сказал. Это защита базы от малоквалифицированного персонала. Подумайте только, что может натворить новый, неопытный диспетчер аэропорта, получи он доступ к таблицам рейсов и воздушных коридоров (самому ценному в диспетчерской базе данных координации полетов). Более безопасно предоставить ему для заполнения форму, с четкими и понятными полями.
Второй плюс очень тесно связан с первым. Это возможность разграничить права доступа, для различных групп пользователей. Не ко всей информации в базе можно допускать любого пользователя!!! Для нормальной работы базы и сохранения конфиденциальности информации, очень часто создают перечень групп, для каждой из которых создают свою форму, содержащую доступную только этой группе информацию и поля для ввода. Например, продавец может оформить продажу книги или заказ на нужную книгу, но поменять ее цену или название, он не в праве. Менеджер может переместить поступившие книги с учета на складе в учет в магазине, заполнить официальный запрос издательству на новую партию недостающих книг, но к информации о финансовых манипуляциях он не допускается. На его формах нет таких полей. Директору дозволено все! Его права не ограничены, но и для него существует набор форм, полностью скрывающий доступ к самой структуре БД. Такой доступ разрешен только разработчику и администратору БД.
Третий плюс - это возможность оптимизировать ввод данных. Если нужно заполнить всего три поля в таблице, а она имеет их порядка 10-15, да и расположены они не подряд, то такая работа становится очень утомительной. Начинают появляться ошибки, устранить которые из-за особенностей БД (рассказанных в "Шаг 10 - Внимание! Редактируем базу") не так просто. Вся информация моментально сохраняется в базе и если потом понимаешь, что ошибся, то отменить действия уже нельзя. Нужно искать и исправлять ошибки в ручную. На форме все значительно проще. Поля располагаются в удобном порядке, да и элементы управления формой возможно настроить так, чтобы при добавлении записей проводилась их первичная проверка. Ошибку легче исправить еще на стадии заполнения формы, нежели после.
Четвертый плюс позволяет упростить заполнение базы информацией, поступающей на фирменных или любых других стандартных бланках. Форма просто выполняется в виде точной копии своего бумажного аналога, с которого будет сниматься информация. Например, для перевода всей бумажной библиотечной картотеки в электронный вид, можно создать форму, полностью совпадающую с использующимися там карточками. И тогда сотрудникам библиотеки будет значительно проще работать с ними. Ведь порядок заполнения, выработанный годами работы, не меняется. Меняется только форма представления данных. Это значительно ускорит процесс переоформления картотеки и на несколько порядков уменьшит количество возможных ошибок.
Назначение отчетов
• Отчеты позволяют выбрать из базы данных требуемую пользователем информацию и оформить ее в виде документов, которые можно просмотреть и напечатать.
• Источником данных для отчета может быть таблица, несколько связанных таблиц или запрос.
• В отчете, так же как и на формах, могут создаваться вычисляемые поля, например итоговые суммы и др.
• В отчёте возможна сортировка и группировка данных с вычислением нужных итогов.
Отчет — это объект базы данных, который предназначен для вывода информации из баз данных, прежде всего на принтер. Отчеты позволяют выбрать из баз данных нужную пользователю информацию, оформить ее в виде документа, перед выводом на печать просмотреть на экране. Источником данных для отчета может служить таблица или запрос. Кроме данных, полученных из таблиц, в отчете могут отображаться вычисляемые поля, например, итоговые суммы.
Ниже приведены виды отчетов.
- Одноколонный отчет (в столбец) — длинный столбец текста, содержащий надписи полей, их значения из всех записей таблицы или запроса.
- Многоколонный отчет — сездается из отчета в одну колонку и позволяет вывести данные отчета в несколько колонок.
- Табличный отчет — отчет, имеющий табличную форму.
- Отчет с группировкой данных и подведением итогов — создается из табличного отчета объединением данных в группы с подсчетом итогов.
- Перекрестный отчет — строится на основе перекрестных запросов и содержит итоговые данные.
- Составной отчет — отчет, имеющий сложную структуру, включающий один или несколько отчетов.
- Отчет, полученный слиянием документов с Word (составной документ).
- Почтовые наклейки — специальный тип многоколонного отчета, предназначенный для печати имен и адресов групп.
- Отчет по связанным таблицам — отчет, позволяющий выводить данные из нескольких таблиц, имеющих связь один-ко-многим.
Структура отчета. Отчет может состоять из следующих разделов.
- Заголовок отчета — отображается только на первой странице и определяет высоту области заголовка отчета, который может содержать текст, графику и другие элементы управления.
- Верхний колонтитул — выводится на верху каждой страницы; как правило, содержит заголовки столбцов.
- Заголовок группы — печатается перед первой записью, входящей в группу; обычно содержит итоговые данные по записям, входящим в группу.
- Область данных — предназначена для отображения записей источника данных отчета.
- Область примечания группы — отображается после обработки последней записи группы; обычно содержит итоговые данные по записям, входящим в группу.
- Нижний колонтитул — выводится внизу каждой страницы; содержит, например, номер страницы отчета, дату печати отчета и т. д.
- Раздел примечаний — отображается только внизу последней страницы; сюда помещают поля с итоговыми значениями по всем записям, включенным в отчет. Отчет может быть создан при помощи Мастера отчетов или в режиме Конструктора. Обычно используют оба способа. Мастер отчетов позволяет ускорить процесс создания отчета, работа в нем производится в пошаговом режиме в диалоге с пользователем. Доработать созданный мастером отчет можно в режиме Конструктора.