Download presentation
Presentation is loading. Please wait.
1
江西财经大学《数据库应用》精品课程组 2011年 lish@jxufe.edu.cn Comments are welcome!
2
教材和参考书目 教材: 参考书目: 黎升洪:Access数据库应用与VBA编程[M].北京:铁道出版社,2011.
黎升洪, 杨波, 沈波. Visual FoxPro面向对象程序设计教程 第二版[M]. 北京: 科学出版社, 2007. [2]万常选,凌传繁,曾雅琳.数据库应用.北京:中国商业出版社.
3
教材和参考书目
4
成绩评定方法 平时成绩占总评10% 实验成绩占总评30% 期末占总评60%。
5
相关网站与搜索 资料搜索:
6
第一章 数据库系统概论 数据库技术 数据模型 关系数据库 数据库系统应用模式
7
本章概要 数据库系统的功能 关系数据库的核心概念(主、外键) 数据库模式的概念 关系数据库的概念建模(E-R模型) 关系操作
关系完整性约束(实体完整性、参照完整性)
8
1.1 数据库技术 信息与数据 数据处理 数据库系统
9
1.1.1 信息与数据 数据:是记录现实世界中各种信息并可以识别的物理符号,是信息的载体,是信息的具体表现形式。
数据含义的广义性:字符(文字和符号)、图表(图形、图像和表格)及声音等。
10
信息与数据 数据有两方面的特征: 例如:“一匹马”这个信息,我们可以表示为数据 1 或者 数据的形式(符号)。(语法)(“1”)
或者 数据有两方面的特征: 数据的形式(符号)。(语法)(“1”) 数据的内容(含义)。(语义)( “一匹马”)
11
1.1.2 数据处理(1) 计算机四大应用 数据处理:工资系统、人口管理、学籍管理等等,占计算机应用的95%。
科学计算:有限元分析、建筑结构力学计算等。 过程控制:炉窑自动温度控制等。 辅助设计:家装CAD、CIMS(计算机集成制造系统)等等。
12
1.1.2 数据处理(2) 数据处理实际上是指利用计算机对各种形式的数据进行一系列的存储、加工、计算、分类、检索、传输等处理。
13
1.1.2 数据处理(3) 主要技术:数据库技术 数据库技术:关系数据库 关系数据库:多种类型数据库 企业(大型)级:
DB2(IBM)、ORACLE(ORACLE) 工作组级:SQL SERVER(MS)、MySQL 个人(桌面)级:Access、VFoxPro、SQLite3
14
1.1.3 数据库系统 数据库的概念 数据库的发展 数据库的特征 数据库的构成
15
1. 数据库的概念(1) 数据库( Database或Data Base,简称DB )是存放在外存上并通过数据库管理系统(Database Management System,简称DBMS )来存取和访问、管理的数据集中地。 … … … … DB文件
16
1. 数据库的概念(2) DBS=DB+DBMS+DBA DBS DB文件 DBMS
17
1. 数据库的概念(3) DB:以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。
DBMS:DBS的核心。为数据库的建立、使用、维护的软件。 DBMS提供用户对DB进行操作的各种命令:(DB的建立、记录的输入、修改、检索、显示、删除和统计等) DBA:数据库管理员(Administrator)
18
数据库角色 目标: 关系数据库 管理员 所必须具备 的基础知识。
19
2.数据库的发展-数据库系统(1) 时间: 背景: 特点: 20世纪60年代后期 计算机应用于社会各个领域 数据共享性高; 数据冗余度小
数据与程序的独立性高
20
2.数据库的发展-数据库系统(2) DBMS DB 应用程序1 应用程序2 应用程序n …
21
3. 数据库的特征 数据结构化 实现数据共享 减少数据冗余度 数据独立性 统一的数据安全保护
22
4. 数据库的构成 数据库:核心和管理对象 物理存储设备:大容量的存储器 数据库软件:核心是数据库管理系统(DBMS)
23
1.2 数据模型(1) 人类思维的方式 数据模型是数据库系统中用于提供信息表示和操作手段的形式构架(模型)。
抽象:忽略不必要的细节、突出主要的问题,建立易于理解的模型来描述。 分治:将大、复杂的问题分解为小、简单的问题,分而制之。通过组合来解决问题。 数据模型是数据库系统中用于提供信息表示和操作手段的形式构架(模型)。
24
1.2 数据模型(2) 二种数据模型 概念模型:它用来描述某一特定范围内人们所关心的信息结构。面向人,按用户的观点来对数据和信息建模,主要用于数据库设计。不涉及信息在计算机中如何表示,独立于计算机实现之外的模型,如实体—联系(E-R)模型。
25
1.2 数据模型(3) 基本数据模型:直接面向计算机的,是按计算机系统的观点对数据进行建模,主要用于DBMS的实现。
基本数据模型有网状模型、层次模型和关系模型。
26
1.2 数据模型(4) 数据抽象过程
27
1.2.1 数据模型的三要素 数据结构 数据操作 数据的约束条件
28
1.2.1 数据模型的三要素 数据结构 数据结构是所研究对象和对象具有的特性、对象间的联系的集合,它是对数据静态特性的描述。这些对象是数据库的组成部分。如关系模型中的域、属性、关系等。 在数据库系统中,通常按照数据结构的类型来命名数据模型,如层次结构、网状结构和关系结构的模型分别命名为层次模型、网状模型和关系模型。
29
1.2.1 数据模型的三要素 数据操作 数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
通常对数据库的操作有检索和更新(包括插入、删除和修改)两大类,这些操作反映了数据的动态特性,因为现实世界中的实体及实体间的联系是在不断变化的,数据模型应能反映出这种变化。
30
1.2.1 数据模型的三要素 数据的约束条件 数据的约束条件是完整性规则的集合。
完整性规则是指给定的数据模型中数据及其联系必须满足给定的要求。
31
1.2.2 概念模型与实体-联系方法 信息世界中的基本概念 概念模型表示方法
32
信息世界中的基本概念 实体(Entity) 实体集(Entity Set) 实体型(Entity Type) 属性(Attribute)
关键字(Key) 域(Domain) 联系(Relationship) 联系的三种类型
33
1)实体(Entity) 客观存在并可相互区别的事物称为实体。 实体可以是具体的人、事、物,也可以是抽象的概念或联系。
例如,一个具体学生、一门具体课等都是实体。
34
2)实体集(Entity Set) 性质相同的同类实体的集合称为“实体集”,也称为实体整体。
如所有的(全体)学生、全体所有的汽车、所有的学校、所有的课程、所有的零件都称为实体集。
35
3)实体型(Entity Type) 具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
事物的若干属性值的集合可表征一个实体,而若干个属性型所组成的集合可表征一个实体的类型,简称为“实体型”。 同类型的实体集合组成实体集。 问题:上述三个概念的同异的地方? 答:概念的范畴不同,实体是个体;实体集是集合;实体型是相同实体的抽象,例如:学生是实体型,而王滨是一个具体的学生(为实体)。
36
4)属性(Attribute) 实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如学生实体可以由学号、姓名、性别、出生年份、系、入学时间等属性组成。 属性有“型”和“值”的区分,如学生实体属性的名称:姓名、性别、年龄等是属性的型,而属性的值是其型的具体内容,如王源、男、18分别是姓名、性别、年龄的值。
37
问题: 实体和属性同样为名词,如何区分它们?
答:没有唯一的标准,取决于你是如何建立模型的,模型的解释是否合理。即对同一个名词,你在一处地方解释为属性,那么其它地方必须解释为属性。否则自相矛盾。
38
5)关键字(Key) 能唯一标识实体的属性(或属性组合)称为关键字(或码)。例如学号是学生实体的关键字(码)。
本书将混用关键字和码这两个概念。
39
6)域(Domain) 属性的取值范围称为该属性的域。 例如,学号的域为8位数字符号,年龄的域为小于128的整数,性别的域为(男,女)。
40
7)联系(Relationship) 在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。 实体内部的联系通常是指组成实体的各属性之间的联系。 实体之间的联系通常是指不同实体集之间的联系。
41
8)联系的三种类型 一对一联系(1 : 1) 一对多联系(1 : n) 多对多联系(m : n)
42
一对一的联系(1 : 1) 实体集A中的一个实体至多与实体B中的一个实体相对应,反之亦然。
如一个学校只能有一个校长,一个校长也只能在一个学校任职,则学校与校长的联系即为一对一的联系,还有班长与班、学生与座位之间也都是一对一的联系。
43
一对多联系(1 : n ) 实体集A中的一个实体与实体B中的多个实体相对应,反之亦然。
如一个班级可以有多个学生,而一个学生只会有一个班级,班级与学生的联系即为一对多的联系。 一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。
44
多对多联系(m : n) 实体集A中的一个实体至多与实体B中的一个实体相对应,实体集B中的一个实体至多与实体 A中的一个实体相对应。
如一门课程可以有多个学生选修,而一个学生同时可以选修多门课程,课程与学生的联系即为多对多的联系。
45
2. 概念模型的表示方法(1) 实体联系模型(Entity-Relationship Model)。E-R图提供了实体、属性与联系的方法。
46
2. 概念模型的表示方法(2) E-R模型例子(1) 1 n 班级 学生 组成 n m 学生 课程 选修 1 学校 校长 管理 一对多模型
一对一模型 一对多模型 多对多模型
47
班级、学生和课程对应的E-R图(省略了部分属性)
2. 概念模型的表示方法(3) E-R模型例子(2) 班级、学生和课程对应的E-R图(省略了部分属性)
48
1.2.3 数据模型 层次模型( Hierarchical Model) 网状模型(Network Model)
关系模型(Relational Model) 面向对象模型(Object Oriented Model)
49
1.3 关系数据库 关系模型 关系完整性约束
50
1.3.1 关系模型 关系的基本特点 关系的操作 关系模型的优点
51
1. 关系模型的基本概念(1) 关系数据库系统是支持关系数据模型的数据库系统。 学习Access理由: 免费的关系数据库系统 简单、易学习。
MySQL SQLite 学习Access理由: 简单、易学习。 具备关系数据库系统的基本概念。 缺点:商业版权的桌面级数据库
52
1. 关系模型的基本概念(2) (1)关系 一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。 学号 姓名 性别 出生 日期 成绩 民族 籍贯 班号 贷款否 简历 照片 S 刘嘉美 女 670 汉族 北京 会计学101 Yes S 石茂麟 男 浏阳 会计学081 No S 王莉莉 642 龙岩 与技术101 S 郭玉坤 壮族 百色 S 吴静婷 南昌 S 叶志威 喀什 计算机081 S 张小东 623 长春 会计学091 …
53
本书使用的关系模型
54
待解释关系模型关键词 关系名 属性 主键 外键
55
本书使用的关系表 四张贯穿教案的数据表,“班级表”、“学生表”、“课程表”和“成绩表”。
问题:此模式图中成绩表设计有悖于我们通常的理解,如何解释? 数据库模式设计需要复杂的数学知识,称为数据库范式理论(Normal Formula Theory)。如同博客中95%的看客,5%的写客一样,数据库模式的设计为专业人员工作。 只需会使用即可。
56
班级表 班号 学院 专业 年级 人数 班主任 会计学081 会计学院 会计学 2008 会计学091 2009 会计学101 2010
计算机科学与技术081 信息管理学院 计算机科学与技术 计算机科学与技术091 计算机科学与技术101
57
学生表 学号 姓名 性别 出生 日期 成绩 民族 籍贯 班号 贷款否 简历 照片 S0102590 刘嘉美 女 1991-8-10 670
汉族 北京 会计学101 Yes S 石茂麟 男 湖南浏阳 会计学081 No S 王莉莉 642 福建龙岩 计算机101 S 郭玉坤 壮族 广西百色 S 吴静婷 江西南昌 S 叶志威 新疆喀什 计算机081 S 张小东 623 吉林长春 会计学091 …
58
课程表 课程号 课程名 简称 学分 课时 课程简介 A0101 计算机引论 jsjyl 5 32 A0301 数据结构 sjjg 4 64
Java程序设计 javacxsj B0101 基础会计 jckj 48 B0301 会计电算化 kjdsh B0501 税法 sf C0101 大学英语I dxyyI 6 C0301 线性代数 xxds C0501 高等数学III gdsxIII
59
成绩表 学号 课程号 成绩 S A0501 63 C0501 74 S 78 70 S S 75 S 67 …
60
班级表属性数据类型 数据表属性数据类型功能 确定具有的运算 其常量表示方法
61
学生表属性数据类型
62
课程表属性数据类型
63
成绩表属性数据类型
64
1. 关系模型的基本概念(3) (2)元组 (3)属性 二维表的每一行在关系中称为元组。在Access中,一个元组对应表中一个记录。
65
1. 关系模型的基本概念(4) (4)域 属性的取值范围称为域。域作为属性值的集合,其类型与范围由属性的性质及其所表示的意义具体确定。同一属性只能在相同域中取值。
66
1. 关系模型的基本概念(5) (5)关键字 关系中能唯一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。单个属性组成的关键字称为单关键字,多个属性组合的关键字称为组合关键字。需要强调的是,关键字的属性值不能取“空值”。所谓空值就是“不知道”或“不确定”的值,因而空值无法唯一地区分、确定元组。
67
1. 关系模型的基本概念(6) (6)候选关键字 (7)主关键字(Primary Key--PK)
关系中能够成为关键字的属性或属性组合可能不是唯一的。凡在关系中能够唯一区分、确定不同元组的属性或属性组合,称为候选关键字。 (7)主关键字(Primary Key--PK) 在候选关键字中选定一个作为关键字,称为该关系的主关键字。关系中主关键字是唯一的。
68
1. 关系模型的基本概念(7) (8)外部关键字(Foreign Key--FK) (9)关系模式
关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,称此属性或属性组合为本关系的外部关键字。关系之间的联系是通过外部关键字实现的。 外键功能用来实现表间约束。 (9)关系模式 对关系的描述称为关系模式,其格式为: 关系名(属性名1,属性名2,…,属性名n)
69
2. 关系的基本特点(1) 在关系模型中,关系具有以下基本特点: (1)关系必须规范化,属性不可再分割。
规范化是指关系模型中每个关系模式都必须满足一定的要求,最基本的要求是关系必须是一张二维表,每个属性值必须是不可分割的最小数据单元,即表中不能再包含表。 (2)在同一关系中不允许出现相同的属性名 Access不允许同一个表中有相同的字段名。
70
2. 关系的基本特点(2) (3)关系中不允许有完全相同的元组。
(4)在同一关系中元组的次序无关紧要。也就是说,任意交换两行的位置并不影响数据的实际含义。 (5)在同一关系中属性的次序无关紧要。任意交换两列的位置也并不影响数据的实际含义,不会改变关系模式。
71
3. 关系的操作(1) 和算术运算一样。 关系运算中,关系作为操作数,关系运算符作为操作符。关系运算的结果是一个新的关系。
如:1+2=3中 1、2为操作数,+为操作符。结果为操作数。 关系运算中,关系作为操作数,关系运算符作为操作符。关系运算的结果是一个新的关系。 关系作为一张二维表,其可进行的操作包括:选择、投影、自然联接。
72
3. 关系的操作(2) 关系操作根据参与操作的数据表分为: 一元操作符:仅一个数据表参与操作 二元操作符:有二个数据表参与操作
73
3. 关系的操作(3) 选择操作和投影操作为一元操作符 1.选择操作 2.投影操作
给定一个关系,从中筛选出满足某种条件的记录(或元组)的过程称为选择。 如下图所示的选择操作是所有少数民族的学生 2.投影操作 给定一个关系,从中只检索期望得到的字段(或属性)的过程称为投影。 如下图所示的投影操作是从学生表得到只有三个字段(学号、姓名、入学成绩)的关系。
75
3. 关系的操作(3) 自然联接操作要求二个关系参与运算,即为二元操作符。 前提条件
通常这二个关系中,有一个公共的属性(称为联接属性),在一个关系(称为一表)中它是主键,而在另一个关系(称为多表)中它是外键。如 “班级表”(一表)中主键是班级号,而班级号在“学生表”(多表)中是外键。
76
3. 关系的操作(4) 自然联接操作的结果: 在属性上是二个参与运算关系的属性叠加;
在元组上是在多表元组的记录基础上,扩展联接属性相同时的一表对应的数据值。即以多表为准。
77
3. 关系的操作(5) 自然联接的结果 前提条件:二个表间存在一个外键约束。 学生表 姓名 性别 班级表 出生日期 班级号 专业名称
少数民族否 班级号 籍贯 入学成绩 简历 照片 班级表 班级号 专业名称 年级 班主任姓名 所在学院 班级人数
78
3. 关系的操作(6) 自然的等值联接的结果集仍是一个关系 该关系的属性(字段)是两个关系的叠加; 该关系的元组(记录)是以多表为准。
学生表 姓名 性别 出生日期 少数民族否 班级号 籍贯 入学成绩 简历 照片 自然的等值联接的结果集仍是一个关系 该关系的属性(字段)是两个关系的叠加; 该关系的元组(记录)是以多表为准。 班级表 班级号 专业名称 年级 班主任姓名 所在学院 班级人数 专业名称 年级 班主任姓名 所在学院 班级人数
79
4. 关系模型的优点 关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。
关系模型的概念单一,无论实体还是实体之间的联系都用关系表示。对数据的检索结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。 关系模型的存取路径对用户透明(用户无需关心数据存放路径),从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
80
1.3.2 关系完整性约束 实体完整性 参照完整性 域完整性 用户定义完整性
81
1.实体完整性 实体完整性是指一个关系中不能存在两个完全相同的记录。一个关系对应现实世界中一个实体集。
实体完整性是通过关系的主关键字(PK)来实现的。应具有某种唯一性标识。 注意:主关键字(主属性)不能取“空值”。否则,表明关系模式中存在着不可标识的实体(因空值是“不确定”的),这与“唯一性标识”相矛盾。
82
2. 参照完整性 是二个表之间的约束。 参照完整性是指多表外部关键字的取值必须与一表中某元组主关键字的值相同,否则违反了参照完整性约束。 使用FK实现
83
问题 如何理解实体完整性和参照完整性? 1.具备完整性检查功能的数据库是具备行为能力的数据库,如果插入(修改)的元组违反定义的完整性则数据库系统将不会执行插入(修改)操作。 2.检查是否违法实体(参照)完整性的情况: 实体完整性:涉及一个数据表,其不存在主键值相同的两个元组。 参照完整性:涉及二个数据表,参照完整性是指多表外部关键字的取值必须与一表中某元组主关键字的值相同。
84
3.域完整性 域完整性是指取值范围必须满足的约束条件。
例如,学生表中的“出生年月”字段,你可以对该字段使用域完整性约束,要求年龄在12到70岁之间,在此范围之外的年龄数据都违法了域完整性要求,数据库将不允许数据进行插入或更新操作。
85
4.用户定义完整性 用户定义完整性是指针对某一具体业务规则提出的关系数据库必须满足的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
86
4.用户定义完整性2 例如,有二个数据表, 其中一个数据表A的某个属性X存放明细内容; 另一个数据表B存放属性X的求和值,
则数据表B中存放的求和值必须等于数据表A中属性X的求和值,否则数据表B中的求和值就没有意义。 用户定义完整性由于涉及一些复杂的应用领域知识的表示问题,在现有数据库系统中实现功能上不是很完美。
87
本书使用的关系模型
88
本书使用的关系模型 小钥匙表示主键 表间连线表示参照完整性 标记“1”表示一 标记“∞”表示多
89
1.4 数据库系统应用模式(1) 客户/服务器 应用模式Client/Server System-C/S) 银行一人服务台
90
1.4 数据库系统应用模式(2) 浏览器/服务器应用模式(Browser/Server System-B/S) 目前流行的方式
网上逃犯追查系统 选课系统 学籍系统
91
小结 关系 元组 主键 外键 实体完整性 参照完整性 投影、选择 自然联接
Similar presentations