999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQLServer數(shù)據(jù)表范式細(xì)化設(shè)計(jì)教學(xué)研究

2021-10-24 00:34:33陳偉蓮
計(jì)算機(jī)時(shí)代 2021年10期

陳偉蓮

摘要: 在數(shù)據(jù)庫(kù)系統(tǒng)及應(yīng)用教學(xué)中,傳統(tǒng)教學(xué)采用數(shù)學(xué)公式對(duì)關(guān)系模型數(shù)據(jù)表范式設(shè)計(jì)進(jìn)行定義和描述,使多數(shù)學(xué)生理解得不是很透徹。就此問題,文章通過實(shí)例探討了關(guān)系數(shù)據(jù)庫(kù)SQL Server數(shù)據(jù)表范式設(shè)計(jì)的教學(xué),使得教師可以簡(jiǎn)單教學(xué),學(xué)生易于理解,對(duì)于數(shù)據(jù)庫(kù)設(shè)計(jì)能力有進(jìn)一步的提高,對(duì)教學(xué)質(zhì)量有進(jìn)一步的提升。

關(guān)鍵詞: 數(shù)據(jù)表; 范式; 教學(xué)實(shí)例; 設(shè)計(jì)能力

中圖分類號(hào):TP393.09? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2021)10-96-03

Research on the teaching of detailed design of SQL Server data table paradigm

Chen Weilian

(Information Technology Department of Guangdong Polytechnic College, Zhaoqing, Guangdong 526061, China)

Abstract: In the teaching of database system and application, the traditional teaching uses mathematical formulas to define and describe the design of data table paradigm of relational model, so that most students do not have a very thorough understanding of it. On this issue, this paper discusses the teaching of relational database SQL Server data table paradigm design through examples, so that teachers can simply teach, students are easy to understand, further improve their database design ability thereby the teaching quality.

Key words: data table; paradigm; teaching example; design ability

0 引言

在數(shù)據(jù)庫(kù)系統(tǒng)及應(yīng)用教學(xué)過程中,除了考慮教材因素還要考慮學(xué)生理解能力參差不齊的因素。在關(guān)系模型數(shù)據(jù)庫(kù)SQL Server數(shù)據(jù)表范式設(shè)計(jì)上,傳統(tǒng)教學(xué)采用數(shù)學(xué)公式進(jìn)行定義和描述,多數(shù)學(xué)生理解得不是很清楚明白,為了使得老師可以簡(jiǎn)單教學(xué),學(xué)生易于理解,對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)能力有進(jìn)一步的提高,本文就此問題,擬對(duì)關(guān)系數(shù)據(jù)庫(kù)SQL Server數(shù)據(jù)表范式細(xì)化設(shè)計(jì)教學(xué)進(jìn)行一些實(shí)例探討。

本文在闡述關(guān)系數(shù)據(jù)庫(kù)范式定義基礎(chǔ)上,結(jié)合具體數(shù)據(jù)表結(jié)構(gòu),因SQL語言進(jìn)行表述,并生成具體數(shù)據(jù)表。通過這些實(shí)例,教師會(huì)更容易傳授模塊知識(shí),讓學(xué)生擺脫數(shù)學(xué)公式的抽象感,用更接近實(shí)際應(yīng)用的數(shù)據(jù)表進(jìn)行理解,從而更好學(xué)習(xí)數(shù)據(jù)庫(kù)基本原理。

1 關(guān)系數(shù)據(jù)庫(kù)范式定義

根據(jù)通用教材定義,關(guān)系數(shù)據(jù)庫(kù)范式一般被定義為,在關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系是需要滿足一定條件的,滿足這些不同程度的規(guī)范化就叫做范式,范式是關(guān)系數(shù)據(jù)庫(kù)理論的基礎(chǔ),也是我們?cè)谠O(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)過程中所要遵循的規(guī)則和指導(dǎo)方法[1]。目前有跡可尋的共有八種范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三個(gè)范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF),本文就探討此三范式。

第一范式(1NF)是指如果一個(gè)關(guān)系的每一屬性都是不可再分的,則該關(guān)系屬于第一范式。也就是說,數(shù)據(jù)庫(kù)表中的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或不能有重復(fù)的屬性[2]。如果出現(xiàn)重復(fù)的屬性,就可能需要定義一個(gè)新的實(shí)體,新的實(shí)體由重復(fù)的屬性構(gòu)成,新實(shí)體與原實(shí)體之間為一對(duì)多關(guān)系。

第二范式(2NF)是指如果關(guān)系模型為第一范式,并且關(guān)系中的每一個(gè)非主屬性完全函數(shù)依賴于此關(guān)系的某個(gè)候選鍵,則稱該關(guān)系為第二范式,第二范式是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF) [3]。第二范式(2NF)要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或行必須可以被唯一地區(qū)分,為實(shí)現(xiàn)區(qū)分通常需要為表加上一個(gè)列,以存儲(chǔ)各個(gè)實(shí)例的唯一標(biāo)識(shí)。

第三范式(3NF)是指如果關(guān)系模型是屬于第二范式,并且它的每個(gè)非主屬性都不傳遞依賴于此關(guān)系的主屬性,則稱該關(guān)系是第三范式[4]。由此可見,第二范式(2NF)可從第一范式(1NF)消除非主屬性對(duì)主屬性的部分函數(shù)依賴后獲得,而第三范式(3NF)可從第二范式(2NF)消除非主屬性對(duì)主屬性的傳遞函數(shù)依賴后獲得。

2 數(shù)據(jù)表范式細(xì)化設(shè)計(jì)教學(xué)實(shí)例

2.1 第一范式(1NF)教學(xué)實(shí)例

根據(jù)定義可知,第一范式就是無重復(fù)的列。先列舉一個(gè)實(shí)例,設(shè)有一個(gè)簡(jiǎn)明學(xué)生數(shù)據(jù)表stu1,由學(xué)號(hào)、姓名、性別、年齡、通訊方式組成的表,如表1。

由于表1中通訊方式列包括微信號(hào)或QQ號(hào),有嵌套列,沒有達(dá)到第一范式的基本要求見,在SQLSERVER無法實(shí)現(xiàn)數(shù)據(jù)表表述,此時(shí)需要將其規(guī)范化為第一范式。可以將通訊方式分為“微信號(hào)”和“QQ號(hào)”兩個(gè)屬性,即學(xué)生(學(xué)號(hào),姓名,性別,年齡,微信號(hào),QQ號(hào)),SQL語言描述如下:

create table stu2(學(xué)號(hào) int,姓名 varchar(10),

性別 char(2),年齡 int, 微信號(hào) int,QQ號(hào) int)

insert into stu2 values

(202001,'小陳','男',16,1350103,3964531)

insert into stu2 values

(202002,'小李','男',15,1340203,4561326)

insert into stu2 values

(202003,'小黃','女',16,223583,4789561)

insert into stu2 values

(202004,'小何','女',17,1369874,6969583)

在SQL Server中實(shí)現(xiàn)數(shù)據(jù)表如表2,達(dá)到第一范式的基本要求。其中,在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)中,第一范式(1NF)是對(duì)關(guān)系模式的基本要求,不滿足第一范式(1NF)的數(shù)據(jù)庫(kù)就不是關(guān)系數(shù)據(jù)庫(kù)。

2.2 第二范式(2NF)教學(xué)實(shí)例

根據(jù)定義,第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,數(shù)據(jù)庫(kù)表中非關(guān)鍵字段對(duì)任一候選關(guān)鍵字段的都不存在部分函數(shù)依賴[5]。即是認(rèn)為,第二范式(2NF)要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或行必須可以被唯一地區(qū)分,為實(shí)現(xiàn)區(qū)分通常需要為表加上一個(gè)列,以存儲(chǔ)各個(gè)實(shí)例的唯一標(biāo)識(shí),這個(gè)唯一屬性列被稱為主關(guān)鍵字或主鍵、主碼。因此,當(dāng)?shù)谝环妒剑?NF)設(shè)計(jì)中當(dāng)主鍵為組合關(guān)鍵字時(shí),必須將其規(guī)范化為第二范式(2NF),否則會(huì)導(dǎo)致數(shù)據(jù)表數(shù)據(jù)冗余及更新異常等問題。

列舉一個(gè)實(shí)例,設(shè)定一個(gè)學(xué)生課程成績(jī)表sci1,由學(xué)號(hào)、姓名、課程號(hào)、課程名稱、成績(jī)等項(xiàng)組成,關(guān)鍵字為組合關(guān)鍵字(學(xué)號(hào),課程號(hào)),SQL語言描述如下:

create table sci1(學(xué)號(hào) int,姓名 char(10), 課程號(hào) int,

課程名稱 char(10),成績(jī) int, primary key(學(xué)號(hào),課程號(hào)))

insert into sci1 values(202001,'小陳',101,'中文',76)

insert into sci1 values(202002,'小李',101,'中文',80)

insert into sci1 values(202003,'小黃',101,'中文',91)

insert into sci1 values(202001,'小陳',102,'數(shù)學(xué)',66)

在SQL Server中實(shí)現(xiàn)數(shù)據(jù)表如表3,該表符合第一范式(1NF)定義,但是存在如下決定關(guān)系:(課程號(hào))→(課程名稱);(學(xué)號(hào))→(姓名)。存在組合關(guān)鍵字中的字段決定非關(guān)鍵字的情況,由于非主屬性課程名稱僅依賴于課程號(hào),對(duì)關(guān)鍵字(學(xué)號(hào),課程號(hào))只是部分的依賴,而不是完全依賴,不符合2NF的基本要求。

要將上述數(shù)據(jù)表規(guī)范為第二范式(2NF),可以根據(jù)定義,為數(shù)據(jù)表增加一列ID,作為各個(gè)實(shí)例的唯一主鍵,ID為自增序列數(shù),SQL語言描述如下:

create table sci2(ID int identity(1,1) primary key,

學(xué)號(hào)int,姓名 char(10), 課程號(hào) int, 課程名稱 char(10),

成績(jī) int)

insert into sci2 values(202001,'小陳',101,'中文',76)

insert into sci2 values(202002,'小李',101,'中文',80)

insert into sci2 values(202003,'小黃',101,'中文',91)

insert into sci2 values(202001,'小陳',102,'數(shù)學(xué)',66)

上述設(shè)計(jì)的數(shù)據(jù)庫(kù)表是符合第二范式的,部分消除了更新異常、插入異常和刪除異常。但是如此設(shè)計(jì)的學(xué)生課程成績(jī)表會(huì)導(dǎo)致數(shù)據(jù)冗余:同一門課程號(hào)由多個(gè)學(xué)生選修,課程名稱就重復(fù)學(xué)生數(shù)減1次;同一個(gè)學(xué)號(hào)選修了多門課程,姓名就重復(fù)學(xué)生數(shù)減1次,所以有必要進(jìn)一步優(yōu)化。

2.3 第三范式(3NF)教學(xué)實(shí)例

在第二范式的基礎(chǔ)上,數(shù)據(jù)表中如果不存在非關(guān)鍵字段對(duì)任一候選關(guān)鍵字段的傳遞函數(shù)依賴則符合第三范式。所謂傳遞函數(shù)依賴,指的是如果存在"A→B→C"的決定關(guān)系,則C傳遞函數(shù)依賴于A。因此,滿足第三范式的數(shù)據(jù)庫(kù)表應(yīng)不存在如下依賴關(guān)系:關(guān)鍵字段→非關(guān)鍵字段x→非關(guān)鍵字段y。簡(jiǎn)單來說,就是非主鍵字段不能相互依賴[6]。

基于上述表4學(xué)生課程成績(jī)表(ID,學(xué)號(hào),姓名,課程號(hào),課程名稱,成績(jī))關(guān)系分析,關(guān)鍵字為單一關(guān)鍵字“ID”,存在如下決定關(guān)系:

(ID)→(學(xué)號(hào))→(姓名)

(ID)→(課程號(hào))→(課程名稱)

即存在非關(guān)鍵字段“姓名”、“課程名稱”對(duì)關(guān)鍵字段“ID”的傳遞函數(shù)依賴,以不屬于第三范式,會(huì)存在數(shù)據(jù)冗余、更新異常、插入異常和刪除異常的情況。

在細(xì)化教學(xué)案例中,要把表4學(xué)生課程成績(jī)表sci2改為如下三個(gè)表:學(xué)生表:stu(學(xué)號(hào),姓名);課程表:cou(課程號(hào),課程名稱);成績(jī)表:rep(學(xué)號(hào),課程號(hào),成績(jī))。

細(xì)化后的學(xué)生表見表5,SQL語言描述如下:

create table stu(學(xué)號(hào) int,姓名 char(10),primary key(學(xué)號(hào)))

insert into stu values(202001,'小陳')

insert into stu values(202002,'小李')

insert into stu values(202003,'小黃')

細(xì)化后的課程表見表6,SQL語言描述如下:

create table cou(課程號(hào) int, 課程名稱 char(10),

primary key (課程號(hào)))

insert into cou values(101,'中文')

insert into cou values(102,'數(shù)學(xué)')

細(xì)化后的成績(jī)表見表7,SQL語言描述如下:

create table rep(學(xué)號(hào) int,課程號(hào) int, 成績(jī) int,

primary key (學(xué)號(hào),課程號(hào)))

insert into rep values(202001,101,76)

insert into rep values(202002,101,80)

insert into rep values(202003,101,91)

insert into rep values(202001,102,66)

如此設(shè)計(jì)的數(shù)據(jù)庫(kù)表是符合第三范式的,消除了數(shù)據(jù)冗余、更新異常、插入異常和刪除異常,但是實(shí)際應(yīng)用中太過細(xì)化的設(shè)計(jì)會(huì)造成查詢連接的復(fù)雜度。

3 結(jié)束語

通過對(duì)關(guān)系數(shù)據(jù)庫(kù)SQL Server數(shù)據(jù)表范式實(shí)例化細(xì)化教學(xué),讓教師在教學(xué)上有具體應(yīng)用例子,易于將理論融入實(shí)踐教學(xué),易將數(shù)學(xué)公式用實(shí)際數(shù)據(jù)庫(kù)表呈現(xiàn);而學(xué)生由于有實(shí)際應(yīng)用例子作為參照物,容易理解幾種關(guān)系數(shù)據(jù)庫(kù)范式,在數(shù)據(jù)庫(kù)實(shí)際應(yīng)用中有一定直觀的認(rèn)識(shí),在此認(rèn)識(shí)基礎(chǔ)上獲得一定的設(shè)計(jì)經(jīng)驗(yàn),能更好的投入到符合實(shí)際需要的設(shè)計(jì),對(duì)數(shù)據(jù)表設(shè)計(jì)的能力會(huì)有進(jìn)一步的提高。將數(shù)據(jù)表范式設(shè)計(jì)實(shí)例化模式取得了一定的實(shí)際教學(xué)效果,獲得了大多數(shù)學(xué)生的肯定,希望這對(duì)同類高校數(shù)據(jù)庫(kù)原理及應(yīng)用課程教學(xué)改革有一定的參考意義。

參考文獻(xiàn)(References):

[1] 史嘉權(quán).數(shù)據(jù)庫(kù)系統(tǒng)教程[M].清華大學(xué)出版社,2001.

[2] 劉世峰.數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用[M].中央開放大學(xué)出版社,2004.

[3] 王珊,薩師煊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].高等教育出版社,2006.

[4] 孫俊吾.淺析關(guān)系數(shù)據(jù)庫(kù)中關(guān)系模式的規(guī)范化理論[J].職業(yè)技術(shù),2009.7.

[5] 馬雪英.基于函數(shù)依賴的模式分解方法[J].計(jì)算機(jī)應(yīng)用與軟件,2004.4:31-33

[6] 季飛.關(guān)系數(shù)據(jù)庫(kù)規(guī)范化應(yīng)用研究[J].科技資訊,2007.36.

主站蜘蛛池模板: 伊人成人在线视频| 精品久久国产综合精麻豆| 国产噜噜在线视频观看| 国产综合色在线视频播放线视 | 亚洲国产综合第一精品小说| 国产无码精品在线播放| 91口爆吞精国产对白第三集| 99热最新在线| 毛片视频网| 亚洲精品福利视频| 国产色伊人| 亚洲综合婷婷激情| av天堂最新版在线| 熟女视频91| 综合亚洲网| 欧美成人一级| 日韩在线网址| 在线观看国产精品第一区免费| 美臀人妻中出中文字幕在线| 欧美午夜网| 国产黄视频网站| 免费一级毛片在线观看| 国产在线观看精品| 日本少妇又色又爽又高潮| 国内熟女少妇一线天| 日本高清免费不卡视频| 免费人欧美成又黄又爽的视频| 国产视频久久久久| 国产精品毛片一区| 国产在线小视频| h网址在线观看| 国产制服丝袜无码视频| 亚洲制服丝袜第一页| 国产美女自慰在线观看| 中文字幕va| 久久综合伊人77777| 激情国产精品一区| 亚洲天堂免费| 青草娱乐极品免费视频| 狠狠色丁香婷婷综合| 国产成人高清在线精品| 久久美女精品国产精品亚洲| 国产无人区一区二区三区| 久久久久无码精品国产免费| AⅤ色综合久久天堂AV色综合| 无码国产偷倩在线播放老年人| 国产亚洲精品97在线观看| 波多野结衣无码视频在线观看| 国产综合在线观看视频| 国产精品久久久久久久久| 91精品国产丝袜| 最新国产精品第1页| 国产免费怡红院视频| 九九热视频精品在线| 黄色网址免费在线| 91蝌蚪视频在线观看| 久视频免费精品6| 第一页亚洲| 国产又色又刺激高潮免费看| 女人18一级毛片免费观看| 一本无码在线观看| 亚洲色精品国产一区二区三区| 丝袜高跟美脚国产1区| 国产精品无码久久久久久| 自拍亚洲欧美精品| 亚洲欧洲日产国码无码av喷潮| 国产精品永久免费嫩草研究院| 国产AV无码专区亚洲精品网站| 久久99国产综合精品女同| 中文字幕在线看| 久久77777| 日韩成人高清无码| 欧美成人第一页| 国产成人av大片在线播放| 亚洲一区二区三区国产精华液| 欧美黑人欧美精品刺激| 99人体免费视频| 毛片网站免费在线观看| 国产va免费精品观看| 亚洲无线视频| 欧洲精品视频在线观看| 熟妇丰满人妻av无码区|