
- •А.В. Брешенков
- •Проектирование баз данных на основе информации табличного вида
- •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.3. Основные требования к средствам преобразования информации табличного вида в реляционные таблицы
Для того, чтобы обеспечить возможность преобразования информации табличного вида в таблицы реляционных БД, ее, прежде всего, необходимо привести к реляционному представлению данных. Реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
каждый элемент таблицы - один элемент данных;
все столбцы таблицы однородные, т.е. все элементы в столбце имеют одинаковый тип;
каждый столбец имеет уникальное имя;
одинаковые строки в таблице отсутствуют;
порядок следования столбцов и строк может быть произвольным [1].
Из сказанного выше об информации табличного вида следует, что этими свойствами она в общем случае не обладает. Более того, заголовки столбцов исходных таблиц могут располагаться на нескольких строках, в заголовках столбцов могут присутствовать недопустимые с точки зрения БД символы (".","!" и др.), элементы данных могут располагаться на нескольких строках. Все это недопустимо для реляционных таблиц. В связи с этим первым необходимым шагом методики преобразования в файлы реляционных баз данных является генерация таблиц, обладающих перечисленными свойствами на основе исходных таблиц. Для решения этой проблемы необходимо разработать формальную модель информации табличного вида, формальную модель реляционных таблиц и на основе их использования разработать средства, обеспечивающие преобразование формы представления данных от одного вида к другому. Естественное пожелание, чтобы эти средства были автоматическими, в крайнем случае, автоматизированными.
В качестве исходного вида информации оправданно принять текстовые файлы или электронные таблицы. Если информация представлена на бумаге, ее можно отсканировать и распознать в каком-либо текстовом редакторе и получить текстовые файлы. Если информация представлена в виде электронных таблиц, проблемы преобразования не снимаются, и поэтому иногда имеет смысл электронные таблицы преобразовать в текстовые файлы. Конечно, проблема преобразования информации табличного вида, которая представлена в формате электронных таблиц, в файлы БД имеет свою специфику, поэтому средства преобразования информации должны ее учитывать эту специфику.
Программа-обработчик текстового файла должна в первую очередь выделить заголовки таблицы. При этом необходимо:
выделить строки текста, содержащие заголовки;
исключить подзаголовки (если они есть) и преобразовать их в заголовки или дать возможность сделать это пользователю;
преобразовать многострочные заголовки в однострочные заголовки;
обнаружить недопустимые с точки зрения БД символы;
сформировать строку из заголовков таблицы;
запомнить позиции столбцов для использования их в дальнейшем при выделении данных.
Далее программа должна выделять данные из информации табличного вида. При этом необходимо:
определять символы разделения строк таблицы или дать возможность сделать это пользователю;
преобразовывать многострочные данные в однострочные данные;
обнаруживать несоответствия типов данных, относящихся к одному столбцу, и давать возможность пользователю редактировать данные или откладывать записи в отдельный файл для последующей обработки;
располагать данные, относящиеся к одной записи таблицы, в одну строку в позиции, соответствующие запомненным ранее позициям заголовков столбцов;
В процессе формирования целевого текстового файла необходимо обеспечить включение символов-разделителей столбцов, которые впоследствии будут использованы при распознавании таблиц в БД. Для организации этого процесса, вероятно, потребуются несложные лингвистические средства для управления заданием. Кроме того, потребуются интерактивные средства для разрешения проблем преобразования пользователем, в случае если решение их не очевидно. В программе необходимо предусмотреть интерактивное средство обработки отложенных записей.