СУБД UMS Компания «Х-Технология» Москва 2012 1 Системотехническое решение СУБД UMS Административный клиент GAI Драйвер LCD Сервер UMS: веб-сервер UNET шлюз UGW фронтальный компилятор UFC тыловой компилятор UBC диспетчер UD двигатель базы данных UEN Репозиторий metaDB 2 Особенности СУБД UMS Расширенная реляционная модель данных ERM Денормализованные отношения Сложные домены Отношения в виде ассоциативных массивов кортежей Кортежи из мультимножеств атрибутов Инкрементные версии кортежей Отсутствие блокировок объектов базы данных Отсутствие журнала транзакций и сегментов отката Сериализуемый уровень изоляции транзакций 3 Объекты СУБД UMS Метаданные Таблица отношений Отношение Карта индексов В+дерево В+дерево В+дерево Таблица доменов Ассоциативный массив кортежей Файл Файл Файл неструктурированной неструктурированной неструктурированной информации информации информации 4 Расширенная реляционная модель данных ERM Денормализованные отношения – максимально полные информационные образы типов объектов предметной области В схеме отношения поддерживаются логические связи между определяющими доменами (в виде иерархий) Первичные ключи – функционально независимые атрибуты служебного домена уникальных идентификационных номеров Вторичные ключи – соответствуют вторичным ключам базовой реляционной модели данных RM Манипуляционный и целостный аспекты модели ERM соответствуют подобным аспектам модели RM Доменный состав отношений модели ERM соответствует атрибутному составу классов объектно-ориентированной модели данных прикладных решений 5 Структура кортежа Уровень иерархии атрибута Идентификатор атрибута Алиас домена Длина записи значения атрибута Значение атрибута 1 45829 uin 32 16482107 2 46297 surname 64 Иванов 3 46920 first_name 64 Сергей 4 47005 last_name 64 Николаевич 2 47431 phone_type 64 Мобильный 3 47852 phone_number 32 89162789031 6 Ассоциативный массив кортежей – реляционное отношение Значения элементов В+дерева Начало и конец кортежа Начало и конец кортежа 1 45829 uin 32 16482107 2 46297 surname 64 Иванов 3 46297 first_name 64 Сергей 4 47005 last_name 64 Николаевич 2 47431 phone_type 64 Мобильный 3 47852 phone_number 32 89162789031 1 48206 uin 32 16482108 2 48431 surname 64 Петров 3 48937 first_name 64 Александр 4 49142 last_name 64 Игоревич 2 49580 phone_type 64 Стационарный 3 49863 phone_number 32 84953681406 7 Структура кортежей Атрибуты каждого кортежа связаны в иерархическую структуру Арность кортежей в общем случае не равна арности отношений Кортежи могут содержать повторяющиеся атрибуты или группы атрибутов Каждое отношение содержит головной кортеж, содержащий стандартный набор атрибутов, имеющих неопределенные значения, и соответствующий одному из типов объектов предметной области Кортеж может содержать ссылки на фрагменты неструктурированной информации, хранимые в файле базы данных или в отдельных файлах 8 Кортеж из мультимножества атрибутов 345 УИН - 27498752063 386 Фамилия - Кузнецов 402 Имя - Иван 437 Телефон - Рабочий 451 Номер - 495 365 2987 475 Телефон - Мобильный 492 Номер - 916 120 6582 518 Телефон - Домашний 534 Номер - 499 268 5049 9 Версионная архитектура СУБД UMS Кортеж состоит из родительской версии и набора дочерних версий, логически связанных совпадающими уникальными идентификационными номерами (УИН) Версии содержат номера транзакций записи Модифицированные атрибуты в составе версий логически связаны служебным идентификатором экземпляра атрибута (ID) Запись новых версий осуществляется без чтения и блокировки старых версий, на основании УИН данных и ID атрибутов Все версии хранятся в одном ассоциативном массиве Очистка базы данных от устаревших версий производится в фоновом режиме путем консолидации версий 10 Инкрементные версии кортежей СУБД UMS Родительская версия 345 УИН - 27498752063 386 Фамилия - Кузнецов 402 Имя - Иван 437 Телефон - Рабочий 451 Номер - 495 365 2987 Дочерняя версия 345 УИН - 27498752063 518 Телефон - Домашний 534 Номер - 499 268 5049 437 Телефон - Рабочий 451 Номер - 499 407 6358 475 Телефон - Мобильный 492 Номер - 916 120 6582 11 Протокол передачи данных UDTP <body> (837952.serverX.traffic.abonent=Абонент.Трафик.СерверХ, /* номер транзакции чтения алиасы сервера, БД и отношения наименования отношения БД и сервера */ 5812.abonent.uin=5467.УИН, /* идентификатор алиасы доменов значение атрибута наименование домена */ 7348.uin.surname=Иванов.Фамилия, /* идентификатор алиасы доменов значение атрибута наименование домена */ 6391.surname.first_name=Сергей.Имя, /* идентификатор алиасы доменов значение атрибута наименование домена */ 5847.first_name.last_name=Петрович.Отчество, /* идентификатор алиасы доменов значение атрибута наименование домена */ 6382.uin.image=Фото.Изображение /* идентификатор алиасы доменов значение атрибута наименование домена */ 5874.image.format=JPEG.Формат, /* идентификатор алиасы доменов значение атрибута наименование домена */ 6390.format.unstruct=1.28590412) /* идентификатор алиасы доменов номер MIME- вложения размер фрагмента неструктурированной информации*/ </body> 12 Язык программирования D+ с процедурным и объектно-ориентированным расширениями SELECT uin.surname.first_name, last_name FROM traffic.abonent WHERE uin.surname = Иванов END SELECT traffic.abonent abonent.uin uin.surname surname.first_name surname.last_name uin.address address.postcode address.city city.street street.house house.room traffic.abonent.uin.address.city.street.house.room – полный алиас abonent.address.city.room – квалифицированный алиас house.room – простой алиас room – абстрактный алиас 13 Сравнение эффективности реализации RM и ERM моделей данных RM модель ERM модель N – степень нормализации, А – индексируемые атрибуты Обращения к диску Метаданные Обращения к диску Чтение ~ 0 Запись ~ 0 Метаданные Чтение ~ 0 Запись ~ 0 Оперативная память Энергонезависимая память Индексы Чтение ~ 3А Запись ~ 6А Таблицы кортежей Чтение ~ N Запись ~ N Журнал транзакций, сегменты отката Чтение ~ 0 Запись ~ х2 Индексы Ассоциативный массив кортежей Итого: Чтение ~ 3А+N Запись ~ (6А+N+1)х2 Чтение ~ 3 Запись ~ 6А Чтение ~ 1 Запись ~ 1 Итого: Чтение ~ 4 Запись ~ 6А+1 14 СУБД UMS реализована в клиент-серверной архитектуре Серверная часть работает на платформе 64-разрядных операционных систем UNIX/Linux обеспечивает обмен информацией в распределенной вычислительной среде в форматах UDTP и SOAP поддерживает взаимодействие с браузерами в формате HTTP Клиентская часть работает на платформе 32/64-разрядных операционных систем Unix/Linux и Microsoft Windows обеспечивает обмен данными с клиентскими приложениями, аналитическими системами и табличными процессорами в формате XML 15 Компоновочные решения СУБД UMS Веб-браузер Клиентское приложение . LCD СУБД СУБД СУБД 2 1 СУБД UMS UBC 3 UNET UGW 4 UFC Способы реализации: 1 - клиент-серверная архитектура 2 - HTTP-клиент 3 - распределенные базы данных 4 - серверные приложения 5 - встроенные базы данных UD Триггеры, хранимые процедуры, пользовательские функции, представления, серверные приложения UEN 5 База данных База данных База данных 16 Сегментирование ассоциативных массивов в СУБД UMS Отношение: Кортеж # 1 Кортеж # 2 Кортеж # 11 Кортеж # 4 …… Кортеж # 10 Кортеж # 12 Кортеж # 13 Кортеж # 14 …… Кортеж # 20 Кортеж # 21 Кортеж # 22 Кортеж # 23 Кортеж # 24 …… Кортеж # 30 Кортеж # 31 Кортеж # 32 Кортеж # 33 Кортеж # 34 …… Кортеж # 40 Сегмент #1 Сегмент #2 Кортеж # 3 Сегмент #3 Сегмент #4 Сегмент # ….. Сегмент # 10 17 Масштабирование СУБД UMS Запись Мастер сервер UMS Запись Слейв сервер UMS Запись Клиент Клиент Клиент Чтение Запись Кластерная файловая система Чтение Запись БД Запись Кластерная файловая система Чтение Запись Реплика БД Запись 18 Прогрессивная и регрессивная зависимости времени чтения от объема баз данных, включающих 5, 10 15 и 20 млн. кортежей Время, секунды 0,04 Базовая реляционная модель данных RM 0,03 Расширенная реляционная модель данных ERM 0,02 0,01 Кортежи, млн. единиц 10 20 30 40 19 Контакты ООО «Х-Технология» 127051, Москва, Малый Сухаревский пер., дом 9, строение 1, офис 36 тел. +7 495 960 0050 http: //www.x-tex.ru/ e-mail: [email protected] 20