Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП(информатика).doc
Скачиваний:
225
Добавлен:
14.02.2015
Размер:
6.11 Mб
Скачать
    1. Работа с более сложными базами данных.

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

      1. Схема данных в Access

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

Реляционная база данных состоит из нормализованных таблиц. Нормализация позволяет устранить избыточность хранимой информации и избежать аномалий в организации данных. Степень нормализации м.б. различной. Результатом нормализации является легко поддерживаемая модель данных, не содержащая неопределённостей и повторений данных. Существует несколько нормальных форм. Каждая следующая определяет более сильную степень нормализации, требуя выполнения всех условий, налагаемых в предыдущих нормальных формахПервая нормальная форма. Отношение (таблица) находится в первой нормальной форме (1NF) в том и только в том случае, если значение каждого его атрибута является атомарным (неделимым). Ненормализованная модель данных включает записи в том виде, в котором они используются прикладными программами. Первый шаг при нормализации заключается в образовании двумерной таблицы, содержащей элементы данных. Для этого практически нужно лишь исключить повторяющиеся группы.

Вторая нормальная форма. Отношение находится во второй нормальной форме (2NF) в том и только в том случае, когда находится в 1NF и каждый неключевой атрибут функционально полно зависит от первичного ключа. Второй шаг нормализации состоит в том, чтобы выделить ключи и зависящие от них атрибуты. Каждый кортеж (строка) отношения (таблицы), находящегося в первой нормальной форме, полностью зависит от совокупности ключевых атрибутов. Для того чтобы привести отношение ко второй нормальной форме нужно выделить группы атрибутов, зависящие от частей составного ключа. Эти группы могут образовать отдельные отношения (таблицы). Выделение из отношения, находящегося в первой нормальной форме, таких отношений, в которых неключевые атрибуты зависят только от ключа в целом, называется приведением ко второй нормальной форме.

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

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

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

Схема данных базы графически отображается в своем окне, где таблицы пред­ставлены списками полей, а связи линиями между полями разных таблиц. Схема данных ориентирована на работу с таблицами, отвечаю­щими требованиям нормализации, между которыми могут быть установлены одно-многозначные (1:М) или одно-однозначные (1:1) связи с обеспечением целостности базы данных. При построении схемы данных Access автоматически определяет по выбранному полю связи тип связи между таблицами. Если поле, по которому нужно установить связь, является уникаль­ным ключом, как в главной(родительской), так и в подчиненной (дочерней) таблице, Access устанавливает связь один-к-одному. Если поле связи является уникальным ключом в главной таблице, а в подчиненной табли­це является не ключевым или входит в составной ключ, Access устанавливает связь один-ко-многим от главной таблицы к под­чиненной.

Каждая таблица в реляционной базе данных должна иметь уни­кальный (первичный) ключ, который может быть простым или составным, включающим несколько полей. Для определения ключа выделяются поля, составляющие ключ, и на панели инст­рументов нажимается кнопка «Ключевое поле» или выполняется команда «Ключевое поле» меню «Правка». Для ключевого поля автоматически строится индекс. Убедиться в этом можно, просмотрев информацию об индексах таблицы. Окно «Индексы» вызывается щелчком на кнопке про­смотра и редактирования индексов «Индексы» или вы­полнением команды «Индексы» меню «Вид». В этом окне индекс первичного ключа имеет имяPrimaryKey,в столбце «Поле» (FieldName) перечисляются имена полей, состав­ляющие индекс. Индекс ключевого поля всегда уникален и не допускает пустых полей в записях. Индексы строятся для осуществления быстрого поиска требуемых записей в больших таблицах Access по значению первичного или вторичного ключа. Индексы — внутренние служебные таблицы, со­держащие два столбца. Первый содержит значение индексируемого поля, второй — адреса всех записей, имеющих это значение в ин­дексируемом поле. В индексной таблице производится упорядоче­ние строк по значениям индексируемого поля, и это позволяет ис­пользовать методы быстрого поиска строки с заданным значением индексного поля. По адресу, содержащемуся в найденной строке индексной таблицы, осуществляется прямой доступ к искомой запи­си данных. Допускается не более 32 индексов на таблицу. Это огра­ничение может быть превышено в БД со многими заранее опреде­ленными связями между таблицами, что, однако, потребует реорга­низации таблиц вручную перед их обработкой.

При выборе в качестве поля связи в глав­ной таблице не ключевого поля Access сообщает, что тип отно­шения не может быть определен. В этом случае между таблица­ми возможно установление только связи-объединения. Связи-объединения, установленные в схеме данных, обеспечивают объ­единение записей таблиц, имеющих одинаковые значения в по­ле связи. Причем производится объединение каждой записи из одной таблицы с каждой записью из другой таблицы, при усло­вии равенства значений в поле связи. Воз­можно такие варианты объединения: только тех записей, в которых свя­занные поля для обеих таблиц совпадают (производится по, умолчанию); всех записей при этом записи, в которых связанные поля обеих таблиц совпадают, объединяются между собой, а записи из первой таблицы, для которых нет связанных во второй, с пустой записью второй таблицы.

П

Рисунок 65 - Схема данных

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

  • в подчиненную таблицу не может быть добавлена запись с несуществующим в главной таблице значением ключа связи;

  • в главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице;

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

При попытке пользователя нарушить эти условия в операциях обновления или удаления данных в связанных таблицах Access выводит соответствующее сообщение и не допускает выполне­ния операции. Установление между двумя таблицами связи типа 1:М или 1:1 и задание параметров целостности данных возможно только при следующих условиях:

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

  • обе таблицы сохраняются в одной базе данных Access,

  • главная таблица связывается с подчиненной по первичному простому или составному ключу (уникальному индексу) главной таблицы.

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

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

С

Рисунок 66 - Окно связи.

оздание схемы данных начинается в окне базы данных с вы­полнения команды «Схема данных» меню «Сервис» или нажатия кнопки «Схема данных» на панели инстру­ментов. После нажатия кнопки «Схема данных» открывается окно «Добавление таб­лицы», в котором нужно выбрать таблицы и запросы, включаемые в схему данных. Для размещения табли­цы в окне «Схема данных» надо выделить ее в окне «Добавление таблицы» и нажать кнопку «Добавить». Для выделения нескольких таблиц надо держать нажатой клавишу <Ctrl> и щелкать мышью на каждой таблице. После включения всех нужных таблиц в схему данных нажимают кнопку «Закрыть». Затем в окне «Схема данных» (Рисунок 65) создаются связи между ними. Для создания связи между двумя таблицами достаточно ключевое поле из родительской таблицы перетащить на такое же поле в дочерней таблице. При этом появляется окно «Связи» (Рисунок 66) в котором видны поля, через которые устанавливается связь и тип связи.

Например, для создания связи между родительской таблицей «Список должностей» и дочерней «Таблица1» используется поле «Код должности». Поскольку оно в родительской таблице является ключевым, а в дочерней не ключевым, то в окне «Связи» (Рисунок 66), появившемся после перетаскивания его в окне «Схема данных» из родительской таблицы в дочернюю (Рисунок 65), предполагается тип отношений «один-ко-многим». Такая связь создаётся при щелчке по кнопке «ОК».