НОУ ІНТУЇТ | лекція | Багатовимірне представлення даних. Загальна схема організації сховища даних. Характеристики, типи і основні відмінності технологій OLAP і OLTP. Схеми зірка і сніжинка. агрегування

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

Типи OLAP. Переваги і недоліки

Вибір способу зберігання даних залежить від обсягу і структури детальних даних, вимог до швидкості виконання запитів і частоти оновлення OLAP -куб. В даний час застосовуються три способи зберігання даних:

MOLAP (Multidimensional OLAP)

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

Переваги MOLAP.

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

Недоліки MOLAP.

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

ROLAP (Relational OLAP)

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

Переваги ROLAP.

  • Реляційні СУБД мають реальний досвід роботи з дуже великими БД і розвинені засоби адміністрування. При використанні ROLAP розмір сховища не є таким критичним параметром, як у випадку MOLAP.
  • При оперативної аналітичної обробки вмісту сховища даних інструменти ROLAP дозволяють проводити аналіз безпосередньо над сховищем (бо в переважній більшості випадків корпоративні сховища даних реалізуються засобами реляційних СУБД).
  • У разі змінної розмірності задачі, коли зміни в структуру вимірювань доводиться вносити досить часто, ROLAP системи з динамічним поданням розмірності є оптимальним рішенням, так як в них такі модифікації не вимагають фізичної реорганізації БД, як у випадку MOLAP.
  • Системи ROLAP можуть функціонувати на набагато менш потужних клієнтських станціях, ніж системи MOLAP, оскільки основна обчислювальна навантаження в них лягає на сервер, де виконуються складні аналітичні SQL-запити, що формуються системою.
  • Реляційні СУБД забезпечують значно вищий рівень захисту даних і хороші можливості розмежування прав доступу.

Недоліки ROLAP.

  • Обмежені можливості з точки зору розрахунку значень функціонального типу.
  • Менша продуктивність, ніж у MOLAP. Для забезпечення порівнянної з MOLAP продуктивності реляційні системи вимагають ретельного опрацювання схеми БД та спеціальної настройки індексів. Але в результаті цих операцій продуктивність добре налаштованих реляційних систем при використанні схеми "зірка" можна порівняти з продуктивністю систем на основі багатовимірних БД.

HOLAP (Hybrid OLAP)

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

Моделювання багатовимірних кубів на реляційної моделі даних

Схема зірка. Переваги і недоліки

Схема типу зірки (Star Schema) - схема реляційної бази даних, яка служить для підтримки багатовимірного уявлення містяться в ній даних.

* Особливості ROLAP -схеми типу "зірка" *

  1. Одна таблиця фактів (fact table), яка сильно денормалізована. Є центральною в схемі, може складатися з мільйонів рядків і містить підсумовувані або фактичні дані, з допомогою яких можна відповісти на різні питання.
  2. Кілька денормалізованних таблиць вимірів (dimensional table). Мають меншу кількість рядків, ніж таблиці фактів, і містять описову інформацію. Ці таблиці дозволяють користувачеві швидко переходити від таблиці фактів до додаткової інформації.
  3. Таблиця фактів і таблиці розмірності пов'язані ідентифікують зв'язками, при цьому первинні ключі таблиці розмірності мігрують в таблицю фактів як зовнішніх ключів. Первинний ключ таблиці факту цілком складається з первинних ключів всіх таблиць розмірності.
  4. Агреговані дані зберігаються спільно з вихідними.

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

Завдяки денормалізації таблиць вимірів спрощується сприйняття структури даних користувачем і формулювання запитів, зменшується кількість операцій з'єднання таблиць при обробці запитів. Деякі промислові СУБД і інструменти класу OLAP / Reporting вміють використовувати переваги схеми "зірка" для скорочення часу виконання запитів.

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

Денормализация таблиць вимірів вносить надмірність даних, зростає необхідний для їх зберігання обсяг пам'яті. Якщо агрегати зберігаються спільно з вихідними даними, то в вимірах необхідно використовувати додатковий параметр - рівень ієрархії.

Схема сніжинка. Переваги і недоліки

Схема типу сніжинки (Snowflake Schema) - схема реляційної бази даних, яка служить для підтримки багатовимірного уявлення містяться в ній даних, є різновидом схеми типу "зірка" (Star Schema).

* Особливості ROLAP -схеми типу "сніжинка" *

  1. Одна таблиця фактів (fact table), яка сильно денормалізована. Є центральною в схемі, може складатися з мільйонів рядків і містити підсумовувані або фактичні дані, з допомогою яких можна відповісти на різні питання.
  2. Кілька таблиць вимірів (dimensional table), які нормалізовані на відміну від схеми "зірка". Мають меншу кількість рядків, ніж таблиці фактів, і містять описову інформацію. Ці таблиці дозволяють користувачеві швидко переходити від таблиці фактів до додаткової інформації. Первинні ключі в них складаються з єдиного атрибута (відповідають єдиному елементу вимірювання).
  3. Таблиця фактів і таблиці розмірності пов'язані ідентифікують зв'язками, при цьому первинні ключі таблиці розмірності мігрують в таблицю фактів як зовнішніх ключів. Первинний ключ таблиці факту цілком складається з первинних ключів всіх таблиць розмірності.
  4. У схемі "сніжинка" агреговані дані можуть зберігатися окремо від вихідних.

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

Нормалізація таблиць вимірів на відміну від схеми "зірка" дозволяє мінімізувати надмірність даних і більш ефективно виконувати запити, пов'язані зі структурою значень вимірів.

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

За нормалізацію таблиць вимірів іноді доводиться платити часом виконання запитів.

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

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

Презентація по 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: тисячі чотиреста тридцять три; databaseName = o01;", // localhost - сервер СУБД, o01 - ім'я бази даних "sa", "123") ; // користувач, пароль / * ======== Підключення до Oracle ============ // Завантаження драйвера Class.forName ( "oracle.jdbc.OracleDriver"); // З'єднання з базою даних Connection connection = DriverManager.getConnection ( "jdbc: oracle: thin: @localhost: тисячі п'ятсот двадцять одна: 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 =?

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: