Презентация Microsoft PowerPoint
description
Transcript of Презентация Microsoft PowerPoint
®
Information Management
© 2005 IBM Corporation
IBM Software Group
Новые тенденции управленияданными в продуктах компании IBM
Information Management
2
Agenda
Part I – XML: Почему и Где
Part II – Native XML в DB2 Viper
Part III – Немного о других новых возможностях DB2 Viper
Part III – Informix Dynamic Server 10
Part IV – Вопросы и ответы
Information Management
3
ГибкостьЗапросов
XQuery and/or SQL XML and/or Relational Data
Обмен XMLдокументами
XML СтолбцыВ RDBMS
Репозиторииконтента
ИерархическиеБД
РеляционныеБД
ЦифровойContent
ПроизводительностьМасштабируемость,
ДоступностьБезопасность…
Гибридные возможности гибкая инфраструктура
XML БД
Независимостьприложений
Эволюция комплексных схем
Последовательности и иерархии
Files
Возрастающая важность XML Формат обмена документами Web Services Обмен метаданными Модель программирования
Глубокая XML интеграция упрощает и объединяет инфраструктуру
Объединяет данные и Content Расширяет использование активов
Native XML хранилище Оптимизация производительности Предоставление гибкости Поддержка природы XML Сервисы БД
XML and Information on Demand
Information Management
4
Типичные сценарии использования XML Интеграция разрозненных источников данных
Обмен информацией между приложениями и организациями
eForms и системы workflow
Управление наполнением и документами
Транзакции основанные на сообщениях, web services, SOA
XML документы как бизнес объекты/ транзакционные записи (цифровая подпись, аудит, соответствие регулирующему законодательству)
XML как модель данных лучше подходит для (множественных значений, иерархий и комплексных данных)
Information Management
5
Пример 1: Финансовые данные (FIXML)Покупка 1000 акций компании IBM.
8=FIX.4.2^9=251^35=D^49=AFUNDMGR^56=ABROKER^34=2^52=20030615-01:14:49^11=12345^1=111111^63=0^64=20030621^21=3^110=1000^111=50000^55=IBM^48=459200101^22=1^54=1^60=2003061501:14:4938=5000^40=1^44=15.75^15=USD^59=0^10=127
Новый FIXML протокол
РасширяемыйСнижает затраты на поддержку и разработку
Старый протокол FIX
Information Management
6
Почему нужно использовать XML с БД ?
Управление большими объемами это проблема для БД! Эффективный поиск и извлечение XML
ACID
Производительность, Масштабируемость
…те же причины что и для реляционных данных!
Интеграция Интеграция новых XML данных с существующими реляционными данными
Публикация (реляционных) данных как XML
Поддержка для web приложений, SOA, web служб (SOAP)
Information Management
7
XML-Enabled Databases: две опции
XMLDOC
Извлечение определенных
элементов/атрибутов
Сторонние таблицы
CLOB/Varchar
XML DOC
XML DOC
XML DOC
XMLDOC
varchar CLOB
Фиксированное отображение
Shredder
(regular tables forfaster lookup)
Обычные таблицы
“Decompositon”
Shredding
Information Management
8
Проблемы XML-enabled Databases
Хранение как CLOB: Выполнение запроса требует разбора XML (Parsing) – медленно !
Нарезка: Отображение из XML в реляционные таблицы часто слишком сложно
Часто требует десятки, а то и сотни таблиц
Требуются сложные Complex разнонаправленные соединения(joins) для восстановления XML документа
При изменение схемы XML ломается mapping
Нет гибкости в схеме !
Например: изменение элемента, теперь он может встречаться в документе один и более раз. Это требует нормализации реляционной схемы и данных
Information Management
9
Нарезка: Простой пример
<DEPARTMENT deptid="15" deptname="Sales"> <EMPLOYEE> <EMPNO>10</EMPNO> <FIRSTNAME>CHRISTINE</FIRSTNAME> <LASTNAME>SMITH</LASTNAME> <PHONE>408-463-4963</PHONE> <SALARY>52750.00</SALARY> </EMPLOYEE> <EMPLOYEE> <EMPNO>27</EMPNO> <FIRSTNAME>MICHAEL</FIRSTNAME> <LASTNAME>THOMPSON</LASTNAME> <PHONE>406-463-1234</PHONE> <SALARY>41250.00</SALARY> </EMPLOYEE></DEPARTMENT> Department
DEPTID DEPTNAME15 Sales
EmployeeDEPTID EMPNO FIRSTNAME LASTNAME PHONE SALARY
15 27 MICHAEL THOMPSON 406-463-1234 4125015 10 CHRISTINE SMITH 408-463-4963 52750
Information Management
10
Нарезка: Изменение схемы…
<DEPARTMENT deptid="15" deptname="Sales"> <EMPLOYEE> <EMPNO>10</EMPNO> <FIRSTNAME>CHRISTINE</FIRSTNAME> <LASTNAME>SMITH</LASTNAME> <PHONE>408-463-4963</PHONE> <PHONE>415-010-1234</PHONE> <SALARY>52750.00</SALARY> </EMPLOYEE> <EMPLOYEE> <EMPNO>27</EMPNO> <FIRSTNAME>MICHAEL</FIRSTNAME> <LASTNAME>THOMPSON</LASTNAME> <PHONE>406-463-1234</PHONE> <SALARY>41250.00</SALARY> </EMPLOYEE></DEPARTMENT>
PhoneEMPNO PHONE
27 406-463-123410 415-010-1234
10 408-463-4963
Требует:• Нормализации текущих данных !• Изменение отображения• Изменения приложения
Costly!
DepartmentDEPTID DEPTNAME
15 Sales
EmployeeDEPTID EMPNO FIRSTNAME LASTNAME PHONE SALARY
15 27 MICHAEL THOMPSON 406-463-1234 4125015 10 CHRISTINE SMITH 408-463-4963 52750
Information Management
11
Зачем native XML хранилище? Много данных в реляционных БД
И это не будет меняться… так как SQL DBs быстрые
XML формат обмена Web Services везде
XML как артефакт транзакции Все больше и больше данных представляются в формате XML с самого начала…
Держать XML как XML Каждая трансформация (нарезка) затратка
И потенциально ведет к потерям информации
XML может быть слишком сложным для нарезки
Иерархический XML более адаптирован к человеческому мышлению
Information Management
12
XML в DB2
DB2 с NativeXML Support
SQL Developer… “Я вижу комплексную РСУБД
которая так же поддерживает XML"
XML Developer… “Я вижу комплексный XML
репозиторий XML который так же поддерживает SQL"
XML интегрирован во все аспекты DB2!
XML
Information Management
13
XML в DB2SQL и XML одинаковы в DB2
Множество интерфейсов для запросов
SQL/XML и XQuery Оба языка имеют полный доступ ко всем хранимым данным Выбор представления данных которое больше подходит для приложения
XML возможности встроены в DB2Глубока интеграция XML подразумевает высокую производительность!
Оптимизированное хранение данныхНовое хранилище и индексы для XML
Сервер
Клиент SQL/XML
XQuery
DB2 Engine
XMLInterface
RelationalInterface
Relational
XML
DB2 Storage:
DB2 Client /Customer Client Application
Information Management
14
Обзор Интерфейса Определение данных
create table dept(deptID int, deptdoc xml);
Вставкаinsert into dept(deptID, deptdoc) values (?,?)
Индексированиеcreate index xmlindex1 on dept(deptdoc)
generate key using xmlpattern ‘/dept/name’ as varchar(30);
Извлечениеselect deptdoc from dept where deptID = ?
Запросыselect deptID, xmlquery('$d/dept/name' passing deptdoc as “d") from dept where deptID <> “PR27”;
Information Management
15
0 dept4 employee1 name5 id2 phone3 office
String table
0 /1 /02 /0/43 /0/4/54 /0/4/15 /0/4/26 /0/4/3
Path table
Разбор документа
dept
name phone
employee
officeid name phone
employee
officeid
901 John Doe 344408-555
1212
902 PeterPan
216408-5559918
SYSIBM.SYSXMLPATHS
XML Documents парсится в соответствии с XQuery Data ModelСоздаются дополнительная информация в каталоге
•Строки и пути хранятся в каталоге DB2•Компрессия строк сохраняет место
SYSIBM.SYSXMLSTRINGS
Information Management
16
Хранение документа Иерархия узлов XML Документа хранится на страницах DB2
Если документ не помещается на одну страницу он разбивается на страницы/регионы
Управляемый системой индекс регионов указывает на части документа
page page page
Regions index
Information Management
17
Размер страницы для хранения XML
Большие документы разбиваются на регионы Максимальный размер документа 2GB
Information Management
18
Индексирование B-tree индексы расширены для
управления XML документами
Дополнительные поля PATHID: путь к значению VALUE: индексированное значение DOCID: Идентификатор документа NODEID: узел в котором хранится значение
Дополнительные техники при поиске по индексам Pivot Join (Zig-Zag join) Конкурентная проверка предикатов “and” и
“or” Множество курсоров на индексе каждый
проверяет предикат
…
A=4, docid=2
A=5, docid=3
A=5, docid=4
A=5, docid=5
A=5, docid=7
A=5, docid=8
A=5, docid=9
A=5, docid=10
A=5, docid=11
A=5, docid=12
…
…
B=6, docid=1
B=6, docid=2
B=6, docid=6
B=6, docid=12
…
Find docids where x/y[A=5 and B=6]
Information Management
19
Индексирование
AS SQL VARCHAR (integer)
CREATE index-name ON table-name(xml-column-name)
GENERATE KEY USING XMLPATTERN xmlpattern
UNIQUE
text()
@attribute-tag
@*
///
element-tag
*///
INDEX
DOUBLE
DATETIMESTAMP
VARCHAR (HASHED)
xmlpattern:
xmlpatternXPath без предиката
create index idx1 on dept(deptdoc) generate keyusing xmlpattern '/dept/employee/name' as sql varchar(35)
Information Management
21
Поиск по документу используя XQuery
Полная поддержка XQuery и XPath 2.0Включаяя FLWOR встроенный (nested) FLWOR
XQuery по всем документам в столбцеFOR $d in db2-fn:xmlcolumn(‘dept.deptdoc’)…
XQuery по документам используя SQL предикатыFOR $d in db2-fn:sqlquery(“select deptdoc from dept
where deptID LIKE ‘PR%’ ”)…
Information Management
22
Выражение FLWOR
FOR: проходит по последовательности документов,
LET: привязка переменных к элементам
WHERE: фильтрация элементов итерации
ORDER: перегруппирует элементы итерации
RETURN: конструирует результаты запроса
FOR $movie in db2-fn:xmlcolumn(‘table1.movies’)LET $actors := $movie//actorWHERE $movie/duration > 90 ORDER by $movie/@yearRETURN <movie> {$movie/title, $actors} </movie>
<movie> <title>Chicago</title> <actor>Renee Zellweger</actor> <actor>Richard Gere</actor> <actor>Catherine Zeta-Jones</actor></movie>
Information Management
23
John DoePeter Pan
<namelist> <name>John Doe</name> <name>Peter Pan</name></namelist>
Выражение FLWOR
<name>John Doe</name><name>Peter Pan</name>
for $d in xmlcolumn(‘deptdoc’)/deptwhere $d/@bldg = 101return <namelist>
{$d/employee/name} </namelist>
Результат не обязательно XML !
for $d in xmlcolumn(‘deptdoc’)/deptwhere $d/@bldg = 101return $d/employee/name/text()
for $d in xmlcolumn(‘deptdoc’)/deptwhere $d/@bldg = 101return $d/employee/name
<dept bldg=“101”> <employee id=“901”> <name>John Doe</name>
<phone>408 555 1212</phone><office>344</office>
</employee><employee id=“902”>
<name>Peter Pan</name><phone>408 555 9918</phone><office>216</office>
</employee></dept>
create table dept (deptID char(8), deptdoc xml);
Information Management
24
XQuery с объединением
for $book in db2-fn:xmlcolumn('BOOKS')/book for $entry in db2-fn:xmlcolumn('REVIEWS')/entry where $book/title = $entry/title return
<review> {$entry/review/text()} </review>;
Information Management
25
SQL/XML – Лучшее от общих от обоих миров
Все возможности SQL для обработки реляционных столбцов
Все возможности XQuery и XPath 2.0 для адресации и трансформации XML документов
Объединение XML документов и таблиц
Предикаты как SQL так и XML
Создание XML из структурированных полей
Материализация таблиц и представлений из XML документов
select d.deptID , u.headcount, xmlquery(‘$deptdoc/dept/name’ passing d.deptdoc as “deptdoc“)
from dept d, unit u
where d.deptID = u.unitID and u.headcount > 200
and xmlquery(‘$deptdoc/dept/@bldg’ passing d.deptdoc as “deptdoc“) = u.bldg
and xmlexists(‘$deptdoc/dept/employee/name’ passing d.deptdoc as “deptdoc“)
Information Management
26
SQL/XML
select d.deptID, xmlquery(‘$deptdoc/dept/name’ passing d.deptdoc as “deptdoc“), u.empcount
from dept d, unit u
where d.unitID = u.unitID and u.empcount > 200
and xmlquery(‘$deptdoc/dept/@bldg’ passing d.deptdoc as “deptdoc“) = u.bldg
and xmlexists(‘$deptdoc/dept/name’ passing d.deptdoc as “deptdoc“)
deptID unitID deptdoc
100 10
110 10
220 20
240 20
310 30
Dept
unitID Empcount bldg
10 234 G
20 123 H
30 32 H
Unit<dept bldg="G">
<name>Engineering</name>
<manager>Anjul</manager>
<backup>Susan</backup>
<admin>Mary</admin>
<chargecode>CW345</chargecode>
</dept>
Information Management
27
SQL/XML – публикация XML документовFIRSTNAME LASTNAME DEPARTMENT
SEAN LEE A00
MICHAEL JOHNSON B01
VINCENZO BARELLI A00
SELECT
XMLELEMENT (NAME "Department",
XMLATTRIBUTES (e.department AS "name" ),
XMLAGG ( XMLELEMENT(NAME "emp", e.firstname))) AS "department_list"
FROM employee e GROUP BY e.department;
department_list
<Department name="A00"> <emp>VINCENZO </emp> <emp>SEAN</emp></Department>
<Department name="B01"> <emp>MICHAEL</emp></Department>
Information Management
28
XMLTABLE - XML->relational
<zip>95023<zip>USnull4711
<zip>33129<zip>USBobby1325
ZipZipTypeNameCID
SELECT X.* from XMLTABLE (‘db2-fn:xmlcolumn(“PORDERS.PO”)//customer’ COLUMNS “CID” INTEGER PATH ‘@id’, “Name” VARCHAR(30) PATH ‘name’, “ZipType” CHAR(2) PATH ‘zip/@type’, “Zip” XML PATH ‘zip’ ) AS “X”
Information Management
29
Функции публикации SQL/XML Скалярные функции
XMLELEMENT – generate XML element
XMLATTRIBUTES - used within XMLELEMENT, specifies attributes
XMLFOREST - produces a forest of XML elements from SQL values
XMLCONCAT - concatenates a variable number of XML values
XMLNAMESPACES – produces a namespace declarations
Функции агрегации XMLAGG - to group or aggregate XML data
Табличные XMLTABLE – materializes a table from XML documents
Функции преобразования типов XMLCAST - converts between XML data type and standard relational types XMLSERIALIZE – converts XML data type to serialized XML as a
char/varchar/clob/blob
Information Management
30
JDBC API Enhancements for XML
Поддержка нового XML типа
Поддержка нового интерфейса com.ibm.db2.jcc.DB2Xml
Поддержка XQuery
Поддержка регистрации XML Schema
Type Code java.sql.Types.OTHER до тех пор пока не появится новый тип JDBC java.sql.Types.XML
Information Management
31
Sample Java Program
PreparedStatement stmt1 = con.prepareStatement("Select doc from dept where id = ‘001’ ”);
ResultSet rs = stmt1.executeQuery();
rs.next();
String xmlString = rs.getString(1);
InputStream is = rs.getBinaryStream(1);
com.ibm.db2.jcc.DB2Xml xml = (com.ibm.db2.jcc.DB2Xml) rs.getObject (1);
String xmlString = xmlOut.getDB2String();
InputStream is = xmlOut. getDB2XmlBinaryStream("ISO-10646-UCS-2”);
… = xmlOut.getDOM() or xmlOut.getSAX(); //future
PreparedStatement stmt2 = con.prepareStatement("update dept set doc = ? where id = ‘001”);
stmt2.setObject(1, xmlOut);
stmt2.setBinaryStream(1, new FileInputStream(file), (int)file.length());
stmt2.setString(1, xmlString);
stmt2.executeUpdate();
create table dept (id char(8), doc xml);
Information Management
32
Sample Java Program – XQuery
PreparedStatement stmt=null;
ResultSet rs;
String sqls = "XQUERY "+
"for $info in db2-fn:sqlquery('SELECT info FROM CUSTOMER WHERE cid > ?') "+
"where $info/*:customerinfo/*:addr[@country=\"England\"] "+
"return $info/*:customerinfo/*:phone/text()";
stmt = conn.prepareStatement(sqls);
stmt.setInt(1, cidToFilter);
rs = stmt.executeQuery();
create table customer (customerinfo xml);
Information Management
33
DB2.NET XML Support
DB2 .NET Provider
DB2Xml - Инкапсулирует тип XML Любой доступ к XML типу осуществляется через другие объекты основанные на XML
(XmlReader, XPathDocument)
Методы доступа к XML столбцам
DB2Xml.GetXmlReader
DB2Xml.GetString
DB2Xml.GetBytes
DB2DataReader
DB2Command
XML Input и Output Parameters DB2Type.Xml
Поддержка XQuery DB2XmlCommand
DB2XmlAdapter
Поддержка XmlSchema
.NET
Information Management
34
Sample .NET Program - XQuery
DB2XmlCommand xcmd = new DB2XmlCommand();
//Retrieve the name of all employees in department #100
xcmd.CommandText = “for $e in db2-fn:xmlcolumn (‘EMPLOYEE.EMPINFO)/employee
where $e/deptno = 100
return {$b/name}”
//Set the root tag
xcmd.RootTag = “deptlist”;
//Retrieve the result of the xquery expression as an XmlReader
//the result will be wrapped with <deptlist> </deptlist>
XmlReader xrdr = xcmd.ExecuteXmlReader();
//Retrieve the result of the xquery expression as a Stream
Stream xmlstream = xcmd.ExecuteStream()
create table employee (empinfo XML))
Information Management
35
Проверка с помощью XML Schemas
Проверка опциональна и осуществляется на уровне документа Без проверки
insert into dept(deptdoc) values (?)
С проверкой insert into dept(deptdoc) values (xmlvalidate(?))
Схема может быть перезаписана и указывать на схему в репозитории DB2
insert into dept(deptdoc) values (
xmlvalidate(? according to xmlschema id “ibm.invoice”)
insert into dept(deptdoc) values (
xmlvalidate(? according to xmlschema uri ‘http://my.world.com’)
Information Management
36
Управление XML Schema Репозиторий XML Schema (XSR)
Хранит зарегистрированные схемы Управляется как часть каталога DB2 Таблицы и представления создаются автоматически
SYSCAT.XSROBJECTS, SYSCAT.XSROBJECTCOMPONENTS SYSCAT.XSROBJECTAUTH, SYSCAT.XSROBJECTHIERARCHIES
Интерфейс командной строки, API, Хранимые процедуры
Хранимые процедуры
Регистрация XSR_REGISTER(rschema, name, schemalocation, content, docproperty)
Add XSR_ADDSCHEMADOC(rschema, name, schemalocation, content, docproperty)
Complete XSR_COMPLETE(rschema, name, schemaproperties, isusedforshred)
Information Management
37
Аннотация схемы для Нарезки Отображение из XML в реляционные таблицы
Отображение контролируется аннотациями XML в DB2 XSR
Аннотация Цель
db2-xdb:defaultSQLSchema The default schema for the table names
db2-xdb:rowSet The table name the element/attribute should be mapped to
db2-xdb:column The column name of the table the item should be mapped to
db2-xdb:contentHandling Text value, string value or xml fragment to be treated as the content to be inserted into the database
db2-xdb:truncate Truncate content if the size is greater than the specified size in the database
db2-xdb:normalization White space treatment
db2-xdb:expression Custom expressions to apply to the data before insert
db2-xdb:condition Conditions to apply to rows before insert
db2-xdb:tableMapping Multiple mappings, to same or different tables, for an element/attribute
db2-xdb:dependence Referential constraints
Information Management
38
<ipo:purchaseOrder ….. orderDate="1999-12-01“
orderID=“19991201-AZFG”> ………..
<item partNum="833-AA">
<productName>Phone </productName>
<quantity>1</quantity>
<USPrice>132.95</USPrice>
<shipDate>1999-12-05</shipDate>
</item>
<item partNum=“533-AC">
<productName>Cycle</productName>
<quantity>1</quantity>
<USPrice>149.95</USPrice>
<shipDate>1999-12-05</shipDate>
</item></items></ipo:purchaseOrder>
ELECTRONICITEMS
…<sequence>
<element name="productName“ type="string“/>
<element name="quantity“
type=“ipo:derivedPositiveIntegerType”
db2-xdb:rowSet=“ELECTRONICITEMS”
db2-xdb:column=“QTY”/>
…….<!– ignoring mapping of PRICE --> ….
<attribute name="partNum" type="ipo:SKU“
db2-xdb:rowSet =” ELECTRONICITEMS”
db2-xdb:column=“PARTNUM”
db2-xdb:expr =“udf_convertToInternalPart($SELF)”
db2-xdb:cond=“udf_isElectronicItem($SELF) =
‘ true’/>……..
<attribute name="orderID" type=“xs:string“
db2-xdb:rowSet = “PURCHASE_ORDER”
db2-xdb:column = “ORDERID” >
<annotation>
<appinfo>
<db2-xdb:tableMapping>
<db2-xdb:rowSet>ELECTRONICITEMS</db2-xdb:rowSet>
<db2-xdb:column>ORDERID</db2-xdb:column>
</db2-xdb:tableMapping>
</appinfo>
</annotation>
</attribute>
ORDERID PARTNUM QTY PRICE
19991201-AZFG 833-AA 1 132.95
Information Management
39
DB2 Development Workbench
Server Explorer
ProjectExplorer
Properties&
OutputArea
Visualization &
Editors
Eclipse based Support for XML type in tables, views,
SPs and UDFs Support for XML Index Support for XML type in SQL Query
Builder Graphical XML Query Builder XSD (XML Schema) Editor XML Editor XML viewer Support for XML Schema registration XML & XSL Parsers XML<->Relational mapping
Information Management
40
XQuery BuilderJava
Graphical XQuery builder
Supports selecting from actual documents to build query
Can view in progress XQuery statement
Save Statements for re-use
Execute and view results
Information Management
41
MS Visual Studio .NET – DB2 XML add-in .NET
Server Explorer
XML Editor
XML Schema Editor
XSR Registration
XML Index Builder
Information Management
42
DB2 Viper в Storebrand
Лидирующий игрок, на рынке страхования здоровья и жизни, управления активами и ценными бумагами в Норвегии.
Пионеры в адаптации SOA, Web Services и XML в информационных системах
Senior Enterprise Architect Thore Thomassen тесно работал IBM на протяжении Viper Alpha
Преимущество Native XML в сравнительных тестах
Сокращение времени разработки внутренних отчетов с более чем 1 day до 10 минут
Сокращение составляющей I/O для Web services в среднем на an 65% и сокращение времени поддержки на 20%
Реализация изменения схемы до нескольких минут с целого дня прототипирования и тестирования и целой недели внедрения
Реализация поиска и извлечения документов в соответствии с новыми требованиями в 30 минут, ранее требовалось 2 часа with decomposition and 8 hours with CLOB.
Information Management
43
Partner Solutions
JustSystem
Information Management
44
Немного о других новых возможностях
STTM – самонастраиваемая и конфигурируемая память DBMS
LBAC – Ограничение доступа на уровне строк
Hybrid Partitioning
Компрессия данных
Улучшения в Резервном копировании etc…
Information Management
45
Автоматизация автоматически!
Включение множества автономных возможностей по умолчанию.
Примеры: Configuration Advisor (2 second tuning)
Adaptive Self Tuning Memory
Автоматический сбор статистики.
Автоматическое вычисление параметров I/O Значения вычисляются во время запуска
Основываются на кол-ве CPU расположении дисков
Information Management
46
STMM в действии – Удаление важного индекса
TPCH Query 21 - After drop index - Average times for the 10 streams
0
1000
2000
3000
4000
5000
6000
7000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
Order of execution
Tim
e in
sec
on
ds
Avg = 959
Avg = 2285
Avg = 6205
Reduced 63%
Indexes Dropped
Information Management
47
Security - Label Based Access Control
Label Based Access Control (LBAC) “label” ассоциирован как с пользовательской сессией так и со строками
Правила (Rules) проверяют метки пользователей и строк для выявления прав
Labels могут состоять из множества компонентов Иерархия, группа и массив
Метка на строку есть дополнительный вне зависимости от количества компонентов метки
Пользовательские метки выдаются security administrator
Похожа на поддержку LBAC в DB2 для z/OS v8
Information Management
48
LBAC Hierarchy Update/Read
A 255
B 250 C 254 D 253
B1 100 B2 100
B1-1 50
B1-2 50
B2-3 50
A1 254
A 255
B 250 C 254 D 200
B1 100 B2 100
B1-1 50
B1-2 50
B2-3 50
Information Management
49
Hybrid Partitioning
999 Machines
HASH
RANGE
32K Partitions
64G
A-C
64G
D-M
64G
N-Q
64G
R-Z
MDC
Information Management
50
Region
Year
East
97
North South West
98 99 00
0th BlockBID = 0-0Pg 0
Pg 1
Pg 2
Pg 3
Pg 20
Pg 21
5th BlockBID = 20-0
01
Pg 22
Pg 23
Block INDEX ANDingCREATE TABLE SALES (Customer VARCHAR(80), Region CHAR(5), Year INT)
ORGANIZE BY DIMENSIONS (Region, Year)
SELECT * FROM SALES WHERERegion = 'West' AND Year = 00
• 'West' BIDs: 16-0, 20-0• '00 BIDs: 16-0• Result of AND: 16-0• Retrieve block 16-0 in one I/O• Mini-relation scan retrieves all records
in block
CREATE INDEX i1 ON SALES (Customer)
SELECT * FROM SALES WHERERegion='East' AND
Customer='Joe'
• 'East' BIDs: 0-0, 4-0• 'Joe' RIDs: 0-3, 0-211, 2-97, 7-1, 11-33• Filter out RIDs not in page range indicated by BIDs
0-3, 0-211, 2-97, 7-1• Directly fetch those records
"AND"ing RID and Block INDEXes
Примеры обработки запросовMDC изнутри
Information Management
51
Row Compression используется LZV
John, Dept 500, 20000, Plano, TX, 24355
Компрессия множества строк в одну страницу не эффективно с точки зрения БД.
Fred, Dept 500, 10000, Plano, TX, 24355, …
Fred, Dept 500, 10000, Plano, TX, 24355, …John, Dept 500, 20000, Plano, TX, 24355
Information Management
52
Row Compression Using Side Tables
John, Dept 500, 20000, Plano, TX, 24355, Site 3
Сторонние таблицы содержат повторяющуюся информацию из строк.
Fred, Dept 500, 10000, Plano, TX, 24355…
Fred, (01), 10000, (02), John, (01), 20000, (02)
01 Dept 500
02 Plano, TX, 24355
… …
Information Management
53
DB2 - More Compression Ratios (Customer Data)Compression Type 32KB Page Count Space Required on
Disk
No compression 5893888 179.9GB
Row compression 1392446 42.5GB
% Pages Saved: 76.4%
®
Information Management
© 2005 IBM Corporation
IBM Software Group
Informix Dynamic Server 10
Information Management
55
2008•Запросы рынка, Technology & заказчиков партнеров•Интеграция с IBM Software•Улучшения Автономности•MDC•MQT
Март 2003 ПроизводительностьBackup & Restore HDR & ER сосуществование
Удаление ограничений на размеры.
Мониторинг, Утилиты
IBM Informix Dynamic Server Roadmap
2004 2005 2006 2007 20082003
IDSv10.5
IDSv9.40
IDSv10
IDSvNext
2H 2006Запросы рынка, Technology & заказчиков партнеров
Интеграция с IBM Software
Автономность (Online Table Reorg, GUI, SQL)
Q1 2005 Безопасность Устойчивость/Высокая доступность
Разработка Соответствие стандартам
Автономность/ Простота администрирования
Интеграция с IBM SWG Запросы клиентов и партнеров
Information Management
56
Increase in Nightly Builds and Tests (IDS(4), CSDK, GLS, 4GL)
0
10000
20000
30000
40000
50000
60000
2000 2001 2002 2003
Tests
0
10
20
30
40
50
60
70
80
2000 2001 2002 2003
Builds
57000
4000
74
4
Information Management
57
IDS Уменьшение кол-ва ошибок
2001 2002 2003 2004
IDS 9.21
IDS 9.30
IDS 9.40
IDS 7.31
Defect Backlog
9.30.UC7 – 250 fixes
7.31.UD77.31.UD6
9.40.UC3
Information Management
58
Общие возможности
Общие комопоненты
ИнвестицииВ продукты
Начальныепродукты
Re-factor to SWG Product Offerings
Componentization and Formation of Substrates
ProductSpecific
Investment
ProductSpecific
Investment
ProductSpecific
Investment
ProductSpecific
Investment
ProductSpecific
Investment
Lotus
DB2/InformixWebSphere
Tivoli
Rational
Lotus
Tivoli
Rational
Tivoli
Rational
WebSphere
DB2/Informix Lotus
WebSphere
components
DB2/Informix
Lotus
WebSphere
Tivoli
DB2/Informix
IBM Software Portfolio – использование компонентов
Information Management
59