数据库之逻辑结构设计如何实现

数据库之逻辑结构设计如何实现,第1张

逻辑结构设计概念结构设计的结果是E-R模型,但是它独立于任何一种数据模型,也独立于任何一个具体的DBMS。为建立用户所需的数据库,需要把概念模型转换成为某个具体的DBMS所支持的数据模型。

数据库逻辑结构设计的任务是将概念模型转换成DBMS支持的数据模型。

逻辑结构设计的步骤:

1将概念模型转换成为一般的关系、网状、层次模型;

2将转换来的模型向特定的DBMS支持的数据模型转换;

3对数据模型进行优化

物理独立性物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即,数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。逻辑独立性逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即,当数据的逻辑结构改变时,用户程序也可以不变。

用JAVA连接数据库主要有两种方式,一是用JDBC-ODBC桥来连接,二是用相关厂商提供的相应驱动程序来连接,首先谈谈第一种连接。

JDBC-ODBC桥接器是用JdbcOdbcClass和一个用于访问ODBC驱动程序的本地库实现的。对于WINDOWS平台,该本地库是一个动态连接库DLL(JDBCODBCDLL)。

由于JDBC在设计上与ODBC很接近。在内部,这个驱动程序把JDBC的方法映射到ODBC调用上,这样,JDBC就可以和任何可用的ODBC驱动程序进行交互了。这种桥接器的优点是,它使JDBC目前有能力访问几乎所有的数据库。通行方式如图所示:

应用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC层---数据源

具体 *** 作方法为:

首先打开控制面板的管理工具,打开数据源(ODBC),在用户DSN里面添加数据源(即你要连接的数据库的名字),在这里假定连接SQL SERVER 2000的GoodsSupply数据库。名称填写你要连接的数据库的名称(GoodsSupply),然后逐步设置,如果选用了使用SQL-SERVER密码认证的话,就要输入相应的用户名及密码连接到数据库。一路下一步设置完成。

在JAVA里面编写程序进行测试,在这里我的程序是让用户输入任意的表名与与列名,把该列的所有数据输出。源代码如下:

import javaioBufferedReader;

import javaioInputStreamReader;

import javasql;

public class ODBCBridge {

public static void main(String[] args) {

String url="jdbc:odbc:GoodsSupply";

Statement sm=null;

String command=null;

ResultSet rs=null;

String tableName=null;

String cName=null;

String result=null;

BufferedReader input=new BufferedReader(new InputStreamReader(Systemin));

try {

try {

ClassforName("sunjdbcodbcJdbcOdbcDriver"); //加载驱动

}catch(ClassNotFoundException e){

Systemoutprintln("Can not load Jdbc-Odbc Bridge Driver");

Systemerrprint("ClassNotFoundException:");

Systemerrprintln(egetMessage());

}

Connection con=DriverManagergetConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000认证

DatabaseMetaData dmd=congetMetaData(); //DMD为连接的相应情况

Systemoutprintln("连接的数据库:"+dmdgetURL());

Systemoutprintln("驱动程序:"+dmdgetDriverName());

sm=concreateStatement();

Systemoutprintln("输入表名");

tableName=inputreadLine();

while(true) {

Systemoutprintln("输入列名(为空时程序结束):");

cName=inputreadLine();

if(cNameequalsIgnoreCase(""))

break;

command="select "+cName+" from "+tableName;

rs=smexecuteQuery(command); //执行查询

if(!rsnext())

Systemoutprintln("表名或列名输入有误");

else {

Systemoutprintln("查询结果为:");

do

{

result=rsgetString(cName);

//数据库语言设置为中文,不用转换编码

//result=new String(resultgetBytes("ISO-8859-1"),"GB2312");

Systemoutprintln(result);

}while(rsnext());

}

}

}catch(SQLException ex) {

Systemoutprintln("SQLException:");

while(ex!=null) {

Systemoutprintln("Message:"+exgetMessage());

ex=exgetNextException();

}

}catch(Exception e) {

Systemoutprintln("IOException");

}

}

}

在数据库设计的需求分析阶段,参与需求分析的主要人员是分析人员和用户,由于数据库应用系统是面向企业和部门的具体业务,分析人员一般并不了解,而同样用户也不会具有系统分析的能力,这就需要双方进行有效的沟通,使得设计人员对用户的各项业务了解和熟悉,进行分析和加工,将用户的业务转换成为设计人员所需要的信息组织,即以规范化的方式进行整理,形成对业务流程描述的文档数据流图和数据描述的文档数据字典。

这个很简单,如果条件允许,可以使用标准的SQL Server,方便管理,如果不允许,可以使用SQl Server Experss,两者在数据 *** 作上都是一样的,文件在数据库中作为数据列的形式存在,包括文件名称,文件扩展名,Mime类型,文件的二进制实体和文件的注释,然后通过程序对文件进行读取,同时可以加上权限控制某个或某些人对某个文件是否有访问的权利,也可以同时将一个文件开放给某些人或某些组进行访问。。。

你大致需要这几个表:

文件表:上传的文件存放地,包含文件的信息

人员表:人员登陆进系统的基本信息

部门表:部门的信息

人员-部门映射表:将人员与部门建立多对多的关系

人员-文件映射表:记录人员可以访问的文件列表

部门-文件映射表:记录部门可以访问的文件列表

如果是B/S结构的话,用TextBox等验证人员的登陆,用GridView显示文件的列表,并提供下载连接,用FileUpload上传文件到数据库并控制访问。。。大致就是这样的路子。。。

是数据的独立性吧

数据独立性分为逻辑独立性和物理独立性物理独立性是指内模式改变时,概念模式保持不变,逻辑独立是指概念模式改变时,外模式不变,从而使应用程序保持不变当内模式改变时,DBMS只要通过改变概念模式到内模式映射,即可使概念模式保持不变,从而实现了数据的物理独立性而逻辑独立的实现正好相反

以上就是关于数据库之逻辑结构设计如何实现全部的内容,包括:数据库之逻辑结构设计如何实现、什么是数据与程序的物理独立性和逻辑独立性,以及在数据库中如何实现、Java中如何实现与后台数据库的连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9330758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存