Задания к лабораторным (987264), страница 3
Текст из файла (страница 3)
По способам реализации ограничения целостности делятся на:
-
декларативные, выполняемые средствами языка описания данных СУБД;
-
процедурные, выполняемые посредством триггеров и хранимых процедур.
При выполнении этой лабораторной работы в процессе построения реляционной модели данных необходимо разработать декларативные ограничения целостности. Декларативные ограничения целостности должны обеспечивать:
-
задание типов принимаемых значений;
-
определение первичных ключей;
-
контроль функциональных ограничений на значения атрибутов, определяемых требованиями предметной области;
-
задание неопределенных значений и значений по умолчанию;
-
задание условий каскадного удаления и пр.
Декларативные правила целостности задаются с помощью следующих средств описания атрибутов:
-
тип принимаемого значения;
-
задание описателя первичного ключа;
-
определение значений, присеваемых по умолчанию;
-
задание списка возможных значений;
-
определение диапазона значений;
-
определение логических условий на значение атрибута и др.
Процедурные правила целостности позволяют проводить согласованные изменения данных, хранящихся во взаимосвязанных таблицах. При задании процедурных ограничений целостности можно использовать различные стратегии. При обновлении кортежа в родительском отношении наиболее часто применяют следующие стратегии:
-
RESTRICT (Ограничить) − не разрешать обновление, если имеется хотя бы один кортеж в дочернем отношении, ссылающийся на обновляемый кортеж.
-
CASCADE (Каскадное обновление) − выполнить обновление и последовательно изменить значения внешних ключей во всех кортежах дочернего отношения, которые ссылаются на обновляемый кортеж.
-
SET NULL (Установить в NULL) − выполнить обновление и во всех кортежах дочернего отношения, ссылающихся на обновляемый кортеж, изменить значения внешних ключей на null-значение.
-
SET DEFAULT (Установить по умолчанию) − выполнить обновление и во всех кортежах дочернего отношения, ссылающихся на обновляемый кортеж, изменить значения внешних ключей на некоторое значение, принятое по умолчанию.
-
IGNORE (Игнорировать) − выполнить обновление, не обращая внимания на нарушения ссылочной целостности.
При удалении кортежа в родительском отношении допустимы следующие стратегии:
-
RESTRICT (Ограничить) − не разрешать удаление, если имеется хотя бы один кортеж в дочернем отношении, ссылающийся на удаляемый кортеж.
-
CASCADE (Каскадное удаление) - выполнить удаление и последовательно удалить кортежи в дочернем отношении, которые ссылаются на удаляемый кортеж.
-
SET NULL (Установить в NULL) − выполнить удаление и во всех кортежах дочернего отношения, ссылающихся на удаляемый кортеж, изменить значения внешних ключей на null-значение.
-
SET DEFAULT (Установить по умолчанию) − выполнить удаление и во всех кортежах дочернего отношения, ссылающихся на удаляемый кортеж, изменить значения внешних ключей на некоторое значение, принятое по умолчанию.
-
IGNORE (Игнорировать) − выполнить удаление, не обращая внимания на нарушения ссылочной целостности.
При вставке кортежа в дочернее отношение применяют следующие стратегии
-
RESTRICT (Ограничить) − не разрешать вставку, если внешний ключ во вставляемом кортеже не соответствует ни одному значению потенциального ключа родительского отношения.
-
SET NULL (Установить в NULL) − вставить кортеж, но в качестве значения внешнего ключа занести не предлагаемое пользователем некорректное значение, а null-значение.
-
SET DEFAULT (Установить по умолчанию) − вставить кортеж, но в качестве значения внешнего ключа занести не предлагаемое пользователем некорректное значение, а некоторое значение, принятое по умолчанию.
-
IGNORE (Игнорировать) − вставить кортеж, не обращая внимания на нарушения ссылочной целостности.
При обновлении кортежа в дочернем отношении используют следующие стратегии:
-
RESTRICT (Ограничить) − не разрешать обновление, если внешний ключ в обновляемом кортеже становится не соответствующим ни одному значению потенциального ключа родительского отношения.
-
SET NULL (Установить в NULL) − обновить кортеж, но в качестве значения внешнего ключа занести не предлагаемое пользователем некорректное значение, а null-значение.
-
SET DEFAULT (Установить по умолчанию) - обновить кортеж, но в качестве значения внешнего ключа занести не предлагаемое пользователем некорректное значение, а некоторое значение, принятое по умолчанию.
-
IGNORE (Игнорировать) - обновить кортеж, не обращая внимания на нарушения ссылочной целостности.
2. Средства задания целостности в среде AllFusion ERwin Data Modeler
В используемом CASE-средстве предусмотрены инструменты для определения ограничений на значение атрибутов. Они используют различные виды описателей, которые применяются для определения атрибутов таблиц:
-
типы значений атрибута,
-
описатель первичного ключа и индекса,
-
правила валидации.
-
значения по умолчанию.
Задание целостности в ERwin Data Modeler модет быть определено как для каждого атрибута, так и для связанных таблиц (ссылочная целостность). Ссылочная целостность предполагает выполнение требования, чтобы значения внешнего ключа экземпляра дочерней сущности соответствовали значениям первичного ключа в родительской сущности. Ссылочная целостность может контролироваться при всех операциях, изменяющих данные (INSERT/UPDATE/DELETE). Средства контроля ссылочной целостности в ERwin Data Modeler включают автоматическую генерацию триггеров и использование механизмов декларативной ссылочной целостности (для тех СУБД, которые поддерживают данные механизмы).
Для каждой связи на логическом уровне могут быть заданы требования по обработке операций INSERT/UPDATE/DELETE для родительской и дочерней сущности. ERwin представляет следующие варианты обработки этих событий:
-
отсутствие проверки;
-
проверка допустимости;
-
запрет операции;
-
каскадное выполнение операции (DELETE/UPDATE);
-
установка пустого (NULL-значения) или заданного значения по умолчанию.
В соответствии с выбранным вариантом AllFusion ERwin Data Modeler автоматически создает необходимые триггеры на диалекте SQL целевой СУБД. При этом ERwin Data Modeler пользуется библиотекой шаблонов триггеров, которые можно модифицировать.
3. Средства AllFusion ERwin Data Modeler для создания БД в среде выбранной СУБД
На основе физической модели AllFusion ERwin Data Modeler может сгенерировать системный каталог БД в заданной СУБД (или соответствующее описание на языке SQL). Этот процесс называется прямым проектированием (Forward Engineering). При генерации схемы БД среда AllFusion ERwin Data Modeler создает также триггеры, индексы, ограничения на значение атрибутов, заданные в процессе проектирования модели БД.
Прямое проектирование может быть выполнено только на основе физической модели БД. Для этого при переходе к физической модели БД необходимо выбрать конкретную СУБД, интерфейс с которой поддерживается CASE-средством. AllFusion ERwin Data Modeler поддерживает более 20 СУБД, среди них:
-
Oracle,
-
Access,
-
DB2,
-
SQL Server,
-
Teradata,
-
Sybase,
-
Informix.
Для выполнения прямого проектирования необходимо установить связь с выбранной СУБД. Для этого предусмотрен диалоговый процесс, который позволяет определить основные параметры соединения. Состав параметров зависят от используемой СУБД. Для связи с СУБД Access необходимо учитывать следующее:
-
БД, созданная средствами СУБД Access, хранится в виде отдельного файла. Поэтому для успешной генерации схемы БД необходимо предварительно создать пустую БД в СУБД Access.
-
Создание БД в СУБД Access возможно только пользователями, имеющими права администратора. Поэтому при определении параметра имя пользователя, необходимо задать admin.
4. Последовательность выполнения лабораторной работы
-
Запустить среду моделирования AllFusion ERwin Data Modeler и ознакомиться с интерфейсом программной среды задания правил целостности.
-
Провести анализ смысловых правил обработки данных и сформулировать их в виде декларативных правил целостности в РБД.
-
Задать необходимые декларативные ограничения целостности исходя из специфики предметной области.
-
Ознакомиться с возможностями построения отчетов в AllFusion ERwin Data Modeler.
-
Документировать РБД, используя средства AllFusion ERwin Data Modeler.
-
Используя средства AllFusion ERwin Data Modeler создать БД в СУБД Access.
-
Оформить отчет по лабораторной работе.
-
Требования к оформлению отчета
Отчет по лабораторной работе должен включать следующие разделы:
-
Титульный лист.
-
Графическое описание РБД .
-
Описание правил целостности на естественном языке и в виде ограничений на значения атрибутов.
-
Отчет по модели, созданный средствами Report Builder, который должен включать описание правил целостности.
-
Текст сгенерированного средствами AllFusion ERwin Data Modeler описания БД в СУБД Access
-
Схема БД Access.
Контрольные вопросы
-
Что такое ограничения целостности?
-
В чем важность задания ограничений целостности?
-
Какие виды ограничений целостности вы знаете?
-
Какие способы задания ограничений целостности вы знаете?
-
В чем суть применения триггеров для контроля целостности данных?
-
Если задано ограничение целостности связи, но не задано каскадное удаление связанных записей, повлияет ли заданное ограничение целостности на процесс удаления записи из основного файла?
-
Какие виды диапазонов вы знаете? В чем особенности их задания?
-
Как можно реализовывать ограничения целостности на «домен»?
-
Какие ограничения целостности могут быть заданы в ERWin?
-
Как задать значение по умолчанию для заданного атрибута в ERWin?
-
Какие ограничения целостности определяются для первичного ключа?
-
Что такое прямое проектирование в ERWin?
Лабораторная работа 4. Реализация БД в СУБД Access
Цель работы – разработать законченное приложение для работы с данными в СУБД Access.
1. Основные понятия
СУБД Microsoft Access является одним из самых популярных приложений в семействе настольных СУБД. Все версии СУБД Access имеют в своем составе средства, значительно упрощающие ввод и обработку данных, поиск данных и предоставление информации в виде таблиц, графиков и отчетов. Начиная с версии Access 2000, появились также Web-страницы доступа к данным, которые пользователь может просматривать с помощью программы Internet Explorer. Помимо этого, СУБД Access позволяет использовать электронные таблицы и таблицы из других настольных и серверных баз данных для хранения информации, необходимой приложению. Access является СУБД реляционного типа, которая имеет все необходимые средства для выполнения основных операций по обработке данных. Достоинством СУБД Access является то, что она имеет очень простой графический интерфейс, который позволяет не только создавать собственную базу данных, но и разрабатывать простые и сложные приложения для работы с данными. В отличие от других настольных СУБД, Access хранит все объекты БД в одном файле.
Основными объектами БД в Access являются таблицы, запросы, формы, отчеты, макросы. Для работы с ними в состав СУБД Access включены разнообразные инструментальные средства, которые значительно облегчают работу пользователя по созданию и изменению объектов БД. К этим средствам относятся Конструктор, Мастер и Построитель.
1.1 Таблицы
Таблицы являются основными объектами Access, предназначенными для хранения данных. В рамках выполняемых лабораторных работ определение состава и структуры таблиц, а также их взаимосвязи определяются в результате процесса прямого проектирования (см. Лабораторная работа 3).
В СУБД Access для создания структуры таблицы можно использовать различные способы: формирование структуры таблицы с помощью Мастера таблиц, создание с помощью Конструктора таблиц или создание таблицы путем ввода значений. Использование Мастера таблиц позволяет сформировать структуру таблицы на основе имеющихся шаблонов. В этом случае процесс формирования структуры таблицы представляет собой диалоговый процесс, который заключается в выборе шаблона и уточнения состава полей в создаваемой таблице. Мастер таблиц предоставляет возможность выбора поля из фиксированного набора стандартных таблиц. В составе СУБД Access имеется большое количество шаблонов, которые постоянно расширяются. Использование Мастера для формирования структуры таблицы целесообразно в случае разработки БД с типовым набором таблиц. Кроме того, работа с Мастером таблиц предполагает использование стандартного для шаблона описания поля, и делает недоступным переопределение отдельных свойств полей.
Поэтому для создания структуры таблиц полностью отвечающих требованиям пользователя используют Конструктор таблиц, который предоставляет наиболее широкие возможности для задания характеристик полей таблицы. В конструкторе таблиц пользователь получает возможность определить список полей для таблицы, выбрать тип данных, настроить свойства для каждого поля, а также ввести описания полей. Используя Конструктор таблиц можно изменить структуру таблицы или описание его отдельного поля для любой таблицы, вне зависимости от способа её создания.
Вводить данные можно непосредственно в таблицу или использовать для этого специально разработанные формы. СУБД Access автоматически сохраняет вводимые в поле таблицы значения, как только вы перемещаетесь в следующее поле. Новые записи добавляются только в конец таблицы. Нельзя разместить новую запись между уже существующими записями или в начале таблицы. В открытой таблице можно также изменять значения отдельных полей.
Для задания связей между таблицами создается схема БД. В рамках выполняемых лабораторных работ схема БД создается в результате процесса прямого проектирования из среды AllFusion ERwin Data Modeler.
1.2. Формы
Форма − это наиболее гибкий способ просмотра и ввода данных в таблицы. Формы, как правило, используются для работы с отдельными записями, содержащими данные из одной или нескольких таблиц БД. С помощью форм можно вводить информацию в таблицы, редактировать и удалять ее, а также ограничить доступ к данным и отображать их только в режиме просмотра. Формы в Access создаются не только для одной таблицы, но и для нескольких, связанных между собой таблиц. Тогда возможным становится с помощью формы вводить данные сразу в несколько таблиц, соблюдая условия целостности данных. Источником данных для формы может быть таблица или запрос на выборку. Это позволяет отображать на экране самую актуальную информацию. Формы могут отображать как сразу несколько записей, так и одну запись. СУБД Access позволяет создавать формы разных типов: в столбец, ленточная, табличная, главная/подчиненная, сводная таблица и сводная диаграмма.
Создать форму в СУБД Access можно тремя способами:
-
автоматическое создание (автоформа);
-
с помощью Мастера форм, который поможет выбрать требуемые поля и стиль оформления для формы;
-
с помощью конструктора формы.
Мастер форм позволяет в диалоговом режиме сформировать удобную форму, разработанную на основе существующих в системе шаблонов. В этом режиме можно создать формы разных типов:
-
В столбец (полноэкранная форма). В такой форме все поля выводятся на экран как один столбец.
-
Ленточная. В простейшем виде такой формы поля, составляющие одну запись, отображаются в одной строке, аналогично представлению таблицы в режиме таблицы.
-
Табличная. Данные в такой форме представлены в стиле электронных таблиц Microsoft Excel, когда каждой записи соответствует одна строка таблицы, а каждому полю − один столбец.
-
Сводная таблица. Эта форма позволяет обрабатывать данные и анализировать их.
Особо следует отметить возможности настройки внешнего вида формы. Access позволяет использовать для разработки форм широкий набор визуальных средств, которые доступны пользователю при использовании Конструктора форм. Конструктор форм позволяет создать форму произвольного вида, но требует от пользователя дополнительных знаний об использовании элементов отображения данных, элементов управления и др. Поэтому целесообразно начальный вариант формы разрабатывать с помощью Мастера форм, а изменять его с помощью Конструктора форм. Используя его можно разместить поля в желаемом месте формы, изменить шрифт подписей, цвет заливки или добавить дополнительные элементы.
В режиме конструктора формы можно добавить надписи, поля текстовых данных, флажки, линии и прямоугольники, а также включить рисунки и диаграммы. Самым распространенным является элемент управления Поле, который позволяет отображать хранимые значения из источников данных и вводить новые данные. Новые элементы управления можно разместить в форме, воспользовавшись инструментами панели элементов. При создании форм можно использовать специальные инструментальные средства размещения в форме специальных элементов управления, такие как список, поле со списком или группа переключателей.
Любые формы, независимо от того, каким образом они были созданы, можно доработать инструментальными средствами Конструктора форм.
Среди всех форм, создаваемых в Access особое значение имеют 2 вида формы: Главная/подчиненная и Кнопочная. Первый вид используется работы с данными из связанных таблиц. Одна область такой формы (главная форма) предоставлена для отображения данных из основной таблицы, а другая (подчиненная форма) отображает записи из связанной таблицы, причем только те, которые непосредственно связаны с текущей записью в главной форме. Кнопочная форма позволяет создавать управляющие формы, с помощью которых различные объекты БД (таблицы, запросы, формы) можно объединить в единое приложение.
Для работы с БД можно создать специальную форму, которая носит название Главная кнопочная форма (Main Switchboard). Главная кнопочная форма создается для навигации по БД, т.е. она может использоваться в качестве главного меню БД. Элементами главной кнопочной формы являются объекты форм и отчётов. Запросы и таблицы не являются элементами главной кнопочной формы. Поэтому для работы с таблицами и запросами на кнопочной форме можно использовать макросы. Для одной базы данных можно создать несколько кнопочных форм.
Кнопки следует группировать на страницах кнопочной формы таким образом, чтобы пользователю было понятно, в каких кнопочных формах можно выполнять определенные команды (запросы, отчеты, ввода и редактирования данных). Необходимо отметить, что на подчиненных кнопочных формах должны быть помещены кнопки возврата в главную кнопочную форму. Для создания кнопочной формы можно использовать Конструктора форм. Однако в СУД Access существует удобное и простое средство создания таких форм − Диспетчер кнопочных форм (Swithboard Manager), который рекомендуется использовать для создания шаблона кнопочной формы. Затем этот шаблон может быть доработан с помощью Конструктора форм.
1.3. Запросы
Запросы являются мощным инструментом работы с данными, которые позволяют извлекать данные, автоматически обновлять или удалять записей из одной или нескольких таблиц, а также выполнять вычисления, используя значения, хранимые в таблице. С помощью запросов можно создать новую таблицу по результатам запроса или скопировать данные из одной таблицы в другую. Запросы позволяют реализовать сложные операции манипулирования данными, например, удалить сразу несколько записей, удовлетворяющих определенному условию, или изменить значение поля в нескольких записях.Перечислим основные преимущества запросов:
-
запросы позволяют собирать воедино информацию из нескольких таблиц, учитывая связи, установленные между таблицами в БД;
-
при разработке запроса можно выбрать, какие поля исходных таблиц и в какой последовательности будут включены в таблицу результатов;
-
запросы позволяют выполнять вычисления, основываясь на значениях полей таблицы.
СУБД Access позволяет создавать запросы различных типов:
-
запрос на выборку данных,
-
запрос на обновление данных,
-
запрос на удаление данных,
-
запрос на добавление данных,
-
запрос на создание новой таблицы,
-
перекрестный запрос.
Запрос на выборку является наиболее часто используемым типом запросов. Он позволяет осуществить выборку данных, соответствующих заданным условиям отбора, из одной или нескольких таблиц. В результате его выполнения будет сформирован набор записей, удовлетворяющих заданному условию. Условие отбора может быть достаточно сложным. Для его задания используются арифметические операции, логические операции, операции отношения и специальные функции, предусмотренные в СУБД. Кроме того, применяя при использовании запроса на выборку групповые операции, можно группировать данные или, например, вычислять суммы, средние значения или количество записей, удовлетворяющих критерию отбора.