Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка информатика.doc
Скачиваний:
3
Добавлен:
01.05.2019
Размер:
1.24 Mб
Скачать

7.9. Проектирование таблиц базы данных

7.9.1. Определение комплекса таблиц субд Microsoft Access

Таблицы СУБД Microsoft Access строятся на основе нормали­зованных отношений, получаемых в соответствии с алгоритмом по­строения семантической модели ПО, т.е. каждому отношению должна соответствовать одна таблица Microsoft Access. Отношения должны находиться, как минимум, в ЗНФ.

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

Для таблиц базы данных определяются свойства:

• условие на значение (проверка записей, вводимых в таблицу, на выполнение условий);

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

• порядок сортировки записей таблицы.

Описание полей

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

  1. Имена полей назначать одинаковыми с сокращенными именами реквизитов (или атрибутов отношений).

  2. Записывать имена строчными (маленькими) буквами и начинать с прописной (заглавной) буквы.

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

  4. Имена полей, состоящие из нескольких слов, следует записы­вать подряд, разделяя их символом подчеркивания "_", или на­чинать каждое составляющее слово с прописной буквы, напри­мер, Код_товара или КодТовара.

  5. Смысловое описание поля следует приводить в графе "Описа­ние" конструктора таблиц.

  6. В строке "Подпись" в "Свойства поля" поместить название гра­фы первичного документа (формы).

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

При назначении типа поля для цифровых кодов целесообраз­но выбрать тип Текстовый с количеством символов, равным числу позиций кода. Размер поля типа Текстовый определяется макси­мальной длиной реквизита в символах и в Microsoft Access должен находиться в пределах 1 ÷ 255.

Размер поля типа Числовой зависит от его подтипа в соответ­ствии с таблицей 4.19.

Microsoft Access отводит на машинном носителе для всех под­типов полей типа Числовой количество байтов, указанное в графе "Размер в байтах", независимо от количества цифр в значении чис­ла. Если размер числового поля, задаваемый в таблице, больше, чем он определен в домене, то на машинном носителе останутся незаполненными лишние позиции, и память будет расходоваться неэкономно. Рекомендуется использовать тип целый, если исход­ные данные не имеют дробной части.

Подтип данного

Описание

Дробная часть

Размер в байтах

Байт

Целые положительные числа от 0 до 255

Отсутствует

1

Целое

Целые числа от -32768 до +32767

Отсутствует

2

Длинное целое

Целые числа

от -2 147 483 648

до +2 147 483 647

Отсутствует

4

Одинарное с плавающей точкой

Числа

от -3,40282310-38

до 3,40282310+38

7 знаков

4

Двойное с плавающей точкой

Числа

от 1,79769310-308

до +1,79769310+308

15 знаков

8

Денежный

Числа

от -922337203685447,5808

до +922337203685447,5808

4 знака

4

Действительное

Целые числа

от -10+28 – 1

до +10+28 – 1

Отсутствует

12

Кроме типов данных Текстовый и Числовой в Microsoft Access имеются следующие типы:

  1. MEMO.

  2. Дата/Время.

  3. Денежный.

  4. Счетчик.

  5. Логический.

  6. Поле объекта OLE.

  7. Гиперссылка.

  8. Мастер подстановок.

Тип данных MEMO относится к символьному виду данных. По­ле этого типа предназначено для хранения больших текстовых данных: предложений, абзацев, текстов суммарной длиной до 64000 символов.

Тип данных Счетчик относится к числовому виду данных. Значения его - уникальные последовательно возрастающие на 1 или псевдослучайные числа, имеющие подтип Длинное целое. Обычно используется в качестве ключевого поля таблицы, если пользователь по каким-либо причинам не может (имеются полно­стью повторяющиеся строки) или не хочет использовать реквизиты информационного объекта для создания ключевого поля. Значения полей этого типа Microsoft Access создает автоматически, и пользо­ватель изменить их не может.

Тип данных Логический также относится к числовому виду данных. Поле этого типа может содержать одно из двух возможных значений - Истина или Ложь - и использует величину -1 для пред­ставления значения Истина и величину 0 - для Ложь. В памяти компьютера имеет размер один бит. Обычно используется в логи­ческих выражениях.

Тип данных Денежный относится к числовому виду данных. Предназначен для хранения денежных сумм и используется для предотвращения округления во время вычислений. Имеет точность до 15 цифр в целой части и до 4 в дробной. В памяти машины за­нимает 8 байт. Может использоваться для выполнения расчетов с высокой точностью, не обязательно денежных.

Тип данных Дата/Время используется при хранении даты и времени в специальном числовом формате, причем дата хранится в целой части значения поля типа Дата/Время, а время - в дроб­ной. В памяти машины занимает 8 байт.

Тип данных Поле объекта OLE относится к виду данных "Объекты произвольного типа". Поле этого типа может содержать рисунок, диаграммы, звукозапись, рабочий лист электронной таб­лицы и другие объекты данных OLE из приложений Windows.

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

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

В "Свойствах поля" конструктора таблиц можно установить размер поля для полей типов Текстовый и Числовой. В окне "Свойства поля" можно установить также еще ряд свойств. Ниже рассмотрены некоторые свойства, которые часто используются и правильное применение которых имеет наиболее существенное значение при проектировании таблиц СУБД.

Подпись. Наличие подписи позволяет заменить в изображена, таблицы, формы или отчета названия полей текстом подписи. Н; пример, если поле имеет имя NDOG, а подпись - Номер договора то в качестве названий колонок таблиц, полей формы или отчета будет текст Номер договора (вместо NDOG).

Значение по умолчанию. Применение этого свойства позволяет автоматически вводить в поле каждой очередной записи таблицы заданное пользователем фиксированное значение. В то же время пользователь может изменить в процессе ввода значение по умолчанию для любой вводимой записи. Свойство удобно использовать для часто встречающихся значений поля таблицы. Значение 0 (ноль, не Null!) СУБД Microsoft Access устанавливает для числовых полей реквизитов-оснований по умолчанию.

З

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

Обязательное поле. Это свойство позволяет установить, яв­ляется ли обязательным задание значения поля. Свойство может иметь одно из двух значений: Да или Нет (по умолчанию - Нет). Если свойство имеет значение Да, то при вводе данных в строку таблицы необходимо задать значение поля, т.е. оно не может иметь значение Null. Например, если необходимо, чтобы в каждой строке таблицы "Спецификация договора" вводилось количество товара, то значение рассматриваемого свойства соответствующего поля должно быть Да.

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

Значение Описание

Нет Поле не индексировано(по умолчанию).

Да Поле индексировано.

(Допускаются Допускается повторение

совпадения) значений индексного поля.

Да Поле индексировано.

(Совпадения Повторение значений

не допускаются) индексного поля не допускается.

Для простого ключа таблицы Microsoft Access автоматически создает индекс, и если ключ простой, то свойство Индексированное поле ключевого поля получает значение "Да (Совпадения не допус­каются)". Если ключ составной, то Microsoft Access создает из всех ключевых полей составной ключ, а свойство Индексированное поле составляющих ключ полей имеет умалчиваемое значение "Нет". Для всех полей составного ключа следует устанавливать свойство Индексированное поле в значение "Да (Допускаются совпадения)", что позволит повторять значения полей, составляющих ключ.

Например, ключевые поля №ТТН и КодТовара могут прини­мать в этом случае значения, приведенные в табл.4.20.

Таблица 4.20

№ ТТН

КодТовара

510

10344

510

10350

512

10344

512

10350

Для полей таблиц могут быть заданы свойства:

  • формат и маска ввода (тип и длина вводимых данных, формат представления данных);

  • условие на значение (контроль вводимой информации - на диапазон значений, на соответствие другим данным);

  • обязательное поле (контроль полноты ввода данных в поля таблицы).

Документирование проектных решений обеспечивает команда меню Сервис| Анализ| Архивариус. Вывод описания осуществляет­ся на экран, на печать, в таблицу «Описание объекта», в файл RTF, файл HTML или на лист Microsoft Excel.

Разработка схемы данных СУБД Access

Схема данных позволяет:

  1. Установить связи между записями в таблицах.

  2. Отобразить их графически на экране монитора и/или вывести на печать.

  3. Обеспечить защиту от случайного удаления или изменения связанных данных.

4. Автоматически использовать эти связи при построении

  • запросов к БД;

  • составных (подчиненных) форм;

• отчетов.

5. Обеспечить целостность данных.

В Microsoft Access можно установить три типа связей:

  • "один-к-одному";

  • "один-ко-многим";

  • "не определено".

Последний тип связи соответствует связи типа "многие-ко-многим".

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

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

Связь "один-ко-многим" возникает, если:

• связываемое поле подчиненной таблицы является неклю­чевым

или

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

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

Предполагая, что таблица соответствует информационному объекту предметной области (ПО), можно считать, что схема БД является отображением в Microsoft Access семантической модели ПО. При условии, что таблицы в схеме расположены по уровням иерархии, схема БД является отображением в Microsoft Access ка­нонической формы ИЛМ ПО.

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

Наличие схемы данных обязательно для проверки ссылочной це­лостности, построения составных форм и ввода данных в свя­занные таблицы. Схема данных позволяет объединить отдель­ные реляционные таблицы, полученные на этапе информацион­ного анализа из первичного документа, в единое целое - инфор­мационное отображение исходного документа посредством входных форм СУБД Access

Таблицы в Схеме данных рекомендуется располагать по уров­ням иерархии в соответствии с канонической формой ИЛМ ПО. Это делает более наглядными связи между таблицами.

Примечания

  1. СУБД Access позволяет включать в схему данных не только таблицы, но и запросы. Это позволяет отображать результаты запросов в виде формы на экране и/или вывести ее на печать.

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

Ссылочная целостность

В Microsoft Access понятиям Ссылочное (целевое) отношение и Ссылающееся отношение соответствуют понятия Главная таб­лица и Подтаблица.

Главная таблица - это таблица на стороне "один" при связи двух таблиц с отношением "один-ко-многим". В главной таблице должно существовать ключевое поле, а все записи в ней должны быть уникальными. Подтаблица - это таблица на стороне "многие" при связи двух таблиц с отношением "один-ко-многим". Одна и та же таблица может в одной связи быть главной, а в другой – подтаблицей.

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

Изменение целостности данных в Microsoft Access произво­дится при помощи диалогового окна "Изменение связей".

Для вывода окна на экран следует дважды щелкнуть левой кнопкой мыши по линии связи таблиц или щелкнуть по ней один раз правой кнопкой мыши и выбрать пункт "Изменить связь...". Для обеспечения целостности данных необходимо установить одно­именный флажок в окне "Изменение связей". Тогда Microsoft Ac­cess обеспечивает выполнение следующих правил:

  1. Невозможно ввести в поле внешнего ключа связанной подтаблицы значение, не содержащееся в ключевом поле главной таблицы.

  2. Не допускается удаление записи из главной таблицы, если су­ществуют связанные с ней записи в подчиненной таблице.

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

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