最近发现园子里面关于数据库方面的文章比较多,正好我也是一个喜欢凑热闹的家伙,那就跟着烧一把火吧。^_^

这是前阵子一个朋友面试外企的一套关于数据库设计的试题,有兴趣的朋友不妨一试。

Part I    
 工厂在定义一个新产品的流程如下:

1.  确定产品信息如名字,代号等;
2.  设计部门设计出产品的结构;
3.  在确定结构后就可以得出每个产品所需要的基本零件及其所需的数据。进而可以进行相关财务处理与采购处理。
 
 其相关逻辑如下:

.  对于每一种基本零件都有其相关的型号等资料设定;

.  对于每个供应商也有其相关资料的设定;

.  一个基本零件可以由不同的供应商供应,其价格等资料会有些差异;

.  一个供应商也可以供应多种不同的基本零件;

.  对于一种产品,可以由多个大部件构成,不同的产品有可能由相同的大部件组成;
       例如,某发动机可以是汽车A的一个大部件,也可以是汽车B的一个大部件。

.  在部件结构中,某些部件是由别外一个或多个部件组成的,而所有的部件最终都是由基本零件构成的;

.  产品大部件只是存放与产品直接相关的最上层部件。

Product(产品) Supplier(供应商) Part(基本零件)
product_code supplier_code part_code
product_name supplier_name part_name
product_desc address_1 part_desc
created_date address_2 remark
address_3
Product_comp(产品大部件) Component(部件结构) component_supply(零件供应)
product_code comp_id supply_id
comp_id component_code part_code
number_component component_name supplier_code
  parent_comp_id price
supply_id ind_active
number_component  
Prod_part_supp_detail(产品零件明细)
product_code
supply_id  
number_component
   

Below is a structure example of product 'P_1' :

1. 根据理解画出E-R(或UML)联系图;
   2. 写脚本来建立所需要的数据库对象,如表、序列、约束等; 
   3. 为上图所示的产品P_1准备初始化数据(prod_part_supp_detail 除外); 
   4. 编写procedure 或function生成指定产品的产品零件明细清单;
   5. Write a SQL to show the supplier and component detail of product. For amount field, use below logic :

             If the “Amount” < 1000 show “Low”
               if “Amount” >=1000<10000 show “Middle”
               else show “High”

The layout is :

Supplier Name                   Part Name                         Necessary Num     Amount                Type
     ------------------                  ------------------                  --------------             ----------------          ----------
     XXXXXXXXXXXXXXXXXX   XXXXXXXXXXXXXXXXXX    9999999999        999999999.99      XXXXXXXXXX

如果需要用到递归,以下是一个简单示例:

create or replace function get_char_one_by_one(v_str    varchar2)
return varchar2
is
begin
    if v_str is not null and length(v_str) > 1  then
       return substr(v_str, 1, 1) || ' ' ||
              get_char_one_by_one(substr(v_str, 2));
    else
       return v_str;
    end if;
end;
/

set serveroutput on
begin
    dbms_output.put_line(get_char_one_by_one('I am good boy'));
end;
/

在以下两题中作选一题 
 Part II    
 There are some tables need copy from one oracle user User1  to another user User2.     
 1. The DB structure of source user is compatiable to the target db user (All field in source db user are exists in target db user, but maybe some fields in target db user not in source db user);

2. No DB Link or privilege granted between those two users;      
 3. No primary key or unique key conflict between those two users' data;      
 4. The records number is not very much (at most 10000 for one table).       
  
 Part III 
 There are some tables need copy from one oracle user User1  to another user User2.     
 1. The DB structure of source user is compatiable to the target db user (All field in source db user are exists in target db user, but maybe some fields in target db user not in source db user);
 2. Can create DB Link or grant priv between those two users;     
 3. No primary key or unique key conflict between those two users' data;     
 4. The records number is not very much (at most 10000 for one table).

一套外企的数据库设计面试题相关推荐

  1. 考研复试数据库原理面试题(四)—关系数据库设计与设计理论

    写作目的:为了应对考研复试中的面试,我整理了导师可能提问的地方,力求用口语化的语言描述出来. 这只是一部分,陆续还有数据库原理的其它章节,还会推出数据结构.计算机网络复试题整理. 数据库原理我的参考书 ...

  2. MySQL面试题 数据库设计三范式

    第一范式 属性(字段)的原子性约束,要求属性具有原子性,不可再分割: 比如个人信息,个人信息不能作为一个字段,它可以再分为姓名.name.age等: 第二范式 记录的惟一性约束,要求记录有惟一标识,每 ...

  3. 试题2-12:数据库设计与操作

    (一)测试任务 任务描述:公司薪酬系统用于记录并发放员工薪资.该系统的数据库设计E-R图如图1所示. 图1 薪酬系统E-R图 该子系统涉及的表中各字段定义见表1到表3. 表1 部门表t_departm ...

  4. 【Database】数据库常见面试题【转】

    数据库基础(面试常见题) 一.数据库基础 1. 数据抽象:物理抽象.概念抽象.视图级抽象,内模式.模式.外模式 2. SQL语言包括数据定义.数据操纵(Data Manipulation),数据控制( ...

  5. 第五十二期:Java开发数据库设计的14个技巧,你知道几个?

    可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一 ...

  6. 吊打面试官?2020 年数据库高频面试题 | 原力计划

    作者|ThinkWon 责编|伍杏玲 出品|CSDN博客 数据库基础知识 1.为什么要使用数据库 数据保存在内存: 优点:存取速度快 缺点:数据不能永久保存 数据保存在文件: 优点:数据永久保存 缺点 ...

  7. 考试系统mysql数据库设计_《在线考试系统数据库设计与实现》.doc

    网上测试系统 PAGE28 / NUMPAGES29 西南财经大学 Southwestern University of Finance and Economics 课程实验报告 课程名称: 数据库 ...

  8. 架构设计面试题 (史上最全、持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 高并发学习社群 - 疯狂创客圈奉献给大家: 经典图书 - <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 + 涨薪必备 ...

  9. 14 个实用的数据库设计技巧,一次性教给你!

    目录 原始单据与实体之间的关系 主键与外键 基本表的性质 范式标准 通俗地理解三个范式 要善于识别与正确处理多对多的关系 主键PK的取值方法 正确认识数据冗余 E--R图没有标准答案 视图技术在数据库 ...

最新文章

  1. java jdbc连接数据库的设计
  2. Java 安装后的检测是否安装成功
  3. easyui datagrid 多表头数据错位_表格数据检索(二)
  4. 在PC上用模拟器搭建Windows Mobile仿真环境:Microsoft Device Emulator使用
  5. python xyz_python中xyz坐标的欧几里德距离
  6. arp 华为 查看 路由器_华为路由器运行状态查看-路由器
  7. Python print 函数- Python零基础入门教程
  8. 排序算法:希尔排序算法实现及分析
  9. AI 看脸算命,3 万张自拍揭露:颜值即命?
  10. python从入门到实践答案第四章_《python从入门到实践》--第四章基本操作列表 重点及课后练习...
  11. 计算机专用英语词汇1695个词汇表
  12. 软考网络工程师考试大纲
  13. ThinkPad S2 安装deepin系统,安装rtl8821ce无线网卡驱动,适合deepin/ubuntu
  14. android系统密码设置功能,手机锁屏设置!安卓手机锁屏密码设置技巧?
  15. 世硕科技推荐:Shockman 最新音译 登峰侠
  16. 自己整理的运维面试题,必须会。
  17. 手机4k屏幕测试软件,索尼Z5 Premium 4K屏幕测试:1080p屏是王道!
  18. RBAC权限模型学习总结
  19. 医学数字影像和通讯(DICOM)---DICOM标准3.0 第一部分:介绍和概述
  20. 主流雷达供应商的4D成像雷达方案梳理

热门文章

  1. Java项目:后台管理系统脚手架项目(java+SpringBoot+FreeMarker+mysql+JSP)
  2. java bean配置文件_Spring中多配置文件及引用其他bean的方式
  3. 【Linux】Linux简单操作之文件管理
  4. 微信小程序 循迹功能制作
  5. 19.04.02笔记
  6. linux下typora安装
  7. Confluence 6 数据库表-系统信息(System information)
  8. linux管道的执行顺序
  9. “”开天眼“”,天地分割效果
  10. 一款基于jquery和css3的响应式二级导航菜单