课程设计说明书
提示:
(1)本文档问学生完成课程设计后,必须撰写的课程设计说明书,且学生完成本文档的撰写后必须提交给课程设计指导老师,否则视该学生该次课程设计无效。
(2)本文档各个部分都有相应的填写说明,学生只需要按照填写蓝色字体的填写说明填写相应的部分即可。注意的是:最后提交给指导老师的文档不应当有蓝色的填写说明文字。
题目
系(部)
专业(班级)
姓名
学号
指导教师
起止日期
课程设计任务书
课程名称:数据库系统原理
设计题目:
提示:学生需要在此出填写自己所选择的数据库系统课程设计题目信息,数据库系统课程设计备选题目见《数据库系统课程设计任务书》。
设计工作量:
40课时
工作计划:
见课表
指导教师签名: 日期:
教研室主任签名: 日期:
系主任签名: 日期:
长沙学院课程设计鉴定表
| 姓名 | 学号 | 专业 | 班级 | ||||||||
| 设计题目 | 指导教师 | ||||||||||
| 指导教师意见: 评定等级: 教师签名: 日期: | |||||||||||
| 答辩小组意见: 评定等级: 答辩小组长签名: 日期: | |||||||||||
| 教研室意见: 教研室主任签名: 日期: | |||||||||||
| 系(部)意见: 系主任签名: 日期: | |||||||||||
| 说明 | 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类; | ||||||||||
1.1编写目的
例如:本文档是xx系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《xx数据库设计和开发规范》。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。
1.2参考资料
列出有关资料的名称、作者、文件编号或版本等。参考资料包括:
a.需求说明书、架构设计说明书等;
b.本项目的其他已发表的文件;
c.引用文件、资料、软件开发标准等。
| 资料名称 | 作者 | 文件编号、版本 |
| 《数据库系统概论》 | 王珊、萨师煊 | 2006年5月第4版 |
提示:本部分完成此数据库系统业务描述和需求分析
2.1 业务描述
提示:本部分完成此数据库系统的业务描述,例如:
(1)数据库系统创建的背景
(2)数据库系统要完成的业务流程及工作内容
(4)揭示该数据库的资源需求和设计约束
2.2 需求分析
提示:本部分完成此数据库系统的需求分析,例如:
(1)分析该业务流程的内在联系
(2)将业务流程节点抽象成数据库对象,并描述各个节点的依赖关系在数据上的反映。
三、数据库环境说明
提示:
(1)说明所采用的数据库系统,设计工具,编程工具等
(2)详细配置
例如:
| 数据库实例 | 数据库系统 | 数据库部署环境 | 数据库设计工具 | 数据库存放位置 | 说明 |
| 实例名,文件名 | 名称:如MySql,版本:4.0 | 软硬件、网络环境 | 例如:pb,visio,rose | 存放位置,绝对路径/相对路径 | 实例用途说明 |
3.1 数据库对象命名规则
提示:
说明本数据库的命名规则,即描述数据库对象的命名规则。作者需要填写以下表格:
| 数据库对象 | 命名规则 | 备注 |
| 表 | Tbl_功能描述字符串 | 例如:tbl_studen学生表 |
| 视图 | View_功能描述字符串 | 例如:view_student学生视图 |
提示:说明本数据库数据项的编码规则,作者需要填写以下表格:
| 数据项 | 命名规则 | 数据类型 | 长度范围 | 备注 |
| 学生学号 | 班号+班内序号(两位整数00-99) | 定长字符串 | 10位 | |
提示:数据库设计人员根据需求文档,进行数据库系统的逻辑设计,注意的是系统设计人员可以选择不同逻辑设计工具进行设计,作者可以根据所选用工具的不同适当的自主组织本章节内容,只需要保证能体现出设计人员的设计思想和设计结果即可。
通常此部分内容会包括以下内容:
(1)创建与数据库相关的那部分实体关系图(ERD)。
(2)创建数据库系统的关系模型。
六、物理设计
提示:
(1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。
(2)对表结构进行规范化处理(第三范式)。
5.1表汇总
| 表名 | 功能说明 |
| 表A | |
| 表B | |
| 表C |
表的索引: 索引是否建立要根据具体的业务需求来确定。
允许为空:不填的表示为“是”。
唯一:不填的表示为“是”。
表字段的区别度:主要是考虑到将来在此字段上建立索引类型选择时作为参考,当字段值唯一时可以不考虑,当字段值不唯一时,估算一个区别度,近似即可。例如:如果一个表的NAME字段有共2000个值,其中有1999个不同值,1999/2000=0.99 越接近1区别度越高,反之区别度越低。
| 表名 | |||||||
| 数据库用户 | |||||||
| 主键 | |||||||
| 其他排序字段 | |||||||
| 索引字段 | |||||||
| 序号 | 字段名称 | 数据类型(精度范围) | 允许为空Y/N | 唯一Y/N | 区别度 | 默认值 | 约束条件/说明 |
| 此表格的序号,与数据库的序号无关 | [字段名称] | [数据类型] | [Y/N] | [Y/N] | [高/中/低] | 主键、外键,字段含义,相关说明等 | |
| sql脚本 | CREATE TABLE [XXX表名] ( [字段名称] [数据类型] [NOT NULL /NULL] , [字段名称] [数据类型] [NOT NULL /NULL] , [字段名称] [数据类型] [NOT NULL /NULL] , [字段名称] [数据类型] [NOT NULL /NULL] , CONSTRAINT PK_[XXX表名]_[XXX表字段] PRIMARY KEY ([字段名称]) ) type = INNODB; ALTER TABLE [XXX表名] ADD CONSTRAINT FK_[XXX表名]_[YYY表名]_[XXX表字段] FOREIGN KEY ([字段名称]) REFERENCES [YYY表名] ([字段名称]) CREATE INDEX [索引名] ON [XXX表名] ([字段名称]) | ||||||
| 备注 | [备注信息] | ||||||
[根据XXX产品的概要设计文档来确定。
视图的命名按照《xx数据库设计规范》中关于视图的命名规范命名。
视图的设计应注意以下几点:
1尽量减少列中使用的公式。
2去掉所有不必要的列。
3不要使同一个文档属于多个分类。
4避免使用表单公式。]
5.4存储过程、函数及触发器的设计
[存储过程及触发器的命名按照《xx数据库设计规范》中关于存储过程及触发器的命名规范命名。
存储过程:根据具体得业务逻辑确定输入参数个数,类型,确定对哪几个表进行何种作。
在定义存储过程时,要使用其完成单一、相对集中的任务,不要定义已由其他提供功能的过程。例如:不要定义强制数据完整性的过程(使用完整性约束)。
函数 :函数与存储过程非常相似,它也是存储在数据库中的对象。但是可以在SQL命令中使用函数。就好像建立自己的substr函数一样
触发器 :触发器是存储在数据库中的程序,它在某一特定事件发生时执行。这些程序可以用PL/SQL和java语言编写,也可以用作c语言的调用,数据库允许用户定义这些程序,然后在相关的表,视图或者数据库动作执行insert,update或delete语句时执行。]
七、安全性设计
提示:提高软件系统的安全性应当从“管理”和“设计”两方面着手。这里仅考虑数据库的安全性设计。
例如:应用级的用户帐号密码不能与数据库相同,防止用户直接操作数据库。用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其它途径操作数据库。
6.1防止用户直接操作数据库的方法
提示:用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其他途径操作数据库。
6.2用户帐号密码的加密方法
提示:对用户帐号的密码进行加密处理,确保在任何地方都不会出现密码的明文。
此部分内容作者可以选择保留和去除。
例如:用户帐号采用MD5进行数据加密后再录入数据库,以防止任何地方密码的安全性要求。
6.3角色与权限
提示:确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。
此部分内容作者可以选择保留和去除。
| 角色 | 可以访问的表与列 | 操作权限 |
例如:管理员 | 可访问所有表 | 完全控制权限 |
角色B | ||
提示:在设计数据库的时候,及时给出管理与维护本数据库的方法,有助于将来撰写出正确完备的用户手册。下载本文