软件系统
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
中的详细设计所涉及的数据库物理设计
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
1.1 软件系统设计中的详细设计所涉及的数据库物理设计 1.1.1 项目中的数据库表结构设计
1、本项目的数据库
(1)采用MS SQLServer2000
本项目的数据库采用MS SQLServer2000,在前面工作的基础上,根据对其进行的各种分析(包括数据分析),提出数据库建设
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。数据库建模工作主要利用类图建模。
经过分析,依据数据库的规范形式,本着减少冗余的原则,可以整理出该系统所需要的数据库表
(2)本项目的数据库设计特点
因考虑网络执行速度及其自身数据库的太小,设计基本采用的是一层设计,没有设计父子表;数据关系基本采用的是同关系字段以避免产生复杂的父子关系结构,从而简化后面的实体模块设计,同时也提高数据访问的速度。
2、设计数据库中的各个表
为了唯一标识每条数据库记录,我们需要一个主键。在MS SQL Server和Oracle中可以使用自动递增的主键生成方式。但是很多数据库不支持自动递增的主键,考虑到移植性不采用自动递增的主键生成方式。
杨教授大学堂,版权所有,盗版必究。 1/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(1)数据库表BookAuthor
, 数据库表的需求分析:该BookAuthor表中的各个字段的功能说明如下
该表主要代表图书的作者信息,其中authorID为主键,而BookInfo表中的bookID
主键为本表中的外键。该BookAuthor数据库表与BookInfo表形成“一对多”的关联关系。
, 数据库表的逻辑设计:BookAuthor表的结构如下
信息 类型 描述
authorID Int 主键
authorName 50个字符
authorTelPhone 50个字符
bookID Int
authorKind Int
, 创建该表的SQL语句
create table BookAuthor (
authorID int primary key,
authorName nvarchar (50),
authorTelPhone nvarchar (50),
bookID int,
authorKind int,
);
注意:必须对数据库表设计出主键以满足EJB 中findByPrimaryKey 的要求。
(2)数据库表BookInfo
, 数据库表的需求分析:该BookInfo表中的各个字段的功能说明如下
该表主要代表图书的信息,其中bookID为主键,而BookAuthor数据库表中的authorID主键为本表中的外键。该BookInfo数据库表与BookAuthor表形成“一对多”的关联关系。
, 数据库表的逻辑设计:BookInfo表的结构如下
信息 类型 描述
bookID Int 主键
bookName 50个字符
杨教授大学堂,版权所有,盗版必究。 2/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 Publisher 50个字符
authorID Int
price Int
kind Int
abstractText 255个字符
publisherTim 50个字符
NumbersOnLibrary Int
, 创建该表的SQL语句
create table BookInfo (
bookID int primary key,
bookName nvarchar (50),
publisher nvarchar (50), authorID int,
price smallint,
kind smallint,
abstractText nvarchar (50), publisherTime nvarchar(50), numbersOnLibrary smallint
);
(3)数据库表UserInfo
, 数据库表的需求分析:该UserInfo表中的各个字段的功能说明如下
该数据库表主要代表网站的注册用户信息,其中userID为主键。 , 数据库表的逻辑设计:UserInfo表的结构如下
杨教授大学堂,版权所有,盗版必究。 3/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
信息 类型 描述
userID Int 主键
userName 50个字符
userPswd 50个字符
userCompany 50个字符
userLevel Int
userEmail 50个字符
, 创建该表的SQL语句
create table UserInfo (
userID int primary key,
userName nvarchar (15),
userPswd nvarchar (12),
userCompany nvarchar (50),
userLevel smallint,
userEmail nvarchar (30)
);
(4)EbankChecker
, 数据库表的需求分析:该EbankChecker表中的各个字段的功能说明如下
该数据库表主要代表网站的注册用户的银行财务信息,其中checkerID为主键,
而userID为外键。
, 数据库表的逻辑设计:BookAuthor表的结构如下
杨教授大学堂,版权所有,盗版必究。 4/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
信息 类型 描述
CheckerID int 主键
userID int
CashNumber 50个字符
CashKind 50个字符
CashTime int
, 创建该表的SQL语句
create table EbankChecker (
checkerID int primary key,
userID int,
cashNumber money,
cashKind int,
cashTime int
);
3、数据库表中字段类型定义时所应该遵循的规则
(1)选用字段长度最小并优先使用定长型
(2)尽可能的定义 "NOT NULL"
(3)索引的优化至关重要
1) 被索引的字段的长度越小, 该索引的效率越高 2) 被索引的字段中, 值的重复越少, 该索引的效率越高 3) 查询语句中, 如果使用了 "group" 子句, 根据其中字段出现的先后顺序建立多字段
索引
4) 查询语句中, 如果使用了 "distinct", 根据其中字段出现的先后顺序建立多字段索
引
杨教授大学堂,版权所有,盗版必究。 5/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
1.1.2 获得数据库表之间的关系
1、在Microsoft Visio中利用反向
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
向导导入数据库表,从而获得数据库表之间的关系
, 在文件菜单上,依次指向新建、数据库,然后单击数据库模型图。
, 在数据库菜单上,单击反向工程。
2、在反向工程向导的第一个屏幕上,执行以下操作
为您的数据库管理系统 (DBMS) 选择 Microsoft Visio 数据库驱动程序。如果尚未将 Microsoft Visio 数据库驱动程序与某个 32 位 ODBC 数据源相关联,现在应创建此关联。
杨教授大学堂,版权所有,盗版必究。 6/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
选择为本项目所创建的针对Ebuss.dmb的数据库的数据源名称EBuss。然后点击“下一步”按钮
3、选择您要提取的信息的类型复选框,然后单击下一步。
杨教授大学堂,版权所有,盗版必究。 7/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
, 选择您要提取的表(和视图,如果有)的复选框,或单击全选以全部提取,然后单
击下一步。
, 选择是否希望反向工程后的项目自动添加到当前页。
杨教授大学堂,版权所有,盗版必究。 8/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
检查所做的选择,确保提取的信息是所需的,然后单击完成。此时将出现数据库表的关系表示法示图。
向导将提取所选的信息,并在输出窗口显示有关提取过程的注释。
1.1.3 在Visio中设计项目中的各个数据表之间的关系
1、画出关系图的主要目的
数据库表之间的关系直观地指示出数据库模型图中的一个表如何与另一个表交互作用。在关系表示法中,关系线末端的箭头指向父表。
2、创建方法
杨教授大学堂,版权所有,盗版必究。 9/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 (1)打开数据库模型图,并将关系形状拖到绘图页上。
(2)将带箭头的端点拖到父表。该表四周出现方框后,释放鼠标按钮;将不带箭头的端点拖到子表。该表四周出现方框后,释放鼠标按钮。
(3)两个连接点均变为红色,同时父表中的所有主键都作为外键添加到子表中。
杨教授大学堂,版权所有,盗版必究。 10/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
3、设计数据库表所对应的实体之间的关系
本项目中的几个实体之间的关系如下
杨教授大学堂,版权所有,盗版必究。 11/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
一对多
BookAuthoBookInfo
一对多 r
一对多
UserInfEBankCheck o
o o er o 一对一
o
1.1.4 设计数据库表所对应的实体的类图
请见前面的“静态建模”文档,下面给出一个示例。
杨教授大学堂,版权所有,盗版必究。 12/12页