Свойства объектно-ориентированных моделей данных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Свойства объектно-ориентированных моделей данных

 

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Факультет компьютерных наук и технологий

 

 

Кафедра ИИСА

 

 

Лабораторная работа №1

 

по дисциплине: «Проектирование компьютерных информационных систем»

 

на тему «Разработка ПО для посреднической деятельности

между крупными производителями продуктов питания и различными фирмами»

 

Проверил:

____________              ст.преп. В.И. Елисеев

(дата, подпись)

 

Выполнилa:

 

____________ст.гр. САУм–18 Ю.В. Некрылова

(дата, подпись)

 

Донецк, 2018


 

1 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ КИС.

СФЕРА ПРИМЕНЕНИЯ КИС

 

Экономическим объектом является малое предприятие – оптово-посредническая фирма. В дальнейшем фирма будет называться ООО «Продукты оптом».

Основная деятельность фирмы: осуществление посреднической деятельности между крупными производителями продуктов питания и различными фирмами. Поскольку фирма «Продукты оптом» достаточно молодая, она довольно быстро укрепляет и расширяет свое положение на рынке, тем самым постоянно увеличивая количество своих клиентов.

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

Основные цели, для достижения был разработан проект КИС:

Ø Обеспечение более быстрого и удобного поиска работниками необходимой информации;

Ø Точный учет заключенных договоров;

Ø Обеспечение большей защиты информации от несанкционированного доступа.

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

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

В данной предметной области можно выделить следующие укрупненные спецификации:

Ø Сведения о каждом поставщике;

Ø Сведения о каждом потребителе;

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

В отделе по работе с клиентами сформирована вся необходимая информация для КИС «Договоры»:


Сведения о поставщике:

· Код поставщика

· Наимен. поставщика

· Адрес поставщика

Сведения о потребителе:      

· Код потребителя

· Наимен. потребителя

· Адрес потребителя

Сведения о договоре:

· № договора

· Код поставщика

· Код потребителя

· Дата заключения


Укрупненная структура ООО «Продукты оптом»:

 

Рисунок 1­ – Организационная структура фирмы

Основные задачи отделов:

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

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

Бухгалтерия осуществляет организацию бухгалтерского учета хозяйственно-финансовой деятельности.

Основные задачи, которые решает эта база данных:

- информационное обеспечение работников отдела по работе с клиентами, чья деятельность непосредственно связана с базой данных;

- помогает отследить количество заключенных договоров в конкретном периоде времени.


 

2 МОДЕЛИРОВАНИЕ КОМПЮТЕРНОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ

 

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

 

2.1. Моделирование данных

 

Моделирование данных – это первый шаг на пути проектирования БД, это переход от объектов реального мира к компьютерной модели БД.

 

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

 

Рисунок 2 – ER-модель

 

Структура записей таблиц:

«Поставщик»

№ п/п

Идентификатор

Тип данных

Размер

данных

 1

 2

 3

KOD POSTAVSHIKA

NAIMENOVANIE POSTAVSHIKA

ADRES POSTAVSHIKA

INT

CHAR

CHAR

 

 

«Потребитель»

№ п/п

Идентификатор

Тип данных

Размер данных

KOD POTREBITELYA

NAIMENOVANIE POTREBITELYA

ADRES POTREBITELYA

INT

CHAR

CHAR

 

«Договор»

№ п/п

Идентификатор

Тип данных

Размер данных

NOMER DOGOVORA

KOD POSTAVSHIKA

KOD POTREBITELYA

DATA ZAKLUCHENIYA

INT

INT

INT

DATE

 

 

Процесс проектирования БД является итеративным, а не линейным или последовательным.

Схема данных представлена на следующем рисунке:





2.2 Нормализация отношений

 

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

Для определения состава таблиц следует произвести нормализацию исходного иерархического отношения. Спроектированная база данных содержит три таблицы: Договор(DOG), Поставщик(POST), Потребитель(POTR).Все ограничения целостности данных при подготовке программных средств для загрузки и корректировки базы данных были соблюдены. Также предусмотрена защита базы данных от несанкционированного доступа и разрушения.

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

В первой нормальной форме все атрибуты сущности атомарны, т.е. неделимы. Это условие выполнено. Ненормализованное отношение имеет вид:

DOG (KDOG#, POST (KPOST#, NPOST, APOST), POTR (KPOTR#, NPOTR, APOTR), DATA)

Результат нормализации:

DOG (KDOG#, KPOST, KPOTR, DATA)

POST (KPOST#, NPOST, APOST)

POTR (KPOTR#, NPOTR, APOTR)

Нормализация отношений

Шаг 0. Иерархическая структура может рассматриваться как ненормализованное отношение DOG0 и еще на двух доменах элементы, которых не является атомарным: POST0, POTR0.

Ненормализованное отношение имеет вид:

DOG0 (KDOG#, POST0 (KPOST#, NPOST, APOST), POTR0 (KPOTR#, NPOTR, APOTR), DATA)

Полное множество всех нормализованных и ненормализованных отношений имеет вид:

DOG0 (KDOG#, KPOST0, KPOTR0, DATA)

POST0 (KPOST#, NPOST, APOST)

POTR0 (KPOTR#, NPOTR, APOTR)

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

Получим совокупность отношений в первой нормальной форме:

DOG1 (KDOG#, KPOST, KPOTR, DATA)

POST1 (KPOST#, NPOST, APOST)

POTR1 (KPOTR#, NPOTR, APOTR)

Отношение находится во 2-ой нормальной форме, т.к. оно находится в 1-ой нормальной форме, и каждый неключевой атрибут зависит от всего ключа.

Отношение находится в 3-й нормальной форме, т.к. оно находится во 2-ой нормальной форме и не имеет транзитивных зависимостей.

Дальнейшей нормализации не требуется, т.к. аномалии вставки и аномалии удаления отсутствуют.

2.3 Запросы

 

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

1. SELECT Договор.[№ договора], Договор.[№ поставщика], Поставщик.Наименование, Поставщик.[Адрес поставщика], Договор.[№ потребителя], Потребитель.[Наименование потребителя], Потребитель.[Адрес потребителя], Договор.[Дата заключения]

FROM Потребитель INNER JOIN (Поставщик INNER JOIN Договор ON Поставщик.[№ поставщика] = Договор.[№ поставщика]) ON Потребитель.[№ потребителя] = Договор.[№ потребителя]

WHERE (((Договор.[Дата заключения])=[Введите дату заключения]));

Такой запрос называется запросом с параметром. Параметром является дата заключения договора. Значение параметра вводится в диалоговом окне.

 

После нажатия кнопки «OK», получаем необходимую информацию.

 

 

Еще один пример запроса с параметром:

2. SELECT Договор.[№ договора], Договор.[№ поставщика], Поставщик.Наименование, Поставщик.[Адрес поставщика], Договор.[№ потребителя], Потребитель.[Наименование потребителя], Потребитель.[Адрес потребителя], Договор.[Дата заключения]

FROM Потребитель INNER JOIN (Поставщик INNER JOIN Договор ON Поставщик.[№ поставщика] = Договор.[№ поставщика]) ON Потребитель.[№ потребителя] = Договор.[№ потребителя]

WHERE (((Договор.[№ договора])=[Введите номер договора]));

 

 

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

 

Также существует простой запрос. Он необходим для выборки сведений из базы данных.

Проектирование базы данных сетевого типа

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

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

Графическое представление предметной области в сетевой модели – Диаграмма Бахмана –  выглядит следующим образом:

P1, P2 – сингулярные наборы, т.е. владельцем является одна запись «система».

S1, S2 – физические наборы данных, которые будут содержать той или иной тип записи.

C – означает то, что записи вычисляемые, поэтому зная значение ключа KPOST или KPOTR можно найти соответствующую запись по значению ключа.

V - записи типа «договор» можно получить только через набор S1 или S2.

Описание схемы базы данных и запросы представлены в приложениях А и Б.

 

2.4 Проектирование базы данных с использованием объектно-ориентированной модели данных

 

Семантическая модель данных (SDM) позволяет моделировать как данные, так и их отношения в единой структуре, называемой объектом. Поскольку основной структурой модели является объект, модель SDM получила название объектно-ориентированной модели базы данных (object oriented database model, OODM). В свою очередь OODM стала основой создания объектно-ориентированной модели БД (OODMB), управление которой осуществляется с помощью системы управления объектно-ориентированной базой данных

Каждый объект – это сущность реального мира, взаимодействующая с другими объектами.

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

o набор данных не является больше пассивным;

o данные и процедуры, будучи связанные друг с другом, образуют объект;

o объект может воздействовать на самого себя.

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

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

 

Представление класса POST

 

Пример представления класса POTR

 

Определим класс с именем POST для хранения объектов-поставщиков. Все объекты класса POST используют одинаковую структуру (атрибуты) и отвечают на одинаковые сообщения (с помощью методов). Каждый экземпляр класса представляет собой объект с уникальным OID и каждый объект ‘знает’, какому классу он принадлежит.

 

 

ODM должна обладать следующими свойствами:

· поддерживать представление сложных объектов;

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

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

· поддерживать наследование, т.е. любой объект может наследовать свойства (данные и методы) других объектов;

· обеспечивать идентификацию объекта (OID).

Кроме того, можно кратко сформулировать следующие основные положения:

· OOMD сущности реального мира моделируются объектами;

· каждый объект состоит из атрибутов и набора методов;

· каждый атрибут может ссылаться на другой объект или множество объектов;

· атрибуты и реализации методов скрыты (инкапсулированы) от других объектов;

· каждый объект идентифицирует уникальным идентификатором объекта (OID), независящим от значений атрибутов этого объекта;

· схожие объекты группируются в класс, который содержит описание данных (атрибуты или переменные экземпляров) и реализации методов;

· класс описывает тип объекта;

· классы организованы в иерархию классов;

· каждый объект класса наследует все свойства своего суперкласса в иерархии классов.

Пространство объектов (object space) или схема объектов (object schema) используется для представления состояния объекта в данный момент времени.

 

3 ПРОЕКТИРОВАНИЕ ОСНОВНЫХ ПРОЦЕДУР

ПО ОБСЛУЖИВАНИЮ БАЗЫ ДАННЫХ

Ввод, просмотр и изменение данных производиться с помощью экранных форм. При запуске базы данных «Договоры» автоматически запускается форма “Меню”, которая позволяет перейти к любой таблице, форме или отчету.

Форма “Главное меню”:

 

 

Форма “Договор”:

 

 

 

Форма “Поставщик”:

 

 

Форма “Потребитель”:

 

Соответствующие коды форм представлены в приложениях В-


ПРИЛОЖЕНИЕ А

Описание схемы базы данных

 

DATABASE DOGOVOR {

DATAFILE ‘DOGOVOR.DAT’ CONTAINS SYSTEM, POST, POTR, DOG;

KEYFILE ‘DOGOVOR.KEY’ CONTAINS KPOST, KPOTR, KDOG;

RECORD POST

{

KEY int KPOST [5];

char NPOST [50];

char APOST [100];

}

RECORD POTR

{

KEY int KPOTR [5];

char NPOTR [50];

char APOTR [100];

}

RECORD DOG

{

KEY int KDOG [25];

      int KPOST [5];

int KPOTR [5];

      date DATA [];

}

SET P1

{

ORDER LAST;

OWNER SYSTEM;

MEMBER POST;

}

SET P2

{

ORDER LAST;

OWNER SYSTEM;

MEMBER POTR;

}

 

SET S1

{

ORDER LAST;

OWNER POST;

MEMBER DOG;

}

SET S2

{

ORDER LAST;

OWNER POTR;

MEMBER DOG;

}

}


 

ПРИЛОЖЕНИЕ Б

Запросы

 

 

1. Для данного потребителя получить сведения о договорах:

 

D_OPEN();

GET(KPOTR);

D_KEYFIND(KPOTR);

D_SETOR(S2);

FOR(D_FINDFM(S2); DB_STATUS==S_OKAY; D_FINDNM(S2));

{ D_RECREAD(&DOG);

<ОБРАБОТКА> }

D_CLOSE();

 

2. Для данного поставщика получить сведения о договорах:

 

D_OPEN();

GET(KPOST);

D_KEYFIND(KPOST);

D_SETOR(S1);

FOR(D_FINDFM(S1); DB_STATUS==S_OKAY; D_FINDNM(S1));

{ D_RECREAD(&DOG);

<ОБРАБОТКА> }

D_CLOSE();

 

 


 

ПРИЛОЖЕНИЕ В

Главная форма

Option Compare Database

 

'------------------------------------------------------------

' Кнопка1_Click

'

'------------------------------------------------------------

Private Sub Кнопка1_Click()

On Error GoTo Кнопка1_Click_Err

 

DoCmd.OpenReport "Отчет", acViewPreview, "", "", acNormal

 

 

Кнопка1_Click_Exit:

Exit Sub

 

Кнопка1_Click_Err:

MsgBox Error$

Resume Кнопка1_Click_Exit

 

End Sub

 

 

'------------------------------------------------------------

' Кнопка2_Click

'

'------------------------------------------------------------

Private Sub Кнопка2_Click()

On Error GoTo Кнопка2_Click_Err

 

DoCmd.OpenQuery "По дате", acViewNormal, acEdit

 

 

Кнопка2_Click_Exit:

Exit Sub

 

Кнопка2_Click_Err:

MsgBox Error$

Resume Кнопка2_Click_Exit

 

End Sub

 

 

'------------------------------------------------------------

' Кнопка3_Click

'

'------------------------------------------------------------

Private Sub Кнопка3_Click()

On Error GoTo Кнопка3_Click_Err

 

DoCmd.OpenQuery "По номеру договора", acViewNormal, acEdit

 

 

Кнопка3_Click_Exit:

Exit Sub

 

Кнопка3_Click_Err:

MsgBox Error$

Resume Кнопка3_Click_Exit

 

End Sub

 

 

'------------------------------------------------------------

' Кнопка4_Click

'

'------------------------------------------------------------

Private Sub Кнопка4_Click()

On Error GoTo Кнопка4_Click_Err

 

DoCmd.OpenQuery "По номеру поставщика", acViewNormal, acEdit

 

 

Кнопка4_Click_Exit:

Exit Sub

 

Кнопка4_Click_Err:

MsgBox Error$

Resume Кнопка4_Click_Exit

 

End Sub

 

 

'------------------------------------------------------------

' Кнопка5_Click

'

'------------------------------------------------------------

Private Sub Кнопка5_Click()

On Error GoTo Кнопка5_Click_Err

 

DoCmd.OpenForm "Поставщик", acNormal, "", "", , acNormal

 

 

Кнопка5_Click_Exit:

Exit Sub

 

Кнопка5_Click_Err:

MsgBox Error$

Resume Кнопка5_Click_Exit

 

End Sub

 

 

'------------------------------------------------------------

' Кнопка6_Click

'

'------------------------------------------------------------

Private Sub Кнопка6_Click()

On Error GoTo Кнопка6_Click_Err

 

DoCmd.OpenForm "Потребитель", acNormal, "", "", , acNormal

 

 

Кнопка6_Click_Exit:

Exit Sub

 

Кнопка6_Click_Err:

MsgBox Error$

Resume Кнопка6_Click_Exit

 

End Sub

 

 

'------------------------------------------------------------

' Кнопка7_Click

'

'------------------------------------------------------------

Private Sub Кнопка7_Click()

On Error GoTo Кнопка7_Click_Err

 

DoCmd.OpenForm "Договор", acNormal, "", "", , acNormal

 

 

Кнопка7_Click_Exit:

Exit Sub

 

Кнопка7_Click_Err:

MsgBox Error$

Resume Кнопка7_Click_Exit

 

End Sub

 


 

ПРИЛОЖЕНИЕ Г

Договоры

 

Option Compare Database

 

Private Sub Form_Load()

 

End Sub

 

Private Sub №_договора_BeforeUpdate(Cancel As Integer)

 

End Sub

 

Private Sub №_поставщика_BeforeUpdate(Cancel As Integer)

 

End Sub

 

Private Sub №_потребителя_BeforeUpdate(Cancel As Integer)

 

End Sub

 

Private Sub Дата_заключения_BeforeUpdate(Cancel As Integer)

 

End Sub

 

Private Sub ЗаголовокФормы_Click()

 

End Sub

 

Private Sub ОбластьДанных_Click()

 

End Sub


 

 

ПРИЛОЖЕНИЕ Д

Отчет

Option Compare Database

 

'------------------------------------------------------------

' отчет

'

'------------------------------------------------------------

Function отчет()

On Error GoTo отчет_Err

 

DoCmd.OpenReport "Отчет", acViewPreview, "", "", acNormal

 

 

отчет_Exit:

Exit Function

 

отчет_Err:

MsgBox Error$

Resume отчет_Exit

 

End Function

 



Поделиться:


Последнее изменение этой страницы: 2024-07-06; просмотров: 37; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.)