❶ 資料庫應用程序
Access是一種桌面資料庫,只適合數據量少的應用,在處理少量數據和單機訪問的資料庫時是很好的,效率也很高。但是它的同時訪問客戶端不能多於4個。access資料庫有一定的極限,如果數據達到100M左右,很容易造成伺服器iis假死,或者消耗掉伺服器的內存導致伺服器崩潰。
sql Server是基於伺服器端的中型的資料庫,可以適合大容量數據的應用,在功能上管理上也要比Access要強得多。在處理海量數據的效率,後台開發的靈活性,可擴展性等方面強大。因為現在資料庫都使用標準的SQL語言對資料庫進行管理,所以如果是標准SQL語言,兩者基本上都可以通用的。SQL Server還有更多的擴展,可以用存儲過程,資料庫大小無極限限制。
oracle 主要是一些大公司用的,其功能什麼的非常強大的,但一般的產品什麼的沒人用oracle資料庫的,因為價格太昂貴了,不過一些大公司自己內部用的。
程序不是要重寫是要改動程序訪問資料庫的部分
因為資料庫內部的結構不一樣導致他們對外界的介面不一樣.就好比兩個方法的參數不一樣,你要調用方法的時候肯定會傳不同的參數.
所以你要換資料庫的時候 就要 改動你的資料庫連接字元串(或者類)
❷ 常用的資料庫軟體有哪些
常用的資料庫軟體有:
1、Oracle
70年代 一間名為Ampex的軟體公司,正為中央情報局設計一套名叫Oracle的資料庫,Ellison是程序員之一。Oracle是世界領先的信息管理軟體開發商,因其復雜的關系資料庫產品而聞名。Oracle資料庫產品為財富排行榜上的前1000家公司所採用,許多大型網站、銀行、證券、電信等都選用了Oracle系統。
2、SQL Server
SQLServer(Structured Query Language Server) 是一個關系資料庫管理系統(DBMS)。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發的,於1988 年推出了第一個OS/2 版本。
在Windows NT 推出後,Microsoft與Sybase 在SQL Server 的開發上就分道揚鑣了,Microsoft 將SQL Server 移植到Windows NT系統上,專注於開發推廣SQL Server 的Windows NT 版本。
3、ACCESS
Access 是微軟公司推出的基於Windows的桌面關系資料庫管理系統(RDBMS,即Relational Database Management System),是Office系列應用軟體之一。
它提供了表、查詢、窗體、報表、頁、宏、模塊7種用來建立資料庫系統的對象;提供了多種向導、生成器、模板,把數據存儲、數據查詢、界面設計、報表生成等操作規范化;為建立功能完善的資料庫管理系統提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分數據管理的任務。
4、DB2
IBM公司研製的一種關系型資料庫系統。DB2主要應用於大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境,應用於OS/2.Windows等平台下。
DB2提供了高層次的數據利用性、完整性、安全性、可恢復性,以及小規模到大規模應用程序的執行能力,具有與平台無關的基本功能和SQL命令。
5、MySQL
MySQL是一個小型關系型資料庫管理系統,開發者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。
而2009年,SUN又被Oracle收購。對於Mysql的前途,沒有任何人抱樂觀的態度。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。
(2)處理資料庫數據的程序擴展閱讀:
Visual FoxPro原名FoxBase,最初是由美國Fox Software公司於1988年推出的資料庫產品,在DOS上運行,與xBase系列兼容。
FoxPro是FoxBase的加強版,最高版本曾出過2.6。之後於1992年,Fox Software公司被Microsoft收購,加以發展,使其可以在Windows上運行,並且更名為 Visual FoxPro。
FoxPro比FoxBASE在功能和性能上又有了很大的改進,主要是引入了窗口、按紐、列表框和文本框等控制項,進一步提高了系統的開發能力。
網路-資料庫軟體
❸ 資料庫數據處理及升級程序的注意事項有哪些
不同的資料庫的處理是不同的,有的資料庫是你執行完程序,索引就更新完成了,有的資料庫是自己評測系統資源空閑的時候做自身的更新(比如你在往有索引的表中增加了大量的數據,數據很快被載入進去了,但是索引可能是沒有被維護的,這個資料庫就會在系統資源空餘的時間來維護索引的)。但是可以確定的是你為一個欄位創建索引的時間就是你執行程序的時間(是你單獨創建的索引,並不是資料庫通用維護的索引)你可以測試一下的,你創建完索引後看看查庫的速度是否有提升,就是最好的驗證了。
❹ 資料庫系統中的幾種架構及處理方式
主從式結構
是指一個主機帶多個終端的多用戶結構。在這種結構中,資料庫系統,包括:應用程序、DBMS、數據,都集中存放在主機上.所有處理任務都由主機來完成,各個用戶通過主機的終端並發地存取資料庫,共享數據資源.
主從式結構的優點是簡單,數據易於管理與維護。缺點是當終端用戶數目增加到一定程度後,主機的任務會過分繁重,形成瓶頸,從而使系統性能大幅度下降。另外當主機出現故障時,整個系統都不能使用,因此系統的可靠性不高。
集中式架構
是一種遠程桌面控制技術,使用此技術,遠程用戶能夠使用任何類型的終端系統,通過任何類型的網路連接,使用遠程伺服器上的應用程序。用戶甚至能夠使用同一個終端系統訪問甚至遠程多個不同平台、不同網路協議伺服器上的多個應用,這些應用被集成在一個訪問界面中,操作簡便。
C/S架構
(Client/Server或客戶/伺服器模式):Client和Server常常分別處在相距很遠的兩台計算機上,Client程序的任務是將用戶的要求提交給Server程序,再將Server程序返回的結果以特定的形式顯示給用戶;Server程序的任務是接收客戶程序提出的服務請求,進行相應的處理,再將結果返回給客戶程序。
C/S (Client/Server)結構,即大家熟知的客戶機和伺服器結構。它是軟體系統體系結構,通過它可以充分利用兩端硬體環境的優勢,將任務合理分配到Client端和Server端來實現,降低了系統的通訊開銷。目前大多數應用軟體系統都是Client/Server形式的兩層結構,由於現在的軟體應用系統正在向分布式的Web應用發展,Web和Client/Server 應用都可以進行同樣的業務處理,應用不同的模塊共享邏輯組件;因此,內部的和外部的用戶都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展出新的應用系統。這也就是目前應用系統的發展方向。
傳統的C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟體支持。由於沒能提供用戶真正期望的開放環境,C/S結構的軟體需要針對不同的操作系統系統開發不同版本的軟體, 加之產品的更新換代十分快,已經很難適應百台電腦以上區域網用戶同時使用。而且代價高, 效率低。
C/S結構的優點
C/S結構的優點是能充分發揮客戶端PC的處理能力,很多工作可以在客戶端處理後再提交給伺服器。對應的優點就是客戶端響應速度快。缺點主要有以下幾個:
只適用於區域網。而隨著互聯網的飛速發展,移動辦公和分布式辦公越來越普及,這需要我們的系統具有擴展性。這種方式遠程訪問需要專門的技術,同時要對系統進行專門的設計來處理分布式的數據。
客戶端需要安裝專用的客戶端軟體。首先涉及到安裝的工作量,其次任何一台電腦出問題,如病毒、硬體損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統軟體升級時,每一台客戶機需要重新安裝,其維護和升級成本非常高。
對客戶端的操作系統一般也會有限制。可能適應於Win98, 但不能用於win2000或Windows XP。或者不適用於微軟新的操作系統等等,更不用說Linux、Unix等。
❺ 如何利用ACCESS資料庫進行數據處理
請參考下列步驟:
安裝MS OFFICE ACCESS程序;
創建新空白資料庫(也可利用內置資料庫模板快速創建含可用資料庫對象的資料庫);
根據業務需要創建數據表並建立表間關系;
輸入、導入數據;
利用資料庫各種對象如表、查詢、窗體、報表、宏、模塊、頁等維護、處理、加工和使用數據。
ACCESS既可以作為資料庫應用程序後台使用,也可以作為前台使用,另外ACCESS除了是資料庫管理系統外還是資料庫應用程序開發平台,利用其自帶開發工具VBA(VB的宏語言版本)非專業人員也能開發出性能優越的資料庫應用程序。
❻ 做資料庫應用程序的過程是什麼
首先是設計資料庫:1:需求分析,邏輯設計,物理設計等
然後就是前端的開發:輸入輸出等
❼ java程序是怎麼操作資料庫的(高分懸賞)
Java 實現連接sql server 20002007-12-16 13:28:00.0
第一種:通過ODBC連接資料庫
JAVA語言的跨平台的工作能力(Write Once ,Run Anywhere)、優秀的圖像處理能力(我相信現在沒有那種語言可以超過JAVA在網路上的圖形處理能力)、網路通信功能、通過JDBC資料庫訪問技術等等,讓我們誰都不可否認JAVA語言是SUN公司對於計算機界的一個巨大的貢獻。筆者可以描述這樣一個場景:有一天你上網完全可以不用IE 或者NETSCAPE,上網就像是玩游戲,你可以獲得游戲那麼精美的圖像和互動的感覺,如果你玩過UO,也許你就知道那種感覺了,但是JAVA做成的東西一定會超過UO的,因為不單單是游戲,也不是單單是瀏覽器,如果你願意(要你有錢,有時間,有優秀的JAVA人才)你可以把所有的這一切用Java完全集成出來!!!我不是誇大JAVA的功能,大家可以訪問一下http://www.simchina.net的那個社區程序,你就能找到一種感覺了:相信我沒有說什麼假話 。好了,不說廢話了,現在我向你介紹JAVA的資料庫訪問技術----JDBC資料庫訪問技術(你可千萬不要搞成ODBC了喲!)。
JDBC技術事實上是一種能通過JAVA語言訪問任何結構化資料庫的應用程序介面(API)(Sun這樣說的,我也不知道是不是真的),而且現在的JDBC 3.0據Sun說也能訪問Execel等電子表格程序!
JDBC對於資料庫的訪問有四種方式,我們這里只是介紹兩種:
第一種是通過ODBC做為「橋」(Bridge)對資料庫訪問,第二種是直接對資料庫訪問。
我們先來看看第一種JDBC<-->ODBC訪問的流程:
JDBC Driver Mannager->JDBC<->ODBC橋->ODBC->資料庫客戶機驅動庫->資料庫伺服器->返回查詢結果,在這種訪問中值的我們注意的是雖然JAVA是"Write Once ,Run Anywhere",但是如果通過這種訪問的話,需要客戶端必須設置ODBC和有相應的資料庫客戶機的驅動,當你看了下面的另外一個流程的時候或許你會想:明明下一種更方面,為什麼還要有這個東西的產生!呵呵,因為,未必所有的資料庫伺服器提供商都提供下面的JDBC驅動程序(給JDBC訪問提供相應的介面),所以就有了JDBC<->ODBC Bridge。
接著再讓我們來看看第二種訪問流程:
JDBC Driver Mannager->局部JDBC驅動->客戶端資料庫->資料庫伺服器->返回查詢結果,這種訪問事實上是轉換JDBC調用為相應的資料庫(Oracle, Sybase, Informix, DB2, 和其他的資料庫資料庫管理系統)的客戶端API調用(這么說,不知道大家能不能懂,說簡單點就好像ASP不是通過DSN對資料庫訪問而是通過OLEDB訪問,說道這里我還是不知道大家能不能明白我的意思。哎呀,不要扔雞蛋嘛!),這種方式的訪問需要相應的資料庫提供商提供相應的JDBC驅動程序,但是有一種好處,可以獨立於odbc用於可以隨處可Run的客戶端的瀏覽器中的Applet程序。
我們下面將給大家一個通過JDBC-ODBC橋資料庫訪問的實例,但是在看下面的事例前我想問大家一次:JDK1.3裝了嗎?資料庫驅動裝了嗎(我使用的是SQLserver)?你該沒有使用Linux吧?雖然java支持Linux,但是老兄我可沒有使用Linux喲(這同JAVA的Write Once ,Run Anywhere沒有關系),由於使用了運行於Win下面的ODBC,我建議你看看這篇東西http://www.aspcn.com/showarticle.asp?id=112,否則你要是有了問題,出不了結果那豈不是要怪我(不過欲加之罪,何患無吃... ...),冤枉呀!
哎呀,說了這么多的廢話,還是讓我們來看看到底JDBC的調用吧!既然我們是通過odbc訪問資料庫,所以這個odbc是跑不了的,我們先來設置你的odbc:打開你的odbc數據源->選擇系統dsn(Click加新的dsn-)->接下來輸入選擇資料庫類型、輸入dsn名:、選擇伺服器、連接資料庫的方式、輸入資料庫的登陸用戶和密碼->測試連接,如果測試成功的話,那麼你的dsn就建立好了,我的dsn名為Sqlserver.使用的是sqlserver7.0,以 「sa」登陸,密碼為空。這些東西都是後面要用道的!
好了下面讓我們來看程序代碼: (該代碼已經通過運行)
//###########################################################
//代碼開始
//###########################################################
import java.sql.*;
//載入java數據連接包,java基本所有的資料庫的調用的都在這個東西裡面
public class InsertCoffees {
public static void main(String args[]) {
String url = "jdbc:odbc:sqlserver";
//取得連接的url名,注意sqlserver是dsn名
Connection con;
//實例化一個Connection對象
Statement stmt;
String query = "select * from col_link";
//選擇所有的Col_link表中的數據輸出
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//載入jdbc-odbc橋驅動
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
//載入jdbc-odbc橋錯誤
System.err.println(e.getMessage());
//其他錯誤
}
try {
con = DriverManager.getConnection(url, "sa", "");
//資料庫連接
stmt = con.createStatement();
//Create 一個聲明
stmt.executeUpdate("CREATE TABLE col_link (sitename varchar (20) NULL ,siteurl varchar (50) NULL) ");
//執行了一個sql語句生成了一個表col_link的表
stmt.executeUpdate("insert into col_link values('ASP中華網','http://www.aspcn.com')");
stmt.executeUpdate("insert into col_link values('永遠到底有多遠','http://xuankong.com')");
//執行一個insert into語句
stmt.executeUpdate("update col_link set siteurl='http://www.aspcn.com/xuankong/xuankongt.jpg' where siteurl='http://xuankong.com'");
//執行一個update語句,更新資料庫
ResultSet rs = stmt.executeQuery(query);
//返回一個結果集
System.out.println("Col_link表中的數據如下(原始數據)");
//下面的語句使用了一個while循環列印出了col_link表中的所有的數據
System.out.println("站點名 "+" "+"站點地址");
System.out.println("---------------"+" "+"----------------");
while (rs.next()) {
String s = rs.getString("sitename");
String f = rs.getString("siteurl");
//取得資料庫中的數據
System.out.println(s + " " + f);
/*String t = rs.getString(1);
String l = rs.getString(2);
System.out.println(t + " " + l);*/
/*jdbc提供了兩種方法識別欄位,一種是使用getXXX(注意這里的getXXX表示取不同類型欄位的不同的方法)獲得欄位名,
第二種*是通過欄位索引,在這里我把第二種方法注釋了*/
/*你可以訪問這個連接獲得getxxx的用法:http://java.sun.com/docs/books/tutorial/jdbc/basics/_retrievingTable.html*/
}
stmt.close();
con.close();
//上面的語句關閉聲明和連接
} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
//顯示資料庫連接錯誤或者查詢錯誤
}
}
}
//###########################################################
//代碼結束
//###########################################################
在上面這個程序中我想你展示了如何使用JDBC-ODBC連接資料庫,使用SQL語句生成一個表,使用SELECT、INSERT 、UPDATE語句取的、插入和更新一個表中的數據,如何通過欄位名和欄位索引訪問資料庫中的東東!我希望你能從上面的代碼真正的學習到一些東西!
發揮你的想像力,設想一下JAVA到底,比如說可以通過資料庫做一個不需要GUI(圖形用戶界面)的聊天室,呵呵,感覺起來就像在DOS環境下打字的聊天室!哈哈!
最後需要說的是筆者的調試上面程序的環境:WIN2000 , JDK1.3,MS SQLSERVER編輯軟體:EDITPLUS 2.01a(這最後的東西可不是廢話,雖然早就了一些專業的JAVA開發工具,但是筆者建議JAVA初學者使用文本軟體開發JAVA程序)
第二種:直接用jdbc訪問資料庫
(1) 該實例已經運行通過
jsp連接Sql Server7.0/2000資料庫
testsqlserver.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs為你的資料庫的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一個欄位內容為:<%=rs.getString(1);%>
您的第二個欄位內容為:<%=rs.getString(2);%>
<%}%>
<%out.print("資料庫操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
(2)java訪問sqlserver伺服器
第一步:安裝jdbc
點擊SQL Server for JDBC驅動程序安裝程序setup.exe(可以到微軟網站下載 http://msdn.microsoft.com/library/default.asp?rul=/downloads/list/sqlserver.asp下載)
第二步:設置系統變數classpath
假設SQL Server for JDBC 驅動程序安裝在d:\jdbc\,則classpath應該設置如下:
classpath:=.;…;d:\jdbc\lib; d:\jdbc\lib\mssqlserver.jar; d:\jdbc\lib\msutil.jar; d:\jdbc\lib\msbase.jar;
注意:設置時要在最前面的點號和分號
第三步:編輯java程序並且運行
實例1如下:
//import com.microsoft.*;
//注意:在java與sql server 連接時不需要這個包,其他書上說這個包是必需的,這個問題有待進一步討論
import java.sql.*;
import java.net.URL;
class insert
{
public static void main(String[] args)
{
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=northwind";
String query="select * from categories";
String query1="insert categories values(10,'Hanbao','Sweet')";
String query2="insert categories values(11,'Naicha','Coffee taste')";
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection(url,"sa","739555");
Statement stmt=con.createStatement();
stmt.executeUpdate(query1);
stmt.executeUpdate(query2);
stmt.close();
con.close();
}
catch(SQLException ex)
{
}
catch(java.lang.Exception ex)
{
ex.printStackTrace();
}
}
}
實例2如下:
//import com.microsoft.*;
//注意:在java與sql server 連接時不需要這個包,其他書上說這個包是必需的,這個問題有待進一步討論
import java.sql.*;
import java.net.URL;
class java2sqlserver
{
public static void main(String[] args)
{
String url="jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=739555;DatabaseName=northwind";
String query="Select * From Categories";
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//DriverManager.setLogStream(System.out);
Connection con=DriverManager.getConnection(url);
checkForWarning(con.getWarnings());
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(query);
dispResultSet(rs);
rs.close();
stmt.close();
con.close();
}
catch(SQLException ex)
{
System.out.println(ex.toString()+"----SQLException caught----");
while(ex!=null)
{
System.out.print("SQLState:"+ex.getSQLState());
System.out.print("Message:"+ex.getMessage());
System.out.print("Vendor:"+ex.getErrorCode());
ex=ex.getNextException();
System.out.println("");
}
}
catch(java.lang.Exception ex)
{
ex.printStackTrace();
}
}
private static boolean checkForWarning(SQLWarning warn)
{
boolean rc=false;
if(warn!=null)
{
System.out.println("----Warning----");
rc=true;
while(warn!=null)
{
System.out.print("SQLState:"+warn.getSQLState());
System.out.print("Message:"+warn.getMessage());
System.out.print("Vendor:"+warn.getErrorCode());
System.out.println("");
warn=warn.getNextWarning();
}
}
return rc;
}
private static void dispResultSet(ResultSet rs) throws SQLException
{
int i;
ResultSetMetaData rsmd=rs.getMetaData();
int numCols=rsmd.getColumnCount();
for(i=1;i<=numCols;i++)
{
if(i>1) System.out.print(", ");
System.out.print(rsmd.getColumnLabel(i));
}
System.out.println("");
boolean more=rs.next();
while(more)
{
for(i=1;i<numCols;i++)
{
if(i<1) System.out.print(", ");
System.out.println(rs.getString(i));
}
System.out.println("");
more=rs.next();
}
}
//System.out.println("Hello World!");
}
以上兩個實例筆者已經通過運行!
❽ 常見的資料庫管理系統有哪些
IBM 的DB2作為關系資料庫領域的開拓者和領航人,IBM在1977年完成了System R系統的原型,1980年開始提供集成的資料庫伺服器—— System/38,隨後是SQL/DSforVSE和VM,其初始版本與SystemR研究原型密切相關。DB2 forMVSV1 在1983年推出。該版本的目標是提供這一新方案所承諾的簡單性,數據不相關性和用戶生產率。1988年DB2 for MVS 提供了強大的在線事務處理(OLTP)支持,1989 年和1993 年分別以遠程工作單元和分布式工作單元實現了分布式資料庫支持。最近推出的DB2 Universal Database 6.1則是通用資料庫的典範,是第一個具備網上功能的多媒體關系資料庫管理系統,支持包括Linux在內的一系列平台。
2. OracleOracle 前身叫SDL,由Larry Ellison 和另兩個編程人員在1977創辦,他們開發了自己的拳頭產品,在市場上大量銷售,1979 年,Oracle公司引入了第一個商用SQL 關系資料庫管理系統。Oracle公司是最早開發關系資料庫的廠商之一,其產品支持最廣泛的操作系統平台。目前Oracle關系資料庫產品的市場佔有率名列前茅。
3. InformixInformix在1980年成立,目的是為Unix等開放操作系統提供專業的關系型資料庫產品。公司的名稱Informix便是取自Information 和Unix的結合。Informix第一個真正支持SQL語言的關系資料庫產品是Informix SE(StandardEngine)。InformixSE是在當時的微機Unix環境下主要的資料庫產品。它也是第一個被移植到Linux上的商業資料庫產品。
4. SybaseSybase公司的創始人之一Bob Epstein 是Ingres 大學版的主要設計人員。公司的第一個關系資料庫產品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 資料庫體系結構的思想,並率先在Sybase SQLServer 中實現。
5. SQL Server1987 年,微軟和IBM合作開發完成OS/2,IBM 在其銷售的OS/2 ExtendedEdition 系統中綁定了OS/2Database Manager,而微軟產品線中尚缺少資料庫產品。為此,微軟將目光投向Sybase,同Sybase 簽訂了合作協議,使用Sybase的技術開發基於OS/2平台的關系型資料庫。1989年,微軟發布了SQL Server 1.0 版。
❾ 數表的程序化處理有哪幾種方法
處理工程數據一般有三種方法:數據程序化處理、數據文件化處理、
資料庫處理。
數據程序化處理的優點是:充分將數據與程序結合在了一起。其缺點是數據無法共享,增加了程序的長度。
數據文件化處理的優點是:數據與程序作了初步的分離,實現了有條件的共享。其缺點有四點:①文件只能表示事物而不能表示事物之間的聯系;②文件較長;③數據與應用程序之間仍有依賴關系;④安全性和保密性較差。
資料庫處理的優點是:①數據共享,②數據集中,安全性和保密性好。③數據結構化,既表示了事物,又表示了事物之間的聯系。其缺點是:數據與應用程序無關聯。
❿ 使用AD0.NET開發資料庫應用程序的開發流程,一般流程主要分為哪幾個步驟
資料庫應用系統的開發是一項軟體工程。一般可分為以下幾個階段:
1.規劃
2.需求分析
3.概念模型設計
4. 邏輯設計
5.物理設計
6.程序編制及調試
7.運行及維護。
這些階段的劃分目前尚無統一的標准,各階段間相互聯接,而且常常需要回溯修正。
在資料庫應用系統的開發過程中,每個階段的工作成果就是寫出相應的文檔。每個階段都是在上一階段工作成果的基礎上繼續進行,整個開發工程是有依據、有組織、有計劃、有條不紊地展開工作。
1.規劃
規劃的主要任務就是作必要性及可行性分析。
在收集整理有關資料的基礎上,要確定將建立的資料庫應用系統與周邊的關系,要對應用系統定位,其規模的大小、所處的地位、應起的作用均須作全面的分析和論證。
明確應用系統的基本功能,劃分資料庫支持的范圍。分析數據來源、數據採集的方式和范圍,研究數據結構的特點,估算數據量的大小,確立數據處理的基本要求和業務的規范標准。
規劃人力資源調配。對參與研製和以後維護系統運作的管理人員、技術人員的技術業務水平提出要求,對最終用戶、操作員的素質作出評估。
擬 定設備配置方案。論證計算機、網路和其他設備在時間、空間兩方面的處理能力,要有足夠的內外存容量,系統的響應速度、網路傳輸和輸入輸出能力應 滿足應用需求並留有餘量。要選擇合適的OS,DBMS和其它軟體。設備配置方案要在使用要求、系統性能、購置成本和維護代價各方面綜合權衡。
對系統的開發、運行、維護的成本作出估算。預測系統效益的期望值。
擬定開發進度計劃,還要對現行工作模式如何向新系統過渡作出具體安排。
規劃階段的工作成果是寫出詳盡的可行性分析報告和資料庫應用系統規劃書。內容應包括:系統的定位及其功能、數據資源及數據處理能力、人力資源調配、設備配置方案、開發成本估算、開發進度計劃等。
可行性分析報告和資料庫應用系統規劃書經審定立項後,成為後續開發工作的總綱。
2.需求分析
需求分析大致可分成三步來完成。
(1) 需求信息的收集, 需求信息的收集一般以機構設置和業務活動為主幹線,從高層中層到低層逐步展開
(2) 需求信息的分析整理, 對收集到的信息要做分析整理工作。數據流圖(DFD, data flow diagram)是業務流程及業務中數據聯系的形式描述。圖4.1是一個簡單的DFD 示例。
數據字典(DD, data dictionary)詳細描述系統中的全部數據。
數據字典包含以下幾個部分。
· 數據項:是數據的原子單位。
· 數據組項:由若干數據項組成。
· 數據流:表示某一數據加工過程的輸入/輸出數據。
· 數據存儲:是處理過程中要存取的數據。
· 數據加工過程 數據加工過程的描述包括:數據加工過程名、說明、輸入、輸出、加工處理工作摘要、加工處理頻度、加工處理的數據量、響應時間要求等。
數據流圖既是需求分析的工具,也是需求分析的成果之一。數據字典是進行數據收集和數據分析的主要成果。
(3) 需求信息的評審. 開發過程中的每一個階段都要經過評審,確認任務是否全部完成,避免或糾正工作中出現的錯誤和疏漏。聘請項目外的專家參與評審,可保證評審的質量和客觀性。
評審可能導致開發過程回溯,甚至會反復多次。但是,一定要使全部的預期目標都達到才能讓需求分析階段的工作暫告一個段落.
需求分析階段的工作成果是寫出一份既切合實際又具有預見的需求說明書,並且附以一整套詳盡的數據流圖和數據字典。
3.概念模型設計
概念模型不依賴於具體的計算機系統,他是純粹反映信息需求的概念結構。
建模是在需求分析結果的基礎上展開,常常要對數據進行抽象處理。常用的數據抽象方法是『聚集』和『概括』。
ER方法是設計概念模型時常用的方法。用設計好的ER圖再附以相應的說明書可作為階段成果
概念模型設計可分三步完成。
(1) 設計局部概念模型
① 確定局部概念模型的范圍
② 定義實體
③ 定義聯系
④ 確定屬性
⑤ 逐一畫出所有的局部ER圖,並附以相應的說明文件
(2) 設計全局概念模型
建立全局ER圖的步驟如下:
① 確定公共實體類型
② 合並局部ER圖
③ 消除不一致因素
④ 優化全局ER圖
⑤ 畫出全局ER圖,並附以相應的說明文件。
(3) 概念模型的評審
概念模型的評審分兩部分進行
第一部分是用戶評審。
第二部分是開發人員評審。
4.邏輯設計
邏輯設計階段的主要目標是把概念模型轉換為具體計算機上DBMS所支持的結構數據模型。
邏輯設計的輸入要素包括:概念模式、用戶需求、約束條件、選用的DBMS的特性。
邏輯設計的輸出信息包括:DBMS可處理的模式和子模式、應用程序設計指南、物理設計指南。
(1) 設計模式與子模式
關系資料庫的模式設計可分四步完成。
① 建立初始關系模式
② 規范化處理
③ 模式評價
④ 修正模式
經過多次的模式評價和模式修正,確定最終的模式和子模式。
寫出邏輯資料庫結構說明書。
(2) 編寫應用程序設計指南
根據設計好的模式和應用需求,規劃應用程序的架構,設計應用程序的草圖,指定每個應用程序的數據存取功能和數據處理功能梗概,提供程序上的邏輯介面。
編寫出應用程序設計指南。
(3) 編寫物理設計指南。
根據設計好的模式和應用需求,整理出物理設計階段所需的一些重要數據和文檔。例如,資料庫的數據容量、各個關系(文件)的數據容量、應用處理頻率、操作順序、響應速度、各個應用的LRA和TV、程序訪問路徑建議,等等。這些數據和要求將直接用於物理資料庫的設計。
編寫出物理設計指南。
5.物理設計
物理設計是對給定的邏輯數據模型配置一個最適合應用環境的物理結構。
物理設計的輸入要素包括:模式和子模式、物理設計指南、硬體特性、OS和DBMS的約束、運行要求等。
物理設計的輸出信息主要是物理資料庫結構說明書。其內容包括物理資料庫結構、存儲記錄格式、存儲記錄位置分配及訪問方法等。
物理設計的步驟如下:
(1) 存儲記錄結構
設計綜合分析數據存儲要求和應用需求,設計存儲記錄格式。
(2) 存儲空間分配
存儲空間分配有兩個原則:
①存取頻度高的數據盡量安排在快速、隨機設備上,存取頻度低的數據則安排在速度較慢的設備上。
②相互依賴性強的數據盡量存儲在同一台設備上,且盡量安排在鄰近的存儲空間上。
從提高系統性能方面考慮,應將設計好的存儲記錄作為一個整體合理地分配物理存儲區域。盡可能充分利用物理順序特點,把不同類型的存儲記錄指派到不同的物理群中。
(3) 訪問方法的設計
一個訪問方法包括存儲結構和檢索機構兩部分。存儲結構限定了訪問存儲記錄時可以使用的訪問路徑;檢索機構定義了每個應用實際使用的訪問路徑。
(4) 物理設計的性能評價
① 查詢響應時間
從查詢開始到有結果顯示之間所經歷的時間稱為查詢響應時間。查詢響應時間可進一步細分為服務時間、等待時間和延遲時間。
在物理設計過程中,要對系統的性能進行評價。性能評價包括時間、空間、效率、開銷等各個方面。
⊙ CPU服務時間和I/O服務時間的長短取決於應用程序設計。
⊙ CPU隊列等待時間和I/O隊列等待時間的長短受計算機系統作業的影響。
⊙ 設計者可以有限度地控制分布式資料庫系統的通信延遲時間。
② 存儲空間
存儲空間存放程序和數據。程序包括運行的應用程序、DBMS子程序、OS子程序等。數據包括用戶工作區、DBMS工作區、OS工作區、索引緩沖區、數據緩沖區等。
存儲空間分為主存空間和輔存空間。設計者只能有限度地控制主存空間,例如可指定緩沖區的分配等。但設計者能夠有效地控制輔存空間。
③ 開銷與效率
設計中還要考慮以下各種開銷,開銷增大,系統效率將下降。
⊙ 事務開銷指從事務開始到事務結束所耗用的時間。更新事務要修改索引、重寫物理塊、進行寫校驗等操作,增加了額外的開銷。更新頻度應列為設計的考慮因素。
⊙ 報告生成開銷指從數據輸入到有結果輸出這段時間。報告生成佔用CPU及I/O的服務時間較長。設計中要進行篩選,除去不必要的報告生成。
⊙ 對資料庫的重組也是一項大的開銷。設計中應考慮數據量和處理頻度這兩個因數,做到避免或盡量減少重組資料庫。
在物理設計階段,設計、評價、修改這個過程可能要反復多次,最終得到較為完善的物理資料庫結構說明書。
建立資料庫時,DBA依據物理資料庫結構說明書,使用DBMS提供的工具可以進行資料庫配置。
在資料庫運行時,DBA監察資料庫的各項性能,根據依據物理資料庫結構說明書的准則,及時進行修正和優化操作,保證資料庫系統能夠保持高效率地運行。
6.程序編制及調試
在邏輯資料庫結構確定以後,應用程序設計的編制就可以和物理設計並行地展開
程序模塊代碼通常先在模擬的環境下通過初步調試,然後再進行聯合調試。聯合調試的工作主要有以下幾點:
(1) 建立資料庫結構
根據邏輯設計和物理設計的結果,用DBMS提供的數據語言(DDL)編寫出資料庫的源模式,經編譯得到目標模式,執行目標模式即可建立實際的資料庫結構。
(2) 調試運行
資料庫結構建立後,裝入試驗數據,使資料庫進入調試運行階段。運行應用程序,測試
(3) 裝入實際的初始數據
在資料庫正式投入運行之前,還要做好以下幾項工作:
(1) 制定資料庫重新組織的可行方案。
(2) 制定故障恢復規范
(3) 制定系統的安全規范
7.運行和維護
資料庫正式投入運行後,運行維護階段的主要工作是:
(1) 維護資料庫的安全性與完整性。
按照制定的安全規范和故障恢復規范,在系統的安全出現問題時,及時調整授權和更改密碼。及時發現系統運行時出現的錯誤,迅速修改,確保系統正常運行。把資料庫的備份和轉儲作為日常的工作,一旦發生故障,立即使用資料庫的最新備份予以恢復。
(2) 監察系統的性能。
運 用DBMS提供的性能監察與分析工具,不斷地監控著系統的運行情況。當資料庫的存儲空間或響應時間等性能下降時,立即進行分析研究找出原因,並 及時採取措施改進。例如,可通修改某些參數、整理碎片、調整存儲結構或重新組織資料庫等方法,使資料庫系統保持高效率地正常運作。
(3) 擴充系統的功能
在維持原有系統功能和性能的基礎上,適應環境和需求的變化,採納用戶的合理意見,對原有系統進行擴充,增加新的功能。