日期:2014-05-16  浏览次数:20366 次

Java数据库面试相关

数据库设计和建模必要性?

好的数据库结构有利于:-节省数据的存储空间-能够保证数据的完整性-方便进行数据库应用系统的开发?设计不好的数据库结构将导致-数据冗余、存储空间浪费-内存空间浪费

?

不管数据库的大小和复杂程度如何,可以用下列基本步骤来设计数据库:

–收集信息–标识对象–设计数据模型–标识每个对象 存储的信息类型–标识对象之间的关系

?

?数据模型

是一种标识实体类型及其实体间联系的模型。典型的数据模型由网状模型、层次模型和关系模型。

?

?

什么是规范化

从关系数据库的表中,除去冗余数据的过程称为规范化。?精简数据库的结构?从表中删除冗余的列?标识所有依赖于其它数据的数据

三级范式

???

第一范式的定义: 如果一个表中没有重复组(即行与列的交叉点上只有一个值,而不是一组值),则这个表属于第一范式(常记成1NF)。简而言之:”每一字段只存储一个值”。例如:职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话 和一个家里电话号码)

?

第二范式的定义:如果一个表属于1NF,任何属性只依赖于关键字,则这个表属于第二范式(常记成2NF )。简而言之:必须先符合1NF的条件,且每一行都能被唯一的识别。 将1NF转换成2NF的方法是添加主键。学号,课程名,成绩

?

第三范式的定义:如果一个表属于2NF,且不包含传递依赖性,则这个表是第三范式(常记成3NF)。满足3NF的表中不包含传递依赖。简而言之:没有一个非关键属性依赖于另一个非关键属性。学号,课程号,成绩,学分学号,姓名,所在系,系名称,系地址一、连接各种数据库方式速查表

下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。

1、Oracle8/8i/9i数据库(thin模式)

Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();

String url=”jdbc:oracle:thin:@localhost:1521:orcl”; //orcl为数据库的SID

String user=”test”;

String password=”test”;

Connection conn= DriverManager.getConnection(url,user,password);

2、DB2数据库

Class.forName(“com.ibm.db2.jdbc.app.DB2Driver “).newInstance();

String url=”jdbc:db2://localhost:5000/sample”; //sample为你的数据库名

String user=”admin”;

String password=”";

Connection conn= DriverManager.getConnection(url,user,password);