Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Целостность данных




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

Целостность данных означает:

§ В связанное поле подчиненной таблицы можно вводить только те значения, которые имеются в связанном поле главной таблицы

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

Установить целостность данных можно, если выполнены следующие условия:

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

2. Связанные поля не обязательно должны иметь одинаковые имена, но они должны иметь одинаковые типы данных (из этого правила существуют два исключения) и иметь содержимое одного типа. Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля (Field Size).

Исключения. Поле счетчика можно связывать с числовым полем, свойство Размер поля (Field Size) которого имеет значение Длинное целое; также поле счетчика можно связать с числовым, если для обоих полей в свойстве Размер поля (Field Size) задано значение Код репликации.

3. Обе таблицы принадлежат одной БД Microsoft Access. Если таблицы являются связанными, то они должны быть таблицами Microsoft Access для установки целостности данных БД, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из БД других форматов установить целостность данных невозможно.

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

Установив целостность данных, необходимо следовать следующим правилам:

1. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод значений Null, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести значение Null в поле «КодКлиента».

2. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к данному сотруднику.

3. Невозможно изменить значение первичного ключа в главной таблице, если существуют записи, связанные с данной записью. Например, невозможно изменить код сотрудника в таблице «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к этому сотруднику.

Чтобы наложить эти правила на конкретную связь, при ее создании следует установить флажок Обеспечение целостности данных. если данный флажок установлен, то любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.

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

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

Если при определении отношения установить флажок Каскадное обновление данных, любое изменение значения первичного ключа главной таблицы приведет к автоматическому обновлению соответствующих значений во всех связанных записях. Например, при изменении кода клиента в таблице «Клиенты» будет автоматически обновлено поле «КодКлиента» во всех записях таблицы «Заказы» для заказов каждого клиента, поэтому целостность данных не будет нарушена.

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

Если при определении отношения установить флажок Каскадное удаление связанных записей, любое удаление записи в главной таблице приведет к автоматическому удалению связанных записей в подчиненной таблице. Например, при удалении из таблицы «Клиенты» записи конкретного клиента будут автоматически удалены все связанные записи в таблице «Заказы» (а также записи в таблице «Заказано», связанные с записями в таблице «Заказы»). Если записи удаляются из формы или таблицы при установленном флажке Каскадное удаление связанных записей, Microsoft Access выводит предупреждение о возможности удаления связанных записей. Если же записи удаляются с помощью запроса на удаление, то Microsoft Access удаляет записи автоматически без вывода предупреждения.

 

Определение связей между таблицами

 

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

Создание связей между таблицами. Установление связей между таблицами рассмотрим на конкретном примере – БД Library (библиотека), состоящей из двух таблиц: Книги и Читатели.

 

Имя поля Тип данных Размер поля, формат примечание
Таблица Книги
Инвентарный номер Числовой Длинное целое Ключевое поле
Автор Текстовый 30 символов  
Название Текстовый 50 символов  
Год издания Числовой Целое число  
Цена Числовой Одинарное с плавающей точкой  
Таблица Читатели
№ личного дела Текстовый 10 символов Ключевое поле
Фамилия Текстовый 30 символов  
Имя Текстовый 20 символов  
Адрес Текстовый 50 символов  
Телефон Текстовый 12 символов  
Класс Текстовый 3 символа  
книга Числовой Длинное целое  

 

Установим связь между таблицами Книги и Читатели. Выберем команду Схема данных в меню Сервис. После этого раскроется пустое окно Схема данных, а в главном меню Access появится новый пункт меню Связи. Выбрав в меню Связи команду Добавить таблицу, в диалоговом окне Добавление таблицы выберем вкладку Таблицы. Выбирая из списка всех таблиц открытой БД Libraryи щелкая кнопку Добавить, добавим в окно схемы данных таблицы Книги и Читатели. Закроем окно Добавление таблицы, щелкнув кнопку Закрыть.

Примечания. Удерживая прижатой клавишу Ctrl, можно выделить (и добавить) сразу несколько таблиц.

Чтобы связать таблицу саму с собой, добавьте ее дважды. Это полезно, когда нужно создать поле подстановки, использующее значения этой же таблицы. Например, в таблице Сотрудники учебной БД Борей определена связь между полями КодСотрудника и Подчиняется, поэтому поле Подчиняется может отображать данные о сотруднике, имеющем соответствующее значение в поле КодСотрудника. После этого в окне Схема данных будут представлены две выбранных нами таблицы, между которыми устанавливается связь.

Для установления связи между двумя таблицами можно методом «Draq-and-Drop», переместить имя поля с первичным ключом главной таблицы (Инвентарный номер) на поле Книга подчиненной таблицы.

Как только вы отпустите левую кнопку мыши, на экране появится диалоговое окно Изменение связей. Для включения механизма поддержки целостности данных в связываемых таблицах установите флажок Обеспечение целостности данных.

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

В группе Тип отношений выберем один-ко-многим. Завершим создание связи, щелкнув кнопку Создать. В окне Схема данных появится графическое изображение установленной связи. Пометки у концов линии связи 1-8 означают, что одна запись таблицы Книги может иметь сколько угодно связанных записей в таблице Читатели.

Закройте окно связи, сохранив изменения макета Схема данных.

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

Если нужно изменить структуру таблицы, щелкните таблицу правой кнопкой и выберете команду Конструктор таблиц.

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

Примечание. Если в окне схемы данных уже отображены все таблицы, связанные с выбранной таблицей, то нажатие кнопки Отобразить прямые связи не даст никаких результатов, поскольку при нажатии этой кнопки на экран только добавляются таблицы, связанные с текущей таблицей. Если требуется просмотреть прямую связь только с одной таблицей, нажмите кнопку Очистить макет на панели инструментов, чтобы удалить все таблицы из окна схемы данных (при этом таблицы и связи физически не удаляются, а только убираются из окна схемы данных). затем снова добавьте нужную таблицу в окно схемы данных и нажмите кнопку Отобразить прямые связи. Для добавления таблицы нажмите кнопку Отобразить таблицу на панели инструментов, дважды щелкните нужную таблицу, а затем нажмите кнопку Закрыть.

 

Изменение или удаление существующих связей. Изменять связи между открытыми таблицами нельзя. Закройте все открытые таблицы. Переключитесь в окно БД и нажмите кнопку Схема данных на панели инструментов. Если таблиц, связи которых нужно изменить, нет на экране, нажмите кнопку Отобразить таблицу на панели инструментов и дважды щелкните таблицы, которые нужно добавить. Дважды щелкните линию связи, которую необходимо изменить, и установите параметры связи. Для получения дополнительных сведений о конкретном параметре диалогового окна Изменение связей нажмите кнопку контекстной справки и щелкните нужный параметр.

Для удаления выделите линию связи, которую необходимо удалить (выделенная линия становится более толстой), а затем нажмите клавишу Delete и подтвердите удаление.

Удаление таблицы из окна «Схема данных». Выберете таблицу, которую необходимо удалить, а затем нажмите клавишу Delete. При этом из окна Схема данных удаляется таблица и ее линии связи. Это действие затрагивает только отображение в окне схемы данных. сама таблица и ее связи остаются в БД.

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

Для создания такого отчета при открытом окне Схема данных выберете в меню Файл команду Печать схемы данных. после этого раскроется окно отчета о связях между таблицами в текущей БД.

Закрыть окно отчета с сохранением, щелкнув кнопку Да в ответ на запрос Сохранить изменения макета отчета?, задав имя отчета, щелкнуть кнопку ОК.

 

Создание формы для связанных таблиц

 

Откроем БД Library. Выбрав объект Формы, щелкнем в правой области окна кнопку Создание формы с помощью мастера.

На первом шаге диалога мастера Создание форм выбрав таблицы Книги, а затем Читатели, включим в форму все поля таблицы Книги, а также все поля таблицы Учащиеся, кроме поля Книга (это поле дублирует поле Инвентарный номер таблицы Книги), и щелкнем кнопку Далее.

На следующем шаге диалога с мастером выберем вид представления данных, указав в качестве главной таблицу Книги и включив опцию Подчиненные формы. Щелкнув кнопку Далее, выберем внешний вид подчиненной формы – ленточный, далее выберем стиль оформления Чертеж. На следующих этапах диалога с мастером Создание форм зададим имя для каждой из связанных форм, выберем в качестве дальнейших действий вариант Открыть форму для просмотра и ввода данных. завершим создание форм, щелкнув кнопку Готово.

Для запуска щелкнем ярлычок главной формы Книги. После этого на экране раскроется окно формы Книги с подчиненной формой Читатели.

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

Можно изменить, разработанную с помощью мастера Создание форм. Для этого закроем форму и, указав главную форму Книги, щелкнем кнопку Конструктор в панели инструментов. В режиме конструктора переместим и изменим размеры элементов управления, их свойства. Изменим надписи и другие параметры макета формы. Завершим редактирование, выбрав в меню Вид команду Режим формы.

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

 




Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 1479; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.037 сек.