1 / 50

刘隆国( longguo_liu@versant )

刘隆国( longguo_liu@versant.com.cn ). 数据库的发展历史 什么是面向对象和面向对象数据库? 面向对象数据库能够为复杂数据结构提供支持。. 什么是对象数据库 ?. 模型. 优点. 缺点. 数据. 性能. 灵活性 , 对查询的支持. 简单. 层次化,结构化. 网络化. 性能. 灵活性 , 对查询的支持. 简单. 关系型. 灵活性 , 支持查询. 性能. 简单. 对象型. 性能 , 灵活性. 随机性较强 , 支持既成的查询.

marcel
Télécharger la présentation

刘隆国( longguo_liu@versant )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 刘隆国(longguo_liu@versant.com.cn)

  2. 数据库的发展历史 什么是面向对象和面向对象数据库? 面向对象数据库能够为复杂数据结构提供支持。 什么是对象数据库?

  3. 模型 优点 缺点 数据 性能 灵活性, 对查询的支持 简单 层次化,结构化 网络化 性能 灵活性, 对查询的支持 简单 关系型 灵活性, 支持查询 性能 简单 对象型 性能,灵活性 随机性较强, 支持既成的查询 复杂 数据库发展简史 这两点是现有很多系统的核心问题所在

  4. 对象数据库历史 • “面向对象数据库系统”这一术语第一次出现于1985年。著名的研究项目包括 Encore-Ob/Server (布朗大学), EXODUS(Wisconsin 大学), IRIS (惠普), ODE(Bell 实验室), ORION (MCC), Vodak (GMD-IPSI), 和Zeitgeist (Texas Instruments)。其中以 ORION 项目发表的论文数为最多。MCC 的 Won Kim 将这些论文中最有价值的一部分汇编成书并由 MIT 出版社出版。

  5. 对象数据库概览 • 面向对象是一种认识方法学,也是一种新的程序设计方法学。 • 把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。 • 面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。 • 对象数据库是一种以对象形式表示信息的数据库。对象数据库的数据库管理系统被称为 ODBMS或 OODBMS • 对象数据库管理系统为面向对象编程语言增加了持久的概念

  6. 面向对象的数据库 • 一个专门为对象服务的数据库 • 设计目标是优化对象的存储与操作 • 有能力管理任何类型的复杂模型 • 简单类型: 整型, 字符串 • 多值类型(Multi-valued): 动态类型数组 • 有能力管理对象间的任何关系 对象间引用 (链接) • 集合 (唯一性), 列表 (排序), 图 (关联性查找) • 数据与程序语言的无缝集成

  7. 什么是复杂数据? • 必须从应用角度来进行考虑 • 面向图形 • 基于导航的访问模式 • 受到面向对象模型的全面影响 • 继承 • 集合 • 关联 • 无法简单的映射到关系模型 • 大量的映射代码 • 大量的联合(JOIN)操作 • 性能不佳

  8. 使用复杂数据的行业有哪些? • 电信 • 尤其是当涉及到与网络密切相关的应用时 • 地理信息系统 • 在应用中提供空间数据 • 需要大量历史数据支持的应用 • 股票,专利监控等等 • 科学应用 • 生物科学信息系统,医疗信息管理系统 • 国防与智能系统 • 出于保密需要… • 其它领域!

  9. 对象数据库的基础架构 对象数据库的技术优势 使用对象数据库有什么技术优势?

  10. Versant 全球 Since 1986 是全球面向对象数据库 的市场领先者

  11. Versant 全球 1996年在纳斯达克上市 (NASDAQ:VSNT)

  12. Hamburg Shanghai China Fremont, CA Pune Versant 全球 公司全球分布 • Redwood City, California • Hamburg, Germany • Pune, India • Shanghai,China

  13. 全球客户

  14. Versant 产品与服务 Object Databases(面向对象数据库) • Versant Object Database (VOD) • Current Version 8.0.1.X 最新版本:8.0.1.X • Available for many platforms 支持多操作系统平台:Windows, HP Unix, AIX, Redhat Linux... • High availability options and tools 高可用性解决方案以及多种工具

  15. Versant 产品与服务 Professional Services(专业服务) • Consulting Services(专业咨询) • Architecture Design & Review, Tuning,Integration, Installation, Database Administration,Mentoring, Pilot Projects 系统构架设计、审阅、优化 集成、安装、数据库管理 指导,项目计划引导 • Support Services(支持服务) • Standard 标准支持服务 • 24*7 24*7支持服务 • Designated Support Engineer 专用支持工程师服务 • Training Services(培训服务) • VOD database Administration VOD数据库管理 • Architecting for Performance 高性能系统构架

  16. 对象数据库系统架构 Versant C Interface Versant C++ Interface Versant Java Interfaces Other Interfaces, Tools, etc. Versant Object Manager Versant Network Layer Versant Network Layer Versant Server Virtual System Layer Raw Devices, File Systems, RAID, SAN, NAS

  17. User Interface User Interface Application Versant Object Manager Object Cache Application Logic Versant Object Manager FE Profile Page Cache Versant Storage Manager BE Profile Roll- forward log Database Volume(s) Logical Log File Physical Log File 双缓存架构 Versant Client Versant Server

  18. 多线程架构 Server Process Client Process Client Thread Server Thread Page Cache Session Object / Object Cache Lock Table Client Thread Server Thread Client Thread Session Object / Object Cache Server Thread Client Thread async I/O of non-commit buffer writes Log Buffer Thread Client Process Client Thread writes modified pages to disk Session Object / Object Cache Background Page Flusher Client Thread

  19. 对象数据库适用于解决 • Complex data 复杂数据 • Complex data relationships 复杂数据的关系 Performance 性能/ Scalability可扩展性 / Reliability可靠性 Tools Asynchronous Replication XA Java C++ MTMS Event Notification Fault Tolerant Server Versant 24x7 CORBA J2EE ODBC JDBC

  20. 面向关键业务的 C++ 及 Java应用 • 面向对象的程序模型与面向对象的数据库的深度绑定将在以下几个方面创造巨大的价值:开发时间缩短、应用执行效率提高,易用性提高以及目标产品投放市场的及时; • Versant提供的存储模型等同于应用的内存模型,这使得企业应用的数据库可以在保持高健壮性的基础上同时获得高效的执行效率。

  21. Tables 使用关系型数据库 In-Memory SELECT FROM table1 ...; SELECT FROM table2 ...; convert_tables_to_memory(); Order order = new Order() for(i=0; i<100; i++) { OrderLine p = new OrderLine(); … order.addLine(p) } convert_memory_to_tables(); INSERT INTO table1 ...; UPDATE table2 ...; RDBMS • 内存模型与存储模型不一致 • 从存储模型映射成内存模型时有巨大的性能消耗 • 更多的转换代码 • 编程语言和数据操作语言不一致,存在“失配”问题

  22. 对象数据库解决方案 VERSANT In-Memory Order order = new Order() for(i=0; i<100; i++) { OrderLine p = new OrderLine(); … order.addLine(p) } • 内存模型与存储模型是一致的 • 高性能的大数据量对象操作(排序等) • 没有额外的转换代码 • 强化的程序生产力 • 程序开发语言即DML与DDL

  23. Company Employee soc_no emp_name birth_date dept_name comp_name employees departments soc_no emp_name birth_date dept_name $ soc_no hour_rate over_rate max_over soc_no month_rate bonus_pct HourlyEmp SalariedEmp hour_rate over_rate max_over month_rate bonus_pct $ $ 举例: Mapping of Objects <?php $c = oci_connect('un', 'pw', '//localhost/XE'); $s = oci_parse($c, 'select * from employees'); oci_execute($s); while ($row = oci_fetch_array($s)) foreach ($row as $item) print $item; ?> Employee emp = new HourlyEmployee(“Meier”); transaction.commit(). Much coding and less performance due to mapping to tables

  24. Company Employee soc_no emp_name birth_date dept_name comp_name employees departments soc_no emp_name birth_date dept_name $ soc_no hour_rate over_rate max_over soc_no month_rate bonus_pct HourlyEmp SalariedEmp hour_rate over_rate max_over month_rate bonus_pct $ $ 举例: Mapping of Objects EXEC SQL INSERT INTO Employee_Table (soc_no, emp_name, birth_date, dept_name) VALUES (:emp->soc_no, :emp->name, :emp->birth_date, :emp->dept_name); if (emp->type == 1) EXEC SQL INSERT INTO Hourly_emp_Table (soc_no, hour_rate, over_rate, max_over) VALUE (:emp->soc_no, :emp->hour_rate, :emp->over_rate, :emp->max_over); else if (emp->type == 2) EXEC SQL INSERT INTO Salaried_emp_Table (soc_no, month_rate, bonus_pct) VALUES (:emp->soc_no, :emp->month_rate, :emp->bonus_pct) EXEC SQL COMMIT WORK RELEASE; Employee emp = new HourlyEmployee(“Meier”); transaction.commit(). Much coding and less performance due to mapping to tables

  25. 举例:Object Persistence public class Employee { private String _name; private int _age; private Department _department; public Employee ( String name, int age ) { _name = name; _age = age; } public void setDepartment ( Department d ) { _department = d; } static public main ( String args ) { TransSession session = new TransSession(args[0]); Department d = new Department(“Admin”); Employee p = new Employee (“Joe”, “21”); p.setDepartment(d); session.makePersistent(p); session.commit(); } } Employee.java javac Employee .class Employee .class Enhancer Config File javaEmployee mydb

  26. 降低开发成本 – 代码更少 – 构想更多 – 运行更快 Java .NET C++classes Database Design AnalyseDesign Database mapping layer Applicationtest Databasetest

  27. 源代码行数

  28. 对象数据库和关系型数据库的性能对比 WorldcomFraud Management EricssonNetwork Management 85x Faster 35x Faster Complex 复杂 50x 30x 10x 5x 3x British AirwaysYield Management ING BaringsRisk Management 15x Faster 52x Faster Medium 中等 Performance Improvement 性能提高比例 CIBC Global MarketsFront Office Trading Simple 简单 32x Faster IBM Benchmark 10-50x Faster Simple Queries Complex transactions 简单数据库查询请求 复杂数据库事务 Complexity level of Data Model for transactions 数据库事务中使用的复杂数据模型

  29. 对象数据库和关系型数据库的性能对比 Versant数据库测试样例CPU占用率图 同比关系数据库测试样例CPU占用率图

  30. 快速创建新业务模型最适合开发人员使用的数据库快速创建新业务模型最适合开发人员使用的数据库 敏捷开发等快速开发方法正在日渐成为主流 快速开发以及多次迭代正在成为必需 所有内容都使用面向对象方法构建 横向/纵向扩展 应用必须适应虚拟化业务环境的要求 规模扩大/规模缩小 高效的生产环境 用户能够接受的维护窗口正在日益缩小,24/7的生产系统运行方式正在成为主流 用户希望最好维护成本可以降低到零

  31. V/Management Center –全面监控与管理工具

  32. V/Compact–在线数据重组 • 磁盘释放与重用 • 在运行中释放数据库中未使用的磁盘空间,增加可用磁盘空间以提高数据库效率 • 尤其适用于经常删除大量数据对象的应用…

  33. V/HA Backup – 数据库热备 • 支持在线全备份以及增量备份 • 支持各种类型的磁带、磁盘以及远程设备 • 连续在线备份 • 使用磁盘“快照”实现快速备份 • 可以在镜像的RAID 系统下使用 • 支持与EMC的Timefinder软件集成 • 热备 (滚动归档) • 在执行恢复操作时无需繁琐的更新归档文件 • 数据生成后会被自动归档

  34. Application Versant Server Versant Server Secondary Primary V/FTS – 容错服务器 • 双节点同步复制 • 支持两个不同架构的节点 • 失效自动切换 • 恢复后自动重新同步 • 即使在失效时也决不会丢失一个事务 • 对于应用而言完全透明 • 适用条件 • 热备支持 • 零失效时间 • 7x24运行

  35. Secondary Primary V/Async Server – Versant异步复制 • 多向点对点复制或者主从复制 • 支持多种配置方案的柔性产品 • 面向LAN 或者WAN的网络传输优化方案 • 基于事件或者API方式 • 复制所有或者某一数据子集 • 可定制的消息、传送者、读者以及发布者 • 适用条件 • 尤其适用于地理上分散的分布式应用 • 全球化应用系统的数据本地化(本地复制) • 离线批处理报告、数据挖掘与分析

  36. Tables V/SQL –Versant的SQL工具 • V/SQL是为您提供使用结构化查询语言访问Versant 对象数据库中数据的工具。

  37. 对象数据库优势总结 • 更快的开发速度,直接使用程序开发语言实现,不需要再编写繁琐的操作SQL的语句,大大节约了开发成本。 • 更快的运行速度,采用导航式的搜索模式,对数据的获取可以更高效的获取。对象数据库保持着世界上最大的数据库(超过1000Terabytes在斯坦福线性加速中心)和被记录到的最高摄取率(一 Terabyte每小时)。 • 强大的数据管理支持能力,适用于复杂数据的管理。 • 支持分布式数据节点管理,适用于建立统一的大型数据环境。

  38. 对象数据库技术现状总结 • 对象数据库经过多年发展,已经相当成熟,并且已经拥有大量的成功案例 • 使用对象数据库可以帮助目标产品尽快投放市场 • 再也不需要繁复的对象-关系映射 • 使用对象数据库可以实现世界级处理性能 • 能够高效处理海量数据 • 能够高效处理业务系统中所包含的复杂对象网络 • 使用对象数据库很容易实现分布式部署 • 容易实现的多数据库(数据库网络) • 对象可以很容易地在两个数据库之间进行移动/复制,同时保持完整的对象引用关系

  39. 游戏业成功故事 公共安全业成功故事 电信业成功故事 航空业成功故事 制造业成功故事 石油业成功故事 … 对象数据库在云计算中的运用 使用对象数据库可以为我们带来什么好处?

  40. 游戏业成功故事——Gundam Online • 启动时已经提供了1亿个游戏对象 • 虚拟游戏世界“真实”存在,游戏对象本地缓存,巨量客户端对象的直接连接与数据访问 • 高性能案例:高速社交关系网查询,数百倍的性能提升

  41. 公共安全成功故事——罪案主动跟踪系统 • 各种社会公共安全系统联合运行,主动解决问题 • 18亿各种类型的事件并发进入数据存储环境 • 1500万人口覆盖 • 500万现有案例 • 以时间,空间、非结构体貌特征和个人信息为主要对象导航方式 • 覆盖结构化数据和非结构化数据

  42. CommercialsContent location Database 3 User GeneratedContent location Database n IMS Core Layer Application Server&Client Layer TV/Movie Content locationDatabase 1 Billing & Accounting, License Management 电信业成功故事——统一运营支撑环境 Music Commercials ring toneDatabase 1 Content

  43. 电信业成功故事——统一的复杂业务运行网络 VERSANT VERSANT VERSANT VERSANT VERSANT VERSANT

  44. 电信业成功故事——高性能ADSL认证查询 • 大量的查询要求 • 几十万级别的查询压力 • 40万次/秒甚至更多 • 大型UNIX主机被几台低端PC服务器所形成的分布式运算网络所替代 • 用户定向信息推送、用户行为分析等功能

  45. 航空业成功故事——Sabre Inventory System • 国际级航空订票处理系统 • 10k+有效航班信息(航段/航节支持) • 10k+Transaction/s 并发事务处理要求 • 1亿客户/年的数据增量 • 在事务支持下的内存级数据库运行支持

  46. 制造业成功故事:Foxboro I/A Series Intelligent SCADA • 开放、先进而可靠的I/A Series自动化控制系统 • I/A Series,自1987年推出以来,已在国内的约1000套装置得到选用和成功投用,其中化工、石化与炼油行业超过300套。如在炼油行业,I/A Series系统就已在常减压、催化、加氢、延迟焦化、酮苯、糠醛、芳烃抽提、气体分馏、硫磺回收和临氢降凝等主要炼油装置得到成功应用。

  47. 制造业成功故事:埃施朗全世界领先的控制网络制造业成功故事:埃施朗全世界领先的控制网络 • 埃施朗公司创建了LonWorks平台。这是一种强壮、灵活、可扩展的、基于标准的控制网络平台和生态系统。 • 基于Versant之上的LNS是软件网络工具的平台,这些网络工具通过辅助网络设计、安装、配置、监测、控制、诊断和维护来增加价值。 • 据埃施朗公司估计,使用Versant将上市的时间提前了六个月,这不仅节约了几个“开发人年”,同时使开发团队可以实现更强大的特性。

  48. 石油业成功故事——埃克森EMPower资源评估系统石油业成功故事——埃克森EMPower资源评估系统 • 针对大多数复杂油气田环境的储量以及生产能力预估 • 基于企业核心数据的汇集,影响企业生产决策 • 基于大量极端复杂的数据模型

  49. Versant资源 • General Information(基本信息) • www.versant.com • www.versant-china.com • Developer Corner(开发者资源) • www.versant.com/developer • user group forum registration 注册用户论坛 • Consulting and Training(咨询和培训) • www.versant.com/services

  50. Think Outside the Grid!

More Related