Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Свойства объектно-ориентированных моделей данных
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Факультет компьютерных наук и технологий
Кафедра ИИСА
Лабораторная работа №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 с.) |