数据库设计应当充分考虑应用的需求和开发工具的特征,应当充分利用和挖掘数据库的功能。好的数据库设计会给整个应用系统带来以下的好处:
l维护容易。当需求发生变化时,优良的数据库设计会使应用系统容易地适应这种变化;
l编程简单。由于数据库设计充分挖掘了数据库的功能,所以应用程序的复杂度可以明显降低;
l加快开发速度。因为数据库设计充分地考虑了需求和开发工具的特征,所以开发人员会感到左右逢源,得心应手,从而可以加快开发速度;
l系统具有良好的整体运行效率。
所以,数据库设计是软件开发前期的重要环节,是进行软件开发的基础,良好的数据库设计,是提高软件系统编码、开发进度和最后的执行程序执行效率的关键。
本文描述了北京市领导系统的数据库设计。
本报告的读者是项目经理,开发经理,项目组DBA,项目组开发人员。
北京市领导系统的数据库建设,是根据北京市组织部对干部教育管理管理需要而提出的,通过北京市领导干部系统建设,实现北京市领导干部的功能,减低领导干部培训成本,提高培训效率,科学的合理的有效的提高培训管理水平。
l本系统的名称:北京市系统;
l本项目的任务提出者:北京市组织部;
l开发者:北京某某科技有限公司;
l用户:北京市所有和公务员;
l北京市领导学习系统,托管在北京市经济信息中心机房,最终运行于Internet上;
l数据库管理系统:采用Oracle数据库服务器10G版。
完整性约束:完整性约束允许在表上定义某种约束条件,这些条件作为表定义的一部分存在,从而强制表中的数据满足一定的规则。
存储过程:存储过程是由流控制语句(if…else)和SQL语句书写的过程,这个过程经过编译和优化后存储在数据库服务器中,使用时只要调用即可。
触发器:触发器是一种特殊的存储过程,不同的是这种过程不是由程序调用来执行,而是通过数据库数据的更新自动地“触发”执行。
事务处理:事务是最小的逻辑工作单元,在这个单元中对数据库所有的更新要么全部成功要么全部失败。
并发处理:允许用户在没有冲突的情况下更新表中不同的行。行级锁和页级锁对联机事务处理非常有用。
序号生成器:数据库可以自动生成连续的序号供应用程序使用。
视图:视图是原始数据库表的变换,可给应用程序带来安全性、简单性和独立性。
分布处理:数据可以分布在网络的多个点上,数据本身支持分布查询和分布修改。
数据复制:数据可以在网络的多个数据库点相互复制。
l《北京市领导干部在线学习系统软件需求规格说明书》
l《北京市领导干部在线学习系统概要设计说明书》
第二章外部设计2.1标识符和状态
数据库名称定为:ELMS,操作系统建立用户:oracle,密码由配置管理员管理。
l北京市领导系统
1、数据库表表名命名规则
数据库表名均使用大写字母,总长度不可超过50位。
数据库表名的命名规则:模块分类码_表名。
表名命名规则:
由该表所代表实体的英文名称或英文缩写构成;如果在相同的表分类码中有表名重复的情况,则取其他名称或向后排号,依次类推……。
举例:
核心业务中的AICC课程存储表命名为:AICC_DES_INFO
2、数据库表列名命名规则
据库表列名均使用大写字母,总长度不可超过50位。
数据库表列名的命名规则:列名
其中:
列名由该表所代表实体的英文名称或英文缩写构成;如果在相同的表中有列名重复的情况,则取其他名称或向后排号,依次类推……。
在线学习系统中存储课程信息的表,可以命名为:ELMS_COURSE_INFO。
3、数据库表列属性的设计规则
数据库表的列需要定义以下属性:
l名称(Name):不允许为空
l代码(Code):不允许为空
l注释(Comment):允许为空。如果列有定义规则,应该在此说明
l定义域(Domain):允许为空。如果该列具有领域特征,应该定义
l数据类型(DataType):不允许为空
l长度(Length):不允许为空
l精确度(Precision):允许为空
l强制(Mandatory):允许为空
l主键(PrimaryKey):允许为空
l外键(ForeignKey):允许为空
4、主键外键索引建议命名规则
主键命名以_PK结尾,外键命名以_FK结尾,索引命名以_IDX结尾。
5、视图命名规则
视图命名均使用大写字母,总长度不可超过50位。
视图的命名规则:VW_表分类码_视图名。
视图的命名规则同表名命名规则。
6、存储过程命名规则
存储过程命名总长度不可超过50位。
存储过程命名规则:P_系统标识_存储过程标识。
7、函数命名规则
函数命名总长度不可超过50位。
函数命名规则:F_系统标识_函数名称。
8、触发器命名规则
函数命名规则:TR_<表名>_(after);
TI_<表名>_(instead)。
本部分内容以知识点的形式,向准备从事此数据库的生成、从事此数据库的测试、维护人员提供专门的指导,包括被送入数据库的数据的格式和标准、送入数据库的操作规程和步骤。
详细内容请参见附录A。
ER/Studio
面向数据分析员、数据库管理员和开发人员的强大的,多层次的针对逻辑和物理数据库设计和结构的数据模型工具。
产品版本:
ER/Studiostandard标准版
ER/Studioenterprise企业版
ER/StudioAdd-OnProductsER/Studio扩展产品有:
ER/StudioEnterprisePortal,MetaWizard,UniversalData模型s,ER/StudioViewer,EA/Studio
产品描述:
Embarcadero的ER/Studio是一款业内领先的数据模型工具,能够帮助企业用户发现、记录并使用数据。该产品具有双向数据库支持的特点,数据架构工程师能够轻松地对现有数据库进行逆向工程设计、分析及优化。借助ER/Studio强大的合作功能,用户能够提高工作效率并强化组织标准。
1、记录并强化现有数据库
2、提高数据的一致性
3、将模型在企业内部有效地交流
4、超越数据的
EmbarcaderoER/Studio建模套件
Embarcadero建模工具套件提供了一个用于分析、设计、创建和维护业务流程模型、概念模型、逻辑模型和物理模型的完整环境,可满足数据建模和企业体系结构建模的双重需要。Embarcadero建模组件中含有多个可单独或成套购买的工具,包括数据建模工具(ER/Studio)、服务器端模型储存库工具(ER/Repository)、元数据搜索和报告工具
(ER/Portal)、业务流程和概念建模工具(EA/Studio)、模式确认工具(SchemaExaminer)以及一个元数据集成工具(MetaWizard).
ER/Studio8.0.1,该工具提供了模型驱动方法,可实现企业内部从数据源到目标位置的数据跟踪查找。ER/Studio含有VisualDataLineage(可视化数据血统)功能,可帮助数据体系结构设计师和建模工程师解决有关数据集成、合并和规范化的业务问题。
ER/Studio8.0.1是第一款提供企业内部数据血统可视化表示的专业数据建模工具,允许数据专业人员在数据源和目标之间进行影响分析,并且无需查看代码即可实现可视化数据流分析和归档。
“由于规范化的冲击以及理解和归档数据源的强烈需要,有效跟踪数据血统的任务已经变得无比重要,”CDOTechnologies高级安全分析师RonLewis说。“使用其最新VisualDataLineage(可视化数据血统)功能,ER/Studio8.0简化了在数据库和平面文件之间跟踪数据移动的方法,最终有助于我们更好地理解政府客户组织中的数据资源。这使我们在促进数据合并、SOA迁移、FISMA顺应性和DIACAP需要等多个方面受益。”
ER/Studio8.0.1其他主要新功能包括SybaseIQ12.5和MicrosoftSQLServer2008等最新的数据库管理系统(DBMS)的支持、轻量级目录访问协议(LDAP)集成、属性级子模型、对象级比较标记。
ER/Studio8.0.1的主要新功能和优点包括:
-VisualDataLineage(可视化数据血统):在整个企业范围内可视化表示出数据所在位置、数据流动和更改方式,赋予用户自动灵活的处理程序和更加丰富的元数据。
-LDAP集成:一个通过LDAP和ActiveDirectory集成来管理用户储存库访问的自动方法,减少了在储存库安全层复制用户帐户更改的需要。
-企业体系结构支持:通过EA/Studio向该工具的现有数据建模功能添加业务流程建模和概念建模,提供企业级数据体系结构支持。
-属性级子模型:用户可以使用此功能选择想要在各个子模型中显示的特定属性,使得公司能够更加容易地管理复杂模型,在这些复制模型中有些特定实体的属性集合仅适用于部分受众。
-扩展DBMS支持:通过支持SybaseIQ12.5和MicrosoftSQLServer2008,ER/Studio目前支持所有主要数据库管理系统的数据建模工具,使得用户可以灵活使用任何数据库类型。
概念结构模型是各种数据模型的共同基础,相对于数据模型来说它独立于具体的计算机系统以及数据库管理系统,是抽象的模型。在逻辑结构设计中就是将抽象的概念模型转化为数据模型,概念模型剖析了数据的特点以及关系,数据模型则说明如何根据这些数据特点和关系对数据进行组织以及管理,并且通过与具体的数据库管理系统结合起来,指导数据库的具体实施。在数据库设计中使用关系模型作为数据模型,数据库管理系统根据实际应用需求确定。
在概念结构中根据业务需求数据的分类,建立了多个ER模型,分别是在线学习管理概念模型、互动社区管理概念模型、干部档案管理概念模型、统一用户管理概念模型。在逻辑结构设计主要是将这几个模型转化为对应的关系模型,关系模型主要用来存储几个概念模型中实体的数据实例,其中有些表包括有很多而不是一个。这几类表也不是数据库逻辑结构的全部,还包括其他的表,如各类属性表、关联表等。
在线学习系统描述数据逻辑结构是对在线学习系统描述数据概念模型的转化,也是数据在数据库中具体组织形式,相对于在实体关系模型中定义的实体属性,在逻辑结构中对属性数量进行了扩展,扩展属性包括指示属性以及描述属性。
3.1.1班级管理3.1.1.1班级信息表
实体名称
班级信息表
所有者
仅在逻辑设计中出现
NO
实体类型
独立
主键
班级信息表的主键ID
详细定义
注释
使用范围(用于模型)
模型
逻辑实体名称
不规范映射
逻辑
使用范围(用于子模型)
使用的子模型
Main模型
在线学习
属性
属性/逻辑角色名称
域
数据类型
是否为空
CLASS_ID
NUMERIC(10,0)
N
TRAINING_CLASS_ID
培训班分类的主键ID
关系
父关系:
类型
关联类型
业务名称
动词短语
反义词短语
外键
是否超类型
培训班分类
非唯一
一对多(含0)
子关系:
是否子类型
培训班人数限制
班级和审批人的关联表
北京市领导干部在线学习系统的物理数据模型设计要确定数据库的物理结构,包括数据库在物理设备上的存储结构和存取方法,数据表示和数据存储分配等,并得到一个具体的DBMS可接受的物理结构。
针对上述要求,采用以下设计:数据库采用字符集为GBK,所在地区为CN,页面大小为8192。
对于学习数据、管理数据、统一用户数据分别建立表空间“ELMS”“MNG”“UUM”,同时使用系统的临时表空间“TEMP”。
其中表空间“ELMS”大小10G,达到上限后每次增加1G,
表空间“ELMS”大小2G,达到上限后每次增加200M,
表空间“ELMS”大小5G,达到上限后每次增加500M。
系统物理存储使用NAS进行存储管理。
根据逻辑设计得出数据库所有对象的PDM图如下所示:
在线学习管理系统设计:
数据库的详细物理结构,请详细内容请参见由ERStudio编写的数据库设计文件。
第五章运用设计5.1安全保密设计
北京市领导干部在线学习系统的数据库安全性设计步骤大致如下:安全性系统总体结构与功能设计,结合整体数据库表设计的安全性系统数据库表设计,DBMS系统管理表一致性设计,面向数据库管理员的安全性管理功能设计。
1.确保进入数据库的数据正确无误。
输入数据检验是将错误数据阻挡在数据库之外的一般措施。
静态表是重要的输入支持,它使用户不可能输入有逻辑错误的数据,如性别只有男女之分,不可能有其他输入。
对通用输入检验采用公用函数,可以消灭程序员的经验差异,统一保证程序检验的完备性,统一测试。
也可以使用DBMS对数据类型、格式乃至内容的限制和检验功能,以保证数据库内数据的可信度,但是这使系统的容错性下降,有时给程序调试或数据录入方式带来不便,不是理想的办法。
2.双重用户管理
在系统中,Oracle提供的用户管理功能,又设计了该系统独立的用户管理系统。有关的设计包括:
(1)在数据库中定义了系统专用的用户管理表体系,包括用户基本表、角色基本表及其他关系表。
(2)为了方便日常数据库管理,北京市领导干部在线学习系统的数据库管理是在数据库管理员专用的客户机上,而不是在服务器端。
(3)依据系统专用的用户表,角色表进行用户资格审查。
3.必要时采取基于数据安全性的应用对象表头设计
对特殊的应用对象表采取统一设计表头的方式进行,通过公用程序(行触发器)适时地写入相应的内容。表头由如下字段构成:
l最终修改程序ID
l最终修改机器号
l最终修改用户ID
l有效位
用这个表头可以实现以下一些功能:
(1)用“有效位”实现误删除时的恢复,即每次删除时并不真正删除,只将有效位置为“假”。
(3)追踪某个数据库表的全部修改内容,即数据库审计。
此外,还可以进行各种统计,以作为数据库升级扩充时的设计参考,例如数据库修改率、追加率、追加增长率、各部门更新数据库比率等。
4.面向角色的动态功能组合
阻止非法访问的一个最好方法是将用户不拥有访问权限的功能隐蔽起来,使之不知道系统的全貌,不给他做恶意试探的机会。这是按角色拥有权限动态生成面向指定用户系统界面设计的主要思路。
馆长整理资源不易,欢迎打赏,感谢那些支持我的朋友,谢谢,谢谢,谢谢!
您的支持是我成长的动力!交个朋友,一起成长。
-产品经理资料馆-
我们努力成为产品经理的朋友的工具箱、资料馆,您的需要就是我们努力的方向。欢迎您给我们提出宝贵的意见和建议。