Вопрос 3. СУБД Access: Построение информационно-логической модели данных: информационные объекты, связи между ними. Схема данных. Обеспечение целостности данных
Информационно-логическая модель Информационно-логическая модель отображает данные предметной области в виде совокупности информационных объектов и связей между ними. Эта модель представляет данные, подлежащие хранению в базе данных. При разработке модели данных могут использоваться два подхода. В первом подходе сначала определяются основные задачи, для решения которых строится база, и выявляются потребности задач в данных. При втором подходе сразу устанавливаются типовые объекты предметной области. Наиболее рационально сочетание обоих подходов. Это связано с тем, что на начальном этапе, как правило, нет исчерпывающих сведений обо всех задачах. Использование такой технологии тем более оправдано, что гибкие средства создания реляционной базы данных в Access позволяют на любом этапе разработки внести изменения в базу данных и модифицировать ее структуру без ущерба для введенных ранее данных. Основные этапы построения БД показаны на рисунке 2.1.
Рис. 2.1. Основные этапы проектирования БД в Microsoft Access Информационные объекты Microsoft Access называет объектами все, что может иметь имя. В базе данных Access основными объектами являются таблицы, запросы, формы, отчеты, макросы и модули. В Microsoft Access база данных включает в себя все объекты, связанные с хранимыми данными, в том числе и те, которые определены для автоматизации работы с ними. Ниже приведен список основных объектов базы данных Access. Таблица - Объект, который определяется и используется для хранения данных. Каждая таблица включает информацию об объекте определенного типа, например о клиентах. Таблица содержит поля {столбцы), в которых хранятся различного рода данные, например фамилия или адрес клиента, и записи (которые называются также строками). В записи собрана вся информация о конкретном предмете (человеке, образце продукции). Для каждой таблицы можно определить первичный ключ (одно или несколько полей, которые имеют уникальное значение для каждой записи) и один или несколько индексов с целью увеличения скорости доступа к данным.
Запрос - Объект, который позволяет пользователю получить нужные данные из одной или нескольких таблиц. Можно создать запросы на выбор, обновление, удаление или на добавление данных. С помощью запросов можно создавать новые таблицы, используя данные одной или нескольких таблиц, которые уже существуют. Форма - Объект, предназначенный в основном для ввода данных, отображения их на экране или управления работой приложения. Можно использовать формы для того, чтобы реализовать требования пользователя к представлению данных из запросов или таблиц. Формы можно также распечатать. С помощью формы можно в ответ на некоторое событие запустить макрос или процедуру — например, запустить макрос, когда изменяется значение определенных данных. Отчет - Объект, предназначенный для создания документа, который впоследствии может быть распечатан или включен в документ другого приложения. Прежде чем выводить отчет на принтер, вы можете предварительно просмотреть его на экране. Макрос - Объект, представляющий собой структурированное описание одного или нескольких действий, которые, должен выполнить Access в ответ на определенное событие. Модуль - Объект, содержащий программы на Microsoft Access Basic, которые позволяют разбить процесс на более мелкие действия и обнаружить те ошибки, которые не возможно найти с использованием макросов. Модули могут быть независимыми объектами, содержащими функции, которые можно вызывать из любого места приложения, но они могут быть и непосредственно «привязаны» к отдельным формам или отчетам для реакции на те или иные происходящие в них изменения.
Связи между объектами Концептуальные взаимосвязи объектов Access показаны на рис. 2.2. В таблицах хранятся данные, которые можно извлекать с помощью запросов. Используя формы, можно выводить данные на экран или изменять их. Формы и отчеты могут использовать данные непосредственно из таблиц или через запросы. Для выполнения нужных вычислений и преобразования данных запросы могут использовать встроенные функции или функции, написанные в Access Basic. База данных может содержать большое количество взаимосвязанных таблиц. Связи устанавливается между двумя общими полями (столбцами) двух таблиц. Связываемые поля могут иметь разные имена, но должны иметь одинаковый тип данных за исключением случая, когда поле первичного ключа является полем типа Счетчик. Поле счетчика связывается с числовым полем, если значения свойства Размер поля (FieldSize) обоих полей совпадают, Например, если свойство обоих полей имеет значение Длинное целое. Даже в том случае, когда связываются поля типа «Числовой», их свойства Размер поля (FieldSize) должны иметь одинаковые значения. Задав связи между таблицами, можно создать запросы, формы и отчеты для отображения сведений, представленных в нескольких таблицах. Между двумя таблицами могут существовать следующие связи: один к одному — при таком типе связи одной записи в первой таблице соответствует только одна запись в другой таблице. В этом случае следует проверить возможность размещения всех записей в одной таблице. Однако в ряде случаев можно использовать несколько более простых таблиц. Соответствие записей устанавливается по полю, которое является первичным ключом в первой таблице, и полю, называемым внешним ключом другой таблицы; один ко многим — в этом случае запись одной таблицы может иметь несколько согласованных с ней записей в другой таблице. При этом каждая запись во второй таблице согласуется только с одной записью в первой таблице. Например, каждый покупатель может купить несколько товаров, но каждый проданный товар имеет только одного покупателя. Поле, содержащее первичный ключ новой таблицы, связывается с внешним ключом старой. Значения в поле с внешним ключом могут повторяться;
многие к одному — любой записи таблицы, связь с которой мы рассматриваем, могут соответствовать несколько записей новой таблицы, но не наоборот. Фактически это отношение один ко многим, рассматриваемое в обратном порядке. В этом случае ключевое поле новой таблицы является внешним ключом; • многие ко многим — каждой записи из одной таблицы может соответствовать любое количество записей в другой таблице и наоборот. Например, каждый человек может звонить с нескольких телефонов. С другой стороны некоторыми телефонами могут пользоваться несколько человек. В этом случае поля, по которым устанавливается связь, являются внешними ключами. Они могут содержать повторяющиеся значения. Математически такие связи можно записать 1:1, 1:т, т;1 и т:п. Более широкое распространение получили связи один ко многим, Например, один и тот же товар со склада может вывозиться в разные магазины, и одной записи в таблице Склад будет соответствовать несколько записей в таблице Магазины, Таблица Склад будет главной таблицей, а Магазины — связанной. В главной таблице для описания объекта используется одна запись. Избежать дублирования записей в этой таблице позволяет первичный ключ. Две таблицы связывает общее поле, что позволяет объединить данные из двух таблиц для просмотра, редактирования или печати. Записи из таблиц, связанных с текущей таблицей, можно отображать в подтаблицах в пределах основной таблицы. Связанная таблица — это таблица, которая сохраняется в файле, не принадлежащем открытой базе данных, однако, является доступной из Microsoft Access. Пользователь имеет возможность добавлять, удалять и изменить записи в связанной таблице, но не может изменять ее структуру. Для обеспечения целостности данных нельзя произвольно удалять или изменять связанные записи. Например, в таблицу Магазины можно включать только те записи, которые содержат сведения о товарах, поступивших со склада. Для управления базой данных используются связи между таблицами.
Символы на линиях связи показывают тип связи. Символ бесконечности используется для обозначения «много», и если мы видим на одной линии связи символы единицы и бесконечности, то между таблицами существует связь один ко многим. Можно связывать поля с разными именами, а также запросы с таблицами или запросами. Кнопки панели инструментов Отобразить прямые связи (Show Direc Relationships) и Отобразить все (Show All Relationships) позволяют показать схему прямых связей только одной таблицы или схемы связей всех таблиц в базе данных. Обеспечение целостности данных В Microsoft Access обеспечивается возможность автоматической проверки целостности данных в связанных полях. Целостность данных означает систему правил, используемых для поддержания связей между записями в связанных таблицах, а также для обеспечения защиты от случайного удаления или изменения связанных данных. Установить проверку целостности данных можно, если выполнены следующие условия: - связанное поле главной таблицы является ключевым полем или имеет уникальный индекс; - связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика может быть связано с числовым полем, если в последнем поле в свойстве Размер поля указано значение Длинное целое, или в обоих полях свойство Размер поля имеет значение Код репликации; - обе таблицы принадлежат одной базе данных Microsoft Access Чтобы обеспечить целостность, работа с данными должна производиться с учетом ниже перечисленных правил. - Невозможно ввести в связанное поле подчиненной таблицы значение, отсутствующее в связанном поле главной таблицы. Однако можно ввести пустое значение, показывающее, что для данной записи связь отсутствует. - Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. - Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной таблицей. Чтобы эти правила контролировались для конкретной связи, при ее создании следует установить флажок Обеспечение целостности данных. Тогда любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет. Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки каскадное обновление связанныхполей и каскадное удаление связанных записей. Если установлен флажок каскадное обновление связанных полей, то при изменении ключевого поля главной таблицы автоматически будут изменены и соответствующие значения поля связанных записей. Если установлен флажок каскадное удаление связанных записей, то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|