Проектирование баз данных
Объекты базы данных Access
СУБД Access относится к реляционным СУБД. Строки в таблицах реляционных БД называют записями, а столбцы называют полями.
СУБД Access работает с шестью видами объектов (таблицы, запросы, формы, страницы, отчеты, макросы и модули). Каждый объект можно открыть, изменить (с помощью конструктора) и создать.
Таблицы являются основным объектом БД. Формы создаются для удобства ввода данных в таблицы, запросы обрабатывают данные таблиц, а отчеты служат для подготовки обработанных данных к печати.
При создании таблиц для каждого поля необходимо указать имя и тип данных. Все типы данных ориентировочно можно подразделить на два класса: символьные и числовые.
К символьным данным относятся: текстовый тип (до 255 символов) и тип MEMO (до 65535 символов).
К числовым данным относятся: числовой тип (целое, длинное целое, с плавающей точкой), тип дата/время, денежный, логический и счетчик.
При создании таблиц обязательно нужно указать ключевые поля, т.е. в конструкторе таблиц поставить знак ключа рядом с именем поля.
Ключ, или первичный ключ, в таблице БД может быть простым (одно поле) или составным (несколько полей), но обязательно уникальным, однозначно идентифицирующим каждую запись.
Для создания ключа часто используют дополнительное поле, которое добавляется в таблицу в целях однозначной идентификации строки таблицы. Для такого ключа обычно выбирают тип данных – счетчик. Удобство использования счетчика заключается в том, что при добавлении в таблицу новой записи ключевое поле заполняется автоматически.
Проектирование базы данных в СУБД заключается в создании таблиц и установлении связей между ними. Таблицы связываются между собой посредством общих полей, которые должны содержать одинаковую смысловую информацию и соответственно одинаковый формат хранения данных, причем названия полей могут быть различными. связанное поле одной таблицы должно быть ключевым полем.
Связи между таблицами могут быть двух типов.
Связь один к одному (1:1) означает, что одной строке первой таблицы соответствует не более одной строки второй таблицы с тем же значением ключа.
Связь один к многим (1:М (1:∞)) означает, что одной строке первой таблицы могут соответствовать несколько строк второй таблицы с тем же значением ключа. При этом ключ первой таблицы является первичным, а второй таблицы – внешним.
Связи между таблицами в СУБД Access устанавливаются в специальном окне Схема данных.
Логическая модель базы данных представлена на рис. 4.3, где жирным шрифтом выделены ключевые поля. В версии MS Access 2007 виден знак ключика. Таблица Студенты связана с таблицей Успеваемость в отношении один ко многим (1:М). Таблица Специальность связана с таблицей Студенты в отношении один ко многим (1:М).
Рис. 4.3
В СУБД Access процесс установления связей между таблицами сопровождается установкой параметров обеспечения целостности данных.
Целостность – это непротиворечивость данных в связанных таблицах. Целостность поддерживается набором правил, предназначенных для защиты от случайного удаления или изменения связанных данных.
При установлении параметра целостности:
· в поле внешнего ключа нельзя ввести данные, если их нет в ключевом поле главной таблице;
· в поле первичного ключа нельзя изменять данные, если в подчиненной таблице имеются связанные с ними записи;
· в главной таблице нельзя удалить запись, если существуют связанные с ней записи в подчиненной таблице.
Задание параметра каскадного обновления связанных полей позволяет редактировать связанные записи в главной таблице, а в подчиненной таблице изменения будут вноситься автоматически.
Задание параметра каскадного удаления связанных полей позволяет удалять связанные записи в главной таблице, что ведет к автоматическому удалению записей в подчиненных таблицах.
Транзакция представляет собой выполнение последовательности операций, при которой БД переводится из одного целостного состояния в другое. Для пользователя транзакция выполняется по принципу «все или ничего», т.е. либо транзакция выполняется целиком, либо, если по каким-то причинам произошло нарушение работы системы, база данных возвращается в исходное состояние, которое было до начала транзакции (происходит откат транзакции).