• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Postgre sql intro 0
 

Postgre sql intro 0

on

  • 1,654 views

a slide for psotgresql

a slide for psotgresql

Statistics

Views

Total Views
1,654
Views on SlideShare
1,654
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Postgre sql intro 0 Postgre sql intro 0 Presentation Transcript

    • Postgres Stories PostgreSQL 数据库及相关设计讨论 ——刘鑫<march.liu@gmail.com>
    • Postgres WWH PostgreSQL ? What? RDBMS OpenSource Rich Power Why? How?
    • What is Postgres? PostgreSQL 是 一款开放源码的关系型数据库 BSD授权 有广泛的平台实现 一款久经考验的数据库产品 美国军方 医疗行业 地理信息系统 ……  具有实用面向对象特征的ORDB  强大的服务器端编程能力 完备的数据库功能
    • Why Postgres? PostgreSQL 有力的支持各种数据库设计 丰富实用的数据模型 自然优雅的程序逻辑 丰富强大的服务器端编程支持 适用各种架构需求 丰富便利的运维技术支持 冷备 热备 负载匀衡 统计分析工具  ……
    • Why Postgres? 强大的并发性能 http://www.blowfisher.net/gallery/v/pg-vs-mysql/ 丰富的安全模型 buildin trusted by addr by ldap ssl ...
    • Postgres 丰富的数据类型 强大的文本处理能力 独特的无限文本类型 Text 正则表达式! 完备的 XML 功能支持 Numeric 满足严谨的商务应用需求 满足各种特殊应用需求的数据类型 久负盛誉的几何类型  ltree 字典类型 hstore bits 全文索引 ...
    • Postgres 实用的ORDB模型 不仅是RDB 完备的RDB模型支持 继承 行集<=>向量集  自然的OO概念 智能的静态类型推导 函数支持Table类型  完备的约束定义能力 主键与唯一约束 自增字段与UUID Default and check 触发器
    • Postgres 强大的编程能力 SQL Window语法及数据挖掘 Iimit ... offset ... ... PLPGSQL 完备的过程控制语法 参数化SQL命令 自然的存储访问集成(游标) return next 和 return query  PLPerl/PLPython/PLTCL/PLJAVA/PLxxx... 无限可能的语言扩展!
    • How Postgres? -- Just Do It! 安装 Linux  cluster on debian/ubuntu BSD Port  Windows Binary Make It Yourself? 基于标准c 有详细的编译指导 对“新”手,可能比安装更好用……囧……
    • How Postgres? -- Just Do It! The First Day sudo su postgres initdb create superuser 理解存储结构 Linux Cluster 数据区与实例 理解安全体系 用户 认证方式 网络监听 企业级认证方式
    • How Postgres? -- Just Do It! 实操 psql postgres 命令行客户端 丰富的命令和功能支持 工具命令 GUI界面 PGAdminIII PHPPgAdmin Emacs! 客户端驱动 JDBC/ADO.net psycopg2/DBD::Pg ruby/php...
    • Postgres Story -- 树状结构访问 程序逻辑实现 return next return query 数据结构实现 ltree
    • Postgres Story -- 位映射 问题背景 布隆过滤器 基因工程及生物科学研究 其它数据压缩与加密场景... 实现 两个字段? 两个字段! 简单的基本运算演示 统计覆盖 bits 介绍 技术特色 运算支持
    • Postgres Story -- 最近访问用户 问题背景 背景介绍 与 memcache 实现的比较 实现 经典的触发器应用 性能与性价比分析 维护建议
    • Postgres Story --不规则数据集 问题背景 背景介绍 与继承实现的比较 与Domino实现的比较 与 couchDB 实现的比较 与KV数据库实现的比较
    • Postgres Story --不规则数据集 实现 经典的 XML 应用(pgxml) 函数(xpath_xxx) 函数索引实践 性能与性价比分析 维护建议 语义模型 化列为行 以空间换功能 需要应用层组件支持
    • Postgres Story --全文搜索引擎 问题背景 背景介绍 与 Lucene 实现的比较 与 Xapian 实现的比较 实现 Tsearch2引引擎 基本运算 方便的扩展接口 中文语言分析引擎nlpbamboo 中文分词技术的引入 待发挥的潜能 实践
    • Postgres Story --全文搜索引擎 TSearch2 vector to_tsvector query  to_tsquery @@ vector @@ query setweight(tsvector, char) rank get and set rank_cd cover density ranking
    • Postgres Story --全文搜索引擎 nlpbamboo 符合 TSearch2 接口 chinesecfg to_tsvector('chinesecfg', text) plainto_tsquery('chinesecfg', text)
    • Postgres Story --全文搜索引擎 create table page uuid/id content  full text index create table tmplate uuid/id uri template
    • Postgres Story --全文搜索引擎 content 使用 XML 方案 可以方便的使用XPATH支持进行查询 可以使用XSLT定制输出 允许对多种不同格式兼容存储,以利于未来的数据挖掘需 要 固定的格式: /*/@source /*/@tmpl /*/@type /*/content template  保存XSLT template 表以 uri 为键
    • Postgres Story --语义模型 问题背景 背景介绍 传统关系模型的优缺点 三元语义模型 实现 三元语义关系表——subject/predicate/object 值存储与查询 关联查询问题 ORM——SQLAlchemy
    • Postgres Story --语义模型 问题分析 动态数据类型问题 多表串联  动态类型的应用层支持 DSL支持 思路 SQLAlchemy subject = (subject predicate object) : subjects semantic query language Dynamic Type Object Model
    • Postgres Story --语义模型 架构 subject is subject predicate is subject predicate has objType predicate has name (name just it's word) is is predicate is objType subject objType is subject objType name objType has is predicate has objType predicate name is predicate
    • Postgres Story --语义模型 架构 name objType text text is type set is predicate set objType subject list is predicate list objType subject ……
    • Postgres Story --语义模型 数据库层 create table subject id serial subject integer foreign key references subject (id) predicate integer foreign key references subject (id) object integer foreign key references subject(id) create table text id serial subject integer foreign key references subject (id)
    • Postgres Story --语义模型 查询: subs : select * from subject where ... select * from text where subject in subs.subject select * from "other regist type" where ... 分析 与数据相比,基础类型总是有限的 整数据列索引后性能很好 需要动态类型的应用层查询工具支持
    • Postgres Story --语义模型 QL设计: subject predicate object object = subject predicate object predicate subject object `predicate ` subject get subject filter predicate match some condition get subject (p0,  p1, ...) filter ... put/insert/update (subject predicate object) update subject (predicate object)s filter ... "no DML!"
    • Postgres Story --语义模型 查询语言的设计分析: 需要感知注册的存储类型表 自省类型能力 一些基础谓词需要应用层解释 objType/type is ... 应该定义一些内置容器类型 set list dict ... 应该支持惰性计算
    • Postgres Story --语义模型 查询语言的设计分析: subject is a set of (predicate, object) subject maybe anonymous subject_id predicate_id (predicate 一定有 name) object process(predicate -> object)  could concurrent object -> message -> argument object -> method -> parameter every thing is triple (subject predicate object)
    • Postgres Story --语义模型 语义模型的存储无关性 不需要深度的服务器编程能力 基本内核只需要整型和字符串支持 应用层可以使用多种编程语言 可以是动态类型,有自省能力的语言 可以是有反射能力的静态语言(C#/Java) 可以是有类型推导能力的静态语言(haskell) 可以是支持“void *”的语言(C) 应该可以支持 sqlite 级别的数据库 引擎应支持具体平台的扩展定制(主要是类型增进)
    • Postgres Story --语义模型 目前需要增进的方面 部分元语义定义不清 type and collections predicate how do ... subject 提取方式 Query Language parser API
    • Postgres Story --总结  PostgreSQL First Day  特色功能  服务器编程能力——最近访问用户/树状表递归  特殊数据类型——位映射  全文检索支持——tsearch2与nlpbamboo的组合  基于XML的动态数据结构  语义模型
    • Postgres Story  by : 刘鑫(March Liu) site : http://zerolab.co.cc email : march.liu@gmail.com local : 珠海金山软件