亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于數(shù)據(jù)庫模式導航的select多表查詢教學法

        2009-01-20 01:55:54黎升洪
        計算機教育 2009年24期
        關(guān)鍵詞:教學法

        摘要:查詢語句select是SQL的教學重點?;陉P(guān)系自然聯(lián)接運算的工作原理,本文提出借助關(guān)系數(shù)據(jù)庫模式圖中表之間的關(guān)聯(lián),來“導航”編寫select查詢語句方法,借助導航提示功能,在待求問題和select語句間構(gòu)成映射,通過已知條件沿數(shù)據(jù)表間的關(guān)聯(lián)來求未知,最終得到正確的select語句代碼。本教學法在實踐中取得良好效果。

        關(guān)鍵詞:SQL查詢;教學法;數(shù)據(jù)庫模式;select語句;自然聯(lián)接

        中圖分類號:G642 文獻標識碼:A

        SQL是關(guān)系數(shù)據(jù)庫的標準查詢語言,查詢語句select是SQL的教學重點,它具有功能強,結(jié)構(gòu)復雜等特點。國內(nèi)多數(shù)大學已經(jīng)將SQL語句納入財經(jīng)、管理類的數(shù)據(jù)庫教學大綱中。江西財經(jīng)大學公共基礎(chǔ)課程“數(shù)據(jù)庫應(yīng)用”中,SQL查詢是教學的重要內(nèi)容。通過多年教學摸索,我們總結(jié)出基于數(shù)據(jù)庫模式導航的select多表查詢教學法。這里“導航”的含義是通過已知來求解未知,導航中方向的識別是借助數(shù)據(jù)庫模式圖。從教學反饋來看,學生能夠理解關(guān)系數(shù)據(jù)庫多表查詢的真正含義,教學效果良好。

        1數(shù)據(jù)庫模式的核心概念

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

        (1) 關(guān)系:一個關(guān)系就是一張二維表,通常將一個沒有重復行、重復列的二維表看成一個關(guān)系,每個關(guān)系都有一個關(guān)系名。和關(guān)系密不可分的兩個概念是描述關(guān)系行的元組(也稱為記錄)和描述關(guān)系列的屬性(也稱為字段)。只有屬性和元組確定后,才能夠唯一確定一個關(guān)系(也稱為表)。后面我們將混用關(guān)系和表這兩個術(shù)語。

        (2) 主關(guān)鍵字:一個關(guān)系中能唯一區(qū)分、確定不同元組的屬性或?qū)傩越M合,稱為該關(guān)系的主關(guān)鍵字或主鍵PK (Primary Key)。主關(guān)鍵字對應(yīng)的屬性稱為主屬性。單個屬性組成的關(guān)鍵字稱為單關(guān)鍵字,多個屬性組合的關(guān)鍵字稱為組合關(guān)鍵字。需要強調(diào)的是,關(guān)鍵字的屬性值不能取“空值”。所謂空值就是“不知道”或“不確定”的值,因空值無法唯一區(qū)分和確定元組,它不能是組成關(guān)鍵字的屬性。

        (3) 外部關(guān)鍵字:一個關(guān)系中某個屬性或?qū)傩越M合不是這個關(guān)系的主關(guān)鍵字,但卻是另一個關(guān)系的主關(guān)鍵字,稱此屬性或?qū)傩越M合為這個關(guān)系的外部關(guān)鍵字或外鍵FK (Foreign Key)。兩個關(guān)系之間的聯(lián)系是通過外部關(guān)鍵字實現(xiàn)的。

        主關(guān)鍵字和外部關(guān)鍵字的作用是實現(xiàn)數(shù)據(jù)庫中多個關(guān)系間的完整性約束。

        1.2關(guān)系完整性約束

        關(guān)系完整性約束是為保證數(shù)據(jù)庫中多個關(guān)系的數(shù)據(jù)的正確性和相容性,對數(shù)據(jù)庫提出的某種約束條件或規(guī)則。關(guān)系完整性通常包括:實體完整性、參照完整性、域完整性和用戶定義完整性,其中實體完整性和參照完整性,是數(shù)據(jù)庫必須滿足的完整性約束條件。實際上,數(shù)據(jù)庫關(guān)系完整性約束實際上是定義數(shù)據(jù)必須滿足的基本要求,當數(shù)據(jù)違反數(shù)據(jù)庫關(guān)系完整性約束時,數(shù)據(jù)庫將拒絕違反關(guān)系完整性的數(shù)據(jù)的插入或更新,通過關(guān)系完整性可以保證數(shù)據(jù)庫中沒有垃圾數(shù)據(jù)。

        或者說通過定義關(guān)系的完整性約束,使得數(shù)據(jù)庫有了一定的行為能力。當用戶提交那些違背數(shù)據(jù)庫關(guān)系完整性約束的數(shù)據(jù)時,數(shù)據(jù)庫將拒絕用戶提交的操作,這樣保證數(shù)據(jù)庫中的數(shù)據(jù)是真實有效的。

        (1) 實體完整性:實體完整性是指一個關(guān)系中不能存在兩個完全相同的記錄。實體完整性是通過關(guān)系的主關(guān)鍵字(PK)來實現(xiàn)的。

        (2) 參照完整性:關(guān)系數(shù)據(jù)庫中通常都包含多個存在相互聯(lián)系的關(guān)系(表),關(guān)系與關(guān)系之間的聯(lián)系是通過公共屬性來實現(xiàn)的。所謂公共屬性(聯(lián)接屬性),它是一個關(guān)系R(稱為被參照關(guān)系或目標關(guān)系,常被稱為一表)的主關(guān)鍵字,同時又是另一關(guān)系K(稱為參照關(guān)系,常被稱為多表)的外部關(guān)鍵字。所謂參照完整性是指參照關(guān)系K中外部關(guān)鍵字的取值必須與被參照關(guān)系R中某元組主關(guān)鍵字的值相同,否則違反了參照完整性約束。

        可以看到,主關(guān)鍵字實現(xiàn)了對單個關(guān)系的不含重復元組的約束,外部關(guān)鍵字實現(xiàn)了具有公共屬性的兩個關(guān)系間的約束。

        1.3關(guān)系運算

        關(guān)系運算中,輸入是一個或多個關(guān)系,輸出是經(jīng)過關(guān)系運算后得到的一個新關(guān)系。常見關(guān)系運算包括:選擇、投影、自然聯(lián)接。由于選擇和投影運算只要求一個輸入關(guān)系,故稱為一元關(guān)系運算符,而自然聯(lián)接運算要求二個輸入關(guān)系,故稱為二元關(guān)系運算符。

        (1)選擇運算:給定一個關(guān)系,從中篩選出滿足某種條件的記錄(或元組)的過程稱為選擇。(2)投影運算:給定一個關(guān)系,從中只檢索期望得到的字段(或?qū)傩?的過程稱為投影。(3)自然聯(lián)接運算:不同于選擇、投影運算僅需一個輸入關(guān)系,二元自然聯(lián)接運算有前提條件,既參與自然聯(lián)接運算的兩個輸入關(guān)系間必須有一個公共的屬性(稱為聯(lián)接屬性),在一個關(guān)系(稱為一表)中它是主鍵,而在另一個關(guān)系(稱為多表)中它是外鍵。自然聯(lián)接運算的結(jié)果:在屬性上是兩個參與運算關(guān)系的屬性疊加(部分系統(tǒng)會剔除重復的聯(lián)接屬性);在元組上是在多表元組的基礎(chǔ)上,擴展與一表聯(lián)接屬性取值相同的對應(yīng)一表元組數(shù)據(jù)值,既先取一條多表元組,再以該元組的聯(lián)接屬性取值為條件,搜索一表中的元組,當一表的聯(lián)接屬性與已知條件相同時,將該一表的元組拼接到給定多表元組上,形成一條新關(guān)系中的元組。如此反復對多表元組進行相同操作,最后得到新的關(guān)系表。可以認為是一表被融合到了多表。自然聯(lián)接操作是關(guān)系數(shù)據(jù)庫多表查詢的理論基礎(chǔ)。

        1.4數(shù)據(jù)庫模式圖實例

        數(shù)據(jù)庫模式圖是從全局的角度來描述多個關(guān)系之間的實體完整性和參照完整性。關(guān)系之間的參照完整性約束連線構(gòu)成了關(guān)系間的導航圖。

        圖1所示的是一個教學管理數(shù)據(jù)庫,它涉及4個關(guān)系,這些關(guān)系之間的完整性約束由施加在這些關(guān)系間的連線表示。各表中小鑰匙表示該表的主關(guān)鍵字。圖中不同關(guān)系間的連線表示關(guān)系間的外鍵約束。圖1中,記號“+”表示主鍵中的壹,記號 表示外鍵中的多。兩表之間的連線表示兩表之間的參照完整性約束,既這兩個表之間可以進行自然聯(lián)接運算。而沒有連線的兩個表之間,則不能夠直接進行自然聯(lián)接運算。例如,“學生”關(guān)系中,“學號”是主關(guān)鍵字,則“學號”唯一確定“學生”關(guān)系中的一條記錄。實際情況是一個班級的“學生表”中可能存在姓名相同的人,由于他們是兩個不同的人,因此用“姓名”作為主關(guān)鍵字是不行的,但“學號”能唯一標識他們。

        如圖1所示,“成績表”作為參照關(guān)系,“學生表”作為被參照關(guān)系,“學號”是這兩個關(guān)系聯(lián)接屬性,則這兩個關(guān)系進行自然聯(lián)接運算的結(jié)果是形成一個新的關(guān)系。具體解釋為:新關(guān)系中,元組為“多”表的元組,即成績表的元組,屬性為兩個關(guān)系屬性疊加。新關(guān)系中,一條元組的“一”表的屬性取值是“一”表的聯(lián)接屬性值等于“多”表的聯(lián)接屬性值。新關(guān)系可以認為是“一”表被合并到了多表。

        2基于數(shù)據(jù)庫模式導航的SQL查詢教學法

        2.1單表和兩表自然聯(lián)接的select語句編寫

        對單表的運算包括投影和選擇。講解重點是select條件構(gòu)造,既關(guān)系運算符、邏輯運算符、集合運算in、字符匹配運算符like和between…and…等。

        兩個表的自然聯(lián)接運算必須有參照完整性約束,這兩個表才能夠進行自然聯(lián)接操作。

        select字段列表;

        from 兩個數(shù)據(jù)表;

        where 條件;

        group by 條件;

        having條件;

        order by 條件

        注意,一定要求規(guī)范select語句格式。分行使得select語句易于理解,縮格表示被縮格的子句是上面語句的子部分。

        兩個表的自然聯(lián)接運算重點是where條件中如何反映兩個表的聯(lián)接屬性。這里方法是一表的聯(lián)接屬性必須等于多表的聯(lián)接屬性,一般表述為:

        where 一表. 聯(lián)接屬性 = 多表.聯(lián)接屬性;

        例如,學生表和成績表的自然聯(lián)接運算,對應(yīng)的select語句為:

        select *;

        from 學生表,成績表;

        where學生表 . 學號 =成績表. 學號

        2.2多表查詢的select編寫方法

        多表查詢可以認為是兩表自然聯(lián)接例子的擴展,首先是其中兩個表實現(xiàn)自然聯(lián)接運算形成一個新的表,然后這個新表再和其它表格進行自然聯(lián)接運算,又形成一個新的表,如此反復最終形成一個表。其一般形式為:

        select字段列表;

        from 多個數(shù)據(jù)表;

        where 條件;

        group by 條件;

        having條件;

        order by 條件

        由于兩個具有主、外鍵約束的表之間自然聯(lián)接的結(jié)果是一個新表,其字段為這兩個表字段的疊加,記錄為多表的記錄。當給的查詢涉及多個數(shù)據(jù)表時,通過給定的已知,沿數(shù)據(jù)表間的關(guān)聯(lián)來求未知,這就是基于數(shù)據(jù)庫模式的導航select編寫方法。一個更為簡單的方法是在數(shù)據(jù)模式的基礎(chǔ)上使用填字格方式,具體為:

        select字段列表:要求輸出的字段出現(xiàn)在“字段列表”。

        from 數(shù)據(jù)表列表:將所有具備輸出字段的數(shù)據(jù)表加入到“數(shù)據(jù)表列表”,如果這樣選擇的多個數(shù)據(jù)表在給定的數(shù)據(jù)模式中不存在關(guān)聯(lián),則必須將關(guān)聯(lián)這些數(shù)據(jù)表的中間數(shù)據(jù)表也加入到“數(shù)據(jù)表列表”,雖然它們不需要輸出字段值。

        where 條件:使用“表名.主鍵 =表名.外鍵”實現(xiàn)二表間的關(guān)聯(lián),多表間的聯(lián)接使用“表名.主鍵 =表名.外鍵 and 表名.主鍵 =表名.外鍵”方式,最后再“and已知條件”。

        下面,我們通過一個例子來說明求解過程。

        案例:求計算機科學技術(shù)2003-01班的所有成績單。

        分析:“計算機科學技術(shù)2003-01班”對應(yīng)為“班級表”中的“專業(yè)名稱”,這是已知條件。待求為“學生表”的“姓名”;“課程”表的“課程號、課程名”;“成績表”的“成績”。由此得到對應(yīng)的select語句為:

        select 姓名,課程表.課程號,課程名,成績;

        from 學生表,成績表,課程表,班級表;

        where 學生表.學號 = 成績表.學號;

        and 課程表.課程號 = 成績表.課程號;

        and 班級表.班級號 = 學生表.班級號;

        and 專業(yè)名稱 = "計算機科學技術(shù)2003-01班"

        3結(jié)語

        數(shù)據(jù)庫模式圖就是數(shù)據(jù)庫管理員預先在數(shù)據(jù)庫中定義的行為模式。本文引入“數(shù)據(jù)庫導航”概念,讓學生自己學會利用數(shù)據(jù)庫模式圖,通過已知來求未知。將select含多表的查詢轉(zhuǎn)換為兩兩表間的自然聯(lián)接運算,進而,變成兩個表的自然聯(lián)接運算,最終,轉(zhuǎn)換成為一個表的投影和選擇操作。這樣,學生能夠理解并編寫正確的SQL查詢語句。

        參考文獻:

        [1] 黎升洪,楊波,沈波. Visual FoxPro面向?qū)ο蟪绦蛟O(shè)計教程[M]. 2版. 北京:科學出版社,2007.

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

        Didactics of Multi-Tables Select Sentence in SQL Based on the Navigation of Database Scheme

        LI Sheng-hong

        (School of Information & Technology, Jiangxi University of Finance & Economics, Nanchang 330013, China)

        Abstract: The didactics of select sentence in SQL is a keystone. A new didactics is proposed for the didactics based on the relationships, “navigation”, among the tables of a database scheme according to the principle of natural joint in relationship algebra. The mapping between a problem and a select sentence can be constructed by means of the navigation between tables, where a solution can be solved from a given condition. The effect of the didactics is remarkable.

        Key words: SQL query; didactics; database scheme; select sentence in SQL; natural joint

        猜你喜歡
        教學法
        Fourier變換的工程例證式教學法探索
        分層教學法在初中化學教學中的應(yīng)用
        甘肅教育(2020年14期)2020-09-11 07:57:54
        批注式閱讀教學法探究
        甘肅教育(2020年14期)2020-09-11 07:57:40
        實施“六步教學法”構(gòu)建高中政治高效課堂
        甘肅教育(2020年8期)2020-06-11 06:10:04
        啟發(fā)式教學法在高中生物教學中的應(yīng)用研究
        甘肅教育(2020年22期)2020-04-13 08:11:08
        高中數(shù)學實踐教學法的創(chuàng)新策略探討
        合唱教學法之合唱訓練中的“和”與“合”
        北方音樂(2017年4期)2017-05-04 03:40:34
        高中生物教學中PBL教學法應(yīng)用初探
        學周刊(2016年26期)2016-09-08 09:03:12
        PBL教學法在內(nèi)科見習中的實踐與思考
        PBL教學法在中醫(yī)內(nèi)科臨床教學中的應(yīng)用
        国产成人乱色伦区小说| 日本道色综合久久影院| 欧美亚洲一区二区三区| 亚洲熟女一区二区三区| 国产欧美日韩视频一区二区三区| 午夜无码片在线观看影视| 激情内射亚洲一区二区三区爱妻| 日本一道dvd在线中文字幕| 少妇的诱惑免费在线观看| 国产精品不卡在线视频| 日本黄色影院一区二区免费看| 欧美日本精品一区二区三区| 免费乱理伦片在线观看| 插我一区二区在线观看| 亚洲欧美日韩在线不卡| 美女高潮无遮挡免费视频 | 国产av一区仑乱久久精品| 久久精品国产亚洲av沈先生| 日本一区二区在线高清观看| 人人爽人人爽人人片av| 樱桃视频影视在线观看免费| 99热精品国产三级在线观看| 国产人成在线成免费视频| 日本少妇熟女一区二区| 亚洲人成在久久综合网站| 国产精品高清一区二区三区不卡| 国产成人精品a视频| 女人被爽到呻吟gif动态图视看| 国产91对白在线观看| 亚洲中文字幕高清乱码毛片| 日本五十路人妻在线一区二区| 中文字幕一精品亚洲无线一区| 成人免费网站视频www| 亚洲人成网站在线播放小说| 久久久人妻精品一区bav| 中文字幕人妻伦伦| 午夜不卡久久精品无码免费| 中文字幕无码免费久久9| 成人国产高清av一区二区三区| 国产日产亚洲系列最新 | 国产又色又爽无遮挡免费动态图|