C++ Builder: работа с файлами и базами данных
Download 58 Kb.
|
C Builder работа с файлами и базами данных
C++ Builder: работа с файлами и базами данных1. Borland C++ Builder: работа с файлами и базами данных Attribution-ShareAlike (by-sa) — Лицензия «С указанием авторства — Копилефт» stanislav.katsko.name Informatics.ssga.ru 2. 1. Введение в системы управления базами данных 3. База данных – совокупность данных, которые определенным образом организованы и связаны друг с другом. Модель базы данных – способ организации БД и связей в них. Таблица БД – набор записей фиксированной структуры, где каждая запись описывает определенный информационный объект. СУБД – технологическая программная система, предназначенная для обработки данных, предоставляющая пользователю средства просмотра и редактирования этих данных. 4. Данные в файлах неупорядочены. Файловые методы доступа – на низком уровне. Сложно организовать промежуточное хранение сведений из файла. Сложно вносить изменения в файл, содержащий структурированную информацию. Обращение к записи в файле – временной фактор. Сложная организация многопользовательской работы. Нет средств связи между файлами. Недостатки файлового подхода 5. Информационное правило: информация в реляционной БД – на логическом уровне. Правило гарантированного доступа: любой элемент доступен по имени таблицы, первичному ключу и имени поля. Правило систематической обработки нулевых значений : не заданные значения должны корректно обрабатываться СУБД. Правило ведения динамического каталога : описание БД представляется на логическом уровне так же, как и обычные данные. 12 правил Кодда 6. Правило всеобъемлющего подмножества языка работы с данными : СУБД поддерживает формальные языки с вычисляемыми выражениями и определенным синтаксисом. Правило обновления представлений . Правило высокоуровневой вставки, обновления и удаления : концепция работы не с отдельной записью, а с множеством записей. Правило физической независимости данных : способы доступа к данным и способы их хранения не влияют на логику их обработки. 12 правил Кодда 7. Правило логической независимости данных : модификация структуры таблиц не влияет на логику их обработки. Правило независимой целостности : а) сущностная целостность – не должно быть первичных ключей с нулевыми значениями; б) ссылочная целостность – для каждого внешнего ключа в БД должна существовать запись с соответствующим первичным ключом. Правило независимого распространения . Правило отсутствия побочных эффектов . 12 правил Кодда 8. Общий вывод ( нулевое правило ): любая система, которая названа реляционной системой обработки данных, должна управлять данными исключительно за счет реляционных механизмов. 12 правил Кодда 9. 2. Принципы проектирования баз данных 10. Нормализация базы данных – формальная технология, позволяющая преобразовать базу данных к одной из нормальных схем (или нормальных форм). Нормальная схема – совокупность требований к организации взаимосвязанных реляционных таблиц, обеспечивающая минимальную избыточность информации в БД. Первичный ключ – элемент данных, уникальный для каждой записи и однозначно её идентифицирующий. Технология нормализации 11. Первая нормальная форма (1NF) – в записях должны быть выделены первичные ключи и исключено дублирование. Вторая нормальная форма (2NF) – все вторичные значения в записях должны полностью зависеть от первичного ключа. Третья нормальная форма (3NF) – сами вторичные значения взаимно независимы. Технология нормализации 12. Проектирование базы данных – описание ее физических и логических элементов, создание структуры таблиц, организация взаимосвязей между ними, создание запросов для отбора и редактирования данных в наборах базовых таблиц. Общая идея проектирования – разделение (расщепление) таблиц так, чтобы автономная информация хранилась в отдельной таблице (справочнике). Проектирование баз данных 13. Проектирование баз данных 14. Проектирование баз данных 15. 1. Подготовка исходных данных. 2. Снижение размерности – первая нормальная форма. Этапы нормализации 16. 3. Выделение ключевых полей – вторая нормальная форма. 4. Выделение вторичных связанных признаков – третья нормальная форма. Этапы нормализации 17. 3. Технологии работы с файлами 18. Файл – совокупность данных на внешнем носителе, идентифицируемая именем и дополнительными атрибутами. Типизированный файл содержит последовательность значений данных, относящихся к определенному типу. Нетипизированный файл – линейная последовательность байтов, смысл которой определяет только программист. Типизированные и нетипизированные файлы 19. Открытие файла: а) на чтение б) на запись в) на чтение-запись Обработка файла. Закрытие файла Файловые операции 20. Для работы с файлом создается переменная, которая хранит системное значение, идентифицирующее файл. Эта переменная связывается с полным именем файла. Файл открывают обращением к стандартной процедуре или функции. Обработку содержимого файла ведут с помощью файловой переменной. Файл закрывают. Общая технология работы с файлами в C++ Builder 21. 4. Технология работы с типизированными файлами 22. Для обработки файлов используют библиотеку ввода-вывода stdio.h Файловая переменная описывается с помощью типа данных FILE Пример: FILE* fi; Объявление файловой переменной 23. Необходимо определить способ открытия, задать местонахождение файла и связать с ним файловую переменную. Функция fopen() : FILE* fopen(const char *filename, const char *mode); Первый параметр – путь к файлу Второй параметр – способ открытия файла. FILE* fi; fi = fopen("data.txt","rt"); if (fi ==0) // обработка ошибки … Открытие файла 24. Функции ввода fread() и вывода fwrite() Имеют одинаковый список параметров. size_t fread(void *ptr, size_t size, size_t n, FILE *stream); size_t fwrite(void *ptr, size_t size, size_t n, FILE *stream); Обмен данными с файлом 25. Команда закрытия файла: fclose(имя-файловой-переменной); Закрытие файла 26. 5. Объектные технологии работы с файлами 27. Стандартная библиотека stream.h Поток ввода-вывода – объект, который организует побайтовый обмен данными между программой и внешними устройствами хранения. Потоки, как правило, используют временные буферы в оперативной памяти. 28. Для ввода данных используется оператор << , для считывания данных из потока используется оператор >> . В левой части – имя потока, в правой – либо данные для записи, либо имя переменной, в которую должны быть введены данные. cout << x << ";"<< y; В поток вывода cout помещается значение переменной x, строка ";" и значение переменной y. cin >> n; В переменную n помещается вводимое пользователем значение. Стандартная библиотека stream.h 29. Чтобы использовать операторы >> и << , нужно подключить заголовочный файл fstream: #include 30. В файле 3 значения. Загрузим их в программу: char s[1024]; int n; double x; fi >> n >> x >> s; Закроем файл методом close() : fi.close(); Файловый потоковый обмен 31. Для вывода данных используем класс ofstream : ofstream fo; fo.open("info.txt"); char *s = "привет"; int n = 20; double x = 2.81; fo << n << " " << x << " " << s; fo.close(); Результат – строка: 20 2.81 привет Файловый потоковый обмен 32. Базовый класс TStream (поток). Для работы с файлами – класс TFileStream. Пример открытия файла в режиме "для чтения": TFileStream * fi = new TFileStream("myfile.txt",Sysutils::fmOpenRead); В прикладном коде для чтения и записи данных используются методы ReadBuffer() и WriteBuffer() Пример: TRect rc; fi->ReadBuffer(&rc,sizeof(rc)); Закрытие файла – метод Free() Объектная технология потокового обмена 33. 6. Файл-серверные технологии 34. Файл-серверная архитектура приложения – архитектура, в которой вся деятельность по выполнению прикладной логики и обработке баз данных происходит на компьютерах пользователей. Сама же база данных может храниться как на компьютерах пользователей, так и на файловом сервере в сети. 35. Ход работы файл-серверного приложения: 1. Пользователь обращается к набору данных через элементы интерфейса. 2. Приложение формирует запрос к СУБД на языке SQL. 3. Запрос отправляется к программе-посреднику (системный драйвер СУБД). 4. СУБД обрабатывает запрос. 5. Драйвер переводит полученный от СУБД набор данных в вид, понятный приложению. Контролирует завершение всего процесса, сохранность передаваемой информации. Технология работы с файл-серверной СУБД 36. Набор компонентов BDE в рамках библиотеки VCL – программная прослойка между создаваемым приложением и файл-серверными драйверами. Поддерживается взаимодействие с драйверами для файл-серверных СУБД (dBase, FoxPro, MS Access) и драйверами технологии ODBC. Технология Borland Data Engine 37. Набор данных – набор записей фиксированной структуры, составленных из одинакового набора полей. Реализован в библиотеке VCL в виде базового класса DB.TDataSet. На логическом уровне представляет классическую таблицу базы данных. Физически может быть копией реальной таблицы БД или результатом работы запроса SQL. Технология Borland Data Engine 38. Для доступа к таблице БД применяется компонент TTable, наследник класса TBDEDataSet. Технология Borland Data Engine 39. Организация взаимодействия с файл-серверной БД осуществляется в несколько этапов. 1. Создается БД и таблицы в ней, формируется внутренняя структура таблиц, задаются перекрестные ссылки. 2. БД регистрируется в службе BDE. 3. В проекте создается модуль данных, в который включаются компоненты, ответственные за взаимодействие с СУБД. Технология Borland Data Engine 40. 4. Организуется доступ к полям таблиц в программном коде приложения. 5. На форму добавляются компоненты, ответственные за визуализацию данных из таблиц базы. 6. Организуется работа с содержимым БД с помощью команд языка C++. Технология Borland Data Engine 41. 1. Создание таблицы БД. File – New – Table. 2. Выбор форматов таблицы. 3. Описание каждого поля таблицы: порядковый номер, имя, тип хранимых в поле данных, длина поля в символах для текстовых данных. 4. Сохранение структуры таблицы. File – Save as. Открытие таблицы: File – Open. Вернуться в режим проектирования: Table – Restructure. Технология создания БД и таблиц 42. Индекс записи БД – связывает значение ключевого поля записи с ее физическим местонахождением в базе. Благодаря системе индексов доступ к элементам таблицы ускоряется. Первичный индекс – индекс, соответствующий ключевому полю. Вторичный индекс – индекс, созданный для неключевого поля. Технология создания БД и таблиц 43. 7. Технологии создания файл-серверных приложений 44. 1. Формируется пустая заготовка приложения VCL. 2. Создается модуль данных, в котором группируются невизуальные компоненты взаимодействия с СУБД. 3. Организуется доступ к таблице БД. 4. Настраивается список полей таблицы. 5. Действия по абстрагированию пользовательского интерфейса от СУБД. 6. Формируется пользовательский интерфейс. 7. Программируется детальная обработка набора данных. Этапы создания приложения 45. File – New – Other. Выбрать Data Module в категории C++Builder Files. Создание модуля данных 46. 1. Компонент TTable в категории BDE палитры инструментов, щелкнуть на пространстве модуля данных. 2. Для доступа к СУБД необходимо настроить свойство DatabaseName компонента TTable . Выбираем имя СУБД. 3. Нужную таблицу описывает свойство TableName . Заносим в это свойство имя таблицы. 4. Заносим в свойство Active значение True. Таблица станет активной. Доступ к таблице БД 47. Обращаться из программы к базе данных с запросом SQL позволяет компонент TQuery . Запрос получает от СУБД не содержимое реально существующей таблицы, а временный набор записей – результат работы выражения SQL. Свойство SQL компонента TQuery содержит текст команды SQL. Отладка кода SQL выполняется в окне SQL Window. Создание запросов 48. Динамическое поле – поле, точно и однозначно соответствующее в программе физическому полю базы данных. Постоянное поле (псевдополе) – поле, которое может соответствовать физическому полю таблицы БД или существовать виртуально (например, вычисляться на основе сторонних величин). Поля наборов данных 49. Источник данных – компонент системы C++Builder, предназначенный для организации взаимодействия между прикладной программой и конкретной базой данных. Источник данных делает приложение независимым от конкретной СУБД и предоставляет стандартный интерфейс их взаимодействия. Компонент TDataSource из категории палитры инструментов Data Access . Источники данных 50. Используют компоненты из категории палитры инструментов Data Controls . Если в проекте создан отдельный модуль данных, в котором хранятся компоненты TTable , TDataSource и другие, то его сначала надо сделать доступным в модуле формы. File – Use Unit – выбрать модуль данных проекта в открывшемся диалоговом окне. Создание пользовательского интерфейса 51. Пользовательская таблица данных – компонент TDBGrid . В его свойстве DataSource указывается ссылка на источник данных TDataSource . Отображение содержимого исходной таблицы БД в компоненте TDBGrid происходит автоматически на этапе проектирования. Создание пользовательского интерфейса 52. Для обработки объемных таблиц используют элемент TDBNavigator . Он связывается с источником данных через свойство DataSource , а синхронизация его работы с таблицей TDBGrid выполняется автоматически. Навигатор отображает на форме кнопки перемещения и редактирования . Логические значение отображают с помощью компонента-флажка TDBCheckBox , двоичные данные – поле TDBMemo или компонента TDBImage . Создание пользовательского интерфейса http://www.slideshare.net/esperu/5-c-builder Download 58 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling