Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Проектитрование реляционных БД⇐ ПредыдущаяСтр 16 из 16
При проектировании структур данных для автоматизированных систем выделяют 3 основных подхода:
Первый подход к проектированию баз данных является исторически первым и классическим, поэтому мы рассмотрим именно его. Исходное отношение - БД о преподавателях для учебной части факультета. Модель данных можно представить в виде формулы: S = (A, R, Z, N), где А - атрибуты R – связи Z –цель (как база данных должна использоваться, какую информацию заказчик хочет получить в процессе ее эксплуатации) N – заказчик (заведующий учебной частью факультета). БД «Преподаватель»
Схема отношения БД «Преподаватель» (ФИО, Должность, Оклад, Стаж, Доплата за стаж, кафедра, предмет, группа,.Вид занятий) Заполним исходную таблицу:
Исходное отношение преподаватель содержит избыточное дублирование данных. Различную избыточность явную и неявную. Явная избыточность заключается в том, что строки с данными о преподавателях, ведущих занятий в нескольких группах, повторяются соответствующее число раз. Если Иванов станет старшим преподавателем, то это изменение нужно отражать во всех строках. Неявная избыточность проявляется в одинаковых окладах у всех преподавателей, в одинаковых добавках к окладу за одинаковый стаж. Если при изменении оклада, значения изменят у всех, кроме. Сидорова, то база станет противоречивой. Средством исключения избыточности в отношениях является нормализация отношений. Это основная задача, решаемая в процессе проектирования БД. Рассмотрим классический (как уже говорилось) метод проектирования реляционных баз данных - метод нормальных форм. Он основан на понятии зависимости между атрибутами отношений. Различают зависимости:
Определение функциональной зависимости. Атрибут В функционально зависит от атрибута А, если каждому. значению А соответствует в точности одно значение В. Математическая запись А®В. В исходном отношении «Преподаватель» существуют следующие функциональные зависимости: ФИО→ Кафедра ФИО→ Должность Должность→ Оклад ФИО→ Предмет Ключ является составным и состоит из атрибутов ФИО, Предмет, Группа. Все не ключевые атрибуты функционально зависят от ключа с различной степенью зависимости. Исходное отношение находится в первой нормальной форме (1HФ). Функциональная зависимость может быть полной и частичной (от части ключа). Определение транзитивной зависимости. Атрибут С зависит от атрибута А транзитивно, если для атрибутов А, В, С выполнено условие А®В и В®С, но обратная зависимость отсутствует В нашем отношении: ФИО®Должность®Оклад. Определение многозначной зависимости. В отношении R атрибут В многозначно зависит от атрибута А, если каждому значению А соответствует множество значений В, не связанных с другими атрибутами из R. Различают зависимости: “один ко многим” (1: М), “многие к одному” (М: 1) и “многие ко многим” (М: М) А ¾ > > В А < < ¾ В А< < ¾ > > В В нашем отношении присутствует многозначная зависимость ФИО < < ¾ > > Предмет (преподаватель ведет несколько предметов и каждый предмет может вестись несколькими преподавателями) В результате анализа отношения Преподаватель получаем следующие зависимости:
Нормальные формы Процесс проектирования БД с использованием метода нормальных форм (НФ) является итерационным и заключается в последовательном переводе отношений из первой нормальной формы (1НФ) в НФ более высокого порядка. Выделяют: 1НФ, 2НФ, 3НФ, усиленная 3НФ или НФ Бойса-Кодда (БКНФ), 4НФ, 5НФ. НФ Отношение находится в 1НФ, если все его атрибуты являются простыми. Исходную таблицу строим таким образом, чтобы отношение было в 1НФ. Перевод в следующую НФ осуществляется методом декомпозиции без потерь. Устраняется часть избыточности. НФ Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа (составного). Разложим исходное отношение на два R1 и R2 в 2НФ. R1 R2
В R1 ключ - ФИО, Предмет, Группа, в R2 ключ – ФИО. Исключили явную избыточность в таблице R2 -повторение строк со сведениями о преподавателях, но в R2 по-прежнему имеет место неявное дублирование данных. Для дальнейшего совершенствования отношения преобразуем его в 3НФ. НФ Отношение находится в 3НФ, если оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. В R1 транзитивных зависимостей нет, а в R2 они есть: ФИО ® Должность ® Оклад ФИО ® Оклад ® Должность ФИО® Стаж ® Доплата за стаж. Транзитивные зависимости порождают избыточное дублирование информации в отношении. Устраним их. Преобразуем R2 в R3, R4 и R5, каждое из которых находится в 3НФ
R3
Обычно построение 3НФ является достаточным и процесс проектирования реляционной БД заканчивается. Результат проектирования- БД, состоящая из следующих таблиц R1, R3, R4, R5, имеет место необходимое дублирование данных, но отсутствует избыточное. Данные в БД можно обрабатывать (просматривать и редактировать) с помощью имеющихся средств в системе управления базами данных (СУБД).
Система управления базами данных (СУБД) Access Это приложение было создано для WINDOWS. В нем реализована возможность хранить в одном файле БД все необходимые объекты, относящиеся к пользовательской прикладной задаче. Мы уже рассматривали, что причиной размещения данных в нескольких таблицах в одной БД является дублирование данных. И первоначально, процедура нормализации, которая позволяет исключить дублирование, была разработана для экономии места на диске и в памяти. В настоящее время большинство пользователей не сталкивается с этой проблемой, а нормализация выполняется по следующим причинам:
Основные понятия базы данных:
Создание таблицы Таблицу можно создавать «вручную» или использовать мастер таблиц. Существует несколько способов: 1. Режим таблицы: появляется заготовка таблицы, поля по умолчанию имеют имена (Поле 1, Поле 2, и т.д.) Пользователь заполняет эту таблицу информацией, присваивает полям имена, несущие смысловую нагрузку (ФИО, адрес и т.п.). Символ * обозначает новую запись. Кнопка 8* создает в конце таблицы новую запись и переводит курсор на нее. Структура таблицы внешне похожа на электронную таблицу, но только внешне: также можно изменить ширину столбца и высоту строки. Над строками таблицы можно выполнять три стандартных операции: вырезать, копировать, вставить с использованием буфера обмена (т.о. можно переместить несколько строк в другое место таблицы) 2. Режим конструктор. Используется для определения структуры таблицы. Таблица (бланк) содержит перечень всех полей, их типов и заголовков. Имя поля, Тип данных и Описание (необязательная графа), используется для подсказки в нижней части и экрана. Столбец Тип данных содержит поле со списком 6, его нужно открыть и выбрать нужный тип, далее установить свойства поля. Рассмотрим используемые типы данных. Текстовый формат. Вкладка Общие со свойствами текстовых полей содержит следующие свойства:
Символы формата: @ - должен быть текстовый символ или пробел & - текстовый символ < - преобразование символов в нижний регистр > - преобразование символов в верхний регистр Маска ввода также представляет собой последовательность кодовых символов: 0 - цифра от 0 до 9 9 - цифра или пробел # - цифра, пробел, знак + или - & - любой символ или пробел с - произвольный символ < - преобразование символов в нижний регистр > - преобразование символов в верхний регистр В маске ввода могут использоваться разделители., : ; - / Например, маска 99.99.00; 0; при вводе даты или телефонных номеров для упрощения ввода. Подпись - это второй идентификатор поля (используется вместо имени). Значение по умолчанию. Заданное значение будет автоматически подставляться во все создаваемые поля, оно используется, если при вводе повторяется одно и то же значение. Условие на значение позволяет создать фильтр, который не разрешит вводить в данное поле, что попало, а только то, что удовлетворяет определению условию. Обязательное поле, является логическим, имеет два значения: Да или Нет. Если установить значение «Да» - в поле обязательно должны быть введены данные. Пустые строки тоже логическое поле. Разрешены или нет в данном поле пустые строки. В Acсess два разных понятия: «поле, в которое ничего не было введено» и «поле с пустой строкой» Нет необходимости задавать все свойства полей, пока в этом не возникнет потребность в процессе работы с БД. Числовой формат Свойства те же, что и у текстовых, за некоторыми отличиями: Тип числового поля (размер поля) можно принимать следующие значения: Байт - целые числа в пределах от 0 до 255; Целое - целые числа в пределах от -32768 до 32767; Длинное целое - целые числа в пределах от -2147483648 до 2147483647; С плавающей точкой (4 байт) - числа в пределах от -3.402823Е38 до + 3.402823Е38; С плавающей точкой (8 байт) - -1.79… Е308 до +…; Код репликации - глобально уникальный идентификатор (GUID) длиной 16 байт. Формат числового поля может определяться следующими кодовыми символами: . - в качестве десятичного разделителя; , - как разделитель групп разрядов; 0 - вывод цифры или нуля, если разряд незначащий; # - вывод цифры; $ - знак доллара; % - вывод числа в процентном формате; Е или е - вывод числа в экспоненциальной форме. Например, формат: # ##0, 00, число 123456, 789 в этом формате преобразуется к виду: 123 456, 78. В формате можно задавать цвет выводимых символов. Можно задать 4 группы кодов: 1) для вывода положительных чисел; 2) для отрицательных значений; 3) нулевых; 4) для пустых полей. Группы разделяются. Например, # [Красный]; - # [Синий]; 0 [Зеленый]; “Нет данных” (для значения температуры) Формат «дата/время» В этом поле в одной записи можно указать время, в другой – дату. По умолчанию значения нет. Устанавливается только первое свойство - формат поля. Остальные свойства, как у текстового поля. Денежный формат. По умолчанию: числа с двумя знаками после запятой, с разделением групп разрядов и обозначением < p.> в конце. Можно указать шаблон для своего формата в строке формат поля (слово Денежный заменить, например, на # # # # $). Формат счетчик. Он выполняет определенную функцию - автоматическую идентификацию записей таблицы. Счетчик - это всегда число. Наращивание значения происходит автоматически, есть 2 варианта: последовательный (1, 2, 3…) и случайный (многоразрядные числа, меньше ошибок). Логический формат. Поле может содержать только одно из двух значений: Да или Нет (Истина/ложь, вкл/выкл). Использование может быть различным, например, в анкетах или для создания элементов управления. Поле объекта OLE. Имеет всего два свойства: подпись и параметр «обязательное поле». Такое поле не содержит информации, а содержит ссылки на объекты, которые могут быть включены в БД через буфер обмена (например, графические файлы). Для этого установить курсор на ячейку, в контекстном меню выбрать команду Вставить объект. Работа с записями. Структура таблиц создается в режиме «Конструктор», теперь вернемся в режим «Таблица» для рассмотрения работы с записями.. Поиск записи. Для того, чтобы найти определенную запись (или записи) с указанными данными, например, сотрудников с фамилией Тихомиров, нужно. выделить любую фамилию, курсор к левой границе поля, он примет вид значка +, щелкнуть мышью, щелкнуть кнопку «Найти» (бинокль) на панели инструментов, откроется окно диалога в поле Образец ввести фамилию и нажать кнопку «Найти», выделит первую найденную запись. Для поиска следующей нажать «Найти далее». Закрыть окно. Можно использовать Фильтры. Выделить «Тихомиров» и нажать кнопку «Фильтр по выделенному» на панели инструментов, затем «Удалить фильтр». Фильтр близок к запросам. Перемещение полей. Выделить поле, щелкнув на заголовке и перетащить его влево (например телефон рядом с фамилиями), появляется разделительная линия, которая указывает новое местоположение столбца. Перемещение полей не влияет на данные и структуру таблицы. Сортировка записей. Таблица БД может содержать сотни и тысячи записей. Для быстрого нахождения нужной записи используется сортировка. Можно сортировку выполнить по нескольким смежным столбцам. Для сортировки необходимо:
· для возвращения первоначального вида таблицы использовать: Записи - Удалить фильтр. Запросы Запрос - средство отбора (выборки) данных из таблиц при помощи условия, заданного пользователем. В Acсess существует несколько типов запросов: простой, перекрестный, выборка повторяющихся записей. Запрос может создавать с помощью мастера или «вручную» (в режиме «Конструктор») Запрос определяет, из каких таблиц, какие поля и записи БД следует извлечь. Запрос собирает данные в динамический набор ( виртуальная таблица). Запрос может использовать как источник данных для форм, отчетов и других запросов. Технология создания запросов довольна проста. В диалоговом окне «Создание запроса» (БД - Запрос - Создать) в режиме «Конструктор» появляется окно, в верхней половине которого показаны связи между таблицами. Предварительно из списка выберем имя таблицы или таблиц, которые нужно включить в запрос-выборку. И указать списков полей выбранной таблицы. При необходимости, создать связи между таблицами. Если связи уже определены, то линии связи будут выведены автоматически. Нижняя часть окна - бланк запроса - содержит описание запроса в табличной форме. Каждая колонка в нем отвечает одному полю. Таблица расширяется вправо автоматически, когда пользователь добавляет в запрос новые поля.
Заполнив строку < Условие отбора> можно произвести выборку из БД. Допустим, чтобы просмотреть все записи, касающиеся Петрова, в поле Фамилия в строке Условие отбора нужно указать «Петров». Символьные константы заключаются в кавычки. Для выборки данных о сотрудниках, имеющих заработную плату меньше 5 тыс. рублей в поле З/п в строке Условие отбора нужно указать < 5000. Можно использовать более сложные условия - логические выражения: они могут содержать арифметические операторы, операторы сравнения, ссылки на поля, символы шаблона (? , *) и т.п. Выражение можно ввести вручную или создать с помощью Построителя выражений. Выражение (в условии) всегда имеет логический тип. Его значение Да или Нет. Когда вы строите выражение для запроса, то должны представлять себе, что создаете новую таблицу, используя уже имеющуюся информацию в БД.
Используются все математические действия
Требования: правильно сформулировать условие отбора, связи между таблицами. Строка Групповая операция содержит список функций. Под групповой операцией понимается обработка значений данного поля при помощи определенной функции. В результате в таблице запроса меняется расположение или количество записей. По умолчанию во всех полях устанавливается значение Группировка. Можно выполнить вычисление над группами записей, указать поля, которые группируются и поля по которым будут выполняться групповые вычисления. Отчеты. Структуры форм и отчетов похожи. Создание отчета - в режиме конструктора. Готовый отчет выводят на печать. Форматы отчетов соответствуют стандартным форматам бумаги.
Компьютерные презентации
Коммуникационные технологии
|
Последнее изменение этой страницы: 2017-03-14; Просмотров: 332; Нарушение авторского права страницы