В.В. Крюкова Проектирование, создание и использование баз данных MS ACCESS Часть 2. Физическое проектирование базы данных
.pdf10
полей, полей MEMO и гиперссылок, используя универсальный международный код. По умолчанию включено. Можно отключить, тем самым сэкономить память.
Число десятичных знаков – указывает количество десятичных знаков после запятой в числовых и денежных типах полей; если выбрать значения свойства Авто, то число отображается так, как было введено в поле.
Новые значения – свойство определено только для поля Счётчик и указывает, какие значения автоматически будут подставляться в поле при создании новой записи. Возможные значения: последовательные, случайные (числа). Принято по умолчанию первое значение и лучше использовать его.
Определим другие свойства поля № операции таблицы ЖХО (рис. 6). Переходим в верхнюю часть конструктора, выделим поле № операции, щелкнув мышью слева от поля в области стрелки (если ключ простой, можно не выделять поле, но оно должно быть выбрано), и нажимаем кнопку Ключевое поле на ПИ, значок ключа появляется слева от имени поля (рис. 6), автоматически создаётся соответствующий индекс таблицы. Для остальных полей внесём:
- для внешних ключей Дебет и Код контрагента значения свойства Индексированное поле – “Да (Совпадения допускаются)” или значение – “Нет”, в первом случае создаются индексы таблицы, используемые для организации быстрого поиска записей;
|
- |
для |
внешнего |
|
|
составного ключа Код |
|||
|
валюты, Дата и дру- |
|||
|
гих полей |
значения |
||
|
этого |
свойства |
– |
|
|
“Нет”; |
|
|
|
|
- |
для всех полей |
||
|
значения свойств Обя- |
|||
|
зательное поле – “Да”, |
|||
|
Пустые строки |
– |
||
|
“Нет”; выберем соот- |
|||
|
ветствующий тип |
и |
||
|
размер данных, обяза- |
|||
Рис. 8. Окно конструктора таблицы Валюты |
тельно |
заполним |
||
свойство |
Подпись, |
для поля Дата зада-
11
дим Маску ввода, выбрав из списка соответствующее значение. Для сохранения таблицы следует нажать кнопку Сохранить на ПИ Стандартная, появляется ДО, в котором ввести имя таблицы – ЖХО, ОК.
Аналогично создадим структуру таблиц Валюты, Контрагенты,
План счетов (рис. 8, 9, 10).
Рис. 9. Окно конструктора таблицы Контрагенты
Рис. 10. Окно конструктора таблицы План счетов
12
Для определения составного ключа в таблице Валюты надо выделить оба поля Код валюты и Дата, щёлкая мышью при нажатой клавише <Ctrl>, затем нажать кнопку Ключевое поле. Для этих полей значение свойства Индексированное поле – “Да (Совпадения допускаются)”, а для первичных ключей таблиц Контрагенты, План счетов – Индексированное поле – “Да (Совпадения не допускаются)”, для остальных полей указанных таблиц значение – “Нет”. Для полей Наиме-
нование валюты, Курс, Название контрагента, Название счёта значения свойств Обязательное поле – “Да”, Пустые строки – “Нет”, для ос-
тавшихся полей наоборот (“Нет”, “Да” соответственно).
Для поля Фото таблицы Контрагенты тип – Поле объекта OLE,
для заполнения поля данными используется меню Вставка, Объект.
Для поля таблицы Контрагенты Фамилия задана Маска ввода
“>L<???????????????”, для поля Номер телефона – “\(000\)00\-00\-00”.
Сразу после сохранения структуры таблицы можно заполнить её данными (создать записи), для этого нажать кнопку Вид, на ПИ Конст-
руктор таблиц выбрать Режим таблицы или в ДО База данных на вкладке таблицы выбрать нужную и нажать кнопку Открыть. Лучше наполнить таблицу данными позже, иначе можно нарушить её целостность.
ИСПОЛЬЗОВАНИЕ ПОЛЕЙ ПОДСТАНОВОК ПРИ СОЗДАНИИ ТАБЛИЦ
В связанных таблицах внешний ключ подчинённой таблицы должен иметь значение первичного ключа главной таблицы, иначе нарушаются параметры целостности БД, например, в таблице План счетов поле Номер счёта – первичный ключ главной таблицы, а в таблице ЖХО поле Дебет – внешний ключ подчинённой таблицы. При заполнении поля Дебет (и поля Кредит тоже) в таблице ЖХО необходимо выбирать значения из поля Номер счёта таблицы План счетов. Для этой цели используется поле подстановки.
Подстановка в режиме конструктора таблиц
Первый способ. Таблица ЖХО, поле Дебет, тип данных – текстовый, переходим в окно свойств. Вкладка Общие – свойство Размер поля
– 6, открываем вкладку Подстановка, определим свойства: Тип эле-
мента управления – Поле со списком, Источник строк – таблица План счетов, Присоединенный столбец – 1, Число столбцов – 1 (рис. 11).
13 |
|
|
|
|
|
соб. |
Второй |
спо- |
|
|
Выбрать |
поле |
||
|
Код |
контрагента |
||
|
таблицы |
ЖХО, в |
||
|
свойстве |
Тип |
дан- |
|
|
ных указать: Мас- |
|||
|
тер |
подстановок. |
||
|
Появится ДО, в ко- |
|||
|
тором надо указать |
|||
|
вариант: |
|
|
|
|
Объект “столбец |
|||
|
подстановки” |
бу- |
||
|
дет |
использовать |
||
|
значения |
из табли- |
||
|
цы или запроса. |
|
||
|
|
или |
|
|
|
Будет |
введён |
||
Рис. 11. Определение поля подстановки |
фиксированный |
на- |
||
|
бор значений. |
|
Нажать кнопку Далее.
Если выбран первый вариант, появится следующее ДО, в котором надо указать Таблицы и в списке выделить таблицу Контрагенты, нажать кнопку Далее. В следующем ДО выбрать поле Код контрагента кнопкой , которое определит столбец подстановки, кнопка Далее; в следующем ДО появится столбец значений, в этом ДО можно изменить ширину столбца, кнопка Готово.
Можно формировать значение столбца подстановки из разных полей и разных таблиц, например, из полей Код контрагента и Название контрагента; при этом первый столбец (Код контрагента) можно скрыть, тогда выбираем значение из списка Наименование контрагента, а подставляется в поле Код контрагента значение кода, при отображении данных, например в форме, будем видеть наименование.
Если выбран второй вариант (Будет введён фиксированный набор значений), появляется ДО, в котором надо установить Число столбцов, равное 1, и внести в список Столбец 1 конкретные значения. Кнопка
Далее.
14
Подстановка в режиме таблицы
Надо открыть таблицу ЖХО в режиме таблицы. Курсор поместить в поле Код валюты, выполнить команду меню Вставка, Столбец под-
становок, появится первое ДО Мастера подстановок и т.д. Выполнить те же операции, что и в режиме конструктора. Определить поля подстановок внешних ключей таблицы ЖХО.
2 способ: Создание новой таблицы в режиме таблицы
В режиме таблицы создаётся новая таблица без предварительного определения её структуры. Надо выбрать в рабочем поле окна БД стро-
ку Создание таблицы путём ввода данных или в окне Новая таблица
строку Режим таблицы. Сразу появится пустая таблица, в которую вводят данные (рис. 12). Введённые данные автоматически определяют тип поля таблицы, т.е. автоматически создаётся структура таблицы. По умолчанию создается таблица из 10 столбцов и 21 строки. Имя поля можно изменить, дважды щёлкнув левой кнопкой мыши по имени в области заголовков или использовав команду меню Формат, Переименовать столбец. Можно вставить (команда меню Вставка, Столбец) или удалить (команда меню Правка, Удалить столбец) столбцы.
Для перемещения столбца надо выделить имя и мышью перетащить заголовок поля в нужное место. Все столбцы и строки, оставленные пустыми, будут удалены при сохранении таблицы. Действующие форматы по-
Рис. 12. Создание таблицы в режиме таблицы лей можно увидеть в окне конструктора таблиц, свойство Формат поля. По окончании ввода данных
нужно сохранить таблицу. При сохранении таблицы появится сообщение: “Создать ключевое поле? Да, Нет”. Надо выбрать “Нет”, затем открыть таблицу в режиме конструктора, изменить при необходимости структуру и свойства полей, задать ключи.
15
Врежиме таблицы надо вводить данные правильно в соответствии
сдопустимыми типами данных и форматами их отображения. В окне конструктора таблиц можно просмотреть их определение.
3 способ: Создание таблицы с помощью мастера таблиц (МТ)
МТ автоматически создаёт таблицу на основе шаблона. Надо в рабочем поле окна БД выбрать строку Создание таблицы с помощью мастера или в окне Новая таблица, вызываемом кнопкой Создать, выбрать Мастер таблиц (всего шаблонов – 50). Каждая таблица шаблона имеет набор – список полей. Надо выбрать шаблон таблицы из списка Образцы таблиц, затем из списка Образцы полей выбрать нужные, выделяя поле и нажимая кнопку или (для одного или всех полей соответственно). Поле попадает в список Поля новой таблицы (рис. 13). Выделяя в этом списке нужное поле, его можно переименовать, нажав кнопку Переименовать поле. Поля можно выбирать из разных таблиц. Нажимая кнопку Далее, переходя к следующему шагу мастера, можно: определить ключ таблицы Microsoft Access автоматически определя-
ет ключ (или Пользователь определяет ключ самостоятельно); соз-
дать связь новой таблицы с уже имеющимися в базе данных, при этом ключ новой таблицы добавляется в таблицу, с которой устанавливается связь; осуществить ввод данных в режиме таблицы; сразу создать форму для ввода данных в таблицу. Созданную мастером таблицу можно доработать в режиме конструктора.
Рис. 13. Создание таблицы с помощью мастера
16
УСТАНОВКА СВЯЗЕЙ МЕЖДУ ТАБЛИЦАМИ
Создание связей между таблицами – последний этап физического проектирования БД. Связь между таблицами устанавливает отношение между совпадающими значениями в ключевых полях. В большинстве случаев связывают первичный ключ главной таблицы с внешним ключом подчинённой таблицы (часто имеющим то же имя), например, первый ключ Код контрагента таблицы Контрагенты и внешний ключ Код контрагента таблицы ЖХО. Существуют четыре типа отношений:
1.Один – к одному 1 ↔ 1. Запись таблицы А может иметь не более одной связанной записи в таблице В и наоборот. Ключевое поле в таких таблицах должно быть уникальным.
2.Многие – к одному ∞ ↔ 1. Одной записи в таблице А может соответствовать одна запись в таблице В, а одной записи в таблице В – несколько записей в таблице А. В таблице В ключевое поле должно быть уникальным.
3.Один – ко многим 1 ↔ ∞. Каждой записи в таблице А могут соответствовать несколько записей в таблице В, а запись в таблице В не может иметь более одной соответствующей записи в таблице А. В таблице А ключевое поле должно быть уникальным. Отношения
вида 1 ↔ ∞ и ∞ ↔ 1 отличаются тем, какая таблица является главной.
4.Многие – ко многим ∞ ↔ ∞. Такая таблица не нормализована. Одной записи таблицы А может соответствовать несколько записей таблицы В и наоборот. Уникальных ключей нет. Все ключи внешние. В этом случае таблицу надо нормализовать, используя инст-
румент Анализатор таблиц (меню Сервис, Анализ, Таблица, запус-
кается мастер).
Связанные поля не обязательно должны иметь одинаковые имена
(поле Номер счёта таблицы План счетов и поле Дебет таблицы ЖХО),
но обязательно должны иметь одинаковые типы данных. Поля типа Числовой должны иметь одинаковые значения свойства Размер поля. Разрешается связывать типы полей Счётчик и Числовое, Длинное целое (или Счётчик и Числовое поле, если код репликации задан для обоих полей). Перед установкой связей следует закрыть все таблицы.
17 |
|
|
|
|
|
|
|
Находясь в окне |
|||
|
БД, |
нажать кнопку |
|||
|
Схема данных, |
затем |
|||
|
Добавить |
таблицу |
|||
|
(или |
команда |
меню |
||
|
Связи, |
Добавить |
|||
|
таблицу), |
появится |
|||
|
окно |
|
Добавление |
||
|
таблицы |
(рис. 14). |
|||
|
Выбрать |
таблицу |
из |
||
|
списка |
(один |
|
раз |
|
Рис. 14. ДО Добавление таблицы |
щёлкнуть |
|
левой |
||
кнопкой |
мыши) |
и |
|||
|
нажать кнопку Доба- |
вить, выбрать следующую таблицу, нажать кнопку Добавить и т.д. Выбрать все таблицы, затем нажать кнопку Закрыть. Затем уцепить левой кнопкой мыши поле первой таблицы со стороны связи 1 и тащить, опустить на то же поле другой таблицы, появится ДО Изменение связей (рис. 15), внизу указан тип отношения один – ко многим, нажать кнопку Создать. Для удаления связи – щёлкнуть правой кнопкой мыши нужную связь и выбрать команду Удалить, для изменения – два раза щёлкнуть линию связи, появится ДО Изменение связей, которое имеет три флажка: Обеспечение целостности данных означает выполнение ус-
ловий корректного внесения записей, Каскадное обновление связан-
ных полей, Каскадное удаление связанных полей означают, что при изменении (или удалении) значений первичного ключа главной табли-
|
цы автоматически |
меня- |
||
|
ются (или удаляются) со- |
|||
|
ответствующие значения |
|||
|
внешнего |
ключа подчи- |
||
|
ненной |
таблицы. |
Связи |
|
|
следует |
|
создавать |
при |
|
пустых |
таблицах, |
иначе |
|
|
нельзя |
будет установить |
||
|
эти параметры целостно- |
|||
|
сти БД (или какой-либо |
|||
|
из них). |
|
составном |
|
Рис. 15. ДО Изменение связей |
При |
|||
ключе в окне Изменение |
18
связей необходимо для каждого ключа главной таблицы (Таблица) выбрать соответствующее поле подчинённой таблицы (Связанная таблица). При установлении связи по составному ключу необходимо выделить все поля, входящие в ключ главной таблицы, и перетащить их на одно из полей связи в подчинённой таблице. При выделении полей удерживать клавишу <Ctrl>.
Установленные связи используются при создании запросов, форм и отчётов, их называют постоянными. Надо сохранить макет схемы данных, нажав кнопку Сохранить. Закрыть окно Схема данных. Установим связи между всеми таблицами в соответствии с логической моделью данных.
Если в ДО Изменение связей нажать кнопку Объединение, откро-
ется ДО Параметры объединения – критерии для отбора записей (рис. 16). Например, для любого типа связи можно выбрать:
1. Объединение только тех записей, в которых связанные поля обеих таблиц совпа-
дают (внутреннее объединение).
2. Объединение всех записей из таблицы А и только тех из таблицы В, в которых связанные поля совпадают (левое внешнее объединение).
3. Объединение всех записей из таблицы В и только тех из таблицы А, в которых связан-
ные поля совпадают (правое внешнее объединение).
Для связей между таблицами на уровне БД лучше использовать только внутреннее объединение, а оба внешние объединения – при создании запросов.
В MS Access 2000 существуют два способа организации связи: создание непосредственных связей (вручную) с помощью инструмента Схема данных и создание вложенных таблиц. Чтобы создать вложенную таблицу, надо открыть главную таблицу в режиме просмотра, активизировать поле первичного ключа (необязательно) и выполнить команду меню Вставка, Подтаблица, появится ДО, в котором выбрать подчинённую таблицу и указать: в списке Подчинённые поля – внешний ключ (первичный ключ подчинённой таблицы) и в списке Основные поля – первичный ключ главной таблицы, ОК. Рядом с именем поля пер-
19
вичного ключа главной таблицы появится знак . При щелчке мыши по нему открывается подчинённая (связанная) таблица.
Установим связи между таблицами БД “Бухгалтерский учёт на предприятии” (рис. 17). Если в ДО
Изменение связей вид связи определяется неправильно или вообще не определён, следует вернуться к этапу конструирования таблиц, проверить свойства первичных и внешних ключей, изменить
Рис. 17. Схема данных при необходимости.
Схема данных –
графическое представление физической модели БД, полностью соответствует логической МД (рис. 1).
МАКЕТ ТАБЛИЦЫ
Для более приятного восприятия таблицы на экране можно её отформатировать: изменить ширину столбцов, высоту строк, шрифт, цвет текста, линий сетки, фона, оформление, которое может быть обычным, приподнятым или утопленным и др. Эти параметры отображения таблицы на экране называются макетом таблицы и сохраняются вместе с ней.
Настройка макета выполняется в режиме таблицы, используется:
команда меню Формат и ПИ Формат (режим таблицы). Многие опе-
рации можно выполнять мышью: изменить ширину, высоту, скрыть столбцы (перетащив правую границу влево до исчезновения столбца), изменить порядок следования – выделить столбец (мышью щелкнуть по заголовку) и перетащить в нужное место, удалить столбцы, закрепить столбцы (команда меню Формат). Сохранить изменения: ответить Да на вопрос “Сохранить макет таблицы?”