




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十章 关系数据库系统 一个计算机系统,包括硬件、软件、数据和服务。 硬件和软件是计算机系统实施其功能的物质保证, 而真正有用的是数据和信息数据和信息。 服务比数据更重要。服务把数据变成有用的东西、 使数据发挥其应有的活力。信息系统就是对数据 进行管理并提供数据信息服务的软件系统。本章 我们讨论信息系统的核心 数据库系统。 二、文件为基础的数据管理 系统的不足: 1数据不独立数据不独立 2数据重复数据重复 3 3难以提供符合用难以提供符合用 户不同要求的信息户不同要求的信息 4难于保障安全难于保障安全 10.1 数据库初步 一、 文件系统 在计算机系统中,操 作系统以文件的形式 保存永久性数据
2、,数 据以文件形式保存, 不仅使读文件的程序 可以多次使用,其他 程序只要知道数据格 式和组织方式都可以 使用它即数据资源 共享。 程序与数据文 件相关,但在 不同的文件中, 同样的数据可能会重复保 存在不同的文件中,造成 数据的不完整性 用户在实际应用中所需 要的信息很可能是几个 文件中的部分信息的组 合、合并的结果 具有相同权限的用户都 可以修改文件,文件内 的数据却难于采取保密 措施。 处理教师信息 的应用程序 处理课程信息 的应用程序 教师信 息文件 课程信 息文件 用户 学生修课文件 包含两个文 件的信息系 统,难于实 现数据的统 一管理和共 享 处理学生信息 的应用程序 关于课程的
3、数 据在两个数据 库中重复存储 两个应用程序对老师 信息文件具有相同的 权限,数据不安全 10.1 数据库初步 10.1.2 数据库系统 把一个单位,或某个行业, 或某个团体的所有数据独立独立 出来出来集中管理,按数据本身 的内在联系组织、存放和操 作数据。 数据库管理系统 (data base management system(dbms) 负责数据的查找以及增、删、改操作, 维护数据的一致性、完整性,提供正 确使用的各种机制,如备份、保密、 事务、故障恢复;建立详细记述数据 使用情况的各种日志,以便跟踪数据 库使用的历史。 数据库 数 据 库 引 擎 数据库语言 数据库管理控制程序 数据库
4、服务程序 查询工具 报表工具 . . 应用程序 应用程序 用户 数据库管理系统(dbms) 应用数据库 dbms在数据库系统的地位 数据库管理系统(dbms) 主要组成主要组成 主要功能主要功能 数据库语言 数据库监控管理程序 数据库服务程序 数据库定义功能 数据库运行功能 数据库访问功 定义数据库各级模式与记录的 索引(存取路径)的结构、定 义数据完整性约束条件和安全 性控制条件,并将所定义的内 容保存到数据字典中 管理数据库的内部组织, 执行用户存取权限控制、 并发控制和数据完整性 检查 按用户要求,执行对 数据库数据的查询与 增、删、改操作;数 据的授权访问等 数据库应用程序与数据 库管
5、理系统之间的关系 数据库 数据库 应用程序 数据库管 理系统 用户 . 用户 提供数据库语言, 完成数据的定义 和访问 高级语言中嵌 入数据库的操作 数据库的特点 1数据是集成的 2数据重复少 3应用程序与数据独立 4容易提供符合用户不 同要求的信息。 5易于提供安全保障 所有的数据按其内 在联系集中存储, 实现充分共享。 按数据自身的联系组织 数据,对数据的修改只 需一次。避免了数据的 不完整性, 应用程序组织数据结构时 不受数据原来存储格式的 影响,dbms决定存取数 据使用的算法 数据库按数据的关系 检索信息,不依赖于 存放格式。容易提取 满足不同要求的信息。 对数据库访问的用户 必须具
6、有访问权限, 由dbms实现用户合 法性和权限的维护。 10.1.3 数据库数据的组织 1. 数据的类型与值 数据:是对客观事物的表 征与度量, 即说明该事物 的特征。 数据必须有出现的这个数据有环 境中才有意义, 如指明描述对象并列一个表: 用型定义的抽象数据形式: 型:指明事物的属性,规定取值类 别的范围 型值:给事物“定性”, 值集:给事物“定量”。 模型:对事物更加具体化的抽象, 说明事物内各元素间的结构关系, 张平张平 38061 38061 男男 20 20 北京北京 1997 1997 计算机系计算机系 0108231760401082317604 姓名姓名 班号班号 性别性别
7、年龄年龄 出生地出生地 入学日期入学日期 专业科系专业科系 电话电话 该型的值该型的值 模型的具体化模型的具体化 10.1.3 数据库数据的组织 2. 数据模式与模型 数据模式:数据模式: 数据组织起来, 利用数据本身的 关系建立联系形成某种“样子” 的结构, 称为模式(schema), 例如:百货公司仓库,不同的存 放原则登录的数据具有不同模式: (1)按时间先后顺序存放顺序模式 (2)按物品用途存放分类模式 (3)按产地分类存放地域模式 (4)按体积与重量原则重量模式 (5)按流动快慢原则销售模式 数据模型:数据模型: 物理模型:物理模型:真实存放货物采用的模型 逻辑模型逻辑模型:管理货物
8、采用的模型 10.1.3 数据库数据的组织 3.数据库中的 数据模式与模型 物理模式:实际存放的模型 逻辑模式: 数据库管理的基础, 着眼于编 制管理程序方便和管理可靠 安全, 采用单一模型。 数据库模型分类: 层次模型层次数据库 网状模型网状数据库 关系模型关系数据库 对象模型面向对象数据库 数据库系统数据库系统为用户提供概念 模式或者逻辑模式, 常见的概念模型有常见的概念模型有:e-r(实 体关系)模型、对象模型、语 义数据模型(sdm)等 概念模式:着重与数 据之间的逻辑联系 存储模型:更强调存 储效率 oracle8.x 数据库的三级模式 应用程序应用程序应用程序 子模式子模式 模式
9、存储模式 概念模式 逻辑模式 物理模式 物理存储 dbms 文件系统 4数据模型 模型:指明事物本质的方法, 是对事物、现象、过程等客观系 统的简化描述,是理解系统的思 维工具。 模型分类: 数据建模:据用户的数据视图建 立系统模型的过程 常用的数据建模工具: 实体联系(e-r)模型 语义对象模型 数据模型三要素: 数据结构 数据操作 完整性约束 概念模型面面用户 数据模型面向计算机系统 1976年提出 1988年提出 对象数据类型 的集合,记录、 数据项和类型 各种对象的实例 数据允许执行的 操作的集合 完整性规 则的集合 常用的数据结构 (层次、网状、关系、对象) 层次模型:一棵倒置的树
10、北京航空航天大学 飞机系制造学院电子工程学院飞行学院 机械制造自动机械计算机电子工程 一班二班一班二班一班二班一班二班 校 院 系 班 三班 常用的数据结构 (层次、网状、关系、对象) 网状模型: 特点:是一个数据结点有不 止一个父结点 学校领导教授协会理事 张先生 研究生 常用的数据结构 (层次、网状、关系、对象) 关系模型: 关系数据形式上是一个二维表(table),表描述了一类应用对象 的实例状态,表中的数据要满足完整性约束要求 班级姓名性别出生年月学号 380601 张三男 1980/7830721 380601李四男1979/12830722 380601 赵五男 1980/3830
11、723 380601王英女1980/9830724 380601 刘六男 1980/2830625 380601 陈苹女 1979/10830626 关系型数据库实例学生花名册 常用的数据结构 (层次、网状、关系、对象) 对象模型: 以对象模型组织的数据库叫面向对象数据库 对象: 封装了数据和操作,子对象继承父对象的数据和操作,类对象 定义封装、和继承的形式,每个实例对象只存储各属性的数据, 当向该实例对象发消息时,根据实例对象查出其类对象,从中 找出方法并检查无误后以实例对象的数据处理该消息。 对象式数据库的特性: 检索效率高、自然合理 几个基本概念 数据库(数据库(dbdb):数据库是永久
12、存放的数据集合,它由dbms软 件管理。用户通过dbms提供的界面语言或界面工具使用它 数据库管理系统(数据库管理系统(dbmsdbms) 对数据库数据进行统一管理的一种系统软件 功能: 物理数据库物理数据库:按物理模型存放在存储介质上的一组文件数据集 合,比如磁盘、磁带等。 逻辑数据库逻辑数据库:以某种逻辑结构建立的数据集合,对数据的查、 存、改、删的操作均针对此库中的元素进行。 数据库定义功能 数据库操纵功能 数据控制功能 数据通信功能 提供数据库定义语言(ddl) 定义数据库的结构、定义完 整性约束、定义用户权限等 提供数据操纵语 言(dml)实现 对数据库的操作 包括安全性、完整性控制
13、以及多用 户、多任务的并发控制等 主要指与操作系统间的接口 及与用户间的接口 10.1.4 数据库应用模式 数据库系统的应用模式分类: 单用户数据库应用系统(dbms): 运行于pc机称桌面dbms 主要产品 不完备方面: 多用户数据库应用系统 集中式系统集中式系统 客户客户/服务器式系统服务器式系统 microsoft access、 paradox、fox系 列和dbase系列 数据的一致性维护、 完整性检查及安全性 管理方面有许多欠缺 集中式数据库应用集中式数据库应用 模型模型 主机/终端结构是大型主机 系统使用的结构,这种结 构是将操作系统、应用程 序、dbms、数据库等数 据和资源均
14、放在主机上, 以一台主机为核心,连接 多个终端,终端只是作为 主机的一种i/o设备,所有 的应用处理均由主机承担 多用户数据库应用系统分类: 集中式数据库应用模式 数据库 操作 系统 中的 通信 控制 子系 统 数据 库管 理系 统 应用 程序 . 应用 程序 操作 系统 中的 数据 库管 理子 系统 终端用户 终端用户 . . . . . . 客户服务器:客户服务器: 通过对服务功能的分布实现分工服务,其中: 客户机客户机负责管理用户界面,接收用户数据, 处理应用逻辑,生成数据库服务请求。然后 将这些请求发送给服务器,接收服务器返回 的结果,最后再将这些结果按一定的格式返 回给用户; 服务器
15、服务器接收客户机的请求,处理这些请求, 返回处理结果(包括执行状态:成功、失败 以及数据库访问的结果数据)给客户机,同 时,服务器还要进行数据库完整性检查,维 护数据库附加的数据,支持并发控制等 多用户数据库应用系统分类: 数据库 操作 系统 中的 网络 通信 子系 统 数据 库管 理系 统 操作 系统 中的 数据 库管 理子 系统 数据库服务器 应用 . 应用 客户机 应用 . 应用 客户机 . 客户/服务器式数据库应用模式 主流的产品主流的产品:microsoft公司的sql server、 sybase公司的sybase、oracle公司的 oracle、informix公司的infor
16、mix和ibm 公司的db2 开放数据库互连 ( odbcopen database connectivity) odbc:microsoft公司开发的一套开放数据库系统应用程序接口规范,目前已成为一种 工业标准,提供了统一的数据库应用编程接口(api),为应用程序提供了一套高层调 用接口规范和基于动态连接库的运行支持环境。使用odbc开发数据库应用程序时,应 用程序调用的是标准的odbc函数和sql语句,数据库底层操作由各个数据库的驱动程 序完成。使应用程序有很好的适应性和可移植性,并且具备了同时访问多种数据库管 理系统的能力,彻底克服了传统数据库应用程序的缺陷。odbc屏蔽了dbms之间的
17、差 异 odbc应用程序应用程序不能直接存取数据库,它将所要执行的操作提交给数据库驱动程序, 通过驱动程序实现对数据源的各种操作,数据库操作结果也通过驱动程序返回给应用 程序 数据源数据源指任一种可以通过odbc连接的数据库管理系统,包括要访问的数据库和数据库 的运行平台。数据源名掩盖了数据库服务器或数据库文件间的差别,通过定义多个指 向不同服务器名的数据源,达到在应用程序中实现同时访问多个dbms的目的。 odbc提供提供了在不同数据库环境中为c/s结构的客户访问异构数据库(如:sql server、 oracle、sybase等)的接口,即在由异构数据库服务器构成的客户/服务器结构中,要实
18、 现对不同数据库进行数据访问,就需要一个能连接不同的客户平台到不同的服务器的 桥梁odbc。使用odbc作为数据库源的数据库服务器上的数据库管理系统升级或转 换到不同的数据库管理系统时(比如,从sql server转换到sybase),客户端应用程序 不需作任何改变,利用odbc开发的数据库应用程序具有很好的移植性。 odbc的体系结构示意图的体系结构示意图 数据库应用程序 odbc驱动程序管理器 . sqlserver 数据库 系统 informix 数据库 系统 sqlserver 驱动程序 informix 驱动程序 . sqlserver 数据库 informix 数据库 数据源 建立
19、与数据源的连接; 向数据源发送sql请求; 接收并处理请求的结果; 断开与数据源的连接 3 多层数据库应用模式 三层结构的数据库应用模式(bws) 浏览器/www服务器/数据库服务器结构示意图 实现三层结构的软件:浏览器浏览器有microsoft的internet explorer(ie)、 netscape公司的navigator等。数据库数据库有microsoft sql server 、orcale、sybase、db2和 informix都可作为服务器端的dbms,一些桌面数据库管理系统如access等也可作为这 种结构的dbms。web服务器有服务器有microsoft的iis(in
20、ternet information server)、pws (personal web server),netscape公司的fasttrack,enterpriseserver等。 www服 务器 数据库 服务器 数据库 浏览器 提出请求 html形式 数据请求 返回结果 3 多层数据库应用模式 常见的三层体系结构应用开发技术主要有: html,cgi(通用网关接口)、isapi、nsapi、javascript、 vbscript、asp(活动服务器页面)、java、dcom等几种 随着应用的深入,有些公司又提出了多层应用模型,这就是所 谓的n层(ntier)体系结构,如微软公司的dna
21、体系结构 www服务 器 浏览器 业务 逻辑 数据库 服务器 数据库 n层体系结构示意图 10.2 关系数据库 10.2.1 关系模型 关系型数据库的特点; 模型简单、数据独立性高、有较为坚实的 理论基础 关系:有应用语义的二维表,表中的 每一行描述事物或事物的一部分的状态的 数据,表中的每一列描述事物的某个特征 属性:二维表中的一列就是关系模式 中的一个属性。注:注: 表中的每一个属性必须是基本类型。 表中的每一列的所有值必须是同类型、 同语义的 属性的值只能是域中的值 表中的每一列都必须有唯一的名字, 列在表中的顺序是不重要的 1.域:属性的取值范围。 2.元组:二维表中的一行称为一 个元
22、组。 3.候选码:关系中按应用语义能 唯一标识元组的最小的属性集合。 4.主码:指定为关系中元组标识 的候选码,称主码属性组为主属性。 主码有时也被称为主关键字或主键。 一个关系的例子 课程号课程名授课学时授课学期 j001 数据库 726 j003c 程序设计542 z004 操作系统 725 z006编译原理726 x001 数值分析 543 x002 面向对象 364 四个属性四个属性 六个元六个元 组组 候选码候选码 主码主码 或 主码是由现实世界的实际情况决定的,我们不能简单地依靠样本数据或 凭自己的假设来作决定。数据库开发者必须通过了解用户的实际情况来 决定哪些属性可做主关键字 学
23、号课程学分学号课程学分 100 人工智能 3100 人工智能 3 125 文化学 2100 市场营销 2 150 市场营销 2125 文化学 2 175人工智能2150市场营销2 190 文化学 2150 法律 2 图10.18 “选课”关系175人工智能3 175 文化学 4 190 文化学 4 选课关系主关键字为两个属性的关系 属性 主码 属性 主码主码 10.2.2 关系的完整性 关系的完整性是指关系中数据 值与其描述的应用对象实际状 态保证一致的约束条件: 主要包括域完整性、实体完整 性、参照完整性和商务约束几 个方面 保证关系的一致性和完整性是 很有必要的也是极为重要的。 如,sql
24、 server就提供了主关 键字约束、外关键字约束、唯 一性约束、检验约束和规则等。 域完整性: 域完整性规定了属性的值必须是域中的值, 一个属性值能否为“空”由实际的应用语义 决定 实体完整性: 指关系中的主关键字不能为空且主关键字的 值不能相同,保证主关键字能唯一地标识关 系中的每个元组 参照完整性: 指不允许引用数据库中不存在的外键数据, 外键(或叫外部关键字)是指一个表中 的某个属性是另一个表的主关键字。 10.2.2 关系的完整性实例 修课表中不允许出现“学生”表中没有的学号,同时也不允许出现“课程” 表中没有的课程号,修课表中“学号”的值是在学生表的“学号”的值的子 集。修课表中的
25、“课程号” 的值也必须是课程表中“课程号”的子集。可 以通过定义外键来实现,定义修课表中的学号是学生表的外键,修课表中的 课程号是课程表的外键。注意是先有主关键字值,后有外键值 学号姓名年龄 课程号课程名 学 号 课 程 号 成 绩 学生情况表课程表学生修课表 主关键字 10.3 关系的规范化 10.3.1 规范化 更新异常更新异常:在删除关于一个 实体的事实的同时,还无意识 地删除了关于另外一个实体的 事实 插入异常:必须定要等到有 一个 事实之后才能有关于与事 实相关的另一事实的记录 解决方案:解决方案:把一个关系分 解成多个关系,每个关系处理 一个不同的主题,来消除更新 异常和插入异常。
26、分解关系时, 同时注意多个关系之间的相互 参照性 学号课程课程学分 100 人工智能人工智能 3 125文化学文化学2 150 市场营销市场营销 2 175 人工智能人工智能 2 190 文化学文化学 2 (a)学生选课表(b)课程学分表 学号课程学分 100 人工智能 3 125 文化学 2 150 市场营销 2 175人工智能2 190 文化学 2 学生选课表 学生-选课、课程学分关系表 把原来 的表分 成两个 新表 10.3 关系的规范化 10.3.2 函数依赖 函数依赖是关系属性之间的一种联系。 它说明,如果给定了一个属性的值, 就可以获得另一个属性的值 例:如下表所示,知道了“课 程
27、名”的值,即可知道“授课学 时”的值。称“授课学时”函数 依赖于“课程名”,或“课程名” 可以决定“授课学时”。记作课 程名授课学时,反之不成立。 课程号课程名授课学时授课学期 j001 数据库 726 j003 c 程序设计 542 z004操作系统725 z006 编译原理 726 x001 数值分析 543 x002 面向对象 364 课程表 10.3 关系的规范化 部分依赖:“学分”函数依 赖于主关键字学号、课程。但 决定“学分”的只是“课程”, 与“学号”无关。 传递依赖的关系:学生 住宿的楼号依赖于学号,学生应交的 住宿费是由楼号决定的,即“收费” 依赖于“楼号”,“楼号”依赖于
28、“学号”、而“收费”又依赖于“楼 号” 学号课程学分 100 人工智能 3 125 文化学 2 150 市场营销 2 175人工智能2 190 文化学 2 学生选课表(有部分依赖) 学号楼号收费 1002500 1204600 1302500 1508800 1802500 学生住宿收费表(有传递依赖的关系学生住宿收费表(有传递依赖的关系) 主关键字主关键字 10.3 关系的规范化 10.3.3 范式 定义:在规范化过程中, 必须遵循一定的准则以指导关 系的规范化,一般把这些准则 称之为范式 范式分级:范式对关系 中各属性间的联系提出了不同 级别的要求,根据要求级别的 高低,一般将关系分为第一
29、范 式、第二范式、第三范式、 boyec-code范式、第四范式、 第五范式、域关键字范式等几 种。其中,高级别的范式包含 在低级别的范式中 关系范式嵌套示意图 第一范式 第二范式 第三范式 boyec-code范式 第四范式 第五范式 域/关键字范式 10.3.3 范式 第一范式:任何符合关系定义的表,即:表的每一属性的域必须是基本类型的, 集合、数组和结构都不能作为属性的类型,每一列的名字必须是唯一的,符合第一范式的 关系有更新异常 第二范式: 定义:如果一个关系的所有非主关键字属性都完全依赖于整个主关键字(即不存在部分 依赖),那么该关系就属于第二范式 范围:凡是以单个属性作为主关键字的
30、关系自动就是第二范式。因为主关键字只有一个, 不会存在部分依赖的情况。因此,第二范式只是针对主关键字是组合属性的关系。 学号课程课程学分 100 人工智能人工智能 3 125 文化学文化学 2 150市场营销市场营销2 175 人工智能人工智能 2 190 文化学文化学 2 (a)学生选课表(b)课程学分表 消除部分依赖后得到的两个关系符合第二范式 例例 10.3.3 范式 第三范式: 定义:一个关系如果是第二范式的,并且没有传递依赖关系,则该关系就是第 三范式 学号楼号楼号收费 10022500 12044600 13022500 15088800 18022500 (a)有传递依赖的关系
31、(b) 消除传递依赖后的关系 消除传递依赖前后两个关系符合第三范式 10.3.3 范式 域/关键字范式 (dk/nf):域/ 关键字范式中关系没 有更新异常,反之, 没有更新异常的关系 必定在域/关键字范式 中,如果关系中每一 个约束都是关键字与 域的定义的逻辑结果, 则该关系在域/关键字 范式中 域/关键字范式的三要素: (1)约束:约束:一切制约属性的静态值并且可 以精确判断属性真假的规则。根据这个定 义,外关联规则、函数依赖等都是约束。 不过,依赖于时间的约束,如“销售员目 前的工资不能少于以前的工资”等规则不 属于域/关键字范式所定义的约束。 (2)关键字:关键字:和我们前面的定义一样
32、,它是 元组的唯一标志。 (3)域:域是所允许的值的描述。它包含两 部分:物理描述和逻辑描述。物理描述是 指属性可能取的值的集合。逻辑描述是指 属性的意义。 10.3.4 设计折中 规范化可以消除更新异常,但有时并不值得,有时分解前的非规范 化的表可能更好,因为处理起来比较容易 关系有时故意保留成非规范化的,或者规范化后又反规范化了,这 样做通常是为了改善性能。将关系分解到什么程度,要根据实际情 况来决定 例:客户编号邮政编码,邮政编码(省,城市), 该关系可以分解为如下两个关系: 客户(客户编号,客户名称,邮政编码),其中,“客户编号”主关键字。 编码(邮政编码,省,城市),其中,“邮政编码
33、”是主关键字。 两个关系都属于第三范式了,但这样做可能并不一定就是好的设计,如果用户经常 需要查询及生成的报表包括: 客户编号、客户名、省、城市和邮政编码,则对此表不 再进行分解就比较合适 10.4 关系数据库的设计关系数据库的设计 10.4.1 数据库设计 定义:数据库设计是指在给定 的应用环境下,根据用户的应用需求 构造优良的数据库模式,建立数据库 及其应用系统,使之能够有效地存储 数据,满足各种用户的应用需求。 特点:数据库设计侧重于对数 据的分析和设计,数据库设计应该在 整个设计过程中把结构(数据)设计 和行为(处理)设计密切结合起来 设计时特别注意的问题 1.按照数据库的生命周期,分
34、阶段进行开发 和管理。 2.在设计中遵守结构化程序设计的原则:自 顶向下、逐步求精、分而治之。 3.在每个阶段都应建立适当的文档。 4.加强数据库设计的管理,人员要合理组织 并有层次,设计进度应有计划并加以控制, 开发成本要有估计。 5.设计时要着眼于整个生命周期,考虑当前 和今后的发展,并使使用和维护方便。 6.重视数据库设计的标准化和规范化。 10.4 关系数据库的设计关系数据库的设计 需求分析与设计 概念结构设计 逻辑结构设计物理结构设计 需求说明与数据说明 概念结构 逻辑结构 数据库实施运行和维护 数据库实施 数据库应用开发的过程的六个阶段数据库应用开发的过程的六个阶段 从现实世界中
35、获取并抽象用 户的信息需求 用户信息需求的综合归纳, 形成独立于任何dbms的 信息结构的设计,得到的 是概念模型,是从用户的 角度进行的数据描 将概念模式转换 成用关系模型表 达的模式,并进 行规范化处理 形成数据库的内模 式,是在文件一级 上进行的 逻辑结构 编制程序实现所设计 数据库结构的过程, 即利用具体的dbms 的支撑语言完成前段 设计的数据库结构 运行和维护阶段体现 了数据库设计的宗旨, 即数据库整个设计过 程的各阶段不是线性 发展的,而是迭代式 逐步求精进行的 10.4.1 数据库设计 数据库设计过程框架 外部视图1外部视图3外部视图2 现实 世界 模式 用户 模式 内 模 式
36、 10.4.2 实体联系模型(er模型) er模型是美籍华人peter chen在1976年提出的,它是目前应用 最广泛的语义数据模型。 1.实体: 指可以从用户的业务模型中标识的事物。实体可以是具体的人 或物,比如学生、教师、课程都是实体。 2.联系: 事物之间的关联集合。它是实体之间客观存在的联系。 两个实体之间的联系形式: 一对一(1:1)、一对多(1:n)、多对多(n:m)联系 er模型是用er图来描述数据库的概念模型。在er图中, 用矩形表示实体,用圆角矩形表示属性,用菱形表示实体间的联 系。 10.4.2 实体联系模型(er模型) 实体的表示及一个例子 实体 属性1属性n属性2.
37、学生 学号家庭住址姓名. 示例 实体1实体2 属性1属性2属性n. 联系 学生实体2 成绩 修课 示例 联系的表示及一个例子 10.5 sql语言 sql是structured query language(结构化查询语言)的简称,它是最重要的关系 数据库操作语言,已成为数据库操作的标准语言,现在已有100多种遍布在从微机 到大型机上的sql,其中包括:db2、oracle、sybase、sql server、dbase iv、paradox、microsoft access等。 主要特点: 1.一体化:一体化:sql集数据定义语言(ddl)、数据操纵语言(dml)和数据控制语 言(dcl)为
38、一体。 2.两种使用方式:两种使用方式:一种联机交互使用方式,另一种是嵌入到某个高级程序设计语 言(如c,cobol等)的程序中。前一种方式适合于非专业人员使用,后一种适 合于专业人员使用。 3.高度非过程化:高度非过程化:只要求用户提出“干什么”,而无需指出“怎么干”;sql语 句操作的过程由系统自动完成。 sql的主要功能: 1.数据查询 2.数据的修改、增加和删除 3.创建或删除关系数据库对象,如:表和视图的创建和删除等 4.权限管理和事务管理 10.5.1 sql语言基础 sql也有自己的数据类型、表达式、关键字和语句结构。当然和其他语言相比, sql语言要简单的多 1.数据类型: 类
39、型定义说明 int,smallint定点整数 numeric,decimal定点小数 数值型 float,real 等浮点数 char(n)定长字符串,n255 字符串型varchar(n)不定长字符串, 长度不超过 n 个字符 date日期 time时间型 日期、时间型 timestamp日期时间型 bit(n)定长二进制位串二进制位串 bitvar(n)变长二进制位串 标准标准sql语言定义的数据类型语言定义的数据类型 10.5.1 sql语言基础 2.sql表达式: 数值表达式 值表达式值表达式 字符串表达式 日期表达式 逻辑表达式: 逻辑运算:not、and、or 比较谓词:(、=)
40、范围谓词( in 、like、is) 存在谓词(exist) 3.sql语言的函数(关系数据库 系统的内置函数) sql内置函数内置函数 统计函数:统计函数: count、sum、avg、max和min,以一 个表为范围进行统计 字串处理函数:字串处理函数: 子串提取函数(substring),大小写转换函 数(upper,lower),子串位置函数 (position)和串长度函数 时间日期处理函数:时间日期处理函数: current_date(返回当前日期), current_time(返回当前时间), current_timestamp(返回当前日期时间) 10.5.2 sql中的数据操
41、纵 sql中的数据操纵语句有:select、insert、update三类,主 要完成数据的检索、更新、和插入三种功能 1数据检索语句select: select语句的一般形式为: select distinct 列表,列表 from 基本表 (或视图) where 条件表达式 group by 列名 having 条件表达式 order by 列名 asc / desc ; 去掉查询结果中 的重复的行 分组依据 查询结果的 排序方式 分组提取 条件 升序 降序 例题分析: “学生信息表”s,其中sno:学号,sname:姓名,age:年龄,sex:性别。 “学生选课表”c,cno:课程编号,
42、cname:课程名。“学生成绩表”g,其 中:sno:学号,cno:课程编号,g:成绩。 学生表s课程表c学生修课表sc snosnameagesexcnocnamesnocnog 9411101张山19男j03数据库9411101j0387 9411102 李明 20 男 l01 离散数学 9311101j0178 9411103 王平 19 女 m02 数据结构 9311102j0290 f01 日语 9811102j0488 j04 操作系统 9411102j0382 9811103j0170 9411103j0275 三个示例表 例题分析: 例例1:查看学生表:查看学生表s中的全部数据
43、:中的全部数据: select * from s select sno,sname,age,sex from s 结果如下: 例例2 2:查询学生表:查询学生表s s中的全部学生的学号、姓名和年龄:中的全部学生的学号、姓名和年龄: select sno,sname,age from s 例例3 3:查询学生修课表中成绩大于:查询学生修课表中成绩大于8080分的学生:分的学生:select * from sc where g80 结果如下: 例例4 4:找出成绩大于:找出成绩大于8080分的学生的姓名分的学生的姓名。 select sname from s where sno in(select
44、 sno from sc where g80) 子查询“select sno from sc where g 80”返回一个集合,第二个查询使用“in”关 键字,判断表s中的sno是否在返回结果集中。此查询语句等价于: select sname from s,sc where s.sno=sc.sno and sc.g 80 选择全部列选择全部列 snosnameagesex 9411101张山19男 9411102 李明 20 男 9411103 王平 19 女 snocnog 9411101j0387 9811102j0488 9311102j0290 9411102j0382 sname
45、 张山 李明查询结果查询结果 2. 数据更新语句 sql的数据更新语句包括修改、插入和删除三类语句,即:update语句, insert语句和delete语句。 update语句的格式为:语句的格式为: update 表名 set 列名 表达式,列名表达式 where 条件 例例10:将所有学生的年龄加:将所有学生的年龄加1岁。岁。 update s set age age 1 例例1111:将:将94111019411101同学的同学的j03j03课程成绩加课程成绩加5 5分分。 update sc set gg5 where sno9411101and cnoj03 插入语句的格式如下:插
46、入语句的格式如下: insert into 表名(列名,列名) values (常量,常量) 例例1212:向课程表中增加一个新的课程记录:向课程表中增加一个新的课程记录: insert into c values(j05,c语言) 删除语句的一般格式为:删除语句的一般格式为: delete from 表名 where 条件 例例1414:由于本学期没有日语课,所以应该删掉它:由于本学期没有日语课,所以应该删掉它: delete from c where cname 日语 需要更新的 列及其值 需要更新的 条件 条件缺省 时,删除 全部数据 10.5.3 sql中的数据定义 sql的数据定义包
47、括三类对象的定义:基本表、视图和索引,从用户的观点 看,基本的数据定义语句有三类:定义、修改和删除。 sql语言的数据定义语句语言的数据定义语句 reate table (表定义) create index (创建索引) create view (创建视图) alter table (表修改) drop table (表删除) drop index (删除索引) drop view (删除视图) 10.5.3 sql中的数据定义 1表的定义、修改与删除表的定义、修改与删除 定义基本表的语句格式为定义基本表的语句格式为: create table 表名(列定义,列定义); 修改表的结构的语句格式
48、为:修改表的结构的语句格式为: alter table 表名 add 列名 类型; sqlsql中的表删除语句格式中的表删除语句格式: delete table 表名 例题分析: 1 create table s (sno char(8) primary not null, sname char(10) not null, age int, depart char(12)); 2 alter table s add sex char(2) 3 delete table s(删除表格 s) 列名 列数据类型 not null snosnameagedepart 建立表格建立表格 s snosna
49、m e se x ag e depar t 增加一列增加一列 10.5.3 sql中的数据定义 2. 索引的建立和删除索引的建立和删除 创建索引的语句为:创建索引的语句为: create unique index 索引名 on 表名(列名次序,列名次序) 如:学生信息”s的主键sno上建立一个索引: create unique index sno_ndex on s(sno asc); 删除索引的语句的格式为:删除索引的语句的格式为: drop index 索引名:删除刚才建立的索引:drop index sno_index 3. 视图的定义与删除视图的定义与删除 视图(view)是用户看到的
50、数据内容,它是由基本表重构的虚表。视图对应关系数据库 中的外模式。视图的特点:视图的特点: 视图是虚表,只有定义的数据,没有实际存储的数据,数据散列在有关联的基本表 中,对视图内容的操作最终都转换为对与视图相关的基本表的操作。视图向不同用 户提供各自需求的虚表结构,隔离用户与其不相干的数据,是一种安全控制手段。 视图所包含的属性还可来自于多个基本表,是多个基本表的部分属性的综合 用于定义视图的表可以是基本表也可以是已定义好的视图 升序(asc),降序 (desc) 每一索引值只对应 唯一的数据记录 10.5.3 sql中的数据定义 学号姓名性别系 学号姓名政治面目 姓名年龄性别籍贯民族政治面目
51、系专业班级学号 楼管科学生管理 视图 学工部学生管理 视图 基本表与视图的关系 10.5.3 sql中的数据定义 视图示意图:视图示意图: 通过表通过表1 1,2 2创建了视图创建了视图1 1,在表,在表3 3上创建了视图上创建了视图2 2,然后在视图,然后在视图1 1和视图和视图2 2上创建了视图上创建了视图3 3 表1表2 视图1 表3 视图2 视图3 10.5.3 sql中的数据定义 3. 视图的定义与删除视图的定义与删除 定义视图的语句格式为:定义视图的语句格式为: create view 视图名(列名,列名) as select语句with check option 例:假设在上边所
52、说的学生情况基本表的基础上定义楼管科的视图,其sql语句为: create view 楼管科学生管理(学号、姓名、性别、系) as select 学号,姓名,性别,系 from 学生; 删除视图的语句为:删除视图的语句为: drop view 视图名 比如,我们可以删除刚才定义的视图: drop view 楼管科学生管理 10.5.4 数据控制功能 在的数据库系统,大都提供了非常完 善的安全机制,一般采用基于角色的 多级授权安全机制(把用户分为不同 的类别。如:管理员、数据库备份管 理员、数据库用户管理员、普通用户 等。不同数据库系统的用户角色不完 全相同),所有对数据库的操作都需 要更高一级
53、的授权,任何级别的用户 在使用数据库系统时,除了必须拥有 的授权外,还必须提供正确的用户名 称和用户口令。 sql的数据控制功能是指控制用户对 数据的存取权力,语句有两条:授权 语句(grant):授权语句是使某 个用户具有某些权限; 收权语句(revoke):收回已授给 用户的权限。 用户对数据的存取操作包括:增 (insert)、删(delete)、改 (update)、查(select)。只 有被授以了某项操作的权限的用户才 能进行某项操作。 例例1:假设把对表ltemp的所有操作权限授权给用户luser grant all on ltemp to luser 例例2:把赋予用户luse
54、r的对表ltemp的更新权(包括:insert、update、 delete)收回,我们可以使用下面的sql语句: revoke insert、update、delete on ltemp from luser 10.5.5 事务处理 事务,就是一个完整的活动序列:它包含一组操作,这些操作或者全部成功地执行, 或者都不执行并恢复到执行前的状态。 事务处理的四个特点(即所谓的acid): 1.1.原子性(原子性(atomicityatomicity):):事务是一个活动的逻辑单元,该逻辑单元的工作要么全部被 提交,要么全部被消。 2.2.一致性(一致性(consistencyconsistency):):事务是一个完整的逻辑单元,能够把共享资源(比如一个 数据库的表)从一个有效状态变迁到另一个有效状态。 3.3.独立性(独立性(isolationisolation):):事务在对共享资源的修改被提交之前,在该事务之外是看不 到的。 4.4.持久性(持久性(durabilitydurability):):事务对共
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北省退役军人事务厅下属事业单位招聘考试笔试试题【答案】
- 2025年农商银行反洗钱知识竞赛培训考试试题【答案】
- 项目日常管理制度
- 消防自然灾害应急救援预案
- 领导干部学习党的.教育实践活动心得体会
- 2025年涂镀产品:镀铝锌合作协议书
- 消防员辞职保证书
- 翔隆花园人货梯专项方案
- 湘艺版四年级上册音乐《卓玛》教案 (一)
- 2025年汽车内外饰件合作协议书
- 星巴克运营管理手册
- 六年级上册计算题专项练习1000题及答案
- 【室内设计手绘效果图表现技法】课件
- (完整版)中医适宜技术课件
- 中国古代的科学研究与思想启蒙
- 安徽茶叶市场分析报告
- 基恩士静电测量仪说明书
- 成都市第十二中学川大附中新初一分班英语试卷含答案
- 铁总物资〔2015〕117号:铁路建设项目甲供物资目录
- 八年级物理光学测试题含答案试题
- 人教版高中物理必修一全套课件【精品】
评论
0/150
提交评论