资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
收集一:1. 逻辑推理题3道为简单的根据条件推理题3道稍复杂的推理题2. 技术题(数据库为主)(1)程序题,数字转换成定长字符串答:数据库实现:2) sql查询语句查出第二大3) 问答题:索引分类和各自用途4) 根据sql查询语句确定创建哪种类型的索引,如何优化查询5) 选择题好像是15道,主要涉及数据库范式判别、三大完整性的考察及查询语句收集二:一笔试题目:1. 逻辑推断题关于布尔代数概念的题目;2. 逻辑推断题3. 数据库技术,1sql语句:求出学生成绩表中成绩第二高的所有学生名单答:TD实现,第二高selectstu_namefromstudentabqualifyrank(score)=2如果是各科成绩倒数据第二则:selectcourese_idas课程,stu_name姓名,rank(scoreasc)as名次(倒数)fromstudentabgroupbycourse_idqualifyrank(scoreasc)=2注:QUALIFY子句限制排队输出的最终结果。QUALIFY子句与HAVING子句类似,使输出限制在一定范围内。1) sybase实现:selectstart_datefrom(selectstart_date,dense_rank()over(orderbystart_datedesc)ascolfromtb_tmp)twheret.col=2说明:dense_rank是秩分析函数,它只能在SELECT、INSERT语句和SELECT语句的ORDERBY子句中使用的选择列表中使用。可以在视图或联合视图中使用,上例即相当于使用视图的方式。dense_rank和rank的区别是:当存在并列排名时,dense_rank不会保留空位,它的返回值连续的(如:10、10、10、11)。而rank会保留相应的空位(如:10、10、10、13)。2) oracle实现selectprovince_id,city_idfrom(selectprovince_id,city_id,dense_rank()over(orderbyprovince_iddesc)colfromdd_city)twheret.col=23) 分组使用dense_rane,使用此方法可以选出各班第二名学生的名单selectprovince_id,city_idfrom(selectprovince_id,city_id,dense_rank()over(partitionbyprovince_idorderbycity_iddesc)colfromdd_city)twheretcol=22你知道有哪几种索引,每种索引都有什么用处,怎么使用呢?主索引:使用主索引时行数据分配。唯一主索引非唯一主索引:用于用于预先连接两个或多个表,连接索引有主索引,可以有非唯一的主索引,但不能有唯一的主索引。次索引:1)唯一次索引2)非唯一次索引作用:非唯一次索引(NUSI)是Teradata的一种索引,非主索引,索引的列值允许不唯一。典型地,在WHERE子句中使用索引的列,将提高查询性能。可以单独创建。它基于HASH算法。可以创建按值排序的,按值排序的非唯一次索引(ValueOrderedNUSI)的索引子表按数据值存储记录,而不是哈稀值。在按照范围查询时,这种索引非常有用。连接索引:连接索引的目的,是从索引子表提供数据,避免访问基础表。1)多表连接索引2)单表连接索引3)聚合连接索引-预先连接多个表-按照外部键的哈稀值分布单个表的记录-聚合一个或多个表中的列,形成汇总表4程序设计题目1将给定的数转换成固定长度的字符串,不足尾数的应补足0。注意有小数和负数的问题。2给定的url地址,从中取出文件名,例如http:/dingxiaodong86.blog.163.com/blog/getBlog.asp?bid=fks_082066084084,应该取出文件名字为getBlog.asp;5三种范式,1NF,2NF,3NF,之间的联系与区别之处,去范式化有什么好处,什么情况下使用?第一范式:关系模式的所有属性都是原子的,不可分割的单元。也可理解为不是多值属性。缺点:不能排除数据冗余和更新异常等问题,因为其中可能存在部分函数依赖第二范式:关系模式是第一范式且每个非属性都完全依赖于候选码。缺点:也可能存在数据冗余和更新异常等问题,因为其中可能存在传递函数依赖。第三范式:关系模式是第二范式且每个非主属性都非传递依赖于候选码。特点:消费了数据冗余和更新异常等问题。联系:是实符合低一级的范式是进行高一级范式的前提。区别是:1NF、2NF由于存在函数依赖,存在数据冗余和更新异常等问题。3NF消费了前两范式的问题。去范式的好处:提高性能,对于一些特定应用,使用去范式化,保持一定的数据冗余,可以提高性能。因为它可以避免一些连接运算。如常用见的账号与姓名以及余额一起存储,因为这三者经常一起查询。去范式的缺点:限制系统灵活性,增加维护需求,可能降低系统其它部分性能。所以去范式前,一前要彻底估计平衡性,确定这去范式是值得的。下面是一些额外的补充:规范化经常涉及的问题是:冗余、不一致、插入异常或删除异常关于码的说明:超码:超码是一个或多个属性的组合,它可以唯一的标识一个关系模式中的一个元组。候选码:其任意真子集都不能成为超码的超码称为候选码。主码:被数据设计者选中用来标识不同元组的候选码。(主码应该选择那些从不或极少发生变化的值)6Teradata数据库中有那几种索引?怎么使用,举个例子说明。主键和外键是数据逻辑模型中的概念,而索引存在于物理模型中,Teradata将索引分为主索引和次索引。主索引分为唯一主索引(UPI)和不唯一主索引(NUPI),次索引分为唯一次索引(USI)和不唯一次索引(NUSI)。主索引不一定就对应主键。数据的分配是依靠对主索引进行哈希处理来完成的。因此,必须在创建表的同时就确定主索引。尽量选择那些访问频度高的属性作索引。如雇员名和雇员编号号,如果经常使用雇员名来查找数据,那么就应该选择雇员名来作为为主索引,而不是使用雇员编号。1)非唯一次索引:,在where子句中使用索引的列,将提高查询性能。可以使用CREATETABLE语法与表一起创建,也可以使用CREATEINDEX语法在建表后创建。如果索引不再需要了,可以使用DROPINDEX删除索引。如:CREATEINDEX(job_code)ONemployee;创建了非唯一次索引,每个AMP上都建立了一个子表。子表中存储了一些记录,包含每个索引值和基础表记录的记录号(row-id),子表中记录按照索引值的哈稀值排序存储。这样,按照索引值来查找记录非常方便,但是进行范围搜索,索引就没有用了。2)按值排序的非唯一次索引:按值排序的非唯一次索引(ValueOrderedNUSI)的索引子表按数据值存储记录,而不是哈稀值。在按照范围查询时,这种索引非常有用。女如CREATEINDEX(job_code)ORDERBYVALUES(job_code)ONemployee;其使用限制是: 单一的列 属于索引定义中的列 数字列-不允许非数字列 长度不能大于4个字节-INT,SMALLINT,BYTEINT,DATE,DEC是有效的。注:虽然允许DECIMAL数据类型,但长度不能超过4个字节,不能有小数。3)连接索引:连接索引是一种能够提高某些类型查询的性能的索引技术,可以包含一个或多个表中的列。连接索引被创建后,由优化器决定是否使用,用户不能直接访问。连接索引有三种:a. 多表连接索引(预先连接多个表)用于用于预先连接两个或多个表,连接索引有主索引,可以有非唯一的主索引,但不能有唯一的主索引。接值排序的连接索引,可以有效的进行范围查询。排序列的限制与按值排序的非唯一次索引一致。为了提高性能,可以在连接索引中可以创建非唯一的次索引(NUSI)。b. 单表连接索引(按照外部键的哈稀值分布单个表的记录)创建单表连接索引是为了按照非主索引的列重新哈稀或重新分布记录。重新分布的索引表可以是基础表列的子集。如employee(emp_id,emp_naem,dep_id)primaryindex(emp_id),为了与部门表进行连接。可以选取emp_id,dep_id按dep_id作为主索引创建意表连接索引。c. 聚合连接索引(聚合一个或多个表的列,形成汇总表)查询计数、合计或平均值,需要执行聚合。聚合索引类似于前面的连接索引,不同之处在于使用了合计、计数和数据抽取。聚合索引不需要用户维护,当基础表的数据更新后,聚合索引自动刷新。所以,当基础表改变时,会有附加的处理工作。4)顺序文件上有稠密和稀疏索引。还有最常用的B树和Hash索引。B树和Hash索引的区别就是,B树可以动态的保持索引的层次结构,使得存储块维持在半满和全满之间,而Hash索引更为灵活,尤其适用于那些有很多重复关键字的情况。7.三层模型,及作用面试题目1 讲述一下Teradata,就当作我什么都不知道2 Teradata的整个架构设计是怎么样的?后记:1 参加笔试之前一定要先在网上搜索一下改公司的笔试题目,以免吃亏啊。2 面试之前一定要充分准备,尽可能的了解这一职位需要什么样的技术,多掌握一些有好处的。收集三:工作两年了,人有点懒了,想动动给自己找点动力,把工作期间的简历好好写了写了,居然收到Teradata的面试通知,可以是自己平时不努力,面试有点糟糕,也算给自己一点刺激,还需奋斗!把面试题数据库方面的三道题写写1)数据库中角色的作用(还算容易吧)2)写一个SQL,查询出表Tl(idinteger)中id第二大队记录(也还好吧,不过我用了rownum,面试时问不用rownum怎么办,排序结果加一列sequence就好了)3)商店各种商品都有商品编码表,商品按照类别分为了4个级别(classlclass2class3class4)(注意这里的级别是嵌套的如classl是服装,class2是男装或女装),对每天销售的商品进行记录问1:设计一个数据库表示商品和销售信息问2:写sql,统计一周各类货物销售总金额,按照由高到低排序问3:写sql,统计一周级别为classl的商品的销售总金额,列出前20%。第三道题算是有点难度的,但熟悉sql的人也应该不费劲。问3:分位数函数用于将一组数据记录分成大致相等的部分。最常见的分位数据是百分位数据(基于100),也有4分位(基于4),也有三位位(基于3)和10分位数据(基于10),注意缺省的,分位数据的列和值按升序排列。可以使用ORDERBY子句重新排序,聚合函数不能和OLAP函数同时使用。如果要使用聚合函数,可以使用导出表或临时表。分位函数语法是:QUANTILE(quantile_constant,sortlist)quantile_constant:定义分位数大小的常量sortlist:用于分割和排序的列例:如显示销售额的百分位selectproduct_id,sale_sums,quantile(100,sale_sumsasc)(selectproduct_id,sum(amount)fromsaletabagroupby1)ast(product_id,sale_sums)显示结果如:1001 100.0101002 200.01251003 300.33501004
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号