CS, ZJU 4/18/2019 Chapter 7 数据库
数据库概述 数据库管理系统 数据库的体系结构和数据库模型 SQL语言 数据库技术 构建数据库系统 2019/4/18 计算机科学基础
7.1 概述 什么是数据库? 数据库是一个持久数据的结构化集合,是数据的组织和存储。 为什么要使用数据库? 实现了数据的集中管理 保持数据的独立性 是计算机信息系统与应用程序的核心技术和重要基础 支持事务处理,能够保证数据的完整性 可以存放大量的数据,并能够有效地进行数据的组织和管理 可以高速、高效检索数据 数据库的信息可以重组 可以进行各种数据处理 2019/4/18 计算机科学基础
什么是数据库系统? 数据存储器 数据库管理系统(DBMS):对DB的操作都是通过DBMS,还提供实用程序、开发工具、设计辅助、报表制作等 数据库应用软件 数据库用户 应用程序设计员:编写数据库应用程序。 最终用户:数据库的直接使用者。 数据库管理员或叫做DBA :负责对数据库进行规划、设计、协调、维护、及管理的工作人员。 2019/4/18 计算机科学基础
7.2 数据库管理系统 数据库管理系统(DBMS):是软件和数据的结合,是进行数据库创建、管理、维护的软件系统。 数据库模式:这是独立于物理数据的逻辑表达,展示了数据库中各数据项之间的关系 数据库引擎:实现用户和物理数据库之间的交互。是数据库的核心部分。 2019/4/18 计算机科学基础
DBMS支持的功能 数据定义 数据操纵:查询、添加、修改和删除数据库中的数据 数据控制:设置或者更改数据库用户或角色权限 系统存储过程 是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库 目的在于能够方便地从系统表中查询信息,或完成更新数据表相关的管理任务等等 DBMS还需要实现对数据库的优化,保证数据的完整性和安全性,能够进行数据恢复和进行并发任务,还包括数据字典。 2019/4/18 计算机科学基础
常见的数据库产品 Oracle DB2 Sybase SQL Server Access Visual FoxPro 性能好,功能强大 支持面向Internet计算环境,支持多媒体数据应用等 DB2 IBM开发,支持多种操作系统平台 Sybase ASE,适用企业级的大型数据库 ASA,适用中、小型数据库 提供通用数据库应用开发环境PowerBuild SQL Server MS的数据库产品,只能在Windows OS平台上运行 Access MS开发的小型数据库产品,Office组件的一部分 Visual FoxPro 2019/4/18 计算机科学基础
各种用户数据库 使用数据库管理系统能够构建各种用于满足各类用户需求的数据库,根据应用面不同可分为: 企业数据库应用系统 个人数据库 ERP 个人数据库 Outlook Internet上的数据库:各种Internet资源,如音频、视频、图片等等都是基于数据库的 2019/4/18 计算机科学基础
7.3 数据库的体系结构和数据库模型 数据库的三级体系结构 内层:决定数据在存储器中的实际位置,需要考虑数据的存取方法,与操作系统的存储器管理相关。 概念层:定义数据的逻辑结构,把数据库内部的数据以用户能够接受的形式提供给外层。 外层:提供应用程序和用户的连接。 2019/4/18 计算机科学基础
数据库模型 从体系结构上,数据库模型是在概念层上提出的 数据库模型定义了数据的逻辑关系 不同的数据模型有不同类型的数据管理系统,可分为: 层次型数据库:使用树状结构来表示数据库中的记录及其联系。数据被组织成一棵到置的树。 网状型数据库:使用有向图(网络)来表示数据库中的记录及其联系。 关系型数据库:用二维表格的形式来表示数据库中的数据及其联系。 面向对象型数据库:是面向对象技术与数据库技术相结合的产物。 2019/4/18 计算机科学基础
关系型数据库 关系模型是由“关系”集合而成。 关系:关系就是一个二维的表格。 属性:关系中的列都叫做属性(Property)。 度:关系中所有的属性的总和叫做度。通俗地讲,度就是表格中列的数目 记录:关系中的行叫做记录,也把行叫做“元组” 基数:行的总数。当表中的记录增加或被删除,基数就随之改变,这就实现了数据库的动态存储 2019/4/18 计算机科学基础
关系的操作 插入(Insert):是一元操作,插入一个新记录; 删除(Delete):是一元操作,删除一个新的记录; 更新(Update):是一元操作,,更新表的记录。 选择(Select):作用于单个关系,根据给定的条件从这个关系中得到一个新关系,如在一个全校性的数据库中选择某一个班级的学生名单 连接(Link):将两个关系组合成一个新关系,这是关系代数中最重要、也是数据库系统中最难实现的操作 并(Union):二元操作,形成一个新关系,包含了被操作的两个关系中所有不同的记录 交(Intersection):二元操作,形成的新关系,包含了被操作的两个关系中都有的那些记录 2019/4/18 计算机科学基础
关系数据库管理系统 在目前应用的数据库系统中,关系型数据库管理系统占据绝对统治地位,早期的层次型和网状结构的数据库都已经退出了市场。关系模型所确定的目标有三点: 数据的独立性; 数据处理的完整性和完备性 面向网络的数据操作语言的发展。 2019/4/18 计算机科学基础
7.4 SQL语言 SQL(Structured Query Language)结构化查询语言,最早是 IBM为其关系数据库管理系统开发的一种查询语言,目前大多数关系数据库都支持SQL。 一般的程序设计语言,如 C、Java等语言,缺乏对数据库的操作。通过嵌入 SQL语句就可以扩展其对数据库操作的能力。数据库应用设计基本上就是采用这个途径,把这样的通用编程语言叫做宿主语言(Host Language)。 2019/4/18 计算机科学基础
SQL包括四个部分: 数据查询语言DQL(Data Query Language) 数据操纵语言DML(Data Manipulation Language) 添加、修改和删除数据库中数据的语句; 数据定义语言DDL(Data Definition Language ) 定义和管理数据库中各种对象,包括Create 、Alter、 Drop; 数据控制语言DCL(Data Control Language) SQL可用来限制用户检索,增加和修改数据的权限,以保护所存储的数据不被非法存取。 2019/4/18 计算机科学基础
SQL的特点 : 非过程化语言 统一的语言 所有关系数据库的公共语言 它一次处理一个记录,对数据提供自动导航 用于所有用户的DB活动——DBA、程序员及其他用户 命令简单:如查询Selecet,对数据、记录、多表查询 多种命令包括:记录操作;维护DB的一致性和完整性 所有关系数据库的公共语言 用SQL编写的程序都是可以移植的 2019/4/18 计算机科学基础
SQL 查询例子 例1:生成一张名为“stu”的表: CREATE TABLE STU (ID VARCHAR(10) NOT NULL NAME VARCHAR(8) SEX VARCHAR(2) BIRTHDAY DATE AWARD INTEGER) 例2:将奖学金为500元的同学增加300元奖学金 UPDATE STU SET AWARD=800 WHERE AWARD=500 例3:查询第“000001”号雇员信息 SELECT * FROM 订单 WHERE 雇员ID="000001" 2019/4/18 计算机科学基础
7.5 数据库技术 面向对象的数据库 分布式的数据库 决策支持和数据仓库、数据集市 数据挖掘 自然语言数据库 传统的面向记录的数据库 分割式:数据分储在网络上的每个数据服务器中 复制式:在网络上的每个数据服务器中有相同的数据备份 决策支持和数据仓库、数据集市 决策支持:管理信息系统(MIS),满足管理的需要 数据仓库出现源于决策中需要的数据源是单一的、一致的、干净的数据 建立不同主题的仓库支持各类决策 数据集市 数据挖掘 从现有的数据分析中,发现更有价值的信息 被描述为“探测型的数据分析” 自然语言数据库 使用自然语言访问数据库,如Google,Baidu 2019/4/18 计算机科学基础
7.6 构建数据库系统 现代的数据库系统是基于网络服务器结构,因此,数据库系统可以看作由两个简单的部分组成: 服务器(Server): DBMS是安装在服务器上的 客户(Client)——数据库应用程序 这种模式称C/S模式 客户端程序和服务器程序安装在同一台机器上——单用户结构 如果多个用户使用不同的客户端机器访问另一台机器上的数据库服务器——分布式结构 2019/4/18 计算机科学基础
随着网络技术的发展,一些数据库应用直接使用网络软件(如浏览器IE)进行数据库的访问,用户不需要专门的数据库应用程序,这种结构则叫做B/S(Browse/Server)模式。 B/S模式是一种以 Web技术为某础的信息系统运行模式 把传统的C/S模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器(Web服务器),从而构成一个三层结构的客户服务器体系 2019/4/18 计算机科学基础
Access 数据库介绍 Access的基本功能 Access 是office组件的一套功能非常强大的数据库管理工具。Access数据库是典型的关系型数据库 Access的基本功能 组织数据:表是组织数据的基本模块,不同主题的数据---不同的表 建立查询:抽取用户所需的数据 建立窗体:建立用户界面 打印报表:报表是指将表中的数据或查询结果按用户需要进行分组、统计或计算,再加上页眉、页脚及页码等信息而形成文件。 共享数据:除可方便和其他office组件中的数据进行交换、还支持和其他数据库的数据共享。 支持超级链接。方便地输出至WEB页面 2019/4/18 计算机科学基础
Access 的工作环境 2019/4/18 计算机科学基础
Access为使用者提供了七种可操作的对象类型: 查询:利用查询可以检索符合指定条件的数据,而这些数据可能存在多个表中;也可以使用查询作为窗体、报表和数据访问页的记录源。 窗体:设计用户界面 报表:数据库的最终目的都是产生各种各样的报表,并可以按一定的格式打印出来以供用户使用。 数据访问页:Access 2000以后的新功能,利用数据访问页,可以在浏览器中制作精美的窗体和报表。“数据访问页”实际上是带有数据绑定功能的Web页。 宏:指一个或多个操作的集合,其中每个操作实现特定的功能。 模块:将应用程序中一些通用功能的代码模块封装起来,供其他对象共享。 2019/4/18 计算机科学基础
Access数据库的设计步骤 分析建立数据库的目的 确定数据库中所需的表 确定表中所需的字段 确定主关键字 确定表之间的关系 计算机科学基础 2019/4/18 计算机科学基础
思考题 大型数据库系统如Oracle、MS SQL Server、IBM DB2、MySQL等,请通过资料的收集,归纳其中一种的主要功能和应用情况。 MS Office系统中的Access也是一种关系数据库,它有什么特点?它是如何工作的? 什么是数据挖掘?为什么说数据库中隐藏着“软黄金”?举例说明。 如何构建数据库系统? 2019/4/18 计算机科学基础