- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
ID CourseName ClassRoom Teacher 0001 计算机科学 ... - MING | JNU
展开查看详情
1 .第 7 章数据库 本课件制作修改自陆汉权主编 《 计算机科学基础(第 2 版) 》 电子教案 (PPT 版本 ) : 教材 《 计算机科学基础(第 2 版) 》 ,陆汉权 主编,电子工业出版社, 2015 年 8 月, ISBN 978-7-121-26609-6 18
2 .内容 概述 数据库系统 关系型数据库 数据库新技术 构建数据库系统 2
3 .7.1 概述 —— 什么是数据库? 3 全球十大 数据库 美国图书馆 美国中央情报局 世界气候数据 中心 (WDCC) 美国国家能源研究科学计算中心 ( 简称 NERSC) 如果我们需要查询某件事,最好知道到哪儿去找? 数据库也许就是这个问题的答案 数据库: Database , DB
4 .什么是数据库 数据库是一个持久数据的结构化集合,是数据的组织和存储 数据库本身可以看作是一个电子文件柜:存放计算机所收集的数据的容器 数据库用户可以进行增加或删除数据库文件,插入、修改、查询、删除数据 数据库系统( Database System )是计算机应用软件中非常重要的一个领域 数据库技术是应用最广且经久不衰的计算机技术之一 几乎所有较大项目都采用基于服务器的数据库系统 4
5 .为什么要使用数据库? 文件管理是“平面”的,数据库技术是“立体”的,多维的 实现了数据的集中管理 保持数据的独立性 支持事务处理,能够保证数据的完整性 减少数据冗余,避免数据的不一致性 能够管理海量数据 可以存放大量的数据,能有效进行数据的组织和管理 可以高速、高效检索数据 数据库的信息可以重组 可以进行各种数据处理 5
6 .7.2 数据库系统 数据库系统是由数据库及使用数据库的用户或程序组成的系统 数据库系统的结构 数据存储 数据库管理系统 数据库应用软件 例:计算机或移动终端上的 “客户端”( Terminal )就是使用数据库的一个应用程序 数据库用户 应用程序设计员:编写数据库应用程序 最终用户:数据库的直接使用者 数据库管理员( DBA ) :负责对数据库进行规划、设计、协调、维护、及管理的工作人员 6
7 .数据库管理系统 DBMS, DB Manager System 数据库 是一个抽象的概念,不管 是 DBA 还是 用户,几乎不能直接和“数据库”打交道 建立、使用和管理数据库都是 在 DBMS 下进行的 用户 数据库的应用程序 DBMS 数据库中的 数据 7
8 .DBMS 是软件和数据的结合 数据库 —— 结构化了的电子文件柜 DBMS—— 管理这些文件柜的“职员”,是软件和数据的结合 如果不严格区分, DBMS 就是数据库 DBMS 是软件和数据的结合 是进行数据库创建、管理、维护的软件系统 8
9 .DBMS 的功能 数据定义 数据操纵:查询、添加、修改和删除数据库中的数据 数据控制:设置或者更改数据库用户或角色权限 存储过程: 数据库的数据处理 程序 目的 在于能够方便地从系统表中查询信息,或完成更新数据表相关的管理任务,包括系统管理任务 实现对数据库的优化,保证数据的完整性和安全性,能够进行数据恢复和进行并发任务 数据字典 : 也 叫“元数据”,它本身也是一个数据库,是数据的数据 9
10 .常见的数据库产品 Oracle DB2 Sybase SQL Server Access Visual FoxPro 10
11 .各种用户数据库 使用数据库管理系统能够构建各种用于满足用户需求的数据库,主要可分为: 企业数据库 ERP 个人数据库 Outlook Internet 上的数据库 11
12 .7.3 关系型数据库 数据库是最大的计算机应用类软件产品,已经有了规范性的体系结构和数据库模型 数据库 的体系结构 —— 建立数据库的一个 框架 如何组织 数据库中的数据 ,就是 DBMS 所采用的 数据库模型 目前关系型数据库是主流技术 12
13 .数据库的三级 体系结构 内层 决定数据在存储器中的实际位置,需要考虑数据的存取方法 与操作系统的存储器管理相关 数据库模型层(公共层) 定义数据的逻辑结构,把数据库内部的数据以用户能够接受的形式提供给外层 DBMS 的主要功能集中在这个层次 外层(接口层) 提供应用程序和用户的连接 13
14 .数据库模型 数据库模型定义了数据的逻辑关系,也给出了不同类型数据之间的关系 不同的数据模型对应不同类型的数据管理系统: 层次型数据库 使用树状结构来表示数据库中的记录及其联系 网状型数据库 使用有向图(网络)来表示数据库中的记录及其联系 关系型数据库 用二维表格的形式来表示数据库中的数据及其联系 面向对象型数据库 是面向对象技术与数据库技术相结合的产物 14
15 .关系型数据库 IBM San Jose Research Lab 的 E.F.Codd 于 1970 年提出 关系模型由表( Table )的集合而成 确切 地说是由“关系”的集合而成 关系的基本的定义 一 个“关系”是一个没有重复值的 集合 15
16 .关系的几个术语 名称:表名(唯一) 元组( Tuple ):关系中的行,也叫记录 属性( Property ):关系中的列,(属性名,属性值) 度:关系中属性的数目 基数:关系中行的总数 主码:某个属性组(集),可以唯一确定一个元组 16
17 .ID CourseName ClassRoom Teacher 0001 计算机科学基础 203 汤晓丹 0002 微积分 301 李士明 0003 大学英语 204 S John 0004 C 语言程序设计 106 王 维 0005 Java 程序设计 315 范中延 关系示例 CourseTB 关系名 列,属性 主码 行,元组 度: 4 基数: 5 17
18 .关系型数据库 关系型数据库的组成 数据库←表←记录←属性 关系是表及表之间存在的联系 关系型 数据库的外部形态就是表, 但 数据在数据库中 不 是以表的形式存储的 18
19 .关系运算 关系的 集合运算 ( 双目运算 ) 并( Union ) 交( Intersection ) 差( Difference ) 积( Cartesian Product ,笛卡尔积 ) 合并操作, 形成的新关系包含了两个关系中所有的元组 操作后形成的新关系包含了 同时出现在两个关系中 的元组 找出一个关系中存在的而另一个关系中不存在的元组 两个关系的笛卡尔有序对的集合 19
20 .集合 运算图示 r1 、 r2 为参与运算的原关系, r3 是运算得到的新关系 20
21 .关系运算 专用的关系运算 选择( Select ) 投影( Project ) 连接( Link ) 除( Divide ) 将两个关系组合成一个新关系 与投影相关 单目操作 , 根据给定的条件从关系 中 元 组,形成一个新 关系 单目操作 , 从关系中选取几个属性,查找 形成 一个新关系 21
22 .专用的 关系运算图示 r1 、 r2 为参与运算的原关系, r3 是运算得到的新关系 22
23 .SQL 语言 SQL ( Structured Query Language )结构化查询语言 最早是 IBM 为其关系数据库管理系统 System R 开发的一种查询语言,目前大多数关系数据库都支持 SQL SQL 为关系型数据库的标准语言 SQL/99 版本 用户或者为用户编制的访问数据库的应用程序都使用 SQL 对数据库操作 23
24 .SQL 语言 SQL 本质上就是计算机编程语言,惟一的差别就是它专门针对关系型数据库 一般的程序设计语言,如 C 、 Java 等语言,缺乏对数据库的操作,但通过嵌入 SQL 语句就可以扩展其对数据库操作的能力 数据库应用设计基本上采用这个途径,把这样的通用编程语言叫做宿主语言( Host Language) 24
25 .SQL 的四个部分 数据查询语言 DQL ( Data Query Language ) Select 数据操纵语言 DML ( Data Manipulation Language ) Insert Update Delete 数据定义语言 DDL ( Data Definition Language ) 定义和管理数据库中各种对象 Create (创建) Alter (修改) Drop (删除) 数据控制语言 DCL ( Data Control Language ) DBA 用于数据控制操作 Grant Deny Revoke 25
26 .SQL 的特点 非过程化语言 一次处理一个记录 允许用户在高层数据结构上工作,集合输入,集合输出 不要求指定数据存放方法 —— 集中精力于要得到的结果 SQL 语句使用查询优化器 —— 数据存取的快速手段 主要体现在查询功能,所以也叫形式表达 统一的语言 用于所有用户的 DB 活动 ——DBA 、程序员及其他用户 多种功能:查询、数据定义、修改数据、建立确保数据库安全的约束条件等 所有关系数据库的公共语言 用 SQL 编写的程序都是可以移植的 26
27 .SQL 查询例子 27 假设有一个表为 title ,其中一列为产品类型 type ,一列是产品价格 price ,现在要将这两列数据按照价格 price 降序排列,使用 SQL 语句编写的程序为: use title select top 3 to type , price from title order by price desc 运行结果为: type price ―――――――――――――――― 电视机 1230.00 收音机 130.00 手电筒 700
28 .非关系型数据库( NoSQL ) BigTable ( Google ) Cassandra MongoDB CouchDB 28
29 .BigTable ( Google ) BigTable 是一种压缩的、高性能的、高可扩展性的,基于 Google 文件系统( Google File System , GFS )的数据存储系统,用于存储大规模结构化数据,适用于云计算 MapReduce 常通过 BigTable 来存储或更改数据 BigTable 不是传统的关系型数据库,不支持 JOIN 这样的 SQL 语法, BigTable 更像今日的 NoSQL 的 Table-oriented ,优势在于扩展性和性能。 BigTable 的 Table 数据结构包括 row key 、 col key 和 timestamp ,其中 row key 用于存储倒转的 URL ,例如 www.google.com 必须改成 com.google.www http://zh.wikipedia.org/wiki/BigTable 29