与Oracle的美丽邂逅 之 Scott,你现在还好吗?




  • Oracle数据库中有个传奇的用户,用户名为Scott,口令为tiger,这个用户是很多人学习Oracle时经常使用的样例用户。这个用户有何来历呢?

    原来Scott是确实存在的,上图照片中的这位,就是Scott本人,她的女儿养着一只猫叫做tiger,这就是这个样例用户的来历。但他的故事,远不止这些,让我们从下图来说起。(内容摘自下面网站:https://www.businessinsider.com.au/whatever-happened-to-oracles-founders-in-this-iconic-photo-2012-8#)

    甲骨文的联合创始人,照于1978年的软件开发实验室

    照片中的他们分别是(从左到右): Ed Oates(埃德 - 奥茨), Bruce Scott(布鲁斯 - 斯科特), Bob Miner(鲍勃 - 米纳),最右边的那个高个子是Larry Ellison(拉里·埃里森)。

    这是甲骨文联合创始人1978年庆祝公司成立一周年的一张照片,甚至在公司被命名为Oracle之前。那时它还被称为Software Development Laboratories (SDL)(软件开发实验室)。联合创始人不可能知道他们的公司总有一天会成为全球最大的数据库制造商,全球最大的企业软件和硬件供应商之一,成为数十亿的帝国。看看这些创始人的经历:

     

    项目经理 Ed Oates

    Ed Oates于1996年从公司退休。他在2011年在圣何塞州立大学的演讲时说,“我曾告诉Larry,当公司到达10,000人时,我就退出。但我退出的没有足够快,当公司有两万人的时候,我才退出了。“,然后,他买了一家高端的家庭影院商店,叫做Audible Difference,为Steve Jobs和Larry Ellison这样的高端客户服务,最终他在1999年卖掉了它。后来,他成为了大数据分析公司Auguri Corp的顾问委员会成员,并且是旧金山动物协会董事。

    以下是他对共同创始人的描述:“我们带来的东西:Larry带来了无所畏惧的技术奇才,Bob Miner。我所具备的是,项目管理和计算机如何在核心层面工作的知识。注意,我们没有任何的商业头脑。我们不是市场人员,我们也不是销售员。除了一点点的项目管理之外,我们不能管理一个大的组织来让我们生存下来,我们必须学习。



    第一个雇员Bruce Scott

    虽然布鲁斯·斯科特被广泛认为是甲骨文联合创始人,但从技术上讲他并不是。他是第一个雇佣的员工,或者如果你算上创始人,那么他就是第4号员工。他是Oracle数据库前三个版本的联合架构师。

    Scott最初五年与甲骨文公司在一起,并于1982年离开,随后与另一位前Oracle员工Umang Gupta合作发起了Gupta Technologies公司(它后来被称为Centura软件)。该公司创建了第一个支持客户端/服务器的SQL数据库,并蓬勃发展了一段时间,但最终申请破产,其技术被出售给投资者。

    后来Scott重振旗鼓,共同创办了另一家数据库公司PointBase,后者被DataMirror收购,该公司后来被IBM收购。具有讽刺意味的是,PointBase仍然在Oracle的WebLogic软件中使用。

    从那时起,Scott在Valley公司承担了其他一些工程角色,担任ThreatMetrix全球工程副总裁,ThreatMetrix是位于圣克拉拉的云安全供应商。

    技术天才 Bob Miner

    Bob Miner是Oracle数据库的架构师,在公司的大部分职业生涯中他领导产品设计和开发。1992年,他离开了这个工作,转到从Oracle内部剥离的一个从事先进技术工作的小部门。

    如果说埃里森被认为是公司的“头脑”,那么米恩就被认为是他的心脏,这是一位非常受人喜爱的经理,能够抵消埃里森的压力。他希望他的员工能够看到他们的家人,而不是整夜的工作。他于1993年52岁时死于接触石棉而引起的一种罕见的肺癌。

    野心勃勃的商人 Larry Ellison

    作为甲骨文公司首席执行官,拉里·埃里森(Larry Ellison)仍然坚强,他是科技公司历史上历史最悠久的首席执行官。他也是世界上最富有的人之一,净资产达360亿美元。他还忙于参加帆船,飞机比赛,以及打网球和弹吉他。

    如今,创始人拉里·埃里森(Larry Ellison)已经卸任公司CEO一职,不过他仍担任执行董事会主席和首席技术官。埃里森拒绝退休,所有软件和硬件工程部门将向甲骨文董事长和首席技术官——埃里森汇报。

    该公司联席总裁马克·赫德(Mark Hurd)和萨弗拉·卡茨(Safra Catz)将担任联席CEO。赫德将负责销售、营销和战略。卡茨仍将担任CFO,并负责法务和制造业务。

     

    这就是甲骨文创始人的故事

    这位甲骨文的第一位雇员 Scott 现在在哪里呢?

    感谢大家的关心,我们的Scott老爷子,目前的近况还是很不错的,他是Reputation.com的VP,或许你还可以和他取得联系。

    可惜目前的Oracle数据库早已经不在使用Scott这个用户了。确实多年以来,Oracle都使用简单的数据库模式Scott,以及两个特别的表,emp以及dept,用于各种文档和培训中的示例。但现在这些表已经不足以显示Oracle数据库和其他Oracle产品的基本功能。于是Oracle把EBS软件中的常用用户设置成为目前的样例用户,他们是一组相互关联的数据库用户,Oracle数据库样例模式基于一家虚构的示例公司,通过各种渠道销售商品。该公司在全球运营,以填补产品订单。它有几个分区,每个分区都由一个样例数据库模式表示。

    • HR(人力资源):用于人力资源部跟踪有关公司员工和设施的信息。

    • OE(订单输入):通过各种渠道跟踪产品库存和公司产品的销售情况。该模式中有许多数据类型可用,包括非标量数据类型。

    • OC(联机目录):用于电子商务门户网站上的安排,用户通过对应的产品类别从而导航到特定的产品。

    • PM(产品媒体):维护公司销售的每种产品的描述和详细信息。该公司在数据库中存储有关其产品的多媒体和打印信息。

    • IX (信息交流):用于使用消息传递来管理其提出的B2B应用程序,主要用于演示Oracle高级队列功能。

    • SH(销售历史记录):旨在跟踪业务统计信息,以促进业务决策。其中包含大量数据的演示,此架构的扩展提供了对高级分析处理的支持。

    样例用户的数据库关系模型图

    什么是数据库关系模型图

    数据模型是一种用来表达数据的工具。在计算机中表示数据的数据模型应该能够精确地描述数据的静态特性、数据的动态特性和数据完整性约束条件。因此数据模型通常是由数据结构、数据完整性规则和数据操作三部分内容构成。

    关系数据模型是一个满足一定条件的二维表格。满足关系模型的二维表格是个规则的二维表格,它的每一行是惟一的,每一列也是惟一的。在关系数据模型中,这样一个二维表格称为关系,表格的第一行是属性名,后续的每一行称为元组。每一列是一个属性,同一属性的取值范围相同。

    关系数据库是以关系模型为基础的数据库,它利用关系描述现实世界中的对象。一个关系既可用来描述一个实体及其属性,也可用来描述实体间的联系。一个关系是一个二维表格。二维表格的每一列是一个属性。每一列有惟一的属性名。属性在表中的顺序无关紧要。

    Oracle数据库就是使用关系数据库模型,该模型将物理数据组织并呈现为逻辑结构,例如表(具有列和行)。这些逻辑结构使数据可以理解。模式(schema)是由数据库用户拥有的逻辑结构的集合,可以包括表,视图,序列,存储过程,同义词,索引,集群和数据库链接。一般而言,模式包括应用程序在数据库中创建的所有内容。

    HR模式的说明

    上面图片中显示的是人力资源模式,将七个相关的表分组,并由人力资源用户创建。主键(用PK标识)是表中的行的唯一标识符。外键(用FK标识)引用主键。它使用与主键相同的值。主键和外键一起用来确保数据的完整性。例如,在上面的JOBS表中,每行都唯一标识一个作业。每个作业都有一个作业ID,这个ID是主键。同样,EMPLOYEES表中用雇员ID唯一标识每个雇员。员工ID也是主键。 EMPLOYEES表包含一个名为JOB_ID的外键,它引用了JOBS表中的JOB_ID主键。图中的实线表示强制外键约束,虚线表示可选外键约束。对于可选的关联关系,通常表现为用于关联的外键字段允许为null值,或者对于使用中间关联关系表的情况下可以不出现关联数据,而必须的关联关系则不允许外键为null或者必须存在关联数据。

     

    以下是HR模式中实施的一些主要业务规则:

    • 每个部门可能是一名或多名雇员的雇主。

    • 每个员工可能只被分配到一个部门。

    • 每个工作都必须是一个或多个员工的工作。

    • 每个员工目前只能分配到一份工作。

    • 当员工更改其部门或工作时,JOB_HISTORY表中的记录记录过去分配的开始和结束日期。

    • JOB_HISTORY表记录由复合主键标识:EMPLOYEE_ID和START_DATE列。

    • EMPLOYEES表也有自己的外键约束。

    • 这是业务规则的实施:每个员工可能只直接向一个经理报告。

    • 外键是可选的,因为顶级员工不会向其他员工报告。

    不过,关系模式也经常存在的问题

    • 数据冗余大,数据在多个元组中不必要地重复;

    • 更新异常,由于数据冗余,更新数据库代价.

    • 插入异常。

    • 删除异常,如果删除一组属性,带来的副作用可能是丢失了一些其他信息。

    为了解决关系模式所存在的问题,我们需要通过范式化来解决。范式化的过程就是不断分解关系的过程。关系规范化理论认为,关系数据库中的每一个关系都要满足一定的规范。

    根据满足规范的条件不同,可以化分为6个等级5个范式,分别称为第一范式(1NF),第二范式(2NF),第三范式(3NF),修正的第三范式(BCNF),第四范式(4NF),第五范式(5NF),NF是(Normal Form)的缩写。

    • 第一范式规定关系的每一个属性必须是一个不可分的数据项;

    • 第二范式要求数据表里的所有非主属性都要和该数据表的主键有完全依赖关系;

    • 第三范式是指关系的所有非关键字属性相互独立,任何属性其属性值的改变不应影响其他属性。

     

    范式比较难理解,下次文章,咱们聊聊范式的具体含义。

    最后,汇总一下知识点

    1. Scott老爷子依旧阳光焕发;

    2. Oracle的样例用户使用,HR,SH,OE,OC,PM,IX;

    3. Oracle是关系数据库,使用关系模型;

    4. 范式是为了解决关系模型的数据冗余,更新异常,插入异常,删除异常问题;

    长按二维码可识别关注
    技术学习资料免费获取
    线上线下活动和你相约
    专家圈子为你保驾护航
    近期精彩推荐

    Percona toolkit(PT工具)大满足-之MySQL收割者pt-table-checksum/sync

    Percona toolkit(PT工具)大满足-之MySQL杀手pt-kill(双十一特别版)

    浅析MYSQLDUMP备份的一致性原理

    在OracleLinux7.3上安装OracleRAC12.2.0.1

    某重要系统存储过程性能分析及优化

    Oracle 12.2的ORA-01017/ORA-28040解惑

    ORACLE 10.2.0.5 RAC升级到11.2.0.3

    Speak Your Mind

    *