一:基本概念
(1)Data、DB、DBMS、DBS:概念(含与文件系统的区别)、构成、特点、功能、三个发展阶段,DBS核心
概念:
- 数据(Data)是数据库中存储的基本对象,描述事物的符号记录
- 数据库(Database,简称DB)是长期储存在计算机内、有组织、可共享的大量数据的集合。
- DBMS是位于用户与操作系统之间的一层数据管理软件。是基础软件,是一个大型复杂的软件系统
- 数据库系统(DBS):在计算机系统中引入数据库后的系统构成
数据库系统与文件系统的区别:
- 文件系统:共享性差、冗余度大,独立性差,
- 数据库系统:共享性高、冗余度小,独立性高,
数据库系统构成:
- 数据库 Database
- 数据库管理系统(及其开发工具)Database Management System
- 应用系统
- 数据库管理员 Database Administrator
特点
- 数据的特点:
- 数据与其语义是不可分的- 数据库的基本特征
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展- 数据库系统的特点
- 数据结构化
- 数据的共享性高,冗余度低,易扩充
- 数据独立性高(物理、逻辑)
- 数据由DBMS统一管理和控制
DBMS提供的数据控制功能
- (1)·数据的安全性(Security)保护·
- (2)数据的完整性(Integrity)检查
- (3)并发(Concurrency)控制
- (4)数据库恢复(Recovery)- 应用程序与数据的对应关系(数据库系统)
功能:
DBMS的主要功能:
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能(实用程序)
- 其它功能
三个发展阶段
- 人工管理阶段(20世纪40年代中–50年代中)
- 文件系统阶段(20世纪50年代末–60年代中)
- 数据库系统阶段(20世纪60年代末–现在)
(2)数据模型:概念、核心、三要素、概念模型|数据模型、三个世界、常见数据模型
概念:
- 现实世界的模拟、是数据库系统的核心和基础
核心:
- 能比较真实地模拟现实世界
- 容易为人所理解
- 便于在计算机上实现
三要素:
- 数据结构、数据操作、数据的完整性约束条件
概念模型|数据模型:
对概念模型的基本要求:
1:较强的语义表达能力
2:能够方便、直接地表达应用中的各种语义知识
3:简单、清晰、易于用户理解
- 按用户的观点来对数据和信息建模,用于数据库设计。
- 实体、属性、码、实体型、实体集、联系
- 表示方法:实体-联系方法(E-R方法))
- 实体之间的联系类型:一对一、一对多、多对多
三个世界?
?
常用数据模型:
- 层次模型
- 网状模型
- 关系模型:最重要的一种数据模型
(3)关系模型:概念、术语
概念:
- 最重要的一种数据模型
- 关系的每一个分量必须是一个不可分的数据项(不允许表中有表)
对关系的描述
关系名(属性1,属性2,…,属性n)
学生(学号,姓名,年龄,性别,系,年级)==
(4)DBS结构:型与值、模式与实例、三级模式
型与值:
- 型:对某一类数据的结构和属性的说明
- 例如:(学号,姓名,性别,系别,年龄,籍贯)—记录型- 值:是型的一个具体赋值
- 例如:(202012,李明,男,计算机系,19,贵州)—记录值
模式与实例:
- 模式(Schema)
- 数据库逻辑结构和特征的描述
- 是型的描述
- 反映的是数据的结构及其联系
- 模式是相对稳定的- 实例(Instance)
- 模式的一个具体值
- 反映数据库某一时刻的状态
- 同一个模式可以有很多实例
- 实例随数据库中的数据的更新而变动
一个数据库只有一个模式,可以把模式看成唯一的数据库,实例就是数据库里面的多个表
三级模式:
- 外模式的用途
- 保证数据库安全性的一个有力措施;
- 每个用户只能看见和访问所对应的外模式中的数据;- 内模式(Internal Schema)(也称存储模式)
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的组织方式
二:关系数据库理论
(1)关系模型、码\候选码、基本操作
关系模式:
- 关系是关系模式在某一时刻的状态或内容。
- 关系模式是静态的、稳定的
关系是动态的、随时间不断变化的
码\候选码
- 某一属性组的值能唯一标识一个元组,则称该属性为候选码
- 若一个关系有多个候选码,则选定一个为主码
基本操作
- 查询:选择、投影、连接、除、并、交、差
- 数据更新:插入、删除、修改
- 查询的表达能力是其中最主要的部分
- 选择、投影、并、差、笛卡尔基是5种基本运算操作
投影:从表中选出若干属性列组成新的关系
- 会取消相同的行
(2)关系代数:各种运算、运算的逻辑含义与运算方法
三:SQL语言
(1)表–create、insert、update、delete;约束字句、外码引用refrence
CREATE(创建):
语法:
create table 【if not exists】 表名(
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
…
)
INSERT(插入):
方式一:
语法:insert into 表名(列名,…) values(值1,…)
INSERT INTO beauty
VALUES
(20, ‘李易峰’, ‘男’, NULL, ‘19’, NULL, NULL),
(21, ‘李易峰’, ‘男’, NULL, ‘19’, NULL, NULL),
(22, ‘李易峰’, ‘男’, NULL, ‘19’, NULL, NULL);
方式二:
语法:insert into 表名 set 列名=值,列名=值,…
INSERT INTO beauty
SET id=19,NAME=‘刘涛’,phone=‘999’;
方式一和方式二的区别与联系:
- 方式1支持插入多行,但是方式2不支持
- 方式1支持子查询,方式2不支持
UPDATE(修改):
语法:
update 表名
set 列=新值,列=新值,…
where 筛选条件;
举例:
#案例1:修改beauty表中姓唐的女神的电话为13899888899
UPDATE beauty SET phone = ‘13899888899’
WHERE NAME LIKE ‘唐%’;
#案例2:修改boys表中id号为2的名称为张飞,魅力值 10
UPDATE boys SET boyname=‘张飞’,usercp=10
WHERE id=2;
DELETE(删除):
语法:
delete from 表名 where 筛选条件
#案例:删除手机号以9结尾的女神信息
DELETE FROM beauty WHERE phone LIKE ‘%9’;
SELECT * FROM beauty;
(2)数据类型,NULL没有输入
CHAR(n):长度为n的定长字符串
VARCHAR(n):长度为n的变长字符串
INT:长整型(4个字节)
SMALLINT:短整型(2个字节)
BIGINT:大整形(8个字节)
FLOAT(n):可选精度的浮点数,精度至少为n位数字
DATE:日期
TIME:时间
(3)查询:select、条件、聚集函数、空值处理、等值连接\自然连接、自身连接、多表连接、嵌套连接
- 看思维导图
空值处理:
UNIQUE:限定属性非空
(4)create、insert、delete也要会写语句
(5)视图:概念、基本表与视图、视图的建立\查询\更新、视图的作用
概念:
含义:虚拟表,和普通表一样使用。并且使用视图时动态生成的,值保存了sql逻辑,不保存成查询结果。
视图的作用:
1:视图能够简化用户的操作
2:视图能够使用户以多种角度看待同一数据
3:视图对重构数据库提供了一定程度的逻辑独立性
4:视图能够对机密数据提供安全保护·
5:适当利用视图可以更清晰的表达查询
视图的建立\查询\更新
创建
语法:create view 视图名 【(<列明>)】 as 查询语句;#.查询各部门的平均工资级别 #①创建视图查看每个部门的平均工资 CREATE VIEW myv2 AS SELECT AVG(salary) ag,department_id FROM employees GROUP BY department_id; #②使用 SELECT myv2.`ag`,g.grade_level FROM myv2 JOIN job_grades g ON myv2.`ag` BETWEEN g.`lowest_sal` AND g.`highest_sal`;
注意:在下列三种情况下必须明确指定组成视图的所有列名
- 某个目标列不是单纯的属性名,而是由聚集函数或列表达式
- 多表连接时选出了几个同名列作为视图的字段
- 需要在视图中为某个列启用新的更适合的名字
查询
更新
视图的更新最终要转化为对基本表的更新
并不是所有的视图都可以更新
CREATE OR REPLACE VIEW myv1 AS
SELECT
last_name,
FROM
employees;
SELECT * FROM myv1;
插入
INSERT INTO myv1 VALUES('张飞', 'zhangfei');
修改
UPDATE myv1 SET last_name='张无忌' WHERE last_name = '张飞';
删除
DELETE FROM myv1 WHERE last_name='张无忌';
(6)索引:聚簇非聚簇两种类型
建立索引:CREATE UNIQUE INDEX 索引名 ON 表名(属性)
删除索引:DROP INDEX 索引名
四:安全性
数据的安全性是指保护数据库以防止不合法的使用所造成的的数据泄露、更改或破坏
(1)不安全因素----对应措施
1:非授权用户对数据库的恶意存取和破坏
措施:用户身份鉴别、存取控制和视图技术
2:数据库中重要或敏感的数据被泄露
措施:强存取控制、数据加密存储、加密传输
3:安全环境的脆弱性
措施:建立完善的安全标准
(2)掌握权限授予语句:grant;回收语句:revoke
1️⃣ 授权—GRANT
[例1] 把查询Student表权限授给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
[例2] 把对Student表和Course表的全部权限授予用户U2和U3
GRANT ALL PRIVILIGES
ON TABLE Student, Course
TO U2, U3;
[例3] 把对表SC的查询权限授予所有用户
GRANT SELECT
ON TABLE SC
TO PUBLIC;
[例4] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;##可以传播(再把该权限授权给别人)(收回时需要联机收回)
2️⃣ 回收—REVOKE
REVOKE语句的一般格式为:
REVOKE <权限>[,<权限>]...
[ON <对象类型> <对象名>]
FROM <用户>[,<用户>]...;
[例8] 把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;
[例9] 收回所有用户对表SC的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
[例10] 把用户U5对SC表的INSERT权限收回
REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE ;
将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回系统只收回直接或间接从U5处获得的权限
五:完整性
(1)数据库完整性概念:(正确性、相容性)
数据库完整性指的是数据的正确性和相容性。
(2)三种类型完整性概念与实现措施:(实体、参照、用户自定义)
1:实体完整性
- 主属性非空
- 列级约束条件(单属性或多属性)
- 表级约束条件(多属性)
- CREATE TABLE中用PRIMARY KEY定义
2:参照完整性
关系模型的参照完整性定义
在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码
用REFERENCES短语指明这些外码参照哪些表的主码
例如,关系SC中一个元组表示一个学生选修的某门课程的成绩,
(Sno,Cno)是主码。
Sno,Cno分别参照引用Student表的主码和Course表的主码
定义SC中的参照完整性
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),
/*在表级定义参照完整性,Sno是外码,被参照表是Student*/
FOREIGN KEY (Cno) REFERENCES Course(Cno)
/*在表级定义参照完整性,Cno是外码,被参照表是Course*/
);
3:用户定义的完整性—CHECK
CREATE TABLE时定义
列值非空(NOT NULL)
列值唯一(UNIQUE)
检查列值是否满足一个布尔表达式(CHECK)
3. 用CHECK短语指定列值应该满足的条件
[例7]Student表的Ssex只允许取“男”或“女”。
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(8) NOT NULL,
Ssex CHAR(2) CHECK (Ssex IN (‘男’,‘女’) ) ,
/*性别属性Ssex只允许取'男'或'女' */
Sage SMALLINT,
Sdept CHAR(20)
);
六:数据依赖
概念
- 是一个内部属性与属性之间的约束条件
- 是现实世界属性间相互联系的抽象
- 是数据内在的性质
- 是语义的体现
七:数据库设计
(1)设计的6个阶段概念与内容
数据库设计分为 6 个阶段:
(1) 需求分析:准确了解与分析用户需求(包括数据与处理)。
(2)概念结构设计:对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS的概念模型。
(3)逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模型,并对其进行优化。
(4)物理结构设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
(5)数据库实施:建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
(6)数据库运行和维护:对数据库系统进行评价、调整与修改。
(2)E-R图画法,全局E-R图及解决的冲突的三种类、措施
E-R图画法
- E-R图提供了表示实体型、属性和联系的方法
- 实体型用矩形表示
- 属性用椭圆形表示
- 用无向边将其与相应的实体型联系起来
- 联系用菱形表示
- 用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型
注意:如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
全局E-R图及解决的冲突的三种类、措施
1:属性冲突(属性域冲突、属性取值单位冲突)
- 解决:各部门协商解决即可
2:命名冲突(同名异义、异名异义)
- 解决方法:通过讨论、协商等行政手段加以解决
3:结构冲突
- 解决方案:根据应用的语义对实体联系的类型进行综合或调整
(3)E-R图转化为关系
转换原则:
(1)每一个实体类型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。
(2)联系的转换
① 一般1:1,1:m联系不产生新的关系模式,而是将一方实体的码加入到多方实体对应的关系模式中,联系的属性也一并加入。
②m:n联系要产生一个新的关系模式,该关系模式由联系涉及实体的码加上联系的属性(若有)组成。
(1)两实体间的 1:1 联系
例如,如图 6.1 所示的 E-R 图可转换为如下关系模式:
工厂(厂号,厂名,地点,姓名,任期)
厂长(姓名,性别,年龄)
或者:
工厂(厂号,厂名,地点)
厂长(姓名,性别,年龄,厂号,任期)
(2)两实体间的 1:m 联系
可将“1”方实体的主码纳入“m”方实体对应的关系中作为外码,同时把联系的属性也一并纳入“m”方对应的关系中。
例如,如图 6.2 所示的 E-R 图转换为如下关系模式:
仓库(仓库号,地点,面积)
商品(货号,品名,价格,仓库号,数量)
(3)两个以上实体间的 m:n 联系
必须为这个“联系”单独建立一个关系,该关系中至少应包含被它所联系的各个实体的“主码”,若是联系有属性,也要纳入这个关系中。
例如,如图 6.8 所示的 E-R 图可转换为如下关系模式:
供应商(供应商号,供应商名,地址)
零件(零件号,零件名,重量)
项目(项目编号,项目名称,开工日期)
供应(供应商号,项目编号,零件号,零件数)
(4)SQL数据库文件:.LDF,.MDF
- 主数据库文件,扩展名.mdf
- 用来存储数据库的数据和数据库的启动信息
- 每个数据库有且只有一个主数据文件
- 辅助数据库文件,扩展名.ndf
- 事务日志文件,扩展名.ldf
- 用来存放数据库的事务日志。凡是对数据库进行的增、删、改等操作,都会记录在事务日志文件中
- 每个数据库至少有一个事务日志文件
七:系统恢复
(1)事务及其特性
所谓事务是用户定义的一个数据库操作序列,这些操作要么做,要么不做,是一个不可分割的工作单位。
特性:原子性、一致性、隔离性、持续性(简称: ACID特性)
(2)X\S锁概念与用途
(3)常见故障种类及恢复措施
事务内部的故障:
- 恢复措施:事务撤销
系统故障:
- 恢复措施:系统重启后,恢复子系统需要撤销所有未完成的事务外,还需要重做所有已提交的事务
介质故障
- 恢复措施:重装数据库,然后重做已完成的事务
计算机病毒
八:数据库技术发展
(1)发展阶段
第一代数据库系统
第二代数据库系统
新一代数据库系统
- 应支持数据管理、对象管理和知识管理
- 必须保持或继承第二代数据库系统的技术
- 必须对其他系统开放
(2)发展特点(重要)
(3)发展趋势
数据、应用需求和计算机硬件技术是推动数据库发展的三个主要动力或主要因素
各类技术的相互借鉴、融合和发展是未来数据库管理领域的发展趋势