版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第2章 關(guān)系數(shù)據(jù)庫(kù)定義,目錄,數(shù)據(jù)模型 關(guān)系數(shù)據(jù)模型的基本概念 數(shù)據(jù)類型(SQL SERVER) 模式定義 數(shù)據(jù)庫(kù)的定義 表的定義,數(shù)據(jù)模型,3,1. 數(shù)據(jù)模型,在數(shù)據(jù)庫(kù)中用數(shù)據(jù)模型這個(gè)工具來(lái)抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。通俗地講數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬 數(shù)據(jù)模型應(yīng)滿足三方面要求 能比較真實(shí)地模擬現(xiàn)實(shí)世界 容易為人所理解 便于在計(jì)算機(jī)上實(shí)現(xiàn),數(shù)據(jù)模型的組成要素,數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)操作 數(shù)據(jù)的約束條件,(1) 數(shù)據(jù)結(jié)構(gòu),什么是數(shù)據(jù)結(jié)構(gòu) 對(duì)象類型的集合 兩類對(duì)象 與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的對(duì)象 與數(shù)據(jù)之間聯(lián)系有關(guān)的對(duì)象 數(shù)據(jù)結(jié)構(gòu)是對(duì)系統(tǒng)靜態(tài)特性的描述,(2)數(shù)據(jù)操作,數(shù)據(jù)操作 數(shù)據(jù)庫(kù)中各
2、種對(duì)象(型)的實(shí)例(值)允許執(zhí)行的操作及有關(guān)的操作規(guī)則 數(shù)據(jù)操作的類型 檢索 更新(包括插入、刪除、修改),數(shù)據(jù)操作(續(xù)),數(shù)據(jù)模型對(duì)操作的定義 操作的確切含義 操作符號(hào) 操作規(guī)則(如優(yōu)先級(jí)) 實(shí)現(xiàn)操作的語(yǔ)言 數(shù)據(jù)操作是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述。,(3)數(shù)據(jù)的約束條件,數(shù)據(jù)的約束條件 一組完整性規(guī)則的集合。 完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和儲(chǔ)存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。 在關(guān)系模型中,任何關(guān)系必須滿足實(shí)體完整性和參照完整性兩個(gè)條件。,2. 關(guān)系模型的基本概念,關(guān)系(Relation) 一個(gè)關(guān)系對(duì)應(yīng)通常說(shuō)的一張表。把數(shù)據(jù)
3、庫(kù)表示為關(guān)系的集合,每一個(gè)關(guān)系類似于一張二維表。表2-1是一個(gè)關(guān)系的實(shí)例,其關(guān)系名為Student,包含4個(gè)屬性:StudentNo、StudentName、Age和Dept,分別表示學(xué)號(hào)、姓名、年齡和系別四個(gè)性質(zhì)。 表2-1:關(guān)系Student,關(guān)系模型的基本概念,屬性就是關(guān)系中各列,一列即為一個(gè)屬性,給每一個(gè)屬性起一個(gè)名稱即屬性名。在表2-1中,關(guān)系的屬性為StudentNo、StudentName、Age和Dept,屬性描述了該列各數(shù)據(jù)項(xiàng)的含義,例如,屬性為Age的列存放著學(xué)生的年齡。,關(guān)系模型的基本概念,元組(Tuple) 在表2-1中,除了關(guān)系的標(biāo)題欄以外,其它各行統(tǒng)稱為“元組”。元
4、組的各分量分別對(duì)應(yīng)各個(gè)屬性在該元組上的取值。 表2-1中有三個(gè)元組,第一個(gè)元組有四個(gè)分量: 9900011、李明、19和計(jì)算機(jī)系 分別對(duì)應(yīng)于四個(gè)屬性: StudentNo、StudentName、Age和Dept。 單獨(dú)書(shū)寫(xiě)元組的方法:(9900011、李明、19,計(jì)算機(jī)系) 關(guān)系是元組的集合,在給定的關(guān)系中,一個(gè)元組不可能出現(xiàn)一次以上。,關(guān)系模型的基本概念,屬性(Attribute) 表中的一列即為一個(gè)屬性,給每一個(gè)屬性起一個(gè)名稱即屬性名。 關(guān)系的模式:關(guān)系名和關(guān)系的屬性集稱為關(guān)系的“模式”。 對(duì)關(guān)系的描述:關(guān)系名(屬性1,屬性2,屬性n) 模式的表示: Student(StudentNo,
5、StudentName,Age,Dept),關(guān)系模型的基本概念,分量 元組中的一個(gè)屬性值。 域(Domain) 每個(gè)屬性有一個(gè)允許的值的集合,稱為該屬性的“域”。 指定的域通常是一個(gè)特定的基本類型。 關(guān)系的任何元組的每個(gè)分量都必須在對(duì)應(yīng)列的域中取值。 關(guān)系模型要求每個(gè)元組的每個(gè)分量都是原子的,即必須屬于某種基本的類型,如integer, string等。不允許一個(gè)值為記錄結(jié)構(gòu)、集合、列表、數(shù)組或者能合理地分解為更小分量的其他任何類型。 例如,在表2-1中,關(guān)系Student的元組的第一和第三個(gè)分量必須是整數(shù),第二和第四個(gè)分量必須是字符串。,關(guān)系模型的基本概念,超碼:一個(gè)或者多個(gè)屬性的集合,這些
6、屬性的組合可以使我們?cè)谝粋€(gè)實(shí)體集中唯一地標(biāo)識(shí)一個(gè)實(shí)體。 候選碼:任意真子集都不能成為超碼的最小超碼 主碼(Key) 數(shù)據(jù)庫(kù)中,設(shè)計(jì)人員選定的,用于唯一確定一個(gè)元組的候選碼。,關(guān)系模型的基本概念-主碼,表2-2:關(guān)系Stu_course,一個(gè)表中可能存在多個(gè)候選碼,相應(yīng)的鍵稱為候選鍵。在建立數(shù)據(jù)庫(kù)的時(shí)候,從候選鍵中選取哪一個(gè)作為主鍵都可以,因此,主鍵是從候選鍵中選取出來(lái)做主鍵的屬性。 比如,對(duì)于關(guān)系Student,如果能夠保證StudentName肯定不重復(fù)的話,那么StudentName列也可以作為關(guān)系Student的主鍵。,關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù)),例1 學(xué)生、系、系與學(xué)生之間的一對(duì)多聯(lián)
7、系: 學(xué)生(學(xué)號(hào),姓名,年齡,性別,系號(hào),年級(jí)) 系 (系號(hào),系名,辦公地點(diǎn)) 例2 系、系主任、系與系主任間的一對(duì)一聯(lián)系,關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù)),例3 學(xué)生、課程、學(xué)生與課程之間的多對(duì)多聯(lián)系: 學(xué)生(學(xué)號(hào),姓名,年齡,性別,系號(hào),年級(jí)) 課程(課程號(hào),課程名,學(xué)分) 選修(學(xué)號(hào),課程號(hào),成績(jī)),關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù)),關(guān)系必須是規(guī)范化的,滿足一定的規(guī)范條件 最基本的規(guī)范條件:關(guān)系的每一個(gè)分量必須是一個(gè)不 可分的數(shù)據(jù)項(xiàng)。,關(guān)系模型的完整性約束,實(shí)體完整性: 參照完整性: 用戶定義的完整性:,實(shí)體完整性是指一個(gè)表中的每一行必須是唯一的即實(shí)體是可以唯一區(qū)分的 。 若屬性A是基本關(guān)系R的
8、主鍵,則屬性A不能取空值,另外不能存在屬性A上分量相同的元組。,用戶定義的完整性規(guī)則是針對(duì)某一應(yīng)用環(huán)境的完整性約束條件,他反映了某一具體應(yīng)用所涉及的數(shù)據(jù)應(yīng)滿足的要求。在實(shí)際系統(tǒng)中,這類完整性規(guī)則一般在建立庫(kù)表的同時(shí)進(jìn)行定義。 例如,學(xué)生的考試成績(jī)的取值范圍為0100,或取優(yōu)、良、中、及格、不及格。,關(guān)系模型的完整性約束-參照完整性,學(xué)生表,專業(yè)表,這樣一個(gè)表中某列的取值受限于另一個(gè)表的取值范圍約束的特點(diǎn)就稱為參照完整性。在關(guān)系數(shù)據(jù)庫(kù)中用外鍵(foreign key,有時(shí)也稱為外部關(guān)鍵字或外碼)來(lái)實(shí)現(xiàn)參照完整性。 外鍵實(shí)際上是表中的一個(gè)(或多個(gè))屬性,它引用某個(gè)其他表(特殊情況下,也可以是外鍵所
9、在的表)的主鍵,當(dāng)然,也可以是候選鍵,但多數(shù)情況下是主鍵。,參照完整性舉例,課程表,選修表,學(xué)生表,參照完整性規(guī)則,若屬性(或?qū)傩越M)F是基本關(guān)系R的外鍵(外碼),它與基本關(guān)系S的主鍵(主碼)Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為: 或者取空值(F的每個(gè)屬性值均為空值); 或者等于S中某個(gè)元組的主碼值。,例如:學(xué)生關(guān)系中每個(gè)元組的“專業(yè)號(hào)”屬性只取下面兩類值: (1)空值,表示尚未給該學(xué)生分配專業(yè)。 (2)非空值,這時(shí)該值必須是專業(yè)關(guān)系中某個(gè)元組的“專業(yè)號(hào)”值,表示該學(xué)生不可能分配到一個(gè)不存在的專業(yè)中。 選修(學(xué)號(hào),課程號(hào),成績(jī)) “學(xué)號(hào)”和“課程號(hào)
10、”是選修關(guān)系中的主屬性按照實(shí)體完整性和參照完整性規(guī)則,它們只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值。,關(guān)系模型的數(shù)據(jù)操縱,查詢、插入、刪除、更新 數(shù)據(jù)操作是集合操作,操作對(duì)象和操作結(jié)果都是關(guān)系,即若干元組的集合 存取路徑對(duì)用戶隱蔽,用戶只要指出“干什么”,不必詳細(xì)說(shuō)明“怎么干”,關(guān)系數(shù)據(jù)模型的存儲(chǔ)結(jié)構(gòu),表以文件形式存儲(chǔ) 有的DBMS一個(gè)表對(duì)應(yīng)一個(gè)操作系統(tǒng)文件 有的DBMS自己設(shè)計(jì)文件結(jié)構(gòu),關(guān)系模型的優(yōu)缺點(diǎn),優(yōu)點(diǎn) 建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上 概念單一。數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、清晰,用戶易懂易用 實(shí)體和各類聯(lián)系都用關(guān)系來(lái)表示。 對(duì)數(shù)據(jù)的檢索結(jié)果也是關(guān)系。 關(guān)系模型的存取路徑對(duì)用戶透明 具有更高的數(shù)據(jù)獨(dú)立性,
11、更好的安全保密性 簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)開(kāi)發(fā)建立的工作,關(guān)系模型的優(yōu)缺點(diǎn)(續(xù)),缺點(diǎn) 存取路徑對(duì)用戶透明導(dǎo)致查詢效率往往不如非 關(guān)系數(shù)據(jù)模型 為提高性能,必須對(duì)用戶的查詢請(qǐng)求進(jìn)行優(yōu)化 增加了開(kāi)發(fā)數(shù)據(jù)庫(kù)管理系統(tǒng)的難度,3. 創(chuàng)建數(shù)據(jù)庫(kù)模式,以SQL Server 為例,介紹定義數(shù)據(jù)庫(kù)模式的基本操作,數(shù)據(jù)類型,整數(shù) Bit decimal 和 numeric money 和 smallmoney 近似數(shù)字 datetime 和 smalldatetime 字符串 Unicode 字符串 二進(jìn)制字符串 其它數(shù)據(jù)類型,整數(shù),bigint:從 -263 (-9223372036854775808)
12、到 263-1 (9223372036854775807) 的整型數(shù)據(jù)(所有數(shù)字)。 int:從 -231 (-2,147,483,648) 到 231 - 1 (2,147,483,647) 的整型數(shù)據(jù)(所有數(shù)字)。 smallint:從 -215 (-32,768) 到 215 - 1 (32,767) 的整數(shù)數(shù)據(jù)。 tinyint:從 0 到 255 的整數(shù)數(shù)據(jù)。,Bit,bit:1 或 0 的整數(shù)數(shù)據(jù)。,decimal 和 numeric,decimal:從 -1038 +1 到 1038 1 的固定精度和小數(shù)位的數(shù)字?jǐn)?shù)據(jù)。 numeric:功能上等同于 decimal。,money
13、和 smallmoney,money:貨幣數(shù)據(jù)值介于 -263 (-922,337,203,685,477.5808) 與 263 - 1 (+922,337,203,685,477.5807) 之間,精確到貨幣單位的千分之十。 smallmoney:貨幣數(shù)據(jù)值介于 -214,748.3648 與 +214,748.3647 之間,精確到貨幣單位的千分之十。,近似數(shù)字,float:從 -1.79E + 308 到 1.79E + 308 的浮點(diǎn)精度數(shù)字。 real:從 -3.40E + 38 到 3.40E + 38 的浮點(diǎn)精度數(shù)字。,datetime 和 smalldatetime,date
14、time 從 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和時(shí)間數(shù)據(jù),精確到百分之三秒(或 3.33 毫秒)。 smalldatetime 從 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和時(shí)間數(shù)據(jù),精確到分鐘。,字符串,char:固定長(zhǎng)度的非 Unicode 字符數(shù)據(jù),最大長(zhǎng)度為 8,000 個(gè)字符。 varchar:可變長(zhǎng)度的非 Unicode 數(shù)據(jù),最長(zhǎng)為 8,000 個(gè)字符。 text:可變長(zhǎng)度的非 Unicode 數(shù)據(jù),最大長(zhǎng)度為 231 - 1 (2,147,483,647) 個(gè)字符。,Unicode 字符串,nchar:固定長(zhǎng)度的
15、Unicode 數(shù)據(jù),最大長(zhǎng)度為 4,000 個(gè)字符。 nvarchar:可變長(zhǎng)度 Unicode 數(shù)據(jù),其最大長(zhǎng)度為 4,000 字符。sysname 是系統(tǒng)提供用戶定義的數(shù)據(jù)類型,在功能上等同于 nvarchar(128),用于引用數(shù)據(jù)庫(kù)對(duì)象名。 ntext:可變長(zhǎng)度 Unicode 數(shù)據(jù),其最大長(zhǎng)度為 230 - 1 (1,073,741,823) 個(gè)字符。,二進(jìn)制字符串,binary:固定長(zhǎng)度的二進(jìn)制數(shù)據(jù),其最大長(zhǎng)度為 8,000 個(gè)字節(jié)。 varbinary:可變長(zhǎng)度的二進(jìn)制數(shù)據(jù),其最大長(zhǎng)度為 8,000 個(gè)字節(jié)。 image:可變長(zhǎng)度的二進(jìn)制數(shù)據(jù),其最大長(zhǎng)度為 231 - 1 (2
16、,147,483,647) 個(gè)字節(jié)。,其它數(shù)據(jù)類型,cursor:游標(biāo)的引用。 sql_variant:一種存儲(chǔ) SQL Server 支持的各種數(shù)據(jù)類型(text、ntext、timestamp 和 sql_variant 除外)值的數(shù)據(jù)類型。 table:一種特殊的數(shù)據(jù)類型,存儲(chǔ)供以后處理的結(jié)果集。 timestamp:數(shù)據(jù)庫(kù)范圍的唯一數(shù)字,每次更新行時(shí)也進(jìn)行更新。 uniqueidentifier:全局唯一標(biāo)識(shí)符 (GUID)。,4. CREATE DATABASE,創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)及存儲(chǔ)該數(shù)據(jù)庫(kù)的文件, 或從先前創(chuàng)建的數(shù)據(jù)庫(kù)的文件中附加數(shù)據(jù)庫(kù)。,CREATE DATABASE data
17、base_name ON ,.n , ,.n LOG ON ,.n COLLATE collation_name FOR LOAD | FOR ATTACH := PRIMARY ( NAME = logical_file_name , FILENAME = os_file_name , SIZE = size , MAXSIZE = max_size | UNLIMITED , FILEGROWTH = growth_increment ) ,.n := FILEGROUP filegroup_name ,.n ,database_name:新數(shù)據(jù)庫(kù)的名稱。數(shù)據(jù)庫(kù)名稱在服務(wù)器中必須唯一,并且
18、符合標(biāo)識(shí)符的規(guī)則。,ON:指定顯式定義用來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)數(shù)據(jù)部分的磁盤(pán)文件(數(shù)據(jù)文件)。,LOG ON :指定顯式定義用來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)日志的磁盤(pán)文件(日志文件)。 如果沒(méi)有指定 LOG ON,將自動(dòng)創(chuàng)建一個(gè)日志文件,該文件使用系統(tǒng)生成的名稱,大小為數(shù)據(jù)庫(kù)中所有數(shù)據(jù)文件總大小的 25%。,FOR ATTACH:指定從現(xiàn)有的一組操作系統(tǒng)文件中附加數(shù)據(jù)庫(kù)。,數(shù)據(jù)庫(kù)的存儲(chǔ)文件,有三種類型的文件用來(lái)存儲(chǔ)數(shù)據(jù)庫(kù): 1.主文件包含數(shù)據(jù)庫(kù)的啟動(dòng)信息。主文件還可以用來(lái)存儲(chǔ)數(shù)據(jù)。每個(gè)數(shù)據(jù)庫(kù)都包含一個(gè)主文件。 2. 次要文件保存所有主要數(shù)據(jù)文件中容納不下的數(shù)據(jù)。如果主文件大到足以容納數(shù)據(jù)庫(kù)中的所有數(shù)據(jù),就不需要有次要數(shù)據(jù)
19、文件。而另一些數(shù)據(jù)庫(kù)可能非常大,需要多個(gè)次要數(shù)據(jù)文件,也可能使用多個(gè)獨(dú)立磁盤(pán)驅(qū)動(dòng)器上的次要文件,以將數(shù)據(jù)分布在多個(gè)磁盤(pán)上。 3.事務(wù)日志文件保存用來(lái)恢復(fù)數(shù)據(jù)庫(kù)的日志信息。每個(gè)數(shù)據(jù)庫(kù)必須至少有一個(gè)事務(wù)日志文件(盡管可以有多個(gè))。事務(wù)日志文件最小為 512 KB。,每個(gè)數(shù)據(jù)庫(kù)至少有兩個(gè)文件,一個(gè)主文件和一個(gè)事務(wù)日志文件。,數(shù)據(jù)庫(kù)文件類型,創(chuàng)建數(shù)據(jù)庫(kù)示例,USE master GO CREATE DATABASE mytest,創(chuàng)建名為 mytest 的數(shù)據(jù)庫(kù),并創(chuàng)建相應(yīng)的主文件和事務(wù)日志文件。因?yàn)樵撜Z(yǔ)句沒(méi)有 項(xiàng),所以主數(shù)據(jù)庫(kù)文件的大小為 model 數(shù)據(jù)庫(kù)主文件的大小。事務(wù)日志文件的大小為 mod
20、el 數(shù)據(jù)庫(kù)事務(wù)日志文件的大小。因?yàn)闆](méi)有指定 MAXSIZE,文件可以增長(zhǎng)到填滿所有可用的磁盤(pán)空間為止。,創(chuàng)建數(shù)據(jù)庫(kù)示例,USE master GO CREATE DATABASE Products ON ( NAME = prods_dat, FILENAME = c:program filesmicrosoft sql servermssqldataprods.mdf, SIZE = 4, MAXSIZE = 10, FILEGROWTH = 1 ),創(chuàng)建名為 Products 的數(shù)據(jù)庫(kù),并指定單個(gè)文件。指定的文件成為主文件,并會(huì)自動(dòng)創(chuàng)建一個(gè) 1 MB 的事務(wù)日志文件。因?yàn)橹魑募?SIZ
21、E 參數(shù)中沒(méi)有指定 MB 或 KB,所以主文件將以兆字節(jié)為單位進(jìn)行分配。因?yàn)闆](méi)有為事務(wù)日志文件指定 ,所以事務(wù)日志文件沒(méi)有 MAXSIZE,可以增長(zhǎng)到填滿所有可用的磁盤(pán)空間為止。,創(chuàng)建數(shù)據(jù)庫(kù)示例,USE master GO CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = c:program filesmicrosoft sql servermssqldatasaledat.mdf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON( NAME = Sales_log, FILENAM
22、E = c:program filesmicrosoft sql servermssqldatasalelog.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ),創(chuàng)建名為 Sales 的數(shù)據(jù)庫(kù)。因?yàn)闆](méi)有使用關(guān)鍵字 PRIMARY,第一個(gè)文件 (Sales_dat) 成為主文件。因?yàn)?Salesdat 文件的 SIZE 參數(shù)沒(méi)有指定 MB 或 KB,因此默認(rèn)為 MB,以兆字節(jié)為單位進(jìn)行分配。Saleslog 文件以兆字節(jié)為單位進(jìn)行分配,因?yàn)?SIZE 參數(shù)中顯式聲明了 MB 后綴。,創(chuàng)建數(shù)據(jù)庫(kù)示例,USE master CREATE DATA
23、BASE Archive ON PRIMARY ( NAME = Arch1, FILENAME = c:program filesmicrosoft sql servermssqldataarchdat1.mdf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch2, FILENAME = c:program filesmicrosoft sql servermssqldataarchdat2.ndf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arc
24、h3, FILENAME = c:program filesmicrosoft sql servermssqldataarchdat3.ndf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) LOG ON ( NAME = Archlog1, FILENAME = c:program filesmicrosoft sql servermssqldataarchlog1.ldf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Archlog2, FILENAME = c:program
25、 filesmicrosoft sql servermssqldataarchlog2.ldf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20),使用三個(gè) 100 MB 的數(shù)據(jù)文件和兩個(gè) 100 MB 的事務(wù)日志文件創(chuàng)建了名為 Archive 的數(shù)據(jù)庫(kù)。主文件是列表中的第一個(gè)文件,并使用 PRIMARY 關(guān)鍵字顯式指定。事務(wù)日志文件在 LOG ON 關(guān)鍵字后指定。注意 FILENAME 選項(xiàng)中所用的文件擴(kuò)展名:主要數(shù)據(jù)文件使用 .mdf,次要數(shù)據(jù)文件使用 .ndf,事務(wù)日志文件使用 .ldf。,分離數(shù)據(jù)庫(kù),sp_detach_db Archive G
26、O,附加數(shù)據(jù)庫(kù),CREATE DATABASE Archive ON PRIMARY (FILENAME = c:program filesmicrosoft sql servermssqldataarchdat1.mdf) FOR ATTACH,刪除數(shù)據(jù)庫(kù),語(yǔ)法: DROP DATABASE database_name ,.n ,刪除數(shù)據(jù)庫(kù),DROP DATABASE publishing DROP DATABASE pubs, newpubs,簡(jiǎn)單表的定義,SQL語(yǔ)言使用CREATE TABLE語(yǔ)句定義基本表。其一般格式為: CREATE TABLE ( 列完整性約束, 列完整性約束, 表
27、級(jí)完整性約束),:是指對(duì)某一列設(shè)置的約束條件。該列上的數(shù)據(jù)必須滿足。最常見(jiàn)的有: NOT NULL該列值不能為空 NULL該列值可以為空 UNIQUE該列值不能存在相同 DEFAULT該列某值在未定義時(shí)的默認(rèn)值 CHECK用戶自定義的約束 :規(guī)定了關(guān)系主鍵、外鍵和用戶自定義完整性約束。,簡(jiǎn)單表的定義,創(chuàng)建部門(mén)關(guān)系表,通過(guò)外鍵建立部門(mén)關(guān)系表和員工關(guān)系表的關(guān)聯(lián)。 CREATE TABLE Dept (Dno char(6) not null primary key, Dname varchar(12) not null, Manager char(6) not null);,簡(jiǎn)單表的定義,創(chuàng)建員工
28、關(guān)系表,通過(guò)外鍵建立部門(mén)關(guān)系表和員工關(guān)系表的關(guān)聯(lián)。 CREATE TABLE Employee (Eno CHAR(5) NOT NULL primary key, Ename VARCHAR(10) NOT NULL, Sex CHAR(2) NOT NULL, Marry CHAR(2) DEFAULT 未, Dno CHAR(4) NULL, FOREIGN KEY (Dno) REFERENCES Dept (Dno);,簡(jiǎn)單表的定義,CREATE TABLE Employee (Eno CHAR(5) NOT NULL primary key, Ename VARCHAR(10) N
29、OT NULL, Sex CHAR(2) NOT NULL, Marry CHAR(2) DEFAULT 未, Dno CHAR(4) REFERENCES Dept (Dno), );,簡(jiǎn)單表的定義,CREATE TABLE Employee (Eno CHAR(5) NOT NULL primary key, Ename VARCHAR(10) NOT NULL, Sex CHAR(2) NOT NULL, Marry CHAR(2) DEFAULT 未, Dno CHAR(4) NULL, Constraint fcnameDno FOREIGN KEY (Dno) REFERENCES
30、 Dept (Dno);,實(shí) 例-學(xué)生數(shù)據(jù)庫(kù),學(xué)生數(shù)據(jù)庫(kù)涉及到專業(yè)、課程、教師、學(xué)生、班級(jí)、開(kāi)課計(jì)劃、學(xué)生選課七個(gè)表。 其中專業(yè)、課程、班級(jí)、教師是基本表 班級(jí)參照了專業(yè)表 開(kāi)課計(jì)劃參照了課程和教師表 學(xué)生參照了班級(jí)表 選課參照了學(xué)生和開(kāi)課計(jì)劃表 在創(chuàng)建這樣一個(gè)完整的數(shù)據(jù)庫(kù)的表的時(shí)候被參照的表應(yīng)該先建立,參照其他關(guān)系的應(yīng)該后建立,否則就會(huì)產(chǎn)生錯(cuò)誤。,create table 專業(yè)( 專業(yè)編號(hào) char(10) not null primary key, 專業(yè)名稱 varchar(50), 級(jí)別char(6), 學(xué)制int );,create table 課程( 課程編號(hào) char(10) no
31、t null primary key, 課程名稱 varchar(50), 理論學(xué)時(shí) int check(理論學(xué)時(shí)=0), 實(shí)驗(yàn)學(xué)時(shí) int check(實(shí)驗(yàn)學(xué)時(shí)=0), 開(kāi)課學(xué)期 int , 課程性質(zhì)課程介紹 char(200) );,create table 班級(jí)( 班級(jí)編號(hào) char(10) not null primary key, 班級(jí)名稱 varchar(50) unique, 專業(yè)編號(hào) char(10) references 專業(yè)(專業(yè)編號(hào)), 入學(xué)年份 int default year(getdate() );,create table 教師( 教師編號(hào) char(10) no
32、t null primary key, 教師姓名 varchar(10), 性別 char(2) check(性別=女 or 性別=男 ), 職稱 char(6), 政治面貌 varchar(10), 簡(jiǎn)介 char(200), 生日 datetime, 所在教研室 varchar(50) );,create table 學(xué)生( 學(xué)號(hào) char(10) not null primary key, 姓名 varchar(10), 性別 char(2) check(性別=女 or 性別=男 ), 生日 datetime, 班級(jí) char(10) references 班級(jí)(班級(jí)編號(hào)), 政治面貌
33、varchar(10) );,create table 開(kāi)課計(jì)劃( 開(kāi)課計(jì)劃編號(hào) char(10) not null primary key, 課程編號(hào) char(10) references 課程(課程編號(hào)), 教師編號(hào) char(10) references 教師(教師編號(hào)), 學(xué)期 char(9) check(學(xué)期 like 0-90-90-90-90-90-90-90-91-2) );,create table 選課表( 學(xué)號(hào) char(10) references 學(xué)生(學(xué)號(hào)), 開(kāi)課計(jì)劃編號(hào) char(10) references 開(kāi)課計(jì)劃(開(kāi)課計(jì)劃編號(hào)), 成績(jī) int check(成績(jī)=0 and 成績(jī)=100) constraint pkofxuanke primary key (學(xué)號(hào),開(kāi)課計(jì)劃編號(hào)) );,引用屬性組做外碼,屬性組做外碼的情況。如果沒(méi)有 “開(kāi)課計(jì)劃編號(hào)屬性”,開(kāi)課計(jì)劃表中的課程編號(hào)、教師編號(hào)以及學(xué)期共同組成一個(gè)主碼,在選課表中,這個(gè)屬性組做外碼。 c
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流車行駛規(guī)范演練
- 配電裝置最小安全凈距
- 氣道腫物鑒別與治療
- 智能銀行解決方案
- 第五章 萬(wàn)有引力定律宇宙航行 2025年高考物理基礎(chǔ)專項(xiàng)復(fù)習(xí)
- 2.3.1物質(zhì)的量 課件高一上學(xué)期化學(xué)人教版(2019)必修第一冊(cè)
- 公司七夕團(tuán)建活動(dòng)
- 初中中秋節(jié)教案
- 彩色世界教案反思
- 社區(qū)就業(yè)解決方案
- 國(guó)開(kāi)2024年秋《經(jīng)濟(jì)法學(xué)》計(jì)分作業(yè)1-4答案形考任務(wù)
- 知道網(wǎng)課智慧《設(shè)計(jì)創(chuàng)新思維》測(cè)試答案
- 生物入侵與生物安全智慧樹(shù)知到期末考試答案章節(jié)答案2024年浙江農(nóng)林大學(xué)
- 《公路工程集料試驗(yàn)規(guī)程》JTG-3432-2024考核試題及答案文檔
- 生涯發(fā)展報(bào)告 (修改)
- 新課標(biāo)視域下的小學(xué)數(shù)學(xué)大單元教學(xué)
- 實(shí)驗(yàn)室生物安全組織框架
- 鉆桿油管套管扣型對(duì)照表
- 道路工程人行道施工方案(完整版)
- 高、低壓設(shè)備講解知識(shí)
- 醫(yī)院工程水電安裝施工組織設(shè)計(jì)(word版)
評(píng)論
0/150
提交評(píng)論