Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro icon

Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro




НазваН. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro
Сторінка3/5
Дата конвертації10.04.2013
Розмір0.91 Mb.
ТипДокументи
1   2   3   4   5

^ Примерные типы заданий.


Пример простой БД “Учет заказов”.


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


Сведения о покупателях:

  • УЧЕТный №;

  • ФАМИЛИЯ;

  • КРЕДИТ (сумма, на которую покупатель имеет право покупать товары у данной фирмы)

  • ДАТА рождения

  • ГОРОД проживания

  • АДРЕС

  • ТЕЛЕФОН

  • ТАБЕЛЬный № обслуживающего продавца;


Сведения о продавцах:

  • ТАБЕЛЬный №;

  • ФАМИЛИЯ;

  • КОМИССИЯ - число из интервала [0,1] - доля от суммы заказа, составляющая выручку продавца;

  • ДАТА рождения

  • ГОРОД проживания


Сведения о заказах:

  • ПРОДАВЕЦ - табельный № продавца;

  • ПОКУПАТЕЛЬ - учетный № покупателя;

  • ТОВАР - артикул (идентификатор) товара

  • ЗАКАЗАН (дата заказа);

  • ПОСТАВЛЕН (дата поставки)

  • СУММА заказа, в рублях;

  • КОЛИЧЕСТВО поставляемого товара ( в штуках или других подходящих единицах)


Упражнения.


  1. Определите правила проверки корректности для полей и записей таблиц, делая разумные допущения о том, что такое:

  • реальная дата заказа, если фирма основана 1.01.1990;

  • реальная сумма заказа, если фирма продает автомобили ценой от 10000 до 100000 рублей, в текущих ценах;

  • корректные сведения о заказе, если учитывать произошедшую 1.01.1998 деноминацию - смену масштаба цен.




  1. Определите правила целостности в БД, предполагая, в частности, что:

  • при увольнении продавца информация о его заказах сохраняется;

  • при разрыве отношений с покупателем информация о его заказах далее не хранится




  1. Определите структуру БД "Учет заказов" в вашей СУБД




  1. Измените структуру БД, для того, чтобы отразить старшинство членов фирмы, полагая, что у каждого продавца, кроме главы фирмы, есть непосредственный начальник.




  1. Дополните модель сведениями о продаваемых фирмой товарах – а именно, их




  • АРТИКУЛ,

  • НАИМЕНОВАНИЕ,

  • код ТИПа товара (пример кодировки - 0101 - 'Автомобили', 0903 - 'Канцелярские товары' и пр.),

  • коде предприятия-ИЗГОТОВИТЕЛЯ,

  • коде ЕДИНИЦЫ измерения (метры, кв. метры, килограммы, штуки),

  • ЦЕНЕ за единицу

  • и имеющемся на складе КОЛИЧЕСТВЕ.


Как изменится структура БД, если допустить, что


  • Каждый покупатель всегда покупает только один товар?

  • Каждый продавец продает постоянно лишь один товар?

  • В общем (и подразумеваемом далее) случае неверно ни то, ни другое?



^ ЗАПРОСЫ К БАЗЕ ДАННЫХ.


Введем несколько определений, полезных для компактной формулировки задач. Каждая строка таблицы БД описывает некоторый объект предметной области (или отношение между объектами, которое снова удобно считать объектом). Атрибутами объекта назовем значения одного или нескольких полей соответствующей ему таблицы. Свойством или категорией объектов назовем некоторое естественно определяемое, в терминах предметной области, множество объектов. Категории объектов разделим на простые и сложные, в зависимости от того, содержится ли необходимая для определения категории информация в одной или нескольких таблицах БД. Примеры атрибутов и категорий для объектов БД “Учет заказов” приведены ниже.


^ Фильтрация таблиц. Определите атрибуты объектов по их свойствам, делая разумные допущения о предметной области и возможных значениях переменных.


Определите


(атрибуты покупателей:)


  • учетные номера

  • фамилии, телефоны и адреса

  • даты рождения, по возрастанию

  • возраст, по убыванию

  • города проживания, в алфавитном порядке

  • табельные номера обслуживающих продавцов


покупателей,


( простые категории покупателей:)


  • живущих в данном городе (например, Казани)

  • живущих в данных городах (например - Казани, Самаре или Москве )

  • (не) совершеннолетних, старых, молодых

  • (не) кредитоспособных


Определите

(атрибуты продавцов:)


  • табельные номера

  • фамилии и комиссионные, в процентах

  • даты рождения, по убыванию

  • возраст, по возрастанию

  • города проживания, в алфавитном порядке


продавцов,


(простые категории продавцов:)


  • живущих в данном городе (например, Казани)

  • живущих в данных городах (например - Казани, Самаре или Москве)

  • низко-, средне- высокооплачиваемых

  • старых, молодых


Определите


(атрибуты заказов:)


  • номера

  • суммы

  • артикулы товаров

  • табельные номера продавцов

  • учетные номера покупателей


заказов


(простые категории заказов:)


  • на трехзначную сумму, по возрастанию суммы

  • сделанных сегодня (вчера, на прошлой неделе, этим летом, в прошлом году), по возрастанию суммы заказа

  • (не) выгодных для фирмы

  • просроченных, по возрастанию даты заказа

  • мелких, средних, крупных


Определите


(атрибуты товаров:)


  • артикулы

  • цену и названия, по возрастанию цены


товаров


(простые категории товаров:)


  • дорогих (дешевых)

  • имеющихся на складе в (не)достаточном количестве, отсутствующих на складе


Выборка из нескольких таблиц.


Фильтрация декартового произведения. Определите атрибуты двух и более объектов, связанных следующими отношениями:


  • (не) этот продавец (не) обслуживает (не) этого покупателя

  • (не) этот продавец (не) обслуживает (не) этот заказ

  • (не) этот покупатель (не) сделал (не) этот заказ

  • этот заказ - на (не) этот товар

  • (не) этот покупатель (не) сделал (не этот) заказ (не) этому продавцу

  • (не этот) покупатель (не) сделал (не этот) заказ (не этому) продавцу на (не) этот товар

  • эти продавец и покупатель - однофамильцы

  • эти продавец и покупатель живут в одном городе

  • этот продавец старше (младше, ровесник) этого покупателя


Рефлексивные связи. Определите атрибуты двух и более объектов, связанных следующими отношениями


  • эти покупатели - однофамильцы

  • эти покупатели живут в одном городе

  • этот покупатель старше (младше, ровесник) другого покупателя




  • эти продавцы - однофамильцы

  • эти продавцы живут в одном городе

  • этот продавцы старше (младше, ровесник) другого продавца




  • этот заказ - на более крупную сумму, чем другой

  • этот заказ сделан раньше, чем другой

  • эти заказы обслуживает один продавец

  • эти заказы - одного покупателя

  • эти заказы - на один товар




  • это товар - дороже (дешевле, стоит столько же), чем другой

  • эти товары (не) произведены на одном предприятии


Декодирование.


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


Варианты задания


Определите фамилии продавцов,

  • обслуживавших дорогие заказы

  • обслуживавших кредитоспособных покупателей


Определите цену и наименования товаров


  • для дорогих заказов

  • для заказов, обсуживавшихся высокооплачиваемыми продавцами

  • для заказов, обсуживавших молодых покупателей


Группировка и групповые вычисления.

Определите значения групповых функций для заданного определения группы

Подсчитайте

  • средний, максимальный, минимальный возраст (дата рождения, сумма кредита) покупателя и количество покупателей




  • по всем покупателям

  • по всем категориям покупателям, перечисленных выше

  • для каждого города


Подсчитайте

  • средний, максимальный, минимальный процент комиссионных (возраст, дата рождения) продавца и количество продавцов




  • по всем продавцам

  • по всем категориям продавцов, перечисленных выше

  • для каждого города


Подчитайте

  • среднюю, максимальную, минимальную, совокупную сумму заказов и количество заказов




  • по всем заказам

  • по всем категориям заказов, перечисленных выше

  • данного покупателя

  • данного продавца

  • для каждого покупателя

  • для каждого продавца

  • для каждой пары покупатель-продавец



Подчитайте


  • минимальную, максимальную, среднюю цену товара

  • минимальное, максимальное, среднее, совокупное количество единиц товара, хранящихся на складе

  • количество единиц товара, по каждому типу товара




  • по всем товарам

  • по всем категориям товаров, перечисленным выше


Фильтрация групп. Подсчитайте значения групповых функций, выводя лишь значения, попадающие в заданный интервал.


Вариант задания. Определить количество товаров, которых мало на складе (т.е. это количество меньше некоторого заданного числа - скажем, 100)


^ Предикаты, использующие выборку. Вложенные запросы


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


Варианты задания.

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


Выведите атрибуты сравнительно дорогих товаров, по каждому типу товаров.


^ Отношение принадлежности. Определите атрибуты объектов таких, что связанные с ними объекты принадлежат данной категории.


Варианты задания.


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

Определите атрибуты товаров, проданных за последний месяц молодыми продавцами.

Определите атрибуты продавцов, продавших хотя бы одно наименование из товаров, проданных данным продавцем.


^ Кванторные предикаты. Определите атрибуты объектов, для которых категория связанных с ними объектов (не)пуста.


Определите атрибуты продавцов, (не) обслуживающих хотя бы одного казанского покупателя.

Определите атрибуты продавцов, (не) продавших за последний месяц дорогие товары.


(Связанные запросы).


(Внешние) объединения. Определите совпадающие атрибуты объектов из разных таблиц.


Вариант задания. Определите фамилии и возраст покупателей и продавцов, проживающих в данном городе (например, Казани).


^ МОДИФИКАЦИЯ ТАБЛИЦ


Удалите из таблиц заданные категории объектов.


Вариант задания.

Удалите все сведения о товарах, не пользовавшихся спросом в последнее время (скажем, год).

Удалите сведения о продавцах, не осуществляших никаких продаж за последнее время.

Удалите сведения о покупателях, не делавших покупок за последнее время.


Измените значения атрибутов объектов заданной категории.


Тема 3. Задачи-многоходовки. Представления и транзакции.


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


  • ФАМИЛИЯ (30 символов)

  • ПАСПОРТ - № паспорта, 10 символов (очевидно, уникальный для каждого человека)

  • МАТЬ - № паспорта матери (NULL, если нет сведений)

  • ОТЕЦ - № паспорта отца (NULL, если нет сведений)

  • СУПРУГ - № паспорта жены/мужа (NULL, если нет сведений)

  • ДАТА - дата рождения (тип дата)

  • ДОХОД - ежемесячный доход (зарплата, стипендия и т.п.), вещественное 99.999.999,99

  • ГОРОД - город проживания (30 символов)

  • НАЛОГ - сумма подоходного налога, в % (целое)


Кроме того, в информацию о студентах дополнительно включаются сведения


  • ВУЗ - сокращенное название ВУЗа, 10 символов - например, ‘КГУ’, ‘КГМУ’ и т.п.

  • ПОЛ - один из символов ‘М’,’Ж’


БД включает таблицы СТУДЕНТЫ, ОТЦЫ и МАТЕРИ, включающую информацию о студентах и их родителях, соответственно.

ПРИМЕЧАНИЕ. Как всегда, считаем, что допустимо применение имен на кириллице.



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

  • Выдать упорядоченный по фамилиям список живущих в Казани, Москве и Самаре родителей, с указанием - мать это или отец, чей доход не превышает 300 руб.

  • Выдать все пары студентов-однофамильцев из КГУ, с указанием фамилии и, для обоих, паспортных данных. Дублирующиеся пары не включать.

  • Выбрать всю информацию об отцах, чьи доходы выше среднего по городу, в котором они живут.

  • Выдать список живущих вне Казани матерей, имеющих не менее - двух сыновей-студентов, учащихся в Казани.

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


"Многоходовки" – т.е. задачи, решение которых не реализуется легко единственной командой SQL проще решать, используя представления, например:


  • Удалить информацию о студентах ВУЗА 'АГУ' а также их родителях - в случае, если у тех нет других детей-студентов (вариант посложнее - включить в число родителей студентов их бабушек и дедушек)


Вариант решения:

  • запомнить студентов нужного ВУЗа и ссылки на их отцов,

  • запомнить отцов, у которых все дети (если вообще есть таковые) учатся в нужном ВУЗе

  • удалить информацию об отцах, входящих в первый и второй список

  • удалить информацию о студентах нужного ВУЗа



- Снизить на 5% налог родителям, имеющим более 3 детей-студентов, обучающихся в Казани

Вариант решения:

  • Разбив казанских студентов на группы детей одних родителей, отобрать и запомнить ссылки на тех отца и мать, для которых количество их детей больше 3

  • Изменить записи о матерях, ссылки на которые были запомнены на первом шаге,

  • Изменить записи об отцах, ссылки на которые были запомнены на первом шаге.


- Повысить на 50 руб. стипендию (т.е. доход) студентов, у которых нет хотя бы одного из родителей либо совокупный доход родителей не превышает 1000 руб.

Вариант решения:

  • Подсчитать и запомнить совокупный доход всех супружеских пар (вместе со ссылками на отца и мать), если он не более заданной суммы,

  • Изменить соответственно информацию о студентах, для которых ссылки на родителей либо пусты, либо попали в запомненный список


- Повысить на 5% налог отцам, у которых доход жены не ниже среднего для матерей, а совокупный доход детей превышает 1000 руб.

Вариант решения:

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

  • Запомнить ссылки на матерей, чей доход больше среднего по матерям

  • Изменить соответственно информацию об отцах, попавших в первый список, у которых жена попала во второй список



Тема 4. Проектирование "реальной" БД.


Информационная система "Сборочное предприятие".


^ НЕФОРМАЛЬНАЯ МОДЕЛЬ


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


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


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


^ ВЗАИМОСВЯЗЬ ПОНЯТИЙ


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


  • Одно ПОДРАЗДЕЛЕНИЕ может включать в себя другие ПОДРАЗДЕЛЕНИЯ (цеха состоят из участков)

  • Каждый РАБОТНИК обладает некоторой ПРОФЕССИЕЙ

  • У каждого РАБОТНИКа (кроме директора) имеется непосредственный начальник (другой РАБОТНИК)

  • МАТЕРИАЛЫ участвуют в ОПЕРАЦИЯХ в качестве компонент

  • ИЗДЕЛИЯ также участвуют в ОПЕРАЦИЯХ в качестве компонент

  • ИЗДЕЛИЯ являются также результатом ОПЕРАЦИЙ

  • ОПЕРАЦИИ производятся некоторым УЧАСТКОМ (их исполнителем )

  • РАСХОД всегда связан с некоторым МАТЕРИАЛОМ

  • РАСХОД материала осуществляется при выполнении некоторой ОПЕРАЦИИ

  • РАСХОД материала осуществляется некоторым участком - исполнителем операций

  • МАТЕРИАЛЫ поставляются по ДОГОВОРУ

  • ДОГОВОР заключается с ПОСТАВЩИКОМ

  • ПОСТАВКА осуществляется ПОСТАВЩИКОМ

  • ПОСТАВКА осуществляется на СКЛАД




МАТЕРИАЛЫ ( исходные материалы и детали производства)


  • уникальный код материалы;

  • наименование;

  • характеристика;

  • единица измерения

  • цена за единицу.



ИЗДЕЛИЯ ( готовые изделия и сборочные единицы собственного производства)


- уникальный код изделия;

- наименование;

- характеристика;

- цена


СБОРКА (пооперационный процесс изготовления изделий и сборочных единиц из более простых компонент)


- код компоненты

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

- номер операции процесса сборки;

- используемое количество на операцию;


- номер участка исполнителя;


РАСХОД (нормы расхода материалов )


- код сборочной единицы или готового изделия;

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

- номер операции;

- номер цеха (исполнителя работ);

- номер участка;

- единица измерения;

- норма расхода материала.


ЗАТРАТЫ ( нормы затрат труда)


- код изделия ;

- номер операции;

- номер цеха (исполнителя работ);

- номер участка;

- код профессии рабочего;

- код условий труда и тарифный разряд работы;

- дополнение - время на подготовку и заключение работы, в мин.;

- время штучное, в мин.

1   2   3   4   5



Схожі:

Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconПрограммирование
Введение в программирование на языке Pascal. Программа. Структура программы. Идентификатор. Правила записи идентификатора. Блок описаний....
Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconЯзык разметки xml. Назначение, возможности, перспективы
Сравнительная характеристика субд mysql и ms sql для задач управлениея контентом
Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconБази даних в інформаційних системах
БД) на електронних носіях. Для подальшого перетворення, передачі та використання бд застосовують спеціальні програми – системи управління...
Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconПрограммирование на языке Паскаль Введение

Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconЛабораторная работа №4 Введение в Visual Prolog
Он особенно хорошо приспособлен для решения проблем, которые касаются объектов и отношений между объектами
Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconПрактикум по субд access 97. Введение. Сбором и накоплением данных, их корректировкой и сортировкой, отбором
Особенно это актуально для тех, кто работает в информационной сфере производства, где основным сырьем и продуктом
Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconПриложение 6 к приказу Министерства образования
...
Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconПрактична робота № Програмування лінійних обчислювальних процесів
Запустити Visual Basic. Після запуску Visual Basic на екрані з'явиться діало-гове вікно, у якому можна вибрати тип додатку. Вибираємо...
Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconДокументи
1. /САПР/КИБЕРНЕТИКА.docx
2. /САПР/Л 01 Основн_...

Н. Р. Бухараев Введение в программирование на sql в среде субд ms visual FoxPro iconVisual Basic Основы работы с базами данных
Умение обращаться с файлами данных чуть ли не одна из самых важных ступений в обучении программированию на Visual Basic! Здесь я...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2017
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи