[DB] 数据库系统概论

数据库系统概论

  • 数据:数据库中存储的基本单位
  • 数据库:是长期存储在计算机内、有组织的、可共享的大量数据的集合。具有较小的冗余度、较高的数据独立性、易扩展性。基本特点:永久存储、有组织、可共享。
  • 数据库管理系统:是位于用户与操作系统之间的一层数据管理软件。主要功能:
    • 数据定义功能
    • 数据组织、存储和管理
    • 数据操纵功能
    • 数据库的事务管理和运行管理
    • 数据库的建立和维护
    • 其他功能
  • 数据库系统DBS:指在计算机系统中引入数据库后的系统,有数据库、DBMS、应用系统、数据库管理员(DBA)组成。

数据库系统的特点

  • 数据结构化
  • 数据的共享性高,冗余度低,易扩充
  • 数据独立性高
  • 数据由DBMS统一管理和控制

数据管理的三个阶段:人工管理阶段——文件系统阶段——数据库系统阶段

录音思路

1.如何组织数据——数据模型、规范化理论

2.如何存取数据——数据定义与操作语言

3.哪些人可以操作哪些数据——安全性相关

4.很多人在操作统一数据时如何避免发生冲突——并发控制

5.故障后怎么办——数据恢复

数据模型:概念模型、逻辑模型

分两个模型的原因:逻辑模型 为了方便把 概念模型 存放到计算机中,事实上二者是同一概念。

数据模型的组成要素:数据结构、数据操作、数据的完整性约束条件

概念模型:实体 属性 码 域 实体性 实体集 联系

常用的逻辑数据模型:

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

E-R图 —————- P19 实体-矩形 属性-椭圆 关系-菱形。

关系模型:关系(Relation)、元组(Tuple)、属性(Attribute)、码(Key)、域(Domain)、分量。

关系的完整性约束条件:实体完整性、参照完整性、用户定义完整性。

优点:数学基础、概念单一(都是二维表)、存取路径对用户透明。

缺点;效率、优化会增加开发难度。

数据库系统结构

数据库的三级模式:

  • 外模式:子/用户模式,数据库用户看见和使用的局部数据的逻辑结构和特征的描述。
  • 模式:逻辑模式,数据中全体数据的逻辑结构和特征的描述。
  • 内模式:存储模式,数据物理结构和存储方式的描述。

数据库的二级映像:

  • 外模式/模式映像
  • 模式/内模式映像——定义了数据全局逻辑结构和存储结构之间对应关系。

关系数据库

看书做题就行

候选码:关系中能唯一标识一个元组的值。

主属性:候选码中的属性。

关系的三种类型:基本类型(基本表)、查询表、视图表。

注:

连接操作中,可能会丢失一些值,为了保留这些值而留出空值叫做外连接

要看除运算

SQL

特点:

  • 综合统一
  • 高度非过程化
  • 面向集合的操作方式
  • 以同一种语法结构提供多种使用方式

修改基本表:

ALTER TABLE <表明>

例:

​ ALTER TABLE Student ADD S_entrance DATE;

​ ALTER TABLE Student ALTER COLUMN Sage INT;

​ ALTER TABLE Course ADD UNIQUE(Cname);

查询中的字符匹配:

例:

​ SELECT Sname, Sno, Ssex FROM Student WHERE Sname LIKE ‘刘%’;

匹配所有姓刘的同学

​ SELECT Sname FROM Student WHERE Sname LIKE ‘欧阳__’;

匹配 欧阳X

having

ORDER BY ASC(升序) DESC(降序) 缺省情况为升序

数据库安全性

计算机系统安全性:

  • 技术安全
  • 管理安全
  • 政策法律

用户表示与鉴别Identification & Authentication —— 最外层安全保护措施

  • 用户表示User Identification
  • 口令Password

存取控制:

  • 定义用户权限,并将用户权限登记到数据字典中

  • 合法权限检查

    • 自主存取控制(Discretionary Access Control, DAC) C1级别

      用户对于不同的数据库对象由不同的存取权限,不同的用户对同一对象也有不同的权限,用户可将其拥有的存取权限授权给其他用户

    • 强制存取控制(Mandatory Access Control, MAC) B1级别

      每一个数据库对象被标以一定的密级,每一个用户也被授予某一级别的许可证。

Discretionary Access Control

授权与回收:

  • GRANT

    GRANT SELECT ON TABLE Student TO U1;

  • REVOKE 回收权限,形式与上面类似

数据库角色——权限的集合,用于简化授权

1.角色的创建

​ CREATE ROLE

2.给角色授权

​ 略

3.将一个角色授予其他用户

​ 略

4.角色权限的收回

Mandatory Access Control

在MAC中DBMS所管理的全部实体被分为主体客体两大类。

主体:系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程。

客体:系统中的被动实体,包括文件、基本表、索引、视图,受主题操纵。

对于主体和客体,DBMS为它们每个实例指派一个敏感度标记(Label)。分为绝密Top Secret、机密Secret、可信Confidential、公开Public,主体的敏感度标记称为许可证级别,客体的敏感度标记为密级

规则

  • 仅当主体的许可证级别大于或等于客体的密级,可读;
  • 仅当主题的许可证级别等于客体的密级,可写。

原因:禁止了拥有高许可证级别的主体更新低密度的数据对象,造成敏感数据的泄露。

数据库完整性

实体完整性、参照完整性、用户自定义的完整性

DBMS为维护数据库的完整性,必须能够;

1.提供定义完整性约束条件的机制

2.提供完整性检查的方法

3.违约处理

实体完整性的定义:列级约束条件、表级约束条件

实体完整性检查和违约处理:检查主码值是否唯一;检查主码的各属性是否为空

参照完整性定义:FOREIGN KEY,对外码的取值做一个约束:空值或存在值。

用户自定义完整性:1.NOT NULL; 2.UNIQUE; 3.CHECK;

关系数据库理论

函数依赖(Functional Dependency,FD):属性间类似数学中的函数y=f(x)的依赖关系,被称为函数依赖。记作X→Y。

非平凡函数依赖:X→Y,但Y不是X的子集。

平凡函数依赖:X→Y,Y是X的子集。

完全函数依赖:X→Y,并且对于X的任何一个真子集X‘,都有Y不函数依赖于X’。

部分函数依赖:X→Y,Y不 完全函数依赖 于X。u’s

传递函数依赖:X→Y, Y→Z, 且Y不→X。

主属性(Prime Attribute):任何候选码中的属性。

非主属性(Nonprime Attribute):不包含在任何码中的属性。也称非码属性(Non-key Attribute)。

第一范式(1NF):每一个分量必须是不可分的数据项。

第二范式(2NF):1NF的基础下,每一个非主属性完全依赖于码

规范化(normalization):一个低一级范式的关系模式,通过模式分解可以转化为若干个高一级范式的关系模式的集合。

第三范式(3NF):每一个非主属性 既不部份依赖于码,也不传递依赖于码。

BCNF:关系模式R<U,F>∈1NF,若X→Y且Y不是X子集时,X必含有码。即,每一个决定因素都含有码。

一个满足BCNF的关系模式:

  • 所有非主属性对于每一个码都是完全函数依赖
  • 所有的主属性对每一个不包含它的码,也是完全函数依赖
  • 没有任何属性完全函数依赖于飞马的任何一组属性

BCNF修正了3NF主属性内部部分函数依赖

多值依赖(Multivalued Dependency,MVD)

模式分解

  • 分解具有无损连接性(Lossless Join)——通过自然运算可复原
  • 分解要“保持函数依赖”(Preserve functional dependenct)
  • 分解既要保持函数依赖,又要具有无损连接性。

—————————————————19分钟两类考题——————————————————–

关系查询处理和查询优化

DBMS查询处理分为4个阶段:查询分析、查询检查、查询优化、查询执行。

计算题:P268

数据库设计

数据库设计重点: 概念设计->逻辑设计 , 每一阶段目的是什么。

数据库设计方法:新奥尔良方法、基于E-R模型的数据库设计方法、3NF的设计方法、ODL方法、UML方法

数据库设计的基本步骤:

准备工作:1.系统分析人员、数据库设计人员;2.用户代表和数据库管理员;3.应用开发人员

  • 需求分析

    • 需求分析任务:信息要求、处理要求、安全性与完整性要求
    • 需求分析方法:跟班作业、开调查会、请专人介绍、询问、设计调查表、查阅记录
    • 数据字典:机型详细的数据收集和数据分析所获得的主要结果
      • 数据项:不可再分的数据单位
      • 数据结构:反映数据之间的组合关系
      • 数据流:数据结构在系统内传输的路径
      • 数据存储:数据结构停留或保存的地方
      • 处理过程:处理过程的具体处理逻辑一般用判定表或判定书来描述

    小结:充分考虑可能的扩充和改变,使设计易于更改,系统易于扩充;强调用户参与。

  • 概念结构设计

    特点:

    • 能真实充分反映现实世界
    • 易于理解
    • 易于更改
    • 易于向关系、网状、层次等数据模型转

    四类方法:(常用:自顶向下需求分析,自底向上设计概念结构)

    • 自顶向下
    • 自底向上
    • 逐步扩张
    • 混合策略

    视图的集成:多个E-R一次继承(难度较大);逐步继承

    合并冲突:

    • 属性冲突:属性值的类型、取值范围、取值集合、单位不同。
    • 命名冲突:同名异义,异名同义。
    • 结构冲突:
      • 同一对象在不同应用中具有不同的抽象,如职工在某一局部应用中为实体,另一为属性
      • 同一实体在不同E-R图中所包含的属性个数和属性排列次序不完全相同
      • 实体间的联系在不同的分E-R图中为不同的类型
  • 逻辑结构设计

  • 物理结构设计

  • 数据库实施

  • 数据库运行与维护

[Script] Hugo自动部署脚本更新

之前使用的脚本基本可以完成hugo的自动编译和push,但我的笔记基本都放在了移动硬盘中,因此需要脚本对移动硬盘中的笔记进行扫描,增量地进行更新。

阅读更多

Poker2键盘说明书(防遗失)

编程说明

  1. 按PMode(FN+右CTRL)进入编程模式(空格右灯闪烁)
  2. 按想要对其编程的建(空格右灯长亮)
  3. 键入编程内容然后按PN(空格右灯再次闪烁)\
  4. 重复步骤2和步骤3可编程其他键
  5. 按PMode(FN+右CTRL)退出编程模式(空格右灯熄灭)

备注:

  • 支持FN层编程,在选键状态时可以对FN组合键(例如:FN+A)编程
  • 在选键状态(步骤1)打开文书软件(比如.txt型文本文档)并按PN+任意键可自动分层显示其编程内容
  • 可以加延时,每按15sm键(FN+F)一次延时15ms,每按0.1s键(FN+G)一次延时0.1s,每按0.5s键(FN+H)一次延时0.5s,连续多次延时只计一个按键但时间累加
  • 每个键最多可以编程14个键在编程模式15秒内没按任何键会自动退出

功能表格

[Python] 变量作用域相关

python作用域

首先先要明确的一点是python的变量作用域分为:loca, nonlocal, global, builtin

变量的查找顺序是由内到外的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 块级作用域
if 1 == 1
name = 'zjs'

print(name)

for i in range(10):
age = i

print(age)


# 局部作用域
def func():
name = 'zjs'

print(name)

作用域链

话不多说,直接上终极版

1
2
3
4
5
6
7
8
9
10
name = 'zjs'

def f1():
print(name)

def f2():
name = 'eric'
f1()

f2()

最终的输出是’zjs’

要明确的一点是,函数在未执行之前,作用域就已经形成了

[NOTE] CentOS换源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

补充Ubuntu

/etc/apt/sources.list

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
##中科大源

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

sudo apt-get update

sudo apt-get upgrade

不加-get会有部分更新失败

[NOTE] Hugo + Github Pages个人博客搭建

回顾之前的学习经历,学习的知识与技术都不够透彻,解决过的问题再一次出现时往往又会难倒我,也正逢一个新的阶段,于是便决定搭建一个个人博客,对知识进行归类,深化知识脉络。

阅读更多