
- •Министерство образования и науки рф
- •В.В.Ломтадзе, л.П.Шишкина
- •Для студентов и специалистов
- •1.Введение в информационные технологии 7
- •2. Вводные сведения о современных программных средствах 13
- •3. Измерение количества информации, её Кодирование и хранение 23
- •4. Модели и Алгоритмы. Роль моделирования и алгоритмизации в решении задач и формализации знаний. Информационные ресурсы 32
- •5. Технические средства информационных технологий 45
- •6. Классификация и обзор программного обеспечения 68
- •8. Электронные таблицы Microsoft Excel 103
- •9. Системы управления базами данных. Субд Access 119
- •10. Введение в программирование. Создание приложений на языке Visual Basic for Applications 135
- •11. Основы и методы защиты информации 161
- •Предисловие
- •Введение в информационные технологии
- •1.1. Предмет изучения информатики. Понятие информации. Информационное общество
- •1.2. Информационные революции
- •1.3. Краткая история вычислительной техники
- •1.4. Поколения вычислительных систем
- •Контрольные вопросы к главе 1
- •2. Вводные сведения о современных программных средствах
- •2.1. Особенности современных программных средств
- •2.2. Основные элементы управления в интерфейсе программных продуктов
- •2.3. Типовые диалоги в интерфейсе программных продуктов
- •Контрольные вопросы к главе 2
- •3. Измерение количества информации, её Кодирование и хранение
- •3.1. Измерение количества информации
- •3.1.1. Измерение количества информации через неопределённость знаний
- •3.1.2. Количество информации в сообщении о том, что произошло одно из n равновероятных событий
- •3.1.3. Алфавитный подход к измерению количества информации
- •3.2. Кодирование информации
- •3.2.1. Данные – формализованная информация
- •3.2.2. Системы кодирования, объёмы данных, системы счисления
- •Запись содержимого полубайта в разных системах счисления
- •3.2.3. Кодирование текста
- •3.2.4. Кодирование чисел
- •3.2.5. Кодирование графической информации
- •3.2.6. Кодирование звука
- •3.2.7. Кодирование видео
- •Контрольные вопросы к главе 3
- •4. Модели и Алгоритмы. Роль моделирования и алгоритмизации в решении задач и формализации знаний. Информационные ресурсы
- •4.1. Модели решения вычислительных и функциональных задач
- •4.2. Алгоритмы
- •Основные элементы, используемые в блок-схемах
- •4.3. Принципы структурного программирования
- •4.4. Объектно-ориентированное программирование
- •4.5. Алгоритмизация как средство формализации знаний. Информационные ресурсы
- •Контрольные вопросы к главе 4
- •5. Технические средства информационных технологий
- •5.1. Логические основы вычислительной техники, алгебра логики
- •5.1.1. Основные понятия
- •Логические операции
- •5.1.2. Основные законы алгебры логики
- •5.1.3. Логические выражения
- •5.1.4. Логические элементы
- •5.1.5. Функциональные схемы и функциональные узлы
- •5.2. Основные блоки персонального компьютера
- •5.3. Основные периферийные устройства, подключаемые к компьютеру
- •5.4. Компьютерные сети
- •Уровни модели osi
- •Контрольные вопросы к главе 5
- •6. Классификация и обзор программного обеспечения
- •6.1. Системное программное обеспечение
- •Поля элемента каталога
- •6.2. Инструментальные средства программирования
- •6.3. Прикладное программное обеспечение
- •Контрольные вопросы к главе 6
- •7. Текстовый процессор Microsoft Word
- •7.1. Назначение. Основные понятия
- •7.2. Модель фрагмента текста. Параметры форматирования. Стили
- •7.3. Типовая последовательность создания документа
- •7.4. Разработка стилей и форматирование фрагментов текста
- •Пример разработки стилей
- •Р ис. 7.3. Выбор варианта обрамления абзаца
- •7.5. Редактирование документа
- •Выделение фрагмента текста мышью
- •7.6. Списки, табуляция, таблицы, многоколончатая верстка
- •7.7. Вставка символа, рисунка, объекта
- •Контрольные вопросы к главе 7
- •8. Электронные таблицы Microsoft Excel
- •8.1. Назначение. Основные понятия
- •8.2. Обобщенная технология работы в электронной таблице
- •8.3. Ввод, редактирование, форматирование данных
- •8.4. Выполнение расчетов по формулам и построение диаграмм
- •Инструкции, используемые в Microsoft Excel
- •Сообщения об ошибках в формуле
- •Ряды и категории данных
- •8.5. Сортировка, консолидация данных, сводные таблицы
- •Получение таблицы, содержащей консолидированные данные
- •Исходные данные для построения сводной таблицы
- •Пример сводной таблицы
- •Контрольные вопросы к главе 8
- •9. Системы управления базами данных. Субд Access
- •9.1. Основные понятия
- •9.2. Нормализация отношений (таблиц) и обеспечение целостности данных в реляционной базе данных
- •9.3. Последовательность действий при создании и использовании базы данных
- •9.3.1. Создание базы данных
- •9.3.2. Создание таблиц базы данных, ввод данных во вспомогательные таблицы
- •9.3.3. Создание основной таблицы
- •9.3.4. Создание схемы данных
- •9.3.5. Создание формы
- •9.3.6. Создание запросов
- •9.3.7. Формирование отчетов
- •9.4. Основные возможности языка структурированных запросов (sql)
- •Контрольные вопросы к главе 9
- •10. Введение в программирование. Создание приложений на языке Visual Basic for Applications
- •10.1. Основные понятия
- •10.2. Создание интерфейса пользователя
- •V Режим конструктора Свойства isual Basic р Элементы управления Свойства объекта SpinButton1 ис. 10.1. Лист Excel в момент создания интерфейса приложения средствами vba
- •10.3. Модули, процедуры, функции
- •Часто используемые встроенные функции Visual Basic
- •10.4. Работа с переменными, массивами, константами и со свойствами объектов
- •Встроенные типы данных vba
- •10.5. Основные инструкции языка Visual Basic и отладка программ
- •Арифметические операции
- •Операции сравнения
- •Контрольные вопросы к главе 10
- •11. Основы и методы защиты информации
- •11.1. Основные понятия информационной безопасности
- •11.2. Классификация угроз информационной безопасности
- •11.2.1. Непреднамеренные
- •11.2.2. Преднамеренные
- •11.3. Обеспечение информационной безопасности
- •11.3.1. Юридические основы информационной безопасности
- •11.3.2. Требования к защите информации в системах
- •11.3.3. Меры по поддержанию работоспособности компьютерных систем
- •11.3.4. Противодействие нарушению конфиденциальности информации
- •11.3.5. Электронная цифровая подпись
- •11.4. Особенности защиты информации в компьютерных сетях
- •Контрольные вопросы к главе 11
- •Библиографический список
- •Приложение Тесты Сообщения, данные, сигнал, атрибутивные свойства информации, показатели качества информации, формы представления информации. Системы передачи информации
- •Меры и единицы количества и объема информации
- •Системы счисления
- •Кодирование данных в эвм
- •Алгоритм и его свойства. Способы записи алгоритма
- •Линейная алгоритмическая структура
- •Разветвляющаяся алгоритмическая структура
- •Циклические алгоритмические структуры
- •Трансляция, компиляция и интерпретация
- •Интегрированные среды программирования
- •Этапы решения задач на компьютерах
- •Структурное программирование. Модульный принцип программирования. Подпрограммы. Принципы проектирования программ сверху-вниз и снизу-вверх
- •Объектно-ориентированное программирование
- •Основные понятия алгебры логики
- •Логические основы эвм
- •Моделирование как метод познания
- •Классификация и формы представления моделей
- •Методы и технологии моделирования
- •Информационная модель объекта
- •Состав и назначение основных элементов персонального компьютера. Центральный процессор. Системные шины и слоты расширения
- •Компоненты вычислительных сетей
- •Сервисы Интернета
- •Средства использования сетевых сервисов
- •Файловая структура операционных систем. Операции с файлами
- •Электронные таблицы
- •Основные операции с данными
- •Назначение и основы использования систем искусственного интеллекта. Базы знаний. Экспертные системы
- •Защита информации в локальных и глобальных компьютерных сетях
- •Шифрование данных. Электронная подпись
9.4. Основные возможности языка структурированных запросов (sql)
Сразу заметим, что в этой небольшой книге мы не ставим задачу дать описание SQL, а всего лишь приведем обзор основных команд и на нескольких примерах покажем возможности SQL-запросов. Что касается точного описания инструкций SQL, то это описание не совсем совпадает для различных СУБД. Наиболее известные серверы реляционных баз данных (Oracle, MS SQL Server, Cybase, Informix и некоторые другие) поддерживают ту или иную версию или уровень стандарта ANSI / ISO SQL (ANSI – Американский национальный институт стандартов, ISO – Международная организация стандартизации), но для повышения эффективности каждый коммерческий SQL-сервер применяет некоторые расширения стандарта. Приведенные ниже примеры проверены в рамках СУБД Access. Кстати, справочная система Access достаточно полно разъясняет инструкции SQL. Ясное и полное описание технологии клиент/сервер, включающее также классификацию и описание команд SQL, применительно к СУБД Oracle 7 приведено в [14].
Приступая к рассмотрению SQL-запросов, надо также пояснить понятие транзакции. Транзакция базы данных – это единица работы, состоящая из одной или нескольких инструкций (команд) SQL. Транзакцию нельзя разбить на отдельные запросы. Например, перечисление денег предполагает именно две неотделимые друг от друга операции: уменьшение суммы на одном счете в базе данных и равнозначное увеличение на другом счете. Поэтому SQL-серверы рассматривают поступающие команды SQL как временные шаги, пока не поступит команда COMMIT, отмечающая конец текущей транзакции.
Можно выделить несколько классов команд SQL: определения данных, манипулирования данными, управления транзакциями, управления данными (доступом к ним). Последние два класса инструкций применяются в запросах к SQL-серверам, а первые два класса – и в запросах к локальным СУБД.
Команды языка определения данных (DDL – Data Definition Language) – это команды SQL, которые можно использовать для создания (CREATE), изменения (ALTER) и удаления (DROP) различных объектов базы данных (таблиц, процедур и др.). В качестве примера рассмотрим команду, с помощью которой можно создать таблицу Объекты [КодОб, ИмяОб]:
CREATE TABLE Объекты (КодОб LONG CONSTRAINT obj PRIMARY KEY, ИмяОб TEXT(40) )
В этой инструкции CREATE TABLE указывается имя создаваемой таблицы (Объекты), и затем в скобках, через запятую описываются поля записей. Поле КодОб имеет тип LONG (см. раздел 3), а после слова CONSTRAINT (ограничение) указывается имя индекса (obj) для этого поля и параметр PRIMARY KEY – ведь поле КодОб должно быть первичным ключом. Описание второго поля таблицы включает его имя (ИмяОб), тип (TEXT) и длину в байтах (40). Пример показывает, что при хорошем знании синтаксиса языка SQL структуру любой таблицы базы данных можно создать не только с помощью имеющихся в Access (но не в каждой СУБД) средств визуального конструирования, но и с помощью команды SQL.
К числу команд языка манипулирования данными (DML) относятся инструкции SELECT (отбор данных), INSERT (вставка записей в таблицу), UPDATE (обновление записей), DELETE (удаление записей). Приведем пример инструкции SELECT:
SELECT Затраты.[Код затр], Объекты.Объект, Затраты.Дата, Затраты.Стоимость
FROM Затраты, Организации, Работы, Объекты
WHERE Объекты.[Код об] = Затраты.[Код об]
AND Затраты.Дата >= #7/01/2009# AND Затраты.Дата < #1/1/2010#
ORDER BY Затраты.[Код затр];
В этом примере создается виртуальная таблица, состав полей которой определен во фразе SELECT, до фразы FROM: поле Код затр из таблицы Затраты, поле Объект из таблицы Объекты и т.д. Имя таблицы и имя поля указываются через точку. Имя поля Код затр заключено в квадратные скобки, т.к. содержит пробел. В некоторых СУБД для ограничения имен с пробелами применяются апострофы. Поэтому удобнее при конструировании таблиц вместо пробелов в именах полей использовать подчерк.
Во фразе FROM указываются имена исходных таблиц.
Во фразе WHERE задаются условия отбора записей. Так, из таблицы Затраты отбираются только те записи, в которых дата больше (позже) или равна 01.07.2009 и меньше (раньше) 01.01.2010 (даты в текстах запросов задаются в формате #мм/дд/гг#). Для того, чтобы к записи из таблицы Затраты “привязать” через код объекта соответствующие записи из таблицы Объекты, во фразе WHERE заданы еще условия равенства этих кодов. Все условия заданы через И (AND), поскольку в этом примере требуется выполнение и первого, и второго, и третьего условий. В некоторых запросах условия задаются через ИЛИ (OR) – тогда для отбора записи требуется выполнение или первого, или второго условия.
Во фразе ORDER BY указано поле, по которому надо упорядочить (отсортировать) записи в виртуальной таблице результатов. Эта таблица не хранится в базе данных, а создается только в оперативном порядке, например, когда запрос является источником данных для формирования отчета.
Н
а
рис. 9.6 показан результат запроса,
содержащего рассмотренную инструкцию
SELECT.
Рис. 9.6. Результат запроса, содержащего инструкцию SELECT
Приведем также примеры инструкции DELETE:
DELETE * FROM Объекты - удаление всех записей из таблицы Объекты,
DELETE * FROM Организации WHERE Город IN (‘Париж’, ’Ницца’, ’Чикаго’) - удаление из таблицы Организации записей, соответствующих тем организациям, которые расположены в городах, входящих в указанное множество. Если в таблице таких записей не окажется, то ничего удалено не будет.
К числу команд управления транзакциями относятся следующие:
COMMIT - сохранить (зафиксировать) внесенные текущей транзакцией изменения,
ROLLBACK – отменить изменения, вносимые текущей транзакцией,
SAVEPOINT – назначить промежуточную точку сохранения.
Промежуточные точки позволяют разбить выполняемую транзакцией работу на фрагменты:
INSERT …
DELETE …
SAVEPOINT one
UPDATE …
DELETE …
SAVEPOINT two
INSERT …
UPDATE …
Используя точки сохранения можно отменить одни части транзакции и оставить другие:
ROLLBACK TO SAVEPOINT two
Эта команда отменит действие всех SQL-инструкций после точки сохранения two.
Команды языка управления данными (DCL) используются для управления доступом пользователей к базе данных. Эти команды, как и инструкции управления транзакциями применяются при работе с SQL-серверами. Например, в СУБД Oracle 7 [14] введено понятие ролей. Каждая роль имеет имя и определенный набор полномочий: право создавать или удалять таблицы, изменять определенные таблицы и т.п. Если пользователь знает пароль некоторой роли, например, роли с именем role7, то он может установить эту роль в текущем сеансе и тем самым получить полномочия этой роли:
SET ROLE role7 IDENTIFIED BY x77y - устанавливается роль role7 с паролем x77y.
Кроме обширного набора команд языка SQL, серверы реляционных баз данных предоставляют средства для создания процедур и триггеров базы данных (триггер - особый тип процедур – см. далее). Так, Oracle 7 предлагает для SQL процедурные языковые расширения, называемые PL/SQL. Сам SQL – непроцедурный язык: мы не видим деталей обработки, конкретных процедур, в которые сервер транслирует наш запрос. Отсюда и простота использования SQL. Процедурные языки, такие как Си, Паскаль, Бейсик, требуют детальной записи действий. Поэтому их использовать сложнее, но они обладают большей гибкостью и более широкими возможностями. PL/SQL сочетает возможности SQL с возможностями процедурного языка. Как и в программе на процедурных языках (раздел 10), в процедуре на PL/SQL можно описать переменные и константы, использовать инструкции проверки условий, организовывать циклы и т.д. В виде процедур и их пакетов можно запрограммировать сложные алгоритмы обработки данных, что иногда невозможно или неэффективно сделать с помощью одних только команд SQL. Особым видом процедур являются триггеры базы данных. Триггер – это процедура, связываемая с таблицей. Когда дается команда SQL, соответствующая условиям триггера, СУБД запускает триггер на выполнение. Поэтому триггеры используют для того, чтобы СУБД реагировала на различные ситуации, например, на ввод в таблицу определенных данных. Таким образом, в рамках технологии «клиент/сервер» на сервере хранятся не только данные, но и многочисленные процедуры их обработки.
Приведенные сведения о языке SQL и возможностях реляционных СУБД показывают, что на основе СУБД можно создавать сложнейшие информационно-обрабатывающие системы, причем их разработка резко облегчается благодаря языку SQL и расширяющим его возможности инструментальным средствам программирования.