小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Sqlserver基礎(chǔ)教程系列1:基礎(chǔ)概念

 DIVCSS8 2015-01-21

什么是數(shù)數(shù)據(jù)庫

  • 嚴(yán)格地說,數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫”。在經(jīng)濟管理的日常工作中,常常需要把某些相關(guān)的數(shù)據(jù)放進這樣的“倉庫”,并根據(jù)管理的需要進行相應(yīng)的處理。 通俗地講數(shù)據(jù)庫就是存儲數(shù)據(jù)的倉庫
  • 例如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個數(shù)據(jù)庫。有了這個"數(shù)據(jù)倉庫"我們就可以根據(jù)需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內(nèi)的職工人數(shù)等等。

關(guān)系數(shù)據(jù)庫

一個關(guān)系數(shù)據(jù)庫是包含預(yù)先定義的相關(guān)的一組相關(guān)表格。就像下面圖示那樣,有張表專門用來員工信息,而員工所屬部門,又專門用一張表去存。每個表格(有時被稱為一個關(guān)系)包含用列表示的一個或更多的數(shù)據(jù)種類。 每行包含一個唯一的數(shù)據(jù)實體,這些數(shù)據(jù)是被列定義的種類。 目前市面上所有數(shù)據(jù)庫管理程序都屬于關(guān)系型數(shù)據(jù)庫,而我們學(xué)習(xí)的SQLSERVER也是屬于關(guān)系數(shù)據(jù)庫。

Sqlserver基礎(chǔ)教程系列1:基礎(chǔ)概念

就像這個圖所示,表與表之間存在著聯(lián)系,假設(shè)我們在以后工作需要將員工與所在部門的信息查詢。只需要將這兩張表建立一個聯(lián)合查詢即可。如果不考慮表中關(guān)系,而是把我們的表合并成為一張,最簡單就像把部門信息里面的這些列的字段放到員工表中了。假設(shè)說本來部門叫A部門,現(xiàn)在改變了。那么都找出來所有A部門員工信息進行更改。同時也違反了咱們下面所學(xué)的知識。

數(shù)據(jù)庫范式

關(guān)系模型原理的核心是”規(guī)范化”概念,規(guī)范化是指把數(shù)據(jù)庫組織成在保持存儲數(shù)據(jù)完整性的同時最小化冗余數(shù)據(jù)的結(jié)構(gòu)過程;規(guī)范化的數(shù)據(jù)庫是符合關(guān)系模型規(guī)則的數(shù)據(jù)庫,通常把這些規(guī)則稱為范式;

第一范式(1NF)無重復(fù)的列

是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復(fù)的屬性。在第一范式(1NF)中表的每一行只包含一個實例的信息。簡而言之,第一范式就是無重復(fù)的列。

第二范式(2NF

第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,依賴于主鍵建立的表,主鍵必須有唯一性的元素,一個主鍵可以由一個或更多的組成唯一值的列組成,第二范式要求非主鍵列是主鍵的子集,非主鍵列活動必須完全依賴整個主鍵

第二范式示例:我們有這個表

學(xué)號、學(xué)生姓名、年齡、性別、課程、課程學(xué)分、系別、學(xué)科成績,系辦地址、系辦電話等信息;

如果我要滿足以下需求怎么呢?

  • 學(xué)生有那些基本信息
  • 學(xué)生選了那些課,成績是什么
  • 每個課的學(xué)分是多少
  • 學(xué)生屬于那個系,系的基本信息是什么。

那么會導(dǎo)致產(chǎn)生如下問題:

  • 問題分析
  •   因此不滿足第二范式的要求,會產(chǎn)生如下問題
  •   數(shù)據(jù)冗余: 同一門課程由n個學(xué)生選修,"學(xué)分"就重復(fù)n-1次;同一個學(xué)生選修了m門課程,姓名和年齡就重復(fù)了m-1次。
  •   更新異常:
  •   1)若調(diào)整了某門課程的數(shù)據(jù)表中所有行的"學(xué)分"值都要更新,否則會出現(xiàn)同一門課程學(xué)分不同的情況。學(xué)分,
  •   2)假設(shè)要開設(shè)一門新的課程,暫時還沒有人選修。這樣,由于還沒有"學(xué)號"關(guān)鍵字,課程名稱和學(xué)分也無法記錄入數(shù)據(jù)庫。
  •   刪除異常 : 假設(shè)一批學(xué)生已經(jīng)完成課程的選修,這些選修記錄就應(yīng)該從數(shù)據(jù)庫表中刪除。但是,與此同時,課程名稱和學(xué)分信息也被刪除了。很顯然,這也會導(dǎo)致插入異常。

如何解決呢?

選課關(guān)系表SelectCourse改為如下三個表:

  1. 學(xué)生:Student(學(xué)號,姓名, 年齡,性別,系別,系辦地址、系辦電話);
  2. 課程:Course(課程名稱, 學(xué)分);
  3. 選課關(guān)系:SelectCourse(學(xué)號, 課程名稱, 成績)。

第三范式:

第三范式規(guī)則查找以消除沒有直接依賴于第一范式和第二范式形成的表的主鍵的屬性。我們?yōu)闆]有與表的主鍵關(guān)聯(lián)的所有信息建立了一張新表。每張新表保存了來自源表的信息和它們所依賴的主鍵

關(guān)系模型

Sqlserver基礎(chǔ)教程系列1:基礎(chǔ)概念

 

數(shù)據(jù)庫存儲文件

  1. 存儲數(shù)據(jù)庫的啟動信息,用戶數(shù)據(jù)和對象也存儲在此文件中;默認(rèn)擴展名是.mdf
  2. 日志文件:恢復(fù)數(shù)據(jù)庫日志信息;默認(rèn)擴展名是.LOG

如何創(chuàng)建數(shù)據(jù)庫方法,我們都是通過SQLSERVER去完成的

Sqlserver基礎(chǔ)教程系列1:基礎(chǔ)概念

1、創(chuàng)建簡單的數(shù)據(jù)庫

語法:     create database database_name

如:create database Mydatabase1;

2、指定數(shù)據(jù)文件的數(shù)據(jù)庫

Create database Mydatabase2

ON primary(

--設(shè)置數(shù)據(jù)庫的邏輯名稱

Name=‘LogicNameOfDataFile2’,

--設(shè)置數(shù)據(jù)庫文件名

Filename=‘d:\datafile2.mdf’

)

On關(guān)鍵字用來創(chuàng)建數(shù)據(jù)文件,使用primary表示創(chuàng)建的主數(shù)據(jù)文件。

3、完整的數(shù)據(jù)庫創(chuàng)建方法

指定數(shù)據(jù)文件,日志文件與相應(yīng)的邏輯文件名的數(shù)據(jù)庫

Create database Mydatabase2

ON primary(

--設(shè)置數(shù)據(jù)庫的邏輯名稱

Name=‘LogicNameOfDataFile2’,

--設(shè)置數(shù)據(jù)庫文件名

Filename=‘d:\datafile2.mdf’

)

LOG ON(

--設(shè)置日志的的邏輯名稱

Name=‘LogicNameOfDataFile2’,

Filename=‘d:\datafile2.ldf’

)

4、指定大小的數(shù)據(jù)庫

這里大小包含數(shù)據(jù)文件設(shè)置的初始大小,最大存儲空間,自動增長幅度;

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%

)

 


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多