Обратите внимание: Ответы для этих упражнений написаны в псевдоко- дах, являющихся английским языком описания логики, которой должна сле- довать программа. Это сделано для того чтобы помомочь читателям кото- рые могут быть незнакомы с Паскалем(или любым другим языком). Кроме того это лучше сфокусирует ваше внимание на включемых понятиях, опус- кая частности того или другого языка. Чтобы непротиворечить нашим при- мерам, стиль псевдокода будет напоминать Паскаль. Мы опустим из программ все что не относится напрямую к рассматривае- мым вопросам, например, определение устройств ввода-вывода, подключе- ние к базе данных, и так далее.
Конечно, имеется много способов чтобы выполнять такие упражнения; и совсем не обязательно что представленые варианты решений являются самыми удачными.
1. Разработайте простую программу которая выберет все комбинации полей snum и cnum из таблиц Порядков и Заказчиков и выясните, всегда ли предыдущая комбинация такая же как последующая. Если комбинация из таблицы Порядков не найдена в таблице Заказчиков, значение поля snum для этой строки будет изменено на удовлетворяющее условию сов- падения. Вы должны помнить, что курсор с подзапросом - модифицируем ( ANSI ограничение, также применимо к просмотрам, и что базисная целостность базы данных это не тоже самое что проверка на ошибку( т.е. первичные ключи уникальны, все поля cnums в таблице Порядков правильны, и так далее ). Проверьте раздел обьявлений, и убедитесь что там обьявлены все используемые курсоры.
2. Предположим, что ваша программа предписывает ANSI запрещение курсо- ры или просмотры использующие модифицируемые подзапросы. Как вы должны изменить вышеупомянутую программу?
3. Разработайте программу которая подсказывает пользователям изменить значения поля city продавца, автоматически увеличивает комиссионные на .01 для продавца переводимого в Барселону и уменьшает их на .01 для продавца переводимого в Сан Хосе. Кроме того, продавец находя- щийся в Лондоне должен потерять .02 из своих комиссионных, незави- симо от того меняет он город или нет, в то время как продавец не находящийся в Лондоне должен иметь увеличение комиссионных на .02. Изменение в комиссионных основывающееся на нахождении продавца в Лондоне, может применяться независимо от того куда тот переводится. Выясните могут ли поле city или поле comm содержать NULL значения, и обработайте их, как это делается в SQL. Предупреждение! : эта программа имеет некоторые сокращения.