教学工作的资源分享

访问数据库设计案例数据

职教

职教

数据库设计第七章数据库设计

7.1数据库设计流程和设计实例7.2需求分析7.3概念结构设计7.4逻辑结构设计7.5规范关系模式7.6设计实例——期刊采集系统7.1数据库设计流程设计示例

上一章介绍的内容只解决了系统的实现过程。 也就是说,如何创建各种对象,但没有说明为什么创建这些对象。数据库设计基于给定的APP应用环境,构建最佳数量根据模型,利用DBMS建立数据库APP系统。要构建高效应用的数据库APP应用系统,需要数据库使用领域的重要课题之一。 数据库设计是一项软件工程,有其自身的特点,数据库设计方法论正在形成。简而言之,数据库设计包括结构设计和行为设计。结构设计是指根据APP应用的要求,确定合理的数据模型。 数据类型类型是用来反映和表示事物及其关系的。 得到结构设计的结果中桌结构。

行动设计是指APP的设计,将设计结果物化,实施数据查询、修改、添加、删除、统计数据创建、报告创建等库。行为设计要求是数据完整性、安全性、并发控制和数据库的康复。数据库设计包括六个阶段。需求分析

概念结构设计逻辑结构设计物理结构设计数据库实现数据库的运行和维护需求分析——数据流学生负责人

课堂效果教师信息课选修课学生信息成绩课程信息课程信息课程信息

需求分析——数据流数据流名称:教师信息来源:教师目的地:处理——课包含的数据项:教师编号姓名性别年龄职务专业

需求分析——数据词典数据项名称在叫

数据类型和长度说明学号文字,固定长度6前4位是班级编号,后2位是在班内连号学生姓名字符,可变长度8

学生的性别字符,固定长度2取值范围的男性或女性……概念结构设计负责人

路线师生管理选修课注册1 1

m nnmmn

教师编号系列名称专业出生了日期

性别姓名学号姓名性别职务年龄专业系主任的电话照片

评价分数

课程名称学时类别逻辑结构设计

教育管理系统的数据模型表示如下。系(系号、系名、系主任、电话) )。教师(教师编号、姓名、专业、职务、性别、年龄,系列号)学生(学校编号、姓名、性别、出生年月日、专业图,系列号)

课程(课程编号、课程名称、学习时间、类别) )。课程评价(教师编号、课程编号、评价) )。选修(学校号码、课程号码、分数) ) )。物理设计物理结构的设计根据使用的计算机进行软件确定硬件环境和数据库管理系统、数据库优化表的结构,选择数据模型合适的存储结构和访问方法决定了访问方法直径和访问空间的分配等。

编制索引的基本原则

1 )一个属性(或属性组)仔细检查时出现在询问条件或连接操作的结合条件中,考虑在此属性(或此组的属性)中创建索引(或组合索引) )2 )属性始终为最大值或最小值时指定聚合函数的参数,例如,时请考虑此属性编制索引

数据库实现

数据库的实现是使用DBMS构筑并制作数据库创建和编辑各种对象(表格、表单、查询……)创建并调试APP配置,输入数据并进行试运行去数据库的运行和维护

数据库系统正式使用后,还没有坚决进行评价、修正、调整。 这个时期我的工作是数据库的运用和维护。数据库设计流程概念设计

数据模型评估需求分析不喜欢

逻辑设计物理设计绩效评估数据库实现试车运用和维护不喜欢

不喜欢不喜欢7.2需求分析

需求分析是数据库设计的出发点和基础基础知识

需求分析阶段的工作详细准确数据库APP系统的运行环境和用户请求开发的目的是什么

用户需要从数据库中检索的数据信息是什么请告诉我输出这些信息的方法和格式需求分析的方法------调查步骤调查各部门的构成和业务活动帮助用户进一步明确系统的最终要求在标准化文档中查看结果,包括使用数据流程图、数据词典、要求说明等方式

寄送调查表请专家介绍咨询带乘务员的作业查阅资料数据流图的基本画法

数据流图由数据源、数据处理、数据输出和数据存储。 主要反映了数据与处理的关系。数据源处理数据输出数据流

数据存储数据流

7.3概念结构设计任务

将需求分析结果抽象为概念模型方法

建立E-R模型(entity-relationship模型) )。E-R模型的表示方法为E-R图e-r图的本质

表示实体、属性和实体之间的关系7.3.1 E-R图的表示方法实体——用矩形表示,在矩形框内注明实体名字属性——由椭圆表示,在椭圆内注明属性名称。用线将椭圆连接到相应的实体。

联系——用菱形表示,并在菱形框内注明联系名称,通过线分别与相关实体连接。此外,在线注明联系类型。 (1) 1,1 ) n或m:n )学生实体、课程实体属性及其联系方式的E-R图是学生路线学号名性别课程号课名学时选修课

m n

系、教师、学生和课程间的联系系课程

教师 学生管理讲授 选修注册1 1m nnmmn

确定出实体与实体间联系教学管理的E-R模型系课程

学生 教师管理选修 讲授注册1 1m nnmmn

教师号

系号 系名专业

出生日期性别姓名学号姓名性别职称年龄专业系主任 电话照片

评价 分数

课程号 课程名 学时 类别填全实体属性

7.3.2 建立E-R模型中的几个问题▪ 相对原则➢对于同一对象抽象的结果可能不同▪ 简单原则➢现实世界的事物能作为属性的尽量归为属性▪ 设计过程

➢设计局部E-R模型➢集成全局E-R模型 解决三种冲突➢ 命名冲突➢ 属性冲突➢ 结构冲突简单原则举例学生 宿舍学号 姓名 性别 宿舍号 管理员 等级住宿

m 1

专业 管理费 出生日期

竣工时间入住时间学生学号宿舍号姓名 性别出生 专业日期

不考虑宿舍的进一步信息时,宿舍应作为属性建立E-R模型举例

▪ 例7-1 一个企业应用包括人员管理、生产管理、设备管理等功能模块。其中:人员管理需要记录职工编号、职工姓名、职务(干部/工人)、年龄、性别等。一个职工工作于一个部门,一个部门有若干职工。对于部门应记录各部门的编号、部门名称、负责人、电话等信息。设计局部E-R模型——人员管理的E-R图人员 部门

职工编号编号 部门

名称 性别 职工姓名属于

m 1

职务 年龄 负责人 电话设计局部E-R模型——设备管理的E-R图人员设备处职工

编号编号性别姓名装配1 m电话

年龄职务负责人包含nm

零件零件

编号 名称 规格管理 设备名称 价格 设备编号1n

数量 装配日期

设计局部E-R模型——生产管理的E-R图人员 生产处职工编号

编号 名称姓名 性别属于m 1

中专技校

中专技校

1

零件零件

编号 名称 规格日期数量

将局部E-R模型集成全局E-R模型人员部门职工编号部门编号性别姓名装配1 m电话

年龄职务负责人包含n

m

零件零件编号零件

名称 规格管理 设备设备名称 价格 设备编号1n

装配数量装配日期部门名称生产1m

生产数量生产日期

7.4 逻辑结构设计▪ 任务

➢将概念设计结果转换为DBMS支持的数据模型▪ 步骤

➢将概念结构转换为数据模型

➢将转换来的模型向特定DBMS支持的数据模型转换(这里使用关系数据库模型)➢对数据模型进行优化7.4.1 E-R模型转换为关系模型的方法

▪ 实体的转换

➢一个实体转换为一个关系模式▪ 实体间联系的转换➢一对一联系➢一对多联系➢多对多联系▪ 主键的定义实体的转换

▪ 一个实体转换为一个关系模式▪ 实体的属性就是关系模式的属性▪ 实体的键就是关系的主键▪ 例如

➢教学管理系统中共有教师、系、学生和课程四个实体,它们转换为关系模式后分别为教师(教师号,姓名,专业,职称,性别,年龄)系(系号,系名,系主任,电话)学生(学号,姓名,性别,出生日期,专业,照片)课程(课程号,课程名,学时,类别)一对一联系的转换

▪ 方法一

➢ 联系转换为独立的关系模式

➢ 模式的属性由联系本身的属性及两个实体的键构成➢ 主键由两个实体中的任意一个键构成▪ 方法二➢ 将联系与一端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内➢ 主键不变

一对一联系的转换

——建立独立的关系模式•实体对应关系模式分别为:班级(班号,专业,人数)班长(学号,姓名,专长)•联系管理(班号,学号)班级 班长

班号 人数 学号 姓名 专业管理1 1专长

关系模式“管理”的主键也可以选择学号一对一联系的转换——合并到实体关系模式班级 班长

班号 人数 学号 姓名 专业管理1 1专长

原实体对应关系模式分别为:班级(班号,专业,人数)班长(学号,姓名,专长)将联系“管理”合并到实体“班级”对应的模式后为:班级(班号,专业,人数,学号)

联系“管理”也可以合并 班长(学号,姓名,专长) 到实体“班长”对应的模式一对多联系的转换▪ 方法一

➢ 联系转换为独立的关系模式

➢ 模式的属性由联系本身的属性及两个实体的键构成➢ 主键由n端实体的键组成▪ 方法二

➢ 将联系与n端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内➢ 主键不变

一对多联系的转换

——建立独立的关系模式系 教师系号 教师号 姓名年龄 系主任

系名管理1 n性别

电话 专业 职称实体对应的关系模式系(系号,系名,系主任,电话)

教师(教师号,姓名,专业,职称,性别,年龄)联系对应的关系模式管理(教师号,系号)一对多联系的转换

——合并到实体关系模式系 教师系号 教师号 姓名年龄 系主任

系名管理1 n性别

电话 专业 职称实体对应的关系模式系(系号,系名,系主任,电话)

教师(教师号,姓名,专业,职称,性别,年龄)合并到实体“教师”后教师(教师号,姓名,专业,职称,性别,年龄,系号)只能合并到“多”的一端

多对多联系的转换

▪ 联系只能转换为独立模式

➢模式的属性由联系本身的属性及两个实体的键构成➢主键由两端实体的键组合而成多对多联系的转换——建立独立的关系模式

课程(课程号,课程名,学时,类别)

学生(学号,姓名,性别,专业,出生日期,照片)选修(学号,课程号,分数)课程 学生

课程号 学号 姓名学时 照片课程名选修

m n性别出生日期

类别 专业分数

7.4.2 E-R模型转换为关系模型举例▪ 根据教学管理E-R模型建立教学管理系统的关系模型▪ 根据例7-1的E-R模型建立企业应用系统的关系模型

课程

教师 学生管理选修 讲授注册1 1m nnmmn

教师号

系号 系名专业

出生日期性别姓名学号姓名性别职称年龄专业系主任 电话照片

评价 分数课程号

类别 课程名 学时

系(系号,系名,系主任,电话) 学生(学号,姓名,性别,出生日期,专业,照片)教师(教师号,姓名,专业,职称,性别,年龄) 课程(课程号,课程名,学时,类别)选修(学号,课程号,分数)课程评价

( 教师号 ,课程号 ,评价)

管理(教师号,系号) 注册(学号,系号)系(系号,系名,系主任,电话)课程(课程号,课程名,学时,类别)教师(教师号,姓名,专业,职称,性别,年龄,系号)学生(学号,姓名,性别,出生日期,专业,照片,系号)

选修(学号,课程号,分数)课程评价(教师号,课程号,评价)教学管理的关系模型人员部门职工编号部门编号性别姓名装配

1 m电话

年龄职务负责人包含n

m

零件零件编号零件

名称 规格管理 设备设备名称 价格 设备编号1n

装配数量装配日期部门名称生产1m

生产数量生产日期

设备(设备编号,设备名称,价格)零件(零件编号,零件名称,规格)人员(职工编号,姓名,性别,年龄,职务)部门(部门编号,部门名称,负责人,电话)

生产(零件编号,部门编号,生产日期,生产数量)装配(设备编号,零件编号,装配日期,装配数量)包含(职工编号,部门编号)人员(职工编号,姓名,性别,年龄,职务,部门编号)管理(部门编号,设备编号)合并

合并

设备(设备编号,设备名称,价格,部门编号)企业应用的关系模型

人员(职工编号,姓名,性别,年龄,职务,部门编号)

部门(部门编号,部门名称,负责人,电话)设备(设备编号,设备名称,价格,部门编号)零件(零件编号,零件名称,规格)生产(零件编号,部门编号,生产日期,生产数量)装配(设备编号,零件编号,装配日期,装配数量)7.4.3 数据完整性设计▪ 实体完整性▪ 参照完整性

▪ 用户自定义完整性7.5 关系模式的规范化7.5.1 问题的提出7.5.2 函数依赖与键7.5.3 关系模式的范式与规范化

供应商编号 供应商名称 联系方式 商品名称 商品价格101 华讯 12345678 光驱 180101 华讯 12345678 光盘 150101 华讯 12345678 打印纸 20102 欣欣 87654321 光盘 160102 欣欣 87654321 鼠标 56…例如针对供应商建立了如下关系模式:

供货(供应商编号,供应商名称,联系方式,商品名称,商品价格)数据冗余大数据不一致性操作异常

这个模式存在如下问题函数依赖

▪ 函数依赖的概念▪ 函数依赖的表示方法▪ 函数依赖的类型➢完全依赖➢部分依赖➢传递依赖

学生关系的函数依赖关系学号专业

出生日期性别姓名

学生(学号,姓名,性别,出生日期,专业)•该关系的函数依赖集表示为:•学号→姓名•学号→性别

•学号→出生日期•学号→专业函数依赖的定义

▪ 给定一关系R,若当且仅当对应于R中属性X的每一个值,在任一时刻必有一个确定的属性Y值,则称Y是函数依赖于X,也可称为X函数决定Y,记为X->Y。成绩(学号,姓名,课程号,课程名,分数)学号

课程号姓名课程名分数

成绩关系的函数依赖集:学号→姓名课程号→课程名

(学号,课程号)→分数完全函数依赖和部分函数依赖▪ 完全依赖➢若称关系R中的属性Y是完全依赖于属性X,则应满足以下两个条件: 属性Y函数依赖于属性X

 属性Y不函数依赖于属性X的任一真子集X’▪ 部分依赖

➢如果属性Y只函数依赖于属性X的某一真子集X’,则称属性Y部分函数依赖于属性X。传递依赖▪ 定义:在关系R中,如果属性X、Y、Z之间满足:X→Y,Y →Z ,则称Z对X传递依赖。▪ 例如关系模式:

➢辅导(学号,班级,辅导员)➢函数依赖集:学号→班级班级→辅导员学号

辅导员班级键

▪ 定义:设K是关系R模式中的属性,当K的值确定后,关系中其它属性值也就唯一确定,且K的任何一个真子集不再具有这样的性质,则称K为R的键或候选键。▪ 注意:

迎新活动

迎新活动

➢包含在任何一个候选键中的属性称为主属性▪ 非主属性

➢不包含在候选键中的属性称为非主属性或非键属性

▪ 关系中主键是单属性的,则非键属性对主键肯定是完全函数依赖的。▪ 而当主键是复合属性时,则非键属性对主键的函数依赖就有完全依赖和部分依赖两种可能。外部键

▪ 设X是关系模式R中的属性或属性组,X并非R的键,而是另一关系模式的键,则称X是R的外键。▪ 如:

系(部门编号,系名,系主任,电话)教师(教师号,姓名,专业,职称,性别,年龄,部门编号)范式与规范化▪ 范式

➢关系满足不同层次的要求就称为不同的范式

➢范式由低到高依次为1NF,2NF,3NF,4NF, 5NF▪ 规范化

➢将一个低一级范式的关系模式分解为若干个满足高一级范式关系模式的集合的过程1NF、2NF、3NF▪ 1NF:如果关系模式R的每一个属性只包含单一的值,则关系模式R满足1NF

▪ 2NF:如果关系R满足第一范式,而且它的所有非主关键字属性完全依赖于整个主属性(也就是说,不存在部分依赖),则R满足第二范式▪ 3NF:如果某关系满足第二范式,而且他的任何一个非主属性都不传递函数依赖于任何非主属性,则R满足第三范式规范化至1NF

学号 姓名 课程名 成绩991101 李雨 英语计算机基础8590

991102 杨玲 英语计算机基础7394

991103 张山 英语计算机基础7685

学号 姓名 课程名 成绩991101 李雨 英语 85991101 李雨 计算机基础 90991102 杨玲 英语 73991102 杨玲 计算机基础 94991103 张山 英语 76991103 张山 计算机基础 85每一个属性只包含单一的值由1NF规范化至2NF消除部

分依赖

名单(学号,姓名)

成绩(学号,姓名,课程号,课程名,分数)成绩(学号,课程号,分数)由2NF规范化至3NF辅导(学号,班级,辅导员)班级(学号,班级)辅导(班级,辅导员)消除传

递依赖

数据库规范化应用实例

▪ 分析关系模式——供货(供应商编号,供应商名称,联系方式,商品名称,商品价格)的函数依赖集,并将其规范到第三范式。➢ 函数依赖集表示为 供应商编号→供应商名称 供应商编号→联系方式

 (供应商编号,商品名称)→商品价格➢ 该关系模式存在部分依赖,因此只满足1NF➢ 规范化至3NF为 供应商(供应商编号,供应商名称,联系方式) 供货信息(供应商编号,商品名称,商品价格)7.6 设计实例——期刊采编系统▪ 期刊采编的主要任务是由编辑部的编辑人员对稿件进行编辑,决定稿件收录的期刊的刊次和栏目;设计排版部的设计人员,负责期刊的设计排版工作。需求分析

▪ 期刊采编系统包括:➢人员管理➢稿件生产管理

➢期刊设计排版管理等功能模块需求分析——人员管理模块▪ 人员管理需要记录职工编号、职工姓名、职务、年龄、性别等。

▪ 一个职工工作于一个部门,一个部门有若干职工。▪ 对于部门应记录各部门的编号、部门名称、负责人、电话等信息。需求分析——稿件生产管理模块

▪ 稿件生产管理模块管理若干编辑部的若干人员和进行稿件的生产;

▪ 对于各编辑部需记录各编辑部编号、负责人、电话;而编辑部的人员同样记录人员编号、姓名、职务、年龄、性别、负责的具体工作等;▪ 对于稿件需要记录稿件的编号、标题、作者、字数、正文等;每一个编辑部编辑多篇稿件,而一篇稿件只有一个编辑部编辑,要记录编辑的姓名和编辑完成的时间。需求分析——期刊设计排版模块

▪ 期刊设计排版模块管理设计排版部的若干人员和若干期刊。

▪ 对于期刊需要记录期刊的名称、刊出年月等;同样对于稿件需要记录稿件的编号、标题、作者、字数、正文等;

▪ 对于设计排版部需记录单位编号、负责人、电话;设计排版部的人员同样记录职工编号、姓名、职务、年龄、性别、负责的具体工作等。▪ 每一本期刊由多篇稿件编排而成,要记录编排者的姓名和设计完成的时间。需求分析——数据流程图作者

期刊

编缉后稿件编辑部稿件 p2排版p1编辑

期刊信息

编辑信息 排版信息设计排版部排版后稿件

需求分析——数据字典数据流名称:稿件来源:作者去向:p1编辑

包含的数据项:标题、作者、字数、正文

期刊采编系统的数据流——稿件数据流名称:编辑信息来源:编辑部去向:p1编辑

包含的数据项:编辑部编号、名称、负责人、电话、职工编号、职工姓名、年龄、性别、职务、权限期刊采编系统的数据流——编辑信息需求分析——数据字典

数据流名称:期刊来源:期刊去向:p1编辑

包含的数据项:期刊名称、刊号、出版日期

期刊采编系统的数据流——期刊数据流名称:编辑后稿件来源:p1编辑去向:p2排版

包含的数据项:稿件编号、标题、作者、字数、正文、编辑姓名、编辑日期、期刊名称、刊号、所属栏目期刊采编系统的数据流——编辑后稿件需求分析——数据字典数据流名称:排版信息来源:设计排版部去向:p2排版

包含的数据项:设计部编号、名称、负责人、电话、职工编号、职工姓名、年龄、性别、职务、权限期刊采编系统的数据流——排版信息数据流名称:排版后稿件

来源:p2排版去向:期刊

包含的数据项:稿件编号、标题、作者、字数、正文、编辑姓名、编辑日期、期刊名称、刊号、所属栏目、设计者、完成日期、出版日期期刊采编系统的数据流——排版后稿件需求分析数据字典

数据项名称 数据类型及长度 说明部门编号 整型 采用序列编号部门名称 字符,可变长度50负责人 字符,可变长度50 不能为空电话 字符,可变长度24职工编号 整型 采用序列编号姓名 字符,可变长度30 不能为空性别 字符,固定长度2 取值男或女年龄 整型 取值范围1-100职务 字符,可变长度20 多数人为“编辑”权限 字符,可变长度100

期刊编号 字符,固定长度9前3位是期刊名称缩写,中间4位是年号,最后2位是年度内序号期刊名称 字符,可变长度50设计者 字符,可变长度30完成日期 日期出版日期 日期

稿件编号 整型 采用序列编号标题 字符,可变长度180 不能为空作者 字符,可变长度30正文 字符 不能为空字数 整型

编辑者 字符,可变长度30编辑日期 日期

所属栏目 字符,可变长度50概念结构设计——局部E-R模型▪ 人员管理E-R模型人员 部门职工编号

编号 部门

名称 职工 性别姓名属于

m 1

职务 年龄 权限 负责人 电话概念结构设计——局部E-R模型人员编辑部编号

编号

姓名 性别1 编辑电话年龄职务

负责人包含m 稿件编号字数

标题 作者权限编辑者1

n

正文完成日期

稿件生产管理的E-R图

概念结构设计——局部E-R模型人员设计排版部编号

编号

姓名 性别组成1 1电话年龄职务负责人包含nm

稿件

编号 标题 作者编排 期刊名称 出版日期 编号1 n字数所属栏目权限设计者完成日期正文

期刊设计排版的E-R图合成全局E-R图人员部门职工编号部门编号

姓名 性别组成11

电话年龄职务负责人包含n

m

稿件稿件

编号 标题 字数编排 期刊期刊名称出版日期期刊编号1 n正文

所属栏目部门名称编辑1m

编辑者

编辑日期权限完成日期设计者作者

逻辑结构设计

▪ 由E-R图转换为关系模式▪ 设计数据完整性▪ 数据模型的规范化关系模式

▪ 部门(部门编号,部门名称,负责人,电话)▪ 人员(职工编号,姓名,性别,年龄,职务,权限,部门编号)▪ 期刊(期刊编号,期刊名称,出版日期,部门编号,设计者,完成日期)

➢ 通过确定主键已完成▪ 参照完整性

➢ 模式“人员”中的属性“部门编号”来源于模式“部门”中的属性“部门编号”➢ 模式“期刊”中的属性“部门编号”来源于模式“部门”中的属性“部门编号”➢ 模式“稿件”中的属性“部门编号”来源于模式“部门”中的属性“部门编号”➢ 模式“稿件”中的属性“期刊编号”来源于模式“期刊”中的属性“期刊编号”▪ 用户定义完整性包括:

➢ 模式“人员”中的属性“性别”的值只能为男或女;➢ 模式“人员”中的属性“年龄”的值只能为1-100间;➢ 模式“部门”中的属性“职务”的默认值为编辑;➢ 模式“期刊”中的属性“完成日期”的值应早于(小于)属性“出版日期”的值;

➢ 模式“期刊”中的属性“期刊编号”固定为9位前三位由字母后六位由数据模型的规范化▪ 4个模式都只存在完全依赖,不存在部分依赖和传递依赖,因此该数据模型满足第三范式。

标签

Tag