Учебный план
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (→Занятие 9) |
SYSDBA (обсуждение | вклад) (→Занятие 9) |
||
| Строка 250: | Строка 250: | ||
* Назначение прав доступа на существующие записи в базе с помощью диалогового окна редактирования группы пользователей. | * Назначение прав доступа на существующие записи в базе с помощью диалогового окна редактирования группы пользователей. | ||
* Назначение прав доступа на запись с помощью команды Свойства. | * Назначение прав доступа на запись с помощью команды Свойства. | ||
| − | * Блокировка периода. Реализация блокировки с помощью триггеров на таблицы проводок, документов и складского движения. | + | * Блокировка периода. Реализация блокировки с помощью триггеров на таблицы проводок, документов и складского движения. Исключение заданных групп пользователей и типов документов из блокировки периода. Хранение даты блокировки в генераторе GD_G_BLOCK. |
* Политики системной безопасности. | * Политики системной безопасности. | ||
* Сложные сценарии разграничения доступа. Присваивание значений дескрипторам безопасности в методе BeforePost бизнес-класса. | * Сложные сценарии разграничения доступа. Присваивание значений дескрипторам безопасности в методе BeforePost бизнес-класса. | ||
Версия 14:45, 6 февраля 2007
- Организация складского учета на Гедемине;
- Хранилище:
- Применение Хранилища для хранения настроек программы. Сравнение с реестром операционной системы Windows. Почему в Гедымине применяется своя система Хранения настроек?
- Объекты Хранилища: Папки и Значения. Древовидная структура папок. Типы данных значений.
- Работа с Хранилищем с точки зрения пользователя. Окно Хранилища. Создание, изменение, удаление папок и значений. Поиск папок и значений. Просмотр свойств папки.
- Добавление в настройку элементов Хранилища. Почему следует добавлять значение, а не папку? Какие существуют исключения из этого правила?
- Перенос данных хранилища между базами данных. Сохранение данных Хранилища в файле. Форматы файлов данных Хранилища.
- Виды Хранилищ платформы Гедымин: глобальное, пользовательское, хранилище компании и рабочего стола.
- Хранение данных Хранилища каждого вида в базе.
- Работа с Хранилищем с точки зрения разработчика. Глобальные объекты и их методы и свойства.
- Загрузка Хранилища в оперативную память компьютера. Кэширование данных Хранилища на локальном жестком диске. Синхронизация данных Хранилища в оперативной памяти компьютера с базой данных. В чем особенности функционирования глобального хранилища? В чем особенности работы с хранилищем под учетной записью Администратор?
- Типовые приемы работы с хранилищем из макросов. Считывание/изменение одиночного значения. Считывание/изменение группы значений.
- Системные таблицы InterBase:
- Назначение системных таблиц InterBase.
- Примеры использования таблиц: rdb$relations, rdb$relation_fields, rdb$relation_constraints, rdb$indices, rdb$fields, rdb$dependencies.
- Глобальный объект atDataBase.
- DDL: создание доменов, таблиц, ограничений:
- Типы sql-запросов (DML, DDL).
- Пользовательское расширение типов данных. Для чего оно необходимо? Виды типов данных.
- Cоздание нового домена при помощи sql-запроса.
- Определение таблицы. Синтаксис sql-запроса для создания таблицы. PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK.
- Триггеры, хранимые процедуры, генераторы:
- Определение понятия триггер. Виды. Область применения. Синтаксис sql-запроса для создания триггера. Переменные OLD и NEW.
- Определение понятия хранимая процедура. Варианты вызова процедур в зависимости он назначения. Область применения. Примеры синтаксиса создания процедуры. SavePoint в хранимых процедурах.
- Определение понятия генератор. Область применения. Синтаксис sql-запроса для создания генератора и для получения его значения.
- Транзакции:
- Определение понятия транзакция. Предназначение механизма транзакций.
- Уровни изоляции транзакций (READ COMMITED, SNAPSHOT, SNAPSHOT TABLE STABILITY). Параметры(read, rec_version, nowait) и область применения транзакций.
- Создание и использование SavePoint.
- Метапеременные Гедымина, представление,NULLIF, CASE, COALESCE:
- Метапеременные системы Гедемин(companykey, contactkey, ruid, ingroup, holdinglist).
- Примеры использования метапеременных в sql. Ограничение при использовании.
- Встроенные функции NULLIF, COALESCE.Описание, примеры использования.
- Оператор CASE. Примеры.
- Создание представления. Его применение.
- Распределенные БД:
- Обеспечение уникальности объектов на платформе Гедемин.
- Понятие РУИД.
- Механизм работы настроек.
- Понятие репликации. Область применения.
- Метаданные в Гедымине : at таблицы ч1:
- Базовые таблицы – at_relations, at_transactions.
- Сложные типы данных, реализованные в рамках платформы Гедымин.
- Множество. Параметры множества. Что происходит при его создании? Для чего используется.
- Метаданные в Гедымине: at таблицы - ч2:
- Создание типа данных – ссылка. Параметры данного типа. Что происходит при его создании? Для чего используется.
- Перечисление. Параметры перечисления. Что происходит при его создании? Для чего используется. Примеры применения.
- Система Клиент-Сервер:
- Взаимодействие системы Гедемин с сервером InterBase.
- Перекрываемые методы на платформе Гедемин:
- Понятие перекрытия метода.
- Определение 3 основных принципов языка ООП (инкапсуляция, полиморфизм, наследование).
- Иерархия классов на платформе Гедемин.
- Перекрываемые методы. Как работают? Для чего используются?
- Сложности с перекрытием методов (gd_function).
- Дизайнер форм:
- Области видимости в ООП.
- Определение RTTI (RunTime Type Information). Еe предназначение.
- Файлы, содержащие информацию о существующих классах и видах форм (pas, dfm).
- Принцип создания формы на Гедемин.
- Описание процедуры обработки сообщений окна и приложения.
- Пример наследования форм на платформе Гедемин.
- Работа с SQL Монитором. Перечисление его полезных свойств.
- Оптимизация sql-запросов:
- Построение правильного sql-запроса и порядок его выполнения(PLAN).
- Пример. Удобство применения IB Expert(Plan Analyzer, Performance Analysis).
- Индексы. В каких случаях необходимо их использовать? Статистика в индексах.
- Присоединения таблиц(JOIN, LEFT JOIN).
- Фильтры:
- Свойство QueryFilter. Преимущества использования фильтра.
- Меню компонента фильтрации. Окно изменения фильтра. Закладки “Фильтр”, “Сортировка”. Признак “Только для меня”. Права доступа.
- Индексы, формула статистики. От чего зависит выбор индексов?
- Индексы:
- Определение понятия селективность. Формула.
- Структура хранения индексов.
- Что происходит при удалении записи?
- Организация бухгалтерского учета на платформе Гедемин:
- План счетов.
- Балансовые счета.
- Внеоборотные активы.
- Производственные запасы.
- Затраты на производство.
- Готовая продукция.
- Денежные средства.
- Расчеты.
- Источники собственных средств.
- Финансовые результаты.
- Забалансовые счета.
- Хозяйственная операция: понятие и сущность.
- План счетов.
Содержание |
Новый учебный план
Занятие 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 бизнес-класса.
Трехдневный учебный курс
День 1
Реляционная база данных и язык SQL
- Общие принципы организации клиент-серверных приложений. Сервер баз данных Interbase/Firebird. Роль реляционной базы данных в объектно-ориентированной платформе Гедымин.
- Язык запросов к базе данных SQL. Структура базы данных (метаданные) и данные. Основные команды создания метаданных:
- Типы данных (домены) -- CREATE DOMAIN, ALTER DOMAIN, DROP DOMAIN. Встроенные типы данных и типы данных, определяемые пользователем. Наложение ограничений на значения колонки: NOT NULL и CHECK.
- Генераторы -- CREATE GENERATOR, SET GENERATOR, DROP GENERATOR. Использование генераторов для создания уникальных последовательностей идентификаторов.
- Таблицы -- CREATE TABLE, ALTER TABLE, DROP TABLE. Понятие первичного ключа таблицы (PRIMARY KEY). Понятие внешнего ключа (FOREIGN KEY). Наложение ограничений при создании колонок таблицы. Уникальные колонки (UNIQUE).
- Триггеры -- CREATE TRIGGER, ALTER TRIGGER, DROP TRIGGER. Триггер, как подпрограмма. вызываемая в ответ на определенное событие в базе данных. Шесть типов событий: BEFORE INSERT, AFTER INSERT, BEFORE UPDATE, AFTER UPDATE, BEFORE DELETE, AFTER DELETE.
- Хранимые процедуры -- CREATE PROCEDURE, ALTER PROCEDURE, DROP PROCEDURE. Понятие селективной и автономной процедуры. Выполнение хранимой процедуры с помощью команды EXECUTE PROCEDURE.
- Язык написания хранимых процедур и триггеров:
- Определение и использование входных и исходящих параметров, локальных переменных.
- Цикл по запросу: FOR ... SELECT ... INTO ... DO ...
- Цикл WHILE ... DO ...
- Условный переход IF (...) THEN ... ELSE ...
- Обработка ошибок WHEN ... DO ...
- Язык извлечения информации SQL:
- Команда извлечения информации SELECT ... FROM ... WHERE.
- Объединение таблиц: операторы JOIN и LEFT JOIN.
- Группировка записей и сортировка результирующего набора: секции GROUP BY и ORDER BY.
- Применение функций IIF, COALESCE, NULLIF, CASE.
- Изменение информации в базе данных:
- Вставка записей с помощью команды INSERT INTO ...
- Изменение записей с помощью команды UPDATE ... SET ... WHERE
- Удаление записей с помощью команды DELETE FROM ...
Организация пользовательского интерфейса платформы Гедымин
- Главное окно программы.
- Меню главного окна.
- Список рабочих столов.
- Понятие рабочего стола. Создание и сохранение рабочего стола. Выбор рабочего стола.
- Выбор рабочей организации.
- Понятие рабочей организации. Добавление организаций в список рабочих организаций.
- Понятие холдинга. Добавление структурных подразделений в холдинг.
- Список активных окон.
- Свернуть и Закрыть окно, в чем разница?