数据库系统开发实验二.docx

上传人:b****7 文档编号:9975063 上传时间:2023-02-07 格式:DOCX 页数:17 大小:187.33KB
下载 相关 举报
数据库系统开发实验二.docx_第1页
第1页 / 共17页
数据库系统开发实验二.docx_第2页
第2页 / 共17页
数据库系统开发实验二.docx_第3页
第3页 / 共17页
数据库系统开发实验二.docx_第4页
第4页 / 共17页
数据库系统开发实验二.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库系统开发实验二.docx

《数据库系统开发实验二.docx》由会员分享,可在线阅读,更多相关《数据库系统开发实验二.docx(17页珍藏版)》请在冰豆网上搜索。

数据库系统开发实验二.docx

数据库系统开发实验二

实验报告

 

姓名:

学号:

班级:

实验:

售后服务管理系统数据建模

时间:

2017年9月25日

 

 

一、实验目的

(通过实验要达到什么样的效果,学到什么东西)

二、实验条件

(实验使用软件)

三、实验内容

(实验需要做的具体详细的实验项目)

四、实验要求

(实验中,我们要注意的实验事项和写实验报告的详细要求)

五、实验步骤

(实验步骤包括具体的每个实验的实验方法、实验结果和实验结果分析,按照每步遇到的问题,进行分析解决)

六、问题解答

(回答实验售后服务的相关问题)

七、实验感悟

(总结实验中遇到的问题,以后该怎么解决)

八、附录

(由ER图转化而来的SQL语句)

 

一、实验目的

学会使用ERwinDataModeler数据建模工具,创建企业合同管理的数据模型,将其中的物理模型生成到SQLServer数据库管理系统,进而学会数据库的基本设计方法,为进一步更深的学习打下基础。

二、实验条件

CAERwinDataModeler和MicrosoftSQLServerManagementStudio

三、实验内容

仔细阅读合同管理应用需求的说明(参见第9章),在此基础上使用ERwinDataModeler数据建模工具创建企业合同管理的数据模型,并将其中的物理模型生成到SQLServer数据库管理系统,根据完成的内容和过程编写一份数据建模的报告,数据建模的重点放在销售服务部分。

需要在报告中将ERwin(也可使用其它数据建模工具)创建的数据模型的ERD放到报告中(可以截图),结合所设计的ERD回答下面问题:

(1)如何实现售后服务中的产品服务期限的?

(2)如何记录售后服务的产品信息?

(3)如何记录技术服务工程师(包括服务专员)的信息?

(4)一个完整的服务信息(如维修一个磁盘可能包括第一次打电话咨询、维修等由多个小服务组成一个大服务)是如何记录的?

四、实验要求

每个小的实验都必须给出具体的实验方法、实验结果与结果分析。

在对每个实验结果的分析中要描述产生正确结果或错误的原因,有些可以写出相应的解决方法。

五、实验步骤

实验方法:

1.利用域定义新的数据类型NAME

2.利用新的变量NAME进行定义变量

3.绘制ER图(logical)

4.将logicalmodel转化为physicalmodel

5.在sqlserver中创建数据库CONTRACT

6.由于版本的问题,所以无法直接连接数据库进行实验,而是通过预览sql语句的形式然后,通过sql语句进行实验

1)由于实验生成寄存器会影响在数据库CONTRACT中的运行,所以,禁止ERWIN产生触发器

2)生成SQL语句

3)在输入执行SQL语句时,新定义的NAME类型无法识别,通过把VARCHAR1(32)改成CHAR(18),执行通过

4)在生成SQL代码时,注意选择sql不要选择oracle,因为这个原因,我从早上到中午一直找bug。

7.新建查询,输入SQL语句,进行创建

实验结果:

完成实验的ER建模和数据库的构建

实验分析:

仔细阅读实验指导书和认真实验,遇到问题及时解决问题,实验方法和操作没有问题,自然可以完成实验的要求。

 

六、结合所设计的ERD回答下面问题

(1)如何实现售后服务中的产品服务期限的?

答:

实验中,在AFTER_SALE_SERVICE中,设有SERVICE_BEGIN_TIME和SERVICE_END_TIME,我们可以同结束时间减去开始时间,就可以得到产品的服务期限。

(2)如何记录售后服务的产品信息?

答:

根据制定的ER图,我们可以根据实体AFTER_SALE_SERVICE和实体PRODUCT以及ORDER_PRODUCT的联系得到售后服务的产品信息,如可以通过外键PRODUCT_ID和ORDER_HEADER_ID找到对应的订单明细,然后从对应的订单明细中,再通过外键PRODUCT_ID找到对应的那个产品信息。

(3)如何记录技术服务工程师(包括服务专员)的信息?

答:

我们直接可以通过实体AFTER_SALE_SERVICE的EMPLOYEE_ID找到实体EMPLOYEE对应的技术服务工程师的信息也可以找到服务专员的信息。

(4)一个完整的服务信息(如维修一个磁盘可能包括第一次打电话咨询、维修等由多个小服务组成一个大服务)是如何记录的?

答:

一个大服务可以由很多小的小服务来组成,可以建立一个自己到自己的递归联系来记录,比如我们可以建立一个AFTER_SALE_SERVICE到AFTER_SALE_SERVICE的递归联系,然后,我们就可以通过AFTER_SALE_ID进行对小服务的记录和递归查询了。

 

七、实验感悟

 

八、附录:

 实验中从ER图转变成的SQL语句

CREATETABLEAFTER_SALE_SERVICE

AFTER_SALE_SERVICE_IDCHAR(18)NOTNULL,

SERVICE_BEGIN_TIMECHAR(18)NULL,

SERVICE_END_TIMECHAR(18)NULL,

SERVICE_TYPECHAR(18)NULL,

SERVICE_SPECIALISTCHAR(18)NULL,

CONTRACT_IDCHAR(18)NULL,

SERVICE_DETAILCHAR(18)NULL,

ORGNIZATION_IDCHAR(18)NULL,

CUSTOMER_NAMECHAR(18)NULL,

CUSTOMER_PHONECHAR(18)NULL

);

 

CREATEUNIQUEINDEXXPKAFTER_SALE_SERVICEONAFTER_SALE_SERVICE

(AFTER_SALE_SERVICE_IDASC);

 

ALTERTABLEAFTER_SALE_SERVICE

ADDCONSTRAINTXPKAFTER_SALE_SERVICEPRIMARYKEY(AFTER_SALE_SERVICE_ID);

 

CREATETABLECONTRACT

CONTRACT_IDCHAR(18)NOTNULL,

NAMECHAR(18)NULL,

AMOUNTCHAR(18)NULL,

TECHNICAL_RESULTCHAR(18)NULL,

TECHNICAL_DATECHAR(18)NULL,

BUSINESS_RESULTCHAR(18)NULL,

BUSINESS_DATECHAR(18)NULL,

SALE_IDCHAR(18)NOTNULL,

TECHNICAL_IDCHAR(18)NULL,

BUSINESS_IDCHAR(18)NULL,

DECRIPTIONCHAR(18)NULL

);

 

CREATEUNIQUEINDEXXPKCONTRACTONCONTRACT

(CONTRACT_IDASC);

 

ALTERTABLECONTRACT

ADDCONSTRAINTXPKCONTRACTPRIMARYKEY(CONTRACT_ID);

 

CREATETABLECONTRACT_PRODUCT

PRICECHAR(18)NULL,

DISCOUNTCHAR(18)NULL,

AMOUNTCHAR(18)NULL,

PRODUCT_IDCHAR(18)NOTNULL,

CONTRACT_IDCHAR(18)NOTNULL

);

 

CREATEUNIQUEINDEXXPKCONTRACT_PRODUCTONCONTRACT_PRODUCT

(PRODUCT_IDASC,CONTRACT_IDASC);

 

ALTERTABLECONTRACT_PRODUCT

ADDCONSTRAINTXPKCONTRACT_PRODUCTPRIMARYKEY(PRODUCT_ID,CONTRACT_ID);

 

CREATETABLECUSTOMER

BANK_ACCOUNT_CREDITCHAR(18)NULL,

ORGNIZATION_IDCHAR(18)NOTNULL,

CREDITCHAR(18)NULL,

CUSTOMER_NAMECHAR(18)NOTNULL,

CUSTOMER_PHONECHAR(18)NOTNULL

);

 

CREATEUNIQUEINDEXXPKCUSTOMERONCUSTOMER

(ORGNIZATION_IDASC,CUSTOMER_NAMEASC,CUSTOMER_PHONEASC);

 

ALTERTABLECUSTOMER

ADDCONSTRAINTXPKCUSTOMERPRIMARYKEY(ORGNIZATION_ID,CUSTOMER_NAME,CUSTOMER_PHONE);

 

CREATETABLEDEPARTMENT

ORGNIZATION_IDCHAR(18)NOTNULL

);

 

CREATEUNIQUEINDEXXPKDEPARTMENTONDEPARTMENT

(ORGNIZATION_IDASC);

 

ALTERTABLEDEPARTMENT

ADDCONSTRAINTXPKDEPARTMENTPRIMARYKEY(ORGNIZATION_ID);

 

CREATETABLEEMPLOYEE

EMPLOEE_IDCHAR(18)NOTNULL,

MANAGER_IDCHAR(18)NULL,

NAMECHAR(18)NULL,

PHONECHAR(18)NULL,

MOBILECHAR(18)NULL,

EMAILCHAR(18)NULL,

ORGNIZATION_IDCHAR(18)NULL

);

 

CREATEUNIQUEINDEXXPKEMPLOYEEONEMPLOYEE

(EMPLOEE_IDASC);

 

ALTERTABLEEMPLOYEE

ADDCONSTRAINTXPKEMPLOYEEPRIMARYKEY(EMPLOEE_ID);

 

CREATETABLEORDER_DETAIL

AMOUNTCHAR(18)NULL,

PRICECHAR(18)NULL,

DISCOUNTCHAR(18)NULL,

PRODUCT_IDCHAR(18)NOTNULL,

ORDER_HEADER_IDCHAR(18)NOTNULL,

SERVICE_IDCHAR(18)NOTNULL

);

 

CREATEUNIQUEINDEXXPKORDER_DETAILONORDER_DETAIL

(PRODUCT_IDASC,ORDER_HEADER_IDASC,SERVICE_IDASC);

 

ALTERTABLEORDER_DETAIL

ADDCONSTRAINTXPKORDER_DETAILPRIMARYKEY(PRODUCT_ID,ORDER_HEADER_ID,SERVICE_ID);

 

CREATETABLEORDER_HEADER

ORDER_HEADER_IDCHAR(18)NOTNULL,

ORDER_DATECHAR(18)NULL,

NAMECHAR(18)NULL,

CONTRACT_IDCHAR(18)NULL

);

 

CREATEUNIQUEINDEXXPKORDER_HEADERONORDER_HEADER

(ORDER_HEADER_IDASC);

 

ALTERTABLEORDER_HEADER

ADDCONSTRAINTXPKORDER_HEADERPRIMARYKEY(ORDER_HEADER_ID);

 

CREATETABLEORGNIZATION

NAMECHAR(18)NULL,

ORGNIZATION_IDCHAR(18)NOTNULL,

ADDRESSCHAR(18)NULL,

PHONECHAR(18)NULL,

TYPECHAR(18)NULL

);

 

CREATEUNIQUEINDEXXPKORGNIZATIONONORGNIZATION

(ORGNIZATION_IDASC);

 

ALTERTABLEORGNIZATION

ADDCONSTRAINTXPKORGNIZATIONPRIMARYKEY(ORGNIZATION_ID);

 

CREATETABLEPAYMENT

PAYMENT_IDCHAR(18)NOTNULL,

AMOUNTCHAR(18)NULL,

PAY_DATECHAR(18)NULL,

CONTRACT_IDCHAR(18)NULL

);

 

CREATEUNIQUEINDEXXPKPAYMENTONPAYMENT

(PAYMENT_IDASC);

 

ALTERTABLEPAYMENT

ADDCONSTRAINTXPKPAYMENTPRIMARYKEY(PAYMENT_ID);

 

CREATETABLEPRODUCT

PRODUCT_IDCHAR(18)NOTNULL,

NAMECHAR(18)NULL,

PRICECHAR(18)NULL,

VENDOR_IDCHAR(18)NULL

);

 

CREATEUNIQUEINDEXXPKPRODUCTONPRODUCT

(PRODUCT_IDASC);

 

ALTERTABLEPRODUCT

ADDCONSTRAINTXPKPRODUCTPRIMARYKEY(PRODUCT_ID);

 

CREATETABLERECEIVED_PAY

RECEIVED_PAY_IDCHAR(18)NOTNULL,

AMOUNTCHAR(18)NULL,

RECEIVED_DATECHAR(18)NULL,

CONTRACT_IDCHAR(18)NULL

);

 

CREATEUNIQUEINDEXXPKRECEIVED_PAYONRECEIVED_PAY

(RECEIVED_PAY_IDASC);

 

ALTERTABLERECEIVED_PAY

ADDCONSTRAINTXPKRECEIVED_PAYPRIMARYKEY(RECEIVED_PAY_ID);

 

CREATETABLEVENDOR

COUNTRYCHAR(18)NULL,

ORGNIZATION_IDCHAR(18)NOTNULL

);

 

CREATEUNIQUEINDEXXPKVENDORONVENDOR

(ORGNIZATION_IDASC);

 

ALTERTABLEVENDOR

ADDCONSTRAINTXPKVENDORPRIMARYKEY(ORGNIZATION_ID);

 

ALTERTABLEAFTER_SALE_SERVICE

ADD(CONSTRAINTR_30FOREIGNKEY(SERVICE_SPECIALIST)REFERENCESEMPLOYEE(EMPLOEE_ID)ONDELETESETNULL);

 

ALTERTABLEAFTER_SALE_SERVICE

ADD(CONSTRAINTR_36FOREIGNKEY(CONTRACT_ID)REFERENCESCONTRACT(CONTRACT_ID)ONDELETESETNULL);

 

ALTERTABLEAFTER_SALE_SERVICE

ADD(CONSTRAINTR_76FOREIGNKEY(ORGNIZATION_ID,CUSTOMER_NAME,CUSTOMER_PHONE)REFERENCESCUSTOMER(ORGNIZATION_ID,CUSTOMER_NAME,CUSTOMER_PHONE)ONDELETESETNULL);

 

ALTERTABLECONTRACT

ADD(CONSTRAINTR_26FOREIGNKEY(SALE_ID)REFERENCESEMPLOYEE(EMPLOEE_ID));

 

ALTERTABLECONTRACT

ADD(CONSTRAINTR_27FOREIGNKEY(TECHNICAL_ID)REFERENCESEMPLOYEE(EMPLOEE_ID)ONDELETESETNULL);

 

ALTERTABLECONTRACT

ADD(CONSTRAINTR_29FOREIGNKEY(BUSINESS_ID)REFERENCESEMPLOYEE(EMPLOEE_ID)ONDELETESETNULL);

 

ALTERTABLECONTRACT_PRODUCT

ADD(CONSTRAINTR_33FOREIGNKEY(PRODUCT_ID)REFERENCESPRODUCT(PRODUCT_ID));

 

ALTERTABLECONTRACT_PRODUCT

ADD(CONSTRAINTR_37FOREIGNKEY(CONTRACT_ID)REFERENCESCONTRACT(CONTRACT_ID));

 

ALTERTABLECUSTOMER

ADD(FOREIGNKEY(ORGNIZATION_ID)REFERENCESORGNIZATION(ORGNIZATION_ID)ONDELETECASCADE);

 

ALTERTABLEDEPARTMENT

ADD(FOREIGNKEY(ORGNIZATION_ID)REFERENCESORGNIZATION(ORGNIZATION_ID)ONDELETECASCADE);

 

ALTERTABLEEMPLOYEE

ADD(CONSTRAINTR_25FOREIGNKEY(MANAGER_ID)REFERENCESEMPLOYEE(EMPLOEE_ID)ONDELETESETNULL);

 

ALTERTABLEEMPLOYEE

ADD(CONSTRAINTR_21FOREIGNKEY(ORGNIZATION_ID)REFERENCESDEPARTMENT(ORGNIZATION_ID)ONDELETESETNULL);

 

ALTERTABLEORDER_DETAIL

ADD(CONSTRAINTR_34FOREIGNKEY(PRODUCT_ID)REFERENCESPRODUCT(PRODUCT_ID));

 

ALTERTABLEORDER_DETAIL

ADD(CONSTRAINTR_42FOREIGNKEY(ORDER_HEADER_ID)REFERENCESORDER_HEADER(ORDER_HEADER_ID));

 

ALTERTABLEORDER_DETAIL

ADD(CONSTRAINTR_74FOREIGNKEY(SERVICE_ID)REFERENCESAFTER_SALE_SERVICE(AFTER_SALE_SERVICE_ID));

 

ALTERTABLEORDER_HEADER

ADD(CONSTRAINTR_38FOREIGNKEY(CONTRACT_ID)REFERENCESCONTRACT(CONTRACT_ID)ONDELETESETNULL);

 

ALTERTABLEPAYMENT

ADD(CONSTRAINTR_39FOREIGNKEY(CONTRACT_ID)REFERENCESCONTRACT(CONTRACT_ID)ONDELETESETNULL);

 

ALTERTABLEPRODUCT

ADD(CONSTRAINTR_32FOREIGNKEY(VENDOR_ID)REFERENCESVENDOR(ORGNIZATION_ID)ONDELETESETNULL);

 

ALTERTABLERECEIVED_PAY

ADD(CONSTRAINTR_40FOREIGNKEY(CONTRACT_ID)REFERENCESCONTRACT(CONTRACT_ID)ONDELETESETNULL);

 

ALTERTABLEVENDOR

ADD(FOREIGNKEY(ORGNIZATION_ID)REFERENCESORGNIZATION(ORGNIZATION_ID)ONDELETECASCADE);

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1