什么是數(shù)數(shù)據(jù)庫(kù)
關(guān)系數(shù)據(jù)庫(kù)
一個(gè)關(guān)系數(shù)據(jù)庫(kù)是包含預(yù)先定義的相關(guān)的一組相關(guān)表格。就像下面圖示那樣,有張表專門用來(lái)員工信息,而員工所屬部門,又專門用一張表去存。每個(gè)表格(有時(shí)被稱為一個(gè)關(guān)系)包含用列表示的一個(gè)或更多的數(shù)據(jù)種類。 每行包含一個(gè)唯一的數(shù)據(jù)實(shí)體,這些數(shù)據(jù)是被列定義的種類。 目前市面上所有數(shù)據(jù)庫(kù)管理程序都屬于關(guān)系型數(shù)據(jù)庫(kù),而我們學(xué)習(xí)的SQLSERVER也是屬于關(guān)系數(shù)據(jù)庫(kù)。
就像這個(gè)圖所示,表與表之間存在著聯(lián)系,假設(shè)我們?cè)谝院蠊ぷ餍枰獙T工與所在部門的信息查詢。只需要將這兩張表建立一個(gè)聯(lián)合查詢即可。如果不考慮表中關(guān)系,而是把我們的表合并成為一張,最簡(jiǎn)單就像把部門信息里面的這些列的字段放到員工表中了。假設(shè)說(shuō)本來(lái)部門叫A部門,現(xiàn)在改變了。那么都找出來(lái)所有A部門員工信息進(jìn)行更改。同時(shí)也違反了咱們下面所學(xué)的知識(shí)。
數(shù)據(jù)庫(kù)范式
關(guān)系模型原理的核心是”規(guī)范化”概念,規(guī)范化是指把數(shù)據(jù)庫(kù)組織成在保持存儲(chǔ)數(shù)據(jù)完整性的同時(shí)最小化冗余數(shù)據(jù)的結(jié)構(gòu)過(guò)程;規(guī)范化的數(shù)據(jù)庫(kù)是符合關(guān)系模型規(guī)則的數(shù)據(jù)庫(kù),通常把這些規(guī)則稱為范式;
第一范式(1NF)無(wú)重復(fù)的列
是指數(shù)據(jù)庫(kù)表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或者不能有重復(fù)的屬性。在第一范式(1NF)中表的每一行只包含一個(gè)實(shí)例的信息。簡(jiǎn)而言之,第一范式就是無(wú)重復(fù)的列。
第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來(lái)的,依賴于主鍵建立的表,主鍵必須有唯一性的元素,一個(gè)主鍵可以由一個(gè)或更多的組成唯一值的列組成,第二范式要求非主鍵列是主鍵的子集,非主鍵列活動(dòng)必須完全依賴整個(gè)主鍵
第二范式示例:我們有這個(gè)表
學(xué)號(hào)、學(xué)生姓名、年齡、性別、課程、課程學(xué)分、系別、學(xué)科成績(jī),系辦地址、系辦電話等信息;
如果我要滿足以下需求怎么呢?
那么會(huì)導(dǎo)致產(chǎn)生如下問(wèn)題:
如何解決呢?
選課關(guān)系表SelectCourse改為如下三個(gè)表:
第三范式:
第三范式規(guī)則查找以消除沒(méi)有直接依賴于第一范式和第二范式形成的表的主鍵的屬性。我們?yōu)闆](méi)有與表的主鍵關(guān)聯(lián)的所有信息建立了一張新表。每張新表保存了來(lái)自源表的信息和它們所依賴的主鍵
關(guān)系模型
數(shù)據(jù)庫(kù)存儲(chǔ)文件
如何創(chuàng)建數(shù)據(jù)庫(kù)方法,我們都是通過(guò)SQLSERVER去完成的
1、創(chuàng)建簡(jiǎn)單的數(shù)據(jù)庫(kù)
語(yǔ)法: create database database_name
如:create database Mydatabase1;
2、指定數(shù)據(jù)文件的數(shù)據(jù)庫(kù)
Create database Mydatabase2
ON primary(
--設(shè)置數(shù)據(jù)庫(kù)的邏輯名稱
Name=‘LogicNameOfDataFile2’,
--設(shè)置數(shù)據(jù)庫(kù)文件名
Filename=‘d:\datafile2.mdf’
)
On關(guān)鍵字用來(lái)創(chuàng)建數(shù)據(jù)文件,使用primary表示創(chuàng)建的主數(shù)據(jù)文件。
3、完整的數(shù)據(jù)庫(kù)創(chuàng)建方法
指定數(shù)據(jù)文件,日志文件與相應(yīng)的邏輯文件名的數(shù)據(jù)庫(kù)
Create database Mydatabase2
ON primary(
--設(shè)置數(shù)據(jù)庫(kù)的邏輯名稱
Name=‘LogicNameOfDataFile2’,
--設(shè)置數(shù)據(jù)庫(kù)文件名
Filename=‘d:\datafile2.mdf’
)
LOG ON(
--設(shè)置日志的的邏輯名稱
Name=‘LogicNameOfDataFile2’,
Filename=‘d:\datafile2.ldf’
)
4、指定大小的數(shù)據(jù)庫(kù)
這里大小包含數(shù)據(jù)文件設(shè)置的初始大小,最大存儲(chǔ)空間,自動(dòng)增長(zhǎng)幅度;
Create database Mydatabase4
ON primary(
Name=‘LogicNameOfDataFile4’,
Filename=‘d:\datafile4.mdf’,
Size=5mb,
Maxsize=100mb,
Filegrowth=15mb)
LOG ON(
Name=‘LogicNameOfDataFile4’,
Filename=‘d:\datafile2.ldf’,
Size=5mb,
Maxsize=100mb,
Filegrowth=10%
)
聯(lián)系客服