p align="left">InterBase дает возможность использовать функции, определяемые пользователем (User Defined Function, UDF), в которых могут реализовываться функциональности, отсутствующие в стандартных встроенных функциях InterBase (вычисление максимума, минимума, среднего значения, преобразование типов и приведение букв к заглавным). Например, в UDF можно реализовать извлечение из значения даты номера дня, года; определение длины символьного значения; усечение пробелов; разные математические алгоритмы и т. п. Функция пишется на любом алгоритмическом языке, позволяющем разрабатывать DLL (библиотеки динамического вызова), например, на Object Pascal. InterBase может посылать уведомления клиентским приложениям о наступлении какого-либо события. Одновременно работающие приложения могут обмениваться сообщениями через сервер БД, вызывая хранимые процедуры, в которых реализована инициация нужного события. Для обеспечения быстроты выполнения запросов и снятия с клиентского приложения необходимости такие запросы выдавать в БД можно определить виртуальные таблицы (или просмотры), в которых объединяются записи из одной или более таблиц, соответствующих некоторому условию. Работа с просмотром из клиентского приложения ничем не отличается от работы с обычной таблицей. Поддерживает просмотр сервер, реагируя на изменение данных в БД. Просмотры могут быть изменяемыми или не допускающими внесения в них изменений. InterBase был разработан в начале 80-х годов группой разработчиков из американской корпорации DEC. В дальнейшем разработка данного продукта велась независимыми компаниями InterBase Software и впоследствии слившейся с ней Ashton-Tate. Borland приобрела права на InterBase у Ashton-Tate после слияния с нею. InterBase активно используется в государственном и военном секторах США, что, видимо, и стало преградой для его продвижения в Россию. Интерес к этому серверу возрос только в последнее время в связи с включением его локальной (а начиная с Delphi 3 и 4-пользовательской) версии в состав Delphi Client/Server Suite и Delphi Enterprise. Внимание разработчиков БД InterBase привлек, во-первых, потому, что это «родной» продукт Borland (а средства разработки приложений этой компании давно зарекомендовали себя с положительной стороны), во-вторых, потому, что InterBase весьма прост в установке, настройке и администрировании по сравнению с другими SQL-серверами, и в-третьих, потому, что он обладает прекрасными функциональными возможностями. Firebird выбран мной в качестве сервера из-за того, что он бесплатен и более функционален, чем Interbase, а также хорошо совместим с новыми операционными системами Windows Vista и Server 2008. Используемая мною версия это наиболее стабильная на данный момент - 2.0.3. 2.4 Построение даталогической модели Предметная область, выбранная мною для данной курсовой работы - информация о клиентах, дисках и выдаче дисков небольшого видеопроката. Целью данной работы является автоматизация обработки данных по клиентам с целью упрощения работы персонала с клиентами. При покупке или выдаче на прокат товара клиенту выдаётся чек. Количество товара на складе соответственно уменьшается. Также в видеопрокате существуют скидки постоянным клиентам в зависимости от количества покупок (сделок). В процессе реализации задачи при разработке структуры для хранения данных, первым объектом выступают информация о товаре (дисках или кассетах) и клиентах. В нашем случае БД будет состоять из 3 таблиц. В таблице MOVIE будут содержаться сведения о фильмах (штрих-код, количество дисков, название, режиссер и жанр). В таблице CLIENT будут храниться все нужные сведения о клиентах - с указанием полных паспортных данных. Третья таблица DEAL будет содержать сведения о сделках (дата сделки, сумма с учетом скидки (если она есть) и т.д.) Таким образом, таблица DEAL будет центральной. Она должна будет иметь уникальной поле, которое будет однозначно определять каждую сделка. В дальнейшем по этому полю мы создадим первичный ключ, чтобы СУБД могла быстро найти нужную запись. Каждой записи в таблице MOVIE будет соответствовать произвольное количество записей в таблице DEAL (такая связь в терминологии БД называется связью один ко многим), т. е. одно из её полей будет содержать уникальный идентификатор фильма. В таблице DEAL будет также ссылка на уникальный идентификатор клиента из таблицы CLIENT. При появлении очередной записи в таблице DEAL должно меняться значение поля KOL (количество) в таблице MOVIE. Таблица Фильмы (MOVIE): |
ID | Целый | INTEGER | Уникальный идентификатор фильма. По этому полю создается первичный ключ. (штрих код диска) | | NAME_FILM | Строковый | VARCHAR 50 | Название фильма (индексное поле) | | DIRECTOR | Строковый | VARCHAR 50 | Режиссер | | GANR | Строковый | VARCHAR 10 | Жанр (набор фиксированных значений: комедия, триллер, боевик и т. д.) Индексное поле | | KOL | Целый | INTEGER | Количество на складе | | MONEY | Целый | INTEGER | Цена | | DESCRIPTION | Строковый | VARCHAR 250 | Краткое описание фильма | | |
Таблица Клиенты(CLIENT): |
ID_C | Целый | INTEGER | Уникальный идентификатор клиента (первичный ключ) | | FIO | Строковый | VARCHAR 50 | ФИО (индексное поле) | | PASPORT | Строковый | VARCHAR 150 | Паспортные данные | | |
Таблица Заказы(DEAL): |
ID_D | Целый | INTEGER | Уникальный идентификатор (первичный ключ) | | ID_M | Целый | INTEGER | Код фильма из поля ID таблицы MOVIE | | CL_ID | Целый | INTEGER | Код клиента из поля ID_C таблицы CLIENT | | DEN | Вещественный | NUMERIC | Цена с учетом скидки | | D_D | Дата | DATE | Дата составления. По этому полю нужно создать индекс для сортировки. | | VZVR | Символьный | CHAR 1 | Код возврата. По умолчанию `N' | | |
Таблица Log |
WHEN | Дата | TIMESTAMP | Дата редактирования(текущая дата) | | USER | Строковый | VARCHAR(20) | Пользователь | | ACTION | Строковый | CHAR(3) | Действие, выполняемое пользователем | | | 3. Разработка приложения3.1 Выбор среды реализацииСреда разработки Borland Delphi. Приложение-клиент разрабатывается при помощи программных средств Borland Delphi, используя набор компонентов Interbase Express (IBX). Эти компоненты используют функции Intebase API, т.е. обращаются к серверу непосредственно. VCL-библиотека классов среды проектирования Delphi предоставляет ряд классов, позволяющих быстро и эффективно разрабатывать различные приложения баз данных.Эти классы представлены следующими группами: · компоненты для доступа к данным, реализующие: o доступ через машину баз данных BDE (Borland Database Engine), предоставляющую доступ через ODBC-драйверы или через внутренние драйверы машины баз данных BDE (компоненты страницы BDE-палитры инструментов);o доступ через ADO-объекты (ActiveX Data Objects), в основе которого лежит применение технологии OLE DB (компоненты страницы ADO);o доступ к локальному или удаленному SQL-серверу InterBase (компоненты страницы InterBase);o доступ посредством легковесных драйверов dbExpress;o доступ к БД при многозвенной архитектуре (компоненты страницы DataSnap);· визуальные компоненты, реализующие интерфейс пользователя;· компоненты для связи источников данных с визуальными компонентами, предоставляющими интерфейс пользователя;· компоненты для визуального проектирования отчетов.Компоненты для доступа к серверу InterBase: · TIBDatabase -- предназначен для подключения к базе данных. Основные методы: Open, Close.· TIBTransaction -- предназначен для явного управления транзакцией. Основные методы: StartTransaction, Commit, Rollback, CommitRetaining, RollbackRetaining. · TIBTable -- аналог стандартного TTable. Компонент предназначен для получения данных из одной таблицы или представления базы данных. Основное свойство -- TableName. Основные методы: Open, Close. Набор данных, полученных при помощи TIBTable, является редактируемым, если речь идет о таблице базы данных или обновляемом представлении. Компонент совместим с визуальными компонентами.· TIBQuery -- аналог стандартного TQuery. Компонент предназначен для получения данных на основе SQL-запроса. Этот набор данных не всегда будет редактируемым, зачастую необходимо использовать дополнительный компонент TIBUpdateSQL, чтобы иметь возможность редактировать полученные сведения. Основное свойство -- SQL. Основные методы: Open, Close, ExecSQL. Компонент совместим с визуальными компонентами.· TIBDataSet -- предназначен для получения и редактирования данных, является потомком стандартного класса TDataSet и полностью совместим со всеми визуальными компонентами. Основные методы: Prepare, Open, Close, Insert, Append, Edit, Delete, Refresh.· TIBStoredProc -- предназначен для выполнения хранимых процедур и получения набора данных на основе результатов выполнения процедуры. Получаемый набор данных является нередактируемым. Компонент совместим с визуальными компонентами. Основное свойство -- StoredProcName. Основной метод -- ЕхесРгос.· TIBUpdateSQL -- аналог TUpdateSQL. Используется в паре с TIBQuery и предназначен для создания модифицируемых наборов данных. Основные свойства: DeleteSQL, InsertSQL, ModifySQL и RefreshSQL.· TIBSQL -- предназначен для выполнения SQL-запросов. В отличие от TIBQuery или TIBDataSet, TIBSQL не имеет локального буфера для набора данных и несовместим с визуальными компонентами.· TIBDatabaseInfo -- позволяет получить системную информацию о некоторых свойствах базы данных, соединения и сервера. Например, UserNames -- список пользователей, подключенных к базе данных, PageSize -- размер страницы базы данных.· TIBSQLMonitor -- предназначен для перехвата и отслеживания всех запросов, которые выполняют приложения, использующие IBX.TIBEvents -- предназначен для получения пользовательских событий InterBase. Основное свойство -- Events. Основные методы: RegisterEvents, UnregisterEvents.3.2 Особенности разработки приложенияС учетом назначения функциональной спецификации, а также с учетом возможности тяжелых ошибок в этом документе, функциональная спецификация должна быть очень точной и не противоречивой и по возможности приближаться к математическим формулировкам, однако это не означает что она должна быть формализована настолько, что по ней можно было бы автоматически генерировать код программы. Это означает лишь то, что она должна базироваться на понятиях, построенных как математические объекты, и утверждениях, однозначно понимаемых и заказчиком и разработчиками. Достаточно часто функциональная спецификация формализуется на естественном языке, тем не менее использование математических и других формализованных методов при разработке функциональной спецификации весьма приветствуется. В целом функциональная спецификация состоит из трех основных частей: 1. Описание внешней информационной среды по отношению к программному средству; 2. Определение функций ПС. Чаще всего такие функции рассматриваются на множестве состояний внешней информационной среды;
Страницы: 1, 2, 3, 4
|