Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Загрузка в базу данных реляционных таблиц из текстового файлаСодержание книги
Поиск на нашем сайте Рассмотрим случай, когда требования к содержанию полей таблицы минимальны. Тогда можно совместить описание атрибутов таблицы с загрузкой данных. Это будет начальное описание атрибутов таблицы. В дальнейшем средствами работы со справочником базы данных можно существенно дополнить или изменить параметры атрибутов, а также дополнить описание таблицы множеством параметров. Данное решение определяет требование к формату представления таблицы для начальной загрузки. Исходные данные для загрузки будем представлять в виде текстового файла. Хорошо известен текстовый формат CSV(от англ. CommaSeparated Values — значения, разделенные запятыми), предназначенный для представления табличных данных. Каждая строка файла — это одна строка таблицы. Значения отдельных колонок разделяются разделительным символом (delimiter) — запятой (,). Однако большинство программ вольно трактует стандарт CSV и допускает использование иных символов в качестве разделителя. В полях таблицы с текстовой информацией часто встречаются запятые. Запятые могут использоваться как десятичный разделитель. Замена разделителя на точку с запятой обычно требует поместить содержимое полей таблицы в обрамляющие двойные кавычки (“); если в значении встречаются кавычки, они представляются в файле в виде двух кавычек подряд. Другим решением является использование в качестве разделителей символов табуляции (0x0D). В любом случае требуется программно проверять количество разделителей в каждой строке текстового файла. Строки разделяются парой символов CR LF (0x0D 0x0A). На сегодняшний день под CSV, как правило, понимают набор значений, разделенных какими угодно разделителями, в какой угодно кодировке с какими угодно окончаниями строк. Определим текстовый файл (*.txt), представляющий таблицу следующим образом: • разделителями полей таблицы в файле являются табуляторы (0x09); • строки разделяются парой символов CR LF (0x0D 0x0A) • в первой строке файла дается кодировка полей таблицы, задаются коды полей через разделители; • во второй строке дается русское название всех полей таблицы через разделители (названия столбцов таблицы); • далее идут строки, соответствующие записям таблицы, где даются значения полей через разделители. Пустым значениям соответствуют два разделителя, идущие подряд; • первым параметром каждой строки таблицы указывается номер строки. Для номера строки резервируем код поля P001; • в каждой строке на втором месте стоит название таблицы; • название таблицы считаем обычным полем, для которого резервируем код P002; • за названием поля, в котором будет стоять имя таблицы, резервируем стандартное название “Таблица”. Включение имени таблицы в качестве значения поля “Таблица” позволяет рассматривать имя таблицы наравне с другими полями. Этот подход упрощает формат запросов на поиск информации. В этом случае можно обращаться с именем таблицы как с обычным полем и включать его значение в поисковый запрос. Согласно свойствам словарного представления для каждой таблицы ее имя будет храниться в единственном числе. Поэтому добавление имени таблицы в каждое поле не приводит к сильной избыточности при хранении информации. Пример текстового файла, удовлетворяющего перечисленным требованиям. P001 P002 P003 P004 NN Таблица Код вида Вид обучения обучения 1 Кодировка видов обучения А Итоговая аттестация, выпускные экзамены 2 Кодировка видов обучения Г Гос. экзамены и защита 3 Кодировка видов обучения Д Выпускная работа. Диссертация 4 Кодировка видов обучения К Каникулы 5 Кодировка видов обучения П Другие практики, НИР 6 Кодировка видов обучения Т Теоретическое обучение 7 Кодировка видов обучения У Учебная практика 8 Кодировка видов обучения Э Экзаменационная сессия Текстовый файл, подготовленный в таком виде, содержит информацию: • кодировку атрибутов и названия атрибутов. Данная информация должна быть загружена в справочник БД; • данные (значения атрибутов) для загрузки в базу данных. Эти две задачи (загрузку в справочник и загрузку в базу данных) можно рассматривать независимо. Остановимся на решении второй задачи — загрузка данных в базу данных. Для загрузки записей в базу данных может быть использована функция прямого управления базой данных. Функция прямого управления базой данных имеет вид int DWPROC(SLV *slkd,SLV *slin,SLV *slout,SLV *slerr, void (*drawProgress)(int a)) где • slkd — словарь действий; • slin — словарь условий; • slout — словарь результата; • slerr — словарь ошибок; • drawProgress — функция для отображения процента выполнения. При успешном выполнении функции код возврата = 0. Пример обращения к функции: SLV s0,s1,s2,s3; j=DWPROC(&s0,&s1,&s2,&s3,drawProgress); Функция drawProgress должна быть описана в вызывающей программе. Если объемы данных невелики и отображение процента выполнения в вызывающей программе не предусмотрено, то функцию прогресса можно определить в виде: void drawProgress(int prc) {; } Одним из вариантов загрузки записей в базу данных является использование словаря slkd. При этом остальные словари должны быть пустыми. Имеется несколько форматов подготовки данных для помещения в словарь slkd. Основным форматом для загрузки новых записей является I.nnnnnn.kkk.PNNN= <значение> где • “I.” команда вставки; • nnnnnn — число, выровненное до заданного размера добавлением нулей в начало, для каждой записи должно быть свое число; • kkk — номер позиции, определяет возможность ввода информации в постреляционную базу данных; • PNNN — кодировка атрибута. Числа nnnnnn для каждой записи должны быть уникальными, конкретное значение числа nnnnnn безразлично. Например, для загрузки в БД двух записей можно включить в словарь slkd следующие строки: 001.001661.046.P013=Хорошев Артём Алексеевич 001.001661.047.P011=19 001.001661.048.P013=Шелопугин Виталий Дмитриевич 001.001661.049.P011=20 001.001661.050.P013=Щербакова Анастасия Александровна 001.001661.051.P011=21 001.001661.052.P013=Яркиев Данил Маратович 001.000568.002.P002=2019 / 2020 001.000568.003.P003=Космический 001.000568.004.P004=К1 001.000568.005.P005=Уткин Г.С. 001.000568.006.P006=Программирование и основы алгоритмизации 001.000568.007.P007=К1-21Б что равносильно включению следующих строк: 001.000001.046.P013=Хорошев Артём Алексеевич 001.000001.047.P011=19 001.000001.048.P013=Шелопугин Виталий Дмитриевич 001.000001.049.P011=20 001.000001.050.P013=Щербакова Анастасия Александровна 001.000001.051.P011=21 001.000001.052.P013=Яркиев Данил Маратович 001.000002.002.P002=2019 / 2020 001.000002.003.P003=Космический 001.000002.004.P004=К1 001.000002.005.P005=Уткин Г.С. 001.000002.006.P006=Программирование и основы алгоритмизации 001.000002.007.P007=К1-21Б или строк с другими значениями позиционирования: 001.000001.086.P013=Хорошев Артём Алексеевич 001.000001.095.P011=19 001.000001.062.P013=Шелопугин Виталий Дмитриевич 001.000001.035.P011=20 001.000001.066.P013=Щербакова Анастасия Александровна 001.000001.087.P011=21 001.000001.059.P013=Яркиев Данил Маратович 001.000002.054.P002=2019 / 2020 001.000002.085.P003=Космический 001.000002.026.P004=К1 001.000002.005.P005=Уткин Г.С. 001.000002.044.P006=Программирование и основы алгоритмизации 001.000002.031.P007=К1-21Б Во всех случаях произойдет загрузка информации в первый блок и система сама присвоит номера записей. Если загрузку данных необходимо выполнить в другой блок, то в словарь slkd добавляется команда I.P000=bbb — требование загрузить в заданный блок, где bbb — номер блока. Номер блока указывается выровненным трехзначным числом в диапазоне от 1 до 900. Можно задать одновременную загрузку в один или несколько блоков, используя следующий формат представления значения атрибута: I.bbb.nnnnnn.kkk.PNN где bbb – номер блока.
|
||
|
Последнее изменение этой страницы: 2021-07-19; просмотров: 106; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.008 с.) |