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.

主站蜘蛛池模板: 国产乱论视频| 日本欧美一二三区色视频| 日本免费福利视频| 伊人久久久大香线蕉综合直播| 99热最新网址| 一区二区偷拍美女撒尿视频| 欧美日韩免费| 毛片a级毛片免费观看免下载| 久久亚洲欧美综合| 青青青亚洲精品国产| 一本二本三本不卡无码| 粗大猛烈进出高潮视频无码| 免费精品一区二区h| 青青青国产精品国产精品美女| 国产在线一区二区视频| 国产免费怡红院视频| 91免费观看视频| 久草视频精品| 国产一区免费在线观看| 中文字幕在线视频免费| 欧美亚洲日韩中文| 欧美α片免费观看| 精品亚洲国产成人AV| 亚洲日本www| 秋霞午夜国产精品成人片| 亚洲色成人www在线观看| 国产在线自乱拍播放| 视频二区亚洲精品| 久久亚洲日本不卡一区二区| 精品欧美日韩国产日漫一区不卡| 亚洲欧美日本国产综合在线| www中文字幕在线观看| 色综合天天综合中文网| 亚洲成人在线免费| 欧美国产成人在线| 中文字幕无码中文字幕有码在线| 亚洲最大福利视频网| 国产www网站| 中文成人在线| 国产精品一区二区国产主播| 99视频在线看| 成人a免费α片在线视频网站| 亚洲欧美国产五月天综合| 久久久亚洲色| 福利在线一区| 美臀人妻中出中文字幕在线| 成人福利在线视频免费观看| 五月丁香伊人啪啪手机免费观看| 午夜视频日本| 国产00高中生在线播放| 国产精品香蕉在线观看不卡| www.狠狠| 伊人久久综在合线亚洲2019| 欧美激情,国产精品| 无码日韩人妻精品久久蜜桃| 亚洲日本中文字幕天堂网| 色悠久久综合| 国产高潮流白浆视频| 亚洲成A人V欧美综合| 色综合中文| 青青操视频在线| 午夜久久影院| 国产成人1024精品| 欧美午夜性视频| 国产免费一级精品视频| 国产电话自拍伊人| 成人一区专区在线观看| 欧美区在线播放| 精品视频一区在线观看| 日韩中文无码av超清| 成年人国产网站| 国产精品观看视频免费完整版| 91在线精品麻豆欧美在线| 无码久看视频| 一级成人a做片免费| 国产欧美日韩另类| 国产一区成人| 日本午夜在线视频| 国产精品第| 国产喷水视频| 欧美狠狠干| 中文字幕天无码久久精品视频免费|