数据库设计文档模板
《数据库设计文档模板》由会员分享,可在线阅读,更多相关《数据库设计文档模板(24页珍藏版)》请在装配图网上搜索。
1、*中心开发部文档编号2011-6-14版本A1密级商密A项目名称时代集团产品跟踪平台项目来源时代集团DR-RD-020数据库设计说明书编写:日期:检查:日期:日期:日期: *版权所有不得复制时代集团产品跟踪平台1数据库设计说明书11引言21.1编写目的21.2术语表21.3参考资料32数据库环境说明33数据库的命名规则34逻辑设计35物理设计45.1表汇总45.2表X:XXX表45.3视图的设计65.4存储过程、函数及触发器的设计66安全性设计66.1防止用户直接操作数据库的方法66.2用户XX密码的加密方法76.3角色与权限77优化78数据库管理与维护说明71 引言1.1 编写目的本文档是时
2、代集团产品跟踪平台概要设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循SQL数据库设计和开发规范。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。1.2 术语表序号术语或缩略语说明性定义1ESIDEnterStorageId入库编号2ProIdProductId产品编号3PMIDProductManagerId产品管理员编号1.3 参考资料资料名称作者文件编号、版本资料存放地点2 数据库环境说明数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明3 数据库的命名规则数据库名称:时代集团的英
3、文名称time-group表名:英文表的用途+下划线+英文字段名:相关属性的英文名4 逻辑设计提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图ERD。如果采用面向对象方法OOAD,这里实体相当于类class。5 物理设计提示:1主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。2对表结构进行规范化处理第三范式。5.1 表汇总表名功能说明Enter_storage产品入库新产品的登记、修改、查询Exit_storage产品出库登记产品出库信息Seller_i
4、nfo销售商信息维护表对销售商信息的添加、修改和查询Product_info产品信息表对新产品的发布,修改,查询等维护Repair_info维修表对已出售产品的维修进行登记,修改L管理员表包含五种身份,销售人员,库存管理人员,售后服务人员,产品信息管理人员,系统管理员5.2 表:表的索引: 索引是否建立要根据具体的业务需求来确定。允许为空:不填的表示为是。唯一:不填的表示为是。表的记录数和增长量:根据具体的业务需求确定。增长量应确定单位时间如果量大可以按每天,如果不大可以按每月。表字段的区别度:主要是考虑到将来在此字段上建立索引类型选择时作为参考,当字段值唯一时可以不考虑,当字段值不唯一时,估
5、算一个区别度,近似即可。例如:如果一个表的NAME字段有共2000个值,其中有1999个不同值,1999/2000=0.99 越接近1区别度越高,反之区别度越低。表的并发:根据具体的业务需求预测表的并发。1表名Enter_storage数据库用户库存管理人员主键ESID入库产品编号其他排序字段Product,date,num,storageManagerId索引字段序号字段名称数据类型精度范围允许为空Y/N唯一Y/N区别度默认值约束条件/说明1ESIDintNY2ProductVarcharNN3dateSmallDateTimeNN4numVarcharNN5storageManagerId
6、VarcharNYMysql脚本CREATE TABLE dbo.Enter_storageESID int IDENTITY NOT NULL,product varchar NOT NULL,date smalldatetime NOT NULL,num varchar NOT NULL,storageManagerId nvarchar NOT NULL, CONSTRAINT PK_addStorage PRIMARY KEY CLUSTERED WITH ON PRIMARY ON PRIMARYGOSET ANSI_PADDING OFFGO记录数增长量表的并发补充说明2.表名Ex
7、it_storage数据库用户库存管理人员主键ExitStorageId出库产品编号其他排序字段Product,date,num,storageManagerId索引字段序号字段名称数据类型精度范围允许为空Y/N唯一Y/N区别度默认值约束条件/说明1ExitStorageIdintNY2ProductVarcharNN3dateSmallDateTimeNN4numVarcharNN5storageManagerIdVarcharNYMysql脚本CREATE TABLE dbo.Exit_storageExitStorageId int IDENTITY NOT NULL,product v
8、archar NOT NULL,date smalldatetime NOT NULL,num varchar NOT NULL, CONSTRAINT PK_subStorage PRIMARY KEY CLUSTERED WITH ON PRIMARY ON PRIMARYGOSET ANSI_PADDING OFFGO/* Object: Table dbo.Enter_storage Script Date: 01/17/2011 16:00:59 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGO记
9、录数增长量表的并发补充说明3.表名Seller_info数据库用户销售商管理员主键name其他排序字段telephone,address,product, stockNum,stockDate,stockPrice索引字段序号字段名称数据类型精度范围允许为空Y/N唯一Y/N区别度默认值约束条件/说明1nameVarcharNY2telephoneVarcharNN3addressSmallDateTimeNN4productVarcharNN5stockNumVarcharNN6stockDateSmallDateTimeNN7stockPriceVarcharNNMysql脚本CREATE
10、TABLE dbo.Seller_infoname varchar NOT NULL,telephone varchar NOT NULL,address varchar NOT NULL,product varchar NOT NULL,stockNum varchar NOT NULL,stockDate smalldatetime NOT NULL,stockPrice varchar NOT NULL, CONSTRAINT PK_maketer_Info PRIMARY KEY CLUSTERED WITH ON PRIMARY ON PRIMARYGOSET ANSI_PADDIN
11、G OFFGO/* Object: Table dbo.Repair_info Script Date: 12/16/2010 09:59:13 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGO记录数增长量表的并发补充说明4.表名Product_info数据库用户产品信息管理人员主键proId其他排序字段name,price,proDate,storage索引字段序号字段名称数据类型精度范围允许为空Y/N唯一Y/N区别度默认值约束条件/说明1proIdintNY2nameVarcharNN3priceVar
12、charNN4proDateSmallDateTime NN5storageVarcharNYMysql脚本CREATE TABLE dbo.Product_infoproId int IDENTITY NOT NULL,name varchar NOT NULL,price varchar NOT NULL,proDate smalldatetime NOT NULL,storage varchar NOT NULL, CONSTRAINT PK_product_Info PRIMARY KEY CLUSTERED WITH ON PRIMARY ON PRIMARYGOSET ANSI_P
13、ADDING OFFGO/* Object: Table dbo.Login Script Date: 01/17/2011 16:00:59 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGO记录数增长量表的并发补充说明5.表名Repair_info数据库用户售后服务人员主键repairId产品维修编号其他排序字段repairName,repairtel,product,customer,date,customertel索引字段序号字段名称数据类型精度范围允许为空Y/N唯一Y/N区别度默认值约束条件/说明1
14、repairIdintNY2repairNameVarcharNN3repairtelSmallDateTimeNN4productVarcharNN5customerVarcharNNdateSmallDateTimeNNcustomertelVarcharNNMysql脚本CREATE TABLE dbo.Repair_inforepairId int IDENTITY NOT NULL,repairName nchar NULL,repairtel nchar NULL,product varchar NOT NULL,customer varchar NOT NULL,date sma
15、lldatetime NOT NULL,customertel nchar NULL, CONSTRAINT PK_Table_1 PRIMARY KEY CLUSTERED WITH ON PRIMARY ON PRIMARYGOSET ANSI_PADDING OFFGO/* Object: Table dbo.Product_info Script Date: 01/17/2011 16:00:59 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGO记录数增长量表的并发补充说明6.表名Login数据库用
16、户管理人员主键userId用户编号其他排序字段password,userName,tel,birthday,registerTime,type索引字段序号字段名称数据类型精度范围允许为空Y/N唯一Y/N区别度默认值约束条件/说明1userIdintNY2passwordVarcharNN3userNameSmallDateTimeNN4telVarcharNN5birthdayVarcharNN6registerTimeSmallDateTimeNN7typeVarcharNNMysql脚本CREATE TABLE dbo.LoginuserId varchar NOT NULL,passwo
17、rd varchar NOT NULL,userName varchar NOT NULL,tel varchar NOT NULL,birthday smalldatetime NOT NULL,registerTime smalldatetime NOT NULL,type nvarchar NOT NULL, CONSTRAINT PK_manager_Info PRIMARY KEY CLUSTERED WITH ON PRIMARY ON PRIMARYGOSET ANSI_PADDING OFFGO记录数增长量表的并发补充说明5.3 视图的设计根据XXX产品的概要设计文档来确定。视
18、图的命名按照xx数据库设计规范中关于视图的命名规范命名。视图的设计应注意以下几点:1 尽量减少列中使用的公式。2 去掉所有不必要的列。3 不要使同一个文档属于多个分类。4 避免使用表单公式。5.4 存储过程、函数及触发器的设计存储过程及触发器的命名按照xx数据库设计规范中关于存储过程及触发器的命名规范命名。存储过程:根据具体得业务逻辑确定输入参数个数,类型,确定对哪几个表进行何种作。 在定义存储过程时,要使用其完成单一、相对集中的任务,不要定义已由其他提供功能的过程。例如:不要定义强制数据完整性的过程使用完整性约束。函数 :函数与存储过程非常相似,它也是存储在数据库中的对象。但是可以在SQL命
19、令中使用函数。就好像建立自己的substr函数一样触发器 :触发器是存储在数据库中的程序,它在某一特定事件发生时执行。这些程序可以用PL/SQL和java语言编写,也可以用作c语言的调用,数据库允许用户定义这些程序,然后在相关的表,视图或者数据库动作执行insert,update或delete语句时执行。1.存储过程:CREATE PROCEDURE Enter_storage_GetMaxIdASDECLARE TempID intSELECT TempID = max+1 FROM Enter_storageIF TempID IS NULLRETURN 1ELSERETURN TempI
20、DCREATE PROCEDURE Enter_storage_ExistsESID intASDECLARE TempID intSELECT TempID = count FROM Enter_storage WHERE ESID=ESID IF TempID = 0RETURN 0ELSERETURN 1CREATE PROCEDURE Enter_storage_ADDESID int output,product varchar,date smalldatetime,num varchar,storageManagerId nvarcharAS INSERT INTO Enter_s
21、torageVALUESSET ESID = IDENTITYCREATE PROCEDURE Enter_storage_UpdateESID int,product varchar,date smalldatetime,num varchar,storageManagerId nvarcharAS UPDATE Enter_storage SET product = product,date = date,num = num,storageManagerId = storageManagerIdWHERE ESID=ESID CREATE PROCEDURE Enter_storage_D
22、eleteESID int AS DELETE Enter_storageWHERE ESID=ESID CREATE PROCEDURE Enter_storage_GetModelESID int AS SELECT ESID,product,date,num,storageManagerIdFROM Enter_storageWHERE ESID=ESID CREATE PROCEDURE Enter_storage_GetListAS SELECT ESID,product,date,num,storageManagerIdFROM Enter_storageCREATE PROCED
23、URE Exit_storage_GetMaxIdASDECLARE TempID intSELECT TempID = max+1 FROM Exit_storageIF TempID IS NULLRETURN 1ELSERETURN TempIDCREATE PROCEDURE Exit_storage_ExistsExitStorageId intASDECLARE TempID intSELECT TempID = count FROM Exit_storage WHERE ExitStorageId=ExitStorageId IF TempID = 0RETURN 0ELSERE
24、TURN 1CREATE PROCEDURE Exit_storage_ADDExitStorageId int output,product varchar,date smalldatetime,num varchar,storageManagerId nvarcharAS INSERT INTO Exit_storageVALUESSET ExitStorageId = IDENTITYCREATE PROCEDURE Exit_storage_UpdateExitStorageId int,product varchar,date smalldatetime,num varchar,st
25、orageManagerId nvarcharAS UPDATE Exit_storage SET product = product,date = date,num = num,storageManagerId = storageManagerIdWHERE ExitStorageId=ExitStorageId CREATE PROCEDURE Exit_storage_DeleteExitStorageId int AS DELETE Exit_storageWHERE ExitStorageId=ExitStorageId CREATE PROCEDURE Exit_storage_G
26、etModelExitStorageId int AS SELECT ExitStorageId,product,date,num,storageManagerIdFROM Exit_storageWHERE ExitStorageId=ExitStorageId CREATE PROCEDURE Exit_storage_GetListAS SELECT ExitStorageId,product,date,num,storageManagerIdFROM Exit_storageCREATE PROCEDURE Login_ExistsuserId varcharASDECLARE Tem
27、pID intSELECT TempID = count FROM Login WHERE userId=userId IF TempID = 0RETURN 0ELSERETURN 1CREATE PROCEDURE Login_ADDuserId varchar,password varchar,userName varchar,tel varchar,birthday smalldatetime,registerTime smalldatetime,type nvarcharAS INSERT INTO LoginVALUESCREATE PROCEDURE Login_Updateus
28、erId varchar,password varchar,userName varchar,tel varchar,birthday smalldatetime,registerTime smalldatetime,type nvarcharAS UPDATE Login SET password = password,userName = userName,tel = tel,birthday = birthday,registerTime = registerTime,type = typeWHERE userId=userId CREATE PROCEDURE Login_Delete
29、userId varcharAS DELETE LoginWHERE userId=userId CREATE PROCEDURE Login_GetModeluserId varcharAS SELECT userId,password,userName,tel,birthday,registerTime,typeFROM LoginWHERE userId=userId CREATE PROCEDURE Login_GetListAS SELECT userId,password,userName,tel,birthday,registerTime,typeFROM LoginCREATE
30、 PROCEDURE Product_info_GetMaxIdASDECLARE TempID intSELECT TempID = max+1 FROM Product_infoIF TempID IS NULLRETURN 1ELSERETURN TempIDCREATE PROCEDURE Product_info_ExistsproId intASDECLARE TempID intSELECT TempID = count FROM Product_info WHERE proId=proId IF TempID = 0RETURN 0ELSERETURN 1CREATE PROC
31、EDURE Product_info_ADDproId int output,name varchar,price varchar,proDate smalldatetime,storage varcharAS INSERT INTO Product_infoVALUESSET proId = IDENTITYCREATE PROCEDURE Product_info_UpdateproId int,name varchar,price varchar,proDate smalldatetime,storage varcharAS UPDATE Product_info SET name =
32、name,price = price,proDate = proDate,storage = storageWHERE proId=proId CREATE PROCEDURE Product_info_DeleteproId int AS DELETE Product_infoWHERE proId=proId CREATE PROCEDURE Product_info_GetModelproId int AS SELECT proId,name,price,proDate,storageFROM Product_infoWHERE proId=proId CREATE PROCEDURE
33、Product_info_GetListAS SELECT proId,name,price,proDate,storageFROM Product_infoCREATE PROCEDURE Repair_info_GetMaxIdASDECLARE TempID intSELECT TempID = max+1 FROM Repair_infoIF TempID IS NULLRETURN 1ELSERETURN TempIDCREATE PROCEDURE Repair_info_ExistsrepairId intASDECLARE TempID intSELECT TempID = c
34、ount FROM Repair_info WHERE repairId=repairId IF TempID = 0RETURN 0ELSERETURN 1CREATE PROCEDURE Repair_info_ADDrepairId int output,repairName nchar,repairtel nchar,product varchar,customer varchar,date smalldatetime,customertel ncharAS INSERT INTO Repair_infoVALUESSET repairId = IDENTITYCREATE PROCE
35、DURE Repair_info_UpdaterepairId int,repairName nchar,repairtel nchar,product varchar,customer varchar,date smalldatetime,customertel ncharAS UPDATE Repair_info SET repairName = repairName,repairtel = repairtel,product = product,customer = customer,date = date,customertel = customertelWHERE repairId=
36、repairId CREATE PROCEDURE Repair_info_DeleterepairId int AS DELETE Repair_infoWHERE repairId=repairId CREATE PROCEDURE Repair_info_GetModelrepairId int AS SELECT repairId,repairName,repairtel,product,customer,date,customertelFROM Repair_infoWHERE repairId=repairId CREATE PROCEDURE Repair_info_GetLis
37、tAS SELECT repairId,repairName,repairtel,product,customer,date,customertelFROM Repair_infoCREATE PROCEDURE Seller_info_Existsname varcharASDECLARE TempID intSELECT TempID = count FROM Seller_info WHERE name=name IF TempID = 0RETURN 0ELSERETURN 1CREATE PROCEDURE Seller_info_ADDname varchar,telephone
38、varchar,address varchar,product varchar,stockNum varchar,stockDate smalldatetime,stockPrice varcharAS INSERT INTO Seller_infoVALUESCREATE PROCEDURE Seller_info_Updatename varchar,telephone varchar,address varchar,product varchar,stockNum varchar,stockDate smalldatetime,stockPrice varcharAS UPDATE Se
39、ller_info SET telephone = telephone,address = address,product = product,stockNum = stockNum,stockDate = stockDate,stockPrice = stockPriceWHERE name=name CREATE PROCEDURE Seller_info_Deletename varcharAS DELETE Seller_infoWHERE name=name CREATE PROCEDURE Seller_info_GetModelname varcharAS SELECT name
40、,telephone,address,product,stockNum,stockDate,stockPriceFROM Seller_infoWHERE name=name CREATE PROCEDURE Seller_info_GetListAS SELECT name,telephone,address,product,stockNum,stockDate,stockPriceFROM Seller_info2.库存量增减的触发器:USETimeGroupGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERtriggerdbo.product
41、triondbo.Enter_storageafterupdateasupdateProduct_infosetstorage=storage+1 whereProduct_info.proId=6 安全性设计提示:提高软件系统的安全性应当从管理和设计两方面着手。这里仅考虑数据库的安全性设计。例如:应用级的用户XX密码不能与数据库相同,防止用户直接操作数据库。用户只能用XX登陆到应用软件,通过应用软件访问数据库,而没有其它途径操作数据库。6.1 防止用户直接操作数据库的方法提示:用户只能用XX登陆到应用软件,通过应用软件访问数据库,而没有其他途径操作数据库。6.2 用户XX密码的加密方法提示:
42、对用户XX的密码进行加密处理,确保在任何地方都不会出现密码的明文。例如:用户XX采用MD5进行数据加密后再录入数据库,以防止任何地方密码的安全性要求。Sa 密码登录6.3 角色与权限提示:确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。角色可以访问的表与列操作权限例如:管理员可访问所有表完全控制权限角色B7 优化提示:分析并优化数据库的时空效率,尽可能地提高处理速度并且降低数据占用空间。1分析时空效率的瓶颈,找出优化对象目标,并确定优先级。2当优化对象目标之间存在对抗时,给出折衷方案。3给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化处理等。优先级优化对象目标措施8 数据库管理与维护说明提示:在设计数据库的时候,及时给出管理与维护本数据库的方法,有助于将来撰写出正确完备的用户手册。24 / 24
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工过程开发导论教学课件
- PXGL05SSGF下的运营管理课件
- (部编版教材)三年级上册《金色的草地》经典ppt课件
- 第二课-展示自己的职业风采课件
- (新课标)高三化学一轮总复习第6章化学反应与能量变化同步测试卷ppt课件
- (新课标)高考数学大一轮复习第一章集合与常用逻辑用语1.1集合ppt课件文
- 第五讲法家思想现代解读课件
- 第二章-人工晶体的生长2122课件
- 第三章学前儿童身体保健教育分析课件
- (部编版)祖父的园子优秀ppt课件
- 第七章老年心理学-课件
- 趣味竞赛—成语猜猜看82张课件
- 化工过程开发与设计-绪论-第1章课件
- 路基路面弯沉试验(贝克曼梁)课件
- (部编版)小学语文一级上册《项链》教学ppt课件