- •Базы данных
- •Введение
- •Часть 1. Проектирование баз данных
- •1.1. Некоторые понятия и определения
- •1. 2. Модели данных
- •1.2.1. Иерархическая модель данных
- •1.2.2. Сетевая модель данных
- •1.2.3. Реляционная модель данных Основные определения
- •Типы связей между отношениями
- •1.3. Классификация баз данных
- •1.4. Цели проектирования баз данных
- •1.5. Проектирование баз данных с использованием универсального отношения
- •1.5.1. Универсальное отношение
- •1.5.2. Проблемы, вызываемые использованием универсального отношения
- •Проблема вставки
- •Проблемы обновления
- •Проблемы удаления
- •1.5.3. Нормальная форма Бойса -Кодда
- •Функциональные зависимости
- •Возможный ключ и детерминант
- •Общий подход к декомпозиции
- •Анализ исходных аномалий
- •1.5.4. Возможные потери фз при декомпозиции
- •1.5.5. Избыточные функциональные зависимости
- •Приемы удаления избыточных фз
- •Минимальное покрытие
- •Модернизированный алгоритм проектирования бд
- •1.6. Метод er - проектирования
- •1.6.1. Сущности и связи
- •1.6.2. Степень связи
- •1.6.3. Переход от диаграмм er – типа к отношениям
- •Предварительные отношения для бинарных связей степени 1:1
- •Предварительные отношения для бинарных связей степени 1:n.
- •Предварительные отношения для бинарных связей степени n:m
- •1.6.4. Дополнительные конструкции, используемые в er - методе
- •Необходимость связей более высокого порядка
- •Предварительные отношения для трехсторонних связей
- •Использование ролей
- •1.6.5. Последовательность проектирования бд при использовании er- метода
- •1.6.6. Проверка отношений на завершающейся фазе проектирования
- •1.7. Другие нормальные формы
- •1.8. Контрольные вопросы
- •Часть 2. Специальные аспекты работы с базами данных
- •2.1. Защита данных в базе
- •2.2.1. Общие вопросы защиты данных
- •2.2.2. Реализация защиты данных в различных системах
- •Управление доступом в sql
- •Реализация системы защиты в ms sql Server
- •2.2. Обеспечение целостности данных
- •2.3. Организация параллельных процессов обработки данных
- •2.4. Восстановление бд
- •2.4.1. Уровни восстановления.
- •2.4.2. Восстановление и логический элемент работы
- •Требования к лэр
- •2.4.3. Промежуточное восстановление
- •2.4.4. Длительное восстановление
- •2.5. Математический аппарат, используемый при работе с реляционной базой данных
- •2.5.1. Теоретико-множественные операции реляционной алгебры
- •2.5.2. Специальные операции реляционной алгебры
- •2.6. Контрольные вопросы
- •Часть 3. Разработка приложений для работы с базами данных
- •3.1. Краткий обзор субд
- •3.2. Субд Access
- •3.2.1. Вводные замечания
- •3.2.2. Создание базы данных
- •3.2.3. Создание и работа с таблицами
- •3.2.4. Работа с запросами
- •3.2.5. Создание форм
- •3.2.6. Отчеты в Access
- •3.2.7. Макросы в Access
- •Преобразование макросов в программы на Visual Basic
- •3.2.8. Работа с внешними данными
- •3.3. Программирование в Access
- •3.3.1. Вводные замечания
- •3.3.2. Объявление переменных
- •3.3.3. Константы
- •3.3.4. Тип данных Variant
- •3.3.5. Пользовательские типы данных
- •3.3.5.Операторы, команды и выражения в vba
- •3.3.7. Процедуры vba
- •3.3.8. Управляющие структуры в vba
- •Работа с управляющими структурами
- •3.3.9. Объекты в Access
- •3.3.10. Классы в Access
- •3.3.11. Работа с ошибками в vba
- •3.4.Работа в ms sql –Server
- •3.4.1. Основные количественные показатели системы sql-сервер
- •3.4.2. Создание баз данных
- •3.4.3. Создание таблицы
- •3.4.4. Извлечение данных
- •3.4.5. Добавление данных
- •3.4.6. Изменение данных
- •3.4.7. Удаление данных
- •3.5. Контрольные вопросы
- •Цитированная литература
- •Оглавление
- •Часть 1. Проектирование баз данных 3
- •Часть 2. Специальные аспекты работы с базами данных 71
- •Часть 3. Разработка приложений для работы с базами данных 114
3.3.2. Объявление переменных
Объявить переменную — значит заранее сообщить программе о создании переменной, указав ее имя. Переменные объявляются путем включения в текст программы инструкции Dim (сокращение слова Dimension — размер):
Dim имя_переменной [As тип]
После того как переменные объявлены, их можно использовать в любом месте процедуры. С целью экономии места можно объявить несколько переменных в одной строке, например, как в следующей инструкции:
Dim Fakt_cena As Currency, Fakt_kol As Integer
Переменные, объявленные инструкцией Dim внутри процедуры, существуют только во время выполнения процедуры. Когда процедура заканчивается, переменная исчезает. Кроме того, значение переменной локально для данной процедуры, то есть нельзя обратиться к переменной одной процедуры из другой процедуры. Эти особенности позволяют использовать одинаковые имена для переменных в различных процедурах, не беспокоясь относительно конфликтов или случайных изменений.
Имя переменной должно удовлетворять требованиям, изложенным во введении.
Необязательное предложение As тип в инструкции Dim позволяет определять тип данных или объектный тип объявляемой переменной. Тип данных определяет тип информации, содержащейся в переменной.
Имеются и другие способы объявления переменных:
• объявление переменной в разделе Описания модуля (формы, отчета, стандартного или класса), вместо объявления внутри процедуры, делает переменную доступной всем процедурам в модуле;
• объявление переменной с использованием ключевого слова Public делает ее доступной в любом месте приложения;
• объявление локальной переменной с использованием ключевого слова Static сохраняет ее значение даже по завершении отработки процедуры.
Неявное объявление переменных. Объявлять переменную перед использованием ее необязательно. Например, в следующей функции переменная TempVal явно не объявляется:
Function TestFunc(num)
TempVal = Abs(num)
TestFunc = Sqr(TempVal)
End Function
Встретив имя, Visual Basic автоматически создает с таким именем переменную, которую можно использовать, как если бы она была объявлена явно. Хотя, с одной стороны, это удобно, однако в случае мелких опечаток в имени переменной это может приводить к трудноуловимым ошибкам в коде. Например, предположим, что предыдущая функция переписана еще раз:
Function TestFunc(num)
TempVal = Abs(num)
TestFunc = Sqr(TemVal)
End Function
На первый взгляд, все выглядит одинаково. Но так как в последней строке имя переменной TempVal указано с ошибкой, эта функция будет всегда возвращать ноль. Когда Visual Basic сталкивается с новым именем, он не в состоянии определить, что подразумевается — фактическое неявное объявление новой переменной или это имя существующей переменной с ошибкой. В этом случае он создает новую переменную с таким именем, инициализируя ее нулем.
Явное объявление переменных. Чтобы избежать проблемы ошибок в именах переменных, можно предусмотреть, чтобы Visual Basic выдавал предупреждение всякий раз, когда он сталкивается с именем, не объявленным явно как переменная.
Чтобы гарантировать явное объявление переменных необходимо в разделе Описания модуля класса, формы или стандартного поместить такую инструкцию:
Option Explicit
или
В меню Сервис выбрать Параметры, открыть вкладку Модуль и установить флажок Явное описание переменных. После этого Visual Basic будет автоматически вставлять инструкцию Option Explicit в начале любых новых модулей, но не в модулях, уже созданных. Следовательно, к существующим модулям проекта Option Explicit нужно добавить вручную.
Если бы эта инструкция была в модуле, содержащем функцию TestFunc, Visual Basic интерпретировал бы TempVal и TemVal как необъявленные переменные и сгенерировал ошибки для них обеих. После этого можно было бы объявить TempVal явно:
Function TestFunc(num)
Dim TempVal
TempVal = Abs(num)
TestFunc = Sqr(TemVal)
End Function
Теперь проблема будет ясна сразу, так как Visual Basic выведет на экран сообщение об ошибке для неправильно напечатанной переменной TemVal. Так как инструкция Option Explicit безотказно отслеживает эти виды ошибок, использовать его никогда не будет лишним.
Оператор Option Explicit работает только на уровне модуля; его следует поместить в раздел Описания каждого модуля любого типа — стандартногоили класса.