以下为《数据库复习知识点(1)》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
基本概念
数据(data):数据库中存储的基本对象 定义:描述事物的符号记录
数据库(DB):长期存储在计算机内的、有组织的、可共享的大量数据的集合
数据库管理系统(DBMS):位于用户和操作系统之间的一层管理软件
主要功能:数据定义功能;数据组织、存储和管理功能;数据操纵功能;数据库的事物管理和运行管理功能;数据库的建立和维护功能;
数据库系统(DBS):由数据库、数据管理系统(及其应用开发工具)、应用程序和数据库管理员、组成的存储、管理、处理和维护数据的系统
数据管理:对数据进行分类、组织、编码、存储、检索和维护
数据管理技术的发展过程
人工管理阶段、文件系统阶段、数据库系统阶段
数据库系统的特点:
数据结构化;数据的共享性高、冗余度低、易某某;数据独立性高
数据独立性:物理独立性、逻辑独立性【由DBMS的二级映像功能保证】
物理独立性:用户的应用程序与存储在数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。
逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
数据库管理系统提供的数据控制功能:
数据的安全性(security)保护:保护数据以防止比合法使用造成的数据泄密和破坏
数据的完整性(integrity)检查:将数据控制在有效的范围内,并保证数据间满足一定关系
并发(concurrency)控制:对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果
数据库恢复( Recovery):将数据库从错误状态恢复到某一已知的正确状态
二、数据模型:数据结构、数据操作、完整性约束
1、概念:数据模型是对现实世界的模拟
2、类型:第一类:概念模型 第二类:逻辑模型、物理模型
概念模型:也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计
逻辑模型:主要包括层次模型、网状模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现
物理模型:对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法
3、客观对象的抽象过程---两步抽象
现实世界中的客观对象抽象为概念模型(现实世界抽象为信息世界)
把概念模型转换为某一DBMS支持的数据模型 (信息世界转换成机器世界)
4、数据模型的组成要素:
数据结构:数据结构是对系统静态特性的描述
数据操作:对系统动态特性的描述
数据的完整性约束条件:一组完整性规则的集合
5、概念模型:
实体:客观存在并可相互区别的事物 实体集:同一类型实体的集合
实体型:用实体名及其属性名集合来抽象和刻画同类实体
联系:现实世界中,事物内部、事物之间的联系概念模型的表示方法:实体——联系方法(E-R模型)
6、常用的数据模型:
层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型
层次模型:
有且只有一个结点没有双亲结点,该节点称为根结点
根以外的其他结点有且只有一个双亲结点
网状模型:允许一个以上结点无双亲、一个结点可以有多余一个的双亲
三、关系模型:
数据结构:
关系(Relation):一个关系对应通常说的一张表
元组(Tuple):表中的一行即为一个元组
属性(Attribute):表中的一列即为一个属性
码(kay):表中可以唯一确定一个元组的属性组
域(domain):一组具有相同数据类型的值的集合
分量:元组中的一个属性值
【关系的每一个分量必须是一个不可分的数据项,即不允许表中有表】
数据操纵:查询、插入、删除和更新数据
关系模型的数据操纵是集合操作,操作对象和结果都是关系
完整性约束条件:实体完整性、参照完整性、用户完整性
四、数据库系统的结构:
1、三级模式结构:实例:模式的一个具体值
外模式:视图和部分基本表 模式:基本表 内模式:存储文件
模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,数据库系统模式结构的中间层,一个数据库只有一个模式
外模式:也称子模式、用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,与某一应用有关的逻辑表示
【模式——外模式:一对多 外模式——应用程序:一对多】
内模式:存储模式,数据物理结构和存储方式的描述,是数据在数据库内部的表示方法,一个数据库只有一个内模式
2、两级映像:
外模式/模式映像:
模式:描述的是数据的全局逻辑结构 外模式:描述的是数据的局部逻辑结构
同一个模式可以有任意多个外模式,每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系
数据的逻辑独立性:当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
模式/内模式映像
定义了数据全局逻辑结构与存储结构之间的对应关系
数据的物理独立性:当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变应用程序不受影响
五、数据库系统的组成:
数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员
数据库管理员:
决定数据库中的信息内容和结构
决定数据库的存储结构和存取
定义数据的安全性要求和完整性约束条件
监控数据库的使用和周期性的转储数据、维护日志文件等
数据库的改进和重组、重构
=================================2==================================
1、关系
目(度):关系中属性的个数
候选码:关系中能唯一标识一个元组的属性组,而其子集不能
主码:若一个关系中有多个候选码,则选定其中一个为主码
主属性:候选码中的属性
非主属性:不包含在候选码中的属性【非码属性】
全码:关系的所有属性是该关系模式的候选码
关系的三种类型:基本关系(基本表、基表)、查询表、视图表
2、关系模式:关系模式是型、关系是值,关系模式是对关系的描述
R(U,D,DOM,F)
R:关系名 U:组成关系的属性名集合 D:U中属性来自的域
DOM:属性向域的映像集合 F:属性间数据的以来关系集合
3、关系操作:特点:集合操作
查询操作和插入、删除、修改操作两大类
查询操作分类:选择、投影、连接、除、并、差、交、笛卡尔积
五种基本操作:选择、投影、并、差、笛卡尔积
特点:集合操作方式,操作的对象和结果都是集合
4、关系完整性
实体完整性:主属性不可取空值
参照完整性:若属性(属性组)F是基本关系R的外码,它与基本关系S的主码相对应,则对于R中每个元组在F上的值必须:要么取空值,要么等于S中某个元组的主码值
用户定义的完整性:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
外码:关系S的主码F作为关系R的属性(组),则F称为R的外码,称基本关系R为参照关系,S为被参照关系
5、关系代数
传统的集合运算:
并:RUS={t|t∈R V t∈S}
交:R∩S={t|t∈R ∧ t∈S}:R-(R-S)
差:R-S={t|t∈R ∧ t?S}
笛卡尔积:R×S={tr⌒ts|tr∈R ∧ ts∈S}
专门的关系代数运算:
选择:在关系R中选择满足给定条件的诸元组【从行的角度进行的运算】
σF(R)={t|t∈R ∧ F(t)=“真”}
逻辑表达式F基本形式:X1θY1 θ:比较运算符
投影:从R中选择若干属性列组成新的关系【从列的角度进行的运算】
XXXXXA(R)={t[A]|t∈R}
连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组
/=σF(RXS)
i,j分别是R,S上列数相等且可比的属性组
等值连接:θ为“=”的连接运算
自然连接:特殊的等值连接,两个关系中进行比较的分量必须是同名的属性组,在结果中把重复的属性列去掉【记作R?S】
悬浮元组:做自然连接时被舍弃的元组
外连接:把悬浮元组也保存在结果关系中,而在其他属性上填空值
左外连接:只保留左边关系R中的悬浮元组
右外连接:只保留右边关系R中的悬浮元组
除运算:T包含所有在R但不在S中的属性及其值,T的元组与S的元组的所有组合都在R中【T=R÷S】【同时从行和列得角度进行计算】
=================================3==================================
结构化查询语言(SQL)是关系数据库的标准语言
非关系模型(层次模型、网状模型)的数据语言:
模式数据定义语言(模式DDL)
外模式数据定义语言(外模式DDL/子模式DDL)
数据存储有关的描述语言(DSDL)
数据操纵语言(DML)
SQL集数据查询、数据操纵、数据定义、数据控制功能于一体
SQL特点:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供多种使用方式、语言简洁,易学易用
基本概念:
基本表:本身独立存在的表,一个关系对应一个基本表;一个或多个基本表对应一个存储文件,一个表可以带若干索引
存储文件:逻辑结构组成了关系数据库的内模式,物理结构对用户透明
视图:从一个或多个基本表导出的表;数据库只存放视图的定义而不存放视图对应的数据;视图是一个虚表;用户可以在视图上在定义视图;基本表中数据发生变化,则从视图中查询出的数据也就随之变化了
二、数据定义
数据定义功能:模式定义、表定义、视图和索引定义
模式定义与删除:
CREATE SCHEMAAUTHORIZATION;
DROP SCHEMA;
CASCADE(级联):全某某 RESTRICT(限制):无下属对象时删除
基本表的定义、删除和修改:
CREATE TABLE( [ ]
[, [ ]]
……[,] );
如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上:
PRIMARY KEY (Sno,Cno)/*主码由两个属性构成,必须作为表级完整性定义*/
列级完整性约束:直接在数据类型后加关键字
表级完整性约束:关键字(相应属性名)
FOREIGN KEY (Sno) REFERENCES Student(Sno)
/*表级完整性约束条件,Sno是外码,被参照表是Student */
PRIMARY?KEY:主码 UNIQUE:取唯一值 NOT?NULL:不能取空值
修改基本表:
ALTER TABLE
ADD [COLUMN] [完整性约束条件]:增加新列(级完整性)
ADD[表级完整性约束]:增加新的表级完整性约束
DROP [COLUMN] [CASCADE|RESTRICT]:删除表中的列
DROP CONSTRAINT [CASCADE|RESTRICT]:删除指定完整性约束
ALTER COLUMN :修改原有列定义(列名、数据类型)
删除基本表:DROP TABLE[ CASCADE|RESTRICT];
索引的建立与删除:
建立索引:CREATE [UNIQUE][CLUSTER]INDEX
ON([])【ASC:升序 DESC:降序】
修改索引:ALTER INDEXRENAME TO
删除索引: DROP INDEX
4、数据字典:关系数据库管理系统内部一组系统表,它记录了数据库所有的定义信息。
三、数据查询
SELECT?[ALL|DISTINCT]? [,]?..
FROM[,?]?|[AS]
[?WHERE??]
[?GROUP?BY??[?HAVING??]]
按列名1的值分组,HAVING:满足条件的组才予以输出
[?ORDER?BY??[?ASC|DESC?]];按列名2值升降
确定范围:(NOT)BETWEEN(下限) AND(上限)
确定集合:(NOT)IN
字符匹配:LIKE‘’[ESCAPE‘’]
通配符:%:任意长度的字符串 _:任意单个字符
涉及空值查询:属性名 IS (NOT)NULL
多重条件查询:AND、OR
聚集函数:
计数:COUNT(*)COUNT([DISTINCT|ALL]?)
计算总和:SUM([DISTINCT|ALL]?)
?算平均P$:AVG?([DISTINCT|ALL]?)
最大最小P$MAX(MIN)?([DISTINCT|ALL]??)
WHERE子句与HAVING短语区别在于作用对象不同,WHERE子句作用于基本表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组
连接查询:
等值连接:
SELECT Student.*,SC.*;FROM Student,SC;WHERE Student.Sno=SC,Sno;
自身连接:SELECT FIRST.Cno,SECOND.Cpno;FROM Course FIRST, Course SECOND
WHERE FIRST.Cpno=SECOND.Cno
嵌套查询:
定义:将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询
查询块:一个SELECT-FROM-WHERE语句称为一个查询块
SELECT?Sname/*外层查询父查询*/
FROM?Student
WHERE?Sno?IN(SELECT?Sno??/*内层查询子查询*/
FROM?SC
WHERE?Cno='2');
不相关子查询:子查询的查询条件不依赖于父查询
相关嵌套查询:子查询条件依赖于父查询的查询语句
=
或!=
<
>=
ANY
IN
--
=MIN
ALL
--
NOT IN
=MAX
带有EXISTS谓词的子查询:不返回任何数据,只产生逻辑真假
基于派生表的查询:子查询出现在FROM子句中
FROM (子查询)AS [派生表名]
【AS关键字可省略,但必须为派生关系指定一个别名】
四、数据更新
插入数据:
INSERT INTO Student(Sno,Sname,Sdept,Sage)
VALUES(‘***’,’陈某某’,’IS’,18)
修改数据:
UPDATE Student SET Sage=22 WHERE Sno=’***’
删除数据:DELETE FROM Student WHERE Sno=’***’
五、视图
建立视图:
CREATE VIEW【“(表中各列名)”】
AS【】
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept=’IS’;
[WITH CHECK OPTION]
删除视图:DROP VIEW[CASCADE]
查询视图:与基本表相同
视图的作用:
视图能够简化用户的操作
视图使用户能以多种角度看待同一数据
视图对重构数据库提供了一定程度的逻辑独立性
视图能够对机密数据提供安全保护
利用视图可以更清晰地表达查询
====================================4===============================
数据库的安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
数据库的不安全因素:
非授权用户对数据库的恶意存取和破坏
数据库中重要或敏感的数据被泄露
安全环境的脆弱性
安全级别划分的指标:安全策略、责任、保证和文档
安全性控制常用方法:用户标识和鉴别、存取控制、视图、审计、密码存储
存取控制:
定义用户权限,并将用户权限登记到数据字典中
合法权限检查
自主存取控制方法:C2级、灵活
用户权限:数据库对象、操作类型
定义用户权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
授权:定义存取权限【不允许循环授权】
GRANT,…
ON,…
TO,…
[WITH GRANT OPTION]:指定获得某权限的用户是否可以把该权限授予别的用户
REVOKE,…
ON,…
FROM,…[CASCADE|RESTRICT]
审计:把用户对数据库的所有操作自动记录下来放入审计日志
审计事件:服务器事件、系统权限、语句事件、模式对象事件
审计功能:
基本功能,提供多种审计查阅方式
提供多套审计规则
提供审计分析和报表功能
审计日志管理功能
AUDIT:设置审计功能 NOAUDIT:取消审计功能
==============================5=====================================
一、数据库完整性:数据的正确性、相容性
实体完整性(PRIMARY KEY):基本关系的主属性不可取空值
参照完整性(FOREIGN KEY):若属性(属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:取空值或等于S中某个元组的主码值
用户定义的完整性:
列值非空(NOT NULL)、列值唯一(UNIQUE)
检查列值是否满足一个条件表达式(CHECK短语)
【例:Ssex CHAR(2)CHECK(sex IN(‘男’,‘女’)】
完整性约束命名子句:CONSTRAINT
二、触发器:用户定义在关系表上的一类由事件驱动的特殊过程,由服务器自动激活,可以实施更为复杂的检查和操作,具有更精细和更强大的数据控制能力
定义触发器:触发器又叫事件-条件-动作规则,当特定的系统事件发生,对规则进行检查,如果条件成立则执行规则中的动作,否则不执行动作
CREATE TRIGGER
触发事件:INSERT、DELETE、UPDATE(组合)
触发器类型:行级触发器、语句级触发器
激活触发器:
执行该表上的BEFORE触发器
激活触发器的SQL语句
执行该表上的AFTER触发器
删除触发器:DROP TRIGGERON
=================================6==================================
关系模式存在的问题:数据冗余度大、更新异常、插入异常、删除异常
一、规范化
1、函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r, r中不可能存在两个元组在X上的属性值相等而在Y上的属性值不等,则称“X函数确定Y” 或“Y函数依赖于X",记作X->Y
平凡:X->Y,但Y ? X X 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 中存在非主属性SNAME,SDEPT,MNAME对候选码(S#,CNAME)的部分函数依赖。
(2)首先消除部分函数依赖(S#,CNAME)→SNAME,SDEPT,MNAME将关系分解为:
R1(S#,SNAME,SDEPT,MNAME),F1 = { S#→SNAME,SDEPT,MNAME}
R2(S#,CNAME,GRADE),F2={(S#,CNAME)→GRADE}
在关系R1中存在非主属性对候选码的传递函数依赖S#→SDEPT,所以将R1进一步分解: R11(S#,SNAME,SDEPT) ,F11 = { S#→SNAME,SDEPT}
R12(SDEPT,MNAME) ,F12 = { SDEPT→MNAME}
在R2,R11,R12关系模式中函数依赖都是非平凡的,并且决定因素均是候选码,所以上述三个关系模式均是BCNF。
假设存在名为AAA的数据库,包括S(S# char(8),SN varchar(8),AGE int,DEPT varchar(20),DateT DateTime)和SC(S# char(8),CN varchar(10)
/
[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《数据库复习知识点(1)》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。