第10章 数据库应用系统设计实例--数据库原理课程PPT汇总
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用户活动 分析
处理需求 信息需求
功能模块 数据字典
1. 需求分析-用户活动分析
① 用户角色有哪些? ② 每种用户有什么活动(需求) ?
• 品牌管理员
• 需要管理产品信息、供应产品
• 店铺管理员
• 需要处理订单、管理库存
• 消费者
• 需要浏览产品、下订单
1. 需求分析-功能模块和数据字典
用户角色
功能模块
1
1*
① 1:1的联系,两端的主键
1键
1*键
相等
1
1键
合并到
联系表
1键
n键
1
1键
② 1:n的联系转为一个表,n
N
端实体的键是关系的键
N键
⑤ 优化:合并主键相同的表
N
N键
1键
② 1:n的联系,n端的表添 加一个“外键”,存放1 端的主键值
3. 逻辑结构设计 简化的方法:
① 每个实体转为一个表,并添加 “ID”字段作为主键 ② 对于1:1的联系,两端的表的主键取相等值 ③ 1:n的联系,n端的表添加一个“外键”,存放1端的主
第十章 数据库技术应用案例分析
教学目标
• 熟悉一种典型数据库的设计过程 • 为期末作品提供参考
电子商务系统是数据库的典型应用
数据库应用系统设计案例
1.
案例:
2.
3.
4.
5.
6.
需求分析 概念结构设计 逻辑结构设计 数据库物理设计 数据库实施 数据库运行与维护
1. 需求分析(采用“自上而下/目标导向”的方法)
① 每个实体转为一个表,并添加 “ID”字段作为主键 ② 对于1:1的联系,两端的表的主键取相等值 ③ 1:n的联系,n端的表添加一个“外键”,存放1端的
主键值
④ n:m的联系转为一个表,各自的键为组合键 ⑤ 优化:分解最常用的属性 例如,用户表拆分为基本表和
详细表,因为系统查询基本表 属性(如名称和密码)非常频 繁,而系统查询详细表(如住 址、电话)较少
键值
④ n:m的联系转为一个表,各自的键为组合键 ⑤ 优化:分解最常用的属性
用户
ID 名称 密码
产品管理员
ID
品牌ID
店铺管理员
ID
店铺ID
消费者
ID 余额
品牌
ID 名称
店铺
ID 名称
订单
ID
消费者ID
状态
产品
ID
品牌ID
名称
店品
ID
店铺ID 产品ID
存量
订单项目
ID
订单ID 店品ID
数量
3. 逻辑结构设计 简化的方法:
1…N
库存商品
1…1
1…N
消费者
订单
N…M
2. 概念结构设计(根据数字字典构建E-R图)
• 优化:减少冗余信息
1…1
N…1
产品管理员
品牌
1…N
产品
用户 1…1 店铺管理员 N…1 店铺
1…N
库存商品
1…1
1…N
消费者
订单
N…M
3. 逻辑结构设计
将“ER图”转化为表(关系模式) ① 每个实体转为一个表,并添加 “ID”字段作为主键 ② 1:1的联系转为一个表,两端的键都转为属性,取任意一端的键
4.物理设计 结合DBMS的特点,实现逻辑模式
用户
ID:BIGINT 名称: varchar(45) 密码: varchar(32)
• ID:INT (32-bit)
INT:32-bit整型,最大记录数量约20亿 BIGINT :64-bit整型,最大记录数量约400亿亿
• 名称:varchar(45)
while (result.next())
{ int number
= result.getInt("id");
String name = result.getString("name");
String mathScore = result.getString("math");x
out.println(" " + number + " " + name + " " + mathScore);
}
%>
(HTML代码)
如何开发数据库应用系统?
1. 需求分析 2. 概念结构设计 3. 逻辑结构设计 4. 数据库物理设计 5. 数据库实施 6. 数据库运行与维护
根据系统需求,不 断优化数据库设计
重点内容
1.需求分析
a. 用户活动 b. 功能模块图 c. 数据字典 2. 概念结构设计(ER图) 3. 逻辑结构设计(关系模式)
变长字符串型,最多可以存储45个英文字母,或 22个汉字
5. 数据库实施 根据物理设计建立数据库和开发数据库应用系统
数据库服务器 • SQL Server • MySQL • Oracle • IBM DB2 •…
应用系统 • Web应用系统 • Windows程序 • iOS程序 • Android程序
•…
Web应用系统原理图
浏览器
HTTP
(将HTML渲染为网页)
动态Web服务器
(如JSP服务器)
TCP 数据库
HTML
SQL
数据
JSP查询数据库并显示数据的代码片段
(HTML代码)
<%
…(连接数据库)
String query = "select * from student";
ResultSet result = sql_statement.executeQuery(query);
作为主键
③ 1:n的联系转为一个表,两端的键都转为属性, n端实体的键是 关系的键
④ n:m的联系转为一个表,两端的键都转为属性,各自的键为组合 键
⑤ 优化:合并主键相同的表,分解最常用的属性
合并到
1
1键
联系表
1键
1*键
或合并到
1*
1*键
① 1:1的联系转为一个表, 取任意一端的键作为主键
⑤ 优化:合并主键相同的表
(圆圈,省略了)
1…1
N…1
产品管理员
源自文库品牌
1…N
产品
用户 1…1 店铺管理员 N…1 店铺
1…N
库存商品
1…1
1…N
消费者
订单
N…M
2. 概念结构设计(根据数字字典构建E-R图)
• ER图的简化表示:用连线表示联系,省略了菱形
1…1
N…1
产品管理员
品牌
1…N
产品
用户 1…1 店铺管理员 N…1 店铺
产品管理员
• 管理品牌信息 • 管理产品信息 • 管理产品库存
店铺管理员
• 管理店铺信息 • 处理店铺订单 • 管理店铺库存
消费者
• 浏览产品 • 下订单
数据字典
• 品牌 • 产品 • 品牌产品存量 • 店铺 • 店铺商品存量 • 订单 • 用户
2. 概念结构设计(根据数字字典构建E-R图)
• 分析数据字典中的实体(方框)、联系(菱形)、属性