文档库 最新最全的文档下载
当前位置:文档库 › 第六章 数据库设计

第六章 数据库设计

第六章 数据库设计
第六章 数据库设计

第六章数据库设计

1.数据库设计的基本步骤

〃需求分析; 〃概念结构设计;

〃逻辑结构设计;〃物理结构设计;

〃数据库实施;〃数据库运行和维护。

2.需求分析

2.1需求分析的任务

需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。(旧物理模型→旧逻辑模型→新逻辑模型→新物理模型)调查的重点是“数据”和“处理”,通过调查、收集与分析,获得用户对数据库的如下要求:

(1)信息要求。

(2)处理要求。

(3)安全性与完整性要求。

2.2需求分析的方法

进行需求分析首先是调查清楚用户的实际要求,与用户达成共识,然后分析与表达这些需求。

调查用户需求的具体步骤是:

(1)调查组织机构情况。包括了解该组织的部门组成情况、各部门的职责等,为分析信

息流程做准备。

(2)调查各部门的业务活动情况。包括了解各个部门输入和使用什么数据,如何加工处

理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。

(3)在熟悉了业务活动的基础上,协助用户明确对新系统的各种要求,包括信息要求、

处理要求、完全性与完整性要求。

(4)确定新系统的边界。对前面调查的结果进行初步分析,确定哪些功能由计算机完成

或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统应实现的功能。

组织结构图、业务流程图、数据流程图、数据字典、实体-联系图

控制流图、状态转换图

总体结构(图)、数据结构(说明)、程序流程图(过程设计)

常用的调查方法有:

(1)跟班作业。

(2)开调查会。

(3)请专人介绍。

(4)询问。

(5)设计调查表请用户填写。

(6)查阅记录。

增加沟通的形式和媒介方式

2.3数据字典

通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。

注意两点:

(1)需求分析阶段的一个重要而困难的任务是收集将来应用所涉及的数据,设计人员应

充分考虑到可能的扩充和改变,使设计易于更改,系统易于扩充。

(2)必须强调用户的参与。

3.概念结构设计

3.1概念结构设计的方法与步骤

〃自顶向下。〃自底向上。

〃逐步扩张。〃混合策略。

1.分类

2.聚集

3.概括

概念结构设计就是利用抽象机制对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体、实体的属性,标识实体的码,确定实体之间的联系类型(1:1,1:n,m :n),设计分E-R图。

具体做法:

1.选择局部应用

2.逐一设计分E-R图

实体与属性之间的区别:

(1)作为“属性”,不能再具有需要描述的性质。“属性”必须是不可分的数据项,

不能包含其他属性。

(2)“属性”不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联

系。

实例销售管理子系统分E-R图的设计。

某工厂开发管理信息系统,经过可行性分析和详细调查,确定了该系统由物资管理、销售管理、劳动人事管理等子系统组成。为每个子系统组成了开发小组。

销售管理子系统开发小组的成员经过调查研究、信息流程分析和数据收集,明确了该子系统的主要功能是:处理顾客和销售员送来的订单;工厂根据定货安排生产;交出货物同时开出发票;收到顾客付款后,根据发票存根和信贷情况进行应收款处理,得到了该子系统二层数据流图(共5张)和数据字典,其中包括14个数据结构和29个数据流。

最后得到分E-R 图如图所示对每个实体定义的属性如下:

顾客:{顾客号,顾客名,地址,电话,信贷状况,帐目余额}

订单:{订单号,顾客号,订货项数,订货日期,交货日期,工种号,生产地点}

订单细则:{订单号,细则号,零件号,订货数,金额}

应收帐款:{顾客号,订单号,发票号,应收金额,支付日期,支付金额,当前余额,贷款限额}

产品描述:{产品号,产品名,单价,重量}

折扣规则:{产品号,订货量,折扣}

3.3视图的集成

视图集成的两种方式:

〃多个分E-R图一次集成。

〃逐步集成。

3.3.1合并分E-R图,生成初步E-R图

消除各E-R图之间的冲突(属性冲突、命名冲突、结构冲突)。

1.属性冲突(类型、取值范围、取值集合、取值单位)

2.命名冲突(同名异义、异名同义)

3.结构冲突

〃同一对象在不同应用中具有不同的抽象。

〃同一实体在不同分E-R图中所包含的属性个数和属性排列次序不完全相同。〃实体间的联系在不同的分E-R图中为不同的类型。

3.3.2消除不必要的冗余,设计基本E-R图

〃以数据字典和数据流为依据分析

〃用规范化理论分析

Q3=Q1*Q2

Q4=∑Q5

4.逻辑结构设计

4.1E-R图向关系模型的转换

(1)一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系

的码。

(2)一个联系可以转换为一个独立的关系模式,与该联系相连的各实体的码,以及联系

的属性可转换为关系的属性。

若联系为1:1,则所连接的各实体码均是该关系的候选码;

若联系为1:N,关系的码为N端实体的码;

若联系为M:N,则关系的码为所连接的各实体码的组合。

(3)具有相同码的关系可以合并。

4.2数据模型的优化

(1)确定数据依赖。

(2)对于各个关系模型之间的数据依赖进行极小化处理,消除冗余的联系.

(3)按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递

函数依赖、多值依赖等,确定各关系模式分别属于第几范式。

(4)分析这些模式是否对应用环境合适。

4.3设计用户子模式

5.数据库的物理设计

6.数据库的实施和维护

案例分析-第六章物流管理系统的数据库设计(六个基本步骤)案例分析

物流管理信息系统的数据库设计 (案例分析) 系统名称:物流管理信息系统(数据库管理系统) 一、需求分析 需求分析是整个数据库设计过程的基础,要收集数据库所有用户的信息内容和处理要求,并加以规格化和分析。 物流管理系统是为制造商和零售商设计的管理系统数据库系统,目的是: 1、实现上游制造商的信息管理。 2、实现下游零售商的信息管理。 3、实现进库与配送的信息管理。从而提高物流效率,降低物流成本并提高 企业管理化水平。经过调研分析,得到系统的如下功能需求。 (1)数据检索 1、制造商、零售商查询某一产品名称,规格和单位 输入:产品编号 输出:产品名称,产品规格,产品单位,制造商编号 2、物流中心、制造商查询某一零售商名称,联系人,地址,电话号码,网址 输入:零售商编号 输出:零售商名称,联系人,地址,电话号码,网址 3、零售商、物流中心查询某一制造商信息表 输入:制造商编号 输出:制造商名称,联系人,地址,电话号码,网址 4、物流中心、制造商、零售商查询某一产品的出库信息表 输入:仓库编号 输出:仓库编号,库名,地址,电话 5、物流中心、零售商查询某一产品的制造商和产品信息表 输入:产品编号编号 输出:制造商名称,联系人,地址,电话号码,网站,产品名称,产品名称,产品规格,产品单位 6、查询某一产品对应的物流中心编号及产品信息 输入:产品编号 输出:物流中心编号,货物价格,提取.产品编号,产品.产品名称,产品名称,产品规格,产品单位 7、制造商,零售商查询某一物流中心信息 输入:物流中心编号 输出:物理中心名称,联系人,地址,电话号码,网址 (2)数据插入 ①产品数据插入 ②制造商数据插入 ③零售商数据插入 ④物流中心数据插入 (3)数据修改 ①产品数据修改:某产品数据变化时,输入该产品编号以及需修改的属性,

8实验八 数据库的完整性

实验八实现数据完整性一、实验目的 (1)实现数据完整性的概念及实施数据完整性的重要性。 (2)掌握数据完整性的分类。 (3)掌握完整性约束的添加、删除方法。 (4)掌握通用默认值的创建、实施与删除方法。 (5)掌握规则的创建、实施与删除方法。 (6)掌握级联删除、级联修改方法。 二、实验内容 1、完整性约束的添加、删除 (1)通过SQL Server Management Studio实施约束 a.为表Student的Birth字段创建检查约束,使输入的生日日期小于系统日期。 ①、选择Student表,右击→设计,打开Student表 ②、选择Birth一行,右击→CHECK约束,打开界面如下图所示 ③、单击“添加” ④、在表达式中写入:Entrance_date

b.为表Student的Sdept字段,设置默认值约束,默认值取’计算机系’。选择Sdept一行,在其列属性中修改其默认值 c.为Student表的Sname字段添加唯一性约束。 选择Sname一行,右击→索引/键 出现如下界面:

单击“添加”,在类型中选择“唯一键”,在列中选择“Sname”,名称自定义 最后单击“关闭”退出

d.将SC表的Sno,cno字段设置外键约束,约束名自已取,并允许级联删除与级联更新。(此要求在SQL Server2008R2中无法做出)若已存在外键约束,请先删除。 ①、选中Sno,右击→单击“关系”,出现如下信息,可见已存在外键约束 选中键,点击删除,完成约束删除 ②、添加约束: 选中Sno,右击,选择“关系”,出现如下信息,

数据库设计综合练习题及答案

1、有一课程管理系统,有如下特点:一个系可开设多门课程,但一门课只在一个系部开设,一个学生可选修多门课程,每门课可供若干学生选修,一名教师只教一门课程,但一门课程可有几名教师讲授,每个系聘用多名教师,但一个教师只能被一个系所聘用,要求这个课程管理系统能查到任何一个学生某门课程的成绩,以及这个学生的这门课是哪个老师所教的。 (1)请根据以上描述,绘制相应的E-R图,并直接在E-R图上注明实体名、属性、联系类型; (2)将E-R图转换成关系模型,画出相应的数据库模型图,并说明主键和外键。 (3)分析这些关系模式中所包含的函数依赖,根据这些函数依赖,分析相应的关系模式达到了第几范式。对这些关系模式进行规范化。 1、参考答案:

2、设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。 车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有“聘用开始时间”和“聘期”两个属性; 车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队; 司机与车辆之间存在着“使用”联系,司机使用车辆有“使用日期”和“公里数”两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。 (1)请根据以上描述,绘制相应的E-R图,并直接在E-R图上注明实体名、属性、联系类型; (2)将E-R图转换成关系模型,画出相应的数据库模型图,并说明主键和外键。 (3)分析这些关系模式中所包含的函数依赖,根据这些函数依赖,分析相应的关系模式达到了第几范式。对这些关系模式进行规范化。 2、参考答案:

数据库完整性

大连海事大学 数据库原理课程实验大纲 实验名称:实验七完整性实验学时: 2 适用专业: 实验环境: 执笔者:编写日期: 1实验目的 (1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。 (2)掌握完整性约束的运行检查机制。 (3)掌握参照完整性的级联删除和修改方法。 (4)掌握正确设计关系模式完整性约束的方法。 2实验内容 2.1掌握实体完整性约束的创建和使用方法 (1)创建表时定义由一个属性组成的主键(给约束命名)。 (2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。 (3)删除以上两个主键约束。 (4)利用ALTER TABLE语句定义上述两个主键。 2.2掌握参照完整性约束的创建和使用方法 (5)创建表时定义一个列级参照完整性约束(给约束命名)。 (6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。(7)设计数据更新语句检查参照完整性约束是否起作用。

(8)删除上述完整性约束。 (9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。 (10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。 2.3掌握用户自定完整性约束的创建和使用方法 (11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用 (12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用 (13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用 (14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用 (15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。 3实验要求 (1)深入复习教材第五章数据库完整性约束内容。 (2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例做实验。(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。 (4)思考题:完整性约束的违约处理有哪几种方式 4实验步骤 4.1掌握实体完整性约束的创建和使用方法 (1)创建表时定义由一个属性组成的主键(给约束命名)。

物流管理系统的SQL数据库设计(含代码)

物流管理信息系统的数据库设计 班级 xxx 系统名称:物流管理信息系统 一、需求分析 物流管理系统是为制造商和零售商设计的管理系统数据库系统,目的是: 1、实现上游制造商的信息管理。 2、实现下游零售商的信息管理。 3、实现进库与配送的信息管理。从而提高物流效率,降低物流成 本并提高企业管理化水平。经过调研分析,得到系统的如下功能需求。 (1)数据检索 1、制造商、零售商查询某一产品名称,规格和单位 输入:产品编号

输出:产品名称,产品规格,产品单位,制造商编号 2、物流中心、制造商查询某一零售商名称,联系人,地址,电话号码,网址 输入:零售商编号 输出:零售商名称,联系人,地址,电话号码,网址 3、零售商、物流中心查询某一制造商信息表 输入:制造商编号 输出:制造商名称,联系人,地址,电话号码,网址 4、物流中心、制造商、零售商查询某一产品的出库信息表 输入:仓库编号 输出:仓库编号,库名,地址,电话 5、物流中心、零售商查询某一产品的制造商和产品信息表 输入:产品编号编号 输出:制造商名称,联系人,地址,电话号码,网站,产品名称,产品名称,产品规格,产品单位 6、查询某一产品对应的物流中心编号及产品信息

输入:产品编号 输出:物流中心编号,货物价格,提取.产品编号,产品.产品名称,产品名称,产品规格,产品单位 7、制造商,零售商查询某一物流中心信息 输入:物流中心编号 输出:物理中心名称,联系人,地址,电话号码,网址 (2)数据插入 ①产品数据插入 ②制造商数据插入 ③零售商数据插入 ④物流中心数据插入 (3)数据修改 ①产品数据修改:某产品数据变化时,输入该产品编号以及需修 改的属性,完成对产品表的修改 ②制造商数据修改:某制造商数据变化时,输入该制造商编号以 及需修改的属性,完成对制造商表的修改

第六章 数据库保护习题(徐玲)

【7.1】假定DMA要求customers可能的discnt值在0.00和10.00之间,而且数值之间的差距只能为0.02,所以可接受的值为0.00,0.02,0.04,......,9.96,9.98,10.00。请用适当的Create Table语句实现这样的约束。注意,因为可能的值很多,所以用CHE子句是不合适的;需要另外定义一个表来实现这一约束。 Use sales create table discnts ([discnt] float(2) not null, primary key([discnt]), check ([discnt] <= 10.00), ) declare @i float set @i=0.00 while @i<10.00 begin insert into discnts values(@i) set @i=@i+0.02 continue end create table customers (cid char(4) not null,cname varchar(13) , city varchar(20),[discnt] float(2) not null, primary key (cid), foreign key ([discnt] )references discnts); 【7.2】根据X/Open中更新视图的约束,下面哪一条SQL语句是合法的?(括一号中说明了视图是在哪个例子中创建的。) (1)update agentorders set month='jun'; (2)update agentorders set month='jun' where pid='c001'; (3)update agentorders set month='axx' where aid='a03'; (1)合法。 (2)不合法。 (3)合法 【7.3】创建一个触发器,当向表orders中插入一个新订单时被触发,自动地更新表products的quantity列。触发器必须把在orders指定的qty从products相应行的quantity中减去。 use sales go create trigger BT on orders for insert

物流管理系统的SQL数据库设计(含代码)

物流管理信息系统的数据库设计 班级:计算1201 姓名:陆震学号:1202200116 一、需求分析 物流管理系统是为制造商和零售商设计的管理系统数据库系统,目的是: 1、实现上游制造商的信息管理。 2、实现下游零售商的信息管理。 3、实现进库与配送的信息管理。从而提高物流效率,降低物流成本并提高 企业管理化水平。经过调研分析,得到系统的如下功能需求。 (1)数据检索 1、制造商、零售商查询某一产品名称,规格和单位 输入:产品编号 输出:产品名称,产品规格,产品单位,制造商编号 2、物流中心、制造商查询某一零售商名称,联系人,地址,电话号码,网址 输入:零售商编号 输出:零售商名称,联系人,地址,电话号码,网址 3、零售商、物流中心查询某一制造商信息表 输入:制造商编号 输出:制造商名称,联系人,地址,电话号码,网址 4、物流中心、制造商、零售商查询某一产品的出库信息表 输入:仓库编号 输出:仓库编号,库名,地址,电话 5、物流中心、零售商查询某一产品的制造商和产品信息表 输入:产品编号编号 输出:制造商名称,联系人,地址,电话号码,网站,产品名称,产品名称,产品规格,产品单位 6、查询某一产品对应的物流中心编号及产品信息 输入:产品编号 输出:物流中心编号,货物价格,提取.产品编号,产品.产品名称,产品名称,产品规格,产品单位 7、制造商,零售商查询某一物流中心信息 输入:物流中心编号 输出:物理中心名称,联系人,地址,电话号码,网址 (2)数据插入 ①产品数据插入 ②制造商数据插入 ③零售商数据插入 ④物流中心数据插入 (3)数据修改 ①产品数据修改:某产品数据变化时,输入该产品编号以及需修改的属性, 完成对产品表的修改

数据库实验报告完整性约束

数据库实验报告完整性约束

大连海事大学 数据库原理课程实验大纲 实验名称:实验七完整性实验学时: 2 适用专业:智能科学与技术 实验环境: Microsoft SQL server 2014 1实验目的 (1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。 (2)掌握完整性约束的运行检查机制。 (3)掌握参照完整性的级联删除和修改方法。(4)掌握正确设计关系模式完整性约束的方法。 2实验内容 2.1 掌握实体完整性约束的创建和使用方法 (1)创建表时定义由一个属性组成的主键(给约束命名)。 (2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。 (3)删除以上两个主键约束。 (4)利用ALTER TABLE语句定义上述两个主键。

2.2 掌握参照完整性约束的创建和使用方法 (5)创建表时定义一个列级参照完整性约束(给约束命名)。 (6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。 (7)设计数据更新语句检查参照完整性约束是否起作用。 (8)删除上述完整性约束。 (9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。 2.3 掌握用户自定完整性约束的创建和使用方法 (11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用? (12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用? (13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?

数据库设计以及源代码

数据库设计以及源代码

系统建设详细设计 1.数据库设计 管理员用户表信息: 字段名称类型大小字段描述 管理员ID 自动编号长整型管理员身份识别 管理员名 称 文本50 管理员登陆名称密码文本50 管理员登陆的密码 身份文本50 有别于学生登陆界面 学生用户表: 字段名称类型大小字段描述 学生ID 自动编号长整型学生学号 学生名称文本50 学生名称 密码文本50 学生登陆的密码 身份文本50 有别于管理员登陆界面学生信息表: 字段名 称 类型大小字段描述 学生ID 自动编 号长整 型 学生学号 学生名 称 文本50 学生名称

电子邮 文本50 学生的电子邮箱箱 备注/ / 学生的其他信息 性别文本50 性别 入学时 文本50 学生入学的时间间 班级文本50 所在班级 专业文本50 所学专业 2 系统程序文件设计与编写 与数据库连接的代码: <% db="message.mdb" set Conn=server.createobject("adodb.Connection") conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(db) %> 登陆界面代码:

代码为: <% if request("Submit")<>"" then set rs=server.createobject("adodb.recordset") sql="SELECT username,password from users where username='"&request("username")&"'" rs.open sql,conn,1,3 if rs.bof and rs.eof then msg="错误:用户名不存在" else if rs("password")=request("password") then Session("admin")=true response.redirect "index.asp?users=admin" else msg="错误:密码不正确" end if end if rs.close set rs=nothing Conn.close Set conn = Nothing end if%> 管理员

数据库设计以及源代码

系统建设详细设计 1.数据库设计 管理员用户表信息: 学生用户表: 学生信息表:

班级文本50 所在班级 专业文本50 所学专业 2系统程序文件设计与编写 set Conn=server.createobject("adodb.C onn ectio n") "Provider=Microsoft .J et.OLEDB.4.0;Data Source="&server.mappath(db) %> 登陆界面代码: 代码为: <% if request("Submit")<>"" then set rs=server.createobject("adodb.recordset") 与数据库连接的代码: <% db="message.mdb" conn, ope n

sql="SELECT username,password from users where username='"&request("username")&"”' rs.ope n sql,c onn ,1,3 if rs.bof and rs.eof the n msg="错误:用户名不存在" else if rs("password")=request("password") the n Sessio n("admi n")=true resp on se.redirect "i ndex.asp?users=adm in" else msg="错误:密码不正确" end if end if rs.close set rs=no thi ng Conn, close Set conn = Noth ing end if%> 管理员

数据库设计课后答案

第六章数据库设计 习题解答和解析 1. 1.试述数据库设计过程。 答:这里只概要列出数据库设计过程的六个阶段: (1)需求分析;(2)概念结构设计;(3)逻辑结构设计;(4)数据库物理设计;(5)数据库实 施;(6)数据库运 行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。 解析:希望读者能够认真阅读《概论》6.1的内容,了解并掌握数据库设计过程。 2. 2.试述数据库设计过程各个阶段上的设计描述。 答:各阶段的设计要点如下: (1)需求分析:准确了解与分析用户需求(包括数据与处理)。 (2)概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型。 (3)逻辑结构设计:将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。 (4)数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 (5)数据库实施:设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 (6)数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。 解析: 这是进一步了解数据库设计的具体内容。设计描述是指在各个阶段体现设计内容,描述设计结果的各种文档、程序。读者可以参考《概论》上图6.3。 3. 3.试述数据库设计过程中结构设计部分形成的数据库模式。 答:数据库结构设计的不同阶段形成数据库的各级模式,即: (1)在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的概念模式,在本篇中就是E-R图; (2)在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图(View),形成数据的外模式; (3)在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。 读者可以参考《概论》上图6.4。图中概念模式是面向用户和设计人员的,属于概念模型的层次;逻辑模式、外模式、内模式是DBMS支持的模式,属于数据模型的层次,可以在DBMS 中加以描述和存储。 4. 4.试述数据库设计的特点。 答:数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目。其主要特点有: (1)数据库建设是硬件、软件和干件(技术与管理的界面)的结合。 (2)从软件设计的技术角度看,数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来。详细的可以参考《概论》

数据库实验3

实验三:数据完整性 1、实验目的 (1)了解SQL Serer数据库系统中数据完整性控制的基本方法 (2)熟练掌握常用CREATE 或ALTER 在创建或修改表时设置约束 (3)了解触发器的机制和使用 (4)验证数据库系统数据完整性控制 2、实验平台 使用SQL Server数据库管理系统提供的SSMS和查询编辑器。 3 实验内容及要求 结合ST数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。 设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。 设计一些示例数据,验证完整性检查机制。 要求包括如下方面的内容: 3.1 使用SQL语句设置约束 使用CREATE或ALTER语句完成如下的操作,包括: 1.设置各表的主键约束 2.设置相关表的外键 3. 设置相关属性的非空约束、默认值约束、唯一约束 4. 设置相关属性的CHECK约束 3.2 使用触发器 创建一个触发器,实现如下的完整性约束:

● 当向SC 表中插入一行数据时,自动将学分累加到总学分中。 ● 记录修改学分的操作。 3.4 检查约束和触发器 分别向相关表插入若干条记录,检查你设置的完整性约束是否有效: 1. 插入若干条包含正确数据的记录,检查插入情况 2. 分别针对设置的各个约束,插入违反约束的数据,检查操作能否进行 3. 向SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。 4 实验报告 要求写出实验的基本过程。解释操作过程中出现的现象。 SC Student

参考示例: 建立一个学生选课数据库,熟悉约束及触发器的使用方法。 一、声明完整性约束 创建学生选课数据库TEST,包括三个基本表,其中Student表保存学生基本信息,Course 表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构 表3. SC表结构

6第六章信息系统与数据库

第六章信息系统与数据库 一、选择题 1.数据库在()上的存储结构与存取方法称为数据库的物理结构。 A.虚拟存储器 B内存储器 C.外存储器 D. Cache 2.数据库管理系统能对数据库中的数据进行查询、插入、修改和删除等操作,这种功能称为() A.数据库控制功能 B.数据库管理功能 C.数据定义功能 D.数据操纵功能 3.在对关系R和关系S进行”差”操作时,要求R和S满足下列要求 A. R的元组个数多于S的元组个数 B. R和S有相同的模式结构 C. R和S不能为空关系 D. R不能为空关系,但S可以为空关系 4.关系操作中的投影运算对应SELECT语句中()子句。 A. SELECT B. FROM C. WHERE D. GROUP BY 5.设有学生关系表S(学号.姓名,性别,出生年月),共有100条记录,执行SQL语句:DELETE FROM S后,结果为() A.删除了S表的结构和内容 B. S表为空表,但其结构被保留 C.没有删除条件,语句不执行 D.仍然为100条记录 6.假定学生关系模式是S(学号,姓名,性别,年龄),课程关系模式是C(课程号,课程名,学时数),

选课关系模式是SC(学号,课程号,成绩),要查找选修课程名为“信息技术”的所有女学生的姓名,将涉及到的关系有() A .S B. C、SC C. S、SC D. S、C、SC 7.下列关于数据库系统的叙述中,错误的是( ) A.物理数据库指长期存放在外存上的可共享的相关数据的集合 B.数据库中存放的”元数据”是关于数据之间联系的描述 C.数据库系统支持环境不包括操作系统 D.用户使用SQL实现对数据库的基本操作 8.下列关于SQL叙述中,错误的是( ) A. SQL是关系数据库的标准语言 B. SQL具有数据定义、查询、操纵和控制功能 C. SQL可以自动实现关系数据库的规范化 D. SQL是一种非过程语言 9.在信息系统设计中,一般使用( )作为数据库概念结构设计的工具。 A.系统结构图 B.模块IPO表 C. U/C图 D. E-R图 10.下列关于数据库系统特点的叙述中,正确的是_。 A.数据库避免了所有数据重复的存储 B.数据的一致性是指数据库中的数据类型一致 C.数据库减少了数据冗余 D.数据共享是指各类用户均可任意访问数据库中的数据 11.关系运算中的并、差和交都是( )运算。 A.一元 B.二元 C.多元

数据库完整性

数据库完整性 数据库完整性(Database Integrity)是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。通过DBMS实现的数据库完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计(本文主要讨论前者)。 重要性 数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面: 1.数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。 2.利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。 3.合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。比如装载大量数据时,只要在装载之前临时使基于DBMS的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。 4.在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。 数据库完整性约束可分为6类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束、关系级动态约束。动态约束通常由应用软件来实现。不同DBMS支持的数据库完整性基本相同,Oracle支持的基于DBMS的完整性约束如下表所示: 数据库完整性设计阶段 一个好的数据库完整性设计首先需要在需求分析阶段确定要通过数据库完整性约束实现的业务规则,然后在充分了解特定DBMS提供的完整性控制机制的基础上,依据整个系统的体系结构和性能要求,遵照数据库设计方法和应用软件设计方法,合理选择每个业务规则的实现方式;最后,认真测试,排除隐含的约束冲突和性能问题。基于DBMS的数据库完整性设计大体分为以下几个阶段:

课程管理系统数据库设计及实现

大学课程设计报告 课程设计题目:“课程管理系统”数据库设计与实现 学院: 专业班级: 年级: 姓名: 学号: 完成时间:年月日成绩: 指导教师:

目录 第1章课程管理系统功能需求分析 第2章课程管理系统概念结构设计 2.1设计E-R图 2.2 E-R模型向关系模型的转换 第3章创建视图与索引,授予用户权限 3.1创建视图 3.2 创建索引 3.3 授予权限

正文 一、需求分析 1.近年来,随着各大高校的规模不断扩大,生源的急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量,需要建立一个课程管理系统来提高管理质量,让老师减轻工作量,提高工作效率。建立课程管理系统就是为了实现信息的规范管理、科学统计与快速查询,从而减少管理方面的工作量。课程管理系统主要提供教师、学生的学籍管理、成绩管理与课程管理功能。 2.需求功能分析: 教师与学生的登录 学生学籍的添加、修改、删除、查询 课程管理的添加、修改、删除、查询 教师授课的安排 3.用户需求分析 用户的需求具体体现在各种信息的提供、保存、更新、查询方面,这就要求数据库机构能充分满足各种信息的输入与输出。收集基本数据、数据结构以及数据处理流程,组成一份详尽的数据字典,为后面的具体设计打下基础。针对课程管理系统的需求,通过对课程管理系统的设计与数据流程的分析,设计如下所示的数据项与数据存储表:

登录信息:包括用户号、密码、权限 学籍信息:包括用户号、姓名、性别、出生日期、班级、入学日期、家庭住址、电话 课程信息:包括课程号、课程名、类型、教师名 4.统的总体结构设计 该系统共有三个模块:登陆模块、学籍管理模块、课程信息模块。这几个模块同时还包括数据添加、数据修改、数据删除、数据查询等几个基本操作。 (1)登录模块在登录界面中教师与学生可登录。在登录界面中分别填入用户名、密码与身份,然后按确认键登录。如果填入信息有误则弹出错误信息的提示窗口,重新返回登陆窗口。如果填入信息正确则要根据登录信息表中登录者的权限(“0”或“1”)分别进入教师(“1”)或学生(“0”)管理系统主界面。 (2)学籍管理模块该模块主要完成学生基本信息的添加、修改、删除、查询等功能。根据登录时权限的判断,权限为“0”时,是学生进入该模块,只可对自己的学籍进行查询,添加、修改、删除功能不可用;权限为“1”时,教师进入该模块,此时可进行所有学生学籍的查询、添加、修改、删除,在此模块中定义了8个数据来进行学生的信息存储,如果修改某个记录,可单击修改按钮进行数据的编辑,此时界面数据内容与数据库内容将同时更新。 (4)课程管理模块该模块主要完成存储课程的所有信息的添加、修改、删除、查询等功能。根据登录时权限的判断,权限为“0”时,学生进入

数据库设计技巧——保证数据的完整性

1. 用约束而非商务规则强制数据完整性 如果你按照商务规则来处理需求,那么你应当检查商务层次/用户界面:如果商务规则以后发生变化,那么只需要进行更新即可。 假如需求源于维护数据完整性的需要,那么在数据库层面上需要施加限制条件。 如果你在数据层确实采用了约束,你要保证有办法把更新不能通过约束检查的原因采用用户理解的语言通知用户界面。除非你的字段命名很冗长,否则字段名本身还不够。—Lamont Adams 只要有可能,请采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。 — Peter Ritchie 2. 分布式数据系统 对分布式系统而言,在你决定是否在各个站点复制所有数据还是把数据保存在一个地方之前应该估计一下未来5 年或者10 年的数据量。当你把数据传送到其他站点的时候,最好在数据库字段中设置一些标记。在目的站点收到你的数据之后更新你的标记。为了进行这种数据传输,请写下你自己的批处理或者调度程序以特定时间间隔运行而不要让用户在每天的工作后传输数据。本地拷贝你的维护数据,比如计算常数和利息率等,设置版本号保证数据在每个站点都完全一致。 — Suhair TechRepublic 3. 强制指示完整性 没有好办法能在有害数据进入数据库之后消除它,所以你应该在它进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。 — kol 4. 关系 如果两个实体之间存在多对一关系,而且还有可能转化为多对多关系,那么你最好一开始就设置成多对多关系。从现有的多对一关系转变为多对多关系比一开始就是多对多关系要难得多。 — CS Data Architect 5. 采用视图

数据库设计源代码

//选择一种高级语言实现下列语句的功能。 //CREATE TABLE <表名>(<列名><数据类型>[<列完整性约束条件>][,<列名><数据//类型>[<列完整性约束条件>]…][,<表完整性约束条件>] ) //ALTER TABLE <表名> [ADD <新列名><数据类型>[<列完整性约束>]] [DROP<列完整//性约束名>][MODIFY <列名><数据类型>] //使用说明 //1、将程序文件table.sql放在D盘根目录下。 //2、在C盘根目录下建立一个名为"数据库"的文件夹,用于存储表。 //3、建立的表存储路径为C:\数据库:\table.dbf。 //4、在程序文件table.sql中只有一条建表语句和三条修改表语句,在以程序方式执//行时注意执行的次数,慎重选择“是否继续执行”。 //5、程序输入的SQL语句格式如下: //create table student //( //SNO int PRIMARY KEY, //SNAME char(10) UNIQUE, //SAGE int, //SDEPT char(20) NOT NULL, //COURSE char(20), //GRADE int //); //alter table student add CNO int NOT NULL; //alter table student alter column SAGE short; //alter table student drop SDEPT; #include #include #include #include //宏定义 #define YEAR 0 #define MONTH 1 #define DAY 2 #define FOX_VERISON_INFO 262 #define MAX 40 //字段类型 #define DATE 0x44 #define DOUBLE 0x45 #define FLOAT 0x46 #define SHORT 0x47

案例分析 第六章:物流管理系统的数据库设计(六个基本步骤)案例分析

物流管理信息系统得数据库设计 (案例分析) 系统名称:物流管理信息系统(数据库管理系统) 一、需求分析 需求分析就是整个数据库设计过程得基础,要收集数据库所有用户得信息内容与处理要求,并加以规格化与分析。 物流管理系统就是为制造商与零售商设计得管理系统数据库系统,目得就是: 1、实现上游制造商得信息管理。 2、实现下游零售商得信息管理。 3、实现进库与配送得信息管理。从而提高物流效率,降低物流成本并提高企 业管理化水平。经过调研分析,得到系统得如下功能需求。 (1)数据检索 1、制造商、零售商查询某一产品名称,规格与单位 输入:产品编号 输出:产品名称,产品规格,产品单位,制造商编号 2、物流中心、制造商查询某一零售商名称,联系人,地址,电话号码,网址 输入:零售商编号 输出:零售商名称,联系人,地址,电话号码,网址 3、零售商、物流中心查询某一制造商信息表 输入:制造商编号 输出:制造商名称,联系人,地址,电话号码,网址 4、物流中心、制造商、零售商查询某一产品得出库信息表 输入:仓库编号 输出:仓库编号,库名,地址,电话 5、物流中心、零售商查询某一产品得制造商与产品信息表 输入:产品编号编号 输出:制造商名称,联系人,地址,电话号码,网站,产品名称,产品名称,产品规格,产品单位 6、查询某一产品对应得物流中心编号及产品信息 输入:产品编号 输出:物流中心编号,货物价格,提取、产品编号,产品、产品名称,产品名称,产品规格,产品单位 7、制造商,零售商查询某一物流中心信息 输入:物流中心编号 输出:物理中心名称,联系人,地址,电话号码,网址 (2)数据插入 ①产品数据插入 ②制造商数据插入 ③零售商数据插入 ④物流中心数据插入 (3)数据修改 ①产品数据修改:某产品数据变化时,输入该产品编号以及需修改得属性, 完成对产品表得修改

第六章数据库设计 练习题和答案

第六章数据库设计 一、选择题 1. 数据流程图是用于描述结构化方法中()阶段的工具。 A. 概要设计 B. 可行性分析 C. 程序编码 D. 需求分析 2. 数据库设计中,用E-R图赖描述信息结构但不涉及信息在计算机中的表示,这是数据库设计的()。 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 3. 在数据库设计中,将E-R图转换成关系数据模型的过程属于()。 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 4. 子模式DDL是用来描述()。 A. 数据库的总体逻辑结构 B. 数据库的局部逻辑结构 C. 数据库的物理存储结构 D. 数据库的概念结构 5. 数据库设计的概念设计阶段,表示概念结构的常用方法和描述工具是()。 A.层次分析法和层次结构图 B.数据流程分析法和数据流程图 C.实体联系法和实体联系图 D.结构分析法和模块结构图 6. 在E-R模型向关系模型转换时,M:N的联系转换为关系模式时, 其关键字是()。 A.M端实体的关键字 B.N端实体的关键字 C.M、N端实体的关键字组合 D.重新选取其他属性 7. 某学校规定,每一个班级最多有50名学生,至少有10名学生; 每一名学生必须属于一个班级。在班级与学生实体的联系中, 学生实体的基数是()。 A. (0,1) B. (1,1) C. (1,10) D. (10,50) 8. 在关系数据库设计中,设计关系模式是数据库设计中()阶段的任务。 A. 逻辑设计阶段 B. 概念设计阶段 C. 物理设计阶段 D. 需求分析阶段 9. 关系数据库的规范化理论主要解决的问题是()。 A.如何构造合适的数据逻辑结构 B.如何构造合适的数据物理结构 C.如何构造合适的应用程序界面 D.如何控制不同用户的数据操作权限 10. 数据库设计可划分为七个阶段,每个阶段都有自己的设计内容, “为哪些关系,在哪些属性上、键什么样的索引” 这一设计内容应该属于()设计阶段。 A. 概念设计 B. 逻辑设计 C. 物理设计 D. 全局设计

数据库图书管理系统(含代码)

目录 一.需求描述和系统边界 (2) 二.需求分析 (2) 1.业务需求 (2) 2.功能需求及数据需求分析 (2) 3.业务规则分析 (3) 三.实体集及属性 (4) 四.联系集及E-R图 (5) 五.逻辑数据库设计 (6) 六.数据库编程 (7) 1.创建表 (7) 2.创建触发器 (10) 3.管理员操作 (10) 4.读者操作 (11) 5. 管理员对借阅关系的操作 (12) 七.代码实现 (13) 1.输入数据设计 (13) 2.完成借阅、续借、归还的操作设计 (15) 八.模式求精 (17) 九.小结 (17)

一.需求描述和系统边界 数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的数目逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,创建图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。 该图书管理系统支持2类用户:管理员和读者。读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。 二.需求分析 1.业务需求 图书管理系统的主要业务包括:包括图书馆内书籍的信息,读者信息,以及借阅信息。此系统功能分为面向读者和面向管理员两部分,其中读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。 2.功能需求及数据需求分析 (1)注册管理 管理员注册。管理员注册时要求填写基本信息,包括管理员编号、姓名、性别、联系电话、家庭住址。系统检查所有信息填写正确后管理员注册成功。 读者注册。读者注册时要求填写基本信息,包括读者编号、姓名、性别、联系电话、学院等。系统检查所有信息填写正确后读者注册成功。 (2)图书管理 增加图书信息。当有新的图书入库时,管理员负责添加图书信息,包括书名、分类、图书编号、作者、出版社、出版时间、简介等。 图书信息查询。管理系统需提供方便快捷的方式进行图书检索。如可以输入

第八章数据库完整性概念

第八章数据库完整性概念 1、什么是数据库的完整性? 答: 数据库的完整性是指数据的正确性和相容性。 2、数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答: 数据的完整性和安全性是两个不同的概念,但是有一定的联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 3、什么是数据库的完整性约束条件? 答: 完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。 4、RDBMS的完整性控制机制应具有哪些功能? 答: DBMS的完整性控制机制应具有三个方面的功能: (1)定义功能,即提供定义完整性约束条件的机制; (2)检查功能,及检查用户发出的操作请求是否违背了完整性约束条件; (3)违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 5、RDBMS在实现参照完整性时需要考虑哪些方面? 答: RDBMS在实现参照完整性时需要考虑以下几个方面: (1)外码是否可以接受空值。 (2)删除被参照关系的元组时的考虑,这时系统可能采取的做法有三种:级联删除、受限删除、置空值删除。 (3)在参照关系中插入元组时的问题,这时系统可能采取的作法有:受限插入、递归插入。 (4)修改关系中得主码的问题。一般是不能用UPDATE语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关 系中。如果允许修改主码,首先要保证主码的唯一性和非空,否则拒绝修改。 然后要区分是参照关系还是被参照关系。 7、在关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的? 答: 对于违反实体完整性和用户定义完整性的操作一般采用拒绝执行的方式进行处理。而对

相关文档
相关文档 最新文档