Тригери в SQL

Часто виникає необхідність автоматично виконувати деякі типові процедури обробки даних при настанні деякої події в  базі даних. Для цього в СУБД Intebase передбачений механізм тригерів. По суті справи, тригери — це збережені процедури, які автоматично запускаються при настанні однієї з нижче перерахованих подій:

  1. BEFORE INSERT  - подія, яка виникає перед добпвлення нового запису до таблиці БД.
  2. BEFORE DELETE - подія, яка виникає перед видаленням запису з таблиці БД.
  3. BEFORE UPDATE - подія, яка виникає перед редагуванням запису в таблиці БД.
  4. AFTER INSERT - подія, яка виникає після добпвлення нового запису до таблиці БД.
  5. AFTER DELETE - подія, яка виникає після видаленням запису з таблиці БД.
  6. AFTER UPDATE - подія, яка виникає після редагуванням запису в таблиці БД.

На відміну від збережуваних процедур, тригер завжди прив'язаний до деякої таблиці БД. Тригер не має вхідних або вихідних параметрів.

Приклад: для таблиці Cars створимо тригер tcar_id, за допомогою якого в поле Kod вставляється значення генератора car_id.

Читати повністю

Створення та призначення генераторів в SQL

При роботі з реляційними базами даних рекомендується для кожної таблиці створювати первинний ключ — поле, значення якого є унікальним для кожного запису (можливий також випадок, коли первинний ключ складається з декількох полів таблиці, тоді унікальним повинен бути набір значень цих полів). В такому випадку виникає проблема, яким чином генерувати значення для первинного ключа, які б не повторювалися.

У деяких системах управління базами даних (СУБД) є спеціальні типи, які призначені для рішення даної проблеми. Вони зручні тим, що значення для них автоматично заповнюються системою управління БД при вставці нових записів в таблицю. Зазвичай це — цілі числа, значення яких збільшуються автоматично (наприклад, в MS Access такий тип називається типом «лічильник», в СУБД Paradox — тип «autoincremental»). У СУБД InterBase такого спеціального типу даних немає, замість цього пропонується особливий механізм використання генераторів.

Генератор в Interbase — це сукупність цілочисельної змінної, яка зберігається в базі даних, і механізму її автоматичного збільшення і використання значень цієї змінної для заповнення полів у таблицях БД.

Основне призначення генераторів — формувати неповторювані цілочисельні значення, які можна використовувати в якості значень для первинного ключа. Для створення генератора в  SQL існує команда:

Читати повністю

Чисельне інтегрування довільної функції методом Монте-Карло

Перш ніж приступити до розгляду delphi-проекту, який наближено обчислює площу криволінійної фігури методом Монте-Карло, нагадаємо собі основну ідею даного методу.

Нехай маємо деяку фігуру, площу якої необхідно знайти. Обмежимо дану фігуру іншою фігурою, наприклад прямокутником, площа якого легко обчислюється. Далі, для даного прямокутника випадковим чином генкруємо скінченне число точок. Після того, як точки повністю покрили прямокутник, підрахуємо кількість тих точок які місттяться на фігурі, площу якої ми обчислюємо і поділимо дану кількість на число згенерованих точок. Таким чином ми зможемо знайти, яку частину площі прямокутника займає криволінійна фігура. Помноживши дане число на площу прямокутника ми отримаємо шукану площу.

Отже, запустимо проект на виконання і перевіримо працездатність даного алгоритму на конкретному прикладі. Нехай потрібно знайти інтеграл від функції y=x^2 на проміжку [-1; 1].

Інтерфейс програми "Чисельне інтегрування методом Монте-Карло"

Інтерфейс програми "Чисельне інтегрування методом Монте-Карло"

Зауваження: програма знаходить шуканий розв'язок двома способами, більш детально розглянути кожен з них можна перейшовши за посиланням Чисельне інтегрування методом Монте-Карло.

Читати повністю

Розв’язування рівнянь теплопровідності методом Кранка-Ніколсона в Delphi(2)

Програма знаходить розв'язок рівняння параболічного типу використовуючи неявну схему Кранка-Ніколсона (використання неявних схем вимагає рішення системи з трьох діагональною матрицею які найчастіше розв'язують методом прогонки).

Розглянемо рівняння теплопровідності і знайдемо його розв'язок використовуючи delphi-програму «Метод Кранка-Ніколсона 2». Інтерфейс даної програми аналогічний програмі Метод Кранка-Ніколсона 1, з однією відмінністю: передбачено ввід будь-якої початкової і граничних умов та їх обробка в ході програми.

Програма розуміє круглі дужки, знаки арифметичних операцій * + — /, знак піднесення до степені ^ і наступні математичні функції: Abs(), Sqr(), Sqrt(), Exp(), Ln(), Sin(), Cos(), Tan(), ArcTan().

ІНтерфейс програми, яка знаходить чисельний розв'язок рівняння теплопровідності використовуючи метод Кранка-Ніколсона

ІНтерфейс програми, яка знаходить чисельний розв'язок рівняння теплопровідності використовуючи метод Кранка-Ніколсона

Читати повністю

Чисельне інтегрування методом Монте-Карло

Нехай потрібно обчислити інтеграл від деякої функції Метод Монте-Карло на інтерваді Метод Монте-Карло:

Метод Мрнте-Карло

В попередніх темах ми розглядали методи (метод трапеційметод пр'ямокутниківметод Сімпсона), які використовують значення функції Метод Монте-Карло обчислені в рівновіддалених точках проміжку Метод Монте-Карло. Проте, для рішення даної проблеми можна застосувати дещо інший підхід, основна ідея якого полягає в наступному: розглянемо деякий прямокутник, для якого виберемо довжину (b-a) та висоту H таким чином, щоб функція Метод Монте-Карло повністю лежала в середині даного прямокутника.

Основна ідея методу Монте-Карло

Графічна інтерпритація методу Монте-Карло

Далі, згенеруємо N пар випадкових чисел рівномірно розподілених в отриманому прямокутнику.

Читати повністю

Розв’язування рівнянь теплопровідності методом Кранка-Ніколсона в Delphi(1)

Програма знаходить розв'язок рівняння теплопровідності використовуючи неявну схему Кранка-Ніколсона. Відмітимо, що використання неявних схем вимагає розв'язку системи з трьох діагональною матрицею. Для знаходження рішення систем такого типу використовується так званий метод прогонки.

Розглянемо рівняння виду Метод Кранка-Ніколсона на Delphi (для Метод Кранка-Ніколсона на Delphi) з початковими умовами Метод Кранка-Ніколсона на Delphi (для Метод Кранка-Ніколсона на Delphi) і гряничними умовами: metod_kranka-nikolsona_delphi15 (для Метод Кранка-Ніколсона на Delphi); Метод Кранка-Ніколсона на Delphi (для Метод Кранка-Ніколсона на Delphi) і спробуємо отримати його розв'язок використавши delphi-програму «Метод Кранка-Ніколсона». Розв'язок даного рівняння, будемо відшукувати з використанням наступних кроків: Метод Кранка-Ніколсона на Delphi і в якості параметра c візьмемо одиницю.

Запустимо проект на виконання після чого у відповідні поля вкажемо наступні дані: проміжки, на яких змінюються просторова змінна x та часова змінна t; значення параметра c і кроки dx та dt (початкова та граничні умови задаються програмно). Після того, для отримання розв'язку натискаємо кнопку «Розв'язати» (результат роботи програми виводиться у вигляді таблиці).

Читати повністю

Метод пошуку кореня рівняння шляхом поділу відрізка навпіл на Delphi

У даному розділі мова йде про чисельні методи призначені для розв'язку рівняння виду f(x)=0 на деякому проміжку [a; b], та їх програмна реалізація в середовищі Delphi. Метод, який будемо розглядати є метод поділу відрізка пополам (основну ідею та графічну ілюстрацію даного методу можна переглянути перейшовши за посиланням Метод половинного ділення). Отже, розглянемо проект, який реалізує вище згадуваний метод і спробуємо з його допомогою знайти корінь деякого рівняння.

Головне вікно програми складається з двох частин, ліва частина призначена для вводу вхідних даних (рівняння для якого шукаємо розв'язок, проміжок на якому шукаємо розв'язок і точність), знаходження шуканого кореня (кнопка «Розв'язати») та вивід його в поле TMemo. Права частина містить графік функції f(x), та графічну ілюстрацію знаходження кореня шляхом поділу відрізків пополам.

Інтерфейс delphi-програми "Метод половинного ділення"

Інтерфейс delphi-програми "Метод половинного ділення"

Читати повністю

Наступна сторінка »