欢迎来到天天文库
浏览记录
ID:38569273
大小:2.18 MB
页数:35页
时间:2019-06-15
《Oracle数据库第二次》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Oracle11gPL/SQL程序设计教程第二章数据库的建立主讲:杨丽娜2.1数据库的逻辑设计2.1.1关系数据库设计基础2.1.2关系数据库规范化1.第一范式2.第二范式3.第三范式2.2数据库的物理设计2.3数据库实施2.4创建数据库实体标识符:能够将一个实体与其他实体区别开来的属性集。表:实体的集合。实体:表中的行。属性:表中的列。几个重要概念实体标识符表示为关键字或主码。上页的关系中,哪些属性适合作为关键字?例如“学生”关系中的属性“学生学号”就是关键字,只要学号确定了,就能知道这个学号对应的姓名、性别、出生年月和专业等信息,但学生关系中的“性别”和“专业”不能作为关键字,因为即使性
2、别或专业确定了,还是不能确定学生的姓名和学号等信息,同性别或者同专业的学生太多了。当然如果这个关系中没有同姓名的学生,则姓名也可以作为关键字看待,这要根据具体的语义来决定。。关键字(主码或主键)实体间的联系关系数据库规范化知识点:第一范式(1NF):如果一个实体(表)的所有属性都是不可分割的,即表中的每一行和每一列均有一个值,并且永远不会是一组值。关系students不满足第一范式,因为属性SH(学生的家庭成员)可以再分解,如分解为父亲、母亲。第二范式在第一范式的基础之上更进一层第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一
3、个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。联合主键:就是用2个或2个以上的字段组成主键。第二范式这样就产生一个问题:这个表中是以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二范式的设计原则。而如果把这个订单信息表进行拆分,把商品信息分离到另一个表中,就非常完美了。如下面这两个所示。这样设计,在很大程度上减小了数据库的冗余。如果要获取订单的商品信息,使用商品编号到商品信息表中查询即可。第三范式第三范式在第二范式的基础上更进一层。第三范式需要确保数据表中的每一列数据都
4、和主键直接相关,而不能间接相关。关系名:students—学生属性:student_id–学生学号(主码)name–学生姓名sex–学生性别dob–学生出生日期SD–学生所在系的名称SL–学生所住宿舍楼关系students不满足第三范式,因为属性SL还是依赖于主码student_id,但也可由非主码属性SD导出,即SL是函数传递依赖于SD.第三范式比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。如下面这两个表所示的设计就是一个满足第三范式的数据库表.外键:如果关系模式R中的某属性集不是R的
5、主键,而是另一个关系R1的主键则该属性集是关系模式R的外键,通常在数据库设计中缩写为FK这样在查询订单信息的时候,就可以使用客户编号来引用客户信息表中的记录,也不必在订单信息表中多次输入客户信息的内容,减小了数据冗余。数据库的物理设计设计步骤:存储记录结构设计。确定数据存储方式。设计访问方法。完整性和安全性考虑。行成物理设计文档。数据库的物理设计设计性能可分为以下几类:查询和响应时间。更新事物的开销。报告生成的开销。主存储空间开销。辅助存储空间。数据库实施数据库的实现根据逻辑设计和物理设计的结果,在计算机上建立起实际数据库结构、装入数据,并进行测试和运行的过程称为数据库的实现。运行与维护阶段
6、的主要工作维护数据库的安全性和完整性。检测并改善数据库性能。增加新的功能。修改错误。对用户访问进行控制理解OracleRDBMS和OracleSQL内容回顾:Oracle的SQL实现在很大程度上符合ANSI标准,但并非百分之百地兼容。Oralce的竞争对手也并未做到与该标准完全兼容。OracleSQL*Plus命令行接口是一种非常好的工具,可以在任何操作系统平台下运行,允许输入和执行SQL命令。OracleSQLDeveloper工具是一种非常好的GUI,可以在Windows操作系统中运行,允许输入和执行SQL命令。区分系统权限和对象权限授予表上的权限在数据字典中查看权限授予角色区分权限和角
7、色完成课堂练习三种一般权限类型权限的类型描述系统权限在数据库中执行一项特定任务的能力对象权限在一个特定数据库对象上执行一项特定任务的能力角色由一项或多项系统权限和(或)对象权限,以及(或者)其他角色组成的集合系统权限什么是系统权限?使用任何一条SQL语句和(或)在数据库中执行一项任务的权利,就是一项系统权限。什么时候用到系统权限?在Oracle中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同
此文档下载收益归作者所有