Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемwww.inteltec.ru
1 Научно-производственный центр «ИНТЕЛТЕК ПЛЮС» НПЦ « ИНТЕЛТЕК ПЛЮС»
2 Тема доклада Внутренняя организация ОСУБД на примере Versant, Poet, ODB-Jupiter НПЦ « ИНТЕЛТЕК ПЛЮС»
3 Области применения ОСУБД САПР, Case-средства Автоматизация производственных процессов Автоматизация управления предприятием Геоинформационные, картографические системы Телекоммуникации Internet приложения НПЦ « ИНТЕЛТЕК ПЛЮС»
4 ОСУБД Versant Компания Versant представляет программные продукты: –Versant Developer Suite - сервер ОСУБД + комплект разработчика; –Versant enJin - сервер объектно-ориентированного промежуточного уровня, ориентированный на обработку Java- объектов. Основной акцент делается на разработку приложений средствами Java, хотя при этом обеспечивается работа с ОСУБД на языках C, C++, Smalltalk. НПЦ « ИНТЕЛТЕК ПЛЮС»
5 ОСУБД Poet POET Software представляет следующие продукты: –Poet Database - сервер хранилища данных; –Poet Object Server - диспетчер объектов ОСУБД; –SQL Object Factory - сервер объектно-ориентированного промежуточного уровня, обеспечивающий прозрачную работу пользователей как с собственным сервером ОСУБД, так и с инородными для нее СУБД типа Oracle, DB2, MS SQL. Значительное внимание уделяется на разработку Java-приложений. НПЦ « ИНТЕЛТЕК ПЛЮС»
6 ОСУБД ODB-Jupiter Компания НПЦ «ИНТЕЛТЕК ПЛЮС» представляет ОСУБД ODB-Jupiter. В состав которой входят компоненты: сервер хранилища объектов; сервер-диспетчер объектов, также реализующий функции объектно- ориентированного промежуточного уровня В настоящее время на основе ОСУБД ODB-Jupiter создан коммерческий продукт - информационно-поисковая система ODB-Text. НПЦ « ИНТЕЛТЕК ПЛЮС»
7 Особенности построения ОСУБД. Модель данных. НПЦ « ИНТЕЛТЕК ПЛЮС» Требования ODMG 3.0 Объектная модель, предписывающая формат представление данных, их однозначную идентифицируемость, методы типизации данных и построения иерархий типов; Язык запросов OQL для ОСУБД; Набор служебных функций для организации доступа к базе данных, получения схемы данных, работы с транзакциями; Библиотеки программиста для работы с ОСУБД для языков Java, C++, Smalltalk
8 Особенности построения ОСУБД. Модель данных. НПЦ « ИНТЕЛТЕК ПЛЮС» Основные элементы объектной модели
9 Особенности построения ОСУБД. Модель данных. НПЦ « ИНТЕЛТЕК ПЛЮС»
10 Идентификаторы объектов ОСУБД. НПЦ « ИНТЕЛТЕК ПЛЮС» ОСУБД Versant OID = { Storage ID : Object ID } Storage ID - 4 байта Object ID - 8 байт ОСУБД Poet OID = { Class ID : Object ID } Class ID, Object ID - 4 байта ОСУБД ODB-Jupiter OID = { Storage ID : Class ID : Object ID } Storage ID - 4 байта Object ID - 8 байт Class ID - строка без ограничения длины
11 Особенности построения ОСУБД. Методы организации клиент- серверного взаимодействия. НПЦ « ИНТЕЛТЕК ПЛЮС» Клиент-серверная архитектура ОСУБД
12 Особенности построения ОСУБД. Методы организации клиент- серверного взаимодействия. НПЦ « ИНТЕЛТЕК ПЛЮС» Клиент-серверные архитектуры СУБД
13 Организация хранилищ данных НПЦ « ИНТЕЛТЕК ПЛЮС» - системное хранилище используется для хранения системы классов. Системное хранилище создается на этапе создания базы данных и содержит информацию о классах, о наличии и месторасположении пользовательских хранилищах; - пользовательское хранилище для хранения пользовательских объектов; - служебное хранилище, функция которого - хранение временной информации, например о заблокированных объектах, об активных транзакциях, различного вида списки запросов пользователей и т.д.
14 Организация хранилищ данных в ОСУБД Versant НПЦ « ИНТЕЛТЕК ПЛЮС» Классификация по типу базы данных: 1) Групповые базы данных; 2) Персональные базы данных. Классификация по типу функциональному назначению: -системный раздел (system volume) - создается автоматически при формировании базы данных; -раздел данных (data volumes) - может быть добавлен для увеличения доступного объема базы; -раздел логического протокола (logical log volume) и раздел физического протокола (physical log volume) предназначены для хранения служебной информации о транзакциях, блокировках для обеспечения возможности отката транзакций и восстановления базы.
15 Организация хранилищ данных в ОСУБД ODB-Jupiter НПЦ « ИНТЕЛТЕК ПЛЮС» - системное хранилище, которое содержит описатели схемы данных и ряд служебных объектов; - хранилище безопасности, хранящее информацию о группах, пользователях и их прав доступа; - пользовательские хранилища для хранения объектов пользователей.
16 Организация хранилищ данных в ОСУБД ODB-Jupiter НПЦ « ИНТЕЛТЕК ПЛЮС» Варианты организации взаимодействия серверов ОСУБД и сервера данных Единая ЭВМ Различные ЭВМ
17 Некоторые функции ОСУБД - ведение схемы данных - ведение версий объектов; - транзакции и блокировки; - длинные транзакции и блокировки; - разделение доступа к объектам. НПЦ « ИНТЕЛТЕК ПЛЮС»
18 Ведение схемы данных ОСУБД Схема данных является основой функционирования ОСУБД, содержит описание хранимых типов, их иерархии и взаимосвязи. Изменение схемы данных ОСУБД, как правило, не требует изменения хранимых данных. ОСУБД предусматривают динамическое изменение схемы данных. НПЦ « ИНТЕЛТЕК ПЛЮС»
19 Ведение схемы данных ОСУБД ODB-Jupiter - выполнение функций, предусмотренных ODMG; - возможность ведения группы алиасов атрибута; - возможность работы с «анонимными» объектами. НПЦ « ИНТЕЛТЕК ПЛЮС»
20 Некоторые характеристики ОСУБД на примере ODB-Jupiter - количество типов в схеме данных: до количество атрибутов типа: до количество объектов в одном хранилище: до количество объектов одного типа и хранилища: до объем данных, содержащихся в объекте: до количество хранилищ: до 2 32 НПЦ « ИНТЕЛТЕК ПЛЮС»
21 Ведение версий объектов НПЦ « ИНТЕЛТЕК ПЛЮС» Управление версиями в ОСУБД Versant
22 Разделение доступа к объектам НПЦ « ИНТЕЛТЕК ПЛЮС» ОСУБД Poet, ОСУБД Versant - необходима самостоятельная реализация механизма разделения доступа к объектам. ОСУБД ODB-Jupiter - реализует разделение доступа в соответствии с классом «B3» Orange book и классом «5» ГОСТ Р
23 НПЦ « ИНТЕЛТЕК ПЛЮС» Транзакции и блокировки Транзакции: короткие; длинные; вложенные; параллельные. Блокировки: короткие; продолжительные ; оптимистические.
24 НПЦ « ИНТЕЛТЕК ПЛЮС» Язык запросов ОСУБД Группа ODMG для связи с ОСУБД разработала язык OQL: - Язык опирается на объектную модель ODMG; - основная конструкция языка - это конструкция SELECT...FROM...WHERE…GROUP BY…HAVING…ORDER BY...; - результат запросов представляет собой множество объектов. Сложные взаимосвязи объектов могут напрямую указываться в запросе, что является одной из отличительных особенностей OQL от языка SQL; - язык является функциональным, операторы могут объединятся в выражение в качестве операндов; - может использоваться в качестве языка программирования; - возможно увеличение его функциональности.
25 Язык запросов ОСУБД НПЦ « ИНТЕЛТЕК ПЛЮС» Группы операторов OQL: - -операторы сравнения - операторы типа равно, не равно, больше, меньше и их комбинации; - -строковые операции, позволяющие указывать требование на полное совпадение, частичное совпадение или на соответствие некоторой последовательности; - -операции с классами, конструкторы стандартных типов set, bag, list, array(..), struct(..), а также конструкторы типов пользователя; - -операции с множествами объектов типа пересечения, объединения, дополнения и др.; - -предикаты объединения типа AND, OR, NOT, используемые для указания условия на поиск данных; - -простые выражения типа сложения, вычитания, умножения, деления, остаток от деления;
26 Язык запросов ОСУБД НПЦ « ИНТЕЛТЕК ПЛЮС» Пример запроса в OQL: select distinct struct( name: x.name, hps:(select y from x.subordinates as y where y.salary>100000)) from Employees x Тип результата: set )>
27 Язык запросов ОСУБД. Расширение языка OQL в СУБД Versant: НПЦ « ИНТЕЛТЕК ПЛЮС» В функциональных библиотеках ОСУБД добавлены операции с классами, позволяющие указать, возвращать ли объекты непосредственно базового класса, или только объекты классов потомков; возможно управление логическими путями в запросах; введены дополнительные конструкции SQL; введено понятие «виртуальный атрибут».
28 Язык запросов ОСУБД. Расширение языка OQL в СУБД Versant: НПЦ « ИНТЕЛТЕК ПЛЮС» Управление логическими путями в запросах car color == «red», 0("exists") Sue - Одна ссылка со значением «red». Rob - Одна ссылка со значением «red». car color == «red», O_ALL_PATHS Sue - Две завершенные ссылки, все ссылки имеют значение «red». car color == «red», O_EMPTY_TRUE Sue - Одна ссылка со значением «red». Rob - Одна ссылка со значением «red». Ned - Нет завершенных ссылок.
29 Язык запросов ОСУБД. Расширение языка OQL в СУБД Versant: НПЦ « ИНТЕЛТЕК ПЛЮС» Конструкции Versant Query Language(VQL): COMMIT Commit transaction. DELETE Delete objects. INSERT Insert objects. QUIT Terminate application. ROLLBACK Roll back transaction. SELECT Find objects. UPDATE Update objects.
30 Язык запросов ОСУБД. Расширение языка OQL в СУБД Versant: НПЦ « ИНТЕЛТЕК ПЛЮС» Виртуальные атрибуты ОСУБД Versant: Пример: выборка книг на немецком языке, имеющих названия, начинающиеся с букв определенного диапазона. PClassObject ::Object().select(NULL,FALSE, PPredicate(PAttribute("/national de_DE utf8 Book::title") > "U" && PAttribute("/national de_DE utf8 Book::title") == "V")); Результат: книги, имеющие названия, начинающиеся с букв диапазона ["U", "V"], то есть "U", "U" и "V"... "U" && PAttribute("/national de_DE utf8 Book::title") == "V")); Результат: книги, имеющие названия, начинающиеся с букв диапазона ["U", "V"], то есть "U", "U" и "V"...">
31 Язык запросов ОСУБД. Поиск текстовых данных НПЦ « ИНТЕЛТЕК ПЛЮС» ОСУБД Versant: поддержка национальных кодировок; ОСУБД Poet: хранение текста в формате Unicode, система Verity® для поиска с учетом морфологии языка, по лексикографической или фонетической близости; ОСУБД ODB-Jupiter: изначально ориентирована на поиск текста на русском языке. Содержит специальный язык запроса с возможностью указания параметров запроса, позволяющий вводить запрос на естественном русском языке.
32 Язык запросов ОСУБД. Поиск текстовых данных НПЦ « ИНТЕЛТЕК ПЛЮС» Язык запросов ОСУБД ODB-Jupiter включает конструкции, позволяющие обрабатывать текстовые данные, в частности, на русском языке:
33 Язык запросов ОСУБД. Тенденции развития НПЦ « ИНТЕЛТЕК ПЛЮС» Унифицированный язык запросов СУБД; Типовой набор функций, выполняемых СУБД (select, insert, update); Типовой набор сервисных функций, выполняемых СУБД (sin, cos, ln); Расширяемость за счет возможности создания пользовательских функций; Поддержка расширений базового языка SQL за счет специализированных дополнений: полнотекстовый поиск текстовых данных; поиск не текстовых данных; преобразование форматов данных; Разделение прав доступа к данным к данным.
34 Промежуточный объектно- ориентированный слой НПЦ « ИНТЕЛТЕК ПЛЮС» Использование данных из СУБД сторонних производителей; расширение функциональных возможностей внешних СУБД за счет эмуляции отсутствующих функций; обеспечение «прозрачного» интерфейса доступа к данным для пользователей ОСУБД; оптимальное использование внешних баз данных для хранение классификаторов и т.д.; использование таких СУБД как DB2, Oracle.
35 Промежуточный объектно-ориентированный слой Poet SQL Object Factory НПЦ « ИНТЕЛТЕК ПЛЮС» Варианты организации внутреннего взаимодействия ОСУБД Poet
36 Отображение объектной схемы данных на реляционную структуру НПЦ « ИНТЕЛТЕК ПЛЮС» Описание класса на языке C++: persistent class Person { PtString name; int age; PtDate birthDate; }; Результат преобразования в запрос на языке определения данных РСУБД: CREATE TABLE SCHEMA.PERSONC101V0( -- Identity columns OID NUMBER (38) not null, CID NUMBER (38) not null, –- Columns for class members NAME0V0 VARCHAR2 (50), AGE1V0 NUMBER (38), BIRTHDATE2V0 DATE, PRIMARY KEY ( OID ));
37 Отображение объектной схемы данных на реляционную структуру НПЦ « ИНТЕЛТЕК ПЛЮС» Пример C++ POET Object Model: persistent class Car { PtString make; PtString model; int year; }; persistent class RichPerson { PtString name; lset fleet; lset villas; }; Результат преобразования в запрос DDL СУБД Oracle: CREATE TABLE SCHEMA.RICHPERSONC102V0 ( OID NUMBER (38) not null, CID NUMBER (38) not null, NAME0V0 VARCHAR2 (50), PRIMARY KEY ( OID ) ); CREATE TABLE SCHEMA.FLEETC102P0V0 ( OID NUMBER (38) not null, CID NUMBER (38) not null, EID NUMBER (38) not null, -– An Object ID points to the actual persistent object. CAROID0V0 NUMBER (38), CARCID1V0 NUMBER (38), PRIMARY KEY ( OID, EID ) ); CREATE TABLE SCHEMA.VILLASC102P1V0 ( OID NUMBER (38) not null, CID NUMBER (38) not null, EID NUMBER (38) not null, DATA0V0 VARCHAR2 (50), –- PtString elements PRIMARY KEY ( OID, EID )
38 Варианты реализации наследования при отображении на реляционную структуру Варианты организации наследования в Poet SQL Object Factory. НПЦ « ИНТЕЛТЕК ПЛЮС»
39 Заключение Тенденции развития ОСУБД: унификация языка запросов; формализация методов работы с объектами и управления работой ОСУБД; построение разделяемых компонентных систем; создание объектных надстроек, позволяющих интегрировать разнородные СУБД в рамках единого интерфейса программиста НПЦ « ИНТЕЛТЕК ПЛЮС»
40 Научно-производственный центр «ИНТЕЛТЕК ПЛЮС» НПЦ « ИНТЕЛТЕК ПЛЮС»
41 Язык запросов ОСУБД Допустимые имена атрибутов struct Date { int day; Base b; }; struct Base { int id; int code; }; Допустимые: Date::day Date::b.Base::id Date::b.Base::code struct Date { int day; Base *b; }; struct Base { int id; int code; }; Допустимые: Date::day Date::b->Base::id Date::b->Base::code
42 Язык запросов ОСУБД НПЦ « ИНТЕЛТЕК ПЛЮС» Определение именованных запросов в OQL: define age(x) as select p.age from Persons p where p.name=x; Определение типов в OQL и варианты создания их объектов: typedef set vectint; vectint(select distinct age from Persons where name=John) vectint(set(1,3,10))
43 Язык запросов ОСУБД НПЦ « ИНТЕЛТЕК ПЛЮС» Обработка элементов пронумерованных коллекций в OQL: list(a,b,c,d)[1:3] element( select x from Courses x where x.name=OQL and x.number=101).requires[0:2] first(element( select x from Courses x where x.name=OQL and x.number=101).requires) list(1,2)+list(2,3) -> list(1,2,2,3) Dict[OQL]
44 Язык запросов ОСУБД НПЦ « ИНТЕЛТЕК ПЛЮС» Операции с группами в OQL: bag(2,2,3,3,3) union bag(2,3,3,3) -> bag(2,2,3,3,3, 2,3,3,3) bag(2,2,3,3,3) intersect bag(2,3,3,3) -> bag(2,3,3,3) bag(2,2,3,3,3) except bag(2,3,3,3) -> bag(2)
45 Язык запросов ОСУБД НПЦ « ИНТЕЛТЕК ПЛЮС» Операции преобразования в OQL: element(select x from Professors x where x.name=Jemand) listtoset(list(1,2,3,2)) -> set(1,2,3) distinct(list(1,4,2,3,2,4,1)) -> list(1,4,2,3) flatten(list(set(1,2,3),set(3,4,5,6),set(7,8))) -> set(1,2,3,4,5,6,7,8)
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.