При разработке структуры таблицы необходимо указать, какую информацию она должна содержать. После того как определена информация, которая должна быть включена в таблицу, ее следует разбить по полям. Этот процесс включает в себя выбор имени поля, которое в таблице должно быть уникальным. Необходимо включать в имя поля как можно больше информации о его содержимом, но в то же время стараться избегать длинных имен. Обычно при разработке баз данных в различных таблицах могли содержаться поля с одинаковыми именами (чаще всего таблицы связывались по этим полям). Access также позволяет использовать одинаковые имена полей в различных таблицах, но по причине того, что Access использует имена полей при определении условий целостности данных, лучше не допускать повторения имен полей.
Перед началом заполнения таблицы нужно определить связи этой таблицы с другими таблицами базы данных, определить ключевое поле и создать индексы.
Связь между таблицами устанавливает отношения между совпадающими значениями в ключевых полях — обычно между полями разных таблиц. В большинстве случаев связывают ключевое поле одной таблицы с соответствующим ему полем (часто имеющим то же имя), которое называют полем внешнего ключа во второй таблице. Таблица, содержащая ключевое поле, называется главной, а таблица, содержащая внешний ключ — связанной. Существует четыре вида отношений:
· Один к одному. При использовании отношения "один к одному" запись в таблице "А" (главной таблице) может иметь не более одной связанной записи в таблице "В" (связанной таблице) и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением "один к одному" используют для разделения очень широких таблиц или для отделения части таблицы по соображениям защиты. В таблицах связанных отношением "один к одному" ключевые поля должны быть уникальными.
· Один ко многим. Связь с отношением "один ко многим" является наиболее часто используемым типом связи между таблицами. В такой связи каждой записи в таблице "А" могут соответствовать несколько записей в таблице "В", а запись в таблице "В" не может иметь более одной
· соответствующей ей записи в таблице "А". В таблице "А" ключевое поле должно быть уникальным. Связь с отношением "один ко многим" таблиц "А" и "В" можно рассматривать как связь с отношением "многие к одному" таблиц "В" и "А".
· Многие к одному. При использовании отношения "многие к одному" одной записи в таблице "А" может соответствовать одна запись в таблице “B”, а запись в таблице "В" может иметь более одной соответствующей ей записи в таблице "А". В таблице "А" ключевое поле должно быть уникальным. Связь с отношением "один ко многим" таблиц "А" и "В" можно рассматривать как связь с отношением "многие к одному" таблиц "В" и "А".
· Многие ко многим. При использовании отношения "многие ко многим" одной записи в таблице "А" могут соответствовать несколько записей в таблице "В", а одной записи в таблице "В" несколько записей в таблице "А". В этом случае не требуется уникальности ключевых полей таблиц "А" и "В". Этот вид отношения используется для связывания таблиц, имеющих только внешние ключи.
Связанные поля не обязательно должны иметь одинаковые имена, однако, они должны иметь одинаковые типы данных. Кроме того, связываемые поля типа "Числовой" должны иметь одинаковые значения свойства "Размер поля". Исключениями из этого правила являются поля счетчика с последовательной нумерацией, которые могут связываться с числовыми полями размера "Длинное целое". Существует возможность создать связь между текстовыми полями разной длины, но это может вызвать сложности при создании запросов.
Автоматическое обеспечение ссылочной целостности данных является важной особенностью Access. Если на связь между таблицами наложены условия ссылочной целостности, то Access не позволяет добавлять в связанную таблицу записи, для которых нет соответствующих записей в главной таблице, и изменять записи в главной таблице таким образом, что после этого в связанной таблице появятся записи, не имеющие главных записей; а также удалять записи в главной таблице, для которых имеются подчиненные записи в связанной таблице. Условия целостности данных определяют систему правил, используемых в Access для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение связанных данных. После наложения условий целостности данных на операции со связанными таблицами накладываются ограничения. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы.
Необходимо так же определить первичный ключ. Если таблица никогда не будет использоваться в качестве главной, то ключ для нее определять не
нужно. В главных таблицах обычно содержится информация о реальных объектах, причем с каждым объектом ассоциируется только одна запись. Определение ключа таблицы является простейшим способом предотвращения появления в таблице одинаковых записей. В главной таблице связи должен быть определен первичный ключ. Access считает таблицы, у которых такой ключ не определен, подозрительными. При открытии таких таблиц в режиме конструктора появляется диалоговое окно, сообщающее о том, что ключ таблицы не определен. Ключ можно определить и в связанных таблицах, что поможет избежать появления повторяющихся данных. Ключ таблицы можно задать по значению нескольких полей. Access автоматически индексирует таблицу по значению ключа, но может потребоваться создать дополнительные индексы по значениям других полей. Индексы позволяют ускорить поиск данных в тех полях таблицы, по которым она проиндексирована. Каждая таблица Access может иметь до 32 индексов, 5 из которых могут быть составными (в составной индекс может входить не более 10 полей). Тем не менее, не стоит увлекаться созданием индексов для каждого поля таблицы и всех их комбинаций, поскольку это может существенно замедлить процесс заполнения таблицы (при изменении или добавлении записи автоматически обновляются все индексы).
Одним из основных принципов разработки реляционных баз данных является то, что все данные, содержащиеся в поле таблицы, должны иметь один и тот же тип. Для каждого поля таблицы необходимо задать тип данных. По умолчанию используется тип данных «Текстовый». При задании типа данных поля можно также указать размер, формат и другие параметры, влияющие на отображение значения поля и точность числовых данных.
Основные типы данных:
1. Текстовый. Текст или числа, не требующие проведения расчётов.
2. МЕМО. Поле этого типа предназначено для хранения небольших текстовых данных (до 64000 символов). Поле этого типа не может быть ключевым или проиндексированным.
3. Числовой. Этот тип данных содержит множество подтипов. От выбора подтипа (размера) зависит точность вычислений.
4. Счётчик. Уникальные, последовательно возрастающие числа, автоматически вводящиеся при добавлении новой записи в таблицу.
5. Логический. Логические значения, а так же поля, которые могут содержать одно из двух возможных значений.
6. Денежный. Денежные значения и числовые данные, используемые в математических вычислениях.
7. Дата/Время. Дата и время хранятся в специальном фиксированном формате.
8. Поле объекта OLE. Включает звукозапись, рисунок и прочие типы данных. Поле этого типа не может быть ключевым или проиндексированным.
9. Гиперсвязь. Содержит адреса Web-страниц. )