河南中医药大学信息技术学院 王 昂...
TRANSCRIPT
河南中医药大学信息技术学院 王 昂
2019.02
第 2 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
第一章 数据库基础
主讲内容:数据库基础、MySQL、界面管理工具
第 3 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
第一章 教学内容
1. MySQL数据库介绍及安装配置
2. 数据库基础知识
① 数据库基础概念
② 数据模型
③ 关系数据库设计
3. 常用的界面管理工具
第 4 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
本节教学内容
1. 数据库基本概念
2. 数据模型
3. 关系数据库设计
第 5 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
1. 基本概念
• 数据(Data)
• 信息(Information)
• 数据库(Database)
• 数据库管理系统(DBMS)
• 数据库系统(DBS)
第 6 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 数据是数据库中存储的基本对象;
• 定义:事物的描述符号;
• 种类:数字、文本、图形、图像、声音等。
• 特点:数据与其语义是不可分的。
1.1.1 数 据
① 学生某门课的成绩
② 某人的体重
③ 产品的个数93
……
第 7 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
举 例
• 数据记录:(李明,198505,江苏南京市,计算机,2005);
• 语义:(学生姓名,出生年月,籍贯,院系名称、入学时间)
可理解为 :学生李明,1985年5月出生,江苏
南京市人,2005年考入计算机系;
第 8 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
1.1.2 信 息
• 学校根据学生的基本情况,对学生所提供的数据
进行综合分析,从而安排学生的班级、宿舍等;
• 这种经过加工后获得的有用的数据就是信息;
• 信息是数据经过加工处理后的有用数据结果。
• 特点:“有用”、“经过加工”。
第 9 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
数据与信息
餐厅午餐销售情况
烟熏猪柳饭一份 黑椒鸡排饭五份黑椒牛柳饭三份土豆烟肉饭两份茄汁鸡排饭七份
………………
中午最好卖的原来是鸡排饭
数据 信息
第 10 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
数据与信息
2015年 ¥1,000,0002016年 ¥1,500,0002017年 ¥2,000,000
2018年的预算要多少
数据 信息
每月的top5
每个学生的考试分数
每个班的平均成绩?
每个专业平均成绩?
书店图书的销售记录
第 11 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
我们需要存放在数据库中的是数据还是信息呢?
数 据
第 12 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
课下思考?
• 理解数据与信息的区别,并分别给出数据和信息的示例。
• 说明数据如何成为信息并给出一个示例。
• 列出学校收集的关于每个学生的特定数据。使用所有学
生数据可组成什么信息?
第 13 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
1.2 数据库
• 数据库(Database,简称DB)是指长期存储在计算机内、
有组织的、可共享的大量相关数据的集合。
定义:数据库中的数据按一定的数据模型组织、描述和
储存,具有较小冗余度、数据间联系紧密而又有较高的数
据独立性等特点。
第 14 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 在建立了数据库之后,下一个问题就是如何科学地组织和存储数据
,如何高效地获取和维护数据,完成这个任务的是一个系统软件—
—数据库管理系统。
• 数据库管理系统(Database Management System,简称DBMS)是位
于用户与操作系统之间的一层数据管理软件。数据库管理系统和操
作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
第 15 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
1.3 数据库管理系统
• 数据库管理系统(Database Management System,简称DBMS)
– 是一种操纵和管理数据库的软件,用于创建、使用和维护
数据库。
• DBMS的功能
– 数据库的定义功能 (DDL)
– 数据库的操纵功能 (DML)
– 数据库运行管理功能 (DCL)
第 16 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
(1)常见的DBMS
数据库管理系统的划分方式有哪些?
• 收费,免费?
• 国内,国外?
• 小型,大型?
第 17 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
目前广泛使用的数据库管理系统有:
• 国外:有Microsoft公司开发的Access、SQL Server,
Oracle公司的Oracle、MySQL,Sybase 公司开发的Sybase,
IBM公司开发的DB2等;
• 国内:中国人民大学开发的金仓Kingbase ES ,华中科技
大学开发的DM系统,天津南大通用Gbase 8a,东软集团
的OpenBASE 。
第 18 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
Access数据库• Access属于Office软件,是目前比较流行的小型桌面数据库
管理系统,通常小型网站使用这种数据库。
• 它适用于小型企业、学校、个人等用户,我们可以通过多种方式实现对
数据操作(如:收集、分类、筛选处理,提供用户查询或打印报表),
还可以可通过Internet网发布。
• 相比更加简单易学,一个普通的计算机用户即可掌握并使用它。而且最
重要的一点是,Access的功能足够强大,足以应付一般的数据管理及处
理需要。
第 19 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• SQL Server是Microsoft公司推出的中大型数据库管理系
统,它建立在成熟而强大的关系模型基础上,可以很好
地支持客户机/服务器模式及浏览器/服务器模式,能够
满足各种类型的企事业单位对构建网络数据库的需求,
并且在易用性、可扩展性、可靠性以及数据仓库等方面
确立了地位,是目前各级各类学校学习数据库管理系统
的首选。
SQL SERVER 数据库
第 20 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
ORACLE
• Oracle公司是仅次于微软的世界第二大软件公司
• 最“难”的数据库
• 跨平台,可运行在Windows NT、基于UNIX系统的小型
机、IBM大型机以及一些专用硬件操作系统平台。
• 例如:银行系统一般用ORACLE+UNIX 。
第 21 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
1.4 数据库系统• 数据库系统是指引入数据库后的计算机系统;一般由数据
库、数据库管理系统(及其开发工具)、应用系统、数据库
管理员和用户组成。
图 数据库系统的组成
… …
应用程序1
应用程序2
应用程序n
系统管理员数据库管理系统(DBMS)
数据库
用户
第 22 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 应用系统
– 根据不同用户的需要,采用与相关数据库接口的高级语言和编译
系统(如Visual Basic、VC、PB、Java)编写的应用程序,用以
处理用户的业务。
• 数据库管理员(Database Administrator,DBA)– DBA是指管理、维护数据库系统的人员,起着联络数据库系统与用
户的作用;
– 用户则是最终系统的使用者和管理人员。
– 大型数据库系统,一般配备专职DBA;微型计算机的数据库系统,
一般由用户自己承担DBA的角色。
第 23 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
1.5 数据库三级模式结构
• 在体系结构上数据库
系统采用三级模式结
构,并提供两级映像
功能。
应用A 应用B 应用C 应用D 应用E
外模式1
外模式2
外模式3
模式
数据库
内模式
内模式/模式映像
外模式/模式映像
第 24 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
2. 数据模型
• 数据库是长期储存在计算机内、有组织的、可共享的大量
相关数据的集合。
• 数据库中的数据是按一定的数据模型组织、描述和存储。
• 现有的数据库系统均是基于某种数据模型的。
第 25 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
2.1 模型
结论:模型是对现实事物的模拟和抽象
第 26 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 一张地图,一个汽车模型,一个精致的航模飞机以及
一组建筑设计沙盘都是具体的模型。所以,对于模型,
一眼望去,就会使人联想到真实生活中的事物。
• 模型是对现实世界的模拟和抽象。
• 数据模型是现实世界中数据特征的抽象。
第 27 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
现实世界中的客观事物及其相互联系怎么转换成数据库系统
中计算机能够处理的数据呢?这个工具就是数据模型。
对于客观事物,例如“课程”,“学生”
对于它们之间的联系,例如:选修
第 28 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
现实世界中客观对象的抽象过程
DBMS支持的数据模型
概念模型
认识抽象
信息世界
机器世界
现实世界
第 29 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 数据模型的定义:
数据模型是客观事物及其联系的数据描述。数据模型也
是一种模型,它是对现实世界数据特征的抽象。
通俗地讲,数据模型就是对现实世界的模拟。
v数据模型应满足三方面要求
§ 能比较真实地模拟现实世界
§ 容易为人所理解
§ 便于在计算机上实现
第 30 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
2.2 数据模型的内容
• 数据模型主要包括数据结构、数据操作和数据约束:
① 数据结构:描述数据的类型、内容、性质以及数据间的联
系等。
② 数据操作:描述在相应的数据结构上的操作类型和操作方
式。
③ 数据约束:描述数据结构内数据间的语法、词义联系、
之间的制约和依存关系等。
• 数据结构是数据模型的基础,数据操作和约束都建立在
数据结构上。不同的数据结构具有不同的操作和约束。
第 31 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
2.3 数据模型的类型
• 目前被广泛使用的可分为两种类型:概念数据模型、逻
辑数据模型。
① 概念数据模型(Conceptual Data Model)– 简称概念模型,独立于计算机系统,是现实世界的抽象
,也是用户和数据库设计人员交流的工具。
– 概念数据模型必须换成逻辑数据模型,才能在DBMS中实
现。
第 32 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 概念模型是为正确、直观地反映客观事物及其联系,对所研
究的信息世界建立的一个抽象的模型。 完全不涉及信息在计算
机系统的表示。
• 目前描述概念模型最常用的方法是实体-联系(Entity-Relationship)方法,即E-R方法,使用的工具称为E-R图。
• E-R图所描述的现实世界的信息结构称为实体-联系模型( E-R模型)。
第 33 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
1)E-R图
• 包括了实体、属性和联系3种基本图素。
• 实体用矩形框表示,属性用椭圆形框表示,联系用菱形
框表示,实体与属性与联系之间用无向直线连接。
实体 属性 联系
第 34 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
2)相关概念介绍
• 实体通常是客观存在并且可以互相区分的事物。
实体可以是实际的事务。如:一名学生、一本书等;
实体也可以是抽象的事件,如一场比赛、一个创意等。
• 实体集:同型实体的集合称为实体集。例如:全体学生就是一个实体集。
• 实体型:具有相同的实体必然具有共同的特征和性质,用实体名及其属
性名集合来抽象和刻画同类实体,称为实体型。
例如:学生(姓名,性别,出生年月,所在院系,入学时间)就是一个实
体型。
第 35 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 联系也可以具有属性,属性也要用无向边和该
联系连接起来。
第 36 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
举例:图书借阅系统中学生和图书实体的描述
学生
图书
借书证号
姓名
专业 性别 出生日期
照片
ISBN
作者出版社 价格 复本数
库存量
借书数量
第 37 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
3)实体间的联系
• 实体集之间存在各种关系,通常把这些关系称为“联系”。
n 一对一:如,一个班只能有一个正班长,反之一个正班长也只能在一
个班级中任职。
n 一对多:如,一个班级中有若干名学生,每个学生只在一个班级中学
习。
n 多对多:如,“学生”与“图书”有“借阅”关系,由于一个学生可
借多本书,而一本书可被多个学生借阅。
第 38 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
① 两个实体型之间的联系
实体型A
联系名
实体型B
1
1
1:1联系
实体型A
联系名
1
n
1:n联系
实体型A
实体型B
联系名
m
n
m:n联系
实体型B
用图形来表示两个实体型之间的这三类联系
第 39 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
(1)一对一的联系(1∶ 1)
• 实体集A中的一个实体至多与实体集B中的一个实体相联系,B中的一
个实体也至多与A中的一个实体相联系。
例如:班级和正班长、学校和校长等关系。
第 40 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
厂长
姓名
年龄 性别
工厂
入厂时间
管理
1
1
厂名 厂龄地址
第 41 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
(2)一对多的联系(1∶ N)
• 实体集A中的一个实体至多与实体集B中的多个实体相联系,B中的一
个实体也至多与A中的一个实体相联系。
例如:“班级”与“学生”这两个实体集之间的联系是一对多的联系。
班级
班级名称班级号 人数
学生
班主任
包括
1
N
学号 姓名 性别
第 42 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
(3)多对多的联系(M∶ N)
• 实体集A中的一个实体至多与实体集B中的多个实体相联系,B中的一
个实体也可以与A中的多个实体相联系。
例如: “学生” 与“课程”或者“学生” 与“图书”。
学生
学号姓名 性别
课程
专业
选修
M
N
课程号课程名
学分
第 43 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
② 两个以上的实体型之间的联系
供应商
供应
项目
m
p
两个以上实体型间m:n联系
零件
n
课程
讲授
教师
1
m
两个以上实体型间1:n联系
参考书
n
两个以上的实体型内的各实体之间也可以存在一对一,一对多,多对多的联系 。
第 44 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
③ 单个实体型内的联系
同一个实体型内的各实体之间也可以存在一对一,一对多,多对多的联系 。
职工
领导
1 n
单个实体型内部1:n联系
实体型1
联系名
m n
单个实体型内的m:n联系
第 45 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
4)E-R图实例
• 例题1:已知学生实体具有学号、姓名、性别、班级号
与年龄属性,班级实体具有班级号、班级名、人数、教
室与所属学院属性,试画出它们的E-R图,并建立其间
的联系。
1、建立两个实体与属性的联系
2、建立实体间的联系
第 46 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
班级
班级名
班级号
学生
教室
属于1N
学号
姓名
性别
人数
班级号
年龄学院
第 47 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
例题2:用E-R图表示某个工厂物资管理的概念模型
• 实体
– 仓库: 仓库号、面积、电话号码
– 零件 :零件号、名称、规格、单价、描述
– 供应商:供应商号、姓名、地址、电话号码、帐号
– 项目:项目号、预算、开工日期
– 职工:职工号、姓名、年龄、职称
第 48 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 实体之间的联系如下:
(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和
零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓
库和职工之间是一对多的联系。
(3)职工实体型中具有一对多的联系。职工之间具有领导-被领导关系。即仓
库主任领导若干保管员。
(4)供应商、项目和零件三者之间具有多对多的联系。
第 49 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
第 50 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
E-R图能很好地抽象和模拟现实世界,也非常容易理
解,因此被广泛采用,后来人们又对E-R图作了多方面
的扩展以表达更为复杂的情况。用E-R图表达的概念模
型独立于具体的数据库管理系统,比数据模型更接近
于现实世界,是各种数据模型的共同基础。
第 51 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
②逻辑数据模型:
• 直接面向数据库的逻辑结构,例如:层次、网状、关系等模型。
• 有严格的形式化定义,以便于在计算机系统中实现。
• 有严格定义的语法和语义的数据库语言,人们可以用这些语言
来定义操纵数据库中的数据。
数据
数据 数据 数据
数据 数据数据
数据数据 数据
数据数据数据
证号 姓名 专业 名 性 别 借书 数
10001 王娟 计算机 1 1
10002 李宏 计算机 0 2
10003 朱小波 计算机 0 1
20002 吴涛 英语 0 3
层次模型 网状模型 关系模型
非关系模型
第 52 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
2.4 关系数据模型
1、关系模型
• 1970年美国IBM公司研究员E.F.Codd提出关系模型。
• 关系模型是最重要的数据模型,其应用最为广泛,Access、
Visual Foxpro、SQL Server、Oracle、Sybase等都属于关系模型
数据库系统。
• 在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和
列组成。
• 目前理论最成熟、使用最普及的是关系数据模型。
• 基于关系模型的数据库称为关系数据库。
第 53 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 关系模型有关系数据结构、关系操作集合和关系完整性约
束三部分组成的。
① 单一的数据结构——关系
– 关系模型的数据结构非常单一。在关系模型中,现实
世界的实体以及实体间的各种联系均用关系来表示。
– 在用户看来,关系模型中数据的逻辑结构是一张二维
数据表。
第 54 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 关系模型中基本的数据结构是表格,关系模型使用二维表
来表示实体及其联系。
第 55 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
关系模型的数据结构
• 关系模型中基本的数据结构是表格,关系模型使用二维表
来表示实体及其联系。
值取自同一个定义域(男、女)
元组
男
女
男
性别
19
22
21
年龄
D01李红S02
D02王伟S03
D01张军S01
系号姓名学号
关系
属性名属性
第 56 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 关系模型由一组关系组成。每个关系的数据结构是一张
规范化的二维表。一个关系由关系名、关系实例组成。
注意,关系模式是关系模型的“型”,关系实例是关系模型的“值”。
第 57 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
② 关系操作
• 关系模型中常用的关系操作包括:选择(select)、投影
(project)、连接(join)、并(Union)、交(
Intersection)、差(Difference)等查询操作和增加(
Insert)、删除(Delete)、修改(Update)等操作。
③ 关系的完整性约束
• 关系模型允许定义三类完整性约束:
实体完整性、参照完整性和用户定义的完整性。
第 58 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
2、关系模型中的相关术语
•关系(Relation)
一个关系对应通常说的一张表,每个关系有一个关系名。
•元组(Tuple)
表中的一行即为一个元组,也称为一条记录。
•属性(Attribute)
表中的一列即为一个属性,给每一个属性起一个名称即属性名
(字段名)。
•域(Domain)
属性的取值范围叫做域,即不同的元组对同一个属性的取值所
限定的范围。
第 59 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
•关键字或码(Key)
关键字是二维表中某一个属性或者某几个属性的组合,它的值可
以唯一地标识一个元组。关键字又称为键或码。
•主关键字(Primary Key)
关系模式中用户正在使用的码称为主关键字。主关键字又称为
主键或主码。
•外部关键字(Foreign Key)
如果表中的一个关键字不是本表的主关键字,而是另外一个
表的主关键字或者候选关键字,则这个属性就称为外关键字。外关
键字又称为外键或外码。
第 60 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
•分量:元组中的一个属性值。
•关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,
…,属性n)
例如:学生(学号,姓名,年龄,性别,系,年级)
课程(课程号,课程名,学分)
第 61 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
3、特 点
• 同一关系中不允许出现相同的属性名。
• 同列中的分量是同一类型的数据库,它们来自同一个域。
• 关系中元组的顺序可以任意交换。
• 关系中列的次序可以任意交换、重新组织,属性顺序不影响使用。
• 关系中的任意两个元组不能完全相同。
• 关系中每一个分量都必须是不可分割的数据项,即要求分量的原
子性。
第 62 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
练习1:
假设学生、班级、课程、教师、参考书五个实体型分别具有下列属性:
学生:学号、姓名、性别、年龄
班级:班级编号、所属专业
课程:课程号、课程名、学分
教师:职工号、姓名、性别、年龄、职称
参考书:书号、书名、出版社、价格
要求分别画出五个实体属性及其联系的E-R图。
第 63 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
学生
学号 年龄性别姓名
班级
所属专业班级编号
课程
课程号 课程名 学分
参考书
书号 书名 出版社 价格
教师
职工号 姓名 性别 年龄 职称
第 64 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
班级
学生
组成
选修课程
讲授
教师 参考书
1
nnm
m
pn
组成
1
n
组成
1
n
组成
1
n
1
n
1
n
1
n
1
nn
组成成绩
第 65 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
练习2:
• 某地区举行篮球比赛,需要开发一个比赛信息管理系统来记录
比赛的相关信息,请根据需求阶段收集的信息,设计实体属
性及其联系的E-R图。
需求分析结果:
1、登记参赛球队的信息,记录球队的名称、代表地区、成立时
间等;系统记录球队的每个队员的姓名、年龄、身高、体重
、入球队时间等信息;每个球队有一个教练负责管理球队 ,
一个教练仅负责一个球队,每个队员只属于一个球队;系统
记录教练的姓名、年龄等信息,所有球员、教练可能出现重
名情况。
第 66 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 2、安排球队的训练信息。比赛组织者为球队提供了若干
个场地,供球队进行适应性训练。系统记录现有的场地信
息,包括:场地名称、场地规模、位置等信息。系统可为每
个球队安排不同的训练场地,如表1所示。系统记录调练场
地安排的信息。
• 表1 训练安排表
球队名称 场地名称 训练时间
郑州 一号球场 2013-06-09 14:00-18:00
郑州 一号球场 2013-06-12 09:00-1200
郑州 二号球场 2013-06-11 14:00-18:00
开封 一号球场 2013-06-10 09:00-12:00
第 67 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
答案:
教练 球队担任
教练编号姓名
年龄代表地区球队名称 成立时间
11
入队时间
队员
属于球员编号
姓名
身高
体重
n
1训练
场地
场地名称场地规模
位置
训练时间
m
n
第 68 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
4、关系的完整性
• 为了维护数据库中数据与现实世界的一致性,对关系数据
库的插入、删除和修改操作必须有一定的约束条件,这就
是关系模型的三类完整性:
– 实体完整性
– 参照完整性
– 用户定义的完整性
第 69 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
关系的完整性约束条件
• 实体完整性(Entity Integrity)
若属性A是基本关系R的主属性,则属性A不能取空值。
例如:学生(学号,姓名,性别,专业号,年龄)
课程(课程号,课程名,学分)
其中主码学号,课程号不可取空值。
第 70 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 参照完整性(Referential Integrity)
如果属性集K是关系模式R1的主键,K也是关系模式R2的
外键,那么在R2的关系中,K的取值只允许两种可能,或者
为空值,或者等于R1关系中某个主键值。
例1: 学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
“专业号”不能唯一的确定学生关系中的一个元组,显然,它是引用
了专业信息关系的主码“专业号”,因此是学生关系的外码。 按照参照完整性,“专业号”属性要么取空值,表示该生还未有专业;要么取专业关系中的某个“专业号”值。
第 71 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
例2:学生、课程、学生与课程之间的多对多联系
学生(学号,姓名,性别,专业号,年龄)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
• 当然,这两个属性都不能取空值。为什么? 按照参照完
整性规则有什么限制?
第 72 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 用户自定义的完整性(User-defined Integrity)
除了实体完整性和参照完整性外,具体的应用领域还可能
存在一些特定的语义约束。
例如:
•大学生的年龄限定在16岁~30岁之间;
•大学生的不及格门次限定在3门以下;
•28岁以上的大学生其政治面貌只能是“党员”或“群众”;
•郑州市的固定电话号码前四位限定为0371。
第 73 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
3.关系数据库设计
• 在具备了DBMS、系统软件、操作系统和硬件环境的时候,对数据
库应用开发人员来说,就是如何使用这个环境表达用户的要求,
转换成有效的数据库结构,构成较优的数据库模式,这个过程称
为数据库设计。
需求分析 概念设计 逻辑设计 物理设计 实施 运行和维护
第 74 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 1. 需求分析阶段
– 进行数据库设计首先必须准确地了解与分析用户需求
<包括数据和处理)。
• 2. 概念结构设计阶段
– 通过对用户需求进行综合、归纳与抽象,形成一个独
立于具体DBMS的概念模型。
• 3. 逻辑结构设计阶段
– 逻辑结构设计是将概念结构转换为某个DBMS所支持的
数据模型(关系模型),并对其进行优化。
第 75 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 用E-R图描述了系统中实体集与实体集之间的联系,但是E-R模型只能
说明实体间语义的联系,还不能进一步说明详细的数据结构。
• 一般遇到一个实际的问题,步骤:先设计一个E-R模型 → 把E-R模型转
换为计算机可以实现的数据模型,在这里以关系模型为例。
• 前面已经介绍了实体集之间的联系,为(1:1)、(1:n)和(m:
n)3种联系之一,下面根据3种联系介绍从E-R图获得关系模式的方法。
第 76 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
1.(1∶ 1)联系的E-R图到关系模式的转换
2.(1∶ n)联系的E-R图到关系模式的转换
3.(m∶ n)联系的E-R图到关系模式的转换
第 77 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
1、(1∶ 1)联系的E-R图到关系模式的转换
转换原则:
• 每个实体集各对应一个关系模式;
• 对于(1:1)的联系
1)可以单独对应一个关系模式:由联系属性、参与联系的各
实体集的主码构成关系模式,其主码可选参与联系的实体集
的任一的主码。
2)也可以由联系属性及一方的主码加入到另一方实体集对应
的关系模式。
第 78 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
2、(1∶ n)联系的E-R图到关系模式的转换
转换原则:
• 每个实体集各对应一个关系模式;
• 对于(1:n)的联系
1)可以单独对应一个关系模式:由联系属性、参与联系的各
实体集的主码构成关系模式,n端的主码为该关系模式的主码。
2)也可以由联系属性及1端的主码加入到n端实体集对应的关
系模式中,主码仍为n端的主码。
第 79 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
3、(m∶ n)联系的E-R图到关系模式的转换
转换原则:
• 每个实体集各对应一个关系模式;
• 对于(m:n)的联系,单独对应一个关系模式
该关系模式包括联系的属性、参与联系的各实体集的
主码属性,该关系模式的主码由各实体集的主码属性共同
组成。
第 80 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
练习1:一对一联系对应的E-R图
请分析:该E-R图中有多少个实体集及对应联系?最少应转换成几个关系模式?
第 81 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
练习2:一对多联系对应的E-R图
请分析:该E-R图中有多少个实体集及对应联系?最少应转换成几个关系模式?
第 82 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
练习3:多对多联系对应的E-R图
请分析:该E-R图中有多少个实体集及对应联系?最少应转换成几个关系模式?
第 83 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
练习4:完整的E-R图
请分析:该E-R图中有多少个实体集及对应联系?最少应转换成几个关系模式?
第 84 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
关系模式:
仓库(仓库号,面积,电话号码)
零件 (零件号,名称,规格,单价,描述)
供应商(供应商号,姓名,地址,电话号码,帐号)
项目(项目号,预算,开工日期)
职工(职工号,姓名,年龄,职称,仓库号)
供应1(供应商号,项目号,供应量)
供应2(供应商号,零件号,供应量)
供应3(项目号,零件号,供应量)
库存(仓库号,零件号,库存量)
第 85 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
教练 球队担任
教练编号姓名
年龄代表地区球队名称 成立时间
11
入队时间
队员
属于球员编号
姓名
身高
体重
n
1
练习5:请将此E-R图转换为关系模式
训练
场地
场地名称场地规模
位置
训练时间
m
n
第 86 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
• 4.数据库物理设计阶段
– 数据库物理设计是为逻辑数据模型选取一个最适合应
用环境的物理结构(包括存储结构和存储方法)。
• 5.数据库实施阶段
– 在数据库实施阶段,设计运用DBMS提供的数据语言及
其宿主语言,根据逻辑设计和物理设计的结果建立数
据库,编制与调试应用程序,组织数据入库,并进行
试运行。
• 6.数据库运行和维护阶段
第 87 页《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/
总 结
• 数据库基础概念
• 数据模型
• 数据库设计