Учебный план

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Занятие 6)
(Трехдневный учебный курс)
Строка 209: Строка 209:
  
 
==Трехдневный учебный курс==
 
==Трехдневный учебный курс==
 +
===День 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 ...
 +
 +
====Организация пользовательского интерфейса платформы Гедымин====
 +
 +
===День 2===
 +
===День 3===

Версия 16:22, 22 января 2007

  1. Организация складского учета на Гедемине;
  2. Хранилище:
    1. Применение Хранилища для хранения настроек программы. Сравнение с реестром операционной системы Windows. Почему в Гедымине применяется своя система Хранения настроек?
    2. Объекты Хранилища: Папки и Значения. Древовидная структура папок. Типы данных значений.
    3. Работа с Хранилищем с точки зрения пользователя. Окно Хранилища. Создание, изменение, удаление папок и значений. Поиск папок и значений. Просмотр свойств папки.
    4. Добавление в настройку элементов Хранилища. Почему следует добавлять значение, а не папку? Какие существуют исключения из этого правила?
    5. Перенос данных хранилища между базами данных. Сохранение данных Хранилища в файле. Форматы файлов данных Хранилища.
    6. Виды Хранилищ платформы Гедымин: глобальное, пользовательское, хранилище компании и рабочего стола.
    7. Хранение данных Хранилища каждого вида в базе.
    8. Работа с Хранилищем с точки зрения разработчика. Глобальные объекты и их методы и свойства.
    9. Загрузка Хранилища в оперативную память компьютера. Кэширование данных Хранилища на локальном жестком диске. Синхронизация данных Хранилища в оперативной памяти компьютера с базой данных. В чем особенности функционирования глобального хранилища? В чем особенности работы с хранилищем под учетной записью Администратор?
    10. Типовые приемы работы с хранилищем из макросов. Считывание/изменение одиночного значения. Считывание/изменение группы значений.
  3. Системные таблицы InterBase:
    1. Назначение системных таблиц InterBase.
    2. Примеры использования таблиц: rdb$relations, rdb$relation_fields, rdb$relation_constraints, rdb$indices, rdb$fields, rdb$dependencies.
    3. Глобальный объект atDataBase.
  4. DDL: создание доменов, таблиц, ограничений:
    1. Типы sql-запросов (DML, DDL).
    2. Пользовательское расширение типов данных. Для чего оно необходимо? Виды типов данных.
    3. Cоздание нового домена при помощи sql-запроса.
    4. Определение таблицы. Синтаксис sql-запроса для создания таблицы. PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK.
  5. Триггеры, хранимые процедуры, генераторы:
    1. Определение понятия триггер. Виды. Область применения. Синтаксис sql-запроса для создания триггера. Переменные OLD и NEW.
    2. Определение понятия хранимая процедура. Варианты вызова процедур в зависимости он назначения. Область применения. Примеры синтаксиса создания процедуры. SavePoint в хранимых процедурах.
    3. Определение понятия генератор. Область применения. Синтаксис sql-запроса для создания генератора и для получения его значения.
  6. Транзакции:
    1. Определение понятия транзакция. Предназначение механизма транзакций.
    2. Уровни изоляции транзакций (READ COMMITED, SNAPSHOT, SNAPSHOT TABLE STABILITY). Параметры(read, rec_version, nowait) и область применения транзакций.
    3. Создание и использование SavePoint.
  7. Метапеременные Гедымина, представление,NULLIF, CASE, COALESCE:
    1. Метапеременные системы Гедемин(companykey, contactkey, ruid, ingroup, holdinglist).
    2. Примеры использования метапеременных в sql. Ограничение при использовании.
    3. Встроенные функции NULLIF, COALESCE.Описание, примеры использования.
    4. Оператор CASE. Примеры.
    5. Создание представления. Его применение.
  8. Распределенные БД:
    1. Обеспечение уникальности объектов на платформе Гедемин.
    2. Понятие РУИД.
    3. Механизм работы настроек.
    4. Понятие репликации. Область применения.
  9. Метаданные в Гедымине : at таблицы ч1:
    1. Базовые таблицы – at_relations, at_transactions.
    2. Сложные типы данных, реализованные в рамках платформы Гедымин.
    3. Множество. Параметры множества. Что происходит при его создании? Для чего используется.
  10. Метаданные в Гедымине: at таблицы - ч2:
    1. Создание типа данных – ссылка. Параметры данного типа. Что происходит при его создании? Для чего используется.
    2. Перечисление. Параметры перечисления. Что происходит при его создании? Для чего используется. Примеры применения.
  11. Система Клиент-Сервер:
    1. Взаимодействие системы Гедемин с сервером InterBase.
  12. Перекрываемые методы на платформе Гедемин:
    1. Понятие перекрытия метода.
    2. Определение 3 основных принципов языка ООП (инкапсуляция, полиморфизм, наследование).
    3. Иерархия классов на платформе Гедемин.
    4. Перекрываемые методы. Как работают? Для чего используются?
    5. Сложности с перекрытием методов (gd_function).
  13. Дизайнер форм:
    1. Области видимости в ООП.
    2. Определение RTTI (RunTime Type Information). Еe предназначение.
    3. Файлы, содержащие информацию о существующих классах и видах форм (pas, dfm).
    4. Принцип создания формы на Гедемин.
    5. Описание процедуры обработки сообщений окна и приложения.
    6. Пример наследования форм на платформе Гедемин.
    7. Работа с SQL Монитором. Перечисление его полезных свойств.
  14. Оптимизация sql-запросов:
    1. Построение правильного sql-запроса и порядок его выполнения(PLAN).
    2. Пример. Удобство применения IB Expert(Plan Analyzer, Performance Analysis).
    3. Индексы. В каких случаях необходимо их использовать? Статистика в индексах.
    4. Присоединения таблиц(JOIN, LEFT JOIN).
  15. Фильтры:
    1. Свойство QueryFilter. Преимущества использования фильтра.
    2. Меню компонента фильтрации. Окно изменения фильтра. Закладки “Фильтр”, “Сортировка”. Признак “Только для меня”. Права доступа.
    3. Индексы, формула статистики. От чего зависит выбор индексов?
  16. Индексы:
    1. Определение понятия селективность. Формула.
    2. Структура хранения индексов.
    3. Что происходит при удалении записи?
  17. Организация бухгалтерского учета на платформе Гедемин:
    1. План счетов.
      1. Балансовые счета.
      2. Внеоборотные активы.
      3. Производственные запасы.
      4. Затраты на производство.
      5. Готовая продукция.
      6. Денежные средства.
      7. Расчеты.
      8. Источники собственных средств.
      9. Финансовые результаты.
    2. Забалансовые счета.
      1. Хозяйственная операция: понятие и сущность.

Содержание

Новый учебный план

Занятие 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.

Трехдневный учебный курс

День 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 ...

Организация пользовательского интерфейса платформы Гедымин

День 2

День 3

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты