给数据库一个可反复使用的入口
早期Oracle数据库需要一种直接输入语句、查看结果的工具,UFI,即User Friendly Interface,承担了这项工作。它后来成为SQL*Plus这条产品路线的前身。技术作者乔纳森·根尼克的访谈记述将布鲁斯·斯科特列为最早作者,并记录另一位早期开发者柯克·布拉德利的回忆:他们需要一种向数据库输入语句、取回结果的办法。
这种工具与SQL本身有区别。SQL负责表达查询或修改数据的要求,交互工具则帮助人组织输入、调用语句并查看返回内容。程序员可以反复修改同一查询,而不必为每一次试验单独编写一个宿主语言程序。
UFI、SQL*Plus名称与年份
Oracle产品人员杰夫·史密斯在2021年的工具沿革演示中,把UFI列在1979年,把“SQL*Plus/UFI Advanced/随Oracle v5提供”列在1985年。这是厂商后出的产品史,将早期交互工具和后来采用SQL*Plus名称的产品放在同一条发展线上。
10.1版手册的启动示例把产品版本、运行时刻和版权行分别显示,版权行写着“Copyright 1982, 2003”。它记录了软件版权的沿用;SQL*Plus名称下的产品阶段,则在史密斯的沿革表中列于1985年。
马歇尔航天中心的实际使用环境
1984年,弗曼大学计算机科学副教授肯尼思·阿伯内西参加NASA暑期研究,在马歇尔航天中心评估数据库管理系统怎样处理航天飞机主发动机静态试车历史资料。他的报告署1984年8月10日,收进1985年1月出版的NASA CR-171317。
报告明确说,中心的VAX 11/780上已实现Oracle,并把SQL、UFI和高级语言接口分开介绍。UFI在构造查询时提供编辑能力;高级语言接口则让程序调用数据库服务。研究将Oracle与其他数据库方案作比较,提出完整试车历史数据库的需求与可行性建议。
参考:[1]
把反复查询保存成脚本
报告还记录,用户可以把一组SQL语句保存为操作系统文件,使用文本编辑器维护,再从UFI发出START命令调用。文件可以接受参数,调用时传入具体值。于是,同一种查询结构不必每次重输,只需换入要查的对象或条件。
这种做法把一次性的终端操作变成可保存、检查和重复使用的工作。它对试验历史资料尤其有用:研究者会反复追查发动机编号、试验编号及参数值,需要既保持查询结构,又改变选择条件。
参考:[1]
试车资料怎样成为一个查询
报告第I-17页的首个Oracle示例,从TESTS表选取试验编号TESTNO和发动机编号ENGNO,再用ADUR大于300作筛选。它展示的是按字段与条件取出记录,而不是指示程序员逐项遍历一个物理文件。后续示例用共同的TESTNO把不同关系表联系起来。
早期UFI的价值,因而可以在这些具体工作中理解:编辑语句、向关系数据库提问、查看结果,再把有效查询保存起来。1985年前后的名称变化延续了这一入口;后来图形界面、网络界面和SQLcl的发展,则是另外的产品阶段。