Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

НОУ ІНТУЇТ | лекція | Логічна модель РБД. Бізнес-логіка файл-серверної, клієнт-серверної і N-рівневої архітектури

  1. Клієнт-сервер з бізнес-логікою на клієнті У даних системах зберігання, вибірка і підтримку несуперечності...
  2. N-рівнева архітектура
  3. Практичні заняття
  4. Підготовка SQL скриптів генерації схеми відносин БД в ERwin. Розробка скрипта для введення тестової...
  5. Архітектура MS SQL Server 2005. Налагодження та використання основних компонент середовища. Створення...
  6. Робота з СУБД MS SQL Server 2005, ORACLE 10g. Приклади з'єднань з БД, технології розробки кліенского додатки
  7. Робота з базами даних з J2EE Web-контейнера
  8. Об'єктно-реляційне відображення для роботи з базами даних
  9. Використання препроцесора для роботи з API СУБД

Клієнт-сервер з бізнес-логікою на клієнті

У даних системах зберігання, вибірка і підтримку несуперечності даних покладається на сервер БД, а вся бізнес-логіка і логіка уявлення виконуються на клієнтських машинах. Так як всі операції з маніпулювання даними здійснюються тільки через сервер, продуктивність і збереження даних залежить тільки від сервера БД. Сервери БД спочатку розраховані на багато користувачів режим роботи, мають ефективні алгоритми кешування даних. Сучасні сервери мають хорошу масштабованість.

Клієнтська частина обмінюється даними з сервером за допомогою SQL запитів. Обробка інформації в клієнт -серверних системах ведеться на рівні безлічі кортежів.

Процес розробки розділяється на створення БД і написання клієнтської частини з бізнес-логікою.

переваги переваги

  1. Висока продуктивність, стабільність і надійність при багато користувачів роботі.
  2. Легко організовується захист даних (шифрування мережевого трафіку SSH, SSL)
  3. Універсальність мови визначення і маніпулювання даними

недоліки недоліки

  1. Більш висока ціна СУБД. (Сервер БД продається окремо).
  2. Досить високі вимоги до кваліфікації розробників
  3. Навички адміністрування сервера БД
  4. Підвищені вимоги до пропускної здатності мережі
  5. Підвищені вимоги до клієнтських місцях (на них виконується шар бізнес- логіки)

висновки

При кількості користувачів від 2 до ~ 50 вона є хорошим варіантом. З ростом числа користувачів починає позначатися недостатня пропускна здатність мережі.

Клієнт-сервер з бізнес-логікою на сервері

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

переваги переваги

  1. Знижені, в порівнянні з попереднім класом систем, вимоги до пропускної здатності мережі і клієнтським місцях.
  2. Простіший процес створення бізнес-логіки.

недоліки недоліки

  1. Підвищені вимоги до сервера БД. (Кожен сеанс "з'їдає" пам'ять з розрахунку граничного завантаження)
  2. Невисока переносимість (мобільність) системи на інші сервери БД.

висновки

У порівнянні з попередніми класами, дозволяє тримати велике навантаження.

N-рівнева архітектура

Основними елементами є сервера БД, сервер (кластер) додатків і клієнтська частина. Головна ідея n-рівневої архітектури полягає в максимальному спрощенні клієнта (тонкий клієнт), винесення всієї бізнес-логіки з клієнта і сервера БД.

Тонкий клієнт являє собою певний термінал типу HTML -browser або емулятори X- терміналу

Вся бізнес- логіка оформляється у вигляді набору додатків, що запускаються на сервері додатків під управлінням ОС типу UNIX.

Сервера БД займаються тільки проблемами зберігання, додавання, модифікації і підтримки несуперечності даних.

Сервер додатків з'єднаний з сервером БД за допомогою окремого високошвидкісного сегмента мережі.

переваги переваги

  1. Підвищена захищеність.
  2. Висока продуктивність .
  3. Легкість розвитку і модифікації.
  4. Легкість адміністрування.
  5. Можливість створення системи з масовим паралелізмом (серверів БД може бути кілька, а сервером додатків можуть служити кілька з'єднаних в кластер комп'ютерів).

недоліки недоліки

  1. Висока складність.
  2. Висока ціна рішення.
  3. У деяких випадках поступається по продуктивності клієнт -серверним системам з бізнес-логікою на сервері.

висновки

Єдина альтернатива для створення ІС для дуже великої кількості користувачів.

Практичні заняття

Постановка задачі. Проектування даних на концептуальному і логічному рівнях. Нормалізація відносин.

Презентація по ER-моделювання Презентація по ER-моделювання

ER нотації ER нотації

Приклад моделі в ERwin

Підготовка SQL скриптів генерації схеми відносин БД в ERwin. Розробка скрипта для введення тестової інформації.

Відео-презентація (Для програвання потрібно Windows Media Player)

Архітектура MS SQL Server 2005. Налагодження та використання основних компонент середовища. Створення навчальної бази даних.

Відео-презентація (Для програвання потрібно Windows Media Player)

Робота з СУБД MS SQL Server 2005, ORACLE 10g. Приклади з'єднань з БД, технології розробки кліенского додатки

Використання технології Java Database Connectivity (JDBC) для роботи з базами даних

презентація презентація

Приклади до презентації

SQL-скрипти, проект і вихідні коди SQL-скрипти, проект і вихідні коди

package org.mai806.jdbcsample; import java.sql. *; public class QuerySample {public static void main (String [] args) throws Exception {/ * ======== Підключення до MS SQL Server ===== * / // Завантаження драйвера Class.forName ( "com. microsoft.sqlserver.jdbc.SQLServerDriver "); // З'єднання з базою даних Connection connection = DriverManager.getConnection ( "jdbc: sqlserver: // localhost: 1 433; databaseName = o01;", // localhost - сервер СУБД, o01 - ім'я бази даних "sa", "123") ; // користувач, пароль / * ======== Підключення до Oracle ============ // Завантаження драйвера Class.forName ( "oracle.jdbc.OracleDriver"); // З'єднання з базою даних Connection connection = DriverManager.getConnection ( "jdbc: oracle: thin: @localhost: 1 521: orcl", // localhost - сервер СУБД, orcl - SID бази оракла "o01", "o01"); // користувач, пароль // Створення Statement PreparedStatement stmt = connection.prepareStatement ( "select ID, NAME from PERSON where NAME like?"); stmt.setString (1, "% S%"); // Виконання запиту ResultSet rs = stmt.executeQuery (); // Перебір результату виконання запиту while (rs.next ()) {// Приклад вибору параметра за номером або по імені System.out.println ( "ID:" + rs.getLong (1) + "; NAME =" + rs .getString ( "NAME")); } // закриття використаних ресурсів БД rs.close (); stmt.close (); connection.close (); }} Лістинг P.1. Виконання запиту: QuerySample.java package org.mai806.jdbcsample; import java.sql. *; import java.util.ResourceBundle; public class StoredProcedureSample {private static Connection connection = null; public static void main (String [] args) throws Exception {// Отримання сполуки з значень параметрів у файлі properties ResourceBundle properties = ResourceBundle.getBundle ( "database"); Class.forName (properties.getString ( "driver")); connection = DriverManager.getConnection (properties.getString ( "url"), properties.getString ( "user"), properties.getString ( "password")); transferAmount (1,2,100.0); connection.close (); } / ** * Перекладає зазначену суму з одного рахунку на інший * @param from рахунок платника * @param to рахунок одержувача * @param amount сума * / public static void transferAmount (long from, long to, double amount) throws Exception {/ / Створення Statement CallableStatement stmt = connection.prepareCall ( "{call TransferAmount (?,?,?)}"); // Установка параметрів stmt.setLong (1, from); stmt.setLong (2, to); stmt.setDouble (3, amount); // Виконання процедури stmt.execute (); }} Лістинг P.2. Виконання процедури, що: StoredProcedureSample.java package org.mai806.jdbcsample; import java.sql. *; import java.util.ResourceBundle; public class TransactionalSample {private static Connection connection = null; public static void main (String [] args) throws Exception {// Отримання сполуки з значень параметрів у файлі properties ResourceBundle properties = ResourceBundle.getBundle ( "database"); Class.forName (properties.getString ( "driver")); connection = DriverManager.getConnection (properties.getString ( "url"), properties.getString ( "user"), properties.getString ( "password")); // Ручне управління транзакціями connection.setAutoCommit (false); try {transferAmount (2, 1, 10.0); } Finally {connection.close (); }} / ** * Перекладає зазначену суму з одного рахунку на інший * @param from рахунок платника * @param to рахунок одержувача * @param amount сума * / public static void transferAmount (long from, long to, double amount) throws Exception { PreparedStatement stmt = null; Statement query = null; try {stmt = connection.prepareStatement ( "update ACCOUNT set AMOUNT = AMOUNT +? where ID =?"); // Забираємо суму з рахунку платника stmt.setDouble (1, -amount); stmt.setLong (2, from); stmt.execute (); // Додаємо суму на рахунок одержувача stmt.setDouble (1, amount); stmt.setLong (2, to); stmt.execute (); // Пост-перевірка: негативність рахунку платника query = connection.createStatement (); ResultSet rs = query.executeQuery ( "select AMOUNT from ACCOUNT where ID =" + from + "and AMOUNT <0"); if (rs.next ()) {throw new Exception ( "На рахунку №" + from + "недосточності засобів [" + (amount + rs.getDouble (1)) + "] для зняття суми [" + amount + "]") ; } Connection.commit (); System.out.println ( "Перерахування коштів успішно виконано"); } Catch (Exception e) {e.printStackTrace (); connection.rollback (); } Finally {if (stmt! = Null) stmt.close (); if (query! = null) query.close (); }}} Лістинг P.3. Робота з транзакціями: TransactionalSample.java

Робота з базами даних з J2EE Web-контейнера

презентація презентація

Об'єктно-реляційне відображення для роботи з базами даних

презентація презентація

Використання препроцесора для роботи з API СУБД

презентація презентація

Select ID, NAME from PERSON where NAME like?
Update ACCOUNT set AMOUNT = AMOUNT +?
Where ID =?

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.