数据库ERP面试题.docx

上传人:b****5 文档编号:7777046 上传时间:2023-01-26 格式:DOCX 页数:40 大小:50.18KB
下载 相关 举报
数据库ERP面试题.docx_第1页
第1页 / 共40页
数据库ERP面试题.docx_第2页
第2页 / 共40页
数据库ERP面试题.docx_第3页
第3页 / 共40页
数据库ERP面试题.docx_第4页
第4页 / 共40页
数据库ERP面试题.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

数据库ERP面试题.docx

《数据库ERP面试题.docx》由会员分享,可在线阅读,更多相关《数据库ERP面试题.docx(40页珍藏版)》请在冰豆网上搜索。

数据库ERP面试题.docx

数据库ERP面试题

我个人理解为:

以各种单据为表示,结合你对实际企业中ERP流程的理解,并以优化的思想,站在软件厂商的角度认为应该推出怎么的系统以实现企业实际的需求

其实就是把财务,物流和生产中的必用单据列出来,并串连起来,衔接成一个整体。

这种面试就到这份上了够了

什么是ERP、MRP及MRPⅡ?

它们的英文完整拼写分别是什么?

(10分)

2.什么是BOM和ECN?

它们的完整英文拼写是什么?

什么是替代料?

?

(10分)

3.订单分为哪几类?

它们的特征分别是什么?

(10分)

4.MRP分为哪二类?

分别适用于什么情形?

?

(10分)

5.请简述毛需求、已分配量、可用库存、在途量、计划在途、净需求、预计结存、下达量分别是什么?

MRP基本运算公式是什么?

(20分)

6.请完整简述电子制造业ERP作业流程(15分)

7.在SQL2000数据库中有一名称为Orders的表.包含的字段依次是ID、Order_NO、Order_Num、Order_Date,请自定义数据分别完成插入、更新、删除数据的操作.(15分)

8.请问SQL2000数据库的备份及恢复如何操作?

该考虑哪些因素?

(10分)

9.请分别简述实施ERP对公司的管理运行有哪些好处或帮助!

(10分)

1.对ERP的理解和了解

ERP的英文全称为EnterpriseResourcePlanning,中文翻译为企业资源计划。

在制造业ERP中,核心的内容一个是仓库管理,另一个是物料需求分析。

从字面上来说,仓库管理就是使用ERP软件来实时登录当前的生产资源的使用情况、库存信息以及出入库信息。

这样,ERP在当中起到的是一个账本的作用,能够方便企业管理人员对当前生产所需原料的数量、使用情况有个很明确的了解;物料需求分析也就是MRP,是从当前企业在生产、销售、采购的数据中分析出生产过程中需要采购多少原材料,以便顺利进行生产活动。

物料需求分析联系着生产与原材料的采购活动,而库存管理联系着企业的生产、销售活动。

从而将企业的整个制造相关的活动管理起来,以实现高效的,精确的管理。

这就是ERP的目的。

当然,企业资源包括资金流的出入管理、人事管理等。

2.请具体回答ERPandMRPII 的联系与区别。

MRPII与ERP的最大区别是将物流,信息,资金从制造部分扩展到企业的所有资源(分销资源,人力资源,服务资源,全面质量管理等)及市场信息和资源,并且要求能够处理工作流。

另外,随着企业不断扩大,多集团,多公司,多地点的协同工作方面MRPII也不能满足要求。

以及,对整个供给链的管理MRPII也不能支持。

3.请具体回答什么是BOM以及它的作用是什么。

全称:

BillofMaterial。

物料清单(bom)是生产某产品所需要的零件/原材料的清单。

从作用功能上来看,分为:

工艺bom,生产bom。

作用包括:

1。

销售部门根据工程技术部搭好的BOM的成品号下销售订单。

2。

采购部根据BOM采购原材料。

3。

物资部根据BOM发放物料和生产换件等。

4。

生产部根据BOM和工艺完成生产。

4.你认为一个咨询顾问应该具备哪些素质

首先:

应该非常熟知ERP的原理和企业的运营流程。

对行业的规范和标准也很熟知。

2。

对实施的ERP软件的各个功能细节很熟知。

3。

很强的沟通能力和技巧。

4。

有一定的组织会议和培训能力。

5。

最好还会操作数据库,比如:

懂SQL等等。

5.什么是ECN

ECN工程变更通知单是英文EngineeringChangeNotice的简写

      6.请简述毛需求、已分配量、可用库存、在途量、计划在途、净需求、预计结存、下达量分别是什么?

MRP基本运算公式是什么?

   MRP通用计算公式:

净需求=毛需求+已分配量+安全库存-计划在途-实际在途-可用库存

   毛需求量:

不考虑库存、制造、采购的需求量,相对于净需求而言。

假如是独立需求,那么毛需求=主生产计划需求量/(1–料品不良率)。

假如是相关需求,那么毛需求=上层料品的下达量。

其中独立需求是指某一存货项目的需求与其他项目需求没有关联,如生产的最终产品,它是企业生产的可以销售的产品项目通常位于产品结构表的最上层。

而相关需求是指某一存货项目的需求是由另一项目需求有关并可因而推算,如半成品、原料。

它是可以通过最终产品的需求量而计算得到半成品、原料的需求量。

成品的毛需求即订单欠交量(生产欠交量)。

一阶半成品或物料的毛需求即是抓的成品的净需求。

而二阶或其以下的半成品或物料的毛需求又是抓的二阶或上一阶半成品的净需求。

   已分配量:

尚保存在仓库中(假想入足库的状况)但已分配给制单的料品数量。

实际上就是物料控制档中欠发数量。

即已分配量=应发数量-实发数量。

   安全库存量:

为防止各种异常导致缺料从而特地额外增加的需求量,通常也可以理解为备品数量

   计划在途量:

跑出MRP后从已生成了采购计划到生成采购单的中间过程的需采购数量实际在途量:

分为采购在途和制造在途。

采购在途:

已审核未结案的采购单的欠交数量。

制造在途:

已审核未结案的制造单的未入库数量

   可用库存量:

一般是指所有仓别中可用的的良品实物库存数量(可用库存=库存量-安全存量.)但对于跑MRP时运算公式中的可用库存则是本次抓上一笔订单(制造单)的预计结存,是理论可用库存!

其实假想有按日期先后顺序下的三个订单(制造单)A、B、C,A的预计结存就是B的可用库存,B的预计结存就是C的可用库存.依此类推下去就是本次跑MRP时的物料的可用库存就是用到或生产些物料的上一笔订单或制造单的预计结存量.

   预计结存量:

预计结存量=下达量+可用库存+在途量+计划在途量-毛需求-已分配量,是物料整体上的存量结算

   净需求量:

依MRP计算公式计算出来的数量.

   逾期计划量:

指在物料的需求日期之后总的的物料计划在途数量.

   逾期在途量:

指在物料的需求日期之后的总的物料采购在途数量.   下达量:

指物料的实际下达量,通常就是净需求量实际下达的需求量,其数据来源为净需求量,但可能由于料品订货规则不同而和净需求量有一定的差异。

      7.请简述实施ERP对公司的管理运行有哪些好处或帮助!

      整合并优化企业业务流程,使业务流程更加合理,提高工作效率;根据系统反馈的情况纠正管理中的问题;保证了数据的一致性、时时性、完整性,为管理者提供实时精确的数据,以便于作出正确的決策;持续改善管理,提高企业竞争力.

     8.ERP成功的要害

        清楚的范围,明确的目标和重点,高层领导有力支持,专业精干的项目团队,业务部门的积极参与,对基础数据和业务数据的及时、规范和精确性高度重视,良好的沟通和协调机制,是ERP系统成功应用的要害,也是ERP项目取得应用效果的前提条件。

统计函数avg,count,max,min,sum

1维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?

为什么?

答:

尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。

2什么是事务?

什么是锁?

答:

事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。

锁是在多用户环境中对数据的访问的限制。

SqlServer自动锁定特定记录、字段或文件,防止用户访问,以维护数据安全或防止并发数据操作问题,锁可以保证事务的完整性和并发性。

3什么是索引,有什么优点?

答:

索引象书的目录类似,索引使数据库程序无需扫描整个表,就可以在其中找到所需要的数据,索引包含了一个表中包含值的列表,其中包含了各个值的行所存储的位置,索引可以是单个或一组列,索引提供的表中数据的逻辑位置,合理划分索引能够大大提高数据库性能。

4视图是什么?

游标是什么?

答:

视图是一种虚拟表,虚拟表具有和物理表相同的功能,可以对虚拟表进行增该查操作,视图通常是一个或多个表的行或列的子集,视图的结果更容易理解(修改视图对基表不影响),获取数据更容易(相比多表查询更方便),限制数据检索(比如需要隐藏某些行或列),维护更方便。

游标对查询出来的结果集作为一个单元来有效的处理,游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置进行修改、

5什么是存储过程?

有什么优点?

答:

存储过程是一组予编译的SQL语句,它的优点有1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。

2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。

3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。

4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

6什么是触发器?

答:

出发器是一种特殊类型的存储过程,出发器主要通过事件触发而被执行的,触发器的优点:

1.强化约束,触发器能够提供比CHECK约束。

2.跟踪变化,触发器可以跟踪数据库内的操作,从而不允许未经允许许可的更新和变化。

3.联级运算,比如某个表上的触发器中包含对另一个表的数据操作,而该操作又导致该表上的触发器被触发

oracleCertificationProgram(OCP认证)的题目

  

(1)A表中有100条记录.

  Select *FROMAWhereA.COLUMN1=A.COLUMN1

  这个语句返回几条记录?

(简单吧,似乎1秒钟就有答案了:

  

(2)CreateSEQUENCEPEAK_NO

  SelectPEAK_NO.NEXTVALFROMDUAL-->假设返回1

  10秒中后,再次做

  SelectPEAK_NO.NEXTVALFROMDUAL-->返回多少?

  (3)SQL>connectsysassysdba

  Connected.

  SQL>insertintodualvalues('Y');

     1rowcreated.

  SQL>commit;

     Commitcomplete.

  SQL>selectcount(*)fromdual;

     COUNT(*)

     ----------

     2

  SQL>deletefromdual;

     commit;

     -->DUAL里还剩几条记录?

  JUSTTRYIT

一些高难度的SQL面试题

  以下的null代表真的null,写在这里只是为了让大家看清楚

根据如下表的查询结果,那么以下语句的结果是(知识点:

notin/notexists+null)

SQL>select*fromusertable;

USERID          USERNAME

-----------      ----------------

    1          user1

    2          null

    3          user3

    4          null

    5          user5

    6          user6

      

SQL>select*fromusergrade;

USERID        USERNAME          GRADE

----------    ----------------  ----------

    1        user1              90

    2        null              80

    7        user7              80

    8        user8              90

执行语句:

selectcount(*)fromusergradewhereusernamenotin(selectusernamefromusertable);

selectcount(*)fromusergradegwherenotexists

(selectnullfromusertabletwheret.userid=g.useridandt.username=g.username);

结果为:

语句1(  0)  语句2  (  3)

A:

0    B:

1    C:

2    D:

3      E:

NULL

2

在以下的表的显示结果中,以下语句的执行结果是(知识点:

in/exists+rownum)

SQL>select*fromusertable;

USERID          USERNAME

-----------      ----------------

    1          user1

    2          user2

    3          user3

    4          user4

    5          user5

      

SQL>select*fromusergrade;

USERNAME              GRADE

----------------      ----------

user9                  90

user8                  80

user7                  80

user2                  90

user1                  100

user1                  80

执行语句

Selectcount(*)fromusertablet1whereusernamein

  (selectusernamefromusergradet2whererownum<=1);

  

Selectcount(*)fromusertablet1whereexists

  (select'x'fromusergradet2wheret1.username=t2.usernameandrownum<=1);

以上语句的执行结果是:

(  )  (  )

  A:

  0        B:

  1        C:

  2      D:

  3

根据以下的在不同会话与时间点的操作,判断结果是多少,其中时间T1原始表记录为;

select*fromemp;

EMPNO        DEPTNO      SALARY

-----        ------      ------

100            1          55

101            1          50

select*fromdept;

DEPTNO          SUM_OF_SALARY

------          -------------

1                105

2                

可以看到,现在因为还没有部门2的员工,所以总薪水为null,现在,

有两个不同的用户(会话)在不同的时间点(按照特定的时间顺序)执行了一系列的操作,那么在其中或最后的结果为:

time              session1                            session2

-----------      -------------------------------      -----------------------------------

T1              insertintoemp

                values(102,2,60)

                  

T2                                                    updateempsetdeptno=2

                                                        whereempno=100

T3                                                    updatedeptsetsum_of_salary=

                                                      (selectsum(salary)fromemp

                                                    whereemp.deptno=dept.deptno)

                                                    wheredept.deptnoin(1,2);

                                                  

T4          updatedeptsetsum_of_salary=

                (selectsum(salary)fromemp

            whereemp.deptno=dept.deptno)

            wheredept.deptnoin(1,2);

              

T5                                                    commit;

T6                                                    selectsum(salary)fromempgroupbydeptno;

                                                    问题一:

这里会话2的查询结果为:

                                                  

T7          commit;

=======到这里为此,所有事务都已完成,所以以下查询与会话已没有关系========

T8          selectsum(salary)fromempgroupbydeptno;

            问题二:

这里查询结果为

T9        select*fromdept;

            问题三:

这里查询的结果为

问题一的结果(  )  问题二的结果是(  )  问题三的结果是(  )

A:

                        B:

----------------        ----------------

1        50              1        50

2        60              2        55

C:

                        D:

----------------        ----------------

1        50              1      115

2      115              2        50

E:

                        F:

----------------        ----------------

1      105              1      110

2        60              2        55

有表一的查询结果如下,该表为学生成绩表(知识点:

关联更新)

selectid,gradefromstudent_grade

ID                GRADE

--------          -----------

1                  50

2                  40

3                  70

4                  80

5                  30

6                  90

表二为补考成绩表

selectid,gradefromstudent_makeup

ID                GRADE

--------          -----------

1                  60

2                  80

5                  60

现在有一个dba通过如下语句把补考成绩更新到成绩表中,并提交:

updatestudent_gradessets.grade=

(selectt.gradefromstudent_makeupt

  wheres.id=t.id);

commit;

请问之后查询:

selectGRADEfromstudent_gradewhereid=3;结果为:

A:

0    B:

  70  C:

  null  D:

  以上都不对

根据以下的在不同会话与时间点的操作,判断结果是多少,

其中时间T1

                session1                              session2

--------------------------------------    ----------------------------------------

T1        selectcount(*)fromt;

          --显示结果(1000)条

          

T2        deletefromtwhererownum<=100;

T3                                          begin

                                            deletefromtwhererownum<=100;  

                                            commit;

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

当前位置:首页 > 高等教育 > 理学

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

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