版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle数据库第二次课课件-新-PPT课件Oracle数据库第二次课课件-新-PPT课件2.1 数据库的逻辑设计 2.1.1 关系数据库设计基础 2.1.2 关系数据库规范化 1. 第一范式 2. 第二范式 3. 第三范式2.2 数据库的物理设计2.3 数据库实施2.4 创建数据库2.1 数据库的逻辑设计实体标识符:能够将一个实体与其他实体区别开来的属性集。表: 实体的集合。实体: 表中的行。属性: 表中的列。几个重要概念实体标识符:能够将一个实体与其他实体区别开来的属性集。几个重实体标识符表示为关键字或主码。上页的关系中,哪些属性适合作为关键字?例如“学生”关系中的属性“学生学号”就是关
2、键字,只要学号确定了,就能知道这个学号对应的姓名、性别、出生年月和专业等信息,但学生关系中的“性别”和“专业”不能作为关键字,因为即使性别或专业确定了,还是不能确定学生的姓名和学号等信息,同性别或者同专业的学生太多了。当然如果这个关系中没有同姓名的学生,则姓名也可以作为关键字看待,这要根据具体的语义来决定。关键字(主码或主键)实体标识符表示为关键字或主码。关键字(主码或主键)实体间的联系实体间的联系关系数据库规范化知识点:第一范式(1NF):如果一个实体(表)的所有属性都是不可分割的,即表中的每一行和每一列均有一个值,并且永远不会是一组值。关系 students不满足第一范式,因为属性 SH(
3、学生的家庭成员)可以再分解,如分解为父亲、母亲。关系数据库规范化知识点:关系 students不满足第一范式第二范式在第一范式的基础之上更进一层第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。联合主键:就是用2个或2个以上的字段组成主键。第二范式在第一范式的基础之上更进一层第二范式这样就产生一个问题:这个表中是以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二范
4、式的设计原则。而如果把这个订单信息表进行拆分,把商品信息分离到另一个表中,就非常完美了。如下面这两个所示。第二范式这样就产生一个问题:这个表中是以订单编号和商品编号作这样设计,在很大程度上减小了数据库的冗余。如果要获取订单的商品信息,使用商品编号到商品信息表中查询即可。这样设计,在很大程度上减小了数据库的冗余。第三范式第三范式在第二范式的基础上更进一层。第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。 关系名: students学生属性: student_id 学生学号(主码) name 学生姓名 sex 学生性别 dob 学生出生日期 SD 学生所在系的名称 SL 学生
5、所住宿舍楼关系students 不满足第三范式,因为属性SL还是依赖于主码student_id, 但也可由非主码属性SD导出,即SL是函数传递依赖于SD.第三范式第三范式在第二范式的基础上更进一层。关系名: stu第三范式比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。如下面这两个表所示的设计就是一个满足第三范式的数据库表.外键:如果关系模式R中的某属性集不是R的主键,而是另一个关系R1的主键则该 属性集是关系模式R的外键,通常在数据库设计中缩写为FK第三范式比如在设计一个订单数据表的时候,
6、可以将客户编号作为一这样在查询订单信息的时候,就可以使用客户编号来引用客户信息表中的记录,也不必在订单信息表中多次输入客户信息的内容,减小了数据冗余。 这样在查询订单信息的时候,就可以使用客户编号来引用客户信息表数据库的物理设计设计步骤:存储记录结构设计。确定数据存储方式。设计访问方法。完整性和安全性考虑。行成物理设计文档。数据库的物理设计设计步骤:数据库的物理设计设计性能可分为以下几类:查询和响应时间。更新事物的开销。报告生成的开销。主存储空间开销。辅助存储空间。数据库的物理设计设计性能可分为以下几类:数据库实施数据库的实现根据逻辑设计和物理设计的结果,在计算机上建立起实际数据库结构、装入数
7、据,并进行测试和运行的过程称为数据库的实现。运行与维护阶段的主要工作维护数据库的安全性和完整性。检测并改善数据库性能。增加新的功能。修改错误。数据库实施数据库的实现对用户访问进行控制 对用户访问进行控制理解Oracle RDBMS和Oracle SQL内容回顾: Oracle的SQL实现在很大程度上符合ANSI标准,但并非百分之百地兼容。Oralce的竞争对手也并未做到与该标准完全兼容。 Oracle SQL*Plus命令行接口是一种非常好的工具,可以在任何操作系统平台下运行,允许输入和执行SQL命令。 Oracle SQL Developer工具是一种非常好的GUI,可以在Windows操作
8、系统中运行,允许输入和执行SQL命令。 理解Oracle RDBMS和Oracle SQL内容回顾:区分系统权限和对象权限授予表上的权限在数据字典中查看权限授予角色区分权限和角色完成课堂练习区分系统权限和对象权限三种一般权限类型权限的类型描述系统权限在数据库中执行一项特定任务的能力对象权限在一个特定数据库对象上执行一项特定任务的能力角色由一项或多项系统权限和(或)对象权限,以及(或者)其他角色组成的集合三种一般权限类型权限的类型描述系统权限在数据库中执行一项特定系统权限什么是系统权限? 使用任何一条SQL语句和(或)在数据库中执行一项任务的权利,就是一项系统权限。什么时候用到系统权限? 在Or
9、acle中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在Oracle中非常重要。 为了登录数据库,需要为用户账户授予CREATE SESSION系统权限。 为了创建一个表,需要为用户账户授予CREATE TABLE系统权限,而此权限同时包含了创建一个索引的权限。系统权限什么是系统权限?对象权限什么是对象权限? 使用一项系统权限,在数据库中一个特定的已有对象上执行某项任务的权利,就是一项对象权限。与系统权限的不同点: 一个用户账户为了创建数据库对象,必须拥有系统权限。一但成功创建了数据库对象,就可以将一
10、个特定数据库对象的对象权限授予其他用户。 可以将系统权限和对象权限授予数据库中的用户,也可以从数据库中的用户收回这两种权限。对象权限什么是对象权限? 可以将系统权限和对象权限授一些支持性语句一、语法结构:创建用户CREATE USER 用户名 IDENTIFIED BY 口令 ACCOUNT LOCK|UNLOCK语法解析: LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态。锁定的用户无法正常的登录进行数据库操作。代码演示:创建用户SQL CREATE USER JOAN2 IDENTIFIED BY OFARC3 ACCOUNT UNLOCK;一些支持性语句一、语法结构:创建用户一些
11、支持性语句二、语法结构:修改用户ALTER USER 用户名 IDENTIFIED BY 新口令 代码演示:修改用户SQL ALTER USER JOANIDENTIFIED BY HAWAII;请注意 Oracle在SQL*Plus中的命令以分号(;)结尾,代表命令完毕并执行,系统同时会把该命令保存在缓存中,缓存中只保存最近执行过的命令,如果重新执行缓存中的命令,直接使用左斜杠符号(/)。如果命令不以分号结尾,该命令只是写入缓存保存起来,但并不执行。一些支持性语句二、语法结构:修改用户请注意 Oracle一些支持性语句三、语法结构:删除用户DROP USER 用户名请注意: 如果这个用户账户
12、拥有任何数据库对象,则上述语句无法执行成功。 需要使用CASCADE选项指示SQL删除用户账户并同时删除它拥有的所有对象。DROP USER 用户名 CASCADE代码演示:删除用户SQL DROP USER JOAN CASCADE;一些支持性语句三、语法结构:删除用户一些支持性语句四、语法结构:切换用户CONNECT 用户名/口令请注意: CONNECT语句并不是一条SQL语句,而是SQL*Plus提供的一项增强功能,用以从一个用户账户切换到另一个用户账户。 前提:要切换的用户账户未被锁定且被赋予了登录的最小权限,例如CREATE SESSION。代码演示:切换用户假设已经登录到EFCOD
13、D账户,然后创建了账户JOAN,其登录密码为HAWAII,可以这样从EFCODD账户登录到JOAN账户:SQL CONNECT JOAN/HAWAII;一些支持性语句四、语法结构:切换用户数据库角色什么是数据库角色? 数据库角色(role),是一个数据库对象。一个角色对象本身不代表权限,角色只是由若干个系统权限组成的集合。下面介绍几个常用角色: CONNECT角色,主要应用在临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECT role。CONNECT是使用Oracle的简单权限,拥有CONNECT角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会话
14、)。 RESOURCE角色,更可靠和正式的数据库用户可以授予RESOURCE role。RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)等。DBA角色,DBA role拥有所有的系统权限-包括无限制的空间限额和给其他用户授予各种权限的能力。用户SYSTEM拥有DBA角色。数据库角色什么是数据库角色?GRANT语句Ship_ IDShip _NameCapacityLength1Codd Crystal20528552Codd Elegance2053856 代码演示:授权SQL GRANT CONNECT T
15、O JOAN; SQL GRANT RESOURCE TO JOAN;授权成功。 授权成功。 一般情况下,一个普通的用户(如SCOTT),拥有CONNECT和RESOURCE两个角色即可进行常规的数据库开发工作。语法结构:授权GRANT角色|权限 TO 用户(角色)GRANT privilege TO user option;SQL CONNECT SYSTEM/MANAGER;SQL CREATE USER HAROLD IDENTIFIFD BY LLODY;SQL GRANT CREATE SESSION TO HAROLD;SQL GRANT UNLIMITED TABLESPACE
16、TO HAROLD;SQL GRANT CREATE TABLE TO HAROLD;SQL CONNECT HAROLD/LLODY;SQL CREATE TABLE CLOKTOWER(CLOCK_ID NUMBER(11);SQL GRANT SEQUENCE SEQ_CLOCK_ID; 思考: 请简述以下语句各自完成了什么任务?GRANT语句Ship_ IDShip _NameCapacREVOKE语句语法结构:收回权限REVOKE 角色|权限 FROM 用户(角色)请注意: 授权时,使用的是TO,收回权限时,使用的是FROM。 如果收回某个用户的一项系统权限,那么收回操作将即时生效。
17、然而,在权限收回之前该用户执行的所有动作仍然有效。例如:某用户账户曾被授予CREATE TABLE系统权限,并创建了一些表。但是随着此用户的CREATE TABLE系统权限被回收,那么该用户再也无法创建其他表,但是之前创建的表并不会消失,依然存在。REVOKE语句语法结构:收回权限ANY 关键字 某些系统权限的名称中带有关键字ANY。例如:系统权限CREATE ANY TABLE这项权限允许在任何用户账户中、在数据库中的任何位置创建一个表。 也就是说,如果一个系统权限的名称包含了ANY关键字,就表明被授予该权限的用户能够以任何用户账户身份执行相应的任务。思考:分析下面的语句,判断表MOVIES
18、和表TVSHOWS的拥有者是哪个用户账户。从语句中你能发现ANY关键字哪些用法?SQL CONNECT SYSTEM/MANAGER;SQL CREATE USER LAUREL IDENTIFIFD BY POKE;SQL GRANT CREATE SESSION TO LAUREL;SQL GRANT UNLIMITED TABLESPACE TO LAUREL;SQL GRANT CREATE TABLE TO LAUREL;SQL CREATE USER HARDY IDENTIFIFD BY CLOBBER;SQL GRANT CREATE SESSION TO HARDY;SQL
19、GRANT UNLIMITED TABLESPACE TO HARDY;SQL GRANT CREATE ANY TABLE TO HARDY;SQL CONNECT LAUREL/POKE;SQL CREATE TABLE MOVIES(MOVIE_ID NUMBER(7);SQL CONNECT HARDY/CLOBBER;SQL CREATE TABLE LAUREL.TVSHOWS(TVSHOW_ID NUMBER(7);ANY 关键字 某些系统权限的名称中带有关键字ANY。SANY 关键字如何证实表的拥有者?我们可以使用数据字典进行证实。 代码演示:SQL SELECT OWNER,
20、TABLE_NAMEFROM DBA_TABLESWHERE OWNER IN (HARDY,LAUREL);执行结果:OWNER TABLE_NAMELAUREL MOVIESLAUREL TVSHOWSANY 关键字如何证实表的拥有者?我们可以使用数据字典ALL PRIVILEGES 除了可以授予特定的系统权限,一个拥有足够权限的用户账户,例如SYSTEM用户账户或其他DBA账户,还可以执行以下语句: GRANT ALL PRIVILEGES TO user; 上述语句的执行结果是为用户授予了全部系统权限。同时,在这条语句中还可以使用WITH ADMIN OPTION子句。注意: 上述语句
21、的执行结果不易取消,请慎用。下面这条语句并不是精确对应于上述授权语句的权限回收语句: REVOKE ALL PRIVILEGES FROM user; 假定所有系统权限都已经被授予用户,那么上述语句将取消授权用户的全部系统权限。如果没有将所有系统权限授予用户,那么上述语句将返回一条错误信息。ALL PRIVILEGES 除了可以授予特定的系统权限PUBLIC 关键字 PUBLIC账户是Oracle数据库中的一个内置用户账户,它代表了全体用户,其拥有的任何对象都被视为由数据库中全体用户现在和将来拥有的对象。 GRANT CREATE ANY TABLE TO PUBLIC; 这条语句为数据库中的每一位用户都授予了CREATE ANY TABLE权限,可以让每一位用户都能在任何用户账户中创建任何表。 如果想从PUBLIC收回某项系统权限,可以保证在不收回任何其他系统权限
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024设备技术合同范文
- 2024中国农业发展银行抵押担保借款合同
- 2024施工图设计委托合同参考范文
- 2024工程机械租赁的合同书
- 沈阳理工大学《MATAB技术应用》2022-2023学年第一学期期末试卷
- 2024建筑钢材供应合同样本
- 2024学校与教师之间的劳动合同
- 深圳大学《中国社会史》2022-2023学年第一学期期末试卷
- 深圳大学《药学文献检索与利用》2021-2022学年第一学期期末试卷
- 集体土地房屋征收协议书(2篇)
- 五年级英语上册Unit1Getupontime!教案陕旅版
- 风机安装工程质量通病及预防措施
- 三角形钢管悬挑斜撑脚手架计算书
- 文件和文件夹的基本操作教案
- 剪纸教学课件53489.ppt
- 旅游业与公共关系PPT课件
- 劳动法讲解PPT-定稿..完整版
- 彩色的翅膀_《彩色的翅膀》课堂实录
- 假如你爱我的正谱
- 铜芯聚氯乙烯绝缘聚氯乙烯护套控制电缆检测报告可修改
- 中医住院医师规范化培训基地工作指南
评论
0/150
提交评论