【云圖說】第235期 DDS讀寫兩步走 帶您領略只讀節點的風采
875
2025-04-01
數據庫試卷題型: 選擇題 20*2 =40 填空題 10*1 =10 簡答題 3*4 =12 SQL 30分+ 插入 2 建視圖 2 單表查詢條件 2 平均成績avg 2 多表查詢 4 觸發器 存儲函數 存儲過程 設計題 20分+ 1. 畫ER圖 2. 寫關系模式 3. 分析范式 4. 分解范式
一、概念題
數據庫系統
數據庫具有永久存儲,有組織,可共享的特點。 (泳游課)
DBMS提供數據安全型保護,完整性保護,恢復策略,并發控制等功能。
數據庫設計過程:需求分析,(概念,邏輯,物理)結構設計,數據庫實施,數據庫運行和維護。
SQL語言是集 數據定義,數據查詢,數據操作,數據控制 于一體的。。
ER圖的主要元素是 實體,聯系, 關鍵詞。
完整性控制包括:實體完整性,參照完整性,用戶定義完整性。
違反三個完整性的時候怎么辦:違反實體和用戶自定義,一般拒絕執行。違反參照,一般根據語義附加操作,確保數據正確性。
關系規范化1NF問題:插入異常(無法插入),修改異常,刪除異常(刪了不改刪的)
三級模式,兩級映射,兩個獨立性。
關系的完整性原則是什么?:即主屬性不可以取空值。若屬性F是關系R的外碼,當F不是主屬性時可以取空值。
碼是能唯一標識元組的屬性集。候選碼是能唯一標識,又不含多余屬性的。主碼是候選碼中的一個。
主屬性是主碼中的每個屬性。F是R的屬性,不是R的主碼,是S的主碼,所以是R的外碼。
視圖的特點:與select語句一一對應,是虛表。
視圖的優點:簡化用戶操作,使用戶多個角度看問題,對重構數據庫提供幫助。
索引的概念:關于物理結構設計的,聚簇索引可以影響記錄表順序,其他不行。
并發控制:
使用封鎖技術,保證可串行化。
封鎖類型:排它鎖(X鎖),共享鎖(Share)鎖。
避免三種數據不一致:丟失修改,不可重復讀,讀臟數據。
死鎖是什么?兩個事務各自鎖定了數據,需要對方的數據,使用順序封鎖法避免。
存儲過程與事務的區別: 事務是保存在項目里的,存儲過程是保存在數據庫里的。事務中編程語言(java,C++等),存儲過程中只有SQL語言。
事務的特性:原子性,一致性,隔離性,持久性 (重點),,(愿一個吃)
實現事務持久性的子系統:恢復管理。
故障與恢復
故障的分類:事務內部故障,系統故障,介質故障**(重點)**
恢復技術的實現:數據轉儲和日志等級文件。
登記日志文件的原則:先寫日志后寫數據庫,按照執行順序登記。
日志是記錄事務對數據庫更新操作的文件。
日志文件的兩種格式單位:記錄和數據塊。(重要)
關系代數
自然連接,等值連接區別:都是重要的連接運算,自然連接是特殊的等值連接,要求連接屬性組中有相同的屬性,并在結果中去掉該重復屬性。
規范化理論的指導意義:為判斷關系優劣提供標準,指導關系數據模型的優化,提供理論基礎。
參考資料:
高數幫4小時數據庫不掛科+微信公眾號尚學青年不掛科期末試卷和復習資料+學校復習試卷
二、SQL題
插入 2 (重要) insert into student(Sno, Sname, Ssex, Sdept, Sage) values('201215128','陳冬','男','CS',18); 刪除(與select語句格式相同) DELETE FROM sc WHERE Cno = 1; 增加列(alter對應改變,table對應from,改變類型) ALTER TABLE Student ADD Sbirthday datetime NULL; ALTER TABLE SC CHANGE Grade Grade INT; 更新 update sc SET Grade = 89 WHERE Cno = 3 AND Sno = 201215122; --------------------------------------------------------------------- 建視圖 2(與select語句一一對應) create VIEW Boy_Student AS select * From student WHERE ssex='男'; 創建表(與創建視圖一樣,把as_select換成()即可 ) CREATE TABLE sc( Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) ); 創建數據庫(與創建表一樣) CREATE DATABASE Student_DB; SHOW DATABASES; USE Student_DB; --------------------------------------------------------------------- 單表查詢條件 2 SELECT * FROM Student WHERE Class=95031 OR Ssex='女' 平均成績avg,子查詢 2 (DISTINCT 可以消除重復數據,可以select DISTINCT sno from score;) (AVG計算的時候去掉重復數據,所以加一個distinct) SELECT AVG(DISTINCT Degree) FROM Score WHERE Sno IN( SELECT Sno FROM Student WHERE Class=95031 ) 函數查詢 SELECT COUNT(DISTINCT Sno) //不能與*一起用,*可以單獨用 FROM Student WHERE Class=95031; 分組查詢 2 每組只選擇一個顯示, having判斷是否顯示該組(根據整租), where根據顯示結果判斷是否顯示 SELECT Sno FROM Score GROUP BY Sno HAVING MIN(Degree)>70 AND MAX(Degree)<90 多表查詢 4 因為可能有兩個name列,所以多表的時候,用表名.列名區分 SELECT Teacher.Tname, Course.Cno, Score.Degree FROM Teacher, Course, Score WHERE Teacher.Tno= Course.Tno AND Course.Cno= Score.Cno AND Teacher.Tname='張旭' 連接查詢 是多表查詢的一種,多表基于笛卡爾積,連接以一張表全部數據為根基 等值連接即內連接(INNER JOIN),等價于where寫法 自然連接(范圍更大)即外連接,分為LEFT OUTER JOIN 和RIGHT OUTER JOIN SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score FROM students s LEFT OUTER JOIN classes c ON s.class_id = c.id; 字符串查詢 "%":能匹配任意長度的字符,"_":只能匹配任意一個字符。 SELECT * FROM Student WHERE Sname LIKE '%王%'; 查詢空值 SELECT * FROM 表名 WHERE 字段名 IS NULL; SELECT * FROM 表名 WHERE 字段名 IS NOT NULL; --------------------------------------------------------------------- 觸發器 插入學生信息后,新建默認選課并給null成績 Create trigger t2 AFTER delete ON student FOR EACH ROW BEGIN UPDATE course SET Tno = NULL WHERE Tno = old.Tno; END 存儲函數 本質一樣,存儲函數的限制比較多,例如不能用臨時表,只能返回一個變量,而存儲過程的限制較少。 drop function if exists myfunc; create function myfunc(a int, b int) returns int begin declare str char(3); declare x int default 0; declare bir datetime default null; set x=a+b; return x; end select myfunc(2,3); 存儲過程 drop procedure if exists myproce; Create procedure myproce() begin declare i int default 1; while i <> 10 do select i; set i = i+1; end while; end call myproce; 游標(指向一個select查詢結果) declare mycursor CURSOR for SELECT `Sno`, `Sbirthday` FROM `Student` ORDER BY `Sno`; OPEN mycursor; //打開游標 FETCH mycursor INTO na, birth; //檢索游標(拿出一行,把該行的各個列值保存到各個變量中) CLOSE mycursor; 參考資料: 結合實驗1,2,3閱讀
三、設計題
1. 畫ER圖 2. 寫關系模式 3. 分析范式 4. 分解范式 E-R圖 畫E-R圖(實體,關系,屬性) 轉關系模式: 對于[A]-n-
Mysql 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。