啪啪拉拉噼里啪啦

          初學(xué)者天堂資料匯集

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            16 隨筆 :: 73 文章 :: 16 評論 :: 0 Trackbacks
          主站首頁  視頻下載  書籍下載  軟件下載  論壇交流  虛擬主機(jī)  站內(nèi)搜索  網(wǎng)站地圖  網(wǎng)站律師  廣告合作
            豆豆首頁 - 在線教程 - 數(shù) 據(jù) 庫 - Mssql - 基礎(chǔ)教程 最大的中文IT資源網(wǎng)
             
          創(chuàng)建數(shù)據(jù)庫
          作者:unknown 更新時間:2005-03-17  
           


          1、文件與文件組
          在SQL Server 中數(shù)據(jù)庫是由數(shù)據(jù)庫文件和事務(wù)日志文件組成的。一個數(shù)據(jù)庫至少應(yīng)包含一個數(shù)據(jù)庫文件和一個事物日志文件。
          (1) 數(shù)據(jù)庫文件(Database File)
          數(shù)據(jù)庫文件是存放數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)庫對象的文件。一個數(shù)據(jù)庫可以有一個或多個數(shù)據(jù)庫文件,一個數(shù)據(jù)庫文件只屬于一個數(shù)據(jù)庫。當(dāng)有多個數(shù)據(jù)庫文件時,有一個文件被定義為主數(shù)據(jù)庫文件(Primary Database File), 擴(kuò)展名為mdf, 它用來存儲數(shù)據(jù)庫的啟動信息和部分或全部數(shù)據(jù),一個數(shù)據(jù)庫只能有一個主數(shù)據(jù)庫文件。其它數(shù)據(jù)庫文件被稱為次數(shù)據(jù)庫文件(Secondary Database File), 擴(kuò)展名為ndf, 用來存儲主文件沒存儲的其它數(shù)據(jù)。

          采用多個數(shù)據(jù)庫文件來存儲數(shù)據(jù)的優(yōu)點體現(xiàn)在:
           ·數(shù)據(jù)庫文件可以不斷擴(kuò)充,而不受操作系統(tǒng)文件大小的限制;
           ·可以將數(shù)據(jù)庫文件存儲在不同的硬盤中,這樣可以同時對幾個硬盤做數(shù)據(jù)存取,提高了數(shù)據(jù)處理的效率。對于服務(wù)器型的計算機(jī)尤為有用。

          (2) 事務(wù)日志文件(Transaction Log File)
          事務(wù)日志文件是用來記錄數(shù)據(jù)庫更新情況的文件,擴(kuò)展名為ldf。例如使用INSERT、UPDATE、 DELETE、 等對數(shù)據(jù)庫進(jìn)行更的操作都會記錄在此文件中,而如SELECT 等對數(shù)據(jù)庫內(nèi)容不會有影響的操作則不會記錄在案。一個數(shù)據(jù)庫可以有一個或多個事務(wù)日志文件。

          SQL Server 中采用“Write-Ahead (提前寫)”方式的事務(wù),即對數(shù)據(jù)庫的修改先寫入事務(wù)日志中,再寫入數(shù)據(jù)庫。其具體操作是,系統(tǒng)先將更改操作寫入事務(wù)日志中,再更改存儲在計算機(jī)緩存中的數(shù)據(jù),為了提高執(zhí)行效率,此更改不會立即寫到硬盤中的數(shù)據(jù)庫,而是由系統(tǒng)以固定4 的時間間隔執(zhí)行CHECKPOINT 命令,將更改過的數(shù)據(jù)批量寫入硬盤。SQL Server 有個特點,它在執(zhí)行數(shù)據(jù)更改時會設(shè)置一個開始點和一個結(jié)束點,如果尚未到達(dá)結(jié)束點就因某種原因使操作中斷,則在SQL Server 重新啟動時會自動恢復(fù)已修改的數(shù)據(jù),使其返回未被修改的狀態(tài)。 由此可見,當(dāng)數(shù)據(jù)庫破壞時,可以用事務(wù)日志恢復(fù)數(shù)據(jù)庫內(nèi)容。

          (3) 文件組(File Group)
          文件組是將多個數(shù)據(jù)庫文件集合起來形成的一個整體。每個文件組有一個組名。與數(shù)據(jù)庫文件一樣,文件組也分為主文件組(Primary File Group) 和次文件組(Secondary FileGroup) 一個文件只能存在于一個文件組中,一個文件組也只能被一個數(shù)據(jù)庫使用。主文件組中包含了所有的系統(tǒng)表。當(dāng)建立數(shù)據(jù)庫時,主文件組包括主數(shù)據(jù)庫文件和未指定組的其它文件。在次文件組中可以指定一個缺省文件組,那么在創(chuàng)建數(shù)據(jù)庫對象時如果沒有指定將其放在哪一個文件組中,就會將它放在缺省文件組中。如果沒有指定缺省文件組則主文件組,為缺省文件組。
          注意:事務(wù)日志文件不屬于任何文件組。

          6.1.2 用Enterprise Manager 創(chuàng)建數(shù)據(jù)庫
          在Enterprise Manager 中可以按下列步驟來創(chuàng)建數(shù)據(jù)庫:
          (1) 單擊工具欄中的圖標(biāo),或在服務(wù)器的Databases 文件夾或其下屬數(shù)據(jù)庫圖標(biāo)上單擊右鍵,選擇New Database…選項,即會出現(xiàn)如圖6-1 所示的對話框。
          (2) 指定數(shù)據(jù)庫的名稱和編碼方式,如圖6-1 所示。

          圖6-1 創(chuàng)建數(shù)據(jù)庫對話框
          (3) 點擊Transaction Log 頁框,指定數(shù)據(jù)庫文件的名稱、存儲位置、初始容量大小和所屬文件組,如圖6-2 所示。
          (4) 進(jìn)行數(shù)據(jù)庫文件大小擴(kuò)充方式和容量限制設(shè)置,如圖6-2 所示。
          (5) 點擊Transaction Log 頁框,指定事務(wù)日志文件的名稱、存儲位置和初始容量大小,如圖6-3 所示。
          (6) 進(jìn)行事務(wù)日志文件大小擴(kuò)充方式和容量限制設(shè)置,如圖6-3 所示。

          (7) 單擊“確定”按鈕,則建新數(shù)據(jù)庫。
          注意:數(shù)據(jù)庫的名稱最長為128個字符,且不區(qū)分大小寫。
          注意:在此指定的文件容量以MB為單們的,數(shù)據(jù)庫文件的最小容量為1MB,最大容量為1,048,516TB(這么大的硬盤還沒出世!);事務(wù)日志文件的最小容量為1MB。
          一個服務(wù)器在理論上可以管理32,767數(shù)據(jù)庫。

          6.1.3 用CREATE DATABASE 命令創(chuàng)建數(shù)據(jù)庫

          各參數(shù)說明如下:

          • database_name
            數(shù)據(jù)庫名稱,不能超過128 個字符,由于系統(tǒng)會在其后添加5 個字符的邏輯后綴,因此實際能指定的字符數(shù)為123 個。
          • on
            指明數(shù)據(jù)庫文件和文件組的明確定義。
          • PRIMARY
            指明主數(shù)據(jù)庫文件或主文件組。主文件組的第一個文件被認(rèn)為是主數(shù)據(jù)庫文件,其中包含了數(shù)據(jù)庫的邏輯啟動信息和數(shù)據(jù)庫的系統(tǒng)表。如果沒有PRIMARY 項,則在CREATE DATABASE 命令中列出的第一個文件將被默認(rèn)為主文件。
          • filespec
            文件說明。
          • n
            占位符表明可以指定多個類似的對象。
          • filegroupspec
            文件組說明。
          • LOG ON>
            指明事務(wù)日志文件的明確定義。如果沒有LOG ON 選項,則系統(tǒng)會自動產(chǎn)生一個文件名前綴與數(shù)據(jù)庫名相同,容量為所有數(shù)據(jù)庫文件大小1/4 的事務(wù)日志文件。
          • COLLATE
            指明數(shù)據(jù)庫使用的校驗方式。collation_name 可以是Windows 的校驗方式名稱,也可以是SQL 校驗方式名稱。如果省略此子句,則數(shù)據(jù)庫使用當(dāng)前的SQL Server 設(shè)置的校驗方式。
          • FOR LOAD
            此選項是為了與SQL Server 7.0 以前的版本兼容而設(shè)定的。讀者可以不用管它。RESTORE 命令可以更好地實現(xiàn)此功能。
          • FOR ATTACH
            用于附加已經(jīng)存在的數(shù)據(jù)庫文件到新的數(shù)據(jù)庫中,而不用重新創(chuàng)建數(shù)據(jù)庫文件。使用此命令必須指定主文件。被附加的數(shù)據(jù)庫文件的代碼頁(Code Page)和排序次序(Sort Order)必須和目前SQL Server 所使用的一致。建議使用sp_attach_db 系統(tǒng)存儲過程來代替此命令(關(guān)于sp_attach_db 系統(tǒng)存儲過程的用法請參見本章的第7 節(jié)“移動和復(fù)制數(shù)據(jù)庫”)。CREATE DATABASE FOR ATTACH 命令只有在指定的文件數(shù)目超過16 個時才必須使用。
          • NAME
            指定文件在SQL Server 中的邏輯名稱。當(dāng)時用FOR ATTACH 選項時,就不需要使用 NAME 選項了。
          • FILENAME
            指定文件在操作系統(tǒng)中存儲的路徑名和文件名稱。
          • SIZE
            指定數(shù)據(jù)庫的初始容量大小。如果沒有指定主文件的大小,則SQL Server 默認(rèn)其與模板數(shù)據(jù)庫中的主文件大小一致,其它數(shù)據(jù)庫文件和事務(wù)日志文件則默認(rèn)為1 MB。 指定大小的數(shù)字size 可以使用KB、 MB、 GB、 和TB 后綴,默認(rèn)的后綴是MB。 size 中不能使用小數(shù),其最小值為512 KB, 默認(rèn)值是1MB。 主文件的size 不能小于模板數(shù)據(jù)庫中的主文件(關(guān)于模板數(shù)據(jù)庫的介紹請參見本章最后一節(jié))。
          • MAXSIZE
            指定文件的最大容量。如果沒有指定MAXSIZE, 則文件可以不斷增長直到充滿磁盤。
          • UNLIMITED
            指明文件無容量限制。
          • FILEGROTH
            指定文件每次增容時增加的容量大小。增加量可以為確定的以KB、 MB 作后綴的字節(jié)數(shù)或以%作后綴的被增容文件的百分比來表示。缺省后綴為MB。 如果沒有指定FILEGROWTH,則缺省值為10%, 每次擴(kuò)容的最小值為64 KB。 CREATE DATABASE 命令在SQL Server 中執(zhí)行時使用模板數(shù)據(jù)庫來初始化新建的數(shù)據(jù)庫(使用FOR ATTACH 選項時除外)。在模板數(shù)據(jù)庫中的所有用戶定義的對象和數(shù)據(jù)庫的設(shè)置都會被復(fù)制到新數(shù)據(jù)庫中。每個數(shù)據(jù)庫都有一個所有者(Database Owner,簡稱DBO),創(chuàng)建數(shù)據(jù)庫的用戶被默認(rèn)為數(shù)據(jù)庫所有者。可以通過sp_changedbowner 系統(tǒng)存儲過程來更改數(shù)據(jù)庫所有者。

          例6-1: 創(chuàng)建一個與上節(jié)中用Enterprise Manager 創(chuàng)建的數(shù)據(jù)庫類似的數(shù)據(jù)庫。
          create database mydb
          on primary
          ( name = mydb_data1,
          filename = 'd:\sql data\mydb_data1.mdf',
          size = 1,
          maxsize = unlimited,
          filegrowth = 10% ),
          filegroup data2
          ( name = mydb_data2,
          filename = 'd:\sql data\mydb_data2.ndf',
          size = 2,
          maxsize = 100,
          filegrowth = 1 ),
          filegroup data3
          ( name = mydb_data3,
          filename = 'd:\sql data\mydb_data3.ndf',
          size = 3,
          maxsize = 50,
          filegrowth = 500kb )
          log on
          ( name = 'mydb_log1',
          filename = 'd:\sql data\mydb_log1.ldf',
          size = 1mb,
          maxsize = 25mb,
          filegrowth = 10% ),
          ( name = 'mydb_log2',
          filename = 'd:\sql data\mydb_log2.ldf',
          size = 1mb,
          maxsize = 10mb,
          filegrowth = 10% ),
          ( name = 'mydb_log3',
          filename = 'd:\sql data\mydb_log3.ldf',
          size = 1mb,
          maxsize = 5mb,
          filegrowth = 512kb )
          運(yùn)行結(jié)果如下
          -------------------- --------------------
          The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Data1'.
          The CREATE DATABASE process is allocating 2.00 MB on disk 'mydb_Data2'.
          The CREATE DATABASE process is allocating 3.00 MB on disk 'mydb_Data3'.
          The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Log1'.
          The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Log2'.
          The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Log3'.
           
          上一篇      目錄      下一篇
          來源:unknown
          加入收藏 | 我要投稿 | 我要打印 | 我有疑問 | 錯誤報告| 關(guān)閉窗口
           
          本站相關(guān)教程
          數(shù)據(jù)庫屬性設(shè)置
          瀏覽數(shù)據(jù)庫
          更改數(shù)據(jù)庫
          刪除數(shù)據(jù)庫
          壓縮數(shù)據(jù)庫
          移動數(shù)據(jù)庫
          數(shù)據(jù)庫維護(hù)計劃
          系統(tǒng)數(shù)據(jù)庫
          網(wǎng)絡(luò)相關(guān)鏈接
          暫時未有相關(guān)文章
           
           
          業(yè)務(wù)聯(lián)系電話:028-84420401   Email:info*ddvip.com
          關(guān)于豆豆 | 聯(lián)系我們 | 招聘信息 | 網(wǎng)站律師 | 版權(quán)申明 | 廣告合作 | 友情鏈接 | 網(wǎng)站地圖
          Copyright ? 2002 - 2005 DDVIP TEAM.All Rights Reserved
          版權(quán)所有  豆豆技術(shù)
          posted on 2005-04-07 14:13 噼里啪啦的世界 閱讀(296) 評論(0)  編輯  收藏 所屬分類: SQL SERVER
          主站蜘蛛池模板: 张家港市| 宁武县| 腾冲县| 四会市| 公安县| 常熟市| 合江县| 阿图什市| 霍州市| 德昌县| 洱源县| 沧源| 承德县| 泽州县| 抚顺市| 古交市| 长海县| 乐东| 玛多县| 大城县| 雷山县| 分宜县| 红桥区| 万源市| 万年县| 霍邱县| 通道| 贵港市| 平湖市| 吴桥县| 楚雄市| 长治县| 湘阴县| 麦盖提县| 内乡县| 同德县| 和顺县| 玉山县| 曲阜市| 腾冲县| 改则县|