第 7 章 数据库 1
Overview 数据库概述 数据库管理系统 数据库的体系结构和数据库模型 SQL 语言 数据库技术 构建数据库系统 2
7.1 概述 什么是数据库? 数据库是一个持久数据的结构化集合,是数据的组织和存储。 为什么要使用数据库? 实现了数据的集中管理 保持数据的独立性 是计算机信息系统与应用程序的核心技术和重要基础 支持事务处理,能够保证数据的完整性 可以存放大量的数据,并能够有效地进行数据的组织和管理 可以高速、高效检索数据 数据库的信息可以重组 可以进行各种数据处理 3
什么是数据库系统? 构成数据库系统的4个部分: 数据存储器 数据库管理系统 数据库应用软件:包括实用程序、开发工具、设计辅助、报表制 作等 数据库用户 ○ 应用程序设计员:编写数据库应用程序。 ○ 最终用户:数据库的直接使用者。 ○ 数据库管理员或叫做 DBA :负责对数据库进行规划、设计、协 调、维护、及管理的工作人员。 4
7.2 数据库管理系统 数据库管理系统( DBMS ): DBMS 是软件和数据的结合,是进行数据库创建、 管理、维护的软件系统。包括: 物理数据库:数据存放在外存磁盘上, DBMS 以文件或 其他形式实现数据的存放。 数据库引擎:实现用户和物理数据库之间的交互。 数据库模式:这是独立于物理数据的逻辑表达,展示了 数据库中各数据项之间的关系。 5
DBMS 支持的功能 数据定义 数据操纵:查询、添加、修改和删除数据库中的数据 数据控制:设置或者更改数据库用户或角色权限 系统存储过程:目的在于能够方便地从系统表中查询信 息,或完成更新数据表相关的管理任务,包括系统管理 任务 DBMS 还需要实现对数据库的优化,保证数据的完整性和 安全性,能够进行数据恢复和进行并发任务,还包括数据 字典。 6
常见的数据库产品 Oracle DB2 Sybase SQL Server Access Visual FoxPro 7
各种用户数据库 使用数据库管理系统能够构建各种用于满足用户 需求的数据库,主要可分为: 企业数据库 ○ ERP 个人数据库 ○ Outlook Internet 上的数据库 8
7.3 数据库的体系结构和数据库模型 数据库的三级体系结构 内层:决定数据在存储器中的 实际位置,需要考虑数据的存 取方法,与操作系统的存储器 管理相关。 概念层:定义数据的逻辑结构, 把数据库内部的数据以用户能 够接受的形式提供给外层。 外层:提供应用程序和用户的 连接。 9
数据库模型 数据库模型定义了数据的逻辑关系,也给出了不同类型 数据之间的关系。不同的数据模型有不同类型的数据管 理系统,可分为: 层次型数据库: 使用树状结构来表示数据库中的记录及其联系。 网状型数据库: 使用有向图(网络)来表示数据库中的记录及其联系。 关系型数据库: 用二维表格的形式来表示数据库中的数据及其联系。 面向对象型数据库: 是面向对象技术与数据库技术相结合的产物。 10
关系型数据库 数据库的关系模型首先由 IBM San Jose Research Lab 的 E.F.Codd 于 1970 年提出的。关系模型由表( Table ) 集合而成,确切地说,是由 “ 关系 ” 集合而成。 关系 在关系型数据库中,数据库的外部形态就是表。从表面上 看,关系就是一个二维的表格。这并不是指数据在数据库 中就是以表的形式存储的。 11
关系的操作 ○ 插入( Insert ):是一元操作,插入一个新记录; ○ 删除( Delete ):是一元操作,删除一个新的记录; ○ 更新( Update ):是一元操作,,更新表的记录。 ○ 选择( Select ):作用于单个关系,根据给定的条件从这个关系 中得到一个新关系,如在一个全校性的数据库中选择某一个班 级的学生名单 ○ 连接( Link ):将两个关系组合成一个新关系,这是关系代数中 最重要、也是数据库系统中最难实现的操作 ○ 并( Union ):二元操作,形成一个新关系,包含了被操作的两 个关系中所有不同的记录 ○ 交( Intersection ):二元操作,形成的新关系,包含了被操作 的两个关系中都有的那些记录 12
关系数据库管理系统 在目前应用的数据库系统中,关系型数据库管理系统占 据绝对统治地位,早期的层次型和网状结构的数据库都 已经退出了市场。 关系模型所确定的目标有三点: ○ 数据的独立性; ○ 数据处理的完整性和完备性 ○ 面向网络的数据操作语言的发展。 13
7.4 SQL 语言 SQL ( Structured Query Language )结构化查 询语言,最早是 IBM 为其关系数据库管理系统 System R 开发的一种查询语言,目前大多数关 系数据库都支持 SQL 。 一般的程序设计语言,如 C 、 Java 等语言,缺 乏对数据库的操作。通过嵌入 SQL 语句就可以 扩展其对数据库操作的能力。数据库应用设计 基本上就是采用这个途径,把这样的通用编程 语言叫做宿主语言( Host Language )。 14
SQL 包括 4 个部分: 数据查询语言 DQL ( Data Query Language ) 数据操纵语言 DML ( Data Manipulation Language ) 查询、添加、修改和删除数据库中数据的语句; SQL 语言相对独立的系统,并不是 DBMS 的一部分; 实际上在数据库系统把 SQL 处理器设置为一个内核程序; 数据定义语言 DDL ( Data Definition Language ) 定义和管理数据库中各种对象,包括 Create 、 Alter 、 Drop ; 数据控制语言 DCL ( Data Control Language ) 包括 Grant 、 Deny 、 Revoke ; 15
SQL 的特点 : 非过程化语言 ○ 它一次处理一个记录,对数据提供自动导航 ○ 允许用户在高层数据结构上工作,集合输入,集合输出 ○ 不要求指定数据存放方法 —— 集中精力于要得到的结果 ○ SQL 语句使用查询优化器 —— 数据存取的快速手段 统一的语言 ○ 用于所有用户的 DB 活动 ——DBA 、程序员及其他用户 ○ 命令简单:如查询 Selecet ,对数据、记录、多表查询 ○ 多种命令包括:记录操作;维护 DB 的一致性和完整性 ○ 以前的 DBMS 为各类操作单独的语言, SQL 统一语言 所有关系数据库的公共语言 ○ 用 SQL 编写的程序都是可以移植的 16
17 SQL 查询例子 假设有一个表为 Title ,其中一列为产品类型 Type ,一个 列是产品价格表为 Price ,现在要将这两列数据按照价格 Price 降序排列,使用 SQL 语句编写的程序为: use title select top 3 to type , price from title order by price desc 运行结果为: type price ―――――――――――――――― 电视机 收音机 手电筒 8.00
7.5 数据库技术 面向对象的数据库: 将信息与处理信息的过程(程序)综合在一起 的数据库模型,具有存储能力,同时允许人们 使用信息以及处理该信息的程序 分布式的数据库(分割式、复制式) 决策支持和数据仓库、数据集市 数据挖掘 自然语言数据库 18
7.6 构建数据库系统 现代的数据库系统都是基于网络服务器结构, 因此数据库系统可以看作由两个简单的部分组 成( C/S 模式): 服务器( Server ) 客户( Client ) —— 数据库应用程序 随着网络技术的发展,一些数据库应用直接使 用网络软件(如浏览器 IE )进行数据库的访问, 用户不需要专门的数据库应用程序,这种结构 则叫做 B/S ( Browse/Server )模式。 19
C/S 模式: 应用程序可以是由客户自己编写的, 也可以是委托第三方开发的 服务器可被认为是 DBMS ,或者说 DBMS 是安装在服务器上的 客户端程序和服务器程序安装在 同一台机器上 —— 单用户结构 如果多个用户使用不同的客户端 机器访问另一台机器上的数据库 服务器 —— 分布式结构 20