- •Вводный раздел
- •1. Информационные системы. Основные понятия
- •Моделирование информационных систем
- •2. Архитектуры распределенного приложения с базой данных. Функции клиента и сервера при различных вариантах расслоения. Типовые клиенты доступа к бд на основе различных технологий.
- •Модель Клиент – Сервер
- •Трехуровневая модель
- •Распределенная (многоуровневая) модель
- •4 Технологии программ расширений
- •Тема 1. Средства взаимодействия клиента и сервера бд
- •1.1 Сервисы сети Internet. Сетевая архитектура osi.
- •1.2 Протоколы прикладного уровня в стеке tcp/ip. Унифицированный локатор ресурса при работе с бд
- •1.3 Блоки данных в стеке протоколов
- •Тема 2. Удаленные базы данных
- •2.1 Понятие удаленных баз данных
- •2.2 Инструментальные средства проектирования структуры бд. Утилиты автоматизированного проектирования бд.
- •2.3 Характеристика субд удаленного доступа
- •Тема 3. Разработка и эксплуатация серверной части
- •3.1 Проектирование структуры базы данных (на самостоятельное изучение) Вопросы для самостоятельной работы
- •3.2 Создание баз данных, таблиц и индексов
- •Удаление баз данных, таблиц
- •Изменение структуры таблиц
- •3.3 Типы данных в MySql
- •Integer и его вариации
- •3.4 Методы заполнения полей базы данных Использование insert
- •Использование replace
- •Использование delete
- •Использование truncate
- •Использование update
- •Загрузка данных с помощью load data infile
- •Тема 4. Разработка и эксплуатация клиентской части.
- •4.1 Простые запросы
- •4.2 Выбор строк с помощью where
- •Удаление повторений с помощью distinct
- •Выбор групп с помощью having
- •Сортировка результатов поиска с помощью order by
- •Ограничение результатов поиска с помощью limit
- •4.4 Сложные запросы Объединение двух таблиц
- •Объединение нескольких таблиц
- •Самообъединение таблиц
- •Типы объединений
- •4.5 Создание подзапросов
- •4.6 Встроенные функции MySql
- •Операторы
- •Типы таблиц MySql
- •Тема 5. Язык html как средство внешнего представления данных.
- •5.1 Основные правила проектирования пользовательского интерфейса
- •5.2. Построение абзацев в гипертекстовом документе
- •5.3 Построение заголовков в гипертекстовом документе
- •Тема 6. Разработка бизнес-слоя и интерактивных компонентов
- •6.1 Perl как средство разработки программ –приложения
- •6.2 Типы данных в Рerl
- •Переменные
- •Скалярные переменные
- •Массивы
- •Ассоциативные массивы
- •6.3 Конструкции языка Рerl Простые и составные операторы
- •Условные операторы
- •Оператор unless
- •Оператор do
- •Циклы и ветвления
- •Цикл until
- •Циклы for и foreach
- •Оператор безусловного перехода goto
- •Генерация динамических выражений с помощью функции eval
- •6.4 Подпрограммы
- •Использование пакетов для изоляции подпрограмм
- •6.5 Операторы языка Perl .Операторы сравнения
- •Логические операторы
- •6.6 Работа с файлами и строками
- •Функция chop
- •Функция index
- •Функция length
- •Функция substr
- •Функция join
- •Функция split
- •Функции для обработки списков
- •Функция reverse
- •Функция sort
- •Функции работы с массивами
- •Функции push и pop
- •Функция shift
- •Функция unshift
- •Функция splice
- •Функция scalar
- •Функция grep
- •Функции обработки ассоциативных массивов
- •Функция keys
- •Функция values
- •Функция each
- •Функция delete
- •Пример скриптов для выполнения практического задания
- •1. Добавление информации в базу (на примере винного погреба -добавление страны)
- •Часть 1
- •Удаление информации из базы (удаление страны)
- •Часть 2
- •Часть 3
- •Поиск информации в базе данных
- •Занесение новой информации во все таблицы базы данных
- •Часть 1
- •Часть 2
Использование пакетов для изоляции подпрограмм
Если у вас имеется много подпрограмм, особенно подпрограмм, которые вы храните в различных файлах, то может возникнуть коллизия имен переменных, когда одно и то же имя переменной используется в различных целях. Perl помогает избежать этого с помощью пакетов (packages). Как известно, объявляя локальные переменные для подпрограмм, можно избежать коллизии имен. Однако если несколько подпрограмм совместно используют какие-то специфические данные, то эти данные могут потребовать глобальной области видимости, что как раз и может вести к коллизии имен. Используя пакеты, можно группировать глобальные данные в частные пространства имен (name-spaces), вне пределов которых глобальные переменные не видны, т. е. неизвестны. Рассмотрим приведенный ниже простой пример, в котором две подпрограммы (находящиеся в различных файлах) используют частные, индивидуальные пространства имен.
# Код в файле one.pl
sub sub_one
{
package demo_one;
$some_data = 10;
}
# * * * * * * * *
# Код в файле two.pl
sub sub_one
{
package demo_two;
$some_data = 20;
}
Как можно видеть, первая подпрограмма использует имя пакета demo_one, вторая подпрограмма использует имя пакета demo_two. Обе подпрограммы могут устанавливать и использовать переменную $some_data без возникновения коллизии имен между одной и другой глобальными переменными. Скрипт <знает> имя пакета, в пределах которого находится переменная, и он организует доступ к ней, использует имя пакета в качестве префикса к имени переменной. В следующем примере имя пакета package_one или package_two добавляется в качестве префикса к имени переменной some_data:
&sub_one;
&sub_two;
print "Переменная 1 $package_one'some_data\n"
print "Переменная 2 $package_two'some_data\n"
Когда вы используете пакеты языка Perl, можете создать уникальное пространство имен в пределах текущего файла исходных кодов путем помещения инструкции package в начале файла, как показано ниже:
package some_package_name
$some_data = 1;
sub some_sub
{
return $some_data;
}
В данном случае переменная $some_data существует только в пакете и поэтому защищена от некорректного доступа. Использование пакета, таким образом, обеспечивает данным ту же область видимости, где глобальные переменные имеют своей областью видимости тот файл исходных кодов, в котором они объявлены. При вызове подпрограммы из другого файла скриптов необходимо использовать имя пакета:
require 'some_package.pl';
print &some_package_name'some_sub;
Если выражение включает строковые операнды, то Perl конвертирует строковые значения в числовые перед тем, как оценить выражение. В настоящее время Perl поддерживает следующие арифметические операторы: ? + сложение ? - вычитание или изменение знака ? * умножение ? / деление (только для чисел с плавающей запятой) ? % взятие по модулю (только для целочисленных значений)
Рассмотрим примеры следующих арифметических операций языка Perl:
$x = 2.5;
$y = 3;
print ($x + 2*$y); # выведет 8.5
print (7 / $y); # выведет 2.3333333
print int (7 / $y); # выведет 2
print (7 % $y); # выведет 1
print (7.5 % $y); # выведет 1
Perl также поддерживает операторы инкремента и декремента:? ++ декремент в префиксной или постфиксной форме? - инкремент в префиксной или постфиксной форме Рассмотрим примеры операций инкремента и декремента:
$x = 4;
++$x;
print $x; # выведет 5
$y = $x-; # уменьшит x после присвоения y значения x
print "$y $x" # выведет 5 4
Наконец, Perl обеспечивает арифметический оператор для возведения в степень (**). Рассмотрим следующие примеры использования операции возведения в степень:
$x = 2 ** 3; # результат 8
$x = 2 ** 0.5; # квадратный корень из 2
$x = -2 ** -3; # 1/(-2 в кубе), результат -1/8 (-0.125)
