项目及数据库设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

30
如何将E-R图转换为表 图转换为表 如何将
UID主键 主键 SID主键 主键 TID主键 主键 RID主键 主键
31
如何将wenku.baidu.com-R图转换为表 图转换为表 如何将
添加各表之间的关系
32
设计数据库课堂练习 收集信息: 收集信息:
学生管理系统功能: 学生管理系统功能 1、年级管理:维护年级基本信息 、年级管理: 2、班级管理:维护班级基本信息 、班级管理: 3、学员管理:维护学员基本信息 、学员管理: 4、科目管理:维护科目基本信息,并要求维护某 、科目管理:维护科目基本信息, 个学员针对某门科目的成绩。 个学员针对某门科目的成绩。
28
两实体集间1:N联系
对于两实体集间1:n联系:可将“一方” 对于两实体集间1:n联系:可将“一方”实体的主 1:n联系 键字纳入“ 实体中做外键。 键字纳入“n方”实体中做外键。 对于两实体集间m:n联系:必须对“联系”单独建 对于两实体集间m:n联系:必须对“联系” m:n联系 立一个关系,用来联系双方实体集。 立一个关系,用来联系双方实体集。该关系的属 性中至少要包括被它所联系的双方实体集的“ 性中至少要包括被它所联系的双方实体集的“主 关键字” 并且如果联系有属性, 关键字”,并且如果联系有属性,也要归入这个 关系中。 关系中。
开发 程序
测试
测试报告 维护
14
软件开发过程
比尔通过类似软件瀑布模型 的方式成功完成了自己的建 筑项目
15
二、数据库设计
为什么需要设计数据库 为什么需要设计数据库
修建茅屋需要设计吗? 修建茅屋需要设计吗?
修建大厦需要设计吗? 修建大厦需要设计吗?
结论: 结论:当数据库比较复杂时我们需要设计数据库
11
软件开发过程
建造房屋 构想 分析 设计 构造 评估 维护 软件开发 可行性研究与计划 需求分析 设计 开发 评估/测试 评估 测试 维护
12
软件开发过程模型
软件开发需要经历几个步骤 具体如何实施,具体项目不同, 具体如何实施,具体项目不同,有所区别 软件开发过程模型:制作具体软件时,开发步骤 软件开发过程模型:制作具体软件时, 的具体实施方法
数 据 库
数 据 库
需求分析阶段:分析客户的业务和数据处理需求; 需求分析阶段:分析客户的业务和数据处理需求 概要设计阶段:设计数据库的E-R模型图,确认 模型图, 概要设计阶段:设计数据库的 模型图 需求信息的正确和完整; 需求信息的正确和完整 详细设计阶段: 图转换为多张表, 详细设计阶段:将E-R图转换为多张表,进行逻 图转换为多张表 辑设计,并应用数据库设计的三大范式进行审核; 辑设计,并应用数据库设计的三大范式进行审核 代码编写阶段:选择具体数据库进行物理实现, 代码编写阶段:选择具体数据库进行物理实现, 代码实现前端应用; 并编写 代码实现前端应用 软件测试阶段: 软件测试阶段:…… 安装部署: 安装部署:……
36
第三范式 (3rd NF)
Orders
字 段 例 子
Orders
字 段 例 子
订单编号 001 订购日期 2000-2-3 顾客编号 AB001 顾客姓名 Tony … …
订单编号 001 订购日期 2000-2-3 顾客编号 AB001 … …
学生编号 001 学生姓名 学生姓名 张三
如果一个关系满足1NF,并且除了主键以外的其他 , 如果一个关系满足 都要求完全依赖与该主键( 列,都要求完全依赖与该主键(不能存在仅依赖主 ),则满足第二范式 则满足第二范式( 关键字一部分的列 ),则满足第二范式(2NF) ) 第二范式要求每个表只描述一件事情
23
绘制E-R图 图 绘制
映射基数
X X X X 一对一 客户 X X X X 多对一 Y Y Y Y X X X X 一对多 Y Y Y Y
1
N
Y Y Y
订单
M
X X X X
N
产品 Y Y Y Y 多对多
24
绘制E-R图 图 绘制
E-R(Entity-Relationship)实体关系图 ( - )
1
管理
1
版主
版块( 版块(BBSSection) )
密码
状态
昵称
电子邮件
生日
点击率
1
1
发表
论坛E-R图 图 论坛
所在版块 贴子编号
属于
M 状态 正文
发贴人
M
M
标题
发贴人
M
贴子编号
正文
点击率
发贴( 发贴(BBSTopic) )
1
跟随
M
跟贴( 跟贴(BBSReply) )
标题
发贴时间
点击率
回复数量
发贴表情
4
软件开发流程
软件复杂性
图形用户界面 客户/服务器结构 客户 服务器结构 数据通信 超大型关系型数据库
5
项目团队中的角色
比尔想到需要更多的人手帮 他 终于组成了自己工作团队 就像软件中的项目团队
6
软件项目团队中的角色
项目团队
项目经理 软件架构师 设计人员 开发人员 测试人员
7
项目人员构成比例
19
设计数据库的步骤
收集信息: 收集信息:
与该系统有关人员进行交流、坐谈, 与该系统有关人员进行交流、坐谈,充分理解数据库需要 完成的任务
BBS论坛的基本功能: 论坛的基本功能: 论坛的基本功能 用户注册和登录,后台数据库需要存放用户的注册信息和在线状态信息; 用户注册和登录,后台数据库需要存放用户的注册信息和在线状态信息; 论坛版块管理:后台数据库需要存放各个版块信息,如版主、版块名称、 论坛版块管理:后台数据库需要存放各个版块信息,如版主、版块名称、 贴子数等; 贴子数等; 用户发贴,后台数据库需要存放贴子相关信息,如贴子内容、标题等; 用户发贴,后台数据库需要存放贴子相关信息,如贴子内容、标题等;
22
设计数据库的步骤
标识对象之间的关系( 标识对象之间的关系(Relationship) )
跟贴和主贴有主从关系:我们需要在跟贴对象中表明它是谁的跟贴; 跟贴和主贴有主从关系:我们需要在跟贴对象中表明它是谁的跟贴; 版块和用户有关系:从用户对象中可以根据版块对象查出对应的版主用户的情况; 版块和用户有关系:从用户对象中可以根据版块对象查出对应的版主用户的情况; 主贴和版块有主从关系:需要表明发贴是属于哪个版块的; 主贴和版块有主从关系:需要表明发贴是属于哪个版块的; 跟贴和版块有主从关系:需要表明跟贴是属于哪个版块的; 跟贴和版块有主从关系:需要表明跟贴是属于哪个版块的;
17
为什么需要设计数据库 为什么需要设计数据库
良好的数据库设计
节省数据的存储空间 能够保证数据的完整性 方便进行数据库应用系统的开发
糟糕的数据库设计: 糟糕的数据库设计:
数据冗余、 数据冗余、存储空间浪费 内存空间浪费 数据更新和插入的异常
18
软件项目开发周期
现实世界 信息世界 建模 模型转换 数据库世界 规范化
例子: 例子: 的开发: 微软 EXCHANGE 2000 SERVER 的开发:
项目经理:25人 项目经理: 人 开发人员: 开发人员:140人 人 测试人员: 测试人员:350人 人
WINDOWS 2000: :
项目经理:250人 项目经理: 人 开发人员: 开发人员:1700人 人 测试人员: 测试人员:3200人 人
符合 含义 实体,一般是名词 实体, 属性, 属性,一般是名词 关系,一般是动词 关系,
25
绘制E-R图 图 绘制
bbsUser (用户,版主) 用户,版主)
管理
bbsSection 版块) (版块)
昵称
出生日期
……
版块名称
版主
……
26
绘制E-R图 绘制 图
用户积分 性别 用户等级 备注信息 注册日期 版块名称 本版留言 发贴数 论坛用户( 论坛用户(BBSUser) )
瀑布模型
13
瀑布模型
瀑布模型—— “线性顺序模型” 线性顺序模型” 瀑布模型 线性顺序模型 可行性研究报告 可行性研究与计划 将每个阶段都清楚定义了起止点 产生明确的交付成果 需求说明书 需求分析 阶段之间通过文档进行沟通 设计文档 设计 每个阶段都必需完成全部规定的任务(文档) 每个阶段都必需完成全部规定的任务(文档)后 才能够进入下一个阶段
最后回复时间
发贴时间 所在版块
最后回复时间
发贴表情
27
如何将E-R图转换为表 图转换为表 如何将 将各实体转换为对应的表, 将各实体转换为对应的表,将各属性转换为各表 对应的列 标识每个表的主键列,需要注意的是: 标识每个表的主键列,需要注意的是:没有主键 的表添加ID编号列 它没有实际含义, 编号列, 的表添加 编号列,它没有实际含义,用于做主 键或外键,例如用户表中的“ 键或外键,例如用户表中的“UID”列,版块表中 列 添加“ 添加“SID”列,发贴表和跟贴表中的“TID”列 列 发贴表和跟贴表中的“ 列 在表之间建立主外键, 在表之间建立主外键,体现实体之间的映射关系
第一范式(1st NF -First Normal Fromate) 第一范式 第二范式(2nd NF-Second Normal Fromate) 第二范式 - 第三范式(3rd NF- Third Normal Fromate) 第三范式 -
34
第一范式 (1st NF)
BuyerID 1 2 3 4 … Address 中国北京市 美国纽约市 英国利物浦 日本东京市 … BuyerID Country City 1 1 4 2 … 中国 中国 日本 美国 … 北京 北京 东京 纽约 …
33
数据规范化
仅有好的RDBMS并不足以避免数据冗余,必须 并不足以避免数据冗余, 仅有好的 并不足以避免数据冗余 在数据库的设计中创建好的表结构 Dr E.F.codd 最初定义了规范化的三个级别,范 最初定义了规范化的三个级别, 式是具有最小冗余的表结构。这些范式是: 式是具有最小冗余的表结构。这些范式是:
第一范式的目标是确保每列的原子性 如果每列都是不可再分的最小数据单元( 如果每列都是不可再分的最小数据单元(也称为 最小的原子单元),则满足第一范式(1NF) 最小的原子单元),则满足第一范式( ) ),则满足第一范式
35
第二范式 (2nd NF)
Score Score 字 段 课程编号 1 学生编号 001 得分 98 学生姓名 张三 … … 例 子 字 段 课程编号 1 学生编号 001 得分 Students 字 段 例 子 98 例 子
21
设计数据库的步骤
标识每个实体的属性( 标识每个实体的属性(Attribute) 每个实体的属性 )
论坛用户 呢称 密码 电子邮件 生日 性别 用户的等级 备注信息 注册日期 状态 积分 版块 版块名称 版主 本版格言 点击率 发贴数 主贴 发贴人 发贴表情 回复数量 标题 正文 发贴时间 点击数 状态 最后回复时间 回贴 贴子编号 回贴人, 回贴人 回贴表情 标题 正文 回贴时间 点击数
8
软件工程师的工作
团队管理 项目设计与分析 编写文档 编码 测试
9
软件工程师的素质
具有软件工程的概念 良好的编码能力 规范化编码习惯
规范意识 团队精神
求知欲、 求知欲、进取心 和学习总结的能力
10
软件开发过程
“这次不能盲目开 这次不能盲目开 工,我们需要首先 好好设计一下! 好好设计一下!” 构想 分析 设计 构造 评估 软件的制作过程也非常相似
20
设计数据库的步骤
标识对象(实体- 标识对象(实体-Entity) )
标识数据库要管理的关键对象或实体
实体一般是名词: 实体一般是名词: 用户:论坛普通用户、各版块的版主。 用户:论坛普通用户、各版块的版主。 用户发的主贴 用户发的跟贴(回贴) 用户发的跟贴(回贴) 版块: 版块:论坛的各个版块信息
29
两实体集间的1:1的联系
假设A实体集与B实体集是1:1的联系, 假设A实体集与B实体集是1:1的联系,联系的转换 1:1的联系 有三种方法: 有三种方法: ①、把A实体集的主关键字加入到B实体集对应的 实体集的主关键字加入到B 关系中; 关系中; 实体集的主关键字加入到A ②、把B实体集的主关键字加入到A实体集对应的 关系中; 关系中; 建立第三个关系, ③、建立第三个关系,关系中包含两个实体集的 主关键字。 主关键字。
软件开发及数据库设 计 1、 软件开发流程
2、 数据库设计
一、软件开发流程
软件开发流程
比尔盖子是一名建筑 工人 起初只干一些比较简 单的建筑工作 凭个人技术和经验, 凭个人技术和经验,不需 要特别设计, 要特别设计,可以顺利完 成
3
软件开发流程
新任务: 新任务:建造一间非 常美丽而完整的房间 工作变得复杂许多
相关文档
最新文档