答辩常见问题总结2答辩常见问题总结2doc.docx
《答辩常见问题总结2答辩常见问题总结2doc.docx》由会员分享,可在线阅读,更多相关《答辩常见问题总结2答辩常见问题总结2doc.docx(14页珍藏版)》请在冰豆网上搜索。
答辩常见问题总结2答辩常见问题总结2doc
安工(答辩结束的问题)
模糊查询代码:
select*from表名where字段like%前台传过来的值%
数据库怎么连的:
通过JDBC-ODBC桥连的
精确查询的代码:
select*from表名where字段=“前台传过来的值”
系统有几个模块?
看自己的功能结构图.
数据库连接和选择:
数据库连接一般都是JDBC-ODBC桥连的
表的主键E-R图的关系
几个表!
看物理设计部分.
什么是数据溢出:
在计算机中,当要表示的数据超出计算机所使用的数据的表示范围时,则产生数据的溢出。
功能的具体内容:
自己看论文.
1.C/S,B/S含义?
区别?
各有什么优缺点?
你应用的是哪一种?
C/S是:
个人电脑/服务器
B/S是:
只要有IE就可以浏览的客户与服务器
举例:
C/Swindows的应用程序Client/Server,就如QQClient:
客户端
B/S=Brower/Server通过网页来实现的应用程序Brower:
浏览器Server:
服务器
B/S是浏览器/服务器端的意思 比如现在的网页游戏
C/S是客户端/服务器端的意思 比如魔兽世界
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。
B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种scrīpt语言(VBscrīpt、Javascrīpt…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
随着Windows98/Windows2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。
C/S与B/S区别:
Client/Server一般是建立在局域网的基础上的。
Browser/Server是建立在广域网的基础上的。
1.硬件环境不同:
C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。
B/S建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备。
信息自己管理。
有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
2.对安全要求不同
C/S一般面向相对固定的用户群,对信息安全的控制能力很强。
一般高度机密的信息系统采用C/S结构适宜。
可以通过B/S发布部分可公开信息。
B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。
3.对程序架构不同
C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。
B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。
比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的。
Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统。
SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。
4.软件重用不同
C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。
B/S对的多重结构,要求构件相对独立的功能。
能够相对较好的重用。
就入买来的餐桌可以再利用,而不是做在墙上的石头桌子。
5.系统维护不同
系统维护是软件生存周期中,开销大,-------重要。
C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级。
升级难。
可能是再做一个全新的系统。
B/S构件组成,方面构件个别的更换,实现系统的无缝升级。
系统维护开销减到最小。
用户从网上自己下载安装就可以实现升级。
6.处理问题不同
C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关。
应该都是相同的系统。
B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的。
与操作系统平台关系最小。
7.用户接口不同
C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。
B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流。
并且大部分难度减低,减低开发成本。
8.信息流不同
C/S程序一般是典型的中央集权的机械式处理,交互性相对低。
B/S信息流向可变化,B-BB-CB-G等信息、流向的变化,更象交易中心。
比如一些聊天软件,是c/s结构的因为满足这种软件的可维护和升级性,满足不同的人群的个性和喜好,自己制定自己的界面,安装自己喜欢的插件,但在b/s结构上实现这一点比较困难,并且可扩展性也不好。
比如说很多人每天上新浪网,只要安装了浏览器就可以了,并不需要了解新浪的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。
软件系统的改进和升级越来越频繁,B/S架构的产品明显体现的更方便的特性。
无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行,如果是异地只需要把服务器连接上网即可立即进行维护和升级,这对人力、时间、费用的节省是相当惊人的。
一个稍微大一点单位来说,系统管理人员如果需要在几百甚至几千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
所以客户机越来越"瘦"而服务器越来越"胖"是将来软件的主流发展方向,这使得升级和维护越来越容易而使用越来越简单
2.JSP、JDBC、ODBC、SQL、B/S、C/S等各种缩写的英文完整表示及含义?
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。
ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
SQL(StructuredQueryLanguage)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
同时也是数据库脚本文件的扩展名。
C/Swindows的应用程序Client/Server,就如QQClient:
客户端
B/S=Brower/Server通过网页来实现的应用程序Brower:
浏览器Server:
服务器
3.你的数据库有几个表?
都是什么?
相互关系?
数据库有几张表看自己的论文上的数据库表(数据库物理设计),数据库设计那章会说明都有几张表,至于关系,主要看主外键的联系.
主键就是每个表的编号,比如,人员信息表中的人员编号就是主键,但是在线路信息表中如果存在人员编号则人员编号在线路信息表里就是外键,线路信息表和人员信息表就是通过人员编号联系起来的.
4.什么是主键?
外键?
数据字典?
意义?
主关键字(主键,primarykey)是被挑选出来,作表的行的惟一标识的候选关键字。
一个表只有一个主关键字。
主关键字又可以称为主键。
主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。
作用:
:
1)保证实体的完整性;
2)加快数据库的操作速度
3)在表中添加新记录时,不允许该值与其他记录的主键值重复。
外键(ForeignKey)
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。
由此可见,外键表示了两个关系之间的联系。
以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。
外键又称作外关键字。
外键的作用:
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。
使两张表形成关联,外键只能引用外表中的列的值!
数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。
主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。
被动数据字典是指修改时必须手工更新其内容的数据字典。
数据字典是一个预留空间,一个数据库,这是用来储存信息数据库本身。
数据字典的组成:
1、数据项
2、数据结构
3、数据流
4、数据存储
5、处理过程
5.E-R图是什么?
E和R分别代表什么?
E-R图也即实体-联系图(EntityRelationshipDiagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
构成E-R图的基本要素是实体型、属性和联系,其表示方法为:
·实体型(Entity):
用矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。
如果是弱实体的话,在矩形外面再套实线矩形。
·属性(Attribute):
用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。
如果是多值属性的话,再椭圆形外面再套实线椭圆。
如果是派生属性则用虚线椭圆表示。
·联系(Relationship):
用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:
1,1:
n或m:
n)。
比如老师给学生授课存在授课关系,学生选课存在选课关系。
如果是弱实体的联系则在菱形外面再套菱形
6.数据库的连接方法有几种?
你用的是哪一种?
关键代码要了解。
有三种,有JDBC直接连接数据库,连接池连接数据,JDBC-ODBC连接数据库.
大家90%用的都是JDBC-ODBC桥连接数据库方法.
JDBC直接连接数据库代码:
publicBean1(){
}
publicsynchronizedConnectiongetcon()throwsException{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:
microsoft:
sqlserver:
//127.0.0.1:
1433;DatabaseName=db_Cars","sa","sa");
returncon;
}
catch(Exceptionex){
ex.printStackTrace();
}
returnnull;
}
JDBC-ODBC连接数据库
publicclassCondb{
StringSd="sun.jdbc.odbc.JdbcOdbcDriver";//建立一个联接机
StringSc="jdbc:
odbc:
Business";//建立一个Odbc源
Connectioncon=null;//Connection对象
ResultSetrs=null;//建立一个记录集
publicCondb(){
try{
Class.forName(Sd);//用classforname方法加载驱动程序类
}catch(java.lang.ClassNotFoundExceptione){//当没有发现这个加载这个类的时候抛出的异常
System.err.println(e);//执行系统的错误打印
}
}
连接池连接数据库:
publicstaticConnectiongetConnection(){
Connectionconn=null;
try{
ContextinitCtx=newInitialContext();
Contextctx=(Context)initCtx.lookup("java:
comp/env");
//获取连接池对象
Objectobj=(Object)ctx.lookup("jdbc/lo");
//类型转换
javax.sql.DataSourceds=(javax.sql.DataSource)obj;
conn=ds.getConnection();
}catch(Exceptione){
e.printStackTrace();
}
returnconn;
}
Java数据库连接,(JavaDatabaseConnectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
JDBC也是SunMicrosystems的商标[1]。
它JDBC是面向关系型数据库的。
在J2SE中,提供了一个称之为JDBC-ODBC桥(JDBC-ODBCBridge[2])的API。
通过ODBC,JDBC-ODBC桥驱动程序可以访问所有支持ODBC的关系型数据库。
与JDBCAPI不同的是,这个驱动程序并不是由Java代码而是由机器码(nativecode)编写,并且不是开放源代码的。
7.会写SQL语句,添加、修改、删除及查询。
SQL语言包含4个部分:
※数据定义语言(DDL),例如:
CREATE、DROP、ALTER等语句。
※数据操作语言(DML),例如:
INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
※数据查询语言(DQL),例如:
SELECT语句。
※数据控制语言(DCL),例如:
GRANT、REVOKE、COMMIT、ROLLBACK等语句。
INSERT陈述式
INSERT陈述式用来在资料表或检视表中插入一列资料。
例如,如果要在Customer_Data资料表中新增一个客户,可使用类似以下的INSERT陈述式:
INSERTINTOCustomer_Data
(customer_id,first_name,last_name,phone)
VALUES(777,'Frankie','Stein','4895873900')
请注意SQL陈述式中第二行的资料行名称清单,清单上资料行名称的次序决定了资料数值将被放在哪个资料行。
举例来说,第一个资料数值将被放在清单列出的第一个资料行customer_id、第二个资料数值放在第二个资料行,依此类推。
由于我们在建立资料表时,定义资料行填入数值的次序与现在相同,因此我们不必特意指定栏位名称。
我们可以用以下的INSERT陈述式代替:
INSERTINTOCustomer_Data
VALUES(777,'Frankie','Stein','4895873900')
注意
如果使用这种形式的INSERT陈述式,但被插入的数值次序上与建立资料表时不同,数值将被放入错误的资料行。
如果资料的型别与定义不符,则会收到一个错误讯息。
UPDATE陈述式
UPDATE陈述式用来更新或改变一列或多列中的值。
例如,一位名称为FrankieStein的客户想要在记录中改变他的姓氏为Franklin,可使用以下UPDATE陈述式:
UPDATECustomer_Data
SETfirst_name="Franklin"
WHERElast_name="Stein"andcustomer_id=777
我们在WHERE子句中加入customer_id的项目来确定其他名称为Stein的客户不会被影响-只有customer_id为777的客户,姓氏会有所改变。
--------------------------------------------------------------------------------
说明
当您使用UPDATE陈述式时,要确定在WHERE子句提供充分的筛选条件,如此才不会不经意地改变了一些不该改变的资料。
--------------------------------------------------------------------------------
DELETE陈述式
DELETE陈述式用来删除资料表中一列或多列的资料,您也可以删除资料表中的所有资料列。
要从Customer_Data资料表中删除所有的列,您可以利用下列陈述式:
DELETEFROMCustomer_Data
或
DELETECustomer_Data
资料表名称前的FROM关键字在DELETE陈述式中是选择性的。
除此之外,这两个陈述式完全相同。
要从Customer_Data资料表中删除customer_id资料行的值小於100的列,可利用下列陈述式:
DELETEFROMCustomer_Data
WHEREcustomer_id<100
SELECT陈述式用来检索资料表中的资料,而哪些资料被检索由列出的资料行与陈述式中的WHERE子句决定。
例如,要从之前建立的Customer_Data资料表中检索customer_id以及first_name资料行的资料,并且只想取出每列中first_name资料行值为Frankie的资料,那麼可以利用以下的SELECT陈述式:
SELECTcustomer_id,first_nameFROMCustomer_Data
WHEREfirst_name="Frankie"
如果有一列符合SELECT陈述式中的标准,则结果将显示如下:
customer_idfirst_name
-------------------------
777Frankie
8.系统测试的意义?
测试的方法?
什么是黑盒测试?
什么是白盒测试?
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
软件测试主要工作内容是验证(verification)和确认(validation),下面分别给出其概念:
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。
(Dotherightthing)
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;
2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程;
3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。
即保证软件以正确的方式来做了这个事件(Doitright)
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
软件测试的分类
从是否关心软件内部结构和具体实现的角度划分
A.白盒测试
B.黑盒测试
C.灰盒测试
从是否执行程序的角度
A.静态测试
B.动态测试。
从软件开发的过程按阶段划分有
A.单元测试
B.集成测试
C.确认测试
D.系统测试
E.验收测试
白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
9.系统有几个模块及子模块要十分清楚。
系统有几个模块主要看功能结构图
10.系统的业务流程,可以看图说。
系统的业务流程主要是简述一下你系统的整个功能,比如管理员登录后可以增加会员,修改会员等等.
11.开发的系统有何特色及不足之处,有何待改进的地方?
系统开发特色可以从系统的功能角度说,比如系统实现上传图片功能,上传文件,下载文件功能,系统采用了B/S架构,系统采用了Struts框架等.
需要改进的地方主要从系统的界面设计(比如界面不够美观),系统功能上不够完善(检索条件太少),技术方面没有采用局部刷新技术即ajax技术(节省服务器资源)等
12.范式理论?
你做到了第几范式?
构造数据库必须遵循一定的规则。
在关系数据库中,这种规则就是范式。
范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求,即满足不同的范式。
目前关系数据库有六种范式:
第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。
满足最低要求的范式是第一范式(1NF)。
在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次