数据库设计原则--总结篇(是许多人在大量的数据库分析与设计实践中,逐步总结出来的)

数据库设计原则--总结篇(是许多人在大量的数据库分析与设计实践中,逐步总结出来的)
数据库设计原则--总结篇(是许多人在大量的数据库分析与设计实践中,逐步总结出来的)

以下十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的。对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握。并逐步做到:在应用中发展,在发展中应用。

1. 原始单据与实体之间的关系

可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。

〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。

2. 主键与外键

一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。

主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。

3. 基本表的性质

基本表与中间表、临时表不同,因为它具有如下四个特性:

(1) 原子性。基本表中的字段是不可再分解的。

(2) 原始性。基本表中的记录是原始数据(基础数据)的记录。

(3) 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。

(4) 稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。

理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。

4. 范式标准

基本表及其字段之间的关系, 应尽量满足第三范式。但是,满足第三范式的数据库设计,往往不是最好的设计。

为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。

〖例2〗:有一张存放商品的基本表,如表1所示。“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。

在Rose 2002中,规定列有两种类型:数据列和计算列。“金额”这样的列被称为“计算列”,而“单价”和“数量”这样的列被称为“数据列”。

表1 商品表的表结构

商品名称商品型号单价数量金额

电视机29吋2,500 40 100,000

5. 通俗地理解三个范式

通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解

三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):

第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;

第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;

第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。

没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降

低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理

数据模型设计时考虑。降低范式就是增加字段,允许冗余。

6. 要善于识别与正确处理多对多的关系

若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来一

个多对多的关系,现在变为两个一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个

实体,实质上是一个较复杂的关系,它对应一张基本表。一般来讲,数据库设计工具不能识别多对多的关系,但能处

理多对多的关系。

〖例3〗:在“图书馆信息系统”中,“图书”是一个实体,“读者”也是一个实体。这两个实体之间的关系,是一个典型的多对多关系:一本图书在不同时间可以被多个读者借阅,一个读者又可以借多本图书。为此,要在二者之间增加第三个实体,该实体取名为“借还书”,它的属性为:借还时间、借还标志(0表示借书,1表示还书),另外,它还应该有两个外键(“图书”的主键,“读者”的主键),使它能与“图书”和“读者”连接。

7. 主键PK的取值方法

PK是供程序员使用的表间连接工具,可以是一无物理意义的数字串, 由程序自动加1来实现。也可以是有物理意义的字段名或字段名的组合。不过前者比后者好。当PK是字段名的组合时,建议字段的个数不要太多,多了不但索引占用空间大,而且速度也慢。

8. 正确认识数据冗余

主键与外键在多表中的重复出现, 不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚。非键字段的重复出现, 才是数据冗余!而且是一种低级冗余,即重复性的冗余。高级冗余不是字段的重复出现,而是字段的派生出现。

〖例4〗:商品中的“单价、数量、金额”三个字段,“金额”就是由“单价”乘以“数量”派生出来的,它就是冗余,而且是一种高级冗余。冗余的目的是为了提高处理速度。只有低级冗余才会增加数据的不一致性,因为同一数据,可能从不同时间、地点、角色上多次录入。因此,我们提倡高级冗余(派生性冗余),反对低级冗余(重复性冗余)。

9. E--R图没有标准答案

信息系统的E--R图没有标准答案,因为它的设计与画法不是惟一的,只要它覆盖了系统需求的业务范围和功能内容,就是可行的。反之要修改E--R图。尽管它没有惟一的标准答案,并不意味着可以随意设计。好的E—R图的标准是:结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。

10 . 视图技术在数据库设计中很有用

与基本表、代码表、中间表不同,视图是一种虚表,它依赖数据源的实表而存在。视图是供程序员使用数据库的一个窗口,是基表数据综合的一种形式, 是数据处理的一种方法,是用户数据保密的一种手段。为了进行复杂处理、提高运算速度和节省存储空间, 视图的定义深度一般不得超过三层。若三层视图仍不够用, 则应在视图上定义临时表, 在临时表上再定义视图。这样反复交迭定义, 视图的深度就不受限制了。

对于某些与国家政治、经济、技术、军事和安全利益有关的信息系统,视图的作用更加重要。这些系统的基本表完成物理设计之后,立即在基本表上建立第一层视图,这层视图的个数和结构,与基本表的个数和结构是完全相同。

并且规定,所有的程序员,一律只准在视图上操作。只有数据库管理员,带着多个人员共同掌握的“安全钥匙”,才能直接在基本表上操作。请读者想想:这是为什么?

11. 中间表、报表和临时表

中间表是存放统计数据的表,它是为数据仓库、输出报表或查询结果而设计的,有时它没有主键与外键(数据仓库除外)。临时表是程序员个人设计的,存放临时记录,为个人所用。基表和中间表由DBA维护,临时表由程序员自己用程序自动维护。

12. 完整性约束表现在三个方面

域的完整性:用Check来实现约束,在数据库设计工具中,对字段的取值范围进行定义时,有一个Check按钮,通过它定义字段的值城。

参照完整性:用PK、FK、表级触发器来实现。

用户定义完整性:它是一些业务规则,用存储过程和触发器来实现。

13. 防止数据库设计打补丁的方法是“三少原则”

(1) 一个数据库中表的个数越少越好。只有表的个数少了,才能说明系统的E--R图少而精,去掉了重复的多余的实体,形成了对客观世界的高度抽象,进行了系统的数据集成,防止了打补丁式的设计;

(2) 一个表中组合主键的字段个数越少越好。因为主键的作用,一是建主键索引,二是做为子表的外键,所以组合主键的字段个数少了,不仅节省了运行时间,而且节省了索引存储空间;

(3) 一个表中的字段个数越少越好。只有字段的个数少了,才能说明在系统中不存在数据重复,且很少有数据冗余,更重要的是督促读者学会“列变行”,这样就防止了将子表中的字段拉入到主表中去,在主表中留下许

多空余的字段。所谓“列变行”,就是将主表中的一部分内容拉出去,另外单独建一个子表。这个方法很简单,有的人就是不习惯、不采纳、不执行。

数据库设计的实用原则是:在数据冗余和处理速度之间找到合适的平衡点。“三少”是一个整体概念,综合观点,不能孤立某一个原则。该原则是相对的,不是绝对的。“三多”原则肯定是错误的。试想:若覆盖系统同样的功能,一百个实体(共一千个属性) 的E--R图,肯定比二百个实体(共二千个属性) 的E--R图,要好得多。

提倡“三少”原则,是叫读者学会利用数据库设计技术进行系统的数据集成。数据集成的步骤是将文件系统集成为应用数据库,将应用数据库集成为主题数据库,将主题数据库集成为全局综合数据库。集成的程度越高,数据共享性就越强,信息孤岛现象就越少,整个企业信息系统的全局E—R图中实体的个数、主键的个数、属性的个数就会越少。

提倡“三少”原则的目的,是防止读者利用打补丁技术,不断地对数据库进行增删改,使企业数据库变成了随意设计数据库表的“垃圾堆”,或数据库表的“大杂院”,最后造成数据库中的基本表、代码表、中间表、临时表杂乱无章,不计其数,导致企事业单位的信息系统无法维护而瘫痪。

“三多”原则任何人都可以做到,该原则是“打补丁方法”设计数据库的歪理学说。“三少”原则是少而精的原则,它要求有较高的数据库设计技巧与艺术,不是任何人都能做到的,因为该原则是杜绝用“打补丁方法”

设计数据库的理论依据。

14. 提高数据库运行效率的办法

在给定的系统硬件和系统软件条件下,提高数据库系统的运行效率的办法是:

(1) 在数据库物理设计时,降低范式,增加冗余, 少用触发器, 多用存储过程。

(2) 当计算非常复杂、而且记录条数非常巨大时(例如一千万条),复杂计算要先在数据库外面,以文件系统方式用C++语言计算处理完成之后,最后才入库追加到表中去。这是电信计费系统设计的经验。

(3) 发现某个表的记录太多,例如超过一千万条,则要对该表进行水平分割。水平分割的做法是,以该表主键PK的某个值为界线,将该表的记录水平分割为两个表。若发现某个表的字段太多,例如超过八十个,则垂直分割该表,将原来的一个表分解为两个表。

(4) 对数据库管理系统DBMS进行系统优化,即优化各种系统参数,如缓冲区个数。

(5) 在使用面向数据的SQL语言进行程序设计时,尽量采取优化算法。

总之,要提高数据库的运行效率,必须从数据库系统级优化、数据库设计级优化、程序实现级优化,这三个层次上同时下功夫。

数据库在线测试试题

数据库在线测试试题 选择题 1。下述( C)不是DBA数据库管理员的职责 完整性约束说明 定义数据库模式 数据库管理系统设计 数据库安全 2.用户或应用程序看到的那部分局部逻辑结构和特征的描述是( A ),它是模式的逻辑子集子模式 模式 内模式 物理模式 3。要保证数据库的逻辑数据独立性,需要修改的是(C) 模式与内模式之间的映射 模式 模式与外模式的映射 三层模式 4。要保证数据库的数据独立性,需要修改的是( A ) 三层之间的两种映射 模式与外模式 模式与内模式 三层模式

5.描述数据库全体数据的全局逻辑结构和特性的是( B) 外模式 模式 内模式 用户模式 6。数据库系统的数据独立性体现在( B ) 不会因为数据的变化而影响到应用程序 不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序 不会因为某些存储结构的变化而影响其他的存储结构 不会因为存储策略的变化而影响存储结构 7.下列四项中,不属于数据库系统特点的是(B ) 数据共享 数据冗余度高 数据完整性 数据独立性高 8.下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是( D )。I。人工管理阶段 II.文件系统阶段 III.数据库阶段 I 和 II 只有 II II 和 III 只有 I 9.DBS是采用了数据库技术的计算机系统,它是一个集合体,包含数据库、计算机硬件、软件和( D ) 系统分析员 程序员

操作员 数据库管理员 10.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(C)。 DBMS包括DB和DBS DBS就是DB,也就是DBMS DBS包括DB和DBMS DB包括DBS和DBMS 2填空题 1。数据库是长期存储在计算机内有组织、可共享、的数据集合。 2。DBMS是指(数据库管理系统),它是位于(用户),和(操作系统) , 之间的一层管理软件 3.数据库管理系统的主要功能有, 数据定义,数据操纵,数据库运行管理,数据库的建立维护维护等4个方面 4.数据独立性又可分为(逻辑独立性)和(物理独立性) 5。当数据的物理存储改变了,应用程序不变,而由DBMS处理这种改变,这是指数据的(物理独立性) 6。数据模型是由(数据结构) 、(数据操作)和(完整性约束)三部分组成的 7。(数据结构)是对数据系统的静态特性的描述,_(数据操作)是对数据库系统的动态特性的描述8.数据库体系结构按照(外模式)、(模式)和(内模式)三级结构进行组织 9.数据库体系结构按照___________ 、___________ 和_______________ 三级结构进行组织 10.实体之间的联系可抽象为三类,它们是(一对一)、(一对多)和(多对多) 11。数据冗余可能导致的问题有(存储空间大)和(数据不一致) 12.数据管理技术经历了(人工管理) 、(文件管理)和(数据库管理)三个阶段

软件工程-数据库设计规范与命名规则

数据库设计规范、技巧与命名规范 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。 数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据, 满足用户信息要求和处理要求。 数据库设计的各阶段: A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。 B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。 C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。 然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。 D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点:调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis, 简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。 2. 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。 概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一 DBMS 支持的特定数据模型。 概念模型特点: (1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 (2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术, 用于建立系统信息模型。 使用IDEF1X方法创建E-R模型的步骤如下所示:

数据库设计与实践模拟试题及答案(5)

《数据库设计与实践》模拟试题及答案(5) 1.影响数据库物理设计的因素有哪些? 答:影响数据库物理设计的主要因素有以下几个方面: (1)选用的DBMS (2)应用环境 (3)数据本身的特性 (4)支持环境 2.什么叫簇集?什么情况下建簇集?簇集的方法是什么? 答:所谓簇集,就是把有关的元组集中在一个物理块内或物理上相邻的若干个物理块内,以提高对某些数据的访问速度。具体方法是将按某一键值的记录存放在一起。如果这些键值经常被查询,建簇集可以提高查询速度。但是,若要按多个键值进行查询,建簇集就无意义,且浪费时间。 3. 在关系上建立索引的好处是什么? 答:在关系上建立索引可使DBMS快速地在文件中查找记录,并能快速地响应用户的查询。 4.在数据库中快速访问数据,应采用什么方法? 答:在数据库中快速访问数据,应采用的方法是在文件上建立适当的索引。 5.稠密主索引与辅助索引有何区别? 答:1.主索引中一系列的后续值指向的记录是连续存放的。辅助索引中一系列的后续值指向的记录不是连续存放的。 2.辅助索引的结构可以和主索引不同。 3.按主索引顺序对文件进行顺序扫描非常有效,因记录的物理存储顺序和索引顺序一 致。而对辅助索引,存储文件的物理顺序和辅助索引的索引顺序不同。如按辅助键的顺序对文件进行顺序扫描,则读每一条记录都很可能需要从磁盘读入一个新的块,很慢。 6.把附图12转换成关系数据模式。假设数据量大,有如下一些常用的数据库操作: (1)查询某顾客于某日所订货物清单。 (2)某顾客送来一新订单。 (3)某顾客的订单已执行或终止。 (4)查询某顾客的某订单的某项订货由哪个厂家供货。 (5)查询产品的库存量及单价。 试根据一般物理设计原则提出初步的物理设计方案。读者可根据需要做一些合理的假定。

数据库设计方法及

数据库设计方法及命名规范

- - 2 数据库设计方法、规范与技巧 (5) 一、数据库设计过程 (5) 1. 需求分析阶段 (6) 2. 概念结构设计阶段 (9) 2.1 第零步——初始化工程 (10) 2.2 第一步——定义实体 (10) 2.3 第二步——定义联系 (11) 2.4 第三步——定义码 (11) 2.5 第四步——定义属性 (12) 2.6 第五步——定义其他对象和规则 (12) 3. 逻辑结构设计阶段 (13) 4. 数据库物理设计阶段 (15) 5. 数据库实施阶段 (15) 6. 数据库运行和维护阶段 (16) 7.建模工具的使用 (16) 二、数据库设计技巧 (18) 1. 设计数据库之前(需求分析阶段) (18) 2. 表和字段的设计(数据库逻辑设计) (19) 1) 标准化和规范化 (19) 2) 数据驱动 (20)

- - 3 3) 考虑各种变化 (21) 4) 对地址和电话采用多个字段 (22) 5) 使用角色实体定义属于某类别的列 (22) 6) 选择数字类型和文本类型尽量充足 (23) 7) 增加删除标记字段 (24) 3. 选择键和索引(数据库逻辑设计) (24) 4. 数据完整性设计(数据库逻辑设计) (27) 1) 完整性实现机制: (27) 2) 用约束而非商务规则强制数据完整性 (27) 3) 强制指示完整性 (28) 4) 使用查找控制数据完整性 (28) 5) 采用视图 (28) 5. 其他设计技巧 (29) 1) 避免使用触发器 (29) 2) 使用常用英语(或者其他任何语言)而不 要使用编码 (29) 3) 保存常用信息 (29) 4) 包含版本机制 (30) 5) 编制文档 (30) 6) 测试、测试、反复测试 (31) 7) 检查设计 (31) 三、数据库命名规范 (31) 1. 实体(表)的命名 (31) 2. 属性(列)的命名 (34)

数据库设计和编码规范

数据库设计和编码规范 Version

目录

简介 读者对象 此文档说明书供开发部全体成员阅读。 目的 一个合理的数据库结构设计是保证系统性能的基础。一个好的规范让新手容易进入状态且少犯错,保持团队支持顺畅,系统长久使用后不至于紊乱,让管理者易于在众多对象中,获取所需或理清问题。 同时,定义标准程序也需要团队合作,讨论出大家愿意遵循的规范。随着时间演进,还需要逐步校订与修改规范,让团队运行更为顺畅。 数据库命名规范 团队开发与管理信息系统讲究默契,而制定服务器、数据库对象、变量等命名规则是建立默契的基本。 命名规则是让所有的数据库用户,如数据库管理员、程序设计人员和程序开发人员,可以直观地辨识对象用途。而命名规则大都约定俗成,可以依照公司文化、团队习惯修改并落实。 规范总体要求 1.避免使用系统产品本身的惯例,让用户混淆自定义对象和系统对象或关键词。 例如,存储过程不要以sp_或xp_开头,因为SQL SERVER的系统存储过程以 sp_开头,扩展存储过程以xp_开头。 2.不要使用空白符号、运算符号、中文字、关键词来命名对象。 3.名称不宜过于简略,要让对象的用途直观易懂,但也不宜过长,造成使用不方 便。 4.不用为数据表内字段名称加上数据类型的缩写。 5.名称中最好不要包括中划线。

6.禁止使用[拼音]+[英语]的方式来命名数据库对象或变量。 数据库对象命名规范 我们约定,数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。避免中文和保留关键字,做到简洁又有意义。前缀就是要求每种对象有固定的开头字符串,而开头字符串宜短且字数统一。可以讨论一下对各种对象的命名规范,通过后严格按照要求实施。例如:

数据库设计 习题及答案

数据库设计 1.如何构造出一个合适的数据逻辑结构是()主要解决的问题。 A.物理结构设计 B.数据字典 C.逻辑结构设计 D.关系数据库查询 2.概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的()。 A.数据模型 B.概念模型 C.层次模型 D.关系模型 3.数据库设计中,确定数据库存储结构,即确定关系、索引、聚簇、日志、备份等数据的存储安排和存储结构,这是数据库设计的()。 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 4.数据库物理设计完成后,进入数据库实施阶段,下述工作中,()一般不属于实施阶段的工作。 A.建立库结构 B.系统调试 C.加载数据 D.扩充功能 5.数据库设计可划分为六个阶段,每个阶段都有自己的设计内容,“为哪些关系在哪些属性上建什么样的索引”这一设计内容应该属于()设计阶段。 A.概念设计 B.逻辑设计 C.物理设计 D.全局设计 6.在关系数据库设计中,设计关系模式是数据库设计中()阶段的任务。 A.逻辑设计阶段 B.概念设计阶段 C.物理设计阶段 D.需求分析阶段 7.在关系数据库设计中,对关系进行规范化处理,使关系达到一定的范式,例如达到3NF,这是()阶段的任务。

A.需求分析阶段 B.概念设计阶段 C.物理设计阶段 D.逻辑设计阶段 8.概念模型是现实世界的第一层抽象,这一类最著名的模型是()。 A.层次模型 B.关系模型 C.网状模型 D.实体-联系模型 9.在概念模型中的客观存在并可相互区别的事物称()。 A.实体 B.元组 C.属性 D.节点 10.公司有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是()。 A.多对多 B.一对一 C.一对多 11.关系数据库中,实现实体之间的联系是通过关系与关系之间的()。 A.公共索引 B.公共存储 C.公共元组 D.公共属性 12.数据流程图是用于数据库设计中()阶段的工具。 A.概要设计 B.可行性分析 C.程序编码 D.需求分析 13.在数据库设计中,将E-R图转换成关系数据模型的过程属于()。 A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段 14.子模式DDL是用来描述()。 A.数据库的总体逻辑结构 B.数据库的局部逻辑结构

数据库设计实践总结

数据库设计实践总结 数据库设计的优劣和体现性能的高低对整个系统软件的生命周期长短具有重要的影响意义,其中辅助数据库设计程序是软件开发和应用最有效的辅助设计工具。以下是的数据库设计实践总结,欢迎阅读。 1.尽量使用数据冗余。 随着磁盘容量的大幅飙升,这一点已经不会产生什么问题。当然冗余归冗余,不能把数据的关联弄的乱七八糟的。 本科数据库课程中学的知识直接拿来,在实际中会出大问题。满足三级范式的数据库结构会让你面对大量的连表查询,应用程序中会用到大量的数据库访问,既繁琐(烦死你)又使程序运行速度减慢。 2.尽量不要使用varmax)类型 这一点主要是用动软代码生成器自动生成代码时,如果varchar 的最大长度指定为max,在自动生成代码时,它无法生成这一最大长度,需要手动补进去。 现在感觉用个var1000)就够了。 3.使用预留字段。 数据库表(尤其是动态表格),在你把所有字段都设计好了之后,再添加几个备注字段和预留字段。 之前我觉得这样做没多大意义,因为预留字段的列名是没有实际意义的。这样程序中使用的时候就会让人费解。但现在觉得还是有必要的,很有必要的,即便在用到时需要自己十分清楚之前预留的无

意义字段现在表示什么意义。不过我的第二个数据库中还是没采用,这也是遗憾之处埃 个人感觉用note1、note2、r1(r表示reserve)、r2、r3,2个备注字段和3个预留字段就足够了,再多的话就不容易记住哪个字段 具体表示什么意义了,容易晕。类型就都用var200)吧。 在我看来,数据库课程设计主要的目标是利用课程中学到的数 据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。 当我们这组决定做大学生就业咨询系统时,我们并没有着手写 程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们进行模块的分工。每个人都有自己的模块设计,而且写出来的代码要求可以实现相应模块的功能,得到理想的效果。当每个人都把自己的分工做好了,最后会由一个人把这些全部组合搭建在一起。我们使用的是html和php相互嵌套使用,当一个系统做好了之后,我会好好 地把程序都看一遍,理会其中的奥秘。 我所负责的是数据库的备份和还原还有一些界面的实现。还记 得自己刚接触html的时候,觉得很感兴趣,所以有一段时间几乎到 了痴迷的程度。然而php是我刚接触不久的一种编程语言。不过觉得它的功能真的很强大,可以开发出很多大型的系统。但是在做备份和

数据库表设计的几条准则

数据库表设计的几条准则 前言:数据库设计在平时的工作是必不可少的,良好的表设计可以让我们查询效率更高,加快网站访问速度,提升用户体验,并且方便于我们查询数据。本篇博客就来聚焦一下,如何设计出高可复用,优良的表结构,从而在实际的工作中使我们写出更好的代码。 数据库表设计的几条黄金准则: 一:字段的原子性 解释:保证每列的原子性,不可分解,意思表达要清楚,不能含糊,高度概括字段的含义,能用一个字段表达清楚的绝不使用第二个字段,可以用两个字段表达清楚的绝不使用一个 字段 二:主键设计 解释:主键不要与业务逻辑有所关联,最好是毫无意义的一串独立不重复的数字,常见的比如UUID或者将主键设置为Auto_increment; 三:字段使用次数 解释:对于频繁修改的字段(一般是指状态类字段)最好用独立的数字或者单个字母去表示,不用使用汉字或者英文 四:字段长度 解释:建表的时候,字段长度尽量要比实际业务的字段大3-5个字段左右(考虑到合理性和伸缩性),最好是2的n次方幂值。不能建比实际业务太大的字段长度,这是因为如果字段长度过大,在进行查询的时候索引在B- Tree树上遍历会越耗费时间,从而查询的时间会越久;但是绝对不能建小,否则mysql数据会报错,程序会抛出异常; 五:关于外键 解释:尽量不要建立外键,保证每个表的独立性。如果非得保持一定的关系,最好是通过id 进行关联 六:动静分离 解释:最好做好静态表和动态表的分离。这里解释一下静态表和动态表的含义,静态表:存储着一些固定不变的资源,比如城市/地区名/国家。动态表:一些频繁修改的表 七:关于code值 解释:使用数字码或者字母去代替实际的名字,也就是尽量把name转换为code,因为name 可能会变(万一变化就会查询处多条数据,从而抛出错误),但是code一般是不会变化的.另一方面,code值存储的字符较少,也能减少数据库的压力 八:关于Null值 解释:不要有null值,有null值的话,数据库在进行索引的时候查询的时间更久,从而浪费更多的时间!

题库型考试自动组卷系统数据库设计

辽东学院本科毕业论文(设计) 题库型考试自动组卷系统的设计与实现 The Design and Implementation of Auto-Generating Examination Paper about the Item Bank Type Examination 学生姓名:艾萍 学院:信息技术学院 专业:信息管理与信息系统 班级:B0601 学号:0911060101 指导教师:陈志勇 审阅教师: 完成日期:2010年5月25日 辽东学院 Eastern Liaoning University

独创性说明 作者郑重声明:本毕业论文(设计)是我个人在指导教师指导下进行的研究工作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,毕业论文(设计)中不包含其他人已经发表或撰写的研究成果,也不包含为获得辽东学院或其他单位的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名:___________ 日期:__ __

摘要 组卷考试在计算机网络下完成,可以大大提高考试工作的效率和质量。项目采用Visual Studio 2005开发平台和SQL Server 2005数据库技术,依据面向对象的分析方法,开发出了基于C/S模式的题库型考试自动组卷系统。 本文从题库型考试自动组卷系统在考试中发挥的作用出发,详细阐述了一个功能较完善的组卷系统的服务器端和客户端开发过程。首先进行了项目概述,简单介绍了项目开发的背景及项目开发的意义;接下来是系统规划阶段,首先对项目开发的可行性进行了分析;在需求分析阶段,通过对实际考试的功能需求分析,得到了系统用例;系统设计阶段主要完成了开发模式的选择、功能模块的划分、动态图的绘制、类的设计、数据库的设计;系统实现阶段介绍系统主要功能的关键代码。 本系统的设计实施为题库型考试自动组卷系统的运行做基础,同时为组卷考试系统的开发提供一个参考模式,并进一步推动高校的校园信息化建设。 关键词:题库;自动化;试卷;在线考试

11-个重要的数据库设计规则

11-个重要的数据库设计规则

?简介 在您开始阅读这篇文章之前,我得明确地告诉您,我并不是一个数据库设计领域的大师。以下列出的11点是我对自己在平时项目实践和阅读中学习到的经验总结出来的个人见解。我个人认为它们对我的数据库设计提供了很大的帮助。实属一家之言,欢迎拍砖: ) 我之所以写下这篇这么完整的文章是因为,很多开发者一参与到数据库设计,就会很自然地把“三范式”当作银弹一样来使用。他们往往认为遵循这个规范就是数据库设计的唯一标准。由于这种心态,他们往往尽管一路碰壁也会坚持把项目做下去。 如果你对“三范式”不清楚,请点击这里(FQ)一步一步的了解什么是“三范式”。 大家都说标准规范是重要的指导方针并且也这么做着,但是把它当作石头上的一块标记来记着(死记硬背)还是会带来麻烦的。以下11点是我在数据库设计时最优先考虑的规则。 ?规则1:弄清楚将要开发的应用程序是什么性质的(OLTP 还是OPAP)?

当你要开始设计一个数据库的时候,你应该首先要分析出你为之设计的应用程序是什么类型的,它是“事务处理型”(Transactional)的还是“分析型”(Analytical)的?你会发现许多开发人员采用标准化做法去设计数据库,而不考虑目标程序是什么类型的,这样做出来的程序很快就会陷入性能、客户定制化的问题当中。正如前面所说的,这里有两种应用程序类型,“基于事务处理”和“基于分析”,下面让我们来了解一下这两种类型究竟说的是什么意思。 事务处理型:这种类型的应用程序,你的最终用户更关注数据的增查改删(CRUD,Creating/Reading/Updating/Deleting)。这种类型更加官方的叫法是“OLTP”。 分析型:这种类型的应用程序,你的最终用户更关注数据分析、报表、趋势预测等等功能。这一类的数据库的“插入”和“更新”操作相对来说是比较少的。它们主要的目的是更加快速地查询、分析数据。这种类型更加官方的叫法是“OLAP”。 那么换句话说,如果你认为插入、更新、删除数据这些操作在你的程序中更为突出的话,那就设计一个规范化的表否则的话就去创建一个扁平的、不规范化的数据库结构。

数据库设计练习题

1、为某百货公司设计一个E-R模型。 百货公司管辖若干连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。 实体类型“商店”的属性有:店号、店名、店址、店经理。 实体类型“商品”的属性有:商品号、品名、单价、产地。 实体类型“职工”的属性有:工号、姓名、性别、工资。 在联系中应反映出职工参加某商店工作的开始时间、商店销售商品的月销售量。 (1)试画出反映商店、商品、职工实体类型及其联系类型的E-R图。 (2)根据画出的E-R图,设计数据库系统的关系模型。 2.设某商业集团数据库中有三个实体集。一就是“商店”实体集,属性有商店编号、商店名、地址等;二就是“商品”实体集,属性有商品号、商品名、规格、单价等;三就是“职工”实体集,属性有职工编号、姓名、性别、业绩等。 商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期与月薪。 (1)试画出E-R图,并在图上注明属性、联系的类型。 (2)将E-R图转换成关系模型,并注明主键与外键。 3.假设某公司的业务规则如下: ( 1 )公司下设几个部门,如技术部、财务部、市场部等。 ( 2 )每个部门承担多个工程项目,每个工程项目属于一个部门。 ( 3 )每个部门有多名职工,每一名职工只能属于一个部门。 ( 4 )一个部门可能参与多个工程项目,且每个工程项目有多名职工参与施工。每名职工可以参与该部门的多个工程项目,根据职工在工程项目中完成的情况发放酬金。 ( 5 )工程项目有工程号、工程名两个属性;部门有部门号、部门名称两个属性;职工有职工号、姓名、性别属性。 4、一个图书借阅管理数据库要求提供下述服务: 可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号唯一标识。 可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期与还书日期。且任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。 当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。且一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。 5、某医院病房计算机管理中需要如下信息: 科室:科名,科地址,科电话,医生姓名 病房:病房号,床位数,所属科室名 医生:姓名,职称,所属科室名,年龄,工作证号 病人:病历号,姓名,性别,诊断,主官医生,病房号,床位号 其中,一个科室可有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个,一个病房可以住多位病人,每位病人对 应一个床位。 6、某酒店管理信息系统具有以下实体、属性及语义描述: 房间:房间号,床位数量。 客户:顾客编号,姓名,年龄,性别。

数据库设计与实践试题

数据库设计与实践试 题 https://www.360docs.net/doc/c83863671.html,work Information Technology Company.2020YEAR

内蒙古广播电视大学2015-2016学年度第一学期《数据库设计与实践》期末试题 题号一二三四五六总分 得分 题号一 得分 一、单项选择 1.若实体A和B是多对多的联系,实体B和C是1对1的联系,则实体A和C是() A.一对一 B。一对多 C.多对一 D。多对多 2.若一个关系的任何属性都不部分依赖和传递依赖于任何候选码,则该关系最高过到了()范式。 A、第一 B、第二 C、第三 D、BC 3.在SQL中,create table为数据库中()基本表结构的命令。 A、建立 B、修改 C 、删除 D、查询 4.若规定基本表中某一列或若干列为非空和唯一值双重约束,则这些列就是该基本表的地()码,若只规定为唯一值约束,则不允许空值重复出现。 A、主码 B、外码 C、备用码 D、内码 5.设一个集合A={3 , 4 , 5 , 6 , 7} ,集合B={1 , 3 , 5 , 7 ,9} ,则A 减B 的差集中包含有()个元素。 A. 10 B. 5 C. 3 D. 2 6. 下列哪一个不是设置表间"关系"时的选项( )。 A. 实施参照完整性 B. 级联追加相关记录 c.级联更新相关字段 D. 级联删除相关记录 7. 在Access 2000 数据库系统中,不能建立索引的数据类型是( )。 A. 文本型 B. 备注型 c.数值型 D. 日期/时间型 8. Access 2000 用户操作界面由( )个部分组成。 A.4 B. 5 C. 3 D. 6 9. 下列( )图标是Access 2000 中新建查询的标志。 A. 新建 B.新建 C.新建 D.新建 学号 姓名 分校(工作 站) 2

规范化-数据库设计原则

规范化-数据库设计原则 关系数据库设计的核心问题是关系模型的设计。本文将结合具体的实例,介绍数据库设计规范化的流程。摘要 关系型数据库是当前广泛使用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构。然而,随着项目规模的不断增长,相应的数据库也变得更加复杂,关系模型表结构更为庞杂,这时我们往往会发现我们写出来的SQL语句的是很笨拙并且效率低下的。更糟糕的是,由于表结构定义的不合理,会导致在更新数据时造成数据的不完整。因此,就有必要学习和掌握数据库的规范化流程,以指导我们更好的设计数据库的表结构,减少冗余的数据,借此可以提高数据库的存储效率,数据完整性和可扩展性。本文将结合具体的实例,介绍数据库规范化的流程。 序言 本文的目的就是通过详细的实例来阐述规范化的数据库设计原则。在DB2中,简洁、结构明晰的表结构对数据库的设计是相当重要的。规范化的表结构设计,在以后的数据维护中,不会发生插入(insert)、删除(delete)和更新(update)时的异常。反之,数据库表结构设计不合理,不仅会给数据库的使用和维护带来各种各样的问题,而且可能存储了大量不需要的冗余信息,浪费系统资源。 要设计规范化的数据库,就要求我们根据数据库设计范式――也就是数据库设计的规范原则来做。但是一些相关材料上提到的范式设计,往往是给出一大堆的公式,这给设计者的理解和运用造成了一定的困难。因此,本文将结合具体形象的例子,尽可能通俗化地描述三个范式,以及如何在实际工程中加以优化使用。规范化 在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化使用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是"数据库规范化"。后面我们将通过实例来说明具体的规范化的工程。关于什么是范式的定义,请参考附录文章1. 数据冗余 数据应该尽可能少地冗余,这意味着重复数据应该减少到最少。比如说,一个部门雇员的电话不应该被存储在不同的表中,因为这里的电话号码是雇员的一个属性。如果存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题,当这个员工的电话号码变化时,冗余数据会导致对多个表的更新动作,如果有一个表不幸被忽略了,那么就可能导致数据的不一致性。 规范化实例 为了说明方便,我们在本文中将使用一个SAMPLE数据表,来一步一步分析规范化的过程。 首先,我们先来生成一个的最初始的表。 CREATE TABLE "SAMPLE" ( "PRJNUM" INTEGER NOT NULL, "PRJNAME" VARCHAR(200), "EMYNUM" INTEGER NOT NULL, "EMYNAME" VARCHAR(200), "SALCATEGORY" CHAR(1), "SALPACKAGE" INTEGER)

数据库考试题库

一、单项选择题 1.下列四项中,不属于数据库特点的是( C )。 A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高 2.下列四项中,不属于SQL2000实用程序的是( D )。 A.企业管理器 B.查询分析器 C.服务管理器 D.媒体播放器 Server安装程序创建4个系统数据库,下列哪个不是( C )系统数据库。 4.( A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。

A.DBMS B.DB C.DBS D .DBA 5. 在SQL中,建立表用的命令是 ( B )。 SCHEMA TABLE VIEW INDEX 语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( A )。 A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 7.下列四项中,不正确的提法是( C )。 语言是关系数据库的国际标准语言 语言具有数据定义、查询、操纵和控制功能 语言可以自动实现关系数据库的规范化

语言称为结构查询语言 8.在MS SQL Server中,用来显示数据库信息的系统存储过程是( D )。 A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 语言中,删除表中数据的命令是( A )。 A. DELETE B. DROP C. CLEAR D. REMOVE 的视图是从( C )中导出的。 A. 基本表 B. 视图 C. 基本表或视图 D. 数据库 11. 下列哪个不是sql 数据库文件的后缀。C

数据库设计规范

1概述 1.1目的 软件研发数据库设计规范作为数据库设计的操作规范,详细描述了数据库设计过程及结果,用于指导系统设计人员正确理解和开展数据库设计。 1.2适用范围 1.3术语定义 DBMS:数据库管理系统,常用的商业DBMS有Oracle, SQL Server, DB2等。 数据库设计:数据库设计是在给定的应用场景下,构造适用的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 概念数据模型:概念数据模型以实体-关系 (Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库概念级别的设计,独立于机器和各DBMS产品。可以用Sybase PowerDesigner工具来建立概念数据模型(CDM)。 逻辑数据模型:将概念数据模型转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。可

以用Sybase PowerDesigner工具直接建立逻辑数据模型(LDM),或者通过CDM转换得到。 物理数据模型:在逻辑数据模型基础上,根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。可以用Sybase PowerDesigner工具直接建立物理数据模型(PDM),或者通过CDM / LDM转换得到。 2数据库设计原则 按阶段实施并形成该阶段的成果物 一般符合3NF范式要求;兼顾规范与效率 使用公司规定的数据库设计软件工具 命名符合公司标准和项目标准 3数据库设计目标 规范性:一般符合3NF范式要求,减少冗余数据。 高效率:兼顾规范与效率,适当进行反范式化,满足应用系统的性能要求。 紧凑性:例如能用char(10)的就不要用char(20),提高存储的利用率和系统性能,但同时也要兼顾扩展性和可移植性。 易用性:数据库设计清晰易用,用户和开发人员均能容

数据库课程设计题目汇总

《数据库原理及技术》课程设计 一、课程设计的目的与要求 (1)培养学生运用所学课程《数据库原理》的理论知识与技能,深入理解《数据库原理》课程相关的理论知识,学会分析实际问题的能力。 (2)培养学生掌握用《数据库原理》的知识设计计算机应用课题的思想与方法。 (3)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。 (4)要求学生独立完成大作业要求的相关内容。 二、课程设计报告提纲 (1) 课程设计的题目、系统的总体功能描述 (2) 需求分析(概括描述) (3) 数据库概念结构设计(局部E-R图、基本E-R图) (4) 数据库逻辑结构设计(关系模式) (5) 应用系统功能结构图(模块结构图) (6) SQL代码及其说明 (7) 总结(课程设计中遇到的主要问题与解决方法;创新之处;课程设计中存在的不足,需进一步改进的设想;课程设计的感想与心得体会。) (9) 参考文献 三、评分规则 四、课程设计作业提交 每人将设计的全部文档文件上传到课堂派。文件命名方式为:学号+姓名+设计题目。并打印交给课代表。

五、课程设计题目(任选一个题目) (1)学校图书借阅管理系统 功能要求: ●实现图书信息、类别、出版社等信息的管理; ●实现读者信息、借阅证信息的管理; ●实现图书的借阅、续借、归还管理; ●实现超期罚款管理、收款管理; (2)高校学籍管理系统 功能要求: ●实现学生信息、班级、院系、专业等的管理; ●实现课程、学生成绩信息管理; ●实现学生的奖惩信息管理; (3)学校人力资源管理系统 ●实现学校部门信息、职务、职称与教职工信息管理; ●实现教师的学籍经历管理; ●实现教师的家庭关系管理; ●实现教师的奖惩信息管理; (4)某单位人事管理系统 ●实现部门、职务、职称等信息的管理; ●实现职工信息的管理; ●实现职工学习经历与任职经历的管理; ●实现职工家庭关系的管理; ●实现奖惩信息的管理; (5)某书店图书进货、销售管理系统 ●实现图书类别、出版社、图书、仓库信息的管理; ●实现进货、入库管理; ●实现销售、出库管理; (6)某医院信息管理系统(药品库存、收费、医生病人等) ●实现药品类型及药品信息的管理; ●实现药品的入库、出库管理; ●实现科室、医生、病人的管理; ●实现处方的登记管理; ●实现收费管理; (8)某期刊的在线投稿审稿管理系统 ●实现作者、审稿人的信息管理; ●实现稿件类型、稿件信息的管理; ●实现稿件的审阅过程管理; ●实现稿费、审稿费与版面费的管理; (9)学校的工资管理系统 ●实现部门、职务、职称等基本信息的管理;

数据库课程设计与实践

数据库课程设计与实践 创建“学生选课管理”系统 一.系统简介 11..基基本本功功能能 信息录入:利用创建数据库、表的功能录入学生基本信息、专业信息、课程信息、学生选课及成绩信息。 浏览编辑:利用表的编辑功能查看并修改学生基本信息、专业、课程等相关信息。 检索查询:利用查询功能和SQL 语言,根据指定条件筛选、查询学生及学生所在专业、所选课程及成绩等综合信息。 统计报表:利用报表功能按要求对学生、课程、学生成绩等情况进行统计、计算、汇总,并输出相关报表。 设计界面:利用窗体(表单)及面向对象方法设计学生选课管理的用户界面、进入系统的权限界面、各种信息的输出窗口; 系统功能:利用宏和程序设计方法对系统功能实现宏的设计与操作以及简单的应用程序编制。 22..基基本本框框架架 采用面向对象方法编程: 主程序:主控各子系统,执行系统初始化并调用窗体菜单。 数据:一个数据库(学生选课),若干个表(学生、课程、专业、选课…). 窗体:系统初始界面、口令权限及各表查询、浏览、编辑、关联等界面。 查询: 按照各种条件和输出需求设计查询与视图;并掌握相关的SQL 语言。 报表:学生通信录、学生、专业、课程、成绩等相关信息统计等。 其它:面向对象程序设计、宏、程序和代码。 二.数据库设计 11..绘绘制制实实体体--关关系系((E E --R R ))图图 ?实体:学生、专业、课程…。 ?属性:写出各实体应有的属性。 ?关系:写出各实体相应的关系(几对几)

22..关关系系模模型型转转换换与与表表设设计计((参参考考)) 关系表4(课程) 课程号 T 3 主码、主索引 课程名 T 16 讲授学时 N 2 学分 N 1 是否必修 L 1 先修课 T 16 课程简介 M 专业代码 T 2 N : 1

数据库课程设计-试题库管理系统

《数据库系统概论》课程设计 实验报告 题目试题库管理系统 学院商学院 专业信息管理与信息系 班级信息101 学号 2 学生姓名杨贵文 同组成员周杭施建炉王于宾 指导教师宣军英 编写日期2012-06-19——2012-06-29

一、课题名称:试题库管理系统 二、课题要求:结合所学知识,开发一个简易的试题库管理系统。 三、实验目的:结合本学期所学知识,使学生温故而知新,并在实践操作上增加对数据库系统设计的认识和理解。 四、实验步骤: 五、1、需求分析 2、概念结构设计 3、逻辑结构设计 4、物理结构设计 5、数据库实施 6、数据库运行和维护 六、课程开发内容: 5.1 需求分析 5.1.1 系统调查 对现行的试题库管理业务进行了详细的调查和研究是了解系统需求和进行系统分析和设计的重要基础工作,因此要对我们的试题库管理工作进行全面的细致的调查研究。首先与相关的老师进行了交流和沟通,了解他们对试题库管理的看法,看看有没有什么新的要求,在这个基础上,结合自身所掌握的知识水平,量力而行开发相应的试题库管理系统。

在调查中我们可以发现,高校的试题库是极其庞大的,如果没有一个智能的系统将人们从手工阶段解放出来,那么一个庞大的、完整的试题库是无法有效运行的,甚至出题的老师也无法有效、准确地在试题库中抽取自己所需要的试题,这等于说是一个没有实际运用价值的试题库。所以说,他们对希望有这样的一个可以详细地表示试题属性的这样的一个试题库。那么今天我们就围绕着这样的一个目标展开我们的工作。 5.1.2 用户需求 要设计一个性能良好的管理系统,明确用户的应用环境对 系统的要求是首要的和基本的。本系统从以下四个方面对用户需求进行了分析: 1)用户的需求信息:出题老师可以看到题目所属的类型和题目所考察的内容以及试题的分值和 难度等级。当然这个权限也给管理员和系主任。 2)用户的处理要求:管理员可以对试题库进行插入和删除操作,出题老师可以凭借自己自定义的 选题要求在试题库中选择自己需求的试题,这个权限 也对系主任开放。 3)对系统的适应性、通用性要求:要求系统不仅能提供一门课程的试题库管理,还要综合多么学 科进行管理,建立一个高效的试题库管理系统。

数据库设计规范

数据库设计规范 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个dbms产品的概念模式(信息世界模型),用e-r图来描述。在逻辑设计阶段将e-r图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(view)形成数据的外模式。在物理设计阶段根据dbms特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(structured analysis,简称sa方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(data dictionary,简称dd)来描述。 数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度, 取值范围,取值含义,与其他数据项的逻辑关系} 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 数据流描述={数据流名,说明,数据流来源,数据流去向, 组成:{数据结构},平均流量,高峰期流量} 数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流, 组成:{数据结构},数据量,存取方式} 处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流}, 处理:{简要说明}}

相关文档
最新文档