Разработка базы данных оптового склада
Выбор идентифицирующего атрибута — для каждой сущности необходимо указать идентификатор, служащий для однозначного распознавания экземпляров сущности. В качестве идентификатора может служить один атрибут или совокупность из нескольких атрибутов. Набор значений этих атрибутов уникален, то есть значения идентификатора находятся во взаимнооднозначном соответствии с экземплярами сущности. В АИС… Читать ещё >
Разработка базы данных оптового склада (реферат, курсовая, диплом, контрольная)
пользователь интегрированный информационный приложение
На сегодняшний день существует огромное разнообразие баз данных, которые являются необходимым условием существования и развития информационных технологий. Информация — это основа существования современного мира и общества, а структуризация и упорядочивание этой информации делает действительность более простой и понятной. Именно поэтому базы данных столь необходимы для многих областей деятельности человека, будь то банковское дело, продовольственный магазин или же учет домашних расходов.
Актуальность темы
курсовой работы определена необходимостью проектирования баз данных и создания программных приложений для работы с ними для автоматизации деятельности какого-либо предприятия в целом, и сотрудников этих предприятий в частности.
Целью данной работы является освоение методов проектирования баз данных и работы с базами данных на примере базы данных строительного предприятия.
Для достижения поставленной цели необходимо решить следующие задачи:
· сформулировать задание на создание базы данных;
· спроектировать базу данных;
· создать таблицы базы данных средствами СУБД MS SQL Server;
· разработать фильтры и запросы к базе данных;
· разработать формы для доступа к базе данных.
1. Общие сведения
Под распределенной обычно подразумевают базу данных, включающую фрагменты из нескольких баз данных, которые располагаются на различных узлах сети компьютеров, и, возможно управляются различными системами управления базами данных (СУБД). Распределенная база данных выглядит с точки зрения пользователей и прикладных программ как обычная локальная база данных. В этом смысле слово «распределенная» отражает способ организации базы данных, но не внешнюю ее характеристику, то есть «распределенность» базы данных невидима извне.
Можно считать, что если прикладная информационная система опирается на некоторую систему управления данными, обладающую рядом свойств, то эта система управления данными является системой управления базами данных. Основная особенность СУБД — это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД, стали называть банки данных, а затем базы данных.
СУБД должна предоставлять доступ к данным любым пользователям, включая и тех, которые практически не имеют и (или) не хотят иметь представления о следующих:
· физическое размещение в памяти данных и их описаний;
· механизмы поиска запрашиваемых данных;
· проблемы, возникающие при одновременном запросе одних и тех же данных многими пользователями (прикладными программами);
· способы обеспечения защиты данных от некорректных обновлений и (или) несанкционированного доступа;
· поддержание баз данных в актуальном состоянии и т. д.
При выполнении основных функций СУБД должна использовать различные описания данных. Следует отметить, что проектирование этих описаний обычно поручается человеку (группе лиц) — администратору базы данных (АБД).
Объединяя частные представления о содержимом базы данных, полученные в результате опроса пользователей, и свои представления о данных, которые могут потребоваться в будущих приложениях, АБД сначала создает обобщенное неформальное описание создаваемой базы данных. Это описание, выполненное с использованием естественного языка, математических формул, таблиц, графиков и других средств, понятных всем людям, работающих над проектированием базы данных, называют информационно-логической (инфологической) моделью данных. Такая человеко-ориентированная модель полностью независима от физических параметров среды хранения данных. Инфологическая модель не должна изменяться до тех пор, пока какие-то изменения в реальном мире не потребуют изменения в ней некоторого определения, чтобы эта модель продолжала отражать предметную область. Цель инфологического моделирования — обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Поэтому инфологическую модель данных пытаются строить по аналогии с естественным языком (последний не может быть использован в чистом виде из-за сложности компьютерной обработки текстов и неоднозначности любого естественного языка).
С помощью машинно-ориентированных данных СУБД дает возможность программам и пользователям осуществлять доступ к хранимым данным лишь по их именам, не заботясь о физическом расположении этих данных. Нужные данные отыскиваются СУБД на внешних запоминающих устройствах по физической модели данных. Так как указанный доступ осуществляется с помощью конкретной СУБД, то модели должны быть описаны на языке описания данных этой СУБД. Такое описание, создаваемое по инфологической модели данных, называют даталогической моделью данных.
Трехуровневая архитектура (инфологический, даталогический и физический уровни) позволяет обеспечить независимость хранимых данных от использующих их программ. Можно подключить к системе любое число новых пользователей (новых приложений), дополнив, если надо, даталогическую модель. Указанные изменения физической и даталогической моделях не будут замечены существующими пользователями системы (окажутся «прозрачными» для них), так же как не будут замечены и новые пользователи. Следовательно, независимость данных обеспечивает возможность развития системы баз данных без разрушения существующих приложений.
Как уже было указано выше, инфологическое проектирование баз данных, а, следовательно, и проектирование автоматизированных информационных систем (АИС), заключается в установлении соответствия между состоянием предметной области и её описанием данными.
Средства, предназначенные для инфологического моделирования, должны удовлетворять следующим требованиям:
· язык спецификаций должен быть понятен заказчику и не содержать параметры реализаций информационных систем;
· инфологическая схема должна содержать все сведения о предметной области (ПО), необходимые для последующих этапов проектирования (включая количественные параметры, требования процессов обработки данных и т. д.);
· инфологическая модель ПО должна легко преобразовываться в модели данных распространённых СУБД.
На этапе инфологического проектирования информационная модель предметной области не связана со средствами реализации АИС. Она определяет особенности предметной области и информационные потребности разрабатываемой системы. Для этого используется диаграмма «сущность-связь». Диаграмма имеет следующие составные части: атрибут, сущность, связь.
Атрибут — логически неделимый элемент структуры информации.
Сущность — тип характеризуемого, реально существующего объекта, описываемого атрибутами (это может быть личность, место, вещь и т. д.). Тогда экземпляр сущности — реализация типа в конкретных значениях атрибута.
Связь — средство, с помощью которого представляются ассоциации между сущностями предметной области. В большинстве случаев связи бинарны. Между типами сущностей может быть прямое и обратное отображение. Существует два типа классификации связей.
Классификация бинарных связей по степени связи:
1) отображение 1:1 (связь «один-к-одному») — это такой тип связи между типами сущностей, А и В, когда каждому экземпляру сущности, А соответствует один экземпляр сущности В и наоборот. Идентификация экземпляров сущностей уникальна в обоих направлениях;
2) отображение 1: M (связь «один-ко-многим») — тип связи между типами сущностей, А и В, когда одному экземпляру сущности, А может соответствовать 0, 1 или несколько экземпляров сущности В, а каждому экземпляру типа В соответствует только один экземпляр сущности А. Идентификация экземпляров уникальна только в направлении от М-связанной сущности к 1-связанной сущности;
3) отображение М:1 (связь «многие-к-одному») — является обратным к отображению 1: М;
4) отображение М: N (связь «многие-ко-многим») — тип связи между типами сущностей, А и В, когда каждому экземпляру сущности, А может соответствовать 0, 1 или несколько экземпляров сущности В и наоборот. Идентификация экземпляров сущностей неуникальна в обоих направлениях.
Класс принадлежности — характеристика, которая определяет обязательность связей между экземплярами сущностей, А и В.
Классификация связей по классу принадлежности:
1) обязательный класс принадлежности обоих типов сущностей;
2) класс принадлежности сущности тапа, А обязательный, сущности типа В необязательный;
3) класс принадлежности обоих типов сущностей необязательный.
При построении диаграммы «сущность-связь» используются нижеописанные операции.
Формулирование сущностей — указание типов объектов предметной области, о которых в АИС будет накапливаться информация.
Выбор идентифицирующего атрибута — для каждой сущности необходимо указать идентификатор, служащий для однозначного распознавания экземпляров сущности. В качестве идентификатора может служить один атрибут или совокупность из нескольких атрибутов. Набор значений этих атрибутов уникален, то есть значения идентификатора находятся во взаимнооднозначном соответствии с экземплярами сущности. В АИС идентифицирующие атрибуты называют первичными ключами. Соответственно первичный ключ может быть простым или составным. Если для описания сущности выбрана совокупность атрибутов, не содержащая ключа, то в состав атрибутов вводится специальный атрибут, который выступает в качестве первичного ключа.
Определение связей — выявляются зависимости между сущностями. Определяют, какие связи необходимы, какие избыточны. Для выделенных связей определяются их характеристики (степень связи, класс принадлежности).
В графической диаграмме «сущность-связь» обозначают: типы сущностей — прямоугольниками; атрибуты — овалами, соединёнными с соответствующими типами сущностей ненаправленными рёбрами; связи — ромбами, которые соединяются с соответствующими типами сущностей направленными рёбрами. При этом, если класс принадлежности типа сущности обязательный, рёбра обозначаются сплошной линией, если класс принадлежности необязательный — пунктирной линией. Идентифицирующие атрибуты подчёркиваются.
Преобразование инфологической модели в даталогическую можно осуществить различными способами. Наиболее удобной является табличная даталогическая модель, основанная на реляционных отношениях. Концепция реляционной модели была разработана Е. Коддом. Будучи математиком по образованию Е. Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Он показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известного в математике как отношение (от англ. relation).
Элементами отношения являются кортежи. При этом строки таблицы соответствуют кортежам, а столбцы — атрибутам. Поскольку отношение есть множество, то в нём не должны встречаться одинаковые кортежи, а порядок расположения кортеже несущественен. Для отражения ассоциаций между кортежами отношений используется дублирование ключей.
Проблемы проектирования схемы базы данных в рамках реляционной модели заключаются в определении состава атрибутов в отношениях. Задача группировки атрибутов в отношениях допускает большое количество вариантов, при условии, что набор возможных отношений заранее не фиксирован. Рациональные варианты группировки атрибутов в отношения должны отвечать следующим требованиям:
· число выбранных атрибутов в отношениях для формирования первичных ключей должно быть минимальным;
· выбранный состав отношений по возможности должен быть минимальным;
· процедуры обработки и обновления данных не должны вызывать осложнений.
Для решения этих задач Коддом был разработан математический аппарат, называемый нормализацией отношений. Однако, используя корректно построенную инфологическую модель и выделив основные особенности нормализованных отношений, можно обойтись, не вдаваясь в подробности нормализации, следующими правилами формирования реляционных таблиц.
1. Если имеется связь степени 1:1 и класс принадлежности обеих сущностей обязательный, то требуется всего одна таблица. Первичным ключом этой таблицы может быть любой из ключей сущностей.
2. Если имеется связь степени 1:1 и класс принадлежности одной сущности является обязательным, а другой необязательным, то требуется две таблицы. Для каждой сущности необходимо создать свою таблицу, первичным ключом которой будет ключ этой сущности. Кроме того, первичный ключ сущности с необязательным классом принадлежности должен быть добавлен в качестве атрибута в таблицу, созданную для сущности с обязательным классом принадлежности.
3. Если имеется связь степени 1:1 и класс принадлежности обеих сущностей является необязательным, то требуется три таблицы. Для каждой сущности необходимо создать свою таблицу, первичным ключом которой будет ключ этой сущности. Кроме того, связующая таблица должна содержать в себе ключи связываемых таблиц в качестве атрибутов.
4. Если имеется связь степени 1: М и класс принадлежности М-связной сущности является обязательным, то требуется две таблицы. Для каждой сущности необходимо создать свою таблицу, первичным ключом которой будет ключ этой сущности. Кроме того, первичный ключ 1-связной сущности должен быть добавлен в качестве атрибута в М-связную таблицу.
5. Если имеется связь степени 1: М и класс принадлежности М-связной сущности является обязательным, то требуется три таблицы. Для каждой сущности необходимо создать свою таблицу, первичным ключом которой будет ключ этой сущности. Кроме того, связующая таблица должна содержать в себе ключи связываемых таблиц в качестве атрибутов.
6. Если имеется связь степени М: N, то требуется три таблицы. Для каждой сущности необходимо создать свою таблицу, первичным ключом которой будет ключ этой сущности. Кроме того, связующая таблица должна содержать в себе ключи связываемых таблиц в качестве атрибутов.
Как уже отмечалось ранее, физическая модель данных — модель, определяющая размещение данных на внешних носителях, методы доступа и технику индексирования. Она так же называется внутренней моделью системы.
Инфологические и даталогические модели никак не связаны с типом физической памяти, в которой будут храниться данные, и с методами доступа к этим данным. Внутренние модели наоборот определяют и оперируют размещением данных и их взаимосвязями на запоминающих устройствах.
Физическая организация данных оказывает основное влияние на эксплуатационные характеристики БД. Существует большое разнообразие способов реализации и корректировки физических моделей современных промышленных БД, что не позволяет рассмотреть их подробно.
Физическая модель данных является полностью машинно-ориентированной и конечные пользователи не имеют никакого представления о том, каким образом данные запоминаются и извлекаются или каким способом организуются индексы в таблицах для быстрого поиска или ссылочная целостность. Эти и множество других функций по методам доступа и поддержании баз данных на внешних носителях, а также способов поиска и доступа к данным в современных СУБД обеспечивается в основном ядром базы данных, что значительно облегчает задачу создания БД и их ведение.
В подавляющем большинстве случаев для реализации физической модели базы данных используют структурированный язык запросов SQL, а в случае использования СУБД Oracle он фактически является единственным способом для представления информации пользователю в удобном для него виде, скрывая технические подробностей получения этой информации.
SQL (Structured Query Language) символизирует собой структурированный язык запросов. SQL является инструментом, предназначенным для обработки и чтения данных, содержащихся в компьютерной базе данных. Это язык, который дает возможность эффективно создавать реляционные базы данных и работать с ними. Как следует из названия, SQL является языком программирования, который применяется для организации взаимодействия пользователя с базой данных. На самом деле SQL работает только с базами данных реляционного типа.
Если пользователю необходимо прочитать данные из базы данных, он запрашивает их у СУБД с помощью SQL. СУБД обрабатывает запрос, находит требуемые данные и посылает их пользователю. Процесс запрашивания данных и получения результата называется запросом к базе данных: отсюда и название — структурированный язык запросов.
Вот основные моменты, характеризующие удобство применения SQL:
· организация данных. SQL дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между элементами базы данных;
· чтение данных. SQL дает пользователю или приложению возможность читать из базы данных содержащиеся в ней данные и пользоваться ими;
· обработка данных. SQL дает пользователю или приложению возможность изменять базу данных, т. е. добавлять в нее новые данные, а также удалять или обновлять уже имеющиеся в ней данные;
· управление доступом. С помощью SQL можно ограничить возможности пользователя по чтению и изменению данных и защитить их от несанкционированного доступа;
· совместное использование данных. SQL координирует совместное использование данных пользователями, работающими параллельно, чтобы они не мешали друг другу;
· целостность данных. SQL позволяет обеспечить целостность базы данных, защищая ее от разрушения из-за несогласованных изменений или отказа системы.
Язык запросов дает несомненные преимущества. Во-первых он продолжает идеологию архитектуры «клиент-сервер». Клиентская часть приложения подготавливает запрос на обработку информации и отсылает запрос на сервер базы данных. Сервер, обработав полученный запрос возвращает клиентской программе готовый результат. Основные преимущества напрямую вытекают из преимуществ клиент-серверного подхода. Например, простое суммирование значений всех полей без использования SQL приведет к пересылке всей таблицы по сети на машину клиента. После суммирования таблица фактически уже не нужна и такое использование сети как минимум не рационально. В случае же с SQL по сети уйдет запрос на сервер, сервер проведет суммирование и вернет обратно по сети только полученную сумму. Элегантность и независимость от специфики компьютерных технологий (аппаратных платформ), а также его поддержка лидерами промышленности в области технологии реляционных баз данных, сделало SQL, и вероятно в течение обозримого будущего оставит его, основным стандартным языком. Стандарт SQL определяется ANSI (Американский Национальный Институт Стандартов) и в данное время также принимается ISO (Международная организация по стандартизации). В целом, список преимуществ, на которые стоит обратить внимание в первую очередь, можно представить в следующем виде:
· независимость от конкретных СУБД;
· переносимость с одной вычислительной системы на другую;
· наличие стандартов;
· поддержка со стороны компании Microsoft (протокол ODBC);
· реляционная основа;
· высокоуровневая структура, напоминающая английский язык;
· возможность выполнения специальных интерактивных запросов:
· обеспечение программного доступа к базам данных;
· возможность различного представления данных;
· полноценность как языка, предназначенного для работы с базами данных;
· возможность динамического определения данных;
· поддержка архитектуры клиент / сервер.
Все перечисленные выше факторы явились причиной того, что SQL стал стандартным инструментом для управления данными на персональных компьютерах, мини-компьютерах и больших ЭВМ.
Следует заметить, что SQL — это не полноценный компьютерный язык типа С/С++ или Pascal. В SQL нет операторов для проверки условий, нет операторов для организации переходов и нет операторов для создания циклов. SQL является подъязыком баз данных, в который входит около тридцати операторов, предназначенных для управления базами данных. Операторы SQL встраиваются в базовый язык программирования и дают возможность получать доступ к базам данных.
Наконец, SQL — это слабо структурированный язык, несмотря на название, особенно по сравнению с такими сильно структурированными языками, как С или Pascal. Операторы SQL напоминают английские предложения и содержат «слова-пустышки», не влияющие на смысл оператора, но облегчающие его чтение. В SQL почти нет нелогичностей, к тому же имеется ряд специальных правил, предотвращающих создание операторов SQL, которые выглядят как абсолютно правильные, но не имеют смысла.
SQL-операторы делятся на три типа [10]:
1) DDL — Data Definition Language (Язык Определения Данных): эти операторы действуют на структуру объектов базы данных и неявно используют словарь данных. До и после выполнения каждого DDL-оператора Oracle неявно выполняет операцию фиксации всех изменений;
2) DML — Data Manipulation Language (Язык Манипулирования Данными): выполняют различные действия над данными;
3) EMB — Embedded SQL (Встроенный SQL): операторы, используемые для помещения DDLи DML-операторов внутрь программы на процедурном языке.
В таблице 1 приведены основные операторы SQL с указанием их типа и назначения.
Описание | Тип | Действие | |
/*…*/ | Помещает комментарий внутри или между SQL-операторами. | ||
ALTER INDEX | DDL | Переопределяет будущее распределение памяти индекса. | |
ALTER SEQUENCE | DDL | Переопределяет генерацию последовательных номеров. | |
ALTER TABLE | DDL | Добавляет, переопределяет столбцы к таблице. | |
ALTER USER | DDL | Меняет пароль пользователя, умалчиваемое табличное пространство и умалчиваемое временное табличное пространство. | |
COMMIT | DML | Делает изменения, проведенные с начала транзакции, постоянными. | |
CONNECT | EMB | Подключает пользователя к базе данных. | |
CREATE INDEX | DDL | Создаёт индекс для таблицы. | |
CREATE SEQUENCE | DDL | Создаёт последовательность, пригодную для генерирования основных ключей. | |
CREATE SYNONYM | DDL | Создаёт синоним для таблицы или обзора. | |
CREATE TABLE | DDL | Создаёт таблицу и определяет её столбцы и распределение памяти. | |
CREATE VIWE | DDL | Определяет обзор на одной или нескольких таблицах или других обзорах. | |
DELETE | DML | Удаляет все или выбранные строки из таблицы. | |
DROP object | DDL | Удаляет индекс, последовательность, синоним, таблицу или обзор из базы данных | |
GRANT | DDL | Создаёт новых пользователей базы данных, назначает пароли и предоставляет пользователям привилегии системы Oracle (привилегии на таблицы, использование ресурсов табличного пространства). | |
INSERT | DML | Добавляет к таблице или обзору новые строки. | |
LOCKTABLE | DML | Блокирует таблицу, временно ограничивая к ней доступ другим пользователям. | |
PREPARE | EMB | Выполняет разбор SQL-оператора. | |
RENAME | DDL | Изменяет имена таблиц, обзоров или синонимов. | |
REVOKE | DDL | Отменяет привилегии по базе данных или пользовательские привилегии по доступу к таблицам. | |
ROLLBACK | DML | Откатывает все проведённые изменения к точке сохранения или к началу транзакции. | |
SAVEPOINT | DML | Устанавливает контрольную точку, к которой впоследствии можно будет выполнить откат. | |
SELECT | DML | Выполняет запрос; выбирает строки и столбцы из одной или нескольких таблиц. | |
UPDATE | DML | Изменяет данные в таблице. | |
VALIDATE INDEX | DDL | Проверяет целостность индекса. | |
Как показывает практика, из всех вышеперечисленных операторов наиболее часто используются операторы работы с таблицами, на основе которых и формируются запросы пользователей для получения некоторой информации из БД.
2. Разработка базы данных и интегрирование информационного приложения «Оптового склада»
2.1 Постановка задачи
Анализ предметной области
База данных создается для автоматизации деятельности сотрудников строительной компании.
База данных должна содержать данные о сотрудниках компании, клиентах, видах работ.
В соответствии предметной областью система строится с учётом следующих обязанностей:
— на оптовом складе работают несколько сотрудников, которые работают в определенных должностях;
— на оптовом складе имеется несколько видов работ;
— на оптовый склад обращаются клиенты, т. е. заказчики с различными видами материала.
Выделим базовые сущности этой предметной области:
— Сотрудники строительной компании. Атрибуты сотрудников — Код сотрудника, Ф.И.О., Возраст, Пол, Адрес, Телефон, Паспортные данные, Код должности.
— Должности. Атрибуты — Код должности, Наименование должности, Оклад, Обязанности, Требования.
— Товары. Атрибуты — Код типа, Производитель, Наименование, Условия хранения, Упаковка, Срок годности.
— Типы товаров. Атрибуты — Код типа, Наименование, Описание, Особенности.
— Поставщики. Атрибуты — Код поставщика, Наименование, Адрес, Телефон, Код поставляемого товара 1, Код поставляемого товара 2, Код поставляемого товара 3.
— Заказчики. Атрибуты — Код заказчика, Наименование, Адрес, Телефон, Код потребляемого товара 1, Код потребляемого товара 2, Код потребляемого товара 3.
— Склад. Атрибуты — Дата поступления, Дата заказа, Дата отправки, Код товара, Код поставщика, Код заказчика, Способ доставки, Объём, Цена, Код сотрудника.
Опишем структуру таблиц, определив типы полей, размер и формат данных, первичные и внешние ключи, допустимость NULL-значений и т. д. Описание структуры таблиц представлено в табл. 2−8.
Таблица 2 — Описание структуры таблицы «Сотрудники»
Поле | Тип данных | Размер/формат данных | Ключ | NULL значения | Примечание | |
Код сотрудника | INT | PK | ; | IDENTITY (1,1) | ||
Ф.И.О. | VARCHAR | ; | ||||
Возраст | INT | |||||
Пол | VARCHAR | |||||
Адрес | VARCHAR | |||||
Телефон | VARCHAR | |||||
Паспортные данные | VARCHAR | |||||
Код должности | INT | FK | ; | |||
Таблица 3 — Описание структуры таблицы «Должности»
Поле | Тип данных | Размер/формат данных | Ключ | NULL значения | Примечание | |
Код должности | INT | PK | ; | IDENTITY (1,1) | ||
Наименование должности | VARCHAR | ; | ||||
Оклад | MONEY | ; | ; | |||
Обязанности | VARCHAR | |||||
Требования | VARCHAR | |||||
Таблица 4 — Описание структуры таблицы «Товары»
Поле | Тип данных | Размер/формат данных | Ключ | NULL значения | Примечание | |
Код товара | INT | PK | ; | IDENTITY (1,1) | ||
Код типа | INT | ; | ||||
Производитель | VARCHAR | |||||
Наименование | VARCHAR | ; | ||||
Условия хранения | VARCHAR | FK | ; | |||
Упаковка | VARCHAR | FK | ; | |||
Срок годности | DATA | ; | FK | ; | ||
Таблица 5 — Описание структуры таблицы «Типы товаров»
Поле | Тип данных | Размер/формат данных | Ключ | NULL значения | Примечание | |
Код типа | INT | PK | ; | IDENTITY (1,1) | ||
Наименование | VARCHAR | ; | ||||
Описание | VARCHAR | |||||
Особенности | VARCHAR | ; | ||||
Таблица 6 — Описание структуры таблицы «Поставщики»
Поле | Тип данных | Размер/формат данных | Ключ | NULL значения | Примечание | |
Код поставщика | INT | PK | ; | IDENTITY (1,1) | ||
Наименование | VARCHAR | |||||
Адрес | VARCHAR | |||||
Телефон | VARCHAR | |||||
Код поставляемого товара 1 | INT | FK | ; | |||
Код поставляемого товара 2 | INT | FK | ; | |||
Код поставляемого товара 3 | INT | FK | ; | |||
Таблица 7 — Описание структуры таблицы «Заказчики»
Поле | Тип данных | Размер/формат данных | Ключ | NULL значения | Примечание | |
Код заказчика | INT | PK | ; | IDENTITY (1,1) | ||
Наименование | VARCHAR | ; | ||||
Адрес | VARCHAR | |||||
Телефон | VARCHAR | ; | ||||
Код потребляемого товара 1 | INT | |||||
Код потребляемого товара 1 | INT | |||||
Код потребляемого товара 1 | INT | |||||
Таблица 8 — Описание структуры таблицы «Склад»
Поле | Тип данных | Размер/формат данных | Ключ | NULL значения | Примечание | |
Дата поступления | DATA | ; | FK | ; | IDENTITY (1,1) | |
Дата заказа | DATA | ; | FK | ; | ||
Дата отправки | DATA | ; | FK | ; | ||
Код товара | INT | ; | ||||
Код поставщика | INT | ; | FK | ; | ||
Код заказчика | INT | ; | ||||
Способ доставки | VARCHAR | |||||
Объем | VARCHAR | |||||
Цена | MONEY | ; | FK | ; | ||
Код сотрудника | INT | ; | ||||
Анализ информационных задач и круга пользователей системы
Система создается для автоматизации деятельности следующих групп пользователей:
· дирекция;
· отдел кадров;
· служба заказов.
Функциональные возможности:
· ведение БД (запись, чтение, модификация, удаление);
· обеспечение логической непротиворечивости БД;
· реализация наиболее часто используемых запросов;
· поиск, фильтрация данных по определенному значению или признаку.
Используя предоставленные возможности, группы пользователей могут:
· проводить контроль действий подчиненных;
· осуществлять кадровую деятельность;
· осуществлять прием заказов от клиентов и вести учет заказов и их выполнения.
Также все пользователи могут получить любую информацию из базы данных в систематизированном и удобном для анализа виде.
2.2 Разработка базы данных в Microsoft SQL Server 2008
Запустим среду разработки «SQL server Management Studio», выбрав меню «Пуск» — «Программы» — «Microsoft SQL Server 2008» — «Среда SQL server Management Studio». После запуска среды разработки в появившимся окне «Соединение с сервером» нажмем «Соединить».
Перейдем непосредственно к созданию файла данных. Для этого в обозревателе объектов щелкнем правой клавишей мыши на папке «Базы данных» и в появившемся меню выберем пункт «Создать базу данных». Настроим основные настройки «Общие», выбрав соответствующую страницу. В правой части окна «Создание базы данных» появятся основные настройки. Зададим параметр «Имя базы данных» равным «BuildFirm», а параметр «Владелец» оставим без изменений. Остальные настройки оставим без изменения, после чего нажмем «ОК» и в списке баз данных появится только что созданная база.
Перейдем к созданию таблиц базы данных. Для этого щелкнем правой клавишей мыши по папке «Таблицы» и в появившемся меню выберем пункт «Создать таблицу». Появиться окно создания новой таблицы, в котором введем названия полей, типы данных, укажем допустимость Null-значений, установим первичный ключ и т. д.
Таблица «Сотрудники»
Таблица «Должности»
Таблица «Товары»
Таблица «Типы товаров»
Таблица «Поставщики»
Таблица «Заказчики»
Рисунок 8 — Таблица «Склад»
Далее установим связи между таблицами по внешним ключам. Для этого в окне проекта таблицы необходимо щелкнуть правой клавишей мыши и выбрать пункт меню «Отношения». В появившемся окне необходимо задать спецификации связываемых таблиц по соответствующим полям, после чего установить использование каскадного обновления и удаления данных в связанных таблицах.
Для заполнения таблицы в обозревателе объектов необходимо щелкнуть правой кнопкой мыши по названию таблицы и выбрать пункт меню «Изменить первые 200 строк». В рабочей области «SQL server Management Studio» появится окно заполнения таблиц. Заполним таблицы данными в соответствии с вариантом задания.
Данные таблицы «Сотрудники»
Данные таблицы «Должности»
Данные таблицы «Товары»
Данные таблицы «Типы товаров»
Данные таблицы «Поставщики»
Данные таблицы «Заказчики»
Данные таблицы «Склад»
Теперь перейдем к разработке фильтров и запросов. В обозревателе объектов «Microsoft SQL Server 2008» все запросы базы данных находятся в папке «Представления».
Создадим запрос «Отдел кадров», связывающий таблицы «Сотрудники» и «Должности» по полю «Код должности». Для создания нового запроса необходимо в обозревателе объектов в БД «BuildFirm» щелкнуть правой клавишей мыши по папке «Представления», затем в появившемся меню выбрать пункт «Создать представление». Появится окно «Добавление таблицы», предназначенное для выбора таблиц и запросов, участвующих в новом запросе. Добавим в новый запрос таблицы «Сотрудники» и «Должности», после чего закроем окно добавления таблиц. В появившемся окне конструктора запросов отметим поля, которые необходимо вывести на экран при выполнении запроса. Сохраним запрос под именем «Отдел кадров».
Текст запроса «Отдел кадров»
Запросы «Список товаров», «Список поставщиков», «Список заказчиков», «Заказы» связывающие таблицы базы данных в соответствии с заданием, создаются аналогичным образом.
Для данных запросов тексты запросов отражены — на рис. 17, 18, 19,20 соответственно.
Текст запроса «Список товаров»
Текст запроса «Список поставщиков»
Текст запроса «Список заказчиков»
Текст запроса «Заказы»
На основе уже имеющихся запросов создадим фильтры согласно варианту задания.
Создадим запрос (фильтр) «Фильтр Отдел кадров» для отображения сотрудников отдельных должностей на основе запроса «Отдел кадров».
Для создания нового запроса необходимо в обозревателе объектов в БД «BuildFirm» щелкнуть правой клавишей мыши по папке «Представления», затем в появившемся меню выбрать пункт «Создать представление». Появится окно «Добавление таблицы», предназначенное для выбора таблиц и запросов, участвующих в новом запросе. Добавим в новый запрос уже имеющийся запрос «Отдел кадров», после чего закроем окно добавления таблиц.
В появившемся окне конструктора отметим поля, которые необходимо вывести на экран при выполнении запроса, и установим значения фильтра для поля «Наименование должности» в столбце «Filter». Сохраним запрос под именем «Фильтр Должностей». Текст запроса указанного фильтра приведен на рис. 21.
Текст запроса «Фильтр Отдел кадров»
Запросы (фильтры) «Фильтр Список работ», «Фильтр по типу товаров» (для отображения отдельных типов товаров), «Фильтр по поставщикам» (для отображения заказов отдельных поставщиков), «Фильтр по заказчикам» (для отображения заказов отдельных заказчиков), «Фильтр по способам доставки» (для отображения товаров по отдельным способам доставки) создаются аналогичным образом.
Текст запроса «Фильтр по типу товаров»
Текст запроса «Фильтр поставщиков»
Текст запроса «Фильтр заказчиков»
Текст запроса «Фильтр по способам доставки»
2.3 Разработка интегрированного информационного приложения «Microsoft Visual Studio 2008»
В качестве среды разработки клиентского приложения для работы с базой данных была выбрана среда Microsoft Visual Studio 2008, а для написания кода применялся язык программирования C#. Поскольку все современные языки программирования обладают широкими функциональными возможностями, то их выбор в большинстве своем определяется предпочтениями программиста. Выбор же среды программирования обусловлен тем, что среда разработки оконных приложений и СУБД выпущены одной компанией, что сводит к минимуму появление проблем совместимости программных продуктов. Дадим краткую характеристику среды и языка программирования Microsoft Visual Studio C#.
Microsoft Visual Studio — линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE.NET Framework, Xbox, Windows Phone.NET Compact Framework и Microsoft Silverlight.
Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).
Создаем пользовательский интерфейс нашей БД в «Microsoft Visual Studio 2008». Его создание начнем с создания главной кнопочной формы. Для создания кнопки на панели объектов необходимо нажать кнопку Button, а затем нарисовать прямоугольник мышью на форме, удерживая ЛKM. Внешний вид готового внешнего интерфейса примет вид как на рисунке.
Внешний вид кнопочной формы
Программный код базы данных:
Public Class Form1
Private Sub Button1_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button1. Click
Form2. Show ()
End Sub
Private Sub Button2_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button2. Click
Form3. Show ()
End Sub
Private Sub Button3_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button3. Click
Form4. Show ()
End Sub
Private Sub Button4_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button4. Click
Form5. Show ()
End Sub
Private Sub Button5_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button5. Click
Form6. Show ()
End Sub
Private Sub Button6_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button6. Click
Form7. Show ()
End Sub
Private Sub Button7_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button7. Click
Form8. Show ()
End Sub
Private Sub Button8_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button8. Click
Form9. Show ()
End Sub
Private Sub Button9_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button9. Click
Form10. Show ()
End Sub
Private Sub Button10_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button10. Click
Form11. Show ()
End Sub
Private Sub Button11_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button11. Click
Form12. Show ()
End Sub
Private Sub Button12_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button12. Click
Form13. Show ()
End Sub
Private Sub Button13_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button13. Click
Form14. Show ()
End Sub
Private Sub Button14_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button14. Click
Form15. Show ()
End Sub
Private Sub Button15_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button15. Click
Form16. Show ()
End Sub
Private Sub Button16_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button16. Click
Form17. Show ()
End Sub
Private Sub Button17_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button17. Click
Form18. Show ()
End Sub
End Class
Заключение
В ходе данной курсовой работы на основе результатов сбора и анализа информации, касающейся исследуемой предметной области, была проведена работа по проектированию базы данных оптового склада и созданию пользовательского интерфейса для работы с ней.
Для достижения этого результата были решены следующие задачи:
· спроектирована база данных;
· созданы таблицы базы данных средствами СУБД MS SQL Server;
· разработаны фильтры и запросы к базе данных;
· разработаны формы для доступа к базе данных в среде Microsoft Visual Studio 2008 C#.
По итогам проведенной работы были получены навыки проектирования баз данных, создания физической реализации базы данных и приложения для работы с ней с использованием указанных программных средств.
Список использованных источников
1. Кузнецов С. Д. Базы данных: учебник для студ. Учреждений высшего проф. Образования / С. Д. Кузнецов. — М.: Издательский центр «Академия», 2012. — 496 с.
2. Дейт, К.Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2006. — 1328 с.
3. Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учебник для высших учебных заведений / Под ред. Проф. А. Д. Хоменко. — 4-е изд., доп. И перераб. — СПб.: КОРОНА принт, 2004, 736 с.
4. Карпова Т. С. Базы данных: модели, разработка, реализация. СПб.:Питер, 2001, 304 с
5. Чопоров О. Н., Бухонова О. В. Базы и банки данных, учебное пособие / О. Н. Чопоров, О. В. Бухонова. Воронеж: Изд-во ВГТУ, 2000, 146 с
6. Астахова И. Ф., Мельников В. М., Толстобров А. П., Фертиков В. В. СУБД. Язык SQL в примерах и задачах. Учебное пособие. — М.: Физматлит, 2009. — 168 с.
7. Фиайли К. SQL. Учебное пособие. — М.: ДМК Пресс, 2007 — 451 с.
8. Петкович Д. Microsoft SQL Server 2008. Руководство для начинающих / Пер. с англ. А. Бондарь. — СПб.: БХВ-Петербург, 2009. — 752 с.
9. Уолтерс Р., Коулс М., Феррачати Ф. К., Рей Р., Фармер Д. SQL Server 2008. Ускоренный курс для профессионалов. / Пер. с англ. Ю. Артеменко. — М.: Вильямс, 2009. — 768 с.
10. Электронный курс национального открытого университета ИНТУИТ: Проектирование информационных систем в Microsoft SQL Server 2008 и Visual Studio 2008 (http://www.intuit.ru/studies/courses/502/358/info)