Справочник в виде базы данных. Основные определения база данных

Требуется создать оболочку для работы офлайн с различными видами справочников.

Все справочники делятся на два вида – базы данных и справочники в формате html.

Сами файлы справочников (структуру) необходимо разработать исходя из моих пожеланий. Т. е. получается, что нужно разработать оболочку и формат файла, который «понимается» оболочкой.

Оболочка должна уметь подключать эти справочники, производить по ним поиск, создавать выборки из базы, делать экспорт записей, сортировать записи, редактировать, вносить собственные записи и изменения. Также в оболочке предусмотрена работа классификатора записей, создание собственного классификатора (дальше называется «группы пользователя»).

В качестве дополнительных возможностей планируется разработка модуля печать адресных данных на конверты, создание электронного ежедневника, калькулятора.

Предназначение оболочки – работа с большим количеством разнообразных баз данных. Основная база - база данных предприятий России.

Справочник в виде базы данных.

Основа такого справочника - это таблицы данных. Основная таблица и подключаемые таблицы (по такому же принципу, как и в access).

Например, есть основная таблица со следующими полями:

Название предприятия

Код города

Автозаправка

Екатеринбург, Ленина, 1

Омск, Мира, 44

Москва, торговая, 23

Поля, отмеченные в примере значком *, являются полями-индексами, т. е. существует еще две таблицы, которые содержат расшифровку этих индексов.

Индекс региона

Город Москва

Индекс города

Расшифровка

Екатеринбург

В оболочке, при работе со справочником выдаются уже расшифрованные данные. Эти таблицы индексов делаются для сокращения объема справочника. Ведь, например, запись «Свердловская область» может встречаться в базе семьдесят-восемьдесят тысяч раз.

Приведенный выше пример представлен для ознакомления, на самом деле таблицы больше и количество полей больше.

Для каждого такого справочника есть таблица «классификатора записей», т. е. индексное поле, которое относит запись к той или иной группе. Сам классификатор (список) выносится в отдельное окно на рабочем столе оболочки. При выборе той или иной записи из классификатора, делается выборка записей из базы данных и отображаются только те, которые удовлетворяют условию.

Сам файл справочника состоит из нескольких частей: собственно сами таблицы и следующая информация:

Технические данные справочника: название, описание, автор, дата последнего обновления, стоимость, путь страницы этого справочника на сайте (гиперссылка).

Перечисление функций, которые должны работать в оболочке с этим справочником.

Список полей, по которым проводится «быстрый поиск».

Макет «карточки записи».

Макет формы печати записей из справочника.

Лицензионные данные

Таблица классификатора записей

Планируется сделать сам файл справочника на основе xml, но здесь уже по усмотрению разработчика. Главное, чтобы этот формат был понятен оболочке и справочник корректно подключался.

При подключении справочника оболочка считывает все данные, переносит в свой каталог все таблицы, организовывает связи между таблицами. И подключаются все функции для работы со справочником: поиск, выборки, экспорт и т. д.

Справочник в формате html.

Данный вид справочника представляет собой набор страниц и рисунков. В качестве навигации по этому справочнику используется файл меню, содержимое которого помещается в окошке классификатора. Для работы с таким справочником требуется встроить в оболочку простенький браузер. Все данные (страницы и картинки) для справочника будут содержаться в файле справочника, доступ к сети интернет оболочке не требуется.

Требования к работе оболочки должны быть самыми минимальными: большой список операционных систем (на начальном этапе можно ограничиться windows 9x, 2000, NT, XP), как можно проще технические данные компьютера (оперативная память, процессор), не должно требоваться наличия установленных дополнительных драйверов, программ. Все необходимое для работы оболочки должно устанавливаться из дистрибутива.

Все функции должны быть доступны и понятны в использовании рядовому пользователю.

Список всех функций оболочки:

Справочник

Подключить справочник

Удалить справочник

Список всех доступных справочников

Справочник 1

Справочник 2

Справочник 3

Расширенный список установленных справочников

Быстрый поиск

Расширенный поиск

Поиск в найденном

Перенести запись в «Карман»

Очистить «Карман»

Добавить запись

Удалить запись

Редактировать запись

Импорт данных в справочник

Перейти к следующей записи

Перейти к предыдущей записи

Сортировка записей по возрастанию АàЯ

Сортировка записей по убыванию ЯàА

Настройка печати

Печать выборки

Редактирование формы вывода

Печать на конверты

Калькулятор

Ежедневник

Работа с группами

Создание группы

Редактировать группу

Удаление группы

Добавить запись в группу

Удалить запись из группы

О программе

Получить список всех доступных справочников

В полном Техническом Задании описан внешний вид программы (расположение всех окон, пунктов меню), полное описание структуры файла справочника, описание настроек, процесса подключения справочника и т. д.

Обращаю внимание, что мне необходима именно программа для распространения на компакт-диске, а не интернет-движки.

К сожалению, разработчик, который делал мне оболочку куда-то бесследно исчез, но он успел разработать интерфейс программы. Не до конца правда, но этого будет достаточно, чтобы понять, что мне необходимо.

Вариант №2 - БД «Аэропорт».
Постановка задачи. Создать базу данных «Аэропорт» содержащую информацию о рейсах различных аэропортов.
1. База данных должна содержать следующую информацию:
- Таблицу «Аэропорт», содержащую следующую информацию о различных аэропортах: Город, Название.
- Таблицу «Самолеты», содержащую информацию о самолетах: Модель, Вместительность.
- Таблицу «Пассажиры», содержащую информацию о пассажирах: Фамилия, Имя, Отчество, Пол, № Паспорта, Гражданство.
- Таблицу «Рейсы», содержащую информацию о рейсах: День недели, Время вылета, Код самолета, Код пассажира, Код аэропорта.
2. Определить первичные и вторичные (внешние) ключи (если необходимо добавьте поля). Ввод данных в поля внешнего ключа, а также в поля с небольшим набором возможных значений организовывать с помощью мастера подстановок, а также предусмотреть маску ввода, где это возможно.
3. Установить связь между таблицами, предусмотрев обеспечение целостности данных, каскадное обновление связанных полей и каскадное удаление связанных записей.
4. Ввести не менее 4 записей в таблицы без внешнего ключа и не менее 10 записей в таблицы, содержащие поле внешнего ключа.
5. Создать следующие запросы, задав для них смысловые имена.
- Запрос на выборку. Для отображения информации о пассажирах заказавших билет на Вашингтон. На экран вывести следующие поля: День недели, Фамилия, Имя, № Паспорта, Гражданство.
- Запрос на групповые операции. Для отображения общего количества пассажиров из трех произвольных стран. На экран вывести следующие поля: Гражданство, Общее количество пассажиров.
- Параметрический запрос. Для отображения Фамилии, Имени, № Паспорта, Гражданства пассажиров на заданный параметром “названии” аэропорта.
- Перекрестный запрос. Для отображения информации о количестве пассажиров различных аэропортов той или иной модели самолета.
- Запрос на создание таблицы. Для создания таблицы «Самолеты 1» копии таблицы «Самолеты». Удалить из созданной таблицы информации о самолетах модели F-117, реализовав запрос на удаление.
- Запрос на удаление. Для удаления информации из таблицы «Пассажиры» пассажиров из Японии.
6. Создать следующие формы, задав для них смысловые имена.
- Подчиненную форму, отображающую данные из таблиц «Пассажиры» и «Рейсы». В созданную форму добавить кнопки для перехода между записями.
- Создать форму, отображающую следующую информацию: Фамилия, Имя, № паспорта пассажиров, День недели рейса и Модели самолета. В область примечаний добавить Время вылета.
7. Создать отчет, отображающий следующую информацию о рейсах: Фамилия, Имя, № паспорта пассажиров, День недели рейса и Название Города аэропорта. В нижний колонтитул добавить свою фамилию, номер группы и дату создания базы данных.
8. Создать макросы для открытия всех таблиц базы данных. Задать смысловые имена макросам.
9. В режиме конструктора создать форму «Пользовательский интерфейс», позволяющую работать с созданной базой данных. На форме отобразить информацию о названии базы данных и об авторе. Поместить на форме командные кнопки, позволяющие открывать все таблицы, запросы, формы и отчеты, задать для них смысловые имена. Отредактировать форму с помощью элементов рисования панели элементов. Поместить на нее свою фотографию.
10.Создать макрос для автоматического открытия формы «Пользовательский интерфейс».

Этой базы данных ещё нет в наличии, но её можно заказать

Существует множество определений Базы данных , мы под этим понятием будем понимать следующее:

База данных ─ файл (документ), в котором в специальном формате хранится информация (данные).

Другие определения БД.

База данных :

    Файл данных определенной структуры.

    Именованная совокупность взаимосвязанных данных некоторой предметной области.

    Некоторая унифицированная совокупность данных, совместно используемая группой людей.

    Электронные хранилища информации, доступ к которым осуществляется с помощью одного или некоторых компьютеров.

    Специальным образом организованная и хранящаяся во внешней памяти компьютера взаимосвязанная информация (данные) об объектах.

    Информационная модель, позволяющая упорядоченно хранить данные о группе объектов, обладающих одинаковым набором свойств.

Типы моделей баз данных

        Иерархическая;

Между объектами существуют связи. Один элемент считается главным, остальные подчиненными. Каждый объект может включать в себя несколько объектов более низкого уровня. Графически представляет собой дерево, состоящее из объектов различных уровней.

        Сетевая;

Является обобщением иерархической за счёт допущения объектов, имеющих более одного предка.

        Реляционная;

Наиболее распространенная, представляет собой обобщение сетевой и иерархической модели БД. Состоит из одной и более взаимосвязанных двумерных таблиц.

    Строка таблицы - экземпляр объекта (запись);

    Столбец таблицы - атрибут объекта (поле).

Между таблицами могут существовать связи (relation) по принципу главная (родительская, master) - подчиненная (дочерняя, detail).

Системы управления базами данных

СУБД ─ система программ, позволяющая создавать БД, обновлять хранимую в ней информацию, обеспечивающая удобный доступ к ней с целью просмотра и поиска.

Другие определения СУБД.

СУБД программные средства, предназначенные для:

      описания данных, оперирования (манипулирования) данными;

      управления данными во внешней памяти;

      контроля защиты и целостности данных, управления одновременным доступом;

      служебных операций над данными (администрирование, архивирование и т.д.).

СУБД ─ комплекс программных средств, предназначенных для создания структуры БД наполнения и редактирования её содержимого и для визуализации информации, т.е. для отбора данных удовлетворяющим заданным критериям, их сортировке и выводу на экран, принтер или передачу по компьютерным сетям.

СУБД ─ программа, с помощью которой информация в базу вводится, просматривается, сортируется, фильтруется, разыскивается, экспортируется (переводится в форматы других СУБД) или импортируется.

СУБД программное обеспечение, предназначенное для работы с базами данных.

Виды субд

    По способу исполнения:

    универсальные (Access);

    специализированные (1С);

По способу доступа к данным:

  • локальные (dBase; Access; Paradox);

    сетевые, распределенные (Серверы БД: MS SQL Server, InterBase, Oracle, PostgreSQL).

Возможности и назначение субд

Основное назначение СУБД - дать пользователю простое и доступное средство, которое позволит ему создавать такие БД, которые ему нужны.

Для работы с базой данных СУБД должна обеспечивать:

    возможность внесения и чтения информации;

    работу с большим объемом данных;

    быстроту поиска данных;

    целостность данных (их непротиворечивость);

    защиту от разрушения, уничтожения, от несанкционированного доступа;

    систему дружественных подсказок (в расчете на пользователя без специальной подготовки).

Рассмотрим более подробно типы моделей БД.

ОТЧЕТ

Программа ведения базы данных.

МодульProect1 содержит информацию о всех 2- Формах.

Форма 1 (Unit1 )-содержит главное меню, которое имеет следующие пункты:

  1. Данные
  2. Справки

Ø Справка1

  1. Отчет

Ø Отчет по продажам

Ø Отчет по поступлениям

  1. Выход

Для создания меню на форму установим компонент MainMenu , который имеет следующие свойства:

Ø AutoHotkeys – будут ли создаваться автоматически клавиши быстрого вызова. Если выберать maAutomatic , то Delphi будет автоматически создавать клавиши. При maManual это делается вручную.

Ø AutoMegre – автоматическое слияние с дочерними окнами.

Ø Images – подключение списка картинок, которые могут отображаться на пунктах меню.

Ø Items – описываются пункты меню.

Для редактирования меню дважды щёлкаем по свойству Items после чего откроется редактор меню. Этот же редактор можно вызвать, если дважды щёлкнуть по компоненту MainMenu1 . В объектном инспекторе набераем в свойстве Caption слово «Данные». По нажатию кнопки Enter, будет создано меню «Данные». Создание остальных пунктов меню происходит по аналогии.

Создание подпункта для меню «Отчет». Щёлкнем в рамке чуть ниже меню «Отчет», и в свойстве Caption мы вводим слово «Отчет о продаже товара». Создание остальных подпунктов меню происходит по аналогии.

Для создания обработчика события нажатия пункта меню необходимо выбрать в дизайнере меню пункт «Выход » и щёлкнуть по нему дважды или перейди на закладку Events и дважды щёлкнуть по событию OnClick . Эти действия заставят Delphi создать обработчик события по нажатию меню. В этом обработчике напишем следующее:

Здесь мы используем метод формы Close . этот метод закрывает форму. Если мы закрываем главную форму, то закроется всё приложение.

Для пункта меню «Данные» назначаем обработчик событий:

GroupBox1.Visible:=True;

Данный метод делает видимым объект GroupBox1 и расположенные на нем объекты, которые служат для ввода и редактирования данных в таблицах: «Товар», «Поступление товара», «Продажа товара».

Организация подключения БД к программе выполняется через следующие компоненты:

Ø Table1:TTable;

Ø DataSource1:TDataSource;

Ø DBGrid1:TDBGrid.

Поместим объект DBGrid1 из палитры компонентов DataControls Form1. Активируем данный объект путем выделения его мышью. Перейдем на его свойство DataSource DataSource1.

Поместим невизуальный объект DataSource1 из палитры компонентов DataAccess на Form1. Активируем данный объект. Перейдем на его свойство DataSet и их выпадающего списка выберем Table1.



Выберем невизуальный Table1:TTable из группы компонентов BDE. Поместим его на любое место Form1 . Активируем данный объект путем выделения его мышью. Перейдем на его свойство TableName . Из ниспадающего списка выберем таблицу «Tovar». Перейдем на свойство Active. Сделаем его равным True . После этого в DBGrid отобразиться выбранная таблица.

Для управления данной таблицой (добавление, удаление записей, сохранение или отмена изменений) поместим на Form1 под таблицей объект DBNavigator. Для этого выберем его в палитре компонентов DataControls. Активируем его и перейдем на свойство DataSource , из ниспадающего списка выберем DataSource1 .

По аналогии создаем остальные 2 таблицы для таблиц «Postup » и «Rashod ».

Для создания надписи над таблицей поместим на нашу форму объект DataSource из палитры компонентов Standart. Активируем его. Перейдем на его свойство Caption. Введем текст «Товар».

По аналогии создаются надписи для других таблиц: «Postup » и «Rashod ».

Для создания кнопки с рисунком перейдем к группе компонентов Additional. Выберем объект BitBtn. Поместим его на на объект GroupBox1 . Активируем его. Перейдем на его свойство Kind . Из ниспадающего списка выберем bkCancel . Далее перейдем на свойство Caption . Напишем слово «Выход». Встанем на свойство Kind и сделаем его равным bkCustom . Создадим для данной кнопки обработчик событий:

GroupBox1.Visible:=False;

Чтобы создать подстановочное поле нужно активировать объект Table2. Дважды щелкнем по данному объекту. Откроется окно редактора полей. В контекстном окне редактора полей выберем команду NewFields . Присвоим новому полю имя «tov» и тип String . Установим переключатель в группе FieldType в положение lookup . В списке Dataset Table1 – именно этот набор данных необходимо просматривать. В обоих списках KeyFields и LookupFields этого диалогового окна выберем значение kod – это то общее поле, по значению которого будет выполняться поиск. В списке Result выберем значение NaimT – именно это необходимо отображать в нашем наборе данных.

Аналогично создаем подстановочные поля для таблицы Table3.

Для пункта подменю «Отчет по продажам» и «Отчет по поступлениям» создадим обработчик событий с изменением названием таблиц и полей соответственно, который выполняет выгрузку данных таблиц в документ Microsoft Word:

Var Str1,Str2,Str3,Str4:String; {объявляет переменные типа String }

VSpisok,mark:Variant; {объявляет переменные типа Variant }

VSpisok:=CreateOleObject("Word.Application.8"); {Создает Ole-объект}

VSpisok.Documents.Open("D:\institut\Nort\spisok0.doc"); {загружает шаблон документа}

VSpisok.ActiveDocument.SaveAs("D:\institut\Nort\spisok1.doc"); {сохраняет шаблон в рабочий документ}

VSpisok.Visible:=True; {делает окно Word видимым}

mark:=VSpisok.ActiveDocument.Bookmarks; {в переменную mark записывает закладку }

mark.Item("N1").Select; {помещает курсор на закладку N1}

Table3.First; {становится на первую запись таблицы}

While Not Table3.Eof do begin {в цикле заполняет таблицу}

Str1:=Table3["KodR"]; {присваивает Str1 значение поля Table3 }

Str2:=Table3["tovar"]; {присваивает Str2 значение поля Table3 }

Str3:=FloatToStr(Table3["kol"]); {переводит значение поля Table3[‘kol’] из типа Number в тип String и присваивает данное значение переменной Str3 }

Str4:=DateToStr(Table3["DataR"]); {переводит значение поля Table3[‘DataR’] из типа Date в тип String и присваивает данное значение переменной Str4 }

VSpisok.Selection.InsertBefore(Str1); {запись Str1 в текущую позицию}

VSpisok.Selection.InsertBefore(Str2); {запись Str2 в текущую позицию}

VSpisok.Selection.MoveRight(12); {перемещение на следующее поле таблицы документа}

VSpisok.Selection.InsertBefore(Str3); {запись Str3 в текущую позицию}

VSpisok.Selection.MoveRight(12); {перемещение на следующее поле таблицы документа}

VSpisok.Selection.InsertBefore(Str4); {запись Str4 в текущую позицию}

VSpisok.Selection.MoveRight(12); {перемещение на следующее поле таблицы документа}

Table3.Next;

Для подменю «Справка 1» создадим обработчик событий:

Form2.ShowModal;

Метод ShowModal открывает Form2 (поверх всех остальных окон).

Данная Форма предназначена для отображения данных по продаже и поступлении товара. Выбор товара осуществляется двойным щелчком по записи необходимого товара в таблице «Товар».

Чтобы создать данную форму необходимо выполнить следующую последовательность в основном меню Delphi File – New – Form. Сохранить ее в тот директорий, где сохранена наша БД. В подключаемых модулях Uses , в редакторе кода, напишем Unit1 .

Теперь создадим таблицу, откуда будет браться информация для выборки. Для этого выберем объект DBGrid1 из палитры компонентов DataControls и объект DataSource1 из палитры компонентов DataAccess . Поместим данные объекты на нашу экранную форму. Активируем объект DataSource1. Перейдем к его свойству DataSet . Из выпадающего списка выберем Form1.Table1

Активируем объект DBGrid1. Перейдем на его событие OnDblClick. Создадим для этого события процедуру обработки:

Var Str1:String;

Str1:=Form1.Table1["kod"];

Label2.Caption:="Продажа по "+Form1.Table1["naimT"];

Label3.Caption:="Поступление по "+Form1.Table1["NaimT"];

Query1.SQL.Clear;

Query1.SQL.Add("Select * from rashod where KodR="+""""+Str1+"""");

Query1.Open;

Query2.SQL.Clear;

Query2.SQL.Add("Select * from postup where KodP="+""""+Str1+"""");

Query2.Open;

Для создания таблицы, которая будет отображать информацию о данном товаре необходим создать объекты DBGrid2 из палитры компонентов DataControls, объект Query1 из палитры компонентов BDE , а также объект DataSource2 из палитры компонентов DataAccess . Активируем объект DataSource2 и выберем его свойство DataSet . Из выпадающего списка выберем Query1.

Активируем объект DBGrid2, встанем на его свойство DataSource и из выпадающего списка выберем DataSource2 . Активируем объект Query1, перейдем на его свойство SQL и в редакторе кода напишем select * from rashod.

По аналогии создается другая таблица для выборки из таблицы «Postup».

Заключение

Таким образом, в данной работе разработана информационная система «Учет товаров на складе». Данная ИС предназначена для автоматизации деятельности зав. складом по учету товаров на складе.

ИС состоит из программной и информационной части. Программная подсистема состоит из:

Ø управляющей подсистемы;

Ø подсистемы ведения БД;

Ø подсистемы отчетов;

Ø подсистемы справок.

Информационная часть включает базу данных, состоящую из трех взаимосвязанных таблиц («Товар», «Поступление товара», «Реализация товара»), реализованных в формате «Paradox 7.0». В БД содержатся данные о наличии товара, его поступлении и реализации, поставщиках, покупателях.

Информационная система разработана средствами Delphi 6.0 с использованием стандартных компонентов.

ИС позволяет редактировать информацию в БД, а также в реальном масштабе времени (РМВ) формировать справки и отчеты. Справки формируются путем выборки отдельных записей по наименованию товара. Отчеты формируются в виде таблиц путем создания из шаблонов документов MS-Word через СОМ - технологии.

Общий объем разработанной ИС составляет 974Kb. ИС может функционировать в любой Windows совместимой ОС.

ПО ПРАКТИКЕ ПО ПРОФИЛЮ СПЕЦИАЛЬНОСТИ

ОАО АКБ «Связь - Банк»

Ульяновск, 20__г.

о прохождении практики