資料庫腳本
資料庫腳本
生成資料庫項目時,預先部署腳本、資料庫對象定義和後期部署腳本合併為一個生成腳本。只能指定一個預先部署腳本和一個後期部署腳本,但可在預先部署腳本和後期部署腳本中包含其他腳本。
用於創建資料庫對象的語句的集合。Transact-SQL腳本保存為文件,文件名通常以 .sql結尾。
使用腳本的好處:可以提高數據訪問的效率,並進行相關的數據處理。
資料庫腳本是包含不屬於資料庫架構定義的Transact-SQL(T-SQL)語句或實用工具(如 SQLCMD)的附加文件。可以將資料庫腳本用作部署步驟的一部分(預先部署和後期部署腳本),資料庫腳本也可以是存儲在資料庫項目中的常規管理腳本。
在對架構對象執行資料庫重構操作期間,可以自動更新包含執行該操作期間進行重命名的資料庫對象的任何腳本。
“腳本”文件夾支持以下操作:
添加新項 添加文件夾 添加腳本 從項目中排除 版本控制操作(如簽入、簽出等)剪切 複製 刪除
重命名 屬性
“腳本”文件夾中包含的腳本支持以下操作:
打開 打開方式 項目中排除 版本控制操作(如簽入、簽出等)剪切 複製 刪除重命名屬性
通過使用 SQLCMD 可包含其他腳本。(請參見本主題後面的相關部分。)生成資料庫項目時,包含的所有腳本都合併到生成腳本中。
通過將腳本文件的“生成操作”屬性設置為 PreDeploy可以指定預先部署腳本。同樣,通過將腳本文件的“生成操作”屬性設置為PostDeploy可以指定後期部署腳本。在將某個腳本指定為預先部署腳本或後期部署腳本時,如果以前已經用該生成操作指定了另一個腳本,那麼,系統會自動將另一個腳本的生成操作設置為“不在生成中”。此行為是設計使然,因為每個資料庫項目只能有一個預先部署腳本和一個後期部署腳本。
導入資料庫架構時,大部分架構信息都會導入到資料庫項目中的資料庫對象定義中。有些信息(如登錄、許可權、規則和默認值)則導入到其他的預先部署或後期部署腳本中。當此操作發生時,會在資料庫項目的“腳本”文件夾中的“預先部署”或“後期部署”子文件夾中創建附加文件。這些附加的腳本文件根據需要包含在預先部署和後期部署腳本中。包含的腳本的“生成操作”屬性設置為“不在生成中”,因為這些腳本不直接包含在生成中,而是通過預先部署或後期部署腳本間接包含。系統會將任何無法識別的腳本語句放到“腳本”文件夾中的 ScriptsIgnoredOnImport.sql 文件中。
MySql資料庫為例:
進入到mysql管理、
先創建資料庫為user:
CREATE database user;
進入創建好的資料庫user:
use user;
執行以下腳本:
CREATE TABLE mx_user (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
userName VARCHAR(20) NOT NULL DEFAULT '',
userPwd VARCHAR(40) NOT NULL DEFAULT '',
email VARCHAR(60) NOT NULL DEFAULT '',
regTime INT(10) UNSIGNED NOT NULL DEFAULT '0',
sex SMALLINT(3) NOT NULL DEFAULT 0,
disable SMALLINT(3) UNSIGNED NOT NULL DEFAULT 0,
allow_dlht SMALLINT(3) UNSIGNED NOT NULL DEFAULT 0,
allow_fbpl SMALLINT(3) UNSIGNED NOT NULL DEFAULT 1,
PRIMARY KEY (id),
KEY id (userName, userPwd)
) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
實時資料庫系統是資料庫理論在新領域的擴展,在電力、化工、鋼鐵、冶金、造紙、交通控制和證券金融等領域有著非常廣闊的應用前景。它可以為企業提供高速、及時的實時數據服務,能夠對快速變化的實時數據進行長期高效的歷史存儲,是工廠控制層(現場匯流排、DCS、PLC等)與生產管理系統之間連接的橋樑,同時也是流程模擬、先進控制、在線優化、故障診斷等系統的數據平台。
openPlant實時資料庫系統採用當今先進的技術和架構,可安全、穩定地實現與現場各控制系統的介面,並能對採集來的數據進行高效的數據壓縮和長期的歷史存儲,同時提供方便易用的客戶端應用和通用的數據介面(API/DDE/ODBC/JDBC/OPC等),使企業的管理和決策人員能及時、全面的了解當前的生產情況,也可回顧過去的生產情況,及時發現生產中所存在的問題,提高設備利用率,降低生產成本,增強企業的核心競爭力。
實時資料庫系統特點
■ 企業級的生產實時數據平台
■ 分散式資料庫架構,滿足集團級需求
■ 實時訪問全廠生產數據
■ 高效的數據壓縮和長期歷史存儲
■ 支持在線計算和統計
■ 專業的圖形模擬技術,監視畫面與控制系統完全一致
■ 豐富的客戶端應用工具
■ 開放的數據介面,如API/DDE/ODBC/JDBC/OPC
■ 200,000點上萬小時現場穩定運行考驗
■ 支持遠程訪問,隨時隨地享用生產信息
■ 個性化定製服務,讓您從容應對不斷變化的用戶需求
作為關係資料庫領域的開拓者和領航人,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在內的一系列平台。
Oracle 前身叫SDL,由Larry Ellison 和另兩個編程人員在1977創辦,他們開發了自己的拳頭產品,在市場上大量銷售,1979 年,Oracle公司引入了第一個商用SQL 關係資料庫管理系統。Oracle公司是最早開發關係資料庫的廠商之一,其產品支持最廣泛的操作系統平台。目前Oracle關係資料庫產品的市場佔有率名列前茅。
Informix在1980年成立,目的是為Unix等開放操作系統提供專業的關係型資料庫產品。公司的名稱Informix便是取自Information 和Unix的結合。Informix第一個真正支持SQL語言的關係資料庫產品是Informix SE( StandardEngine)。InformixSE是在當時的微機Unix環境下主要的資料庫產品。它也是第一個被移植到Linux上的商業資料庫產品。
Sybase公司成立於1984年,公司名稱“Sybase”取自“system”和“database”相結合的含義。Sybase公司的創始人之一Bob Epstein 是Ingres 大學版(與System/R同時期的關係資料庫模型產品)的主要設計人員。公司的第一個關係資料庫產品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 資料庫體系結構的思想,並率先在Sybase SQLServer 中實現。
1987 年,微軟和IBM合作開發完成OS/2,IBM 在其銷售的OS/2 ExtendedEdition 系統中綁定了OS/2Database Manager,而微軟產品線中尚缺少資料庫產品。為此,微軟將目光投向Sybase,同Sybase 簽訂了合作協議,使用Sybase的技術開發基於OS/2平台的關係型資料庫。1989年,微軟發布了SQL Server 1.0 版。
PostgreSQL 是一種特性非常齊全的自由軟體的對象——關係性資料庫管理系統(ORDBMS),它的很多特性是當今許多商業資料庫的前身。PostgreSQL最早開始於BSD的Ingres項目。PostgreSQL 的特性覆蓋了SQL-2/SQL-92和SQL-3。首先,它包括了可以說是目前世界上最豐富的數據類型的支持;其次,目前PostgreSQL 是唯一支持事務、子查詢、多版本并行控制系統、數據完整性檢查等特性的唯一的一種自由軟體的資料庫管理系統.
mySQL是一個小型關係型資料庫管理系統,開發者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。
美國Microsoft公司於1994年推出的微機資料庫管理系統。它具有界面友好、易學易用、開發簡單、介面靈活等特點,是典型的新一代桌面資料庫管理系統。其主要特點如下:
(1)完善地管理各種資料庫對象,具有強大的數據組織、用戶管理、安全檢查等功能。
(2)強大的數據處理功能,在一個工作組級別的網路環境中,使用Access開發的多用戶資料庫管理系統具有傳統的XBASE(DBASE、FoxBASE的統稱)資料庫系統所無法實現的客戶伺服器(Cient/Server)結構和相應的資料庫安全機制,Access具備了許多先進的大型資料庫管理系統所具備的特徵,如事務處理/出錯回滾能力等。
(3)可以方便地生成各種數據對象,利用存儲的數據建立窗體和報表,可視性好。
(4)作為Office套件的一部分,可以與Office集成,實現無縫連接。
(5)能夠利用Web檢索和發布數據,實現與Internet的連接。 Access主要適用於中小型應用系統,或作為客戶機/伺服器系統中的客戶端資料庫。
SQLite是遵守ACID的關聯式資料庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。不像常見的客戶端/伺服器結構範例,SQLite引擎不是個程序與之通信的獨立進程,而是連接到程序中成為它的一個主要部分。所以主要的通信協議是在編程語言內的直接API調用。這在消耗總量、延遲時間和整體簡單性上有積極的作用。整個資料庫(定義、表、索引和數據本身)都在宿主主機上存儲在一個單一的文件中。它的簡單的設計是通過在開始一個事務的時候鎖定整個數據文件而完成的。
最初由美國Fox公司1988年推出,1992年Fox公司被Microsoft公司收購后,相繼推出了FoxPro2.5、2.6和VisualFoxPro等版本,其功能和性能有了較大的提高。 FoxPro2.5、2.6分為DOS和Windows兩種版本,分別運行於DOS和Windows環境下。FoxPro比FoxBASE在功能和性能上又有了很大的改進,主要是引入了窗口、按紐、列表框和文本框等控制項,進一步提高了系統的開發能力。
如果其他用戶可以修改設計時驗證資料庫的實例,則他們可能添加或更改將在生成腳本中結束的對象。生成輸出將生成這些對象(例如,DDL 觸發器),而且這些對象將在資料庫部署者的上下文中運行。這些對象不一定出現在“解決方案資源管理器”或“架構視圖”中。當您將資料庫項目與所部署的資料庫進行比較時,“架構比較”功能將檢測不到任何區別,因為設計時驗證資料庫中也包含這些對象。
要儘可能降低資料庫的風險,應注意以下兩點:
1、不要與其他用戶共享設計時驗證資料庫的實例。
2、在部署生成資料庫腳本之前對它們進行檢查。