
- •А.В. Брешенков
- •Проектирование баз данных на основе информации табличного вида
- •1. Анализ проблемы проектирования реляционных баз данных на основе использования информации табличного вида 8
- •5. Назначение ключевых полей 142
- •6. Выявление и формирование связей между заполненными таблицами 157
- •7. Объединение таблиц 190
- •8. Разработка и исследование модели методики проектирования реляционных баз данных на основе использования информации табличного вида 220
- •Предисловие
- •Глава 5 посвящена методу назначения ключевых полей в заполненных нереляционных таблицах.
- •1. Анализ проблемы проектирования реляционных баз данных на основе использования информации табличного вида
- •1.1. Понятие информации табличного вида
- •1.2. Мотивы преобразования информации табличного вида в файлы реляционных баз данных
- •1.3. Основные требования к средствам преобразования информации табличного вида в реляционные таблицы
- •1.4. Задачи объединения и разбиения реляционных таблиц
- •1.5. Задачи нормализации реляционных таблиц
- •1.6. Преобразование реляционных нормализованных таблиц в файлы бд
- •1.7. Вопросы преобразования электронных таблиц
- •Упражнения и вопросы для самоконтроля
- •2. Постановка задачи проектирования реляционных баз данных на основе использования информации табличного вида
- •2.1. Укрупненная модель реляционной базы данных
- •2.2. Укрупненная модель информации табличного вида
- •2.3. Задачи преобразования заполненных нереляционных таблиц в реляционные таблицы Преобразование нереляционных таблиц в реляционные таблицы
- •Нормализация заполненных таблиц
- •Назначение ключевых полей для заполненных таблиц
- •Выявление и формирование связей между заполненными реляционными таблицами
- •Упражнения и вопросы для самоконтроля
- •3. Преобразование нереляционных таблиц в реляционные таблицы
- •3.1. Приведение значений атрибутов заполненных таблиц к одному типу
- •3.2. Исключение дублирования записей
- •Упражнения и вопросы для самоконтроля
- •4. Нормализация заполненных реляционных таблиц.
- •4.1. Проблемы нормализации
- •4.2. Модели информации табличного вида и реляционных таблиц.
- •4.2.1. Модель информации табличного вида
- •4.2.2. Модель реляционной таблицы
- •4.3. Преобразование заполненных таблиц к первой нормальной форме
- •4.3.1. Избавление от сложных атрибутов
- •4.3.2. Исключение подзаголовков расположенных внутри таблицы
- •4.3.3. Нормализация заполненных таблиц с подзаголовками в первом столбце.
- •4.4. Преобразование заполненных таблиц ко второй нормальной форме
- •4.5. Преобразование заполненных таблиц к третьей нормальной форме
- •Избавление от функциональной зависимости.
- •4.6. Преобразование заполненных таблиц к четвертой нормальной форме.
- •Упражнения и вопросы для самоконтроля
- •5. Назначение ключевых полей
- •5.1. Задача назначения ключевых полей в заполненных реляционных таблицах
- •5.2. Алгоритмы назначения ключевых полей в заполненных реляционных таблицах
- •Упражнения и вопросы для самоконтроля
- •6. Выявление и формирование связей между заполненными таблицами
- •6.1. Выявление и формирование связей один - к одному
- •6.2. Выявление и формирование связей один - ко многим
- •6.3. Выявление и формирование связей многие - ко многим.
- •Формирование 3-й таблицы для реализации многозначных связей.
- •Упражнения и вопросы для самоконтроля
- •7. Объединение таблиц
- •7.1. Проблемы объединения таблиц
- •Исходные таблицы по своей природе удовлетворяют требованиям совместимости, а по форме – нет.
- •Исходные таблицы удовлетворяют требованиям совместимости, результирующую таблицу необходимо обновлять.
- •Исходные таблицы частично удовлетворяют требованиям совместимости.
- •7.2. Объединение и обновление совместимых таблиц
- •7.3. Объединение таблиц, частично удовлетворяющих требованиям совместимости
- •Упражнения и вопросы для самоконтроля
- •8. Разработка и исследование модели методики проектирования реляционных баз данных на основе использования информации табличного вида
- •8.1. Постановка задачи разработки модели методики
- •8.2. Операторная модель преобразования информации табличного вида к реляционным базам данных
- •8.3. Исследование методики преобразования информации табличного вида в реляционные базы данных
- •8.4. Исследование динамических свойств функционирования системы.
- •8.5. Исследование временных свойств системы.
- •Упражнения и вопросы для самоконтроля
- •Список литературы
Исходные таблицы по своей природе удовлетворяют требованиям совместимости, а по форме – нет.
Такого рода ситуации возникают когда:
- заголовки одинаковых по смыслу столбцов у объединяемых таблиц отличаются;
- порядок столбцов первой таблицы – операнда не совпадает с порядком столбцов второй таблицы – операнда.
В качестве 1-го операнда для иллюстрации ситуации используем таблицу, аналогичную отношению, приведенному в табл. 7.1.1. В формате Microsoft Access эта таблица приведена на рис. 7.1.3.
Рис. 7.1.3. Первый операнд операции объединения в формате Microsoft Access
В качестве 2-го операнда используем таблицу, приведенную в формате Microsoft Access на рис. 7.1.4.
Рис. 7.1.4. Второй операнд операции объединения в формате Microsoft Access.
Как видно из рис. 7.1.4, заголовки 2-го операнда не совпадают с заголовками 1-го операнда. Кроме того, порядок столбцов 2-го операнда не совпадает с порядком столбцов 1-го операнда. Однако визуальный анализ содержимого 1-го и 2-го операндов (обеих таблиц) позволяет сделать вывод о том, что структуры этих таблиц совпадают, и каждому столбцу 1-й таблицы находится соответствующий столбец 2-й таблицы. В связи с этим администратор БД может принять решение о том, в каком порядке содержимое столбцов 2-й таблицы добавлять к содержимому 1-й таблицы. Свое решение администратор может отразить в бланке запроса на добавление. Соответствующий бланк запроса в системе Microsoft Access приведен на рис. 7.1.5.
Рис. 7.1.5. Бланк запроса на объединение двух таблиц
Таблица, в которую предполагается добавить записи, указывается в меню Запрос/Добавление. В нашем случае указана таблица c именем “Список0”. Из рисунка видно, каким образом установлено соответствии между полями таблиц “Список3” и “Список0”. Соответствующий запрос в режиме SQL можно просмотреть с помощью меню Вид/Режим SQL. Этот запрос, который может быть использован с незначительными модификациями в любой СУБД, выглядит следующим образом:
INSERT INTO Список0 (Фамилия, [Год рождения], Город )
SELECT Список3.[Участник конференции], Список3.[Дата рождения], Список3.[Откуда прибыл]
FROM Список3;
Из анализа запроса можно сделать заключение о том, каким образом установлено соответствие между полями двух таблиц.
Результат выполнения запроса – это таблица “Список0” с добавленными записями. Она приведена на рис. 7.1.6.
Рис.7.1.6. Результат выполнения запроса на объединение
Как видно из рисунка, результат выполнения запроса ничем не отличается от результата выполнения запроса, приведенного на рис. 7.1.1. Таким образом, в результате формирования описанного запроса получен требуемый результат.
Как следует из сказанного выше, рассмотренная проблема несложно решается, если администратор БД способен принять решение о том, каким образом установить соответствие между столбцами объединяемых таблиц. Очень часто такое решение не представляет существенных проблем, т.к. изначально, как правило, предполагается объединение таких таблиц, для которых это имеет смысл и суть столбцов очевидна.
Теоретически можно выявить соответствующие столбцы и автоматически. Но для этого нужно с помощью соответствующих программных средств анализировать семантику содержимого столбцов, что сложно и практически неприемлемо.