当前课程知识点:数据库技术应用 >  学习情境一、银行存取款机数据库创建与管理 >  模块4、银行存取款机数据库的设计 >  1.4.1数据库的概念模型设计

返回《数据库技术应用》慕课在线视频课程列表

1.4.1数据库的概念模型设计在线视频

下一节:1.4.2数据库的数据模型设计

返回《数据库技术应用》慕课在线视频列表

1.4.1数据库的概念模型设计课程教案、知识点、字幕

大家好

欢迎来到数据库技术应用在线开放课程

今天要完成的任务是

设计数据库BankDB的概念模型

那设计之前我先给大家看两个方案

首先A同学设计的方案

大家来看

根据前面我们做的需求

A同学把它设计成了一张表

包括用户编号、用户名、联系方式

卡号、密码、交易类型、交易金额和余额几个字段

B同学的设计方案

是把我们前面所做的需求

设计成了三张表

第一张表里包括用户编号、用户名和联系方式

第二张表里包括卡号、密码和余额

第三张表里包括卡号交易类型和交易金额

那么A和B两位同学谁设计的方案更合理呢

如果用它们的表记录一千人每人两张卡

每张卡二十次的交易记录

那么A同学和B同学个又需要填写多少个数据呢

我们来分析一下

首先对于A同学的方案来说

它填写的数据数应该是一千乘二乘二十乘八

是32万数据量

对于B同学来说

分成三张表来看

第一张表是一千乘以三是三千个数据

第二张表一千乘以二乘以三是六千条数据

第三张表一千乘以二乘以二十乘以三是十二万个数据

那么把三个表加在一起

一共是十二万九千数据

那么A同学是三十二万数据

B同学是十二万九千数据

我们来对比一下

很显然B同学的方案要好一些

因为它减少了数据冗余

可以提高我们将来的查询效率

那怎么能设计出这三张表呢

或者说我们做数据库设计的好处是什么呢

我们来看一下

如果大家做了一个良好的数据库设计

它既可以节省数据的存储空间

又能保证数据的完整性

还能方便进行数据应用系统的开发

那如果你做的数据库设计不好

也就是糟糕的数据库设计

它可以带来数据冗余

存储空间内存空间浪费的情况

而且将来在做数据更新和插入的时候还可能出现异常

那么我们这节课的目标

就是带着大家了解数据库设计的基本步骤

理解数据库设计的意义

掌握E-R图进行数据库设计的知识

数据库设计的步骤

我们把它分成三个

首先我们要把现实世界抽象成概念模型

其次我们需要把概念模型转换成数据模型

最后我们还要根据实际情况

对我们转换好的数据模型进行优化

然后才能真正的存放到我们的数据库当中

今天我们先来看概念模型设计

要想做概念模型设计

大家需要知道概念模型设计之后

我需要提交一个什么样的产物呢

我们需要提交的一个作品就是E-R图把它翻译过来

就是实体联系图

那么如果想画实体联系图

我们需要知道几个概念

也需要知道这些概念所用来表示的图形

首先我们来看第一个叫实体

什么叫实体呢

它是指现实世界当中客观存在的

并且可以相互区分的事物

第一点客观存在

第二点可以相互区分

最后它是一个事物

也就是说它是一个名词

那么实体我们在E-R图当中是用矩形框来表示的

大家看到的图里的这些都是实体

这里面都是大家熟悉的生活

当中的一些物品和事物

那么大家需要思考一下

对于我们要完成了

这个任务数据库BankDB来说

它应该有哪些实体

第二个概念

我们叫联系

实体我们知道了

那么我们在解决一个实际问题的时候

它会有很多实体构成

那实体和实体之间是存在联系的

万物存在联系,

所以我们需要明确实体和实体之间的联系类型

我们在数据库当中把它分成三种

第一种叫一对一联系

第二种叫一对多联系

第三种较多对多联系

那么这个联系呢

我需要用菱形框来表示

我们来看三个例子

首先班级和班长是哪一种联系类型呢

我们来分析一下

一个班级只有一个班长

一个班长只属于一个班级

那么我们就确定班级和班长之间是一对一的联系类型

那班级和学生呢

我们再来看

一个班级有多个学生

一个学生它只属于一个班级

两侧都看好之后

我来确定它是一对多的联系类型

那么在判断一对多的时候

大家一定要注意

一定是两侧都需要判断才能确定

否则容易出现错误

第三个学生和课程

一个学生可以选多门课程

那么一门课程也可以由多个学生来选

那么我们判断学生和课程之间

是多对多的联系类型

那么大家也可以思考一下

对于我们BankDB来说

实体和实体之间又是什么样的联系类型呢

第三个叫属性

什么是属性指的是实体具有的特征

我们的属性是用椭圆来表示的

对于班级来说

它有班级编号、班级名称、班主任这几个属性构成

而对于学生来说

有学号有姓名有性别这几个属性来确定

那么除此之外

肯定还有其它的属性

我们需要根据用户的需求

一个一个的把属性全部都找出来

放在我们的椭圆里

那么在众多的属性当中

有一个特别重要的属性

它是唯一标识

每个实体的属性或者属性的集合

我们把它叫做主键

那对于班级来说

靠什么来区分各个班级

我们是靠班级编号来确定的

所以班级编号就是班级的主键

对于学生实体来说

我们靠什么来区分每个学生

大家很清楚是靠学号来区分的

所以学号是学生的主键

那同样的道理

对于图书来说

我们需要靠图书编号去唯一识别每一本书

那选课呢

这个难度要比前三个要大一些

选课大家想要知道它不是名词

它是什么词是动词?

所以这个选课实际上

它是一个联系

它建立的是学生和课程之间的联系

那么它的主键是什么

很简单就是学生的主键和课程的主键加在一起

构成了中间这个联系

选课的主键也就是学号加课程号

就是刚刚咱们说的属性的集合

有了这些知识储备

我们来看一下一个宿舍有多个学生

一个学生住一个宿舍

学生住宿就产生住宿费

怎么来画这个问题的E-R图

首先第一件事找实体

这里面客观存在

并且可以相互区分的名词有什么

有学生有宿舍

我把学生和宿舍分别画在两个矩形框了

那么用什么来描述学生呢

大家在题里找一找

有学号、姓名、性别

我分别画在椭圆里

然后用线段和学生进行一个连接

同样的道理

楼号房间号人数是用来描述宿舍的属性

我也把它画在椭圆里

并且用线段和宿舍做一个链接

那么还有一句话我们没有用到

学生住宿就产生住宿费

其实是告诉大家

学生和宿舍之间的联系是住宿画在菱形框里

并且只要学生一住宿就有住宿费

所以住宿费放在住宿里

作为它的属性出现

那好一个学生住几个宿舍

一个宿舍

一个宿舍有多少个学生

多个学生那宿舍和学生两边的实体

它线段上要放联系的类型

就是我们刚才分析的一对多

那么E-R就画出来了

大家来看一下

接下来进入我们的任务实施环节

那对于我们的银行自动存取款机来说

它的概念模型是什么样子呢

我们首先还是找实体

对于之前大家看到的动画

我们银行自动存取款机的需求来说

我们去找它的实体里面肯定有什么

肯定有用户还有什么

我刚才拿到的那个银行卡

还有就是交易信息

那么对于这些实体来说

我们需要找一下用什么来描述它呢

对于用户来说

有用户编号、用户名、身份证号、联系电话和地址

而对于银行卡来说

有银行卡号、密码、货币类型余额

开户日期还有是否挂失

而对于交易信息来说

肯定要存的是交易的编号、交易的日期

交易类型、交易的金额还有一些备注信息

有了这些属性之后

我们接下来来确定用户银行卡和交易信息

它们三个实体之间的联系

首先用户和银行卡来说

一个用户有多张卡

那么一张卡它只属于一个用户

所以用户和银行卡是一对多的联系

那银行卡和交易信息呢

一张银行卡可以有多个交易信息

一个交易信息它只能对应一张银行卡

所以银行卡和交易信息之间也是一对多的联系

那么有了实体

有了属性

有了联系我们的E-R图就可以画出来了

大家注意所有的线都是线段

都是线段

要把我们的联系类型化在两边的线段上

好今天的拓展任务是

员工管理数据库EmployeeDB的概念模型设计

感谢大家的聆听

数据库技术应用课程列表:

学习情境一、银行存取款机数据库创建与管理

-模块1、数据库的基础知识

--1.1.1数据库设计-数据库的基本概念

--1.1.2数据管理的发展和数据库体系结构

--数据库的基础知识

-模块2、MYSQL介绍与安装

--MYSQL介绍与安装

--MYSQL介绍与安装

-模块3、银行存取款机数据库的创建与维护

--1.3数据库的创建与维护

--银行存取款机数据库的创建与维护

-模块4、银行存取款机数据库的设计

--1.4.1数据库的概念模型设计

--1.4.2数据库的数据模型设计

--1.4.3数据库的关系规范化

--银行存取款机数据库的设计

学习情境二、创建和管理银行存取款机数据表

-模块1、表的创建

--2.1表的创建

--任务实施:银行存取款机表的创建

--表的创建

-模块2、表的管理

--2.2表的管理

--任务实施:银行存取款机表的管理

--表的管理

-模块3、索引

--2.3索引

--任务实施:银行存取款机索引

--索引

-实践小课堂:宠物电商管理平台数据库和表的创建

--实践小课堂:宠物电商管理平台数据库和表的创建

学习情境三、银行存取款机数据操纵

-模块1、银行存取款机数据插入、修改和删除

--3.1.1数据插入

--任务实施:银行存取款机数据插入

--3.1.2数据修改和删除

--任务实施:银行存取款机数据修改和删除

--实践小课堂:宠物电商管理平台数据插入

--银行存取款机数据插入、修改和删除

-模块2、银行存取款机简单查询

--3.2.1简单查询

--任务实施:银行存取款机简单查询

--实践小课堂:宠物电商管理平台简单查询

--3.2.2统计查询

--任务实施:银行存取款机统计查询

--实践小课堂:宠物电商管理平台条件查询

--银行存取款机简单查询和统计查询

-模块3、银行存取款机连接查询

--3.3连接查询

--任务实施:银行存取款机连接查询

--银行存取款机连接查询

-模块4、银行存取款机子查询

--3.4子查询

--任务实施:银行存取款机子查询

--实践小课堂:宠物电商管理平台多表查询

--银行存取款机子查询

-模块5、银行存取款机分类汇总与排序

--3.5分类汇总与排序

--任务实施:银行存取款机分类汇总与排序

--实践小课堂:宠物电商管理平台分类汇总和排序

--银行存取款机分类汇总与排序

-模块6、银行存取款机视图

--3.6.1视图的创建与管理

--任务实施:银行存取款机视图的创建与管理

--3.6.2视图的更新

--任务实施:银行存取款机视图的更新

--实践小课堂:宠物电商管理平台视图

--银行存取款机视图

学习情境四、银行存取款机数据库编程

-模块1、银行存取款机存储过程

--4.1.1创建和执行存储过程

--任务实施:银行存取款机创建和执行存储过程

--实践小课堂:宠物电商管理平台存储过程

--4.1.2事务

--任务实施:银行存取款机事务

--实践小课堂:宠物电商管理平台存储函数

--银行存取款机存储过程

-模块2、银行存取款机触发器

--4.2.1INSERT触发器

--任务实施:银行存取款机INSERT触发器

--实践小课堂:宠物电商管理平台INSERT触发器

--4.2.2UPDATE触发器

--任务实施:银行存取款机UPDATE触发器

--实践小课堂:宠物电商管理平台UPDATE触发器

--4.2.3DELETE触发器

--任务实施:银行存取款机DELETE触发器

--实践小课堂:宠物电商管理平台DELETE触发器

--银行存取款机触发器

教学情境五、银行存取款机数据库安全性

-模块1、MYSQL用户管理

--模块1、MYSQL用户管理

--MYSQL用户管理

-模块2、MYSQL权限管理

--模块2、MYSQL权限管理

--MYSQL权限管理

-模块3、MYSQL数据库的锁机制

--MYSQL数据库的锁机制

--MYSQL数据库的锁机制

-模块4、MYSQL备份和恢复

--模块4、MYSQL备份和恢复

--MYSQL备份和恢复

1.4.1数据库的概念模型设计笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。