資料庫課程設計學生成績管理

2021-05-22 11:07:20 字數 4716 閱讀 9849

《sql資料庫技術》課程設計

一、題目:學生成績管理

二、因為我做的是學生成績管理,所以資料庫中至少有個乙個表是來儲存學生的各課成績的。有了學生成績,得知道這個成績是哪個學生的,所以此表中也得有學生姓名,但是學生姓名肯定有重複的 ,所以得必須有個標誌來惟一標識乙個學生,所以得給每個學生乙個編號(學號),但是也得必須清楚,這個成績是哪門課程的,所以給課程定義了乙個編號。之後,得想到有了學生成績表,總得有個表來存放學生資訊吧,所以又建立乙個學生資訊表,此表中的必須的字段得有學號、姓名、班級,其他的字段可以根據需要來新增。

然後就是得有個課程表來存放哪個教師教哪門課程資訊,所以此表中至少得有課程號,課程名稱和教師的惟一標識(教師編號),再有乙個表來存放教師的資訊的,其中的字段必須有教師編號,教師姓名和所在的部門,當然也可以有教師出生日期、職稱、**號碼等字段。

總之,這個學生管理系統總共包括四個表學生資訊表student、教師資訊表teacher、成績表score和課程表course。

student表:在建表時,除了新增學號、姓名、班級必要字段,還新增一些其他的字段,比如:出生日期、性別、郵箱位址和型別等。

teacher表:在建表時,除了新增教師編號,教師姓名,部門必要字段,還可以新增一些其他的字段,比如:出生日期、性別、和**等。

score表:此表應該包括學生學號、課程號和成績等。

course表:應包括課程號,對應的課程名稱和教此課程的教師編號。

(1)、建立乙個資料庫,然後在此資料庫中建立這四個資料表。

(2)、向表中新增記錄。

(3)、用一些查詢語句來檢視表中的特定記錄。

(4)、向表中新增一些字段。如:向teacher表中新增字段 tel

(5)、建立乙個自定義資料型別,並修改student表中的某個字段為此資料型別。

(6)、建立幾個檢視

查詢某個班級的學生資訊

檢視每門課程的平均成績

檢視選修計算機課程的學生資訊

檢視所有男教師和所有男學生的資訊

(7)、建立幾個儲存過程

● 顯示成績表中的課程號在課程表中且所任教師性別為男、計算機系的成績表

● 顯示某學生的學號,姓名,所學課程號,課程名稱和對應的成績

● 在執行此儲存過程時,如果沒有給出引數(學生姓名),則輸入全部的學生的學號,姓名,班級,任課教師編號及其姓名,所學課程名稱和成績,如果有,則顯示此學生的以上資訊。

(8)、建立觸發器

◆ 在成績表中建立乙個觸發器,當向表中新增記錄時,此學生的成績都乘以1.2

◆ 檢查學生的郵箱位址是否相同,如果相同,輸出'inserting fail',並且回滾事務;如果不相同,則插入成功。

◆ 在成績表建立乙個觸發器,在向表中插入記錄時,檢驗插入的課程號是否在課程表中的課程號的範圍之內。

(9)、建立規則,並繫結

● 在向成績表中新增記錄時,如果成績degree<0,則插入不成功。

● 在向教師表中新增記錄時,如果**號碼不是0-9的數字,則插入不成功。

(10)、建立自定義函式和索引

這些都在後面有完整的**和解釋。

三、四個表的e-r實體模型圖分析:

1nn m

在教學管理中,學校開設若干門學科,乙個教師可以教授其中的一門或多門課程,每個學生也需要學習其中的幾門課程,因此,教學管理中涉及的物件(實體型)有學生、教師和課程。用e-r圖描述它們之間的聯絡。如圖所示。

其中,學生與課程是多對多的聯絡,而教師與課程的聯絡則是一對多。

這四個表的總的實體-關係圖:

四、設計資料表:通過e-r圖分析,現在已經對資料庫有乙個很清楚的認識了。

在此學生成績資訊中有4個表需要建立

學生資訊表(student)包括學號(sno)、姓名(sname)、性別(s***)、班級(class)、出生日期(sbirth)

教師資訊表( teacher)包括教師編號(tno)、姓名(tname)、性別(t***)、部門(depart)、職稱(prof)、出生日期(tbirth)

成績表(score)包括學號(sno)、課程號(**o)、成績(degree)

課程資訊表(course)包括課程號(**o)、課程名稱(**ame)、教師編號(tno)

五、表結構

主鍵是乙個表通過乙個列或多個列組合的資料來唯一標識表中的每一行,這個列或列組合就被稱為主鍵,煮件可以來強制實體完整性。

主鍵約束有以下特徵和作用:

(1)主鍵約束通過不允許乙個或多個列輸入重複的值來保證乙個表中所有行的惟一性,使所有浪都是可以區分的。

(2)乙個表張只能有乙個主鍵,且組成主鍵的列的資料都不能取空值。

(3)當定義主鍵約束時,sql server在主鍵列上建立惟一性索引,這個索引在煮件被查詢時可以加快查詢的速度。

在teacher表中,以教師編號tno為主鍵,對其進行惟一性約束。

在course表中,以課程號為主鍵,對其進行惟一性約束。

1、student表:

score表結構:

course表:以課程號為主鍵,通過這個主鍵來對這個表進行唯一性約束。

teacher表結構:

六、其他物件的說明:

(1)、外來鍵約束(primary key):外來鍵也是由表中的乙個列或多個列組成的,它是和在相關表中事先定義的具有惟一性的列一起使用的,該列乙個是所在表的主鍵。外來鍵約束用來建立和強制兩個表之間的關聯,即乙個表的乙個列或列組合與另乙個表的具有惟一性的列或列組合相關,這個列或列組合就成為第乙個表中的外來鍵外來鍵約束限制將破壞這種關聯的操作。

作為外來鍵的列的值可以是空值,或是它所引用的表中已經存在的值。

在score表中,其學號sno和課程號**o都是此表的外來鍵約束,因為此表中學號sno要受學生資訊表中的學號的約束,student表中沒有的學號,score表中也應該沒有,如果向score表新增資料時違反的此規則,則新增不成功。課程號**o也同樣,受到course表中課程號**o的約束.。

(2)、空值(null):空值意味著資料尚未如,它與0或長度為零的字串(「」)的含義不同。如果表中的某一列必須有值才能使記錄有意義,那麼可以指明該列不允許取空值。

在教師資訊表teacher中其出生日期列tbirth和職稱prof允許為空,但並不表示該教師沒有生日,沒有職稱,而是目前還不知道而已。在學生資訊表student中其出生日期sbirth也可為空,也是同樣的道理。

(3)、check約束:檢查約束可以用來限制列上可以接受的資料值,檢查約束使用邏輯表示式來限制列上可以接受的資料。可以在乙個列上使用多個檢查約束,也可以在表上建立乙個可以在多個列上使用的檢查約束。

比如:在學生資訊表中,郵件位址semail的格式必須是%@%格式的。

(4)、惟一性約束:使用惟一性約束的作用是保證在不是主鍵的指定惟一性的列上不會出現重複的資料。定義了惟一性約束的列上的資料可以為空值,乙個表上可以定義多個惟一性約束。

七、建立資料庫、資料表、檢視、儲存過程、自定義函式、觸發器等語句和測試語句

1、建立資料庫:

create database ssh

on( name=ssh,

filename='e:\老大\sql\ssh.mdf',

size=1)

log on

( name=ssh1,

filename='e:\老大\sql\ssh1.ldf',

size=1)

2、建立資料表

(1)、student表

use ssh

create table student

(sno char(8) primary key,

sname char(10) not null,

s*** char(2) not null,

sbirth datetime,

class char(4) not null

semail varchar(20))

(2)、score表

create table score

(sno char(8) not null,

**o char(4) not null,

degree float not null)

(3)、course表

create table course

(**o char(5) not null primary key,

**ame varchar(10) not null,

tno char(3) not null )

(4)、teacher表

create table teacher

(tno char(5) not null primary key,

tname varchar(10) not null,

depart varchar(8) not null,

t*** char(2) not null,

tbirth datetime ,

prof char(6) )

4向表中新增記錄

(1)、向學生資訊表中新增

insert into student values('101','生活','女','1983-09-18','11')

insert into student values('102','風塵','男','1984-01-01','11')

insert into student values('103','離開','男','1984-01-01','11')

insert into student values('104','流浪','女','1984-11-11','11')

insert into student values('105','生命','男','1984-12-05','13')

學生成績管理系統資料庫課程設計

軟體課程設計2 報告 專業 電腦科學與技術 設計題目 學生成績管理系統 2014年4月 目錄1 需求分析 1 1.1 行業現狀 1 1.2 可行性分析 2 1.3 系統執行環境 3 1.4 系統功能模組圖 4 2 系統設計 5 2.1 系統流程圖 5 2.2 資料流圖 6 2.2.1 頂層資料流圖 ...

資料庫課程設計學生成績管理系統

課程設計報告 2012年1月3日 目錄一概述1 1.1目的與要求1 1.2設計環境1 二需求分析1 2.1 系統功能要求設計1 2.2 系統模組設計1 2.3 資料字典2 三概念模型設計4 四邏輯和物理結構設計4 4.1由系統e r圖轉化而得到的關係模式 5 4.2 確定關係模型的訪問方法5 4.3...

資料庫學生成績管理系統課程設計

河南理工大學 電腦科學與技術學院 課程設計報告 200 7 200 8 學年第二學期 課程名稱資料庫課程設計 設計題目學生成績管理系統 學生姓名 0 學號專業班級 指導教師申自浩 2008 年 7 月 1 日 1 問題描述 1.1 背景 1 某大學有學生若干萬名,每個學生每學期必須學習若干門課程。2...