计算机辅助设计与制造

CAD/CAM技术
第三章
CAD/CAM技术
本章 学习目标
• 学会采用适当方式处理工程设计
中不同形式数据
• 了解数据管理几种方法的特点
• 掌握数据库的基础知识
重点:静态和动态数据的概念;
数据程序化处理技术;
数表公式化处理。
难点:工程数据库管理系统
SQL Server数据库及其应用
CAD/CAM技术
学习内容
1.数据处理技术
2.数据程序化处理技术
3.数据文件化处理技术
4.数据库处理技术
CAD/CAM技术
第一节 数据处理技术
• 数据
所谓数据是指能够被计算机识别、存储和加工处理的信息载
体,用以反映客观世界的事实,是可以区分其特征的符号,
如字符、数字、文本、声音、图形、图表、图像等。
• 数据结构
是指数据之间的关联和组织形式,用来反映数据的内部构成,
即一个数据由哪些成分数据构成,以什么方式构成,呈现什
么结构形式,其目的是为了提高算法的效率,它通常与一组
算法的集合相对应,通过这组算法集合可以对数据结构中的
数据进行某种操作。
CAD/CAM技术
机械CAD/CAM中的数据的分类
• (1)静态数据
• (2)动态数据:
特性基本保持不变
如各类国标中提供的零件标
准系列、材料参技术要求形
状公差、尺寸误差和表面粗
糙度,另外还有零件名称、
零件代号、零件重量、几何
中心等信息。
CAD/CAM技术
机械CAD/CAM中的数据的分类
• (1)静态数据
是由用户输入的数据在程序
运行过程中产生的,
可以由程序设计的其它模块调
• (2)动态数据:
用,或者是各子系统中的中
间结果数据,如CAD和
CAE以及CAM之间的数据传
递。这类数据随不同产品的变
化而变化,故称为动态数据
CAD/CAM技术
数据结构分为:物理结构和逻辑结构
物理结构
 数据在物理存储设备中的存放形式称为
亦称存储结构,是数据结构在计算机中的映象。
逻辑结构
 数据之间的逻辑关系称为
,是用户程序
操作数据的根据,一种数据的逻辑结构,可以用不同的
物理结构来实现 。
CAD/CAM技术
机械CAD/CAM中常用的三种数据处理方法:
• 数据程序化处理
• 数据文件化处理
• 数据库处理
CAD/CAM技术
第二节 数据程序化处理技术
数据程序化处理方法是将设计中需要使用的数表数据以某种
形式编制在应用程序中,数据直接面向应用。 CAD/CAM中需要
将各种表格数据和曲线图表编入程序预先存入计算机中,以便设
计时由程序自动检索和调用,提高设计的自动化程度
这就涉及各种计算机数据处理技术
设计数据或资料的计算机常用处理方法:
• 数表的程序化
• 数表的公式化
• 线图的程序化
CAD/CAM技术
机械CAD/CAM中涉及的数表可归纳为两类:
第一类数据表中的数据为一些不同对象的各种常数数表,彼此间无明显的
关联性,也不存在函数关系,只有对象和常数之间的一一对应关系。这类数
表比较简单,只有一组数据,如模具设计中常用到的材料性能表、标淮零件
的尺寸参数、拉深时的单位压力数据表,橡胶压缩量与单位压力关系数据表
(如下表所示)等。
橡胶压缩量与单位压力值关系
压缩量 / %
单位压力 / MP
a
10
15
20
25
30
35
0.26
0.50
0.74
1.06
1.52
2.10
第二类数表中的数据之间存在函数关系,用以表达工程中某些复杂问题参
数之间的关系,如三角函数表或离散型的实验数据,这类数据之间的关系可
用某个理论公式或经验公式表示。表中为一些离散的数据,但是这些数据是
一些离散点上对应的函数值,这种数据表格表达的函数称为列表函数。机械
CAD/CAM中绝大部分数据均为列表函数。
CAD/CAM技术
数表的程序化
将数表(含线图离散化而成数表)中的数据编入程序,存入一维、二维
或多维数组,再根据已知条件自动检索和调用所需数据
例1:将表中为标准螺孔底孔尺寸进行数组化处理
标准螺孔底孔尺寸
公称尺寸M M4
M5
M6
底孔尺寸d 3.3
4.2 5.0
M7
M8
M9
M10
M12
M14
6.0
6.7 7.7
8.5
10.2 11.9
M16
M18
M20
13.9
15.4 17.4
定义2个一维数组,将数表中的数值赋值于各自的数组,使之初始化
数表程序化的C语言初始化赋值语句:
float m[12]={ 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20 };
float d[12]={3.3 ,4.2 ,5.0 ,6.0,6.7,7.7,8.5,10.2,11.9,13.9 ,15.4,17.4 };
可用d[0]=3.3表示M4的底孔尺寸,d[1]=4.2表示M5螺孔的底孔尺寸…
若已知螺孔公称尺寸 m[i],就可相应的检索出螺孔底孔尺寸 d[i]
CAD/CAM技术
例2:二维数表
基本尺寸
≤18
凸模公差
0.020 0.020
0.020
0.025
0.030
0.030
0.035
0.040
0.050
凹模公差
0.020 0.025
0.030
0.035
0.040
0.045
0.050
0.060
0.070
>18~30
>30~80 >80~120 >120~180 >180~260 >260~360 >260~360 >500
在数表程序化时,二维数组存放凸模、凹模的制造公差,
先进行基本尺寸的判断,
然后找到对应的数组和凸模、凹模公差值。
CAD/CAM技术
二维数表程序化C程序代码:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
#include <stdio.h>
void main(){
int i,basicdim;
//定义基本尺寸变量
float punchtol, dietol; //定义凸模公差和凹模公差变量
float alltole[9][2];
//有9×2个元素的二维数组,元素类型均为实
型
int d[9];
//有9个元素的一维数组,元素类型均为实型
alltole [0][0]= 0.020; alltole [0][1]= 0.020;
//赋值alltole[9][2]
alltole [1][0]= 0.020; alltole [1][1]= 0.025;
… …
alltole [8][0]= 0.050; alltole [8][1]= 0.070;
d[0]=18; d[1]=30; d[2]=80; d[3]=120; d[4]=180;//赋值D[9]
d[5]=260; d[6]=360; d[7]=360; d[8]=500;
printf("Now Input the basicdim value:"); //输入basicdim
scanf("%d",&basicdim);
for (i=0;i<9;i++)
CAD/CAM技术
•
•
•
•
•
•
•
•
•
•
•
•
•
•
while (basicdim > d[i] && basicdim <= d[i+1])
{
punchtol= alltole [i+1][0]; dietol=alltole [i+1][1];
}
if (basicdim <= d[0])
{
punchtol= alltole [0][0]; dietol=alltole [0][1];
}
else if (basicdim > d[8])
{
punchtol= alltole [8][0]; dietol=alltole [8][1];
}
printf("punchtol=%f,dietol=%f\n",punchtol,dietol); //
输出
}
CAD/CAM技术
数表公式化处理
• 必要性:
1.数表程序化存在占用计算机资源和存储空间多、计算机
检索时间长、独立性差、数据可修改性差的缺点
2.机械CAD/CAM过程中涉及的数表数据具有离散性的特
点,在相邻两数值点之间的函数值只能选取相近的数据,
会带来计算误差,
CAD/CAM技术
数表公式化处理
适用对象:数据间存在联系或函数关系的第二类列表函数
数表公式化处理主要方法:
 函数插值方法
 函数拟合方法
CAD/CAM技术
函数插值
• 适用情况:
• 列表函数中存在某种关系,反映了某种连续的规律性,表现形式
是在一系列点处存在值,但是其函数解析式未知,需要构造一个
简单函数作为列表函数的近似表达式.
• 列表函数有解析式,但计算复杂,不便于使用,需要用一个比较
简单且易于计算的函数去近似代替它 .
CAD/CAM技术
代数插值
• 用代数多项式来作为近似函数的方法叫做代数插值,所要
构造的插值多项式.
Pn ( x)  a0  a1 x  a2 x    an x
2
根据所选取的节点的个数,
可分为拉格朗日、抛物线插值和线性插值。
n
CAD/CAM技术
拉格朗日插值
n
Pn ( x)   yk lk ( x)  y0l0 ( x)  y1l1 ( x) 
k 0
基函数:
 y n ln ( x )
n
x  xj
( x  x0 )( x  x1 ) ( x  xk 1 )( x  xk 1 ) ( x  xn )
lk ( x) 

( xk  x0 )( xk  x1 ) ( xk  xk 1 )( xk  xk 1 ) ( xk  xn ) j 0 xk  x j
j k
k  0, 1, 2,
1,
l k ( xi )  
0,
,n
k i
k i
CAD/CAM技术
拉格朗日多项式
 n
x  xj

Pn ( x)   l k ( x) y k    
k 0
k 0  j 0 x k  x j
 j k
n
n


y k


CAD/CAM技术
拉格朗日插值的C程序代码
• # include <stdio.h>
• # define MAX_N 20
//定义(x_i,y_i)的最大维数
• typedef struct tagPOINT //点的结构
• { double x;
•
double y;
• } POINT;
• int main()
• {
•
int n;
•
int i,y;
•
POINT points[MAX_N+1];double l[MAX_N+1];
• double x, tmp, lagrange=0;
• printf(“\ nInput n value:”); //输入被插值点的数目
• scanf(“%d”,&n);
• if (n>MAX_N)
• { printf(“The Input n is larger than MAX_N, please redefine th
e MAX_N.\n”);
CAD/CAM技术
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
return 1;
}
if (n<= 0)
{ printf(“Please Input a number between l and %d. \n”, MAX_N);
return 1;
}
//输入被插值点(x_i,y_i)
printf(“Now Input the (x_i,y_i), i=0,…, %d: \n”, n);
for (i=0; i<=n;i++)
scanf(“%lf%lf”,&points[i].x, &points[i].y);
printf(“Now Input the x value:”);
//输入计算拉格朗日插值多项式的x值
scanf(“%lf”,&x);
for (i=0; i<=n;i++)
{for (j=0; tmp=1; j<=n; j++)
{if (j= =i) continue;
tmp=tmp*(x-points[j].x)/ (points[i].x- points[j].x); //tmp是拉格朗日基函数
}
lagrange=lagrange+tmp*points_i.y;
}
printf(“lagrange(%f)=%f\n”,x, lagrange); //输出
return 0;
}
CAD/CAM技术
抛物线插值
当n=2时,拉格朗日插值即为抛物
线插值,也叫二次插值,即用二次
曲线去逼近复杂曲线
P2 ( x)  l0 ( x) y0  l1 ( x) y1  l2 ( x) y2
l0 ( x ) 
P2 ( x) 
( x  x1 )( x  x2 )
( x0  x1 )( x0  x2 )
l1 ( x ) 
( x  x0 )( x  x2 )
( x1  x0 )( x1  x2 )
l2 ( x ) 
( x  x0 )( x  x1 )
( x2  x0 )( x2  x1 )
( x  x0 )( x  x2 )
( x  x0 )( x  x1 )
( x  x1 )( x  x2 )
y0 
y1 
y2
( x0  x1 )( x0  x2 )
( x1  x0 )( x1  x2 )
( x2  x0 )( x2  x1 )
CAD/CAM技术
线性插值
当n=1时,拉格朗日插值即为线
性插值,也叫两点插值
P1 ( x)  l0 ( x) y0  l1 ( x) y1
x  x1
l0 ( x ) 
x0  x1
x  x0
l1 ( x ) 
x1  x0
CAD/CAM技术
函数拟合
• 函数拟合(曲线拟合):是采用连续曲线近似刻画或比拟
平面上离散点组所表示的坐标之间的函数关系的一种数
据处理方法,即用解析表达式y=f(x,c)逼近离散数据,
从而反映量x与y之间的依赖关系。
• 在机械CAD/CAM过程中,对于情况较复杂的实际问题
可直接使用数据表建模,寻找简单的变量之间的函数关
系,应用曲线拟合方法反映数据的变化趋势,而不是如
插值法中要求所求函数都通过节点。
函数拟合有多种方法,最常用的为最小二乘法
CAD/CAM技术
最小二乘法原理(线性拟合)
若列表函数所有节点基本上呈现线性变化规律,用直线方程
f(x) = a + b x 描述
选取系数 a, b,使偏差平方和φ最小,就是最小二乘法的实
质
最小二乘法处理的任务就是求直线方程中的待定系数a和b
最小二乘法步骤
① 在坐标纸上标出列表函数各节点数据,并根据其趋势绘出
大致的曲线
② 根据曲线确定近似的拟合函数类型,拟合函数可为代数多
项式、对数函数、指数函数…
③ 用最小二乘法原理确定函数中的待定系数
CAD/CAM技术
图示各结点到所拟合直线偏差的平方和为:
n
n
n
   e   ( f ( xi )  yi )   (a  bxi  yi ) 2
i 1
2
i
2
i 1
i 1
根据函数求极值性质,函数对自变量的偏导为零
则令:
 a  0
 b  0
求偏导数,得:
 2(a  bx  y )  0
i
i
2.x .(a  bx  y )  0
i
i
i
求得:a  y  b x
x (y

b
 x (x
i
i
 y)
i
i
 x)
CAD/CAM技术
例:以表中的5次实验数据为例,拟合线性方程
i
xi
yi
xi2
xiyi
1
1
0
1
0
2
2
2
4
4
3
3
2
9
6
4
4
5
16
20
5
5
4
25
20
Σ
15
13
55
50
将表中数据代入前式得方程组:
5a  15b  13

15a  55b  50
求解得: a=-0.7 b=1.1
则:
f(x)=1.1x-0.7
CAD/CAM技术
最小二乘法的一般描述
• 设自变量为X,因变量为Y,对于给定的组节点
数据,可构造一个n(n<m)次的多项式:
n
y  Sn ( x)   ak Pk ( x)
k 0
使节点处的偏差平方和最小
2
 n
m  n
2
T    Sn (xi  yi )T 
 yi   ak Pk (xi )
i ayk iP)k(xi) 
Sn (x


i 0
i i 00 
i 0 
k  0
k  0
m
2
mm
CAD/CAM技术
T  T (a0 , a1 ,
a0 , a1 ,
, an 必须满足
T
0
 s
, an )
( s  0,1,
, n)
m  n

T
 2    a P ( x )  f ( x ) P ( x )
k k i
i  s i
a

i  0 k  0

s
n
m
m
 2  a  P ( x )P ( x )  2  f ( x )P ( x )  0
k
k i s i
i s i
k 0 i0
i0
CAD/CAM技术
 ( P0 , P0 ) ( P0 , P1 )
 (P , P ) (P , P )
1 1
 1 0


( Pn , P0 ) ( Pn , P1 )
多项式
Sn ( x)
的待定系数
( P0 , Pn ) 
( P1 , Pn ) 


( Pn , Pn ) 
ak
 0  ( f , P0 ) 
   ( f , P ) 
1 
 1  
  

  


(
f
,
P
)
 n  
n 

可由下式求得
m
( f , Pk )
ak 

( Pk , Pk )
 f (x )P (x )
i 0
m
i
k
2
[
P
(
x
)]
 k i
i 0
i
k  0,1,
,n
CAD/CAM技术
最小二乘法实例
• 第一步,标出列表函数各节点数据
• 第二步,确定的函数类型
• 第三步,通过最小二乘法得方程组
CAD/CAM技术
线图程序化
• 常用的方法:
• 线图本身有公式表达,将公式编写到程序中;
• 将线图离散为数表,然后按列表函数进行程序化处理;
• 选取线图点,按照一定的拟合方法,如最小平方差法、样条
函数法等,形成确定的函数,在程序中间进行调用;
• 分段处理复杂线图
一般处理的方法有两种:一般线图的处理、复杂线
图的处理
CAD/CAM技术
一般线图的处理
• 曲线进行分割离散化
• 在编程时可以利用“if…else…”语句或者“case”语句选择对应
的数列进行计算和运行。
• n条曲线的线图就可变换为一张二维数表,因此可以利用数
表程序化的方法进行处理,如插值法、采用数组存贮方式
进行计算机处理等方法
CAD/CAM技术
复杂线图的处理
• 拟合边界直线或者曲线,
• 然后通过条件语句判断,
• 最后得到检索结果。
CAD/CAM技术
以弹簧负荷F与行程S为输入变量,SpringNo为输出变量,弹簧选型的程序如
下:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
#include<stdio.h>
void main(){
float f,s;
int springno;
float tmp;
printf(“Input f,s value:”);
//输入f,s的值
scanf(“%f,%f”,&f,&s);
tmp=90+(0-90)*(s-0)/(0-12);
if (f<=90 && f>=tmp)
springno=20;
//序号20的弹簧
else {
tmp=90+(8-90)*(s-1.5)/(1.5-16);
if (f<=90) and (f>=tmp)
springno=21;
//序号21的弹簧
else
{
……
}
}
}
弹簧负荷(F)与行程(S)曲线
CAD/CAM技术
第三节 数据文件化处理技术
数据量很大,
用数组不便于
处理,可将数
表中(含线图
离散化而成数
表)的数据,
存入数据文件
或数据库中,
数据独立于应
用程序
使用时通过
检索程序查询
和调用所需数
据
CAD/CAM技术
数表化的方法在CAD系统中用得不是很多,只适用于数据少
且别的程序不需调用的情况。如果数表很大或数表个数很多,如还
采用该方法进行程序化,这时程序将显得非常的庞大、不易实现,
这就需要将数表进行文件化或数据库进行处理。数表文件与程序的
关系如图3-1所示。
数表文件化是建立文件,将数据或表格存在辅助文件中(每
个文件皆有名字作为标识符),由文件系统管理。文件系统包含在
操作系统中,可以对文件进行查询、修改、插入、删除等操作。当
应用程序用到有关数据时,可通过读语句和相应的控制语句,通过
读文件,将所需的数据读入。这里提到的文件其实就是一个通过文
件的名字来存取数据的信息集合,并作为各模块之间交换信息的手
段。采用文件系统进行数据管理,使应用程序与数据之间有一定的
独立性。
1.数据文件化处理方法
2.机械CAD/CAM系统模块间的数据传递
CAD/CAM技术
应用程序APP1
应用程序APP2
应用程序APP3
文件1
应用程序APPn
文件2
文件3
…
…
存
取
方
法
文件n
图3-1 数表文件与程序的关系
CAD/CAM技术
数据文件化处理方法
数据文件化处理时可以根据文件内容的逻辑关系将其划分为若干
逻辑记录,所谓记录就是逻辑上相关的一组信息,然后建立文件。
每一个文件都有文件名字,文件名由若干字符组成,文件名可以带
有后缀,即扩展名,如常用的*.dat、*.txt、*.doc等,也可以自己定
义后缀名称,原则是以容易记忆为主。各操作管理系统,无论是DO
S、WINDOWSXP、UNIX等,均给用户提供多种基本的文件操作命
令,如建立目录、列出目录、文件属性查询、建立文件、打开文件、
关闭文件、删除文件、复制文件、重命名文件、读文件、写文件等
操作命令。建立数表文件的方法随不同的操作系统而异,可直接用
编辑文本文件的方法输入,如记事本、写字板等文字处理软件。另
外,建立数表文件也可用高级语言如C、Pascal、Fortran和Basic中
的文件管理功能建立,在应用时按一定的格式读取。
为了说明问题,我们以凸缘圆筒件(10钢)第一次拉深时的最小
拉深因数的表格为例。
CAD/CAM技术
例:10钢第一次拉深时的最小拉深因数数据文件
有凸缘圆筒件(10钢)第一次拉深时的最小拉深因数
凸缘相
对
直径
d凸/d1
毛坯相对厚度t/D×100
2-1.5
<1.5-1.0
<1.0-0.6
<0.6-0.3
<0.3-0.1
1.1以下
0.51
0.53
0.55
0 57
0.54
1.3
0.49
0.51
0.53
0.54
0.55
1.5
0.47
0.49
0 50
0.51
0.52
1.8
0.45
0.46
0.47
0.48
0.48
2.0
0.42
0.43
0.44
0.45
0.45
2. 2
0.40
0.41
0.42
0.42
0.42
2.5
0.37
0.38
0.38
0.38
0.38
2.8
0.34
0.35
0.35
0.35
0.35
3.0
0.32
0.33
0.33
0.33
0.33
首先将表中的数据按照记录存为文件格式,一行一个记录,建立数据文件。有凸缘圆
筒件(10钢)第一次拉深时的最小拉深因数m的检索是根据凸缘相对直径(d凸/d1)和
毛坯相对厚度(t/D)进行的,而此表中的毛坯相对厚度给出一个上限和一个下限范围,
可将该t/D的上限和下限数据连同d凸/d1和m一起存储在数据文件中。设数据文件名称
为min_dm.dat,这样数据文件中一个记录将包含有毛坯相对厚度上限值t1和毛坯相对
厚度下限值t2,最小拉深因数m、凸缘相对直径d共4个数据项。
CAD/CAM技术
机械CAD/CAM系统模块间的数据传递
机械CAD/CAM系统一般都很庞大,由数百甚至更多个子程
序组成,在系统设计时通常采用模块化结构,即将系统分解
为具有不同功能、结构上相对独立的若干部分。例如冷冲模
CAD系统总体设计结构如图3-2所示。
冷冲模CAD系统
专家咨询
工艺分析、设计
冲裁、拉伸
等工艺
工程数据库管理
工艺、模具数据库管
理
DMIS
图3-2 冷冲模CAD系统结构
模具设计
CAD/CAM技术
冷冲模CAD系统中的子系统(或者称子模块)DMIS(模具管理信息系
统)的系统结构包括如图3-3所示的几个主要功能程序模块:模具标准件
选择模块;图形输出模块;材料正向和逆向选择模块;设备选择;模具综
合信息库模块;库维护;其他辅助模块(联机帮助、外围工具、文档管理、
报表输出)。
工程数据库
设备数据库
材料数据库
设备选择
材料正向和
逆向选择
其它系统
信息库
综合信息库
标准件库
标准件选择
模具综合信息库
DMIS运行机制(主控菜单形式)
库维护
文档管理
外围工具
报表管理
图3-3 DMIS系统主要结构
图形输出
联机帮助
CAD/CAM技术
第四节
数据库处理技术
数据库技术在CAD/CAM作业中得到广泛的应用
数据库技术可有效管理产品设计和制造的数据信息,
实现数据的共享,保持程序与数据的独立性,保证数
据的完整性和安全性。但是仍存在以下缺点:鲁棒性
和可维护性差、数据冗余度大、浪费计算机资源、数
据控制手段差、数据不能共享,难以适应多用户环境。
• 数据库和数据库管理
• 数据库技术的发展
• 工程数据库
• SQL Server数据库及其应用
CAD/CAM技术
数据库和数据库管理
• 数据库以文件方式存储数据,是数据的一种高级组
织形式。在应用程序和数据库之间,由数据库管理
软件DBMS 把所有应用程序中使用的相关数据汇集
起来,按统一的数据模型,以记录为单位存储在数
据库中,为各个应用程序提供方便、快捷的查询、
使用
• 数据库管理系统DBMS(Data Base Management S
ystem)是一种为了使DBM程序具备通用性,开发
了以DBM程序为中心的程序体系。
CAD/CAM技术
数据库是大量数据文件的集合,但并非这些文件的简单相加,而
是以某种关系组合,以数据的共享和集中为目的,是与应用软件
相独立的数据集合,各种应用软件可以共享这些数据。它具有以
下特点:
(1)具有较高的数据独立性
(2)数据的冗余度小
(3)统一的数据管理和控制
数据库技术是在人工管理,文件管理技术上发展起来的
数据管理技术 。
应用程序1
应用程序2
数据库管理
系统
应用程序n
数据库
CAD/CAM技术
数据的人工管理
数据的人工管理是计算机发展中最早采用的、也是最直接的数
据管理方式。程序中用到的数据,包括数据的存储、操作都必须
由程序员自己编程管理
应用程序1
数据组1
应用程序2
数据组2
…
…
应用程序n
数据组n
数据与应用程序呈对应、依赖关系,应用程序中的数据无法被
其他程序利用,程序与程序之间存在着大量重复数据,称为数据
冗余;
由于数据是对应某一应用程序的,数据的独立性很差。如果数据的类
型、结构、存取方式或输入输出方式发生变化,处理它的程序必须相应
改变,数据结构性差,而且数据不能长期保存
CAD/CAM技术
数据的文件管理
数据的文件管理指数据可用统一格式,在计算机存储器
中以文件形式长期保存的方式
应用程序1
数据组1
应用程序2
数据组2
操作系统
应用程序n
数据组n
文件管理阶段,文件系统为程序与数据之间提供了一个公共接口,应
用程序采用统一的存取方法存取、操作数据,程序与数据之间不再是直
接的对应关系,因而程序和数据有了一定的独立性。
文件系统只简单地存放数据,数据的存取在很大程序上仍依赖于应用
程序,不同程序难于共享同一数据文件,数据独立性较差。
文件系统没有相应的模型约束数据的存储,仍有较高的数据冗余,极
易造成数据的不一致性。
CAD/CAM技术
数据库管理特点
特 点
数据独立性
说 明
逻辑独立性 为物理独立性
数据共享性好, 数据库从整体观点处理数据,面向系统,因而弹性大,使
冗余度低
用灵活,实现了数据共享
数据具有独立
数据可独立于程序存在,应用程序也不必随数据结构的变
性
化而修改
数据库系统提供数据的控制功能,保护数据,防止不合理
数据具有安全
使用;
性和完整性
保证数据的确定性、有效性和相容性,即数据的完整性
数据库对所有数据实行统一、集中、独立的管理,实现数据的共
享,保证数据的完整性和安全性,提高了数据管理效率
CAD/CAM技术
数据库管理系统
数据库系统构成
数据库系统由相应的硬
件、软件和数据及专职管
理人员构成
DBMS( Data Base Management
System)是数据库软件系统的核心
数据库管理系统的功能
数据库管理系统的组成
数据库管理系统的抽象层次
CAD/CAM技术
数据库管理系统的功能
功 能
说 明
数据库定义功能
实现全局逻辑结构、局部逻辑结构和物理结构定义,
权限定义等。
数据库管理功能
提供对数据进行各种应用操作,例如:检索、排序、
统计、输入、输出的功能。
数据库的建立和
维护功能
即建立、更新、再组织数据库等结构维护功能。
通信功能
具备与操作系统的联机处理功能分时系统及远程作业
输入的相应接口。
其他功能
如应用程序的开发、文件管理、存储变量、设备控制
等。
CAD/CAM技术
数据库管理系统的组成
组成部分
功 能
数据描述语言(Data Description L
anguage ,DDL)及其翻译程序
用于描述数据之间的联系,实
现数据库之间的定义功能
数据操纵语言(Data Manipulation
Language ,DML)及其编译程序
用于存储、检索、编译数据库
数据的工具
数据库管理例行程序(Data Base Ma
nagement Routines ,DMR)
一般包括系统运行控制程序,
语言编译程序和DBMS的公用程序
CAD/CAM技术
数据库管理系统的抽象层次
数据库系统中,用户看到的数据与计算机中存放的数据
并不是一一映像的关系,而是存在三个层次:
层次
说明
外模型
一种局部的逻辑数据视图,用户使用的数据
据视图, 表示用户所理解的实体、实体属性
和实体间的联系。
外模型有多个,处于系统的外部。
数据库系统的全局逻辑视图。代表整个系统
概念模型 统的抽象实体、实体属性和实体间的联系。
概念模型只有一个,属于系统的概念层。
内模型
物理数据存储的模型。
只有一个,处于系统的内层,也是最低层。
CAD/CAM技术
数据模式
用DBMS中的DDL精确地定义上述模型称为模式
对应于不同层次的模型,也有三个相应的模式:
1)外模式(子模式)
用模式DDL定义外模型
的模式
子模式中包含了相应用
户的数据记录类的描述以
及与概念模型中相应记录
的映像的定义
概念模式的子集
2)概念模式(模式)
用模式DDL定义概念模
型的模式
3)内模式(物理模式)
用设备介质语言定义内
模型的模式
应用程序 1
用户级
应用程序 2
应用程序 3
外模式 1
应用程序 4
外模式 1
用户视图
外模式-概念模式映射
概念级
概念模式
全局视图
DBMS
概念模式-内模式映射
物理级
内模式
存储视图
OS
数据库
CAD/CAM技术
数据库的层次
• 以子模式为框架的数据库是用户数据库
• 以模式为框架的数据库是概念数据库
• 以物理模式为框架的数据库是物理数据库
不同层次数据库之间的关系:
CAD/CAM技术
数据库技术的发展
数据库系统的一个核心问题就是研究如何表示和处理实
体间的联系
表示实体及实体间联系的模型被称为数据模型
现行数据库系统中,常用的数据模型有三种:
层次模型
网状模型
关系模型
面向对象数据库
CAD/CAM技术
层次模型(Hierarchical Model)
用树性结构表示实体之间连系的模型称为层次模型,它
能描述一对多的关系
层次模型两个条件:
 只有一个根结点
 根以外的其他节点有且
只有一个父节点
按照层次模型建立的数据库系统称为层次模型数据库系统
CAD/CAM技术
网状模型(Network Model)
网状模型满足两个条件:
• 可以有两个以上结点无父点
• 至少有一个结点有多于一个父结点
层次模型是
网状模型的
特殊形式,
网状模型能
描述多对多
的关系
按照网状模型建立的数据库系统称为网状模型数据库系统
CAD/CAM技术
关系模型(Relational Model)
用二维表结构表示实体之间联系的一种模型,能描述多
对多的关系
作为一个“关系”的二维表,必须满足如下条件:





表中每一列必须是基本数据项,而不是组合项
表中每一列必须具有相同的数据类型
表中的每一列必须有一个唯一的属性名
表中不应有内容相同的行
行与列的顺序均不影响表中所表示的信息含义
关系模型的数据结构简单,数据独立性高,理论基础坚
实,操作算法成熟、完善
关系模型的理论基础是关系代数、集合论
基于关系模型建立的数据库系统称为关系数据库系统
CAD/CAM技术
关系模型示例
表a:产品数据表
产品
代号
产品
名称
数量
价格
AA
减速器
200
2000
BB
阀门
260
1200
CC
车床
20
56000
DD
铣床
10
64000
表b:零件数据表
产品
代号
零件
名称
零件
号
数量
AA
齿轮A
AA-2
250
AA
传动轴
AA-3
120
CC
主轴
CC-3
100
CC
丝杠
CC-4
100
CC
三爪卡盘
CC-7
120
BB
连接盘
BB-3
220
AA
齿轮B
AA-6
130
1:
M
表a为产品数据的集合,表b是零件数据的集合
两个表之间通过关键字段“产品代号”形成一对多的关系,表a为
父表,表b为子表,它们共同描述了产品的基本的构成信息
CAD/CAM技术
面向对象数据库
存储子系
统
对象子系
统
模式
管理
事务
管理
查询
处理
版本
管理
长 数
据 管
理
外围
工具
图3-4 面向对象数据库管理系统的
结构
缓冲
区管
理
存储
管
理
CAD/CAM技术
工程数据库
工业领域数据库支持整个生产过程,数据类型非常复杂
类 型
管理型
数据
说 明
包括产品设计与制造中所用到的数据资料。如:国家标准与规范、产品目录及
文档管理等。
数据特点:数据之间关系分明,数据相对稳定,存储的数据结构基本不变,并
且数据在语义上具有一致性,与管理型数据库中数据基本相同。
设计型
数据
在工业设计与制造中产生的数据。如:设计的产品结构数据、工艺路线等。
数据特点:① 数据呈动态,在设计过程中产生,因此存储的数据结构随数据
类型的改变而改变;② 根据设计-评价-再设计的典型工业设计流程,设计型
数据频繁修改;③ 由于实际设计的复杂性,设计者对设计对象数据进行不断的
调整与修改,因此设计型数据在某些情况下允许语言上的不一致性。
图形数据
产品开发过程中可能产生各种工程图表、二维工程图形、三维图形等数据。如:
零件图中某些图表或图形之间的相互联系也需要数据库进行存储与管理。
这类数据也是呈动态的,往往在设计过程中急剧增加。如:对一个运动机构动
态模拟后,工程数据库要对各种运动数据的进行存储与组织。
加工制造
型数据
为加工制造服务的数据,包括加工工艺数据、数控加工指令、检测监控数据等,
要求实时性较高
软件包
指一些能够独立处理局部设计的工程计算或图形处理软件。
如:有限元分析、结构优化等。这类数据具有独立功能,在必要时可以被激活
CAD/CAM技术
工程数据库
MRPII
CAD绘图设计
学计算
CAPP
生产计划
CAE工程/科
EDB/文件系统
生产自动化
CAM
MRPII
图3-5 EDB在各辅助设计系统中的位置
CAD/CAM技术
工程数据库管理系统功能特点
•
•
•
•
能描述复杂的数据模型,保存相关语义信息
支持模式的动态定义和修改,不需重新编译和数据重载
支持工程长事务的处理
能存储和管理各种类型数据,并支持图形标准件的相互转化,
具有多库协调管理能力
• 具有版本管理功能
• 支持程序控制和交互操作两种工作方式
• 具有分布式数据库处理能力,支持多用户工作环境
工程数据库技术尚不成熟,目前市场上的EDBMS系统(如挪威
工业中心研究所开发的TORNADO系统等只是某些方面功能较强,具有
一定的局限性。
当前工程数据处理仍以关系型数据库为主(如:Foxpro、 SQL、
Oracle 系统),在其基础上进行扩展和再开发,实现工程数据库的
部分功能 。
CAD/CAM技术
SQL Server数据库及其应用
在机械CAD/CAM过程中,往往将大量的工程手册中的各类
数表以及过程中的各种动态数据进行整理,利用数据库管理系
统(DBMS)的强大功能,在计算机内建立各类数据库,以便
对工程数表进行直接访问和调用。有很多数据库软件可以实现
这样的功能,其中Microsoft公司开发的SQL Server具有功能强
大,管理方便、易于维护、安全性高等特点,使得它在电子商
务、数据仓库、数据库解决方案中起着重要的核心作用。SQL
Server是一个关系数据库管理系统,以Transact_SQL作为它的
数据库查询和编程语言。
 数据库的设计原则
数据库的建立
CAD/CAM技术
数据库的设计原则
数据库设计有一定的规范化要求,例如,安全性、实体完整性、参照完
整性和用户业务完整性等。这些规则定义了当用户在更新数据时,数
据库管理程序如何防止出现操作异常。但是在实际上几乎不可能完全
遵守这些规则,正规化设计的原则被有意违反以提高性能,例如采用
冗余技术的情况。如果不考虑实在的数据依赖性,一定会造成数据不
完整。完整性涉及的主要是指系统意义下的事务,它是若干动作构成
的一个完整序列,而每一动作则可能是系统运行期间DBMS提供的一
组操作,这样在提交事务时必需做完事务整个序列中的所有动作。以
这种面向系统的角度考虑系统或数据库结构,就比较容易保护数据的
完整性。
设计数据库的关键任务是:
1.创建表的结构和表之间的关系;
2.实现安全性;
3.维护数据的一致性。
CAD/CAM技术
数据库的建立
创建数据库的过程包括:定义数据库的应用范围;
确定支持数据库所需的字段;将字段划分为规范化
的表格;建立表格之间的关系。其步骤如下:
1)数据库的应用范围
2)确定字段,划分表格
3)建立表格之间的关系
按照以上步骤就建立起用以描述数据关系的信息
模型,这样工程数据库表结构可以按照信息模型构
造,不容易出错。然后再实现数据库的安全性、数
据的一致性等主要功能。
CAD/CAM技术
 第一范式(1NF):设R是一个关系模式,R属于第一范式当且
仅当R中每一个属性A的值域只包含原子项,即不可分割的数据
项。这里主要用于消除重复字段和非原子的值。
 第二范式(2NF):设R是一个关系模式,R属于第二范式当且
仅当R∈1NF,且每个非码属性都完全函数依赖主码。即要求每
一字段都依赖于主关键字段的每一部分。
 第三范式(3NF):设R是一个关系模式,R属于第三范式当且
仅当R是2NF的,且每个非码属性都非传递函数依赖于主码 。
CAD/CAM技术
1:n
1:n
1:n
Mtbresemble
Mtblupp
Mtbld0
MtblMain
Mtblbott
1:n
1:1
图3-6 表关联关系图