Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Проектитрование реляционных БД



При проектировании структур данных для автоматизированных систем выделяют 3 основных подхода:

  • сбор информации об объектах в одной таблице (в рамках одного отношения) и последующая декомпозиция ее на несколько взаимосвязанных таблиц на основе процедуры нормализации отношений;
  • использование CASE - технологий (системы автоматизации проектирования и разработки баз данных) получение с их помощью готовой схемы базы данных или информационной системы;
  • структурирование информации для использования в информационной системе на основе системного анализа.

Первый подход к проектированию баз данных является исторически первым и классическим, поэтому мы рассмотрим именно его.

Исходное отношение - БД о преподавателях для учебной части факультета.

Модель данных можно представить в виде формулы:

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. В нем реализована возможность хранить в одном файле БД все необходимые объекты, относящиеся к пользовательской прикладной задаче.

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

  • исключение дублирования данных;
  • данные должны быть организованы так, чтобы каждое исправление или дополнение делалось только в одном месте БД.;
  • необходимость группировки данных по их содержанию. Каждая таблица может отвечать определенной тематике;
  • принципы модульности. БД должна быть разбита на несколько унифицированных блоков, которые можно модернизировать и заменять по отдельности и даже использовать таблицы в других БД.

Основные понятия базы данных:

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

Создание таблицы

Таблицу можно создавать «вручную» или использовать мастер таблиц. Существует несколько способов:

1. Режим таблицы: появляется заготовка таблицы, поля по умолчанию имеют имена (Поле 1, Поле 2, и т.д.)

Пользователь заполняет эту таблицу информацией, присваивает полям имена, несущие смысловую нагрузку (ФИО, адрес и т.п.).

Символ * обозначает новую запись.

Кнопка 8* создает в конце таблицы новую запись и переводит курсор на нее.

Структура таблицы внешне похожа на электронную таблицу, но только внешне: также можно изменить ширину столбца и высоту строки. Над строками таблицы можно выполнять три стандартных операции: вырезать, копировать, вставить с использованием буфера обмена (т.о. можно переместить несколько строк в другое место таблицы)

2. Режим конструктор. Используется для определения структуры таблицы.

Таблица (бланк) содержит перечень всех полей, их типов и заголовков. Имя поля, Тип данных и Описание (необязательная графа), используется для подсказки в нижней части и экрана.

Столбец Тип данных содержит поле со списком 6, его нужно открыть и выбрать нужный тип, далее установить свойства поля.

Рассмотрим используемые типы данных.

Текстовый формат.

Вкладка Общие со свойствами текстовых полей содержит следующие свойства:

  • Размер – устанавливается в пределах от 1 до 255 символов;
  • Формат поля - используется в формах и запросах и задает вид и размер вводимых строк.

Символы формата:

@ - должен быть текстовый символ или пробел

& - текстовый символ

< - преобразование символов в нижний регистр

> - преобразование символов в верхний регистр

Маска ввода также представляет собой последовательность кодовых символов:

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 существует несколько типов запросов: простой, перекрестный, выборка повторяющихся записей.

Запрос может создавать с помощью мастера или «вручную» (в режиме «Конструктор»)

Запрос определяет, из каких таблиц, какие поля и записи БД следует извлечь. Запрос собирает данные в динамический набор ( виртуальная таблица). Запрос может использовать как источник данных для форм, отчетов и других запросов.

Технология создания запросов довольна проста.

В диалоговом окне «Создание запроса» (БД - Запрос - Создать) в режиме «Конструктор» появляется окно, в верхней половине которого показаны связи между таблицами.

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

При необходимости, создать связи между таблицами. Если связи уже определены, то линии связи будут выведены автоматически. Нижняя часть окна - бланк запроса - содержит описание запроса в табличной форме. Каждая колонка в нем отвечает одному полю. Таблица расширяется вправо автоматически, когда пользователь добавляет в запрос новые поля.

Поле: Имя таблиц: Групповая операция: Сортировка: Вывод на экран: Условие отбора: Или: Фамилия Таблица 1   «Петров» З/п Таблица 2   < 5000

Заполнив строку < Условие отбора> можно произвести выборку из БД.

Допустим, чтобы просмотреть все записи, касающиеся Петрова, в поле Фамилия в строке Условие отбора нужно указать «Петров». Символьные константы заключаются в кавычки.

Для выборки данных о сотрудниках, имеющих заработную плату меньше 5 тыс. рублей в поле З/п в строке Условие отбора нужно указать < 5000.

Можно использовать более сложные условия - логические выражения: они могут содержать арифметические операторы, операторы сравнения, ссылки на поля, символы шаблона (? , *) и т.п. Выражение можно ввести вручную или создать с помощью Построителя выражений. Выражение (в условии) всегда имеет логический тип. Его значение Да или Нет.

Когда вы строите выражение для запроса, то должны представлять себе, что создаете новую таблицу, используя уже имеющуюся информацию в БД.

 

Используются все математические действия

\ - деление целых частей, результат целое ^ - возведение в степень МОД - остаток от деления & - сложение символьных строк (или +) ? - любой одиночный символ * - любая последовательность символов # - неизвестная цифра [ ] определенный набор символов [1-5] [a-d]  
Можно использовать логические функции: AND, OR, EQV, XOR    
Примеры: > = 1990 AND < = 1999 > #01.04.01.#AND< #01.07.01  
     

Требования: правильно сформулировать условие отбора, связи между таблицами.

Строка Групповая операция содержит список функций. Под групповой операцией понимается обработка значений данного поля при помощи определенной функции. В результате в таблице запроса меняется расположение или количество записей.

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

Отчеты. Структуры форм и отчетов похожи. Создание отчета - в режиме конструктора. Готовый отчет выводят на печать. Форматы отчетов соответствуют стандартным форматам бумаги.

 

Компьютерные презентации

 

 

Коммуникационные технологии

 


Поделиться:



Последнее изменение этой страницы: 2017-03-14; Просмотров: 332; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.065 с.)
Главная | Случайная страница | Обратная связь