计算机专业就业指导(Java)之基础技术测试篇(一)

基础技术测试篇(一)

1.数据库系统

       数据库在编程中的重要性是毋庸质疑的,任何一种编程语言只要涉及与大量数据进行交互都要连接和操作数据库,所以求职者应该很好地掌握数据库系统方面的问题。这也是求职者在应聘各类程序员职位时最经常被问到的内容。

 1.1数据库基本理论

    例题1:数据库与数据库管理系统有什么区别?

    答案:数据库是以某种数据模型所确定的数据结构方式来组织和存储某个组织(或部门)相互关联的数据集。

                数据库管理系统是一种帮助用户建立、使用、管理和维护数据库的计算机系统软件。或者说,数据库管理系统是开发一个实际应用数据库的工具并支撑其运行的平台。数据库管理系统必须与其管理的数据库的数据模型相一致。

     Tips:很多人往往将数据库和数据库管理系统者两个概念混为一谈,认为数据库就是数据库管理系统。我们可以这样理解,数据库就是存放数据库的仓库,数据库管理系统就是用来管理数据库的。

    例题2:什么是数据模型?

    答案:数据模型是对现实世界数据特征进行抽象的工具,用来描述和处理现实世界中的数据和信息。

    Tips:数据模型要能较真实地模拟真实世界,既要便于人们理解,又要便于在计算机上实现。数据模型主要有数据结构、数据操作、数据完整性规则三部分组成。数据结构描述了组成数据库的基本成分,数据操作描述了对数据结构允许执行的操作集合,数据完整性规则描述了对数据结构所具有的约束和存储规则。

     例题3:什么是关系型数据模型?

       答案:关系型数据模型的数据结构是人们日常事务处理中常见的二维表结构。关系数据模型将数据看成是二维表中通过唯一的行号和列号来确定的一个表中的元素,即关系型数据模型是用二维表的方式来组织、存储和处理数据和信息的。

  Tips:由于二维表结构清晰、简单,易于理解,也易于计算机实现(存储、操作、控制),加上关系数据模型有数学理论基础(集合论、关系代数),因此现在的数据库关系系统都是基于关系数据模型研发的,如SQL Server、Oracle、Sybase、DB2、MySql等。

  例题4:什么是记录和字段?

  答案:二维表中的每一行称为一个记录,描述了关系中一个具体的个体,在数据文件中是一个记录值。二维表中的每一列是一个字段,描述了关系的一个特征。

 Tips:记录是组成数据表的基本单位,数据表中的数据是按行存储的;所保存的每个记录存储在自己的行内,一行就代表了一个记录。数据表都是由一个或多个列组成,这些列构成了一个关系的属性集,通过它可以区别不同的二维表。二维表中每一列的数据属于同一类型。每一列的列名对应关系的属性名,同时对应数据库文件中的字段名。

 例题5:什么是主键(Primary Key)?

 答案:主关键字(primary key)是表中的一个或多个字段(某个列或某几个列),它的值用于惟一地标识表中的某一条记录。

  Tips:数据表中每一行都你应该有可以唯一标识自己的一列或一组列。主键就是用来表示一个特定的行。没有主键,更新或删除表中特定的行很困难,因为没有安全的方法保证操作只涉及相关的行。

   例题6:什么是数据库完整性?

  答案:数据库完整性是指数据库中存储的数据是有意义的或说是正确的。对于基于关系数据模型的数据库来说,就是指对二维表的定义和操作过程要遵循的某些约束条件。

  Tips:数据完整性具体主要包括:(1)实体完整性,指的是每张数据表都必须要有主键,而且表中不允许存在无主键的记录和主键键值相等的记录。(2)参照完整性,指一张数据表中某列的取值受另一张数据表中某列的取值的约束,描述了多张数据表之间的关联关系。(3)用户自定义完整性,指的是针对某一具体应用定义的数据库约束条件,反映某一具体应用所涉及的数据必须满足应用语义的要求。即限制属性的取值类型及范围,防止属性的值与应用语义矛盾。

 例题7:什么是视图?

 答案:视图是一种虚拟的表,具有和基本表相同的功能。可以对视图进行增加、修改、查找操作,视图通常由一个基本表或者多个基本表中的行或列的子集构成。对视图的修改不影响基本表。

 Tips:视图是虚表,在存储时只存储视图的定义,而无需存储对应的数据。而且视图是通过从基本表中查询数据来展现给用户的,那么视图与查询有什么区别呢?视图和查询都是通过由SQL语句组成的,这是两者相同的地方。但是视图和查询有着本质的区别:首先在存储上,视图存储为数据库设计的一部分,但查询不是。其次在排序结果上不同,通过查询语句可以对一个基本表进行排序,而视图则不可以。

 例题8:什么是存储过程?怎么调用存储过程?

 答案:所谓的存储过程,就是指SQL语句和可选控制流语句的预编译集合,以一个名字存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行。存储过程具有强大的编程能力,在其中允许用户声明变量及定义条件执行语句。

 Tips:存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集及返回值,它的优点包括:(1)允许模块化的设计。就是说只需创建一次并将其存储在数据库中,以后在该程序中就可以调用多次。存储过程可由在数据库编程方面有专长的人员创建,可独立于程序源代码而单独修改。(2)执行速度更快。如果某操作需要大量SQL代码或需重复执行,存储过程将比SQL批量代码的执行要快。在创建存储过程时,数据库将对其进行分析和优化,并可在首次执行该存储过程后,直接调用存放在内存中的该存储过程。(3)减少网络流量。在B/S或者C/S结构的程序中,一个需要数百行SQL代码的操作由一条执行存储过程的单独语句就可实现,不需要在网络中发送数百行代码。(4)可使用安全机制控制。执行存储过程的用户必须具有一定的权限,否则将无法调用存储过程。   存储过程唯一的弊端就是移植性差。如果一个项目中的数据库操作全部使用存储过程,当使用的数据库服务器发生改变,例如,从SQL Server转换到Oracle,几乎所有的存储过程都要重写。

 例题9:什么是触发器?有什么作用?

答案:触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等,以便在添加、更新或删除表中的行时保留表之间已定义的关系。可以跟踪数据库内的操作从而不允许未经许可的更新和变化。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到

Tips:触发器有以下优点:(1)触发器是自动的。表中的数据做了修改之后,触发器将立即被激活。(2)触发器可以通过数据库中相关表进行层叠更改,例如,可以在数据表的某列上写入一个删除触发器,以使其他表中的各匹配行采取删除操作。(3)触发器可以强制限制,这些比用CHECK约束所定义的更复杂。与CHECK约束不同的是,触发器可以引用其他表中的列。

 例题10:什么是数据库事务?

答案:数据库事务是被绑定在一起作为一个逻辑工作单元的SQL语句分组。如果其中任何一条语句操作失败,那么整个事务操作就会失败,回滚到操作前的状态,只有全部语句都被执行成功,事务才算执行成功。因此,如果要确保一组SQL语句要么都执行,要么都不执行时,就需要使用数据库事务。

Tips:事务是恢复和并发控制的基本单位。它具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为ACID特性。

原子性(atomicity):一个事务是不可分割的工作单位,事务中包括的所有操作要么都做,要么都不做。

一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

隔离性(isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能相互干扰。

持久性(durablity):持续性也称为永久性(permanence),指的是一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

例题11:索引有什么作用?它有哪些优缺点?

答案:索引是对数据库表中一个或多个列的值进行排序的结构。数据库的搜索引擎能够利用它加速对数据的检索。它的优点:有助于更快地获取信息。其缺点是降低添加、删除、和更新数据的速度。同时也增加了数据库的大小。因此,只有经常查询索引列中的数据时,才需要在表上创建索引。但是在大多数情况下,索引带来的数据检索速度的优势大大超过了它的不足之处。如果应用程序非常频繁地更新数据,或者磁盘空间有限,那么最好限制索引的数量。

Tips:索引提供指针以指向存储在表中指定列中的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似,通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值