Skip to content

04735 数据库系统原理 ☑️

一、数据库系统概述

数据库基本概念

  • 数据(Data)是描述,是指用物理符号记录下来的、可以鉴别的信息
  • 数据库(DB)是长期存储在计算机中的有组织的、可共享的数据集合,数据库中存储的数据具有三个基本特点
  • 数据库管理系统(DBMS),是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间
    • 数据定义——提供数据定义语言(DDL),定义表、视图、存储过程、触发器等
    • 数据操纵——提供数据操纵语言(DML)操纵数据库中的基本数据,包括查询、插入、删除和修改等
    • 数据库的运行管理——保证数据库的安全性、完整性、多用户对数据的并发使用以及发生故障后的系统恢复
    • 数据库的建立和维护——创建数据库、对数据库的空间维护、数据库的备份与恢复、数据库的重组织和性能监听、分析等
    • 数据组织、存储和管理——例如:索引查找、顺序查找等
    • 其他功能——主要包括与其他软件的网络通信功能、不同数据库管理系统之间的数据传输以及相互访问功能等

数据管理技术

  • 人工管理阶段
  • 文件系统阶段
  • 数据库管理阶段
    • 数据集成
    • 数据共享度高
    • 数据冗余度小
    • 数据一致性
    • 数据独立性高
    • 实施统一管理与控制
    • 减少应用程序开发与维护的工作量

数据库系统的结构

  • 模式:(),它是数据库中全体数据的逻辑结构或特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式,且相对稳定
  • 外模式:( ),它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示
    • DBMS提供子模式描述语言(Subschema DDL)来严格定义子模式
  • 内模式:()是对数据库中数据的描述,是数据在数据库内部的表示形式

三级模式结构的两层映像与数据独立性

  • 外模式/模式映像(逻辑独立性)
  • 模式/内模式映像(物理独立性)

数据库系统的运行与应用结构

  • C/S 结构(Client/Server 桌面客户端)
  • B/S 结构(Browser/Server 网页端)

数据模型

组成要素

  • 数据结构:描述系统的,即数据对象的数据类型、内容、属性及数据对象之间的联系
  • 数据操作:描述系统的,是对各种对象实例允许执行的操作集合,包括操作及有关的操作规则
  • 数据约束:描述数据结构中数据间的 ,包括相互制约与依存关系及数据动态变化规则,以保证数据的正确性、有效性和相容性

概念层数据模型

  • 实体:客观存在并可相互区别的事物称为实体。如学生、部门、课程等
  • 属性:实体所具有的特征。如学生具有学号、姓名、性别等特性
  • 码或键:可唯一标识实体的属性集。如学号是学生实体的码或键
  • 域:属性的取值范围。如性别的域为(男,女)
  • 实体型:用实体名与属性名的集合标识同类实体,称为实体型。如:学生(学号、姓名、性别、出生日期)
  • 实体集:同型实体的集合称为实体集。如:每个学生是一个实体,所有的学生构成一个实体集
  • 联系:实体(型)内部之间的联系和实体(型)之间的联系
    • 一对一 1:1
    • 一对多:1:N
    • 多对多:M:N

概念模型

用来描述现实世界的事物,与具体的计算机系统无关最典型的概念模型是实体联系(E-R)

逻辑层数据模型

  • 层次模型
  • 网状模型
  • 面向对象模型

物理层数据模型

也称为数据的物理模型(Physical Model),描述数据在存储介质上的组织结构,是逻辑模型的物理实现,即每一种逻辑模型在实现时都要有与其相对应物理模型

二、关系数据库

关系数据模型

基本术语

  • 表(Table) 也称关系,是一个二维的数据结构,由表名、列、行数据构成。 每个表的表名唯一,每一行描述一条具体的记录值
  • 关系(Relation) 同表。关系有三种类型:基本关系、查询表和视图表
  • 列(Column)表中的列,也称作字段(Field)或属性(Attribute),每一列有一个名称,称为列名、字段或属性名
  • 行(Row) 也称元组(Tuple)或记录(Record),一行数据即一个元组或一条记录
  • 分量(Component)元组中的一个属性值成为分量
  • 码或键(Key)能用来唯一标识一行数据的属性或属性组,如学号、身份证号等
  • 超码或超键(Super Key) 如果一个关系中的一个码移去某个属性,它仍然是这个关系的码,则这样的码或键为该关系的超码或超键。 如(学号,姓名)、(学号,姓名,性别, 出生日期)等
  • 候选码或候选键(Candidate Key) 如果在关系的一个码或键中,不能移去任何一个属性,否则它就不是这个关系的码或键。如(学号,课程号)
  • 主码或主键(Primary Key) 指定一个候选码来唯一标识一行数据
  • 全码或全键(All-Key)一个关系中所有属性都是主码或主键
  • 主属性(Primary Attribute)和非主属性(NonPrimary Attribute)包含任何一个候选码的属性称为主属性,不包含任何一个候选码的属性称为非主属性
  • 外码或外键(Foreign Key)某个属性不是这个关系的主码或候选码,而是另一个关系的主码,则该属性是外码。如:学生(学号,姓名,性别,出生日期,班主任,教师工号) 教师(工号,姓名,性别,出生日期)
  • 参照关系和被按照关系:以外码作为主码的关系成为被参照关系,外码所在的关系称为参照关系
  • 域(Domain)表示属性的取值范围,如“性别”取(男,女)
  • 数据类型:表示属性的数据类型,如“性别”为字符型,“工资”为货币型
  • 关系模式:关系模式是静态的,关系是动态的。关系是关系模式在某一时刻的状态或内容
  • 关系数据库:关系数据库是以关系模型作为数据的逻辑模型,并采用关系作为数据组织的一类数据库,其数据操作建立在关系代数的基础上

不是任意一个二维表都是关系,关系有下列要求:

  • 每个属性都是不可分解的
  • 每一个关系模式中属性的数据类型以及属性的个数是相对固定的
  • 每一个关系模式中的属性必须命名,且不同
  • 同一个关系中不允许出现候选码相同的两行
  • 行可任意交换
  • 列可任意交换

关系操作集合

基本的关系操作

  • 查询类:选择、投影、连接、除、并、差、交、笛卡尔积等
  • 更新类:修改、新增、删除

关系操作分为代数方式和逻辑方式

  • 代数方式主要是,通过对关系的操作来表达查询要求的方式
  • 逻辑方式主要是,使用谓词来表达查询要求的方式

关系的完整性约束

  • 实体完整性约束
    • 主键(主码)不能为空
  • 参照完整性约束
    • 实体之间存在联系
  • 用户自定义完整性约束
    • 反映某一具体应用所涉及的数据应满足的要求
  • 关系模型完整性约束的检验
    • 执行插入操作
    • 执行删除操作
    • 执行更新操作

关系数据库的规范化理论

可能存在的冗余和异常问题

  • 数据冗余
  • 更新异常
  • 插入异常
  • 删除异常

  • 设R为任一给定关系,如果对于R中属性X的每一个值,R中的属性Y都只有唯一值与之对应,则称X函数决定Y或称Y函数依赖于X,记作X→Y。其中X称为决定因素
  • 完全函数依赖:设R为任一给定关系,X、Y为其属性集,若X →Y,且对X中的任何真子集X’都有X’ ↛Y,则称Y完全函数依赖于X
  • 部分函数依赖:设R为任一给定关系,X、Y为其属性集,若X →Y,且X中存在一个真子集X’满足X’ → Y,则称Y部分函数依赖于X
  • 传递函数依赖:设R为任一给定关系,X、Y、Z为其属性子集,若X →Y,Y ↛X,Y→Z,则有X →Z。称Z传递函数依赖于X
  • 设R为任一给定关系,U为其所含的全部属性集合,X为U的子集,若有完全函数依赖X →U,则X为R的一个候选关键字

三、数据库设计

概述

数据库的生命周期

  • 数据库分析与设计阶段:需求分析、概念设计、逻辑设计和物理设计
  • 数据库实现与操作阶段:数据库的实现、操作与监督、修改与调整

  • 满足应用功能需求
  • 良好的数据库性能

数据库设计的方法

  • 直观设计法
  • 规范设计法
    • 新奥尔良设计方法
    • 基于E-R图模型的数据库设计方法
    • 基于第三范式的设计方法
  • 计算机辅助设计法

设计过程

数据库设计的基本步骤

  • 需求分析
    • 明确数据库的范围(涉及哪些表)
    • 应用过程分析:了解并分析数据与数据处理间的关系
    • 收集和分析数据
      • 静态结构:数据的静态结构是指不施加应用操作于其上时数据的原始状况
      • 动态结构:动态结构是指将应用操作施加于数据之上后数据的状况
      • 数据约束:数据约束是指使用数据时的特殊要求
        • 数据的安全保密性
        • 数据的完整性
        • 响应时间
        • 数据恢复
    • 编写需求分析报告
      • 数据库的应用功能目标
      • 标明不同用户视图范围
      • 应用处理过程需求说明:数据流程图、任务分类表、数据操作特征表、操作过程说明书
      • 数据字典:数据字典通常包括数据分类表、数据元素表和各类原始资料
      • 数据量:静态数据量、动态数据量
      • 数据约束
  • 概念结构设计
    • 在需求分析中产生的需求分析报告的基础上,按照特定的方法设计满足应用需求的用户信息结构,该信息结构通常称为概念模型。其中,采用E-R图作为概念模型的描述工具
  • 逻辑结构设计:概念设计 -> 模型转换 -> 子模式设计/应用程序设计说明 -> 设计评价 -> 物理设计
  • 物理设计:对于一个给定的数据库逻辑结构,研究并构造物理结构的过程,其具体的任务主要是确定在存储设备上的存储结构及其存取方法,因DBMS的不同还可能包括建立索引和聚集,以及物理块大小、缓冲区个数和大小、数据压缩的选择等
  • 数据库实施:加载数据、应用程序设计、数据库试运行
  • 数据库的运行和维护

关系数据库设计方法

设计过程&各级模式

  • 所有的需求都容纳在概念模式当中
  • 通过逻辑模式转换成一张张的表(外模式)以及存储数据的(内模式)

E-R 图

关系有一对一、一对多、多对多

E-R图之间的冲突主要表现在三个方面

  • 属性冲突:属性域冲突、属性取值单位冲突
  • 命名冲突:同名异义、异名同义
  • 结构冲突
    • 同一对象在一个局部E-R图中作为实体,而在另一个局部E-R图中作为属性
    • 同一实体在不同E-R图中属性个数和类型不同
    • 实体之间的联系在不同E华业(英华业)教育 -R图中是不同的类型

四、SQL&数据库操作

SQL 概述

特点

  • SQL不是特定数据库供应商专有的语言
  • SQL简单易学
  • SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作

组成

  • 数据定义语言 DDL:create、alter、drop
  • 数据操作语言 DML:select、update、insert、delete
  • 数据控制语言 DCL:grant、revoke
  • 嵌入式和动态 SQL
  • SQL 调用和会话规则

内置函数

  • 数值:abs 绝对值、sqrt 开平方
  • 聚合:count
  • 字符串:ascllchar
  • 日期:nowyear
  • 加密:encodeencrypt
  • 流程控制: ififnull
  • 格式化:format
  • 类型转换:cast
  • 系统信息:userversion

数据定义&SQL 语法

数据库操作语句

sql
create database if not exisits db_name
use db_name
alter db_name
drop database db_name
show db_name

数据表操作语句

sql
create table table_name(
  id int(8) not null,
  name char(20) null,
  PRIMARY KEY (`id`),
)ENGINE=InnoDB

alter table table_name ADD COLUMN sex CHAR(1) NULL
alter table table_name MODIFY COLUMN sex FLOAT
alter table table_name CHANGE COLUMN sex new_sex int(2)
alter table employees DROP COLUMN new_sex

rename table table_name to new_table_name
drop table tale_name

# 查看所有的表和特定表的结构
show tables
show column FROM table_name
describe table_name;

索引

  • 索引是提高数据文件访问效率的有效方法
  • 索引是以文件形式存储的
  • 索引在提高查询速度的同时,却会降低更新表的速度

索引在逻辑上的分类

  • 普通索引(INDEX)
  • 唯一性索引(UNIQUE)
  • 主键(PRIMARY KEY)
sql
CREATE INDEX idx_sex ON USER(sex) ## 给user表的sex添加索引
CREATE INDEX idx_name_sex ON user(name, sex) ## 组合索引

SHOW INDEX FROM USER
DROP INDEX idx_sex ON USER

新增、修改、删除

sql
insert into table_name ('xxx','xxx') values ('xxx','xxxx')
insert into table_name set a = '1'
insert into table_name select * from table_name

update table_name set a = '1' where b = '1'

delete from table_name where xxx = 1

查询

sql
# 查询从上往下的优先级
select a as A
from table_name
where a = '1'
group by a
having a > 1 # 相当于group by的where条件
order by a desc/asc
limit 1,10

# between and & in
where price between 2000 and 5000
where price not between 2000 and 5000
where price in(3000,6000)

# 判断空值
is not null

视图

视图与基本表的区别

  • 基本表是数据库中真实存在的表,而视图是建立在对数据库中真实表查询基础上的虚拟表
  • 视图的内容是由存储在数据库中进行查询操作的SQL语句定义的,它的列数据与行数据均来自于定义视图的查询所引用的基本表
  • 视图不适宜数据集的形式存储在数据库中的,它所对应的数据实际上是存储在视图所引用的基本表中的
  • 视图是用来查看存储在别处的数据的一种虚拟表,本身不存储数据

优点

  • 集中分散数据 、 简化查询语句、重用SQL语句、保护数据安全、共享所需数据、更改数据格式
sql
create view view_name as
select id, name
from user

drop view view_name

show create view view_name

五、数据库编程

存储过程

基本概念

存储过程是一组为了完成某项特定功能的SQL语句集,实质上是一段存储在数据中的代码。

存储过程的优点:

  • 可增强SQL语言的功能和灵活性
  • 良好的封装性
  • 高性能
  • 可减少网络流量
  • 存储过程可作为一种安全机制来确保数据库的安全性和数据的完整性

创建存储过程及调用

sql
# 存储过程名为 AddUser,它接受三个参数,这些参数将被用来插入到 user 表中
DELIMITER //

CREATE PROCEDURE AddUser(
    IN p_name VARCHAR(20),
    IN p_sex INT(2),
    IN p_address VARCHAR(128)
)
BEGIN
    INSERT INTO USER (NAME, sex, address)
    VALUES (p_name, p_sex, p_address);
END //

DELIMITER ;


CALL AddUser('你最好是', 1, '湖南省长沙市岳麓区');

drop PROCEDURE AddUser

游标

游标是一个被SELECT语句检索出来的结果集。存储了游标后,用户或程序可以需要滚动或浏览其中的数据

存储函数

存储函数&存储过程的区别

  • 存储过程不能拥有输出参数,而存储过程可以拥有输出参数(函数只能返回值或者表对象)
  • 使用CALL语句调用存储过程,使用函数名调用函数
  • 存储函数必须包含RETURN语句,而存储过程不能包含

创建存储函数及调用

sql
DELIMITER //
 
CREATE FUNCTION GetUserById(pid INT)
RETURNS VARCHAR(255)

BEGIN
return (select name from user where id = pid);
END//

DELIMITER ;

select GetUserById(3)

drop function GetUserById

六、数据库安全

数据库完整性

完整性约束条件的作用对象

  • 列级约束
    • 对数据类型的约束
    • 对数据格式的约束
    • 对取值范围和取值集合的约束
    • 对空值的约束
  • 元组约束
    • 指各字段之间的约束
  • 表级约束
    • 指若干元组之间、关系之间的联系约束

定义与实现完整性约束

实体完整性约束

  • 主键约束
    • 每个表只能定义一个主键
    • 主键的值不能为NULL,必须能够唯一代表一行
    • 复合主键不能包含不必要的多余列
    • 一个列名在复合主键的列表中只能出现一次,使用 标识
  • 侯选键约束
    • 使用关键字 定义

参照完整性

  • 外键约束
sql
create table score(
cscore int(11),
st_id int(50) references student(id),
cs_id int(30) references classes(id),
primary key(st_id,cs_id)
);
或者
create table score(
cscore int(11),
st_id int(50),
cs_id int(30),
primary key(st_id,cs_id),
FOREIGN KEY (st_id) REFERENCES student(id),
FOREIGN KEY (cs_id) REFERENCES classes(id)
);

用户自定义完整性

  • 非空:not null
  • check 约束:表示该列的值大于等于 18

命名完整性约束

CONSTRAINT 别名 约束

sql
CREATE TABLE emp6(
	id INT NOT NULL,
	NAME VARCHAR(20),
	pwd VARCHAR(15),
	CONSTRAINT emp7_pk PRIMARY KEY(NAME,pwd)
);

# 通过 add constraint 添加约束
alter table user_detailed add constraint agecheck check(age between 0 and 150)

触发器

概述

触发器是用户定义在上的一类由事件驱动的数据库对象,也是一种保证数据完整性的方法

如:每当客户订购一个产品时,都从产品库存量中减去可订购的数量

如:每当删除客户基本信息表中一个客户的全部信息时,该客户的未完成订单信息也应被自动删除

自动触发、自动更新、删除、新增等

主要作用:实现主键和外键不能保证的复杂的参照完整性和数据一致性,从而保护表中的数据

创建触发器

下面添加一个触发器表示,在 user 表当中添加一个新增触发器,当往 user 表里面插入了一行数据之后会触发触发器,执行 insert 语句往 info 表插入一条数据

sql
# after:执行后、还可选before
# insert 表插入(还可选update、delete
# on 对应的表名,表示触发器在加哪个表里面
# for each row 行级触发
# begin end 表示触发后执行的语句
delimiter //
create trigger tirgger_name 
after insert on user
for each row
begin
  insert into info (`height`,`weight`) values (175,62.8)
end //
delimiter

# 修改、删除触发器是一样的,insert改成update、delete即可

drop trigger trigger_name

# 所有触发器的信息都存在 information_schema 数据库的 triggers 表中
SELECT * FROM information_schema.triggers WHERE trigger_name= '触发器名';

完全性和访问控制

在 MySQL 的版本当中需要注意:5.7 版本可以使用 password 这个内置函数,在 8.0 版本要使用 MD5 或者 SHA2(' your_password',256)

用户账号管理

分别是创建用户、修改密码、修改名称、删除用户

sql
create user 'zhangsan'@'localhost' identified by '1234';
set passwrod for 'zhangsan'@'localhost' = '123456'
rename user 'zhangsan'@'localhost' to 'lisi'@'localhost'
drop user 'lisi'@'localhost'

账号权限管理

授权可以选择的包括:selectinsertdeleteupdatecreatealterindexdropdeferencesall

sql
grant 权限类型 on 数据库名.表名 to '用户名'@'主机名' [WITH GRANT OPTION];

# 给张三这个用户授予所有权限
grant all privileges on *.* to 'zhangsan'@'localhost';
# 只给他操作这个库表的新增查询权限
grant select, insert ON mydb.mytable to 'zhangsan'@'localhost';
# 允许他将这个可以的权限授给其他用户
grant all privileges on *.* to 'zhangsan'@'localhost' with grant option;

# 撤销权限、刷新
revoke insert on mydb.mytable from 'zhangsan'@'localhost';
flush privileges

事务&并发控制

事务

是用户定义的一个数据操作序列,这些操作可作为一个完整的工作单元,要么全部执行,要么全不执行,是一个不可分割的工作单位

特征:ACID

  • 原子性(Atomicity)事务的是不可分割的工作单位
  • 一致性(Consistency) 事务必须满足数据库的完整性约束,且事务执行完毕后将数据由一个一致性状态变到另一个一致性状态
  • 隔离性(Isolation)一个事务的执行不能被其他事务干扰
  • 持续性(Permanence)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的

并发操作的问题

  • 丢失更新
    • 两个事务 T1,T2 同时修改,T2 的提交破坏了 T1 提交的结果,T1 的修改被丢失
  • 不可重复读
    • T1 读取数据后,T2 提交修改,T1 再次读取数据已经被改变了
  • 读脏数据
    • T1 修改数据后写入磁盘,T2 来读该数据,此时 T1 发现数据写入错误于是撤销,T2 读到的数据还是改了之后的错误数据

一个锁实质上就是允许或阻止一个事务对一个数据对象的存取特权分为

  • 共享锁:也就是读锁,一个事务给某行数据加了读锁,其他事务也可以读,但是不能写(S 锁)
  • 排它锁:也就是写锁,一个事务给某行数据加了写锁,其他事务不能读,也不能写(X 锁)

用锁控制并发的原理

  • 事务 T 对数据 D 加了 X 锁,此时其他的事务都不能对 数据 D 做任何操作,必须等待 T 释放 X 锁
  • 事务 T 对数据 D 加了 S 锁,其他事务可以请求 S 锁,但不能请求 X 锁,需要等待释放 S 锁才能请求 X 锁
  • 事务执行数据库操作时都要先请求相应的锁,即对读请求S锁,对更新(插入、删除、修改)请求X锁
  • 事务一直占有获得的锁直到结束时释放

封锁的级别

  • 0级封锁
    • 封锁的事务不重写其他非0级封锁事务的未提交的更新数据。这种状态实际上实用价值不大。
  • 1级封锁
    • 被封锁的事务不允许重写未提交的更新数据。这防止了的发生
  • 2级封锁
    • 被封锁的事务既不重写也不读未提交的更新数据。这除了1级封锁的效果外还防止了
  • 3级封锁
    • 被封锁的事务不读未提交的更新数据,不写任何(包括读操作的)未提交数据。这里除了包含2级封锁外,还不写未提交的读数据, 因而防止了的问题

活锁 & 死锁

  • 活锁:因而永远等待下去
    • 排队,如“先到先服务”
  • 死锁:两个以上事务被同组中另一事务锁住的数据单元的情形
    • 一次性锁请求
    • 锁请求排序
    • 序列化处理
    • 资源剥夺

两阶段锁法

  • 发展(Growing)或加锁阶段
    • 在此期间,对任一数据对象进行任何操作之前,事务都要获得对该对象的一个相应的锁
  • 收缩(Shinking)或释放锁阶段
    • 一旦事务释放了一个锁,则标明它已进入了此阶段,此后它就不能再请求任何其他锁

备份&恢复

数据库中的数据丢失或被破坏的原因有:

计算机硬件故障、软件故障、病毒、人为误操作、自然灾害、盗窃

SQL 操作

通过 outfile 导出的文件需要看secure_file_priv配置的导出文件地址,只能导出到这个地址。

补充:如果这个变量的值为 null,表示禁止导出,在 MySQL 安装路径下的 my.ini 文件中添加secure_file_priv=设置路径语句,然后重启 MySQL 服务

sql
show VARIABLES like 'secure_file_priv'

# 导出到d盘user.txt文件当中
# 字段用逗号隔开,字符串值放在双引号中间、用?作为一行结束
select * from user 
into outfile 'D://user.txt'
fileds terminated BY ','
optionally enclosed BY'"'
lines terminated BY '?';


load data infile 'D://user.txt'
into table user
fileds terminated BY ','
optionally enclosed BY'"'
lines terminated BY '?';

七、数据库应用设计&开发实例

简述题

简述数据库应用软件设计与实现的基本步骤

  • 以数据库的声明周期为演化主线,可分为需求分析、系统功能与数据库设计、系统功能与数据库实现、测试与维护阶段

简述数据库应用软件开发过程中系统功能设计与数据库设计的区别和联系

  • 系统功能设计是以系统需求分析产生的需求报告为基础的,数据库设计是以功能设计和前期的需求分析为基础的,局部采用ER图最后合并成全局ER图,并将其转换成关系模式,以关系规范化理论进行优化和处理

八、数据库管理技术的发展

数据库发展

第一代

  • 代表
    • BM公司的IMS,1969,层次模型
    • CODASYL的DBTG,1970,网状模型
  • 特点
    • 支持三级模式、用存取路径表示数据之间的联系、独立的数据定义语言、导航的数据操作语言

第二代

  • 关系数据库系统:IBM公司的E.F.Codd,1970
  • 主要成果
    • 奠定了关系模型的理论基础、研究了关系数据语言、研制了大量的RDBMS的原型

第三代

  • OODB 没有被市场普遍接受
  • 特征
    • 应支持数据管理、对象管理和知识管理、必须保持或继承第二代数据库系统的技术、必须对其他系统开放

数据仓库

主要特征

  • 面向主题、集成性、数据的非易失性、数据的时变性

三个重要概念

  • 粒度:粒度问题是设计数据仓库的一个重要方面。粒度是数据仓库的数据单位中保存数据的细化或综合程度的级别,细化程度越高,粒度级就越小
  • 分割:分割是将数据分散到各自的物理单元中,以便能分别处理,以提高数据处理的效率。数据分割后的单元成为切片
  • 维:维是人们观察数据的特定角度,是考虑问题时的一类属性

数据挖掘

是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中发现并提取隐藏在其中的、人们事先不知

道的、但是又潜在有用的信息和知识的一种技术

具备的几种功能

  • 概念描述
  • 关联分析。Apriori、FP-Grows
  • 分类与预测。决策树模型、神经网络模型、线性回归等
  • 聚类。K-Means、GMM
  • 孤立点检测
  • 趋势和演变分析

  • 确定业务对象
  • 数据的选择
  • 数据的预处理
  • 建模
  • 模型评估
  • 模型部署

大数据管理技术

特征(4V)

  • 数据量巨大。即大量化(Volume)
  • 数据种类繁多,即多样化(Variety)
  • 处理速度快,即快速化(Velocity)
  • 价值(Value)密度低

关键字

单词说明
procedure用来创建存储过程
delimiter区域
declare声明变量
cursor游标
primary key主键
foreign key.....references...外键
constraint完整性约束(设置别名)
trigger触发器
identified身份验证
grant授权
all privileges所有权限
fileds terminated备份恢复字段分割
optionally enclosed备份恢复字段放在何处
lines terminated行分割

2023.10 月错题

新奥尔良设计方法是

数据仓库中数据是按照组织的

数据挖掘包括:(没有数据处理)

数据共享是指在数据库中,一个数据可以为多个不同的使用

关系模型的数据结构非常简单,只包含单一的数据结构,即:

在关系数据库做,对关系的最基本的一个限定是:关系的每一个分量必须是一个不可分的

为了数据库设计更合理,需要一个有效的指导原则,该原则称为

MySQL 数据库管理系统构建各种信息管理系统或互联网网站的应用环境,主要有 两种架构方式

事务回滚:

具有模型简单清晰、理论基础好、数据独立性强、数据库语言非过程化和标准化等特点是第 代关系数据库系统

创建视图的 SQL 语句

sql
create view 视图名称 asselect 查询)

create view getAllUser(name,age,sex) as select name,age,sex from user

# 视图就是一个虚表,调用和关系表是一样的
SELECT * FROM getAllUser

2023.04 月错题

关系规范化理论主要应用于数据库设计的

数据库应用功能需求包括(数据存取、数据修改、数据删除)不包括

不属于数据模型优化方法:

MySQL 中循环控制语句的关键字 LOOP、WHILE、REPEAT,没有

关系模型的三个组成要素分别是、关系操作集合和关系完整性约束

在关系数据库中,是静态的、稳定的

从用户对数据的需求出发,数据库设计包括数据库 和数据库

数据库生命周期分为数据库阶段和数据库阶段

反映数据库中数据正确性和相容性的是数据库的

关系模型的三类完整性约束

  • 实体完整性约束、参照完整性约束、用户定义完整性约束

2022.10 月错题

一个八元关系也可以被称为关系

数据的是数据库管理系统的主要目的

是图标是由基本表或其他视图导出来的表是,不对应实际存储的数据

在 MySQL 中,一个关系对应一个基本表,一个或多个基本表对应一个

完整性约束条件的作用对象可以是

分割是将数据分散到各自的物理单元中,以便能分别处理,以提高的效率

2022.04 月错题

通常所说的数据库系统不包括(),包括【数据库、数据库管理系统、相关使用工具】

关系中包含在任何一个候选码中的属性被称为

不属于基本操作的是【】包括的有【选择、连接、并】

ER 图向关系模型转换时,关系规范化理论主要应用于数据库的

良好的数据库性能不包括【】包括的有【高效存取。节省空间。良好的数据共享性、完整性、一致性及完全保密性】

逻辑结构设计的任务不包括【】包括【ER 图转关系模型、对关系数据模型优化、设计面向用户的外模式】

使用 select 语句打开游标

在数据挖掘过程中,数据预处理之后,首先需要完成的步骤是【

在关系数据库中,是动态的,是随时间改变的

在 MySQL 存储过程体中,常用的判断语句有 语句

触发器时一种保证数据的方法

By Modify.