Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП отчет.doc
Скачиваний:
52
Добавлен:
15.06.2014
Размер:
371 Кб
Скачать
☆
  1. Постановка задачи

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

  1. Проектирование базы данных

Логическая модель данных предметной области в стандарте IDEF1X представлена на рисунке 1. Выделены сущности «Передача», «Заказчик», «Агенты», «Рекламный ролик», «Заказ», между которыми установлены неидентифицирующие связи мощностью oдин-ко-многим, определенные спецификой предметной области.

Рисунок 1 – Логическая модель данных предметной области

Физическая модель данных предметной области в стандарте IDEF1X для целевой СУБД OracleDatabaseпредставлена на рис. 2.

Рисунок 2 – Физическая модель предметной области

База данных commercialсостоит из пяти таблиц:

broadcast– список передач;

client– список заказчиков;

agent– список агентов;

advertising– список рекламных роликов;

orders– список заказов.

Таблица broadcastсостоит из четырех полей:

broadcast_id– код передачи;

b_title– название;

b_rating– рейтинг;

b_price_minute– стоимость минуты.

Все поля должны иметь атрибут NOT_NULL.

Таблица clientсостоит из пяти полей:

client_id– код заказчика;

c_name– наименование заказчика;

c_requisites– реквизиты;

c_phone– номер телефона;

c_contact_name – контактное лицо.

Все поля должны иметь атрибут NOT_NULL.

Таблица agentсостоит из пяти полей:

agent_id – код агента;

a_firstname – имя агента;

a_surname– фамилия агента;

a_address– адрес проживания;

a_phone– номер телефона.

Все поля должны иметь атрибут NOT_NULL.

Таблица advertisingсостоит из четырех полей:

advertising_id– код рекламного ролика;

adv_title– название;

adv_length– продолжительность;

client_id– код заказчика из таблицыclient.

Все поля должны иметь атрибут NOT_NULL.

Таблица ordersсостоит из семи полей:

order_id– код заказа;

o_date– дата создания заказа;

o_price– стоимость заказа;

o_share_agent– доля агента;

broadcast_id– код передаяи из таблицыbroadcast;

agent_id– код агента из таблицыagents;

advertising_id– код рекламного ролика из таблицыadvertising.

Все поля должны иметь атрибут NOT_NULL.

В таблице orders устанавливается связь с таблицами broadcast(за счет поляbroadcast_id),agent(за счет поляagent_id),advertising(за счет поляadvertising_id). В таблицеadvertisingустанавливается связь с таблицейclient(за счет поляclient_id). Эти поля объявлены как внешние ключи (FK) с правилом каскадного удаления и обновления.

  1. Разработка базы данных

Для хранения данных выбрана Oracle Database (Oracle RDBMS) — объектно-реляционная система управления базами данных компании Oracle. СУБД OracleDatabaseпоставляется в пяти различных редакциях, ориентированных на различные сценарии разработки и развертывания приложений (а также отличающиеся ценой):

- EnterpriseEdition(EE) – является самой дорогой и функциональной редакцией, предоставляет наибольшую, производительность, доступность, масштабируемость и безопасность;

- StandardEdition(SE) – рекомендована для использования в различных средах, от выделенного сервера, для небольшого бизнеса, до распределенных сред, практически любого масштаба, также включает поддержку больших машин и кластеризации с использованием Real Application Clusters;

- StandardEditionOne(SEO) – рекомендована для использования в различных средах, от выделенного сервера, для небольшого бизнеса, до распределенных сред, практически любого масштаба;

- PersonalEdition(PE) – поддерживает однопользовательские среды для разработки и развертывания, которые требуют полную совместимость с более производительными редакциями;

- ExpressEdition(XE) – редакция начального уровня, является бесплатной для разработки, развертывания и распространения.

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

Рассмотрим более подробно редакцию ExpressEdition. Так как данная редакция является бесплатной, то она, соответственно, имеет ряд ограничений, а именно:

- используемая оперативная память — 1 Гбайт;

- использование только одного процессора;

- максимальный объем базы данных Oracle Database XE составляет 12 ГБ. Из них от 0.5 до 0.9 ГБ используются словарем данных, внутренними схемами и временным дисковым пространством. Поэтому, для пользовательских данных, остается около 11 ГБ.

Данные ограничения не являются критическими для разрабатываемого проекта, поэтому наиболее оправдано использование СУБД OracleDatabaseExpressEdition.

Заключительным этапом в разработке базы данных является выполнение следующих шагов:

- создание таблиц данных;

- создание полей в таблицах и присвоение необходимого типа данных каждому полю;

- назначение первичных и вторичных ключей;

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

Этот этап реализован в виде скрипта, выполнение которого позволяет быстро создавать разработанную базу данных на любом сервере баз данных, находящемся под управлением СУБД OracleDatabaseлюбой редакции. Исходный код скрипта создания БД приведен в приложении А.