Source

Socrates / docs / zh20100314 / slides.tex

Full commit
\documentclass[slidestop,compress]{beamer}
%\usepackage[bars]{beamerthemetree} % Beamer Theme v 2.2
\usetheme{JuanLesPins} % Beamer theme
\usecolortheme{whale} % Beamer color theme

\usepackage[boldfont,slantfont]{xeCJK}
\usepackage{fontspec}
\setCJKmainfont{文泉驿微米黑}

\usepackage{color}
\definecolor{listinggray}{gray}{0.9} 
\usepackage{xcolor}

\usepackage{pstricks}
\usepackage{pst-node}
\usepackage{pst-tree}

\usepackage{listings}

\title{Socrates 动态语义建模工具}
\author[刘鑫]{刘鑫 <march.liu@gmail.com>}
\institute{动态数据库建模与三值逻辑}

\begin{document}

\frame{\titlepage}

\section{背景}
\subsection{传统观点的RDB运用}
%----------------------------------------------------------
\begin{frame}
\frametitle{关系型数据库(一)}
库、表、字段、记录
\begin{itemize}[<+-| alert@+>]
\item 库是表的集合
\item 通过字段集合定义表结构
\item 同构的记录保存于同一个表中
\end{itemize}
\end{frame}
%----------------------------------------------------------
\begin{frame}
\frametitle{关系型数据库(二)}
传统的设计理念可以直接对应强类型静态语言
\begin{itemize}[<+-| alert@+>]
\item 程序包含类
\item 类型定义由成员组成
\item 对象结构由类型决定
\end{itemize}
\end{frame}
%----------------------------------------------------------
\subsection{问题与应对}
\begin{frame}
\frametitle{传统思路遇到的问题}
所有静态强类型开发技术会遇到的问题
\begin{itemize}[<+-| alert@+>]
\item 随着程序运行,出现结构变更
\item 快速开发过程,不断修改数据库结构
\item 数据形成稀疏矩阵效应
\end{itemize}
\end{frame}
%----------------------------------------------------------
\begin{frame}
\frametitle{动起来}

我们该怎么做?
\begin{itemize}[<+-| alert@+>]
\item 用字典管理数据
  \begin{itemize}
  \item PG HStore
  \item XML
  \item JSON
  \end{itemize}
\item 动态语言
  \begin{itemize}
  \item EAV
  \item 持久化DSL
  \item Socrates
  \end{itemize}
\end{itemize}
\end{frame}
%----------------------------------------------------------
\section{什么是Socrates?}
\begin{frame}
\frametitle{项目介绍}
\url{http://bitbucket.org/March/socrates}
\begin{itemize}[<+-| alert@+>]
\item 基于三元语义的数据建模工具
\item 面向关系型数据库的访问工具
\item 针对动态数据结构实现
\item 面向数据关系
\end{itemize}
\end{frame}
%----------------------------------------------------------
\subsection{三元语义与三值逻辑}
\begin{frame}
\frametitle{三元语义与三值逻辑}
三元语义就是(主语,谓语,宾语)三元组
\begin{itemize}[<+-| alert@+>]
\item 每个宾语代表一个具体的数据
\item 每个主语代表一个相关主题
\item 谓语解释主语与宾语的关系
\item 修改主题的结构,即增删子句
\item 主题可以作为宾语
\end{itemize}
\end{frame}
%----------------------------------------------------------
\begin{frame}
\frametitle{三值逻辑}
三元语义的定义与划分
\begin{itemize}[<+-| alert@+>]
\item 用谓词表达结构
\item 用宾语表达数据
\item 元语义
\end{itemize}
\end{frame}
%----------------------------------------------------------
\subsection{ Socrates 实现}
\begin{frame}
\frametitle{动态语义实现}
强类型动态类型工具
\begin{itemize}[<+-| alert@+>]
\item 基于 SQLAlchemy 实现
\item 宾语可以是任何类型
\item 可以书写为三值逻辑解释
\item 类似字典的结构(持续改进中)
\end{itemize}
\end{frame}
%----------------------------------------------------------
\begin{frame}[containsverbatim,allowframebreaks]
\frametitle{元语义}
用三元语义解释三元语义
\begin{itemize}
 \item subject is type
 \item predicate is subject
 \item is is predicate
 \item is objType subject
 \item objType is predicate
 \item objType objType subject
 \item type is subject
 \item string is type
 \item name is predicate
 \item name objType string
 \item storage is predicate
 \item storage objType string
\end{itemize}
\end{frame}
%----------------------------------------------------------
\begin{frame}[containsverbatim,allowframebreaks]
\frametitle{实现目标}
\begin{itemize}
\item 使用 subject predicate object 解释数据
\item 解决关系型数据库结构固定,不容易修改的问题
\item 解决稀疏表的存储问题
\item 建立于数据存储层之上,兼容不同类型的数据库
\item 规则简单
\item 元数据信息,自描述
\item 结构开放,可以开发第三方接口
\item 结构简单,基于递归和引用,容易使用
\item 数据粒度小,伸缩性好,容易并发
\item 可插入到其它体系中使用
\end{itemize}
\end{frame}
%----------------------------------------------------------
\begin{frame}[containsverbatim,allowframebreaks]
\frametitle{已经实现的部分(一)}
基于 SQLAlchemy 的智能存储接口 
\begin{itemize}
\item 自适应多种不同的数据库
\item 构建架构
\item 简单查询
\item 支持简单的谓词表达式
\item 类型动态注册和智能感知
\end{itemize}
\end{frame}
%----------------------------------------------------------
\begin{frame}[containsverbatim,allowframebreaks]
\frametitle{已经实现的部分(二)}
基于 SQLAlchemy 的智能数据对象
\begin{itemize}
\item 数据库平台中立
\item 友好支持具体平台的特色功能
\item object/objects
\item 基于谓词表达式的查询
\item 数据维护
\item 匹配 SQLAlchemy 成熟功能
\item 可以直接使用 SQLAlchemy 已有的查询技术
\end{itemize}
\end{frame}
%---------------------------------------------------------
\section{展望}
\subsection{近期}
\begin{frame}
\frametitle{近期目标}
提高可用性
\begin{itemize}[<+-| alert@+>]
\item 子句对象字典化
\item 理清容器行为逻辑
\item 探索 URI 机制
\item 优化查询性能
\item 规范化谓词表达式
\item 支持查询表达式和查询构建
\end{itemize}
\end{frame}
%----------------------------------------------------------
\subsection{中期}
\begin{frame}
\frametitle{中期目标}
DSL
\begin{itemize}[<+-| alert@+>]
\item DSQL 初步
\item SELECT *fields WHERE filters GROUP BY *columns ORDER BY *columns 
\item UPDATE ... WHERE
\item WRITE ... WHERE/NEW
\end{itemize}
\end{frame}
%----------------------------------------------------------
\subsection{长期目标}
\begin{frame}
\frametitle{长期目标}
不靠谱的地平线
\begin{description}[<+-| alert@+>]
\item[EUCLID] 微观的 Socrates 内存数据结构组件
\item[LIGHTING] 基于内存集群的非持久化高速三元语义引擎
\item[PLATO] 基于 PostgreSQL 的原生动态引擎
\item[UTOPIAN] 组合 Socrates 项目技术的三元语义EAV数据库
\end{description}
\end{frame}

%----------------------------------------------------------
\section{}
\begin{frame}
\frametitle{感谢}
谢谢大家在这里与我共度这次分享!
\end{frame}
\end{document}