数据结构与数据库 之 《数据库系统原理》
教材和参考书 教材 参考书 王珊、陈红,《数据库系统原理教程》,清华大学出版社,1998 2017/2/26 教材和参考书 教材 王珊、陈红,《数据库系统原理教程》,清华大学出版社,1998 参考书 萨师煊 、王珊,《数据库系统概论(第三版) 》 ,高等教育出版社,2000 C.J. Date(孟小峰等译),《数据库系统导论》 ,机械工业出版社,2000 数据库-绪论
讲授内容 第一章 绪论 1.1 引言 1.2 数据模型 3.3 SQL的更新语句 1.3 数据库系统结构 3.4* SQL的视图 1.1 引言 1.2 数据模型 1.3 数据库系统结构 第二章 关系数据库 2.1 关系数据库概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 * 关系数据库管理系统 第三章 关系数据库标准语言SQL 3.1 SQL的数据定义 3.2 SQL的查询语句 3.3 SQL的更新语句 3.4* SQL的视图 第四章 关系数据库设计理论 4.1 数据依赖 4.2 范式(1NF,2NF,3NF,BCNF) 4.3* 关系模式的规范化 第五章* 数据库设计 5.1 数据库设计的步骤 5.2 需求分析 5.3 概念结构设计 5.4 逻辑结构设计 (ER图) 5.5 数据库物理设计
2017/2/26 第 一 章 绪论 1.1 引言 1.2 数据模型 1.3 数据库系统结构 数据库-绪论
数据库技术的重要地位 数据库技术是是计算机科学技术的重要分支,是 数据管理相关领域的重要学科 数据库技术在信息化社会中的重要作用 2017/2/26 数据库技术的重要地位 数据库技术是是计算机科学技术的重要分支,是 数据管理相关领域的重要学科 数据库技术在信息化社会中的重要作用 信息系统的核心和基础技术 日益广泛的应用 例如:管理信息系统(MIS)、联机事务处理(OLTP)、联机分析处理 (OLAP)、计算机辅助设计与制造(CAD/CAM)、计算机集成制造系统 (CIMS)、办公信息系统(OIS)、地理信息系统(GIS)…..and … Internet !!! 数据库-绪论
常见数据库产品 数据库-绪论
2012年11月ITbrand数据库品牌排行榜
1.1 引言 1.1.1 数据、数据库、数据库管理系统、数据库系统 描述事物的符号记录。数据与其语义是不可分的。 1.1 引言 1.1.1 数据、数据库、数据库管理系统、数据库系统 数据(Data): 描述事物的符号记录。数据与其语义是不可分的。 数据库(DataBase,DB) 长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 数据库-绪论
数据库管理系统(DataBase Management System,DBMS) 位于用户与操作系统之间的一层数据管理软件。 主要功能: 1.数据定义:数据定义语言(Data Definition Language, DDL) 2.数据操纵: 数据操纵语言(Data Manipulation Language, DML) 3.数据库的运行管理: 统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。 4.数据库的建立和维护:数据库初始数据的输入、转换,重组织、性能监视和分析 数据库-绪论
数据操纵语言(DML) 及其编译(或解释)程序 数据库运行控制程序 实用程序 主要功能-续: 5.数据组织、存储和管理功能: 6. 数据通信接口 四个组成部分: 数据定义语言( DDL)及其翻译处理程序 数据操纵语言(DML) 及其编译(或解释)程序 数据库运行控制程序 实用程序 数据库-绪论
数据库系统(DataBase System,DBS) 在计算机系统中引入数据库后的系统,包括数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。 数据库管理员(DataBase Administrator,DBA) 数据库-绪论
应用系统 DB 用户 应用开发工具 DBMS OS DBA 图1 数据库系统(DBS) 图2 数据库在计算机系统中的地位
1.1.2 数据管理技术的产生和发展 数据库技术是应数据管理任务的需要而产生的。 1.1.2 数据管理技术的产生和发展 数据库技术是应数据管理任务的需要而产生的。 数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。数据管理则是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。 数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。 数据库-绪论
数据是面向应用的,一组数据只能对应一个程序。 (4)数据不具有独立性 数据的逻辑结构或物理结构发生变化后,必 须对应用程序做相应的修改。 人工管理阶段(20世纪50年代中期以前) 特点: (1)数据不保存 (2)应用程序管理数据 数据需要由应用程序自己管理,没有相应的软 件系统负责数据的管理工作。应用程序中不仅要规定 数据的逻辑结构,而且要设计物理结构,包括存储结 构、存取方法、输入方式等。因此程序员负担很重。 (3)数据不共享 数据是面向应用的,一组数据只能对应一个程序。 (4)数据不具有独立性 数据的逻辑结构或物理结构发生变化后,必 须对应用程序做相应的修改。 数据库-绪论
应用程序1 数据集1 应用程序2 数据集2 … … 应用程序n 数据集n 图1-3 人工管理阶段应用程序与数据之间的对应关系 数据库-绪论
文件仍然是面向应用的;数据的冗余度大;数据的 修改和维护困难 。 (4)数据独立性低 文件系统阶段(50年代后期-60年代中期) 特点: (1)数据可长期保存 (2)由文件系统管理数据 相互独立的数据文件; “按文件名访问,按记录 进行存取”的管理技术;记录内的结构性而整体无结构; 存取方法转换使应用程序与数据之间有了一定的独立性; 数据在存储上的改变不一定反映在程序上。 (3)数据共享性差,冗余度大 文件仍然是面向应用的;数据的冗余度大;数据的 修改和维护困难 。 (4)数据独立性低 不易扩充;数据与程序之间仍缺乏独立性;是一 个无弹性的无结构的数据集合。 数据库-绪论
图1-4 文件系统阶段应用程序与数据之间的对应关系 应用程序1 文件1 应用程序2 文件2 存取方法 … … 应用程序n 文件n 图1-4 文件系统阶段应用程序与数据之间的对应关系 数据库-绪论
数据结构化是数据库与文件系统的根本区别。 数据库系统阶段(60年代- ) 特点: (1)数据结构化 数据结构化是数据库与文件系统的根本区别。 文件系统中,尽管其记录内部已有了某些结构,但记录 之间没有联系。数据的最小存取单位是记录。 数据库系统实现整体数据的结构化,描述数据时不仅 要描述数据本身,还要描述数据之间的联系。数据不再 针对其一应用,是面向全组织,具有整体的结构化。数 据的最小存取单位是数据项。 数据库-绪论
学生记录格式示例 主记录-详细记录格式示例 (a)
主记录-详细记录格式示例(b) 面向组织(多个应用)的学生数据组织
面向整个系统的数据库系统中的数据可以被多个用户、多个应用共享使用。 共享导致数据冗余度低,同时可避免数据之间的不相容性与不一致性。 数据库系统阶段(60年代- )--续 特点 (2)数据的共享性好,冗余度低,易扩充 面向整个系统的数据库系统中的数据可以被多个用户、多个应用共享使用。 共享导致数据冗余度低,同时可避免数据之间的不相容性与不一致性。 容易增加新的应用,这就使得数据库系统弹性大,易于扩充。 数据库-绪论
数据独立性是由DBMS的二级映象功能来保证的。 数据库系统阶段(60年代- )--续 特点 (3)数据独立性高 数据独立性是由DBMS的二级映象功能来保证的。 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。它由DBMS的数据的总体逻辑结构与局部逻辑结构之间的映像功能保证。 物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。它由DBMS的数据存储结构与逻辑结构之间的映像功能保证。 数据库-绪论
数据库的共享是并发的(Concurrency) 。 DBMS的数据控制功能: (1)数据的安全性 (Security) 数据库系统阶段(60年代- )--续 特点 (4)数据由DBMS统一管理和控制 数据库的共享是并发的(Concurrency) 。 DBMS的数据控制功能: (1)数据的安全性 (Security) (2)数据的完整性 (Integrity) -- 正确性、有效性和相容性 (3)并发(Concurrency)控制 (4)数据库恢复(Recovery) 数据库-绪论
应用程序1 数据库 应用程序2 DBMS … 图1-5 数据库管理阶段程序与数据的对应关系 数据库-绪论
表1-1 数据管理三个阶段的比较 数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。 数据库-绪论
1.1.3 数据库技术的研究领域 1.数据库管理系统软件的研制 2.数据库设计 3.数据库理论 数据库-绪论
数据库技术的演化 数据收集和数据库创建 (20世纪60年代和更早) -原始文件处理 数据库管理系统 (70年代) -层次和网状数据库系统 -关系数据库系统 -数据建模工具:E-R模型等 -索引和数据组织技术:B+树,Hash等 -查询语言:SQL等 -用户界面:表单、报告等 -查询处理和查询优化 -事务管理:恢复和并发控制等 -联机事务处理(OLTP)
高级数据库系统 (80年代中期-现在) -高级数据模型: 扩充关系、面向对象、 对象-关系、演绎 -面向应用: 空间的、时间的、多媒体的、 主动的、科学的、知识库 数据仓库和数据挖掘 ( 80年代后期-现在) -数据仓库和OLAP技术 -数据挖掘和知识发现 基于Web的数据库系统 (90年代-现在) -基于XML的数据库系统 - Web挖掘 新一代综合信息系统 ( 2000-…)
新一代数据库系统及其相互关系 数据库-绪论
1.2 数据模型(Data Model) 数据库技术的发展是沿着数据模型的主线展开的 数据模型是现实世界数据特征的抽象 抽象、表示和处理现实世界中的数据和信息的工具 数据模型应满足三方面要求: 能比较真实地模拟现实世界 容易为人所理解 便于在计算机上实现 数据库-绪论
根据应用的不同目的,数据模型划分为两类: 概念模型(信息模型) 按用户的观点来对数据和信息建模;主要用于数据库设计。 按计算机系统的观点对数据建模;主要包括网状模型、层次模型、关系模型等,主要用于DBMS的实现。 数据库-绪论
现实世界 认识 抽象 信息世界 概念模型 转换 机器世界 DBMS支持的数据模型 图1-10 对象的抽象过程
1.2.1 数据模型的三个要素 1. 数据结构 所研究的对象类型的集合 1.2.1 数据模型的三个要素 1. 数据结构 所研究的对象类型的集合 与数据类型、内容、性质有关的对象(例如网状模型中的数据项、记录,关系模型中的域、属性、关系等) 与数据之间联系有关的对象(例如网状模型中的系型) 数据结构是对系统静态特性的描述,是刻画一个数据模型性质最重要的方面。 数据库-绪论
是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则 2. 数据操作 是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则 数据库主要有检索和更新(包括插入、删除、修改)两大类操作。 数据操作是对系统动态特性的描述 3.数据的约束条件 是一组完整性规则的集合 完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。 数据库-绪论
1.2.2 概念模型 概念模型是现实世界到机器世界的一个中间层次 概念模型用于信息世界的建模 应具有较强的语义表达能力 1.2.2 概念模型 概念模型是现实世界到机器世界的一个中间层次 概念模型用于信息世界的建模 应具有较强的语义表达能力 应简单、清晰、易于用户理解 数据库-绪论
实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如: 信息世界中的基本概念 (1)实体(Entity) 客观存在并可相互区别的事物称为实体 (2)属性(Attribute) 实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如: (94002268,张山,男,1976,计算机系,1994) (3)码(Key) 唯一标识实体的属性集称为“码” 数据库-绪论
(4)域(Domain) 属性的取值范围称为该属性的域 例如,学号的域为8位整数,姓名的域为字符串集合,年龄的域为小于38的整数,性别的域为(男,女)。 (5)实体型(Entity Type) 用实体名及其属性集合来抽象和刻画同类实体,称为实体型。 学生(学号,姓名,出生年份,系,入学时间) (6)实体集(Entity Set) 同型实体的集合称为实体集
现实世界中的事物内部以及事物之间是有联系的, 在信息世界中反映为: 实体(型)内部的联系:组成实体的各属性之间的联系 (7)联系(Relationship) 现实世界中的事物内部以及事物之间是有联系的, 在信息世界中反映为: 实体(型)内部的联系:组成实体的各属性之间的联系 两个实体(型)之间的联系:不同实体集之间的联系 一对一联系(1:1) ,如“班级-班长” 一对多联系(1:n),如“班级-学生” 多对多联系(m:n),如“课程-学生” 数据库-绪论
1:1联系 1:n联系 m:n联系 两个实体型之间的三类联系 实体型A 实体型A 实体型A 1 1 m 联系名 联系名 联系名 1 n n 实体型B 实体型B 实体型B 1:1联系 1:n联系 m:n联系 两个实体型之间的三类联系
多个实体型之间的联系也可以分为三类: 一对一联系(1 : 1) 一对多联系(1 : n) 若实体集E1,E2,…,En存在联系,对于实体集Ej(j=1,2,…,i-1,i+1,…,n)中的给定实体,最多只和Ei中的一个实体相联系,则说Ei与E1,E2,…,Ei-1,Ei+1,En之间的联系是一对多的。 多对多联系(m : n) 例如:“供应商、项目和零件” 数据库-绪论
同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。 职工 领导 1 n 数据库-绪论
实体-联系方法(Entity-Relationship Approach) 2.概念模型的表示方法 实体-联系方法(Entity-Relationship Approach) 由P.P.S.Chen于1976年提出,用E-R图描述现实世界中的概念模型。 实体型- 矩形 属性 - 椭圆形 联系 - 菱形 数据库-绪论
工厂物资管理E-R图
1.2.2 数据模型 数据库领域中最常用的数据模型有4种 层次模型(Hierarchical Model),如 IBM的IMS系统 1.2.2 数据模型 数据库领域中最常用的数据模型有4种 层次模型(Hierarchical Model),如 IBM的IMS系统 网状模型(Network Model),如DBTG系统 关系模型(Relational Model),如Oracle,Sybase 面向对象模型(Object Oriented Model) 数据库-绪论
1.3 数据库系统结构 数据库系统结构的两种考察角度 1.3 数据库系统结构 数据库系统结构的两种考察角度 从数据库管理系统角度看,数据库系统通常采用三级模式结构,这是数据库管理系统内部的系统结构。 从数据库最终用户角度看,数据库系统的结构分为集中式结构(又可有单用户结构、主从式结构)、分布式结构、客户/服务器结构和并行结构。这是数据库系统外部的体系结构。 数据库-绪论
1.3.1 数据库系统的模式结构 “型” (Type)和“值” (Value) 型是指一类数据的结构和属性的说明,值是型的一个具体赋值。 1.3.1 数据库系统的模式结构 “型” (Type)和“值” (Value) 型是指一类数据的结构和属性的说明,值是型的一个具体赋值。 例:记录型 (学号,姓名,性别,系别,年龄,籍贯) 记录值 (900201,李明,男,计算机,22,江苏) 数据库-绪论
模式(schema):是数据库中全体数据的逻辑结构和特征的描述。 它仅仅涉及到型的描述,不涉及到具体的值 模式的一个具体值称为模式的一个实例(instance) 同一个模式可以有很多实例;模式是相对稳定的,而实例是相对变动的; 模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。 不同的DBMS在体系结构上通常都具有相同的特征,即采用三级模式结构并提供两级映象功能。 数据库-绪论
也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图 1 数据库系统的三级模式结构 模式(Schema) 也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图 它是数据库系统模式结构的中间层 模式实际上是数据库数据在逻辑级上的视图 一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。模式定义包括数据的逻辑结构定义、数据之间的联系定义以及安全性、完整性要求的定义。 DBMS提供模式定义语言(模式DDL)来严格地定义模式 数据库-绪论
2) 外模式(External Schema) 也称子模式(Subshema) 或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述, 是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式通常是模式的子集 一个数据库可以有多个外模式 外模式是保证数据库安全性的一个有力措施 数据库-绪论
3) 内模式(Internal Schema) 也称存储模式(Storage schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。 例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等。 数据库-绪论
应用A 应用B 应用C 外模式2 外模式1 外模式3 模式 内模式 DB 1 2 3 外模式/模式映象 模式/内模式映象 图1-24 数据库系统的模式结构
2 数据库系统的二级映象功能与数据独立性 三级模式之间的二级映象: 1. 外模式/模式映象 2 数据库系统的二级映象功能与数据独立性 三级模式之间的二级映象: 1. 外模式/模式映象 对于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系(这些映象定义通常包含在各自外模式的描述中)。 当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),DBA对各个外模式/模式的映象作相应改变,可以使外模式保持不变。 数据的逻辑独立性 数据库-绪论
存在一个唯一的模式/内模式映象,它定义了数据库全局逻辑结构与存储结构之间的对应关系(该映象定义通常包含在模式描述中)。 2. 模式/内模式映象 存在一个唯一的模式/内模式映象,它定义了数据库全局逻辑结构与存储结构之间的对应关系(该映象定义通常包含在模式描述中)。 例如,说明逻辑记录和字段在内部是如何表示的。 当数据库的存储结构改变了(例如选用了另一种存储结构),由DBA对模式/内模式映象作相应改变,可以使模式保持不变。 数据的物理独立性 数据库-绪论
3 小结 模式是数据库的中心与关键,它独立于数据库的其他层次。设计数据库模式结构时应首先确定数据库的模式。 3 小结 模式是数据库的中心与关键,它独立于数据库的其他层次。设计数据库模式结构时应首先确定数据库的模式。 内模式依赖于它的全局逻辑结构,但独立于数据库的用户视图即外模式,也独立于具体的存储设备。 外模式面向具体的应用程序,它定义在模式之上,但独立于存储模式和存储设备。设计外模式时应充分考虑到应用的扩充性。 数据库-绪论
数据库的二级映象保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性。 优点: 数据库的二级映象保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性。 数据和程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,减轻了应用程序的维护和修改负担。 数据库-绪论
… … 应用程序A 应用程序X 用户工作区 用户工作区 从数据库中读取记录的过程 用户 A 用户 X 子模式A 子模式X 系统缓冲区 DBMS 模式 OS 物理模式 DB 从数据库中读取记录的过程
本章要点回顾 数据、数据库、数据库系统、数据库管理系统的概念; 数据库系统管理数据的特点 了解数据模型的要素:数据结构、数据操作、数据的 完整性约束;了解概念模型的有关术语:实体、属性、 码、域、实体型、实体集、联系,E-R图表示;了解 数据模型的概念和种类; 理解数据库系统的模式结构,了解模式、数据独立性 的概念 了解数据库管理系统的功能(6方面功能)和组成(4 部分) 数据库-绪论
作 业 习题9 ( 教材 page 36) 数据库-绪论