Новый учебный план
Материал из GedeminWiki
Содержание |
Занятие 1
- Платформа Гедымин, как пост-реляционные технологии. Использование реляционной СУБД для хранения объектов. Объектный и традиционный доступ к данным в базе.
- Сервер Interbase/Firebird. Экскурс в историю. Основные возможности. Преимущества перед конкурирующими продуктами. РСУБД с открытым исходным кодом.
- Архитектура клиент-сервер. Клиентская и серверная части. Взаимодействие между клиентом и сервером по протоколу TCP/IP. Настройка брандмауэра.
- Структура папок и файлов серверной части Interbase/Firebird. Обзор содержимого папки BIN. Ручная установка сервера. Утилиты instreg и instsvc.
- Обеспечение надежной и бесперебойной работы сервера:
- Использование памяти ECC
- Использование блока бесперебойного питания
- Активизация режима forced writes на уровне базы данных
- Использование файловой системы NTFS
- Использование RAID контроллеров с батарейкой или отключение кэша на запись на жестком диске
- Утилита архивного копирования gbak. Регулярное архивирование базы данных. Архивирование поврежденной базы данных. Восстановление базы данных их архива. Восстановление поврежденной базы данных.
- Понятие страницы базы данных. Размер страницы и размер буффера кэша. Поиск оптимальных значений.
Занятие 2
- Язык запросов к базе данных SQL. Подмножества языка SQL: язык определения структур данных DDL и язык манипуляции данными DML.
- Основные объекты метаданных реляционной базы данных: таблицы, домены, триггеры, хранимые процедуры, ограничения.
- Таблицы. Создание таблицы с помощью оператора CREATE TABLE. Изменение таблицы с помощью оператора ALTER TABLE. Удаление таблицы с помощью DROP TABLE.
- Правила именования объектов базы данных. Использование префиксов для разделения пространств имен.
- Типы данных: числовые (целые, с плавающей и фиксированной точкой), дата и время, строковые типы.
- INTEGER, SMALLINT
- DOUBLE PRECISION, SINGLE PRECISION
- NUMERIC, DECIMAL
- DATE, TIME, TIMESTAMP
- CHAR, VARCHAR
- Ограничения на колонки данных: NOT NULL, UNIQUE, CHECK
- Задание значения по-умолчанию с помощью секции DEFAULT. Метапеременные для полей типа дата и время: CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, NOW.
- Вставка данных с помощью оператора INSERT. Полный и сокращенный формат синтаксиса оператора INSERT.
- Создание вычисляемого поля.
- Создание своих типов данных. Операторы CREATE DOMAIN, ALTER DOMAIN, DROP DOMAIN. Использование доменов при добавлении колонок в таблицу.
- Ограничение PRIMARY KEY. Понятие первичного ключа таблицы.
- Внешние ссылки на записи в других таблицах. Создание ограничения FOREIGN KEY.
Занятие 3
- Натуральные и суррогатные первичные ключи. Кандидат на первичный ключ.
- Формирование значения суррогатного первичного ключа с помощью генератора.
- Создание генератора CREATE GENERATOR
- Присвоение начального значения генератору SET GENERATOR TO...
- Получение значения генератора GEN_ID
- Понятие триггера. События: BEFORE INSERT, AFTER INSERT, BEFORE UPDATE, AFTER UPDATE, BEFORE DELETE, AFTER DELETE.
- Порядок выполнения триггеров. Позиция триггера. Включение и выключение триггера.
- Создание триггера, изменение триггера, удаление триггера.
- Доступ к данным записи в триггере. Метапеременные OLD и NEW.
- Учебный пример.
- Создание необходимых типов данных. Понятие кодовой таблицы CHARACTER SET и сличения COLLATION для строковых полей.
- Создание таблицы со списком футбольных команд.
- Создание триггера для присвоения значения первичному ключу.
- Создание таблицы для хранения результатов матчей.
- Настройка внешних ссылок. Секции ON UPDATE и ON DELETE при определении FOREIGN KEY.
- Создание таблицы для хранения статистики.
- Настройка триггеров для обновления статистической информации.
Занятие 4
- Понятие транзакции, как логической группы операций над данными в базе. Применение транзакций для поддержания логической целостности данных в базе. Подтверждение (COMMIT) транзакции. Откат (ROLLBACK) транзакции.
- Понятие конкурирующих транзакций (чтение и изменение одной и той же записи в двух разных транзакциях). Версионность записей.
- Параметры транзакции:
- READ COMMITTED и SNAPSHOT транзакции.
- WAIT и NOWAIT транзакции.
- Конфликты блокировок записи (deadlock).
- Реализация вложенных транзакций с помощью точек сохранения. Создание точки сохранения SAVEPOINT. Откат данных до точки сохранения ROLLBACK TO SAVEPOINT. Удаление точки сохранения RELEASE SAVEPOINT.
- Работа с транзакциями из макросов. Компонент TIBTransaction.
- Создание компонента.
- Присваивание параметров транзакции. Параметры по-умолчанию.
- Связывание с компонентом подключения к базе данных.
- Связывание с компонентом запросом к базе данных TIBSQL.
- Старт транзакции.
- Чтение и\или изменение данных в рамках транзакции.
- Подтверждение или откат транзакции.
- Поведение транзакции в случае возникновения ошибки в программном коде.
- Автоматическая обработка транзакций в бизнес-объектах. Ручное управление транзакциями в бизнес-объектах.
- Понятие мягкого комита или отката транзакции (COMMIT RETAINING, ROLLBACK RETAINING).
Занятие 5
- Хранимые процедуры. Преимущества: выполнение на сервере, компиляция в момент создания.
- Создание хранимой процедуры. Два вида хранимых процедур. Входящие и исходящие параметры.
- Создание хранимых процедур. Команды CREATE PROCEDURE и RECREATE PROCEDURE.
- Язык хранимых процедур:
- Объявление и использование локальных переменных
- Присвоение значений переменным
- FOR SELECT ... INTO ... DO ...
- IF () THEN ... ELSE ...
- WHILE () DO ...
- WHEN ... DO ...
- Использование хранимых процедур в запросе.
- Исключения. Создание исключения -- команда CREATE EXCEPTION. Вызов исключения из тела процедуры или триггера.
- Представление. Преимущества использования представлений. Создание представления -- команда CREATE VIEW. Использование представлений в запросе. Обновляемые представления.
- Индексы. Создание индекса -- команда CREATE INDEX. Использование индекса в запросе.
Занятие 6
- Системные таблицы Interbase/Firebird:
- RDB$RELATIONS -- список таблиц и представлений;
- RDB$RELATION_FIELDS -- список полей таблиц и представлений;
- RDB$FIELDS -- список доменов (типов данных);
- RDB$PROCEDURES -- список хранимых процедур;
- RDB$TRIGGERS -- список триггеров;
- RDB$TRIGGERS -- список генераторов;
- RDB$DEPENDENCIES -- список зависимостей между объектами БД;
- Другие RDB$ таблицы;
- Определение зависимостей между объектами в БД;
- Изменение информации в системных таблицах: за и против. Пример модификации формулы вычисляемого поля через изменение записи в системных таблицах:
- Применение встроенных функций в SQL запросах:
- IIF
- COALESCE
- NULLIF
- CASE
- SUBSTRING, LENGTH
- EXTRACT
- Преобразование типов данных с помощью оператора CAST;
- Использование JOIN и LEFT JOIN в запросах;
- Использование UNION и UNION ALL.
Занятие 7
- Обзор системы разграничения прав доступа стандарта SQL.
- Обзор системы разграничения прав доступа платформы Гедымин.
Занятие 8
- Аутентификация пользователя сервера Interbase/Firebird. Понятие учетной записи.
- Cоздание/изменение/удаление учетных записей с помощью утилиты командной строки gsec. Синтаксис подключения к базе данных. Работа в интерактивном режиме. Основные команды.
- Хранение списка учетных записей на сервере в базе данных isc4.gdb.
- Учетная запись SYSDBA. Ее предназначение. Понятие владельца объекта метаданных.
- Назначение привелегий доступа с помощью команды GRANT. Отзыв привелегий с помощью команды REVOKE.
- Виды привелегий: SELECT, UPDATE, DELETE, REFERENCE, EXECUTE, ALL.
- Назначение привелегий на таблицу/представление целиком или на отдельные колонки.
- Назначение привелегий доступа пользователю, группе пользователей или всем пользователям (PUBLIC).
- Назначение привелегий хранимой процедуре или триггеру для доступа к таблице.
- Понятие роли. Создание роли с помощью команды CREATE ROLE. Присвоение учетной записи права на использование роли с помощью команды GRANT. Хранение списка ролей в базе данных. Таблица RDB$ROLES.
- Организация аутентификации пользователя платформы Гедымин.
- Понятие учетной записи платформы Гедымин. Хранение учетных записей в базе данных. Таблица GD_USER.
- Связь между учетной записью платформы Гедымин и учетной записью сервера Interbase/Firebird. Создание учетной записи сервера Interbase при создании учетной записи платформы Гедымин.
- Учетная запись Administrator и ее сопоставление пользователю SYSDBA.
- Процесс подключения к базе данных платформы Гедымин и его основные элементы:
- Окно выбора базы данных, ввода учетной записи и пароля.
- Считывание информации о подключении из системного реестра.
- Подключение к серверу под учетной записью STARTUSER.
- Процедура GD_P_SEC_LOGINUSER.
- Подключение под учетной записью пользователя.
- Перенос файла базы данных на другой сервер. Пересоздание учетных записей пользователей сервера Interbase/Firebird.
- Перенос базы данных на "чистый" сервер. Создание учетной записи STARTUSER.
- Разграничение доступа к файлу базы данных:
- Использование выделенного сервера для работы с базой данных.
- Использование съемных носителей информации для работы с базой данных.
- Использование шифрования файлов операционной системой.
Занятие 9
- Группы пользователей. Таблица GD_USER. Ограничение на количество групп пользователей в системе. Идентификатор группы пользователей. Шесть стандартных групп и их предназначение.
- Дескриптор безопасности как 32-х битная маска групп пользователей. Дескрипторы AVIEW, ACHAG и AFULL.
- Понятие о доступе к классу и экземпляру класса (записи).
- Назначение прав доступа на классы для групп пользователей в Исследователе системы.
- Назначение прав доступа на существующие записи в базе с помощью диалогового окна редактирования группы пользователей.
- Назначение прав доступа на запись с помощью команды Свойства.
- Блокировка периода. Реализация блокировки с помощью триггеров на таблицы проводок, документов и складского движения. Исключение заданных групп пользователей и типов документов из блокировки периода. Хранение даты блокировки в генераторе GD_G_BLOCK.
- Политики системной безопасности.
- Сложные сценарии разграничения доступа. Присваивание значений дескрипторам безопасности в методе BeforePost бизнес-класса.
Занятие 10
- Понятие уникального идентификатора записи РУИД. Формирование РУИДа на основе идентификатора записи и идентификатора базы данных. Генераторы gd_g_unique, gd_g_offset, gd_g_dbid. Первоначальное присвоение значения генератора gd_g_dbid. Алгоритм формирования уникального идентификатора базы данных.
- Хранилище и его предназначение для хранения структурированной иерархической информации. Применение Хранилища для хранения настроек программы. Сравнение с реестром операционной системы Windows. Почему в Гедымине применяется своя система хранения настроек?
- Объекты Хранилища: Папки и Значения. Древовидная структура папок. Типы данных значений: целочисленный, дробный, дата и время, строка, двоичный объект.
- Работа с Хранилищем с точки зрения пользователя. Окно Хранилища. Создание, изменение, удаление папок и значений. Поиск папок и значений. Просмотр свойств папки.
- Добавление в настройку элементов Хранилища. Почему следует добавлять значение, а не папку? Какие существуют исключения из этого правила?
- Перенос данных хранилища между базами данных. Сохранение данных Хранилища в файле. Форматы файлов данных Хранилища.
- Виды Хранилищ платформы Гедымин: Глобальное, Пользовательское, Хранилище Компании и Рабочего стола.
- Хранение данных Хранилища каждого вида в базе. Таблицы: GD_GLOBALSTORAGE, GD_USERSTORAGE, GD_COMPANYSTORAGE и GD_DESKTOP.
- Работа с Хранилищем с точки зрения разработчика. Глобальные объекты и их методы и свойства.
- Загрузка Хранилища в оперативную память компьютера. Кэширование данных Хранилища на локальном жестком диске. Синхронизация данных Хранилища в оперативной памяти компьютера с базой данных. В чем особенности функционирования глобального хранилища? В чем особенности работы с хранилищем под учетной записью Администратор?
- Типовые приемы работы с хранилищем из макросов. Считывание/изменение одиночного значения. Считывание/изменение группы значений. События экранных форм: LoadSettingsAfterCreate и SaveSettings.
Занятие 11
- Знакомство с регулярными выражениями. Использование регулярных выражений для поиска информации в таблице (автофильтр).
- Использование объекта VBScript.RegExp в макросах. Свойства и методы объекта:
- Global
- MultiLine
- IgnoreCase
- Pattern
- Test
- Execute
- Работа с коллекциями Matches и SubMatches.
- Пример создания макроса импорта банковской выписки с использованием регулярных выражений.
Занятие 12
Динамическое создание компонентов.
Занятие 13
Управление кадрами.
- Знакомство со справочниками по зарплате и отделу кадров:
- Заполнение справочников различных категорий.
- Создание графика рабочего времени.
- Структура документов отдела кадров:
- График отпусков.
- Журнал больничных листов.
- Трудовой договор (контракт).
- Штатное расписания.
- Документы кадрового движения сотрудника (приказы):
- Приказ о приеме на работу.
- Приказ о переводе.
- Изменение условий работы.
- Приказ об увольнении.
- Приказы о предоставлении отпуска:
- Трудовой отпуск.
- Социальный отпуск.
- Личная карточка и ее справочники.
Занятие 14
Основные принципы работы подсистемы "Заработная плата". Её настройка.
- Настройка подситемы:
- Документ "Параметры".
- Справочник виды начислений.
- Справочник групп начислений.
- Переменные.
- Принцип итогового расчета.
- Функции расчета и проверки.
- Быстрый итоговый расчет.
- Заполнение начальных данных.
- Начальное формирование.
- Налогообложение.
- Пособия на детей.
- Алименты.
- Необлагаемые суммы.
Занятие 15
- Документы расчета заработной платы.
- Табель отработанного времени.
- Документы начислений:
- Начисление по окладу.
- Начисление за повременную работу.
- Бригадный наряд.
- Начисление отпусков.
- Начисление больничных.
- За выслугу лет.
- Начисление доплаты за период.
- Индивидуальный наряд.
- Ручной ввод.
- Итоговое начисление.
- Ведомость выдачи зарплаты.