Библиотека: А. Горев, С. Макашарипов, Р. Ахаян. Эффективная работа с СУБД

Глава 1
Постановка задачи и разработка бизнес-правил
1.1. Некоторые определения
1.2. Описание, постановка задачи и разработка бизнес-правил

    Создать хорошее приложение для обработки данных непросто. Это непросто, даже если вы создаете программу "для внутреннего использования", то есть для себя или своих коллег. Создание коммерческого приложения труднее в несколько раз, почему это так, вы поймете после прочтения этой книги. Для начала скажем, что если вы пишете приложение для себя или других пользователей и начали работу с создания файлов и заполнения их данными, считайте, что первая ошибка уже совершена. Опыт показывает, что пока у вас нет четкого и подробного представления о будущем проекте, СУБД - система управления базами данных - вам не нужна.

1.1. Некоторые определения

    В черновике рукописи этот параграф назывался "Основные определения теории..." Внимательно следя за первыми рецензентами и неизменно наблюдая резкую смену выражения лиц, авторы, не рассчитывая на большую, чем у рецензентов, выдержку читателей, с помощью клавиши Del сильно откорректировали текст. И хотя в заголовке вместо слова "основные" появилось "некоторые", в этом параграфе вы найдете описание терминов, наиболее, на наш взгляд, важных для программиста, который собирается написать приложение для автоматизации обработки данных.
    В данном параграфе мы рассмотрим следующие понятия:

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

    Каждой цивилизации приходится иметь дело с обработкой информации. С развитием экономики и ростом численности населения возрастает и объем взаимосвязанных данных, необходимых для решения коммерческих и административных задач. Взаимосвязанные данные называют информационной системой. Такая система в первую очередь призвана облегчить труд человека, но для этого она должна как можно лучше соответствовать очень сложной модели реального мира.
    Ядром информационной системы являются хранимые в ней данные. На любом предприятии данные различных отделов, как правило, пересекаются, то есть используются в нескольких подразделениях или вообще являются общими. Например, для целей управления часто нужна информация по всему предприятию. Заказ комплектующих невозможен без наличия информации о запасах. Хранящиеся в информационной системе данные должны быть легко доступны в том виде, в каком они нужны для конкретной производственной деятельности предприятия. При этом не имеет существенного значения способ хранения данных. Сегодня на предприятии мы можем встретить систему обработки данных традиционного типа, в которой служащий вручную помещает данные в скоросшиватель, и рядом с ней - современную систему с применением самой быстродействующей ЭВМ, сложнейшего оборудования и программного обеспечения. Несмотря на поразительную несхожесть, обе эти системы обязаны предоставлять достоверную информацию в определенное время, определенному лицу, в определенном месте и с ограниченными затратами.
    Чтобы понять процесс построения информационной системы, необходимо знать ряд терминов, которые применяются при описании и представлении данных.


Предметной областью называется часть реальной системы, представляющая интерес для данного исследования.

    При проектировании автоматизированных информационных систем предметная область отображается моделями данных нескольких уровней. Число используемых уровней зависит от сложности системы, но в любом случае включает логический и физический уровни. Предметная область может относиться к любому типу организации (например, банк, университет, больница или завод).
    Необходимо различать полную предметную область (крупное производственное предприятие, склад, универмаг и т.д.) и организационную единицу этой предметной области. Организационная единица в свою очередь может представлять свою предметную область (например, цех по производству кузовов автомобильного завода или отдел обработки данных предприятия по производству ЭВМ). В данном случае цехи и отделы сами могут соответствовать определенным предметным областям.
    Информация, необходимая для описания предметной области, зависит от реальной модели и может включать сведения о персонале, заработной плате, товарах, накладных, счетах, отчетах по сбыту, лабораторных тестах, финансовых сделках, историях болезней, то есть сведения о людях, местах, предметах, событиях и понятиях.


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

    Объект может быть реальным (например, человек, какой-либо предмет или населенный пункт) и абстрактным (например, событие, счет покупателя или изучаемый студентами курс). Так, в области продажи автомобилей примерами объектов могут служить МОДЕЛЬ АВТОМОБИЛЯ, КЛИЕНТ и СЧЕТ. На товарном складе - это ПОСТАВЩИК, ТОВАР, ОТПРАВЛЕНИЕ и т. д. Каждый объект обладает определенным набором свойств, которые запоминаются в информационной системе. При обработке данных часто приходится иметь дело с совокупностью однородных объектов, например таких, как служащие, и записывать информацию об одних и тех же свойствах для каждого из них.


Классом объектов называют совокупность объектов, обладающих одинаковым набором свойств.

    Таким образом, для объектов одного класса набор свойств будет одинаков, хотя значения этих свойств для каждого объекта, конечно, могут быть разными. Например, класс объектов МОДЕЛЬ АВТОМОБИЛЯ будет иметь одинаковый набор свойств, описывающих характеристики автомобилей, и каждая модель будет иметь различные значения этих характеристик.
    Объекты и их свойства являются понятиями реального мира. В мире информации, существующем в представлении программиста, говорят об атрибутах объектов.


Атрибут - это информационное отображение свойств объекта. Каждый объект характеризуется рядом основных атрибутов.

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


Рис. 1.1. Три области представления данных

Таблица - это некоторая регулярная структура, состоящая из конечного набора однотипных записей. В некоторых источниках таблица называется отношением.

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


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

    Элемент данных "НАИМЕНОВАНИЕ МОДЕЛИ" может принимать такие значения, как "Voyager'96 3.8 Grand", "Continental 4.6" или "Crown Victoria 4.6". В зависимости от того, как элементы данных описывают объект, их значения могут быть количественными, качественными или описательными.
    Информацию о некоторой предметной области можно представить с помощью нескольких объектов, каждый из которых описывается несколькими элементами данных. Принимаемые элементами данных значения называются данными. Единичный набор принимаемых элементами данных значений называется экземпляром объекта. Объекты связываются между собой определенным образом. Соответствующая модель объектов с составляющими их элементами данных и взаимосвязями называется концептуальной моделью. Концептуальная модель дает общее представление о потоке данных в предметной области.
    Некоторые элементы данных обладают важным для построения информационной модели свойством. Если известно значение, которое принимает такой элемент данных объекта, мы можем идентифицировать значения, которые принимают другие элементы данных этого же объекта. Например, зная уникальный номер модели автомобиля - 7, мы можем определить, что это "Voyager'96 3.8 Grand" и что рабочий объем двигателя у данной модели "3778".


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

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


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

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


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

    Например, для объекта "служащий", который имеет атрибуты "ИДЕНТИФИКАТОР СЛУЖАЩЕГО", "ФАМИЛИЯ", "ИМЯ" и "ОТЧЕСТВО", группа атрибутов "ФАМИЛИЯ", "ИМЯ", "ОТЧЕСТВО" может являться альтернативным ключом по отношению к атрибуту "ИДЕНТИФИКАТОР СЛУЖАЩЕГО" (в предположении, что на предприятии не работают полные тезки).


Запись данных - это совокупность значений связанных элементов данных.

    На рис. 1.2 такими элементами данных являются уникальный ключ и наименование модели, рабочий объем, количество цилиндров и мощность двигателя. Например, одна из записей - "7 Voyager'96 3.8 Grand 3778 6 164,0". Эта строка представляет собой значения, которые принимают элементы данных объекта МОДЕЛЬ АВТОМОБИЛЯ (MODEL). Такие строки формируют записи данных. Записи хранятся на некотором носителе, в качестве которого может выступать человеческий мозг, лист бумаги, память ЭВМ, внешнее запоминающее устройство и т. д.


Рис. 1.2. Записи данных объекта MODEL

Тип данных характеризует вид хранящихся данных.

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


Доменом называется набор значений элементов данных одного типа, отвечающий поставленным условиям.

    Понятие домена более специфично для баз данных, хотя и имеет определенные аналогии с подтипами в некоторых языках программирования. В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу типа данных, который "забраковывает" недопустимые значения. Если вычисление этого логического выражения дает результат "истина", то элемент данных является элементом домена. Например, домен "НАИМЕНОВАНИЕ" в нашем примере (рис. 1.3) определен на базовом типе строк символов, но в число его значений могут входить только те строки, которые могут изображать имя (в частности, очевидно, что такие строки не должны начинаться с какого-нибудь специфичного символа типа знака подчеркивания или тире). В упрощенном виде понятие домена может характеризоваться как потенциальное множество допустимых значений одного типа. Например, значением атрибута "ПОЛ" может быть только либо "мужской", либо "женский". Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов "КЛЮЧ МОДЕЛИ" и "РАБОЧИЙ ОБЪЕМ" относятся к типу целых чисел, но не являются сравнимыми.


Рис. 1.3. Иерархия понятий в таблице МОДЕЛЬ

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

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


Связь - это функциональная зависимость между сущностями.

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

  • тип связи (идентифицирующая, не идентифицирующая, полная/неполная категория, неспецифическая связь);
  • родительская сущность;
  • дочерняя (зависимая) сущность;
  • мощность связи (cordiality);
  • допустимость пустых (null) значений.

    Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется (однозначно определяется) через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при идентифицирующей связи всегда является зависимой.
    Связь называется не идентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав не ключевых атрибутов дочерней сущности.
    Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1:n.


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

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


Правила позволяют вызывать выполнение заданных действий при изменении или добавлении данных в базу данных (БД) и тем самым контролировать истинность помещаемых в нее данных.

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


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

    Триггер является мощным инструментом контроля за изменением данных в БД, а также помогает программисту автоматизировать операции, которые должны выполняться в этом случае. Триггер выполняется после проверки правил обновления данных.
    Обратите внимание на исключительную важность в этом определении слова "автоматически". Ни пользователь, ни приложение не могут активизировать триггер, он выполняется автоматически, когда пользователь или приложение выполняют с БД определенные действия. Триггер включает в себя следующие компоненты:

  • Ограничения, для реализации которых собственно и создается триггер.
  • Событие, которое будет характеризовать возникновение ситуации, требующей проверки ограничений. События чаще всего связаны с изменением состояния БД (например, добавление записи в какую-либо таблицу), но могут учитываться и дополнительные условия (например, добавление записи только с отрицательным значением).
  • Предусмотренное действие выполняется за счет выполнения процедуры или последовательности процедур, с помощью которых реализуется логика, требуемая для реализации ограничений.

    Использование триггеров при проектировании БД позволяет получить при разработке приложения следующие преимущества:

  • Триггеры всегда выполняются при совершении соответствующих действий. Разработчик продумывает использование триггеров при проектировании БД и может больше не вспоминать о них при разработке приложения для доступа к данным. Если для работы с этой же БД вы решите создать новое приложение, триггеры и там будут отрабатывать заданные ограничения.
  • При необходимости триггеры можно изменять централизованно непосредственно в БД. Пользовательские программы, использующие данные из этой БД, не потребуют модернизации.
  • Система обработки данных, использующая триггеры, обладает лучшей переносимостью в архитектуру клиент-сервер за счет меньшего объема требуемых модификаций.

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

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

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

Нормализация отношений - это процесс построения оптимальной структуры таблиц и связей в реляционной БД.

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


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

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

1.2. Описание, постановка задачи и разработка бизнес-правил

    Занимаясь разработкой автоматизированных систем на протяжении длительного времени, мы можем отметить, что в 77 случаях из 100 заказчик сам не знает, чего хочет, и в 99 из 100 постановку задачи приходится воспринимать на слух, в процессе работы неоднократно уточняя те или иные мелкие, но значимые моменты будущего приложения. Более того, в таких случаях очень часто, при очередном обсуждении с заказчиком возможностей новой системы, мы открываем для себя все новые и новые горизонты предстоящей работы, требующие существенного расширения функциональности будущей программы. Но это не самый плохой вариант. Иной раз уже через несколько часов после прощального рукопожатия заказчик полностью переосмысливает свои цели, после чего задача в корне меняется, и следующий визит заставляет нас начать всю работу заново. Именно по этой причине мы рекомендуем вам, внимательно выслушав заказчика, попросить его описать задачу в письменном виде, на основании чего самостоятельно сформулировать постановку задачи. Уверяем вас, если результат окажется положительным, то это будет признанием того, что ваш заказчик действительно нуждается в данной программе, а самое главное, знает чего хочет.
    В этом параграфе мы попробуем уяснить, как должно выглядеть описание и постановка задачи.
    Некая фирма "Фронтон" (название придумали большие любители технологии клиент-сервер, поэтому его надо читать на зарубежный манер: вдохните и скажите "фронт", сделайте задержку дыхания и на выдохе произнесите "он") занимается продажей легковых автомобилей на заказ. Процесс продажи проистекает следующим образом. Покупатель производит заказ на покупку автомобиля, пользуясь предоставленным ему фирмой каталогом легковых автомобилей. Представитель фирмы выписывает счет на выбранную модель автомобиля и одновременно с этим отправляет запрос о приобретении данного автомобиля на завод-изготовитель (фирме - поставщику). Фирма "Фронтон" заключила юридические соглашения о поставке автомобилей с рядом заводов-изготовителей легковых автомобилей и крупных дистрибьюторов. После оплаты по соответствующему счету фирма "Фронтон" подтверждает запрос о приобретении и обязуется в течение четырехнедельного периода предоставить покупку соответствующему покупателю.
    В максимально простом виде схема бизнес-процесса фирмы "Фронтон" представлена на рис. 1.4. На основании исследований рынка потенциальных покупателей и предложений автоиндустрии служба или отдельный специалист разрабатывает каталог предлагаемых к продаже автомобилей; в большой фирме такую службу назвали бы отделом маркетинга. Каталог распространяется на рынке потенциальных покупателей. С клиентом, решившим приобрести автомобиль, работает служба оформления заказов. Специалисты, входящие в эту службу, принимают заказ, уточняют комплектацию выбранного автомобиля, отправляют счета, следят за их оплатой и наконец вручают клиенту поступивший автомобиль. Служба внутренней поддержки обеспечивает распределение работы по исполнителям и решает возникающие проблемы, например, ограничения доступа к данным.
    При анализе бизнес-процесса фирмы полезно ответить на 6 вопросов: что, как, где, кто, когда и почему.


Рис. 1.4. Упрощенная схема бизнес-процесса

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

  • cотрудники;
  • клиенты (покупатели);
  • поставщики;
  • каталог;
  • автомобили;
  • заказы.

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

  • составление каталога;
  • рассылка каталога;
  • анализ рынка;
  • продажи;
  • оформление счетов и накладных;
  • управление работой персонала;
  • реклама;
  • решение бухгалтерских задач.

    Вопрос: "Где происходят данные процессы?" больше относится к проблемам телекоммуникаций и организации совместной работы персонала. Ведь в случае, например, большого объема операций, которые выполняются вне территории фирмы торговыми агентами, придется учитывать проблемы синхронизации данных. При наличии филиалов весьма непростой проблемой является оптимальный выбор системы распределения данных. Можно централизовать всю обработку данных, и филиалы будут выполнять свои операции, пользуясь возможностями телекоммуникаций. Работа с данными в этом случае упрощается, но каково будет удивление клиента, когда вы ему сообщите, что не можете взять у него несколько десятков тысяч долларов и продать приглянувшуюся машину, так как оборвалась связь с центральным офисом. В рассматриваемом примере допустим, что все операции выполняются в пределах одного здания, а организация совместного использования данных основана на возможностях локальной сети и сервера БД.
    Ответ на вопрос: "Кто выполняет эти процессы?" даст организационная структура фирмы. Упрощенная организационная структура фирмы "Фронтон" представлена на рис. 1.5.


Рис. 1.5.

    Важно получить и ответ на вопрос: "Когда выполняется то или иное действие?" Это прояснит периодичность осуществляемых бизнес-процессов и позволит правильно расставить акценты в будущей прикладной программе. В нашем случае примем такую временную последовательность выполняемых процессов:

  • обновление каталога - раз в год и внесение поправок в экстренных случаях;
  • подведение итогов продаж - ежемесячно;
  • годовой отчет - ежегодно к 20 февраля.

    Последний вопрос: "Почему эти действия выполняются?" позволяет определить мотивацию производственной деятельности фирмы. Бизнес-задачи фирмы "Фронтон" определим так:

  • достижение наилучшего соотношения "затраты - удобство" для клиентов;
  • обеспечение условий для успешной деятельности персонала;
  • получение приемлемой прибыли;
  • повышение доходов при автоматизации обработки данных.

    Ответы на шесть перечисленных вопросов позволяют подойти к главному в постановке задачи - построении информационной модели предприятия. В простейшем виде такая модель может быть отображена в виде взаимосвязей между бизнес-компонентами и бизнес-процессами, как это показано на рис. 1.6. В практике проектирования информационных систем такие схемы получили название ER-диаграмм (Entity-relationship diagram (ERD) - диаграмма "Сущность-связь"). ER-диаграммы хорошо вписываются в методологию структурного анализа и проектирования информационных систем. Такие методологии обеспечивают строгое и наглядное описание проектируемой системы, которое начинается с ее общего обзора и затем уточняется, давая возможность получить различную степень детализации объекта с различным числом уровней.


Рис. 1.6. Диаграмма взаимосвязей между бизнес-компонентами и бизнес-процессами

    Максимально формализованное описание задачи в нашем примере будет выглядеть следующим образом.

    Наименование задачи:
    Автоматизация управления работой дилера по продаже легковых автомобилей "AUTO STORE".
    Цель работы дилера:
    Продажа легковых автомобилей на заказ по каталогу.
    Функции дилера:

  • Заключение договоров на поставку автомобилей.
  • Ведение каталога автомобилей, предлагаемых на продажу.
  • Прием заказов у клиентов (покупателей) на поставку автомобилей.
  • Работа с клиентами (маркетинг): реклама новых автомобилей, подготовка сведений о приобретаемых автомобилях, анализ продаж, ведение справочника клиентов.
  • Отправка заказов поставщику автомобилей.
  • Ведение расчетов за проданные автомобили (выписка накладных).
  • Учет валютного курса.

    Бизнес-правила:

  • Сведения о клиентах хранятся 10 лет.
  • Оплата ожидается 3 недели, если ее не происходит, заказ уничтожается.
  • Подтверждение запроса о приобретении автомобиля отправляется фирме-поставщику после прихода денег.
  • При отказе от поставленного автомобиля с покупателя удерживается 9% суммы оплаты по счету, данная величина должна регулироваться.
  • Срок поставки 4 недели после прихода денег.
  • Просрочка доставки автомобиля клиенту оплачивается фирмой "Фронтон" из расчета 0,1% в день, данная величина должна регулироваться.
  • Если автомобиль не поставлен в течение 2 месяцев, возвращается вся сумма оплаты и пеня.

    Требования к программе:
    Программа должна работать под управлением операционных систем Windows 95 или Windows NT.
    Перечень вводимой информации:

  • наименование модели продаваемого автомобиля;
  • рабочий объем двигателя, cм 3;
  • количество цилиндров в двигателе;
  • номинальная мощность двигателя, л.с.;
  • максимальный крутящий момент, НФм;
  • максимальная скорость автомобиля, км/ч;
  • время разгона автомобиля до 100 км/ч, с;
  • количество дверей;
  • количество мест;
  • длина, мм;
  • ширина, мм;
  • высота, мм;
  • расход топлива при скорости 90 км/ч, л/100 км;
  • расход топлива при скорости 120 км/ч, л/100 км;
  • расход топлива при городском цикле, л/100 км;
  • наименование производителя автомобиля;
  • наименование страны, в которой производится автомобиль;
  • наименование используемого автомобилем топлива;
  • наименование шин;
  • наименование типа кузова;
  • дата выпуска автомобиля;
  • стоимость автомобиля;
  • наименование клиента;
  • адрес клиента;
  • телефон клиента;
  • факс клиента;
  • фамилия, имя и отчество клиента;
  • признак юридического лица клиента;
  • примечание для записи заметок по работе с клиентом;
  • номер счета;
  • дата продажи;
  • сумма продажи;
  • пометка об оплате;
  • фамилия, имя и отчество продавца.

    Перечень печатных отчетов:

  • номенклатура предлагаемых к продаже автомобилей;
  • список клиентов;
  • анализ продаж;
  • список заказов;
  • счет на покупку.

    Требования к оснащению офиса фирмы компьютерной техникой:

  • Для пользователей: ПЭВМ не ниже Pentium 100/16/420 с операционной системой Windows 95 или Windows NT Workstation и пакетом программ MS Office.
  • Сервер не ниже Pentium 166/32/1000 с операционной системой Windows NT Server и MS SQL Server 6.х.
  • Локальная сеть.
  • Сетевой лазерный или струйный принтер.
Содержание || Глава 2