Download presentation
Presentation is loading. Please wait.
1
江西财经大学《数据库应用》精品课程组 2015年 钟敏娟 lucyzmj@163.com Comments are welcome!
2
第一章 数据库系统概论 数据库技术 数据模型 实体-联系模型 关系数据库 E-R图与关系数据库设计 数据库系统应用模式
3
第一章 数据库系统概论 数据库技术 数据模型 实体-联系模型 关系数据库 E-R图与关系数据库设计 数据库系统应用模式
4
1.1 数据库技术 信息与数据 数据库系统
5
1.1.1 信息与数据 数据:是记录现实世界中各种信息并可以识别的物理符号,也是计算机介质上记录和存储的与对象和事件的相关事实。
比如,在销售员的数据库中,数据将包括诸如顾客姓名、地址以及电话号码等事实-结构化数据 数据库中还可以存储文档、电子邮件、地图、照片、声音和视频片段等对象-非结构化数据或多媒体数据。
6
1.1.1 信息与数据 信息:数据所包含的意义。 信息向人们提供有关现实事物的知识;数据是承载信息的物理符号。
信息可以用不同形式的数据来表示,不随数据形式的改变而改变。 例如:事实列表 姓名 ID号 Baker, Kenneth D Doyle, Joan E Finkle, Clive R Lewis, John C McFerran, Debra R Baker, Kenneth D Doyle, Joan E Finkle, Clive R Lewis, John C McFerran, Debra R 数据 信息
7
1.1.2 数据库系统 数据库的概念 数据库的发展 数据库的特征 数据库的构成
8
1. 数据库的概念 数据库(Database或Data Base,简称DB):存储数据的仓库。
数据库管理系统(Database Management System, DBMS)是管理数据库的计算机系统,提供用户对DB进行操作的各种命令:DB的建立、记录的输入、修改、检索、显示、删除和统计等 数据库是存放在外存上并通过数据库管理系统(Database Management System,简称DBMS)来存取和访问、管理的数据集中地。 DB文件 … … … …
9
1. 数据库的概念 数据库系统( Database Systems,简称DBS ):数据库及其管理软件组成的系统。
DBS=DB+DBMS+DBA DB文件 DBMS DBA:数据库管理员(Administrator):负责数据库的设计、建立、执行和维护,以及应用程序开发。
10
数据库角色 数据库软件开发商 负责数据库软件开发工作 数据库管理员 负责应用程序的开发工作 普通用户
负责日常事务处理软件的操作 本书的目标就是成为关系数据库管理员所必须具备的基础知识。
11
2. 数据库的发展 人工管理阶段 文件管理系统阶段 数据库系统阶段
12
2.数据库的发展-人工管理阶段 人工管理阶段 20世纪50年代中期以前的这段时间。
计算机还很简陋,外部存储器只有磁带、卡片和纸带等,尚没有完整的操作系统,主要应用于科学计算。 数据是面向应用程序的,一个数据集只能对应于一个程序。 数据需要由应用程序自己定义和管理,没有相应的软件系统专门负责数据的管理工作。 当多个应用程序涉及某些相同的数据时,必须由各自的应用程序分别定义和管理这些数据,无法共享利用,因此存在大量冗余数据。 应用程序1 应用程序2 应用程序n … 数据集1 数据集2 数据集n 图1-1 人工管理阶段应用程序与数据 之间的对应关系
13
2.数据库的发展-文件系统阶段 文件系统阶段 20世纪50年代后期到60年代中期的这段时间。计算机除了应用于科学计算外,已开始应用于数据管理。 磁盘、磁鼓等直接存取存储设备出现,在操作系统之上建立的文件系统已经成熟并广泛应用,数据由专门的软件进行统一管理。 对于一个特定的应用,数据被集中组织存放在多个数据文件(以后简称为文件)或文件组中,并针对该文件组来开发特定的应用程序。 利用“按文件名访问,按记录进行存取”的管理技术,可以对文件进行记录的修改、插入和删除等操作。 文件系统阶段程序与数据之间的关系如图1-2所示。 存取 方法 应用程序1 应用程序2 应用程序n … 文件组1 文件组2 文件组n 图1-2 文件系统阶段应用程序与数据 之间的对应关系
14
供应部门 会计部门 工资部门 记帐系统 工资系统 供应系统 家具公司的文件处理系统 程序A 程序B 程序C 程序A 程序B 程序A 程序B
客户 主文件 库存 主文件 延期交货文件 价格清单文件 客户主文件 雇员主文件 家具公司的文件处理系统
15
2.数据库的发展-文件系统阶段 文件系统阶段缺陷
程序-数据依赖性:文件描述存储在访问该文件的每个数据库应用程序中,对任何一个文件结构的改变,都需要对访问该文件的所有程序中的文件描述进行修改。 数据冗余:应用通常是在文件处理系统中独立地开发,无计划的数据冗余文件的出现就成为必然而不是偶然。 有限的数据共享:在传统的文件处理方法中,每个应用都有自己的私有文件,用户几乎没有机会共享自己应用之外的数据。管理人员经常发现所需要的报告需要很大的编程工作量,因为数据必须从来自多个独立系统的互不兼容的文件中抽取。
16
图1-3 数据库管理系统阶段应用程序与数据之间的对应关系
2.数据库的发展-数据库系统阶段 数据库管理系统阶段 20世纪60年代后期以来 数据管理对象的规模越来越大,应用范围越来越广,多种应用共享数据的要求越来越强烈 数据库管理系统(DBMS)是由一个相互关联的数据的集合和一组用以访问、管理和控制这些数据的程序组成 这个数据集合通常称为数据库(database, DB),其中包含了关于某个企业信息系统的所有信息 DBMS是位于用户与操作系统之间的一层数据管理软件,它提供一个可以方便且高效地存取、管理和控制数据库信息的环境 DBMS和操作系统一样,都是计算机的基础软件,也是一个大型复杂的软件系统 应用程序或用户1 应用程序或用户2 应用程序或用户n … 数据库 图1-3 数据库管理系统阶段应用程序与数据之间的对应关系 管理系统
17
3.数据库的特征 数据结构化。数据库管理系统实现数据的整体结构化,这是数据库的主要特征之一,也是数据库管理系统与文件系统的本质区别
一是指数据不仅仅是内部结构化,而是将数据以及数据之间的联系统一管理起来,使之结构化。 图1-4 学生、课程、学生成绩文件结构 姓名 性别 学号 出生日期 所学专业 家庭住址 联系电话 学生文件Student的记录结构 课程号 课程名称 教材名称 学时 学分 课程文件Course的记录结构 学期 成绩 学生成绩文件Score的记录结构
18
3.数据库的特征 图1-5 某校信息管理系统中的学生数据 姓名 性别 学号 出生日期 所学专业 … 学生基本情况 课程号 课程名称 课程 学期 成绩 学生成绩 日期 管理员 学生学籍注册 奖惩条目 学生奖惩 序号 与本人关系 学生家庭成员 成员姓名 详细情况 学生缴费 金额 二是指在数据库中的数据不是仅仅针对某一个应用,而是面向全组织的所有应用。 例如,一个学校的信息系统中不仅要考虑教务处的学生成绩管理,还要考虑学生处的学籍注册管理、学生奖惩管理、学生家庭成员管理,以及财务处的学生缴费管理;同时还要考虑研究生院的研究生管理、科研处的科研管理、人事处的教职工人事管理和工资管理等。 因此,学校信息系统中的学生数据要面向全校各个职能管理部门和院系的应用,而不仅仅是教务处的一个学生成绩管理应用。
19
3.数据库的特征 数据的共享度高,冗余度底,易扩充 数据独立性高
数据库管理系统从整体角度描述和组织数据,数据不再是面向某个应用,而是面向整个系统 因此,数据可以被多个用户、多个应用共享使用 数据共享可以大大减少数据的冗余,避免数据之间的不一致性 数据独立性高 数据库技术中的数据与操作这些数据的应用程序相分离,称为数据独立性。数据与应用程序不因一方的改变而改变,比如,数据不会随应用程序的结束而消失,可长期保留在计算机系统中。
20
3.数据库的特征 数据由数据库管理系统统一管理和控制 数据的安全性保护:保护数据以防止不合法的使用造成数据的泄密和破坏
数据的完整性检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系 并发控制:对多个用户或应用同时访问同一个数据的并发操作加以控制和协调,确保得到正确的修改结果或数据库的完整性不遭到破坏 数据库恢复:当计算机系统发生硬件或软件故障时,需要将数据库从错误状态恢复到某一已经正确状态
21
第一章 数据库系统概论 数据库技术 数据模型 实体-联系模型 关系数据库 E-R图与关系数据库设计 数据库系统应用模式
22
1.2 数据模型 数据库结构的基础是数据模型(data model) 通过数据模型可以对现实世界的数据特征进行抽象
根据数据抽象的不同级别,将数据模型划分为3类: 概念模型:概念层次的数据模型,也称为信息模型 逻辑模型:用于描述数据库数据的整体逻辑结构 物理模型:用来描述数据的物理存储结构和存取方法
23
1.2 数据模型-概念模型 独立于计算机系统的数据模型,它完全不涉及信息在计算机中的表示,只是用来描述某一特定范围内人们所关心的信息结构。
概念模型按用户的观点来对数据和信息建模,主要用于数据库设计。 概念模型与具体的DBMS无关,数据库设计人员在设计的初始阶段,可以集中精力分析数据以及数据之间的联系。 最常用的概念模型是实体—联系(E-R)模型。
24
1.2.1 概念模型 信息世界中的基本概念 实体 实体集(Entity Set) 实体型(Entity Type)
属性(Attribute) 关键字(Key) 域(Domain) 联系(Relationship) 联系的三种类型
25
实体(Entity) 客观存在并可相互区别的事物称为实体。 实体可以是具体的人、事、物,也可以是抽象的概念或联系。
例如,一个具体学生、一门具体课等都是实体。
26
实体集(Entity Set) 性质相同的同类实体的集合称为”实体集”,也称为实体整体。
如所有的(全体)学生、全体所有的汽车、所有的学校、所有的课程、所有的零件都称为实体集。
27
实体型(Entity Type) 具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
例如,学生(学号,姓名,性别,出生年份,系,入学时间)是一个实体型; 问题:上述三个概念的同异的地方? 答:概念的范畴不同,实体是个体;实体集是集合;实体型是相同实体的抽象,例如:学生是实体型,而王滨是一个具体的学生(为实体)。 答:概念的范畴不同。实体是个体,实体集是集合,实体型是相同实体的抽象。
28
属性(Attribute) 实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如学生实体可以由学号、姓名、性别、出生年份、系、入学时间等属性组成。 属性有“型”和“值”的区分,如学生实体属性的名称:姓名、性别、年龄等是属性的型,而属性的值是其型的具体内容,如王源、男、18分别是姓名、性别、年龄的值。 事物的若干属性值的集合可表征一个实体,而若干个属性型所组成的集合可表征一个实体的类型,简称“实体型”。
29
关键字(Key) 能唯一标识实体的属性(或属性组合)称为关键字(或码)。例如学号是学生实体的关键字(码)。 本书将混用关键字和码这两个概念。
30
域(Domain) 属性的取值范围称为该属性的域。 例如,学号的域为8位数字符号,年龄的域为小于128的整数,性别的域为(男,女)。
31
联系(Relationship) 在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。 实体内部的联系通常是指组成实体的各属性之间的联系。 实体之间的联系通常是指不同实体集之间的联系。 联系的三种类型 一对一联系(1 : 1) 一对多联系(1 : n) 多对多联系(m : n)
32
一对一的联系(1 : 1) 实体集A中的一个实体至多与实体B中的一个实体相对应,反之亦然。
如一个学校只能有一个校长,一个校长也只能在一个学校任职,则学校与校长的联系即为一对一的联系,还有班长与班、学生与座位之间也都是一对一的联系。
33
一对多联系(1 : n ) 实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体最多与实体集A中的一个实体相对应。
如一个班级可以有多个学生,而一个学生只会有一个班级,班级与学生的联系即为一对多的联系。 一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。
34
多对多联系(m : n) 实体集A中的一个实体与实体B中的多个实体相对应,实体集B中的一个实体与实体 A中的多个实体相对应。
如一门课程可以有多个学生选修,而一个学生同时可以选修多门课程,课程与学生的联系即为多对多的联系。
35
概念模型的表示方法-实体联系模型 (Entity-Relationship Model)
E-R图提供了实体、属性与联系的方法。 E-R使用的符号如下
36
概念模型的表示方法 E-R模型例子(1) 1 n 班级 学生 组成 n m 学生 课程 选修 1 学校 校长 管理 一对多模型 多对多模型
一对一模型 一对多模型 多对多模型
37
班级、学生和课程对应的E-R图(省略了部分属性)
概念模型的表示方法 E-R模型例子(2) 班级、学生和课程对应的E-R图(省略了部分属性)
38
1.2.2 数据模型-逻辑数据模型 直接面向计算机的,是按计算机系统的观点对数据进行建模,主要用于DBMS的实现。
39
逻辑数据模型的三要素 数据结构 数据操作 数据的约束条件
40
1.2.2 逻辑数据模型的三要素-数据结构 数据结构是描述数据库的组成对象(数据)以及对象之间的联系。这些对象是数据库的组成部分。如关系模型中的域、属性、关系等。 在数据库系统中,通常按照数据结构的类型来命名数据模型,如层次结构、网状结构和关系结构的模型分别命名为层次模型、网状模型和关系模型。
41
逻辑数据模型的三要素-数据操作 数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。 通常对数据库的操作有检索和更新(包括插入、删除和修改)两大类,这些操作反映了数据的动态特性,因为现实世界中的实体及实体间的联系是在不断变化的,数据模型应能反映出这种变化。
42
1.2.2.1 逻辑数据模型的三要素-数据的约束条件 数据的约束条件是完整性规则的集合。
完整性规则是指给定的数据模型中数据及其联系必须满足给定的要求。
43
1.2.2.2 基本数据模型 层次模型( Hierarchical Model) 网状模型(Network Model)
关系模型(Relational Model) 面向对象模型(Object Oriented Model)
44
层次模型 层次模型用树形结构来表示各类实体以及实体间的联系。
每个结点表示一个记录类型,记录(类型)间的联系用结点之间的连线表示。这种联系是父子之间的一对多的联系。 层次数据库只能处理一对多的实体联系。 图1-7 一个简单的教学管理系统的实例值 E0501 万家乐 数据库 Employee C01 2008 计算机 Class D05 计算机系 信息大楼 Department E0502 吴文君 信息检索 E0503 廖兴旺 操作系统 C02 2009 信息系统 Student S090204 王红敏 女 06/12/92 S090212 刘宏昊 男 09/25/91 S090228 李 立 02/18/92 S080125 李小勇 11/26/90 S080148 黄小红 05/21/91
45
层次模型 优点: 缺点: 模型本身比较简单,层次清楚,结构清晰 适用于描述客观存在的事物中主次分明的结构关系 不便于表示多对多的联系
对插入和删除操作的限制多 查询子女结点必须通过双亲结点 结构严密,层次命令趋于程序化
46
层次模型表示多对多联系,必须首先将其分解成一对多联系:冗余节点法。
47
网状模型 网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的一些限制,允许结点有一个以上的双亲,将“树结构”变成“图结构”。因此,网状模型可以更直接地去描述现实世界 层次模型是网状模型的一个特例。 学生 学号 姓名 … 课程号 课程名 … 课程 学生-选课 选课 学号 课程名 成绩 学生/选课课程的网状数据库模式
48
网状模型 优点: 缺点: 能够更为直接地描述现实世界,如一个结点可以有多个双亲 存取效率高
结构比较复杂,而且随着应用规模的扩大,数据库的结构会变得越来越复杂,不利于最终用户掌握 其数据定义语言,数据操纵语言复杂,不易使用 用户需了解系统结构细节,加重编写应用程序的负担
49
面向对象模型 对象是现实世界实体的模型化,类似于关系模型中的记录。每个对象都把对象的数据(属性的集合)和操作(程序)封装在一起,并有一个惟一的标识符。 是目前数据库中最有前途和生命力的模型。
50
1.2.3 数据模型-物理模型 物理模型 适用对象 认识 抽象 物理层是数据抽象的最低层
例如,一个数据库中的数据和索引是存放在不同的数据段上还是相同的数据段上;数据的物理记录格式是变长的还是定长的;数据是否压缩存储;索引结构是B+树还是Hash结构等 物理模型的具体实现是DBMS的任务,数据库设计人员要了解和选择物理模型,一般用户则不必考虑物理层细节 适用对象 从现实世界到概念模型的转换是由数据库设计人员完成 从概念模型到逻辑模型的转换可以由数据库设计人员完成,也可以用数据库设计工具协助设计人员完成 从逻辑模型到物理模型的转换一般由DBMS来完成 概念模型 信息世界 图1-6 现实世界中客观对象的抽象过程 现实世界 认识 抽象 DBMS支持的逻辑模型 DBMS支持的物理模型 逻辑机器世界 物理机器世界
51
第一章 数据库系统概论 数据库技术 数据模型 实体-联系模型 关系数据库 E-R图与关系数据库设计 数据库系统应用模式
52
1.3 实体-联系模型及E-R图 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。
53
3 实体-联系模型及E-R图 作图步骤: ⑴确定所有的实体集合 ⑵选择实体集应包含的属性 ⑶确定实体集之间的联系
⑷确定实体集的关键字,用下划线在属性上表明关键字的属性组合(不做强制要求,即不明确指出关键字亦可) ⑸确定联系的类型,在用线将表示联系的菱形框联系到实体集时,在线旁注明是1或n(多)来表示联系的类型
54
举例1:
55
举例2:
56
举例3:
57
举例4:
58
举例5:
59
课堂练习1: 某医院有若干病房,每个病房有若干病房医生和护士。医生要对若干住院病人负责。护士要听从医生的医嘱对病人进行处置,并对病人的病房分配及卫生状况进行管理。 请针对以上信息设计E-R图
60
课堂练习2: 某企业针对不同部门的不同岗位的员工进行课程培训。不同岗位的员工可能会使用不同的教材,可能会接受不同的教员的培训。教员一般是来自部门的中级管理人员。 请针对以上描述,绘制E-R图。实体可能包括部门、岗位、员工、课程、教材、教员。您也可以增加实体。 请确定实体间的关系,并为实体设计若干属性。
61
第一章 数据库系统概论 数据库技术 数据模型 实体-联系模型 关系数据库 E-R图与关系数据库设计 数据库系统应用模式
62
1.4 关系数据库 关系数据库系统是支持关系数据模型的数据库系统。 学习Access理由: 关系模型 关系的完整性约束 免费的关系数据库系统
MySQL SQLite 学习Access理由: 简单、易学习。 具备关系数据库系统的基本概念。 缺点:商业版权的桌面级数据库 关系模型 关系的完整性约束
63
常见的DBMS Oracle DB2 MySql Sybase Access 。。。。。。 注意:它们实际上是DBMS,不是DB
64
简要了解Access 是微软发布的关系型数据库管理系统,是Office套装中的系统软件。
是一种单机版图形界面的DBMS,支持SQL查询。 比较适合小型企业使用。 适用于小型数据库程序的开发。
65
1.4.1 关系模型--基本概念 关系 一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。
学号 姓名 性别 出生 日期 成绩 民族 籍贯 班号 贷款否 简历 照片 S 刘嘉美 女 670 汉族 北京 会计学101 Yes S 石茂麟 男 浏阳 会计学081 No S 王莉莉 642 龙岩 与技术101 S 郭玉坤 壮族 百色 S 吴静婷 南昌 S 叶志威 喀什 计算机081 S 张小东 623 长春 会计学091 …
66
本书使用的关系模型 课程表 成绩表 班级表 四张贯穿教案的数据表,“班级表”、“学生表”、“课程表”和“成绩表”。 课程号 课程名 简称
学分 课时 课程简介 A0101 计算机引论 jsjyl 5 32 A0301 数据结构 sjjg 4 64 A0501 Java程序设计 javacxsj B0101 基础会计 jckj 48 B0301 会计电算化 kjdsh B0501 税法 sf C0101 大学英语I dxyyI 6 C0301 线性代数 xxds C0501 高等数学III gdsxIII 学号 课程号 成绩 S A0501 63 C0501 74 S 78 70 S S 75 S 67 … 班号 学院 专业 年级 人数 班主任 会计学081 会计学院 会计学 2008 会计学091 2009 会计学101 2010 计算机科学与技术081 信息管理学院 计算机科学与技术 计算机科学与技术091 计算机科学与技术101
67
1. 关系模型的基本概念 元组 二维表的每一行在关系中称为元组。在Access中一个元组对应表中一个记录。 属性 二维表的每一列在关系中称为属性,每个属性都有一个属性名,属性值则是各个元组属性的取值。在Access中,一个属性对应表中一个字段,属性名对应字段名,属性值对应于各个记录的字段值。
68
1. 关系模型的基本概念 数据类型 班级表字段名称和类型 学生表字段名称和类型 课程表和成绩表的字段名称和类型
69
1. 关系模型的基本概念 域 属性的取值范围称为域。域作为属性值的集合,其类型与范围由属性的性质及其所表示的意义具体确定。同一属性只能在相同域中取值。
70
1. 关系模型的基本概念 关键字 关系中能唯一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。单个属性组成的关键字称为单关键字,多个属性组合的关键字称为组合关键字。需要强调的是,关键字的属性值不能取”空值”。所谓空值就是”不知道”或”不确定”的值,因而空值无法唯一地区分、确定元组。
71
1. 关系模型的基本概念 候选关键字 关系中能够成为关键字的属性或属性组合可能不是唯一的。凡在关系中能够唯一区分、确定不同元组的属性或属性组合,称为候选关键字。 主关键字(Primary Key--PK) 在候选关键字中选定一个作为关键字,称为该关系的主关键字。关系中主关键字是唯一的。
72
1. 关系模型的基本概念 外部关键字(Foreign Key--FK)
关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,称此属性或属性组合为本关系的外部关键字。关系之间的联系是通过外部关键字实现的。 外键功能用来实现表间约束。 关系模式 对关系的描述称为关系模式,其格式为: 关系名(属性名1,属性名2,…,属性名n)
73
2. 关系的基本特点 在关系模型中,关系具有以下基本特点: (1)关系必须规范化,属性不可再分割。 (2)在同一关系中不允许出现相同的属性名
规范化是指关系模型中每个关系模式都必须满足一定的要求,最基本的要求是关系必须是一张二维表,每个属性值必须是不可分割的最小数据单元,即表中不能再包含表。 (2)在同一关系中不允许出现相同的属性名 Access不允许同一个表中有相同的字段名。
74
2. 关系的基本特点 (3)关系中不允许有完全相同的元组。 (4)在同一关系中元组的次序无关紧要。也就是说,任意交换两行的位置并不影响数据的实际含义。 (5)在同一关系中属性的次序无关紧要。任意交换两列的位置也并不影响数据的实际含义,不会改变关系模式。
75
3. 关系的运算 和算术运算一样。 关系运算中,关系作为操作数,关系运算符作为操作符。关系运算的结果是一个新的关系。
如:1+2=3中, 1、2为操作数,+为操作符。结果为操作数。 关系运算中,关系作为操作数,关系运算符作为操作符。关系运算的结果是一个新的关系。 关系作为一张二维表,其可进行的操作包括:选择、投影、自然联接。
76
3. 关系的运算 关系操作根据参与操作的数据表分为: 一元操作符:仅一个数据表参与操作,比如选择和投影操作;
二元操作符:有二个数据表参与操作
77
3. 关系的运算 选择操作 给定一个关系,从中筛选出满足某种条件的记录(或元组)的过程称为选择。 如下图所示的选择操作是所有少数民族的学生
79
3. 关系的运算 投影操作 给定一个关系,从中只检索期望得到的字段(或属性)的过程称为投影。
如下图所示的投影操作是从学生表得到只有三个字段(学号、姓名、入学成绩)的关系。
81
3. 关系的运算 自然联接运算要求二个关系参与运算,即为二元操作符。 前提条件
通常这二个关系中,有一个公共的属性(称为联接属性),在一个关系(称为一表)中它是主键,而在另一个关系(称为多表)中它是外键。如 “班级表”(一表)中主键是班级号,而班级号在”学生表”(多表)中是外键。 学生表 姓名 性别 出生日期 少数民族否 班级号 籍贯 入学成绩 简历 照片 班级表 班级号 专业名称 年级 班主任姓名 所在学院 班级人数
82
3. 关系的操作 自然联接操作的结果: 结果集仍是一个关系 在属性上是二个参与运算关系的属性叠加;
学生表 姓名 性别 出生日期 少数民族否 班级号 籍贯 入学成绩 简历 照片 自然联接操作的结果: 结果集仍是一个关系 在属性上是二个参与运算关系的属性叠加; 在元组上是在多表元组的记录基础上,扩展联接属性相同时的一表对应的数据值。即以多表为准。 班级表 班级号 专业名称 年级 班主任姓名 所在学院 班级人数 专业名称 年级 班主任姓名 所在学院 班级人数
83
3. 关系的操作
84
4. 关系模型的优点 关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。
关系模型的概念单一,无论实体还是实体之间的联系都用关系表示。对数据的检索结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。 关系模型的存取路径对用户透明(用户无需关心数据存放路径),从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
85
1.4.2 关系完整性约束 实体完整性 参照完整性 域完整性 用户定义完整性
86
1.实体完整性 实体完整性是指一个关系中不能存在两个完全相同的记录。一个关系对应现实世界中一个实体集。
实体完整性是通过关系的主关键字(PK)来实现的。应具有某种唯一性标识。 注意:主关键字(主属性)不能取”空值”。否则,表明关系模式中存在着不可标识的实体(因空值是”不确定”的),这与”唯一性标识”相矛盾。
87
2. 参照完整性 是二个表之间的约束。 参照完整性是指参照 关系K中外部关键字的 取值必须与被参照关系 R中某元组主关键字的 值相同。
88
问题 如何理解实体完整性和参照完整性? 1.具备完整性检查功能的数据库是具备行为能力的数据库,如果插入(修改)的元组违反定义的完整性则数据库系统将不会执行插入(修改)操作。 2.检查是否违法实体(参照)完整性的情况: 实体完整性:涉及一个数据表,其不存在主键值相同的两个元组。 参照完整性:涉及二个数据表,参照完整性是指多表外部关键字的取值必须与一表中某元组主关键字的值相同。
89
3.域完整性 域完整性是指取值范围必须满足的约束条件。
例如,学生表中的“出生年月”字段,你可以对该字段使用域完整性约束,要求年龄在12到70岁之间,在此范围之外的年龄数据都违法了域完整性要求,数据库将不允许数据进行插入或更新操作。
90
4.用户定义完整性 用户定义完整性是指针对某一具体业务规则提出的关系数据库必须满足的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
91
4.用户定义完整性 例如,有二个数据表, 其中一个数据表A的某个属性X存放明细内容; 另一个数据表B存放属性X的求和值,
则数据表B中存放的求和值必须等于数据表A中属性X的求和值,否则数据表B中的求和值就没有意义。 用户定义完整性由于涉及一些复杂的应用领域知识的表示问题,在现有数据库系统中实现功能上不是很完美。
92
第一章 数据库系统概论 数据库技术 数据模型 实体-联系模型 关系数据库 E-R图与关系数据库设计 数据库系统应用模式
93
1.5 E-R图与关系数据库设计 E-R图用于表示信息世界的概念模型,是面向人的;用以帮助进行数据库设计。
关系模型,是表示计算机世界的数据模型,是面向计算机的。 现实世界信息世界计算机世界
94
1.5 E-R图与关系数据库设计 实际上,在实际应用中,数据库设计可分为三部分进行 概念结构设计:根据用户的需求设计概念模型
逻辑结构设计:将概念模型转化为DBMS支持的数据模型 物理结构设计:为数据模型设计合适的存储结构和存取方法。
95
1.5.1 E-R模型转化为关系模型 对于E-R图中的每一个实体,都应该转换为一个关系。该关系包括对应实体的全部属性。并应根据关系所表达的语义,确定哪个属性或属性组作为key。 一般实体的key,往往可直接作为关系的key。
96
1.5.1 E-R模型转化为关系模型 对于1:N联系,可将1方实体的 key放在N方实体所转化的关系中作为外键。
此种情况下,联系可不转化为关系。
97
1.5.1 E-R模型转化为关系模型 对于m:n联系,必须对每个联系单独建立一个关系,用来联系双方实体集。该关系的 属性,至少要 包括它所联系的双方实体集的主键。如果联系还有其他属性感,也要加入到这个关系中。
98
1.5.1 E-R模型转化为关系模型 对于1:1联系,可参考之前两种的转化方式,因此有两种转换方法
1)将联系与某一方实体所对应的关系合并,并要在合并的关系中增加属性:即联系的属性与另一方实体的主键 2)转换为独立的关系,该关系的属性包括各方实体的主键及联系本身的属性。且每个实体的主键都是该关系的候选关键字。
99
1.5.2 举例1:n 关系模式: 仓库(仓库号,地点,面积) 产品(产品号,产品名,价格,仓库号,数量)
100
1.5.2 举例n:m 书中的例子 n 拥有 家庭成员 1 选修 学生 课程 n m n 属于 成绩 1 班级
101
1.5.3 课堂作业 1:1 这个请同学们自己转换,将两种转换方法都写出来
102
1.5.3 课堂作业
103
1.5.3 课堂作业
104
实例:教学管理的E-R图转换成关系模式(以教师活动为例)
分析:假设有三个实体类型:系、教师、课程;四个联系类型:主管、聘用、任教和开设 第一步:将三个实体及其属性找出 系 (系编号,系名,电话) 教师 (教师编号,姓名,性别,职称) 课程 (课程编号,学分,课程名称) 第二步:联系 1:1联系:“主管”,可以理解为一个老师负责一个系,一个系职能被一个老师管理,在“系 ”模式中加入教师编号(教师编号为外键) ⑵ 1:N联系:“开设”,一个系可以开设多个课程,因此在“课程 ”模式中加入“系编号”(系编号为外键)。 (3) M:N联系:“教学”,一个老师可以教多门课程,一门课程也 可以被多名老师教。
106
实例:教学管理的E-R图转换成关系模式(以教师活动为例)
分析:假设有三个实体类型:系、教师、课程;四个联系类型:主管、聘用、任教和开设 第三步:将三个实体类型转换成三个模式 系 (系编号,系名,电话) 教师 (教师编号,姓名,性别,职称) 课程 (课程编号,学分,课程名称) 对于1:1联系“主管”,可以在“系”模式中加入教工号(教工号为外键,用波浪线表示); 对于1:N联系“聘用”,可以在“教师”模式中加入系编号和聘期两个属性(系编号为外键); 对于1:N联系“开设”,可以在“课程”模式中加入系编号(系编号为外键) 对于M:N联系“任教”,则生成一个新的关系模式: 教学 (教工号,课程号,教材)
107
整合后关系模式如下: 系 (系编号,系名,电话,教工号) 教师 (教工号,姓名,性别,职称,系编号,聘期) 课程 (课程号,课程名,学分,系编号) 任教 (教工号,课程号,教材)
108
第四步:依照关系模式创建表关联
109
第一章 数据库系统概论 数据库技术 数据模型 实体-联系模型 关系数据库 E-R图与关系数据库设计 数据库系统应用模式
110
1.6 数据库系统应用模式 客户/服务器应用模式 (Client/Server System-C/S)
工作群组中的每个成员都有一台计算机,这些计算机通过网络连接。 每台计算机上都有一种特定应用的拷贝,这种应用除了提供操纵数据的商业逻辑,还提供用户界面-----客户端 数据库自身以及DBMS存储在名为“数据库服务器”的中央设备中,该设备也与网络连接—服务器
111
1.6 数据库系统应用模式 目前流行的方式 浏览器/服务器应用模式(Browser/Server System-B/S) 网上逃犯追查系统
客户机采用浏览器,服务器端使用Web服务器; 客户机不存在安装维护; 软件发布和维护转移到Web服务器端; 目前流行的方式 网上逃犯追查系统 选课系统 学籍系统
112
1.6 数据库系统应用模式 C/S的优势是可以减轻服务器的压力,有些数据可以在客户端预处理。
B/S的优势是客户端的硬件条件可以降低,只要能流畅运行浏览器就可以,其一切的数据处理都在服务器完成,同时减少维护的费用和工作量,只需要在服务器维护就可以。
113
小结 关系 元组 主键 外键 实体完整性 参照完整性 投影、选择 自然联接
Similar presentations