未分类题

阅读下列说明,回答问题1至问题4。
[说明]
甲公司的经营销售业务目前是手工处理的,随着业务量的增长,准备采用关系数据库对销售信息进行管理。经销业务的手工处理主要涉及三种表:订单表、客户表和产品表(见表 2,表3和表4)。

为了用计算机管理销售信息,甲公司提出应达到以下要求:产品的单价发生变化时,应及时修改产品表中的单价数据。客户购货计价采用订货时的单价?订货后,即使单价发生变化,计算用的单价也不变。
在设计数据库时,经销部的王先生建立了如图4所示的数据模型。其中,方框表示实体,单向箭头表示1对多的联系,双向箭头表示多对多的联系。

由于上述模型对建立关系数据库是不合适的,因此王先生又修改了数据模型,并设计了如下几个关系(带下划线的数据项是关键项,最后一个关系中没有指出关键项):
Customer (CustomerNo, CustomerName, Address, Phone)
Product (productNo, ProductName, UnitPdce)
Order (Orderno, CustomerNo, Date)
OrderDetail (OrderNo, ProductNo, Quantity)
请按[说明]中的要求画出修改后的数据模型。

A.shangxueba.cn/images/ct_crmsdxm_crmsdxzutiz41_00176(20093).jpg'
B.shangxueba.cn/images/ct_crmsdxm_crmsdxzutiz42_00176(20093).jpg'

【参考答案】

如图1所示。
如图1所示。 解析:订单的情况不能作为订单的属性处理而应该上升为实体,同时由于Order与Prod......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

未分类题
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后把结果xx输出到文件OUT6.DAT中。例如:原文:You He MeI am a student.结果:Me He Youstudent a am I原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【函数】include<string.h>include<conio.h>include<ctype.h>include<stdio.h>char xx[50] [80];int maxline=0; *文章的总行数* int ReaaDat(void);void WriteDat(void);void StrOL(void){char * p1, * p2,t[80];int i;for(i=0;i<maxline;i++){ p1=xx[i];t[0]=0;while(*p1)p1++;while(p1>=xx[i]){ while(!isalpha(*p1) &&p1!=xx[i])p1--;p2=p1;while((1))p1--;if(p1==xx[i])if(isalpha(*p1))p1--;else if(!isalpha(*(p1+1)))break;p2++;(2);strcat(t, p1+1);strcat(t,' ');}strcpy(xx[i],t);}}void main( ){if((3)) {printf('数据文件in.dat不能打开! n 007' );return;}StroL();writeDat();getch();} int ReadDat(void){FILE * fp;int i =0;char * p;if((fp=fopen('e: a in.dat',' r' ))==NULL)return 1;while(fgets(xx[i],80,fp)!=NULL) {p=strchr(xx[i],' n')if(p)*p=0;i++;}maxline=(4)fclose(fp);return 0;}void WriteDat(void){FILE * fp;int i;fp=fopen('e: a out6,dat','w');for(i=0;i<(5);i++){printf('%s n',xx[i]);fprintf(fp,'%s n',xx[i])}fclose(fp)}