第一章:
1. 数据库四个基本概念(数据,数据库,数据库管理系统,数据库系统)
数据(Data):是数据库中存储的基本对象
数据的定义:描述事物的符号记录
数据的种类:数字、文字、图形、图像、音频、视频、学生的档案记录等
数据特点:数据与其语义是不可分的
数据库的定义:
数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库的基本特征:
数据按一定的数据模型组织、描述和储存
可为各种用户共享
冗余度较小
数据独立性较高
易扩展
什么是数据库管理系统:
位于用户与操作系统之间的一层数据管理软件
是基础软件,是一个大型复杂的软件系统
数据库管理系统的用途:
科学地组织和存储数据、高效地获取和维护数据
数据库管理系统的主要功能
数据定义功能:提供数据定义语言(DDL),定义数据库中的数据对象
数据组织、存储和管理:分类组织、存储和管理各种数据,确定组织数据的文件结构和存取方式,实现数据之间的联系,提供多种存取方法提高存取效率
数据操纵功能:提供数据操纵语言(DML),实现对数据库的基本操作 (查询、插入、删除和修改)
数据库系统的构成:数据库 数据库管理系统(及其应用开发工具)应用程序 数据库管理员
2. 数据模型(两类数据模型和数据模型组成要素,常用的数据模型)
数据模型分为两类(两个不同的层次)
(1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。 E-R
(2) 逻辑模型和物理模型
逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
数据模型组成要素
(1)数据结构
数据模型的数据结构
描述数据库的组成对象,以及对象之间的联系
描述的内容
1. 与对象的类型、内容、性质有关
2. 与数据之间联系有关
数据结构是刻画一个数据模型性质最重要的方面
数据结构是对系统静态特性的描述
(2)数据操作
对数据库中各种对象(型)的实例(值)允许执行的
操作的集合,包括操作及有关的操作规则
数据操作的类型
查询
更新(包括插入、删除、修改)
数据模型对操作的定义:操作的确切含义操作符号 操作规则(如优先级) 实现操作的语言
数据操作是对系统动态特性的描述
(3)数据的完整性约束条件
一组完整性规则的集合
完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容
数据模型对完整性约束条件的定义
反映和规定必须遵守的基本的通用的完整性约束条件。
提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
常用的数据模型
层次模型
数据库系统中最早出现的数据模型,层次模型用树形结构来表示各类实体以及实体间的联系
满足下面两个条件的基本层次联系的集合为层次模型
1. 有且只有一个结点没有双亲结点,这个结点称为根结点
2. 根以外的其它结点有且只有一个双亲结点
层次模型的特点:
结点的双亲是唯一的
只能直接处理一对多的实体联系
每个记录类型可以定义一个排序字段,也称为码字段
任何记录值只有按其路径查看时,才能显出它的全部意义
没有一个子女记录值能够脱离双亲记录值而独立存在
层次模型的数据操纵:查询插入删除更新
层次模型的完整性约束条件
无相应的双亲结点值就不能插入子女结点值
如果删除双亲结点值,则相应的子女结点值也被同时删除
更新操作时,应更新所有相应记录,以保证数据的一致性
层次模型存储结构特点:
数据与数据间的联系结合在一起存储
数据间的联系用位置相邻或指针表达
两种常用的实现方法
邻接法:按照层次树前序遍历的顺序把所有的记录值依次邻接存放,即通过物理空间的位置的相邻来实现层次顺序
链接法:用指针来反映数据之间的层次联系
层次模型优点
层次模型的数据结构比较简单清晰
查询效率高,性能优于关系模型,不低于网状模型
层次数据模型提供了良好的完整性支持
缺点
结点之间的多对多联系表示不自然
对插入和删除操作的限制多,应用程序的编写比较复杂
查询子女结点必须通过双亲结点
层次命令趋于程序化
网状模型(Network Model)
满足下面两个条件的基本层次联系的集合:
1. 允许一个以上的结点无双亲;
2. 一个结点可以有多于一个的双亲。
网状模型与层次模型的区别
网状模型允许多个结点没有双亲结点
网状模型允许结点有多个双亲结点
网状模型允许两个结点之间有多种联系(复合联系)
网状模型可以更直接地描述现实世界
层次模型实际上是网状模型的一个特例
完整性约束条件不严格
允许插入尚未确定双亲结点值的子节点
允许只删除双亲结点值
常用方法:用指针实现记录之间的联系
单向链接
双向链接
环装链接
向首链接
优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲
具有良好的性能,存取效率较高
缺点
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
DDL、DML语言复杂,用户不容易使用
记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节
关系模型(Relational Model))
关系必须是规范化的,满足一定的规范条件
最基本的规范条件:关系的每一个分量必须是一个不可分的
数据项, 不允许表中还有表
优点
建立在严格的数学概念的基础上
概念单一
实体和各类联系都用关系来表示
对数据的检索结果也是关系
关系模型的存取路径对用户透明
具有更高的数据独立性,更好的安全保密性
简化了程序员的工作和数据库开发建立的工作
缺点
查询效率往往不如格式化数据模型
为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
面向对象数据模型(Object Oriented Data Model)
对象关系数据模型(Object Relational Data Model)
半结构化数据模型(Semistruture Data Model)
3. 三级模式,二级映像p27
三级模式:
模式(也称逻辑模式)
数据库中全体数据的逻辑结构和特征的描述
所有用户 的公共数据视图
一个数据库只有一个模式
模式的地位:是数据库系统模式结构的中间层
与数据的物理存储细节和硬件环境无关
与具体的应用程序、开发工具及高级程序设计语言无关
模式的定义
数据的逻辑结构(数据项的名字、类型、取值范围等)
数据之间的联系
数据有关的安全性、完整性要求
外模式(也称子模式或用户模式)
数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式的地位:介于模式与应用之间
外模式的用途
保证数据库安全性的一个有力措施.
保证数据独立性的一个有效措施
内模式(也称存储模式)
是数据物理结构和存储方式的描述
是数据在数据库内部的表示方式
记录的存储方式(例如,顺序存储,堆结构存储,聚簇存储等)
索引的组织方式(B+树,hash)
数据是否压缩存储
数据是否加密
数据存储记录结构的规定(定长,变长,物理页)
一个数据库只有一个内模式
二级映像
外模式/模式映像:保证数据的逻辑独立性
模式/内模式映像:保证数据的物理独立性
第三章
Sql的特点
P78 sql功能和动词
用Create 创建的 删除就用DROP
插入数据
Insert into student1 select * from student;(这种方式只能复制数据,不能复制表结构)
CREATE TABLE student1 SELECT * FROM student(这种可以同时复制数据和表结构)
修改表
Alter table student [ADD<新列名><类型>[完整性]>]
[DROP<完整性>]
[MODIFY<列名><类型>]
日期型:DATE 半字长整数:SMALLINT
删除唯一性约束 DROP UNIQUE(Sname)
查询
聚集函数(count,avg,min,max,sum)通常和group by一起用(where/having分别用在group by前还是后? 后)
Select studentid,avg(grade) from gradewhere grade>80 group by studentid
Select studentid,avg(grade) from gradegroup by studentid having avg(grade)>80
模糊查询(LIKE _(一个字符) %(多个字符))
From student where studentname like ‘_王%‘
Order by(ASC DESC)
SELECT GRADE FROM GRADE WHERE GRADE BETWEEN 10 AND 80;等于GRADE>=10 AND GRADE <=80;
SELECT GRADE FROM GRADE WHERE GRADE is null
Distinct 去重复
Select distinct studentid
Exists 存在
查询:Select…from….where….
Create/drop/alter
Insert into…value…./insert into…select….
Update…set….where ….
Delete from …where…
WHERE:1.范围:BETWEEN AND, NOT BETWEEN AND
2.集合:IN ,NOTIN
3.字符匹配:LIKE,NOT LIKE
4.空值:IS NULL, IS NOT NULL
5.多重条件:AND, OR
视图(虚表)
1. CREATE VIEW —— AS 子查询
2. 删除DROP VIEW
3. UPDATE <> SET ___ WHERE__
第四章
P133数据库不安全的因素
1.非授权用户对数据库的恶意存取和破坏
一些黑客(Hacker)和犯罪分子在用户存取数据库时猎取用户名和用户口令,然后假冒合法用户偷取、修改甚至破坏用户数据。
数据库管理系统提供的安全措施主要包括用户身份鉴别、存取控制和视图等技术。
2.数据库中重要或敏感的数据被泄露
黑客和敌对分子千方百计盗窃数据库中的重要数据,一些机密信息被暴露。
数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。
审计日志分析
3.安全环境的脆弱性
数据库的安全性与计算机系统的安全性紧密联系
计算机硬件、操作系统、网络系统等的安全性
建立一套可信(Trusted)计算机系统的概念和标准
数据库安全性控制的常用方法
用户标识和鉴定
存取控制
视图
审计
数据加密
P141 授权和收权概念和语句
自主存取使用GRANT和REVOKE语句向用户授权或收回数据的操作权限。
GRANT向用户授予权限。
REVOKE语句收回已经授予用户的权限
1.GRANT
GRANT语句的一般格式:
GRANT <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型> <对象名>]…
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
语义:将对指定操作对象的指定操作权限授予指定的用户
2.REVOKE
授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回
REVOKE语句的一般格式为:
REVOKE <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型><对象名>]…
FROM <用户>[,<用户>]...[CASCADE| RESTRICT];
第五章
数据库有哪三类完整性以及每种完整性的概念和相关语句
实体完整性:是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素的主码;
参照完整性:在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码
用REFERENCES短语指明这些外码参照哪些表的主码
用户定义的完整性:针对某一具体应用的数据必须满足的语义要求
CREATE TABLE时定义属性上的约束条件
列值非空(NOT NULL)
列值唯一(UNIQUE)
检查列值是否满足一个条件表达式(CHECK)
设置字段默认值(DEFAULT)
设置字段值自动增加(AUTO_INCREMENT)
创建断言的语句格式
CREATE ASSERTION<断言名><CHECK 子句>
每个断言都被赋予一个名字,<CHECK 子句>中的约束条件与WHERE子句的条件表达式类似。
第六章
6.2 函数依赖,码和范式的概念
第七章
数据库设计基本步骤和每个步骤都干了什么
E-R图
实体型用矩形表示
属性用椭圆形表示
联系用菱形表示
E-R图转关系模式
实体(______,……)
关系(连接几个实体就打几根下划线……)
物理结构设计:B+树索引方法
第10章
P293 事务的基本概念及ACID特性
事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务是恢复和并发控制的基本单位
事务的ACID特性:
原子性(Atomicity)事务是数据库的逻辑工作单位
一致性(Consistency)
隔离性(Isolation)
持续性(Durability )
P297 恢复技术(数据转储和日志文件种类,作用,过程等等)
建立冗余数据
P300 恢复策略
表,视图,索引,存储过程,触发器的概念和两两之间差别,代码等等。