Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XXXVII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 24 декабря 2015 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Хачатурян В.А. ПРОЕКТИРОВАНИЕ БД В СРЕДЕ MICROSOFT VISUAL STUDIO // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XXXVII междунар. студ. науч.-практ. конф. № 10(36). URL: http://sibac.info/archive/technic/10(36).pdf (дата обращения: 25.04.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов


ПРОЕКТИРОВАНИЕ  БД  В  СРЕДЕ  MICROSOFT  VISUAL  STUDIO


Хачатурян  Владислав  Альбертович


студент  3  курса,  кафедра  автоматизированных  систем  управления  филиала  ФГБОУ  ВПО  МИРЭА, 
РФ,  г.  Ставрополь


E-mailvlad.ha4@yandex.ru


Авакян  Тамара  Ашотовна


доцент,  кафедра  автоматизированных  систем  управления  филиала  ФГБОУ  ВПО  МИРЭА, 
РФ,  г.  Ставрополь


 


Проектирование  приложения  для  работы  с  базой  данных  –  сложный  процесс,  который  начинается  с  рассмотрения  предметной  области,  а  заканчивается  созданием  приложения,  поддерживающего  просмотр,  добавление,  удаление,  сортировку  и  поиск  записей,  взаимосвязанных  друг  с  другом  в  рамках  данной  предметной  области  [1].  Для  изучения  особенностей  реализации  этих  функций  на  примере  конкретного  проекта  выберем  предметную  область  «Автоматизация  рабочего  места  сотрудника  коммерческой  фирмы».


Преимущество  Microsoft  Visual  Studio  перед  другими  средствами  проектирования  баз  данных  –  разнообразие  всевозможных  средств,  позволяющих  реализовать  практически  любую  задумку  заказчика  или  программиста.  Этому  способствует  большое  количество  встроенных  в  среду  разработки  элементов,  начиная  с  кнопок  и  заканчивая  средствами  интеграции  с  файлами  баз  данных,  таких  как  Oracle,  SQL  Server,  Access.  Это  означает,  что  можно  создать  базу  данных  в  любой  удобной  среде  моделирования.


При  работе  с  базой  данных  в  среде  разработки  Visual  Studio  есть  возможность  не  только  задать  все  ограничения  первичного  ключа,  но  и  вообще  исключить  пользователя  из  данного  процесса.  Для  создания  набора  таблиц  удобно  использовать  встроенный  элемент  DataSet,  поддерживающий  режим  конструктора  таблиц,  в  котором  для  столбца,  содержащего  первичный  ключ  (ПК),  указаны  необходимые  свойства  (таблица  1).


Таблица  1. 


Свойства  столбца  с  ПК



 


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


В  примере  (рисунок  1)  данные  отображаются  в  элементе  DataGridView,  представляющем  собой  таблицу.  Особенность  этого  элемента  в  том,  что  ячейка  необязательно  является  текстовым  полем  для  ввода  данных  с  клавиатуры.  Один  из  доступных  типов  ячейки  –  ComboBoxColumn,  то  есть  выпадающей  список.  При  настройке  выпадающего  списка  необходимо  указать  только  набор  данных,  из  которого  осуществляется  выбор  (рисунок  2).  В  результате  получается  поле,  при  нажатии  на  которое  открывается  список,  позволяющий  выбрать  нужное  значение.  В  данном  случае,  товар  «Хлеб  пшеничный»  относится  к  виду  товара  с  кодом  2,  то  есть  к  хлебобулочным  изделиям.


 



Рисунок  1.  Реализация  внешнего  ключа  посредством  выпадающего  списка


 



Рисунок  2.  Настройка  выпадающего  списка  в  элементе  DataGridView


 


Для  поиска  данных  используется  параметрический  запрос,  написанный  на  языке  SQL  [3]. 

SELECT  [Код  поставщика],  Наименование,  [Тип  поставщика],  Адрес,  Телефон,  Договор,  ОГРН,  ИНН,  КПП

FROM  Поставщик 

WHERE  (LOWER(Наименование)  LIKE  LOWER(@1))  AND  (LOWER(Адрес)  LIKE  LOWER(@2))  AND  (LOWER(Телефон)  LIKE  (@3))  AND  (ОГРН  LIKE  @4  OR  ОГРН  IS  NULL)  AND  (ИНН  LIKE  @5  OR  ИНН  IS  NULL)  AND  (КПП  LIKE  @6  OR  КПП  IS  NULL)


 


Оператор  SELECT  указывает,  какие  поля  необходимо  выбрать  из  таблицы  Поставщик.  После  оператора  WHERE  следуют  условия  поиска,  объединённые  операторами  AND/OR  (и/или).  Оператор  CAST  преобразует  число  [Код  должности]  в  строку.  Операторы  LOWER  преобразует  строки  в  нижний  регистр.  Оператор  IS  NULL  позволяет  найти  незаполненные  строки.  Параметры  с  @1  по  @6  будут  загружены  из  элементов  textBox  (рисунок  3).


 



Рисунок  3.  Поиск  поставщиков  по  наименованию


 


Итак,  в  рассматриваемой  фирме  есть  товар,  и  есть  операции  над  этим  товаром  (покупка,  продажа,  списание  и  др.).  Для  владельца  фирмы  необходима  такая  функция,  как  подсчёт  остатка  товара.  Подобный  отчёт  можно  легко  реализовать  и  в  Visual  Studio  с  использованием  циклов  [5].  Внутри  первого  цикла  перебираются  все  товары,  для  которых  необходимо  составить  отчёт:

for  (int  i  =  0;  i  <  Товар2->Rows->Count-1;  i++)  {...}


Внутри  второго  цикла  происходит  перебор  всех  операций.  Если  поля  Код  товара  совпадают  в  обоих  таблицах  (Товар  и  Операция),  то  в  зависимости  от  вида  операции  (в  данной  программе  код  покупки  –  1,  продажи  –  2,  списания  –  3)  происходит  накопление  суммы.  При  покупке  товар  добавляется  к  остатку,  при  продаже  и  списании  убавляется.  Итоговое  значение  остатка  записывается  в  таблицу  Товар.

for  (int  j  =  0;  j  <  Операция1->Rows->Count-1;  j++)

  if  (Операция1->Rows[j]->Cells[2]->Value->ToString()  == 

  Товар2->Rows[i]->Cells[0]->Value->ToString())

  {

           if  (Операция1->Rows[j]->Cells[1]->Value->ToString()=="1")  //  если  Покупка

           s+=Convert::ToDouble(Операция1->Rows[j]->Cells[4]->Value->ToString());

           if  (Операция1->Rows[j]->Cells[1]->Value->ToString()=="2"  //  если  Продажа

           ||  Операция1->Rows[j]->Cells[1]->Value->ToString()=="3")  //  если  списание

           s-=Convert::ToDouble(Операция1->Rows[j]->Cells[4]->Value->ToString());

  }

Товар2->Rows[i]->Cells[4]->Value  =  s;


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


 



Рисунок  4.  Отчёт  по  остатку  товара  с  кодом  вида  товара  равным  1


 


Список  литературы:

  1. Агальцов  В.П.  Базы  данных.  В  2-х  т.  Т.  1.  Локальные  базы  данных:  Учебник.  М.:  ИД  ФОРУМ,  НИЦ  ИНФРА-М,  2013.  -  352  c.
  2. Голицына  О.Л.  Базы  данных.  М.:  Форум,  2004.  -  352  c.
  3. Грофф  Джеймс  Р.  SQL:  Энциклопедия.  М.:  СПб:  Питер,  2003.  -  896  c.
  4. Дьюхарст  С.С.  Программирование  на  C++  .  М.:  СПб.:  Питер,  1993.  -  272  c.
  5. Страуструп  Б.  Язык  программирования  C++.  М.:  СПб.:  Питер,  1991.  -  350  c.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.