計算機 數據庫知識點,數據庫知識點總結

實體-聯系模型

基本概念

實體和屬性

實體是客觀存在并且可以相互區分的任何事物

屬性是實體所代表事物具有的某種特性

每個屬性都有一定的取值范圍,成為該屬性的值域

實體集和碼

實體集是具有相同屬性的實體的集合

實體的值是該實體諸屬性值的列表

實體集的值是該實體集中所有實體值的集合

其值可以唯一確定實體集中每個實體的屬性集稱為該實體集的超碼

那些其真子集都不是超碼的極小超碼稱為候選碼

主碼是數據庫設計者選中的,是用來區分同一實體集中不同實體的候選碼

屬性分類

屬性大部分都是簡單的不能劃分成更小的結構、單值的只能取單個值、基本的不能由其他屬性推導出

復合屬性與簡單屬性對應是可以劃分成更小部分的屬性

多值屬性對應單值屬性是特定的實體在該屬性上可以取多個值的屬性

派生屬性對應基本屬性的值可以從其他相關屬性或實體計算得到,因此又稱為計算屬性

聯系與聯系集

聯系是多個實體之間的相互關系

聯系集是相同的類型聯系的集合

實體在聯系中的作用稱為實體的角色

聯系的類型

聯系的類型又稱為聯系的函數性或映射函數

一對一聯系E2與E1中的每個實體最多與另一個實體集中的一個相互關聯

一對多聯系(1:n聯系)

多對一聯系(n:1聯系)

多對多聯系(m:n聯系)

實體集與參與類型

如果實體集中的每個實體都必須參與聯系R,則稱實體集對聯系R的參與是強制的,或全部參與,否則是隨意的,或部分參與

聯系的屬性

聯系也可以包含屬性,這種情況多出現在多對多聯系中

實體聯系圖

實體-聯系模型用實體-聯系圖(E-R圖)對現實世界建立概念模型

E-R圖包含如下成分

橢圓表示屬性,屬性寫在框內

矩形表示實體集,實體集名寫在框內

菱形框表示聯系,聯系名寫在框內

弱實體集

一般地,如果一個實體集的任何屬性集都不足以形成該實體集的碼,則稱該實體集為弱實體集,相反的,存在碼的實體集稱為強實體集

每個弱實體必須存在依賴于一個強實體

弱實體集必須與另一個稱為標識實體集或屬主實體集的強實體集相關聯才有意義

將弱實體集與其標識實體集相關聯的聯系稱為標識性聯系

分辨符、部分碼

關系數據模型

關系數據庫結構

關系

域是具有相同類型的值的集合,域中的元素個數為該域的基數,記作|D|

n個域的笛卡爾集的每個元素稱為一個n-元組(簡稱元組),第i個元素為第i個分量

基數為|D1| * |D2| * ... * |Dn|

域上的關系是笛卡爾積的任意字集

在關系數據庫中,關系通常用關系名命名,并被看作一個二維表

表的每一列對應于一個分量。列通常是命名的,稱為屬性

表的第一行是表頭,給出各列的屬性名

關系的每一個屬性都必須是原子的

關系模式

粗略的說,關系模式概念對應于程序設計語言中的類型概念,它是型,定義關系的結構

我們把關系模式簡記為R(A1,A2,...,An)R是關系名,A是屬性名

關系的型用關系模式刻畫,關系的值即關系在某一時刻的快照,又稱為關系實例

關系數據庫模式由若干域的定義和一組定義在這些域上的關系模式組成

關系數據庫的值就是這些關系模式對應的關系在某一時刻的值

關系的碼

主碼用于表示由多個碼中選出的作為唯一識別關系元組的碼,而所有的碼又稱候選碼。碼中的屬性稱為主屬性,不在任何碼中的屬性稱為非主屬性

從E-R數據庫到關系模型

基本E-R圖的轉換

屬性處理

派生屬性:忽略

復合屬性:忽略復合屬性本省,直接考慮它的成分屬性

多值屬性:

如果多值屬性m是實體集E的屬性,k是E的主碼,則關系Rm的屬性由m和K組成

多主碼時由m和K1、K2...Kn組成

將基本E-R圖轉換成關系模式

每個強實體集用一個關系表示

每個弱實體集用一個關系表示

每個集合用一個關系表示,但是若實體集于其標識實體集之間的存在依賴聯系將被忽略

如果兩個關系具有相同的碼,則可以合并它們

關系數據庫標準語言SQL

SQL語言的特點

集多數數據庫語言于一身

高度非過程化

面向集合的操作方式

一種語法兩種使用方式

功能強大,語言簡潔

數據定義

SQl的數據類型

CHAR(n) VAECHAR(n) BIT(n) BIT VARYING(n) INT SMALLINT NUMERIC(p,d) DEC(p,d) FLOAT(n) REAL DATA TIME

定義、修改和刪除基本表

1.創建基本表

CEARTE TABLE Teachers

(Tno CHAR(7) PRIMARY KEY,

Tname CHAR(10) NOT NULL,

Sex CHAR(2) CHECK (Sex='男' or Sex='女'),

Birthday DATE,

Title CHAR(6),

Dno CHAR(4),

FOREIGN KEY(Dno) REFERENCES Departments(Dno));

2.修改基本表

使用 ALTER TABLE語句修改基本表

向基本表中添加列:

ALTER TABLE <> ADD []<>

對于已存在的列修改缺省值:

ALTER TABLE Student ALTER Sex DEFAULT '女';

ALTER TABLE Student ALTER Sex DROP DEFAULT;

刪除已存在的列

ALTER TABLE Courses DROP Pno

3.刪除基本表

DROP TABLE {CASCADE|RESTRICT}

建立和刪除索引

CREATE [UNIQUE][CLUSTER] INDEX

DROP INDEX

模式定義和刪除

CREATE SCHEMA Supply_schema AUTHORRIZATION wangqiang;

DROP SCHEMA CASCADE|RESTRICT

數據查詢

select語句的一般形式

SELECT Cno,Cname,Period,Credit FROM Courses;

SELECT * FROM Courses;

SELECT 2016-year(Birthday) AS Age FROM Students;

SELECT DISTINCT 2016-year(Birthday) Age FROM Students;

SELECT Tname,Sex FROM Teachers WHERE Grade<60;

SELECT DISTINCT Sno FROM SC WHERE Grade<60;

SELECT Sname, Speciality FROM Students WHERE year(Birthday) BETWEEN 187 AND 1990;

SELECT Sname, Speciality FROM Students WHERE year(Birthday) NOT BETWEEN 187 AND 1990;

SELECT Sno,Sname FROM WHERE Speciality IN ('軟件工程','計算機科學與技術');

SELECT Sno,Sname FROM WHERE Speciality NOT IN ('軟件工程','計算機科學與技術');

SELECT Cname FROM Courses WHERE Cname LIKE '數據%'

SELECT Sno,Sname FROM Students WHERE LIKE '李__'

SELECT * FROM Courses WHERE Cname LIKE 'C_%' ESCAPE '';ESCAPE定義\為轉義字符

SELECT * FROM SC WHERE Grade IS NULL;

排序和分組

將查詢結果排序:

ORDER BY [ASC|DESC]{,[ASC|DESC]}

聚集函數

SELECT COUNT(*) FROM SC WHERE Cno='CS302';

SELECT MIN(Grade),AVG(Grade),MAX(Grade) FROM SC WHERE Cno='CS302';

分組

SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;

SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade)>85;

連接查詢

SELECT Cname,Grade FROM SC,Course WHERE SC.Cno=Courses.Cno AND Sno = '200605098';

SELECT Cname,Grade FROM SC,Course WHERE SC.Cno=Courses.Cno AND Cno='CS202' AND Grade>90;

SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course WHERE Students.Sno=SC.Sno AND SC.Cno=Course.Cno;

嵌套查詢

IN引出的子查詢

SELECT Sno,Sname FROM Students WHERE Sex = '女' AND Speciality IN (

SELECT Speciality FROM Students WHERE Sname ='王麗麗'

);

集合的比較引出的子查詢

SELECT Sno,Sname,Speciality,Birthday FROM Students WHERE Speciality <> '軟件工程' AND Birthday > ALL(

SELECT Birthday FROM Students WHERE Speciality = '軟件工程'

);

存在量詞引出的子查詢

SELECT Sno,Sname FROM Students S WHERE EXISTS (

SELECT * FROM SC WHERE Sno=S.Sno AND Cno = 'CS403');

數據更新

插入單個元組

INSERT INTO Students VALUES(......);

INSERT INTO Students(......) VALUES(......);

插入查詢結果

INSERT INTO Cardinf(Card-no,Name,Balance) SELECT Tno,Tname,100.00 FROM Teachers WHERE Dno ='IE';

刪除

DELETE FROM Students WHERE Sno ='98757';

DELETE FROM Students;刪除所有記錄

DELETE FROM SC WHERE Sno IN (

SELECT Sno FROM Students WHERE Speciality = '計算機軟件于理論');

修改

UPDATE Teachers SET Title = '副教授' WHERE Tno='B050041';

UPDATE SC SET Grade = Grade + 5 WHERE Grade < 60 AND Cno IN (

SELECT Cno FROM Courses WHERE Cname='軟件工程');

視圖

定義視圖和刪除視圖

定義視圖

CREATE VIEW SE_Students AS SELECT Sno,Sname,Sex,Birthday,Dno FROM Students WHERE Speciality = '軟件工程' WITH CHECK OPTION;表示該視圖是可更新的

CREATE VIEW Student_Grade(Sno,Sname,Cname,Grade) AS SELECT S.Sno,Sname,Cname,Grade FROM Students S,SC,Courses C WHERE S.Sno=C.Sno AND C.Cno= SC.cno;

刪除視圖

DROP VIEW [CASCADE|RESTRICT]

基于視圖的查詢

視圖是命名的導出表,從用戶角度講,查詢時使用視圖與使用基本表并無區別

基于視圖的更新

所有視圖都是直接或間接由基本表定義的。基于視圖的更新最終要轉換成對定義視圖的基本表的更新。并不是所有視圖都可以更新。(●'?'●)

視圖的作用

使用視圖可以使一些查詢表達更加簡潔

視圖提供了一定程度的邏輯獨立性

視圖的安全保護作用

視圖使得用戶能夠以不同角度看待相同的數據

完整性與安全性

完整性概述

數據庫的完整性是指數據庫中的數據的正確性、一致性和相容性。數據庫中的數據要成為有意義的信息,必須滿足一定的語義約束條件。

約束分類

類型(域)約束:說明給定類型的合法取值

屬性約束:說明屬性的合法值

關系約束:說明關系的合法取值

數據庫約束:說明數據庫的合法取值,通常涉及多個關系

實體完整性是一種關系約束,參照完整性是一種數據庫約束,而用戶定義的完整性可以是上述四種約束的任何一種

靜態約束是關于數據庫正確狀態的約束

動態約束是數據庫從一種正確狀態轉移到另一種狀態的約束

DBMS對完整性的支持

說明和定義完整性約束條件的方法

完整性檢查機制

違約處理

實體完整性和參照完整性

實體完整性

每個關系應該有一個主碼,每個元組的主碼值唯一確定該元組

主碼的任何屬性都不能取空值

參照完整性

1.參照完整性與E-R模型

如果是由E-R圖得到的,則由聯系集轉換得到的每一個關系都存在參照完整性

如果來源是弱實體集,包含外碼,外碼不能取空值

2.違反參照完整性的更新

3.保證參照完整性的措施

拒絕

級連

SQL中的參照完整性

SQL支持參照完整性。

用戶定義完整性

屬性約束

屬性上的約束是指屬性的取值必須來自其定義的值域

關系約束

關系約束說明關系的合法取值,常常涉及多個同一關系的多個屬性和/或多個屬性元組(否則可以看作屬性約束)

斷言與數據庫約束

斷言是一種命名約束,它表達了數據庫狀態必須滿足的邏輯條件。

觸發器

觸發器是特殊類型的儲存過程,當某個事件發生時它被自動執行

指明什么事件發生和滿足什么條件執行觸發器

指明觸發器執行什么樣的動作

SQL中的觸發器

CREATE TRIGGER OverdraftTrigger

AFTER UPDATE OF Balance ON Account

REFERENCING NEW ROW AS nrow

FOR EACH ROW

WHEN(nrow.balance<0)

BEGIN ATOMIC

INSERT INTO Loan VALUEA(......);

END

安全性概述

數據庫安全保護的多層面

物理層

人際層

網絡層

數據庫系統層

操作系統層

數據庫安全保護的任務

未經授權讀區數據(竊取信息)

未經授權修改數據

未經授權刪除數據

保護數據設計以下幾個任務

防止對數據的未經過授權的存取,確保敏感信息沒有被不“需要知道”這些信息的人訪問的到

防止未經過授權的人員刪除和修改數據

監視對數據的訪問和更改等使用情況

SQL的授權

授權與收回

授權語句

GRANT SELECT ON Students TO PUBLIC;

GRANT ALL PRIVILEGES ON Students TO U1;

GRANT ALL PRIVILEGES ON Students,Courses TO U1,U2 WITH GRANT OPTION;

GRANT INSERT,UPDATE(Grade) ON TABLE SC TO U3;

收回權限

REVOKE ON FROM {CASCADE|RESTRICT}

SQL對角色的支持

創建角色和角色授權

CREATE ROLE

GRANT ALL PRIVILEGES ON Account,Loan,Depositor,Borrower TO Teller;

使用角色授權

GRANT TO

GRANT Manager TO niuxianghui WITH ADMIN OPTION;

收回授予角色的權限

可以像從用戶回收權限一樣,使用REVOKE語句回收授予角色的授權

收回角色

REVOKE FROM {CASCADE|RESTRICT}

其他安全措施

審計技術

數據加密

關系數據庫的設計理論

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260983.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260983.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260983.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡課程思政教學設計,信息與網絡工程學院成功舉辦第一屆課程思政教學設計大賽...

為有效貫徹全國高校思想政治工作會議精神&#xff0c;強化課程思政建設&#xff0c;全面提高人才培養質量&#xff0c;根據《教務處關于舉辦第一屆課程思政教學設計大賽的通知》要求&#xff0c;結合學院工作安排&#xff0c;7月18日&#xff0c;信息與網絡工程學院在龍湖校區西…

Java 中參數傳遞是傳值還是引用?

2019獨角獸企業重金招聘Python工程師標準>>> 明確概念 值傳遞&#xff1a;指的是將變量的一個備份傳過去&#xff0c;當該備份被修改后&#xff0c;不會影響原來變量的值&#xff1b; 引用傳遞&#xff1a;指的是將該變量的地址傳過去&#xff0c;當值修改后&#x…

sencha touch 手勢識別左右滑動

sencha touch 中添加手勢識別非常簡單&#xff0c;就是監聽 dom 元素的 move 事件&#xff1a; 1. 為你的 view 注冊 swipe 事件 // 為當前 view 注冊手勢滑動事件 Ext.get(myTouchView).on(swipe, onViewSwipe, this); 2. 判斷滑動方向 // 手勢滑動監聽事件 onViewSwipe : fun…

比較兩浮點數的方法

在工作中&#xff0c;我需要比較一系列數據&#xff0c;一方數據精度為兩位小數,而另一方精度為三位小數。我需要將三位小數四舍五入成兩為小數后進行比較。在操作的過程中&#xff0c;問題出現了&#xff0c;明明應該相等的數據卻走了不等的分支。什么原因導致呢&#xff1f;一…

IIS8托管WCF服務

WCF服務程序本身不能運行&#xff0c;需要通過其他的宿主程序進行托管才能調用WCF服務功能&#xff0c;常見的宿主程序有IIS&#xff0c;WAS&#xff0c;Windows服務&#xff0c;當然在學習WCF技術的時候一般使用控制臺應用程序或WinForm程序進行托管。本文將詳細介紹如何使用I…

北京師范大學認知神經科學 計算機,北京師范大學認知神經科學和學習國家重點實驗室.pdf...

北京師范大學認知神經科學和學習國家重點實驗室北京師范大學認知神經科學與學習國家重點實驗室DTI 、靜息fMRI、形態學測量原理及數據分析與應用深度講習班(第二輪通知)近年來&#xff0c;磁共振技術已廣泛地應用到神經科學、認知神經科學、臨床醫學等領域的研究&#xff0c;而…

JAVA面向對象-----instanceof 關鍵字

instanceof 關鍵字 1&#xff1a;快速演示instanceof Person pnew Person();System.out.println( p instanceof Person); 2&#xff1a;instanceof是什么&#xff1f; 1&#xff1a;屬于比較運算符&#xff1a; 2&#xff1a;instanceof關鍵字&#xff1a;該關鍵字用來判斷一…

電子工程師必去的論壇網站

Abstract 搞電子不能閉門造車&#xff0c;要到網上去交流交流&#xff0c;做個網絡吸血鬼也好。本人偶然也發一些資料&#xff0c;還是要感謝活躍在各大論壇上的大蝦們&#xff0c;讓小弟要走了不少彎路。有問題google一下&#xff08;不是本人崇洋媚外&#xff0c;google的功能…

對象的引用

int、datetime、bool、char等類型都屬于值類型&#xff08;valuetype&#xff09;&#xff0c;賦值的時候是傳遞拷貝。 普通的對象則是引用類型&#xff0c;賦值的時候是傳遞引用。傳遞給函數也是引用傳遞的。轉載于:https://www.cnblogs.com/roboot/archive/2012/02/15/235329…

Cesium應用篇:3控件(3)SelectionIndicator InfoBox

假設這樣一個場景&#xff0c;用戶在Cesium球上加載了一個GeoJson文件&#xff08;DataSource&#xff09;&#xff0c;里面是全美國所有州的Geometry信息&#xff08;Entity&#xff09;&#xff0c;疊加到球面后&#xff0c;你自然會有一種沖動&#xff0c;點擊某一個州&…

北理工計算機學院新聞,北理工計算機學子勇奪CVPR 2021 AI安全國際頂級賽事季軍...

2021年4月19日&#xff0c;CVPR 2021挑戰者計劃第六期落下帷幕。由北理工計算機學院教師李元章、張全新及廣州大學李進教授指導的DemiguiseWoo戰隊&#xff0c;在挑戰賽賽道二“ImageNet無限制對抗攻擊”發起沖擊&#xff0c;最終以9303.6的總分取得決賽第三名的好成績&#xf…

字符串入門

暴力 字典樹總結&#xff1a;字典樹的功能就是map字符串得到編碼或者查詢前綴關系套模板的時候注意t,s,&#xff0d;‘a’,[26],sz0的初始化還有一個問題&#xff0c;到底字典樹開多少內存比較合適&#xff0c;反正至少是要開字符總長度*2hdu1251 http://acm.hdu.edu.cn/showpr…

C++ 的基礎概念(3)——多態詳解。

最近兩次面試都問到了多態&#xff0c;我也不得不重視起來了&#xff0c;最近最大的收獲就是&#xff1a;基礎知識很重要&#xff0c;就算你很會寫代碼&#xff0c;但是面試官問你基礎知識答不上來的話&#xff0c;也很難被人賞識和錄用&#xff0c;所以還是要多補補基礎概念&a…

美育在計算機教育中應用,在現代教育技術中綻放數學美育之花

21世紀是信息化的社會&#xff0c;計算機、網絡等現代技術的飛速發展&#xff0c;作為現代教育技術&#xff0c;計算機多媒體技術和網絡技術已經越來越多地走進小學數學課堂&#xff0c;為深化教學改革&#xff0c;培養學生能力&#xff0c;發展學生個性&#xff0c;提供了嶄新…

.NET Forms身份驗證

.NET表單身份驗證 ASP.NET Forms 身份驗證的簡單實現&#xff1a;1&#xff09;在Web.config文件中配置應用程序使用 Forms 身份驗證&#xff1b;2&#xff09;創建登陸頁面&#xff0c;將用戶身份驗證票證添加到Cookie集合。1.配置文件中設置為Forms驗證<authentication mo…

Oracle SQL篇(三)Oracle ROWNUM 與TOP N分析

首先我們來看一下ROWNUM&#xff1a;含義解釋&#xff1a;1、rownum是oracle為從查詢返回的行的編號&#xff0c;返回的第一行分配的是1&#xff0c;第二行是2&#xff0c;依此類推。這是一個偽列&#xff0c;可以用于限制查詢返回的總行數。2、rownum不能以任何基表的名稱作為…

C++ Primer 第10章 pair類型

//10.2.cpp //至少使用三種方法創建pair對象。 //編寫三個版本的程序&#xff0c;分別采用不同的方法來創建pair對象 //方法1&#xff1a;在定義pair對象時提供初始化式來創建pair對象#include<iostream> #include<vector> #include<utility> #include<st…

計算機對口升學可以報考的學校,對口升學可以報考的學校都在這里,趕快來收藏吧...

對口升學指對口高考&#xff0c;在平常又叫對口單招&#xff0c;對口升學&#xff0c;是從中等職業學校畢業生招生&#xff0c;強調中等職業學校畢業生對口升高職的專業技能考試&#xff0c;以專業技能成績為主要錄取依據的招生辦法。報名條件具有正式學籍的中等職業學校畢業生…

Visual Studio 常用快捷鍵 (二)

想不到上一篇 【Visual Studio 常用快捷鍵】 受這么多人的歡迎。看來大家對Visual Studio的用法非常感興趣。 接下來我準備寫一個 “Visual Studio使用技巧 ” 一個系列的博客。 希望對大家有所幫助 本篇繼續介紹幾個常用的快捷鍵 閱讀目錄 按兩下Tab鍵回退到光標的上一次位置…

js 兼容event.target

function getEventTarget(e){ewindow.event||e;return e.srcElement||e.target; }轉載于:https://www.cnblogs.com/manong13/archive/2012/02/23/2364443.html