使用数据库管理系统能够构建各种用于满足用户需求的数据库,主要可分为: .... 支持多处理器并行执行查询和事务处理的数据库任务 ... 和管理的海量数据; 大数据处理基础几乎涵盖了目前先进的计算机技术,如并行处理、分布式处理、网络存储系统等.

媿魅发布于2018/06/19 00:00

注脚

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

30.Cassandra Apache Cassandra( 社区内一般简称为 C*) 是一套开源分布式 NoSQL 数据库系统。它最初由 Facebook 开发,用于储存收件箱等简单格式数据,集 Google BigTable 的数据模型与 Amazon Dynamo 的完全分布式架构于一身。 Facebook 于 2008 将 Cassandra 开源,此后,由于 Cassandra 良好的可扩展性和性能,被 Digg 、 Twitter 、 Hulu 、 Netflix 等知名网站所采用,成为了一种流行的分布式结构化数据存储方案 在数据库排行榜“ DB-Engines Ranking” 中, Cassandra 排在第十位,是非关系型数据库中排名第二高的 ( 次于 MongoDB) http://zh.wikipedia.org/wiki/Cassandra 30

31.MongoDB MongoDB 是一种文件导向数据库管理系统,由 C++ 撰写而成,以此来解决应用程序开发社区中的大量现实问题。 2007 年 10 月, MongoDB 由 10gen 团队所发展。 2009 年 2 月首度推出 MongoDB 可以从开放源代码来建构与安装,更常见的是安装 binary 文件,目前有 Windows, Linux, OS X 和 Solaris 版本。许多 Linux 包管理系统现在已包含了 MongoDB 的包,包括 CentOS 和 Fedora, Debian 和 Ubuntu, Gentoo 以及 Arch Linux 。同样可从官方网站获取 http://zh.wikipedia.org/wiki/MongoDB 31

32.CouchDB Apache CouchDB 是一个开源数据库,专注于易用性和成为 " 完全拥抱 web 的数据库 " 它是一个使用 JSON 作为存储格式, JavaScript 作为查询语言, MapReduce 和 HTTP 作为 API 的 NoSQL 数据 其中一个显著的功能就是多主复制。 CouchDB 的第一个版本发布在 2005 年,在 2008 年成为了 Apache 的项目 不同于关系型 DB , CouchDB 没有将数据和关系存储在表格 替代的,每个数据库是一个独立的文档集合 每一个文档维护其自己独立的数据和自包涵的 schema 一个应用程序可能会访问多个数据库,比如其中一个位于用户的手机上,另一个位于在远程的服务器上 文档的元数据包含版本信息,让其能够合并可能因为数据库链接丢失导致的任何差异 http://zh.wikipedia.org/wiki/CouchDB 32

33.7.4 数据库新技术 面向对象数据库 对象 --- 关系数据库 通过在关系数据库中增加对象类型,同时将一些对象处理方法加入到 SQL 语言,以处理这些被增加的数据类型 分布式数据库 基于关系模型,位于网络的多个计算机上 两种基本类型:分割式、复制式 并行数据库 ( Parallel Database System ) 支持多处理器并行执行查询和事务处理的数据库任务 自然语言数据库 用户可以使用自然语言访问数据库 33

34.7.4 数据库新技术 决策支持( Decision Support ) 帮助管理者“发现问题、查明原因并进行智能化决策” 管理信息系统( MIS ) 联机事务处理( OLTP , On-Line Transact Processing ) 联机分析处理( OLAP , On-Line Analytical Processing ) 数据仓库 ( Data Warehouse , DW ) 面向主题的、集成的、稳定的、随时间变化的数据存储,用于决策支持 稳定的意义是数据插入后不再改变,但可以被删除 数据集市 ( Data Mart , DM ) 与数据仓库的区别在于它是特定的和可更新的 34

35.7.4 数据库新技术 数据挖掘( Data Mining ) 探测型的数据分析 从数据库中找到感兴趣的“模式” 建立在数据库已经保存有海量数据记录的基础上 以统计分析为基础,运用人工智能技术 大数据( Big Data ) 存于网络中的海量数据 定义:在限定的时间内无法使用传统的数据处理方法进行筛选、提取、处理和管理的海量数据 大数据处理基础几乎涵盖了目前先进的计算机技术,如并行处理、分布式处理、网络存储系统等 35

36.7.5 构建数据库系统 现代的数据库系统都是基于网络服务器结构 数据库系统由两个简单的部分组成( C/S 模式) 服务器( Server) 客户( Client) —— 数据库应用程序 一些数据库应用直接使用网络软件(如浏览器 IE )进行数据库的访问,用户不需要专门的数据库应用程序,这种结构则叫做 B/S ( Browse/Server )模式 36

37.C/S 模式 服务器可被认为是 DBMS, 或者说 DBMS 安装在服务器上 客户端程序和服务器程序安装在同一台机器上 —— 单用户结构 如果多个用户使用不同的客户端机器访问 多 台机器上的数据库服务器 —— 分布式结构 37

38.Access 2003 数据库 38

39.新建数据库 39

40.数据库的建立 / 查询 建立数据库 ——Access 数据库中的信息主要是以表的形式来实现的 —— 建表 Access 中表的模板 或设计视图来设计表 查询的建立 —— 对数据库进行操作 —— 查询创建可以通过向导,或设计视图 选择查询 —— 从某个表中读出所需的信息 追加查询 —— 从某表向另一表中增加记录 删除查询 —— 在某表中删除某些符合删除条件的记录 生成表查询 —— 根据某些表中内容生成一个新表等 40

41.小结 概述 数据库系统 关系型数据库 数据库新技术 构建数据库系统 41

user picture
  • 媿魅
  • Apparently, this user prefers to keep an air of mystery about them.

相关Slides

  • 大规模实践基于Docker的MySQL私有云平台。集成高可用、快速部署、自动化备份、性能监控、故障分析、过载保护、扩容缩容等多项自动化运维功能。数据库高可用是不容忽视的,在Docker容器分配时如何保障主从不在同一宿主机上呢?我们通过自研Docker容器调度平台,自定义Docker容器的分配算法。实现了MySQL的高密度、隔离化、高可用化部署。同时结合我们自研的数据库中间件,支持了分片集群及无感知的高可用切换功能。截止目前平台支撑了目前总量90%以上的MySQL服务(实际数量超过2000个),资源利用率提升30倍,数据库交付能力提升70倍。并且经受住了十一黄金周、春节票务业务高峰期的考验。未来将致力于数据库自动化向智能化的推进。

  • 在云时代的今天,企业数据库面临着复杂的选择,数据库异构迁移往往达不到预期效果,樊文凯想大家分享了ADAM数据库和应⽤用迁移(Advanced Database & ApplicationMigration, 以下简称ADAM),ADAM是阿里云结合阿里巴巴多年年内部业务系统数据库和应⽤用异构迁移的经验(去IOE),⾃自主研发的、迁移ORACLE数据库和应⽤用⾄至阿⾥里里云相关云产品的专业产品,分享了ADAMA的结构、高性能、数据库割接、智能分析、所用的生态工具等,典型的数据库中出现的痛点。

  • 主要介绍阿里云MongoDB服务使用上的一些最佳实践,以及对MongoDB的部署、参数调优

  • Lindorm 是新一代面向在线海量数据处理的分布式数据库,阿里的技术专家通过分享这些多种场景下的数据存储技术实践,帮助企业更好地理解各种数据存储技术的特点,针对自己的业务发展对数据存储技术进行选择和组合。