啪啪拉拉噼里啪啦

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

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


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

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

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

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

          (3) 文件組(File Group)
          文件組是將多個(gè)數(shù)據(jù)庫文件集合起來形成的一個(gè)整體。每個(gè)文件組有一個(gè)組名。與數(shù)據(jù)庫文件一樣,文件組也分為主文件組(Primary File Group) 和次文件組(Secondary FileGroup) 一個(gè)文件只能存在于一個(gè)文件組中,一個(gè)文件組也只能被一個(gè)數(shù)據(jù)庫使用。主文件組中包含了所有的系統(tǒng)表。當(dāng)建立數(shù)據(jù)庫時(shí),主文件組包括主數(shù)據(jù)庫文件和未指定組的其它文件。在次文件組中可以指定一個(gè)缺省文件組,那么在創(chuàng)建數(shù)據(jù)庫對(duì)象時(shí)如果沒有指定將其放在哪一個(gè)文件組中,就會(huì)將它放在缺省文件組中。如果沒有指定缺省文件組則主文件組,為缺省文件組。
          注意:事務(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àng),即會(huì)出現(xiàn)如圖6-1 所示的對(duì)話框。
          (2) 指定數(shù)據(jù)庫的名稱和編碼方式,如圖6-1 所示。

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

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

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

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

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

          例6-1: 創(chuàng)建一個(gè)與上節(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
          加入收藏 | 我要投稿 | 我要打印 | 我有疑問 | 錯(cuò)誤報(bào)告| 關(guān)閉窗口
           
          本站相關(guān)教程
          數(shù)據(jù)庫屬性設(shè)置
          瀏覽數(shù)據(jù)庫
          更改數(shù)據(jù)庫
          刪除數(shù)據(jù)庫
          壓縮數(shù)據(jù)庫
          移動(dòng)數(shù)據(jù)庫
          數(shù)據(jù)庫維護(hù)計(jì)劃
          系統(tǒng)數(shù)據(jù)庫
          網(wǎng)絡(luò)相關(guān)鏈接
          暫時(shí)未有相關(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 噼里啪啦的世界 閱讀(293) 評(píng)論(0)  編輯  收藏 所屬分類: SQL SERVER
          主站蜘蛛池模板: 新巴尔虎右旗| 临城县| 新田县| 平邑县| 稷山县| 宿迁市| 通州市| 淮安市| 定襄县| 建平县| 湾仔区| 临桂县| 龙泉市| 龙胜| 洛扎县| 平度市| 徐水县| 封开县| 抚顺市| 新密市| 彭阳县| 武义县| 北流市| 安康市| 临城县| 黑山县| 嘉兴市| 连江县| 玉山县| 江北区| 东方市| 信阳市| 巩义市| 金山区| 磴口县| 安顺市| 治县。| 江城| 申扎县| 新乡县| 彰化市|