计算机 数据库知识点,数据库知识点总结

实体-联系模型

基本概念

实体和属性

实体是客观存在并且可以相互区分的任何事物

属性是实体所代表事物具有的某种特性

每个属性都有一定的取值范围,成为该属性的值域

实体集和码

实体集是具有相同属性的实体的集合

实体的值是该实体诸属性值的列表

实体集的值是该实体集中所有实体值的集合

其值可以唯一确定实体集中每个实体的属性集称为该实体集的超码

那些其真子集都不是超码的极小超码称为候选码

主码是数据库设计者选中的,是用来区分同一实体集中不同实体的候选码

属性分类

属性大部分都是简单的不能划分成更小的结构、单值的只能取单个值、基本的不能由其他属性推导出

复合属性与简单属性对应是可以划分成更小部分的属性

多值属性对应单值属性是特定的实体在该属性上可以取多个值的属性

派生属性对应基本属性的值可以从其他相关属性或实体计算得到,因此又称为计算属性

联系与联系集

联系是多个实体之间的相互关系

联系集是相同的类型联系的集合

实体在联系中的作用称为实体的角色

联系的类型

联系的类型又称为联系的函数性或映射函数

一对一联系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.mzph.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