資料庫原理測試(二)

2021-06-14 07:53:19 字數 2174 閱讀 3825

資料庫原理測試(二)

任務

一、資料庫完整性

1、使用ms sql server2005 建立資料庫school,包含表學生表students和班級表classes,其中學生與班級之間有如下聯絡,乙個學生屬於乙個班級,乙個班級有多個學生。學生與學生之間有乙個班長的聯絡,每個學生都有自己的班長,乙個班長與多個學生有聯絡。

2、建立班級表classes

屬性有班級號(整數,從1開始自動編號),班級名(變長字串50位,不能為空,不能重複),班級人數(整數)。

3、建立學生表students

屬性有 學號(整數,從1開始自動編號),姓名(變長字串,20位),性別(只能是男或女),年齡(16-25的整數),班級(外碼,參照班級表的主碼。要求刪除時拒絕,更新時,級聯更新)和班長(外碼,參照本表(students)的主碼。要求刪除時拒絕,更新時,拒絕更新)。

資料表關係與設計後的屬性、約束如下圖所示。

任務

二、觸發器設定

1、先向班級表內插入一行元組,如:1,2011軟體工程1班,0

2、編寫觸發器,當向學生表內插入一行元組,如:1,張同學,男,18,1,1

使得對應的班級人數(班級表內)加1。

create database school;

gouse school

gocreate table classes

( cid int identity(1,1) primary key,

cname varchar(50) not null unique,

ctotal int

);go

create table students

( sid int identity(1,1) primary key,

sname varchar(20),

s*** varchar(2) check(s*** in ('男','女')),

sage int check(sage>=16 and sage<=25),

sclassid int,

smonitor int,

foreign key (sclassid) references classes(cid) on delete no action on update cascade,

foreign key (smonitor) references students(sid) on delete no action on update no action

);go

create trigger studentnumbersautoincrease

on students

for insert as

declare

@sclassid int

begin

select @sclassid = sclassid

from inserted

update classes

set ctotal = ctotal + 1

where cid = @sclassid

end

測試**:

insert into classes(cname,ctotal) 

values('2011軟體工程1班',0)

insert into students(sname,s***,sage,sclassid,smonitor)

values('張同學','男',18,1,1)

select * from students;

select * from classes;

結果圖:

任務三、思考題

1、假設刪除乙個學生,如何使得班級表內對應班級人數減1?

2、假設修改乙個學生的所在班級(就是「轉班級」),如何使得班級表的對應班級人數合理變化**出的班級人數減1,轉入的班級人數加1)?

資料庫查詢測試 二

有員工表結構如下 員工表 員工編號,員工姓名 1 查詢姓名為4個字的員工 員工表 語句為 2 取出所有員工的姓 3 若員工編號為 1,2,3 要顯示為 001,002,003 則查詢員工編號和員工姓名的sql為 4 表a id number 5 中,各記錄分別為 1,2,3,4,5,4,1。sele...

資料庫原理 關聯式資料庫理論 二

關係模式中各屬性之間的相互依賴 相互制約的聯絡稱為資料依賴,資料依賴又分為函式依賴和多值依賴,其中函式依賴最為重要。函式依賴 function dependency,fd 是關係模式中屬性之間的一種邏輯關係依賴。例如在關聯式資料庫理論 一 中的scd表中,sno 和 sn age dept 之間就有...

資料庫原理

基本內容 acid與cap 資料庫事務可能引發的問題 資料庫鎖的型別 封鎖協議 兩段鎖協議 資料庫隔離級別 mvcc的實現步驟 mysql事務如何實現 資料庫鎖如何實現 xa兩段提交協議。1.acid是資料庫事務正確執行的四個基本要素 原子性 事務是資料庫併發控制的最小單位,要麼全部提交成功,要麼全...