Making Database Systems Usable
H. V. Jagadish Adriane Chapman Aaron Elkiss
Magesh Jayapandian Yunyao Li Arnab Nandi Cong Yu
Introduction
数据库得到了很大的发展,但还远远不够:比如很多数据存在数据库外,维护数据库的成本高,普通用户无法直接使用数据库。
原因:数据库的usability不够(schema过于复杂,SQL语句编写query不容易等等)。本文讨论的是基于用户角色的usability。
用户对database与web的usability预期是不同的:
| Databae | Web |
Query | sophisticated专业/复杂 | 输入keywords |
Result | 准确、完整 不准确、丢失的信息-》向用户解释 | 可以容忍imperfect和irrelevant, 因为不知道web数据量的范围 |
Result structure | Table,network,在map上的空间展示,多维空间上的点集 (result组成一个结构) | 一些links |
Modify | 可以Create、update | Only search |
Related work
Human error是导致很多复杂系统失败的主要原因,所以最近软件行业开始研究user(做得更加人性化)。
Database以前在usability方面主要有2个方向:新颖的查询界面、个性化数据库
界面:
1) 可视化的界面Visual Interface
a)帮助用户递增式地构造query(build queries incrementally)
代表:XQBE,MIX,Xing,VISIONARY,Kaleidoquery,QBT
b)基于表单的界面forms-based
2) 文本界面Text Interface
a)关键词检索界面(像搜索引擎): Relational database and xml database
b)自然语言界面:Microsoft English Query
c)介于keyword和structural search之间:用户知道部分data的结构
d)trend:分析keyword query,自动发现隐藏的语义结构semantic structures
思考:用NLP的方法?
个性化:
在web中已经开始(推荐广告?)
使用用户的上下文,分析用户的个性,对查询结构进行排序
Mining:是否需要machine training(记录用户的习惯)
Db中的training data:
Query log,cluster results, previous queries(a session)用markov model?
其他
HCI研究人机交换界面,交互式系统interactive system
Case study/Background
作者做的项目MiML是一个与生物教授合作的项目,帮助他们integrate 数据(多个数据库的整合)和query。为了方便biologist使用,MiML提供了5中query interface:
1) XQuery:最专业,要求对schema非常熟悉
2) MQuery
3) Forms
4) Keyword:即时反馈机制,自动补全拼写(word->phrase->query)
5) Natural language:迭代改进query,当系统无法理解用户query时
但在MiML的使用中,还是有以下问题:
1) 各种界面返回的结果不一样
2) 无法图形化表示复杂关系的data
3) 存储data难
Pain/Trends
db在usability方面遇到的问题,也就是值得研究的topic:
1) Painful Relation
Schema过于复杂:
a) Entity命名没有实际意义
b) 计算join复杂
c) 涉及多表的Query很复杂
部分是Normalization导致的
User view:为schema提供多种visual view(类似于MiMI里的Meaningful Summary Query)
2) Painful Options
多种interface option增加用户的负担(分析的代价,心理regret)
Query的多种表达方式:优化
要关注在完成的质量,而不是随意地提供多种选择(分析用户的需求,再提供合适的选择。不同level的用户,提供的选择不同)
取舍option:
a) 新手:简化query(每个人的需求不同)
同一个database里去query,每个用户希望得到的数据方向不同
b) 专家:更专业的query
3) Unexpected pain
a) 无法query
What-》How,增加用户的使用难度
Application-specific forms-based interface
系统根据用户需求,自动调整
Query无法执行时,给予用户解释:
性能、安全考虑,数据或者程序错误,以合适的方式告诉用户原因
b) Result不是预期结果
Why(where,how),why-not
4) Unseen Pain
在查询期间,逐步返回部分结果-》帮助用户refine query
“what you see is what you get”:word vs latex
传统的Query and debug模式耗时太长
4) Birthing Pain
日常info一般难以存入db:
a) 不清楚最终的结构
b) 随着信息增加,结构会变化
c) 相似信息,但结构不同(shoping list-> friend gifts vs daily shopping)
要支持unstructured和structured两种形式,但结构发生变化时,要容易操纵改变。
Painless Future
1) data model反应用户的需求,多种model
a)Geographic: mashup
b)Network
c)Multidimensional
d)Tabular
2) update throught view
Consistency among view options
3) data provenance(why, where)
Good provenance storage,compression, and query mechanisms
4) direct data manipulation
5) schema-latar and heterogeneous database design