项目一 公司管理数据库 系统的规划

88
1 项项 项项项项项项项 项项项

description

项目一 公司管理数据库 系统的规划. 工作任务:. 根据某公司的工作流程,设计一个满足该公司管理的数据库系统。具体要求如下: 公司数据库管理系统主要完成客户和产品之间进行产品订购的功能,此系统可以实现让 公司 增加、删除和修改所提供的产品,还可以让 客户 增加、删除和修改所需要的产品。公司 交易员(雇员) 可以利用客户提出的订货信息和产品信息提出交易建议。另外,该系统能够分类统计已订购的产品信息。. 数据. - PowerPoint PPT Presentation

Transcript of 项目一 公司管理数据库 系统的规划

Page 1: 项目一  公司管理数据库 系统的规划

1

项目一 公司管理数据库系统的规划

Page 2: 项目一  公司管理数据库 系统的规划

2

工作任务: 根据某公司的工作流程,设计一个满足该公

司管理的数据库系统。具体要求如下: 公司数据库管理系统主要完成客户和产品之

间进行产品订购的功能,此系统可以实现让公司增加、删除和修改所提供的产品,还可以让客户增加、删除和修改所需要的产品。公司交易员(雇员)可以利用客户提出的订货信息和产品信息提出交易建议。另外,该系统能够分类统计已订购的产品信息。

Page 3: 项目一  公司管理数据库 系统的规划

3

   数据 描述事物的符号称为数据。描述事

物的符号可以是数字,也可以是文字、图形、图像、声音、语言等,数据有多种表现形式,他们都可以经过数字化后存入计算机。

Page 4: 项目一  公司管理数据库 系统的规划

4

   数据库 数据库是指长期存储在计算机内

的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

Page 5: 项目一  公司管理数据库 系统的规划

5

  数据库管理系统 数据库管理系统是位于用户与操作系

统之间的一层数据管理软件。它的主要功能包括以下几个方面:

数据定义功能 数据操纵功能 数据库的运行管理 数据库的建立和维护功能

Page 6: 项目一  公司管理数据库 系统的规划

6

Oracle 数据库管理系统工作界面

Page 7: 项目一  公司管理数据库 系统的规划

7

SQL Server 数据库管理系统工作界面

Page 8: 项目一  公司管理数据库 系统的规划

8

Access 数据库管理系统工作界面

Page 9: 项目一  公司管理数据库 系统的规划

9

Visual FoxPro 数据库管理系统工作界面

Page 10: 项目一  公司管理数据库 系统的规划

10

数据库技术的四条线索 三个系统:

历史发展(层次网状系统) 当前主流(关系系统) 未来发展(面向对象系统)

数据库发展史上的两条主线: 数据模型的演变:层次、网状、关系、面向对象 数据语言的演变:基本 SQL 、嵌入 SQL 、动态 SQL 、递归 SQL、 ORDB的 SQL

两个端点: 用户(使用)、系统(实现)

数据库设计演变的过程 ER 图,对象联系图, UML 类图

Page 11: 项目一  公司管理数据库 系统的规划

11

DBMS 主流产品现状 代表性产品: Oracle 公司的 Oracle、 IBM 公司的

DB2 以及微软的 SQL Server 等 关系数据库技术仍然是主流

2000年 RDBMS 的市场份额占整个数据库市场的80% ,这个比例比 1999 年增长了 15% 。

产品形成系列化 如 DB2 通用数据库产品包括了从高端的企业级并行

数据库服务器,到移动端产品 DB2 Everywhere 的一整套系列。从支持平台看,不再是大型机上的专有产品,支持目前主流的各种平台,包括 Linux和Windows NT 。此外,它还有各种中间件产品,如 DB2 Connect、 DB2 Datajointer、 DB2 Replication 等,构成了一个庞大的数据库家族。

Page 12: 项目一  公司管理数据库 系统的规划

12

DBMS 主流产品现状 支持各种互联网应用

例如, Oracle 公司从 8 版起全面支持互联网应用,是互联网数据库的代表。微软公司更是将SQL Server 作为其整个 .NET 计划中的一个重要的成分。

海量数据处理 互联网提供大量以 XML 格式数据为特征的半结

构化数据,支持这种类型的数据的存储、共享、管理、检索等也是各数据库厂商的发展方向。

Page 13: 项目一  公司管理数据库 系统的规划

13

DBMS 主流产品现状 向智能化集成化方向扩展

数据丰富知识贫乏的现实直接导致了联机分析处理( OLAP )、数据仓库( Data Warehousing )和数据挖掘 (Data Mining) 等技术的出现

企业应用越来越复杂,会涉及到应用服务器、 Web 服务器、其它数据库、旧系统中的应用以及第三方软件等,数据库产品与这些软件是否具有良好集成性往往关系到整个系统的性能。

Oracle 公司的 Oracle 9i 产品包括了 OLAP 、数据挖掘、ETL 工具等一套完整的 BI (商业智能)支持平台。 IBM 公司也把 BI 套件作为其数据库的一个重点来发展。

微软认为商务智能将是其下一代主要的利润点。

Page 14: 项目一  公司管理数据库 系统的规划

14

DBMS 模块DBA

及助手 最终用户 应用程序员

DDL

应用程序交互式查询

权限命令

DDL编译器

预编译器DDL

编译器

机器语言编译器

DML

系统和数据字典

运行 DB处理机存储

数据管理者

存储数据库

用户

软件

数据

DML 编译器

Page 15: 项目一  公司管理数据库 系统的规划

15

数据模型 数据库系统模型是指数据库中数据的存储结

构。较为常见的有层次模型、网络模型、关系模型 3 种,选择使用这 3 种模型的数据库被分别称为层次型数据库、网络型数据库和关系型数据库。

Page 16: 项目一  公司管理数据库 系统的规划

16

1 .层次型数据库 层次型数据库使用结构模型作为自己的存储结

构。这是一种树型结构,它由结点和连线组成,其中节点表示实体,连线表示实体之间的关系。

层次模型的特点:( 1 )有且仅有一个结点无双亲,该结点称为

根结点;( 2 )其他结点有且只有一个双亲;( 3 )上一层和下一层记录类型间联系是 1:N

Page 17: 项目一  公司管理数据库 系统的规划

学校的层次模型

学 生

学 校

系 处 室

教研室 科 室

教 师 课 程

Page 18: 项目一  公司管理数据库 系统的规划

18

2 .网络型数据库 网络型数据库使用网络模型作为自己的存储结

构。在这种存储结构中,数据记录将组成网络中的节点,而记录和记录之间的关联组成节点之间的连线,从而构成了一个复杂的网状结构。

( 1 )有一个以上的结点没有双亲;( 2 )结点可以有多于一个的双亲

专业

学生教师

教室课程

Page 19: 项目一  公司管理数据库 系统的规划

19

3 .关系型数据库 关系型数据库使用的存储结构是多个二维表格。

表中的一行称为一条记录或元组,用来描述一个对象的信息;表中的一列称为一个字段或属性,用来描述对象的一个属性。数据表与数据表之间存在相应的关联,这些关联将被用来查询相关的数据。

Page 20: 项目一  公司管理数据库 系统的规划

20

数据库设计的基本步骤 按照规范化设计方法将数据库设计分为

以下 6 个阶段 需求分析 概念结构设计 逻辑结构设计 数据库物理设计 数据库实施 数据库运行和维护

Page 21: 项目一  公司管理数据库 系统的规划

21

需求分析

设计局部视图

集成视图概念结构

设计

设计逻辑结构

优化逻辑结构逻辑结构

设计

设计物理结构

评价物理结构物理结构

设计

数据库系统实现

试验性运行数据库实施

满意 加载数据库

投入运行维护

数据库设计过程

Page 22: 项目一  公司管理数据库 系统的规划

22

数据库设计思想原则 用户参与 发展眼光:系统不仅要满足用户目前的需求,

也应满足近期要求,还要对于远期需求有相应的处理方案。

Page 23: 项目一  公司管理数据库 系统的规划

23

需求分析的任务详细调查用户要处理的对象充分了解原系统的工作概况明确用户的各种要求 然后在此基础上确定新系统的功能

信息要求处理要求完整性要求

Page 24: 项目一  公司管理数据库 系统的规划

24

需求分析方法 为了明确用户的实际要求,需要:

跟班作业;开调查会;请专人介绍;询问;设计调查表要用户填写;查阅记录等;

Page 25: 项目一  公司管理数据库 系统的规划

25

收集基础数据和一组数据流图 建设好数据字典:

数据项数据结构数据流数据存储处理过程

将收集到的数据分析后,提交给用户,征得用户认可。

Page 26: 项目一  公司管理数据库 系统的规划

26

(一)公司管理数据库系统的需求分析

在这个阶段中,将对需要存储的数据进行收集和整理,并组织建立完整的数据集。可以使用多种方法进行数据的收集,例如相关人员调查、历史数据查阅、观摩实际的运作流程以及转换各种实用表单等。

Page 27: 项目一  公司管理数据库 系统的规划

27

数据流图

雇员

发货部门

订单信息客户 客户信息 订货

接受订货雇员信息 订单信息

产品信息

产品信息

产品信息

Page 28: 项目一  公司管理数据库 系统的规划

28

数据字典 数据流

数据流名称:客户信息来源:客户去向:处理——订货包含的数据项: 客户号 公司名称 联系人姓名 联系方式 地址 邮编

数据流名称:雇员信息

来源:雇员

去向:处理——接受订单

包含的数据项:

雇员号

姓名

性别

出生年月

雇用日期

特长 薪水

数据流名称:产品信息

来源:雇员

去向:处理——接受订单

包含的数据项:

雇员号

姓名

性别

出生年月

雇用日期

特长 薪水

Page 29: 项目一  公司管理数据库 系统的规划

29

学生成绩管理系统

Page 30: 项目一  公司管理数据库 系统的规划

30

(二)公司管理数据库系统的概念模型设计

在需求分析的基础上,用 E—R 模型表示数据及其相互间的联系,产生反映用户信息需求的数据模型。概念设计的目的是准确地描述应用领域的信息模式,支持用户的各种应用,概念设计的成果是绘制出公司管理数据库系统的 E—R图。

Page 31: 项目一  公司管理数据库 系统的规划

31

概念模型 概念模型最常用方法是实体 - 联系( Entity-

Relationship )方法(即 E-R 方法),它源于 1976 年。

E-R图所描述的现实世界的信息结构称为实体 - 联系模型( E-R 模型)。 E-R图中包括实体、属性和联系 3 种基本图素

Page 32: 项目一  公司管理数据库 系统的规划

32

1.概念模型的主要概念 实体:客观存在并相互区别的事物及其事物之间的

联系。例如,一个学生、一门课程、学生的一次选课等都是实体。

属性:实体所具有的某一特性。例如,学生的学号、姓名、性别、出生年份、系、入学时间等。

联系:实体与实体之间以及实体与组成它的各属性间的关系,分为:

一对一联系 一对多联系 多对多联系

Page 33: 项目一  公司管理数据库 系统的规划

33

⑴ 一对一联系( one-to-one) 定义 如果两个实体集 A、 B 中的任意一

个实体至多与另一个实体集中的一个实体对应联系,则称 A、 B 为一对一联系。记为“ 1- 1” 联系

Page 34: 项目一  公司管理数据库 系统的规划

34

⑵ 一对多联系( one-to-many) 定义 设有两个实体集A和B,如果A中每

个实体与B中任意个实体(包括零个)有联系,而B中的每个实体至多与A中的一个实体有联系,则称该联系为"从A到B的 1对多联系",记为" 1-m"联系

Page 35: 项目一  公司管理数据库 系统的规划

35

⑶ 多对多联系( many-to-many) 定义 如果两个实体集A、B中的每个实体都与另一个实体集中的任意个实体(包括零个实体)有联系,则称这两个实体集是多对多联系,记为“m-n”联系。

Page 36: 项目一  公司管理数据库 系统的规划

36

2.概念模型的表示方法 实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应

的实体连接起来。 联系:用菱形表示,菱形框内写明联系名,并

用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型( 1:1 , 1:n或m:n)。

Page 37: 项目一  公司管理数据库 系统的规划

37

E-R模型 E-R模型是现实世界的纯粹表示,有三个基本成份:实体、联系和属性。它是一个概念性模型,描述的是现实中的信息联系,而不涉及数据如何在数据库系统中的存放。

Page 38: 项目一  公司管理数据库 系统的规划

38

公司管理数据库系统的 E—R 模型

客户

客户ID

公司名称

联系人姓名 地址

联系方式 邮编

订单

订单ID

产品ID

雇员ID

数量 客户ID

订货日期

发出 产品

产品ID

产品名

类别名

库存量单价

包含

负责

雇员

雇员ID

姓名 性别雇佣日期

出生年月 特长 薪水

产品名

Page 39: 项目一  公司管理数据库 系统的规划

39

(三)公司管理数据库系统的逻辑设计 数据库逻辑设计的任务是把数据库概念

设计阶段产生的数据库概念模式( E—R图)转换为数据库逻辑模式。进行数据库逻辑设计,首先将概念设计中所得的 E—R图转换成等价的关系模式,然后,再进行逻辑模式的规范化和性能优化,使形成的数据库系统数据表,满足用户的完整性和安全性要求。

Page 40: 项目一  公司管理数据库 系统的规划

40

1、 E—R图转换为系统的数据表 利用 E—R图到关系模式转换的有

关知识,将图 1-2 所示的公司管理数据库系统的 E—R图转换为系统的数据表。客户信息表(customer)

客户ID公司名称联系人姓名联系方式地址邮编

订单信息表(P_order)

订单ID产品ID产品名数量雇员ID客户ID订货日期

雇员信息表(employee)

雇员ID姓名性别出生年月雇佣日期特长薪水

产品信息表(product)

产品ID产品名类别名单价库存量

Page 41: 项目一  公司管理数据库 系统的规划

41

2 、将逻辑模式规范化和性能优化 由 E—R图转换的数据库逻辑模型还

只是逻辑模式的雏形,要成为逻辑模式,还需要进行以下几个方面的处理:

对数据库的性能、存储空间等优化; 数据库逻辑模型的规范化

Page 42: 项目一  公司管理数据库 系统的规划

42

A 、对数据库的性能、存储空间等优化依据:

提高数据库性能的措施有:减少联接运算和减少关系的大小和数据量等。

节省存储空间的措施有:减少每个属性所占的空间、采用假属性减少重复数据所占存储空间。

Page 43: 项目一  公司管理数据库 系统的规划

43

产品信息表( product ) 产品 ID 产品名 单价

(元)类别名 库存量

(件)

1 牛奶 2.30 特制品 200

2 冰激凌 1.50 特制品 400

3 果冻 3.00 特制品 300

4 打印纸 40.00 计算机耗材 100

5 墨盒 200.00 计算机耗材 150

Page 44: 项目一  公司管理数据库 系统的规划

44

产品信息表( product )产品 ID 产品名 类别 ID 单价

(元)库存量(件)

1 牛奶 6 2.30 200

2 冰激凌 6 1.50 400

3 果冻 6 3.00 300

4 打印纸 2 40.00 100

5 墨盒 2 200.00 150

Page 45: 项目一  公司管理数据库 系统的规划

45

类别信息表( category ) 类别 ID 类别名 说明

1 饮料 软饮料、咖啡、茶、啤酒和淡啤酒

2 计算机耗材 打印纸等

3 日用品 牙刷等

4 谷类 /麦片 面包、饼干、生面团和谷物

5 肉 /家禽 精制肉

6 特制品 干果和豆乳

7 海鲜 海菜和鱼

Page 46: 项目一  公司管理数据库 系统的规划

46

拆分产品信息表( product )后的逻辑模式

客户信息表(customer)

客户ID公司名称联系人姓名联系方式地址邮编

订单信息表(P_order)

订单ID产品ID产品名数量雇员ID客户ID订货日期

雇员信息表(employee)

雇员ID姓名性别出生年月雇佣日期特长薪水

产品信息表(product)

产品ID产品名类别ID单价库存量

类别信息表(category)

类别ID类别名说明

Page 47: 项目一  公司管理数据库 系统的规划

47

B 、数据库逻辑模型的规范化 数据库的范式理论

关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则被称为规范化形式,即范式。在数据库设计过程中,对数据库进行检查和修改并使它符合范式的过程叫做规范化。

Page 48: 项目一  公司管理数据库 系统的规划

48

数据库的范式理论 范式按照规范化的级别分为 5 种: 第一范式 (1NF) 、第二范式 (2NF) 、第三范式 (3NF) 、第四范式 (4NF) 和第五范式 (5NF) 。在实际的数据库设计过程中,通常需要用到的是前三类范式。 第一范式 数据的原子性 第二范式 主键的绝对相关性 第三范式 依赖的传递性 

Page 49: 项目一  公司管理数据库 系统的规划

49

(1)第一范式 (1NF) 第一范式要求每一个数据项都不能拆分

成两个或两个以上的数据项。 例:在下面的表 所示的 teacher 表中“学历

学位”是由学历和学位组成的,因此,这个teacher 表不满足第一范式。可以将“学历学位”字段拆分为两个字段,如表所示,从而使该数据表满足第一范式。

教师 ID 姓名 性别 学历学位100 王霞 女 研究生硕士101 葛利 男 本科学士

Page 50: 项目一  公司管理数据库 系统的规划

50

teacher 表 教师 ID 姓名 性别 学历 学位

100 王霞 女 研究生 硕士

101 葛利 男 本科 学士

Page 51: 项目一  公司管理数据库 系统的规划

51

非规范化的关系 score0

学号 姓名 课程名 成绩

991101 李雨 英语计算机基础

8590

991102 杨玲 英语计算机基础

7394

991103 张山 英语计算机基础

7685

Page 52: 项目一  公司管理数据库 系统的规划

52

满足 1NF 的关系 score1学号 姓名 课程名 成绩

991101 李雨 英语 85

991101 李雨 计算机基础 90

991102 杨玲 英语 73

991102 杨玲 计算机基础 94

991103 张山 英语 76

991103 张山 计算机基础 85

Page 53: 项目一  公司管理数据库 系统的规划

53

(2)第二范式 (2NF) :主键的绝对相关性

如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段,那么该数据表满足第二范式,即 2NF 。

Page 54: 项目一  公司管理数据库 系统的规划

54

不满足第二范式的 P_order 表 例: 在 P_order 表中,数据表的主键是订单 ID 。其中,“产品名”

字段完全依赖于“产品 ID” 字段,而不是取决于订单 ID ,因此, P_order 表不满足第二范式。但该数据表中的其他字段都完全依赖于该表的主键字段“订单 ID” ,因此,可以将该数据表中的“产品名”字段去掉,以满足第二范式。

不满足第二范式的 P_order

订单 ID 产品 ID 产品名 数量(件)

雇员 ID 客户 ID 订货日期

27 269 毛巾 10000 1 17 12/05/2006

28 156 脸盆 5000 2 18 15/05/2006

Page 55: 项目一  公司管理数据库 系统的规划

55

满足第二范式的 P_order 表 订单 ID 产品 ID 数量(件) 雇员 ID 客户 ID 订货日期

27 269 10000 1 17 12/05/2006

28 156 5000 02 18 15/05/2006

Page 56: 项目一  公司管理数据库 系统的规划

56

(3)第三范式 (3NF) :依赖的传递性

如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数值之间不存在函数依赖关系,那么该数据表满足第三范式,即 3NF 。

Page 57: 项目一  公司管理数据库 系统的规划

57

例:如果在 employee 表中,“奖金”字段的数值是“薪水”字段数值的 20%,因此,这两个字段之间存在着函数依赖关系,所以 employee 表不满足第三范式。可以将“奖金”字段从该表中去掉,以满足第三范式。

雇员 ID 姓名 性别 薪水(元) 奖金(元)

0001 张三 男 3000 600

0002 李四 男 4000 800

Page 58: 项目一  公司管理数据库 系统的规划

58

规范化后的公司管理数据库逻辑模式

客户信息表(customer)

客户ID公司名称联系人姓名联系方式地址邮编

订单信息表(P_order)

订单ID产品ID数量雇员ID客户ID订货日期

雇员信息表(employee)

雇员ID姓名性别出生年月雇佣日期特长薪水

产品信息表(product)

产品ID产品名类别ID单价库存量

类别信息表(category)

类别ID类别名说明

Page 59: 项目一  公司管理数据库 系统的规划

59

C 、确定数据表和表中的字段 Customer 表:用来存储有关客户的信息

字段名称 数据类型 预计长度 特殊限制

客户 ID int 默认 惟一,且不可为空

公司名称 char 30

联系人姓名 char 8

联系方式 char 12

地址 char 30

邮编 char 6

Page 60: 项目一  公司管理数据库 系统的规划

60

P_order 表:用来存储有关订单的信息

字段名称 数据类型 预计长度 特殊限制

订单 ID int 默认 惟一,且不可为空

产品 ID int 默认

数量 int 默认

雇员 ID int 默认

客户 ID int 默认

订货日期 Datetime 默认

Page 61: 项目一  公司管理数据库 系统的规划

61

Employee 表:用来存储有关雇员的信息

字段名称 数据类型 预计长度 特殊限制

雇员 ID int 默认 惟一,且不可为空

姓名 char 8

性别 char 2

出生年月 datetime 默认

雇佣日期 datetime 默认

特长 char 20

薪水 money 默认

Page 62: 项目一  公司管理数据库 系统的规划

62

Product 表:用来存储有关产品的信息

字段名称 数据类型 预计长度 特殊限制

产品 ID int 默认 惟一,且不可为空

产品名 char 10

类别 ID int 默认

单价 money 默认

库存量 int 默认

Page 63: 项目一  公司管理数据库 系统的规划

63

Category 表:用来存储有关产品类别的信息

字段名称 数据类型 预计长度 特殊限制

类别 ID int 默认 惟一,且不可为空

类别名 char 默认

说明 char 16

Page 64: 项目一  公司管理数据库 系统的规划

64

D 、建立约束,以保证数据的完整性和一致性

Page 65: 项目一  公司管理数据库 系统的规划

65

数据完整性 数据的完整性是指存储在数据库中的数据的正确性和可靠性,它是衡量数据库中数据质量好坏的一种标准。数据完整性要确保数据库中数据一致、准确,同时符合企业规则。因此,满足数据完整性要求的数据应具有以下特点:

数据类型准确无误数据的值满足范围设置同一表格数据之间不存在冲突多个表格数据之间不存在冲突

Page 66: 项目一  公司管理数据库 系统的规划

66

实体完整性 (Entity Integrity

功能: 实体完整性的目的是确保数据库中所有实体的惟一性,也就是不应使用完全相同的数据记录。方法:设定主键 ((Primary Key) 、惟一键(Unique Key) 、惟一索引 (Unique Index)和标识列 (Identity Column) 等,其中最常用的是使用主键。

Page 67: 项目一  公司管理数据库 系统的规划

67

区域完整性 (Domain Integrity

功能:要求数据表中的数据位于某一个特定的允许范围内。方法:使用默认值 (Default) 、核查 (Check) 、外键 (Foreign Key) 、数据类型 (Data Type) 和规则 (Rule) 等多种方法来实现区域完整性。

例:如果限制“性别”字段的数据值可以是“男”或“女”,那么,输入的其他数值将被 SQL Server 2000拒绝。

Page 68: 项目一  公司管理数据库 系统的规划

68

参照完整性 (Referential Integrity) 作用:用来维护相关数据表之间数据一致

性的手段,通过实现参照完整性,可以避免因一个数据表的记录改变而造成另一个数据表内的数据变成无效的值。

方法:外键 (Foreign Key) 、核查 (Check) 、、触发器 (Trigger) 和存储过程 (Stored Procedure) 。例:在 employee 表和 P_order 表中,如果要删除employee 表中的一条记录,而同时在 P_order 表中存在需要参考该记录的记录集,那么该删除操作将会失败,这样就避免了 P_order 表中的数据失去关联。

Page 69: 项目一  公司管理数据库 系统的规划

69

用户定义完整性 功能:这种数据完整性由用户根据实际应用

中的需要自行定义。 方法:规则 (Rule) 、触发器 (Trigger) 、存储过程 (Stored Procedure) 和数据表创建时可以使用的所有约束 (Constraint) 。

例:在 employee 表和 P_order 表中,如果某雇员负责的订单数超过 5 个,那么该雇员的“薪水”应大于 5000 。

Page 70: 项目一  公司管理数据库 系统的规划

70

主键和外键 数据表之间的关联实际上是通过键

(Key)来实现的。所谓的“键”是指数据表中的一个字段,键分主键 (Primary Key) 和外键(Foreign Key)两种,它们都在数据表联接的过程中起着重大的作用。

Page 71: 项目一  公司管理数据库 系统的规划

71

主键: 主键是数据表中具有惟一性的字段,设置为主键的字段的值不能重复。

作用:执行查询,以提高查询的速度。数据库管理系统并不会强制要求在每一个数据表中必须设置主键,但这里推荐大家这样做,因为主键在数据表联接和提高查询性能方面会起到很大的作用。

Page 72: 项目一  公司管理数据库 系统的规划

72

外键 一个数据表将使用该数据表中的外键

连接到其它的数据表,而这个外键字段在其它的数据表中将作为主键字段出现。

product

产品ID产品名类别ID单价库存量

category

类别ID类别名说明

Page 73: 项目一  公司管理数据库 系统的规划

73

约束 使用约束是实现数据完整性最主要的方法,使

用约束的主要目的是限制输入到表中的数值的范围。从应用范围来讲,约束可分为两种:字段级约束和数据表级约束。

字段级约束:字段级约束是数据表中字段定义的一部分,它只能应用于数据表中的一个字段。

数据表级约束:数据表级约束独立于数据表的字段定义之外,它可以应用于数据表中的多个字段。

Page 74: 项目一  公司管理数据库 系统的规划

74

( 1 ) 主键 ((PRIMARY KEY)约束 主键约束使用数据表中的一列数据或多

列数据来惟一地标识一行数据。也就是说,在数据表中不能存在主键相同的两行数据。而且,位于主键约束下的数据应使用确定的数据,不能输入 NULL来代替确定的数值。在管理数据表时,应确保每一个数据表都拥有自己惟一的主键,从而实现数据的实体完整性。

Page 75: 项目一  公司管理数据库 系统的规划

75

( 2) 外键 (FOREIGN KEY)约束 外键约束主要用来实现数据的区域完整

性和引用完整性。如果确定了数据表中某一个字段将作为该数据表与其他数据表关联时使用的外键,那么,该字段的取值范围将决定于关联数据表中该字段的取值。

Page 76: 项目一  公司管理数据库 系统的规划

76

( 3 ) 惟一 (UNIQUE)约束 惟一约束主要用来确保非主键字段中数据的惟一性。惟一约束同主键约束主要区别在于:

在同一个数据表中,惟一约束可以用来同时约束一个或多个非主键字段中数据的惟一性,而主键约束只允许约束一个字段数据的惟一性或多个字段组合在一起的惟一性。

在使用惟一约束的字段中允许出现 NULL值,而在使用主键约束时,字段中不允许出现 NULL值。

Page 77: 项目一  公司管理数据库 系统的规划

77

( 4 ) 核查 (CHECK)约束 核查约束通过检查输入数据表字段的数值来维护数据的完整性,以确保只有符合条件的数据才能够进入数据表。它通常是通过检查一个逻辑表达式的结果是否为真来判断数据是否符合条件的。

Page 78: 项目一  公司管理数据库 系统的规划

78

1 、建立主键约束,以惟一标识数据表的各条记录

用主键来标识记录,在本公司管理数据库中,雇员 ID是 employee 表的主键,客户ID是 customer 表的主键,产品 ID是product 表的主键,类别 ID是 category 表的主键,订单 ID是 P_order 表的主键。

Page 79: 项目一  公司管理数据库 系统的规划

79

2 、建立数据表之间的关联,并根据建立的关联,实现表之间的参照完整性

雇员

雇员ID

姓名 性别雇佣日期

出生年月 特长 薪水

订单

订单ID

产品ID

雇员ID

数量 客户ID

订货日期

负责

Page 80: 项目一  公司管理数据库 系统的规划

80

employee

雇员 ID姓名性别出生年月雇佣日期特长薪水

P_order

订单 ID产品 ID数量雇员 ID客户 ID订货日期

Product

产品 ID产品名类别 ID单价库存量

customer

客户 ID公司名称联系人姓名联系方式地址邮编

category

类别 ID类别名说明

Page 81: 项目一  公司管理数据库 系统的规划

81

employee

PK 雇员ID

姓名 性别 出生年月 雇佣日期 特长 薪水

P_order

PK 订单ID

产品ID 数量 雇员ID 客户ID 订货日期

product

PK 产品ID

产品名 类别ID 单价 库存量

customer

PK 客户ID

公司名称 联系人姓名 联系方式 地址 邮编

category

PK 类别ID

类别名 说明

Page 82: 项目一  公司管理数据库 系统的规划

82

3 、对表中一些字段建立检查约束 如性别字段值应为“男”或“女”,添

加约束“ check( 性别 in (‘男’ ,女’ ))” ,定货日期应在系统日期之前 , 添加约束“ check( 订货日期 <date())”

Page 83: 项目一  公司管理数据库 系统的规划

83

(四)公司管理数据库系统的物理设计 1 .选择存储结构:设计物理存储结构的目

的是确定如何在磁盘上存储关系、索引等数据库文件,使得空间利用率最大而数据操作的开销最小。由于物理存储结构的设计包含的方面非常广泛,而且不同的数据库管理系统对磁盘空间管理的策略差别很大,所以,在此不多介绍和考虑。

Page 84: 项目一  公司管理数据库 系统的规划

84

2 .选取存储方法:选择存取方法的目的是使事务能快速存取数据库中的数据。任何数据库管理系统都提供多种存取方法。其中最常用的是索引方法。

Page 85: 项目一  公司管理数据库 系统的规划

85

索引的选择是数据库物理设计的基本问题,以下设置索引的基本规则:

( 1 )凡满足下列条件之一的字段和表,不宜建立索引。 不出现或很少出现在查询条件中的字段; 字段值很少的字段; 字段值分布严重不均匀的字段; 经常更新的字段或表,因为更新时有关的索引需要做相应的修改。

过长的字段。因为在过长的字段上建立索引,索引所占的存储空间较大而索引级也随之增加,有诸多不便之处。如果实在需要在其上建立索引,必须采取索引属性压缩措施。

Page 86: 项目一  公司管理数据库 系统的规划

86

( 2 )凡符合下列条件之一的,可以考虑在有关字段上建立索引。

主键和外键上一般都建有索引,这有利于主键码惟一性检查和完整性约束检查;主键码和外键码通常都是联接条件中的公共属性,建立索引,可显著提高联接查询的效率。

对于以读为主和只读的表,只要需要,存储空间允许,可以多建立索引。

对于等值查询(即查询条件以等号做比较符),如果满足条件的记录是少量的,可以考虑在有关字段上建立索引。

对于范围查询(即查询条件以>、<等为比较符),可以考虑在有关字段上建立索引。

Page 87: 项目一  公司管理数据库 系统的规划

87

依据以上索引设计原则,考虑到本公司管理数据库的功能,决定在下面表结构中标有下划线的字段经常出现在查询条件中,需要在上面建立索引。

Employee (雇员 ID ,姓名,性别,出生年月,雇佣日期,特长,薪水)

P_order (订单 ID ,产品 ID ,数量,雇员 ID ,客户 ID ,订货日期)

Product (产品 ID ,产品名,类别 ID ,单价,库存量,供应商 ID )

Customer (客户 ID ,公司名称,联系人姓名,联系方式,地址,邮编)

Category (类别 ID ,类别名,说明)

Page 88: 项目一  公司管理数据库 系统的规划

88

根据学号分为 3 个人为 1小组,选择以下的题目完成数据库的规划:

1 、图书管理系统 2 、学生信息管理系统 3 、勤工助学管理系统 4 、网上花店管理系统