除员工参加该工程的记录时,连同该工程的信息也一同被删掉;当删除所有员工参加工程的记录时,薪级工资信息将会被删除,而工资与薪级的关系是不依赖于是否有员工参加工程的。
(4)P(工程号,工程名);
E(员工号,员工姓名); W(薪级,工资);
PEW(工程号,员工号,薪级)。
第10章 数据库设计
1.简述数据库的设计内容。
参考答案:数据库设计一般包括数据库的结构设计和行为设计两方面内容,数据库结构设计是指系统整体逻辑模式与子模式的设计,是对数据的分析设计;数据库的行为设计是指施加在数据库上的动态操作的设计,是对应用系统功能的设计。在设计的过程中,应该把对数据库的结构设计和行为设计两方面紧密结合起来,将这两方面的需求分析,抽象、设计及实现在各个阶段同时进行,相互参照,互相补充,不断完善。
2.简述数据库设计过程各阶段的任务。
参考答案:数据库设计一般分为需求分析,概念结构设计、逻辑结构设计、物理设计及数据库的实施、数据库运行与维护6个阶段。在需求分析阶段主要由系统分析人员与业务专家、用户合作,收集资料,并对资料进行分析整理,画出数据流图,建立数据字典,并把设计的内容反馈给用户进行确认,直到最后形成认可的需求分析文档。概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,目前常用E-R图来描述。逻辑结构设计是将概念结构转换为某个DBMS支持的数据模型,并对其进行优化。数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构然后对物理结构的时间及空间效率进行评价。在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据进入数据库,并进行试运行。数据库应用系统经过试运行后,经测试无误之后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、维护与调优。
3.简述数据流图的画法。
参考答案:一般情况下,应该遵守“由外向里”的原则。即先确定系统的边界或范围,再考虑系统的内部,先画加工的输入和输出,再画加工内部。具体实行时可按下述步骤进行:
(1)识别系统的输入和输出,画出顶层图。
(2)画系统内部的数据流、加工与文件,画出一级细化图。 (3)加工的进一步分解,画出二级细化图。
(4)从左至右画数据流图。通常左侧、右侧分别是数据源和终点,中间是一系列加工和文件。正式的数据流图应尽量避免线条交叉,必要时可用重复的数据源、终点和文件符号。此外,数据流图中各种符号布置要合理,分布应均匀。
4.数据字典的内容和作用是什么?
参考答案:数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程5个部分,数据项是最小单位,若干个数据项可组成一个数据结构,数据字典通过数据项和数据结构的定义来描述数据流及数据存储的逻辑内容。数据字典是进行详细的数据收集与数据分析所获得的主要成果,使得用户和开发人员对于输入、输出、存储成分和中间计算有共同的理解,在数据库设计中占有很重要的地位。
5.简述概念结构的设计步骤。
参考答案:首先对需求分析阶段收集到的数据进行分类和聚集,形成实体、实体的属性、标识实体的键。然后按组织机构或者提供的服务进行归纳划分,设计分E-R图、确定实体之间的联系类型(1:1、1:n、m:n)。最后集成局部视图,进行合并重构,处理冲突,优化得到全局概念结构。
6.简述将E-R图转换为关系模型的一般规则。
参考答案:把E-R模型向关系模型转换实际上就是将实体、属性及实体间的联系转化为关系模式,这种转换一般遵循如下原则:
(1)一个实体集转换为一个关系模式,就是将实体的属性对应关系模式的属性,实体的键就是关系的键。
(2)一个1:1联系一般不单独转换为关系模式,而是与所联系的两个实体任一实体对应关系模式合并,即在这一关系模式中加入另一实体对应的关系模式的键和联系本身的属性的可以转换为一个独立的关系模式。
(3)一个1:n联系一般也不单独转换为关系模式,而是与n端实体对应的关系模式合并,即在n端对应关系模式增加1端实体对应关系模式的键和联系本身的属性。
(4)一个m:n联系需要单独转换为一个关系模式。其属性有联系两端实体的键和联系本身的属性组成,该关系模式的键由联系两端实体的键组合而成。
(5)对于三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的键以及联系本身的属性均转换为关系的属性,把各实体键的组合变成该关系模式的键。如果多个关系模式具有相同键,则这些关系模式可合并。
(6)自联系增加一个键值对的关系。 7.简述物理结构设计的主要内容。
参考答案:物理结构的设计目标主要有两个,一是提高数据库的性能,二是有效利用存储空间,围绕这上述目标,主要内容有:
(1)确定数据的存储结构。 (2)设计数据的存取路径。 (3)确定数据的存放位置。 (4)确定系统配置。
8.数据库日常维护工作是什么?
参考答案:数据库日常的维护工作主要是由DBA完成的,它包括: (1)数据库的备份和恢复。
(2)数据库的安全性、完整性控制。 (3)数据库性能的监督、分析和改造。 (4)数据库的重组织与重构造。
9.一个简单的科研项目管理数据库设计如下数据: 科研人员:工号、姓名、性别、专业、技术职务。
科研项目:项目编号、项目名称、经费、立项时间、结题时间。 主持人:主持人编号、领域、主持项目数。
一个科研人员可以参加多个科研项目、每个科研项目可以由多个科研人员参加、一个主持人可以主持多个项目、每个项目只有一个主持人。
(1)设计该科研项目管理系统的E-R图。 (2)转换成关系模型(标明主、外键)。
(3)基于SQL Server 2008 设计成相应的表,写出建表的SQL语句。
(4)创建一个视图,用于显示某主持人主持项目的信息,字段包括主持人编号、姓名、项目编号、项目名称、经费、参加项目的科研人员人数。
参考答案:(1)E-R图如下:
科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科1科科1科科科科科科1科科科科n科科科科科科科科m科科科科科科科科科科科科n科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科科
(2)转换为关系模型
主持人(主持人编号,工号,领域,主持项目数),主持人编号是主键,工号外键。 科研项目(项目编号,项目名称,经费,立项时间,结题时间,主持人编号),项目编号是主键,主持人编号是外键。
科研人员(工号,姓名,性别,专业,技术职务),工号是主键。
参加科研(项目编号,工号,参加时间),(项目编号,工号)是主键,项目编号和工号分别是外键。
(3)参考语句如下:
CREATE TABLE 科研人员(
工号 CHAR(10) PRIMARY KEY, 姓名 CHAR(10) NOT NULL,
性别 CHAR(2) CHECK (性别 IN (’男’,’女’)) 专业 VARCHAR(30), 技术职务 CHAR(10)); CREATE TABLE 主持人(
主持人编号 CHAR(5) PRIMARY KEY,
工号 CHAR(10) REFERENCES 科研人员(工号), 领域 VARCHAR(20), 主持项目数 INT); CREATE TABLE 科研项目(
项目编号 CHAR(8) PRIMARY KEY, 项目名称 VARCHAR(50) NOT NULL,
经费 MONEY, 立项时间 DATE, 结题时间 DATE,
主持人编号 CHAR(5) REFERENCES 主持人(主持人编号)); CREATE TABLE 参加科研( 项目编号 CHAR(8), 工号 CHAR(10), 参加时间 DATE,
PRIMARY KEY(项目编号, 工号),
FOREIGN KEY(项目编号) REFERENCES 科研项目(项目编号), FOREIGN KEY(工号) REFERENCES 科研人员(工号));
(4)参考语句如下:
CREATE VIEW v_主持项目信息 AS
SELECT 科研项目.主持人编号,姓名,科研项目表.项目编号,项目名称,经费, (SELECT COUNT(*) AS Expr1 FROM 参加科研
WHERE 项目编号 =科研项目表.项目编号) AS 科研人员数
FROM 科研项目 JOIN 主持人 ON 科研项目.主持人编号=主持人.主持人编号
JOIN 科研人员 ON 主持人.工号=科研人员.工号