仅记录学习过程~
数据库技术相关术语
术语
- 数据–描述事物的符号,是传递信息的载体
- 信息–事物的状态和事物状态变化的反馈
- 数据库–存放数据的地方,统一管理、长期存放在计算机内、有组织、相互关联的数据集合,特点是数据之间的联系紧密,冗余度小,独立性高,容易扩展,便于共享
关系数据库相关术语
- 关系–对应的一张二维表,对应的名称就是关系
- 属性–二维表中的列称为属性,一般用属性的名字来表示列的名字,用R来表示
- 元组–二维表中的行称为元组,一系列元素称为元组
- 分量–元组中的一个属性
- 关系模式–对关系的描述,记为R(A1,A2,…,An)
- 候选码/候选键–能唯一标识关系中每一个元组的属性或属性组,且不含有多余的属性或属性组,称为候选码
- 主码/主键–正在使用的候选码,在关系里面一般用实线来表示,主键只有一个
- 外码/外键–在一个关系中的属性,在另一个关系中是作为主键,称为外键,一般用虚下划线标识
- 主属性/非主属性–属性作为任意一个候选码的属性时,就是主属性,非主属性相反
- 全码–关系中的所有属性组组成该 关系模式的 候选码,称为全码
三级模型两级映像
三级模型
三级模式–外模式、模式、内模式
- 模式–也称为概念模式或逻辑模式,是数据库中全体数据的全局逻辑结构和特性的描述,对应的是数据库中的基本表
- 外模式–也称为子模式或用户模式,外模式可以有多个,是数据的局部数据的逻辑结构和描述,对应的是数据库中的视图
- 内模式–也称为存储模式或物理模式,内模式只有一个,一个数据库只有一种数据,数据在数据库系统内部的存储结构和物理结构的描述,对应的是数据库中的文件
两级映像
- 外模式-模式的映像–保证了逻辑独立性
数据独立性是指数据与程序之间是独立的,把数据从程序中分离出来,交给数据库管理系统来负责数据的存储,对于程序来说,不需要去管数据,从而减少应用程序编写的难度
- 内模式-模式的映像–保证了物理独立性
数据库管理系统
数据库功能
- 数据定义
- 数据操作
- 数据库运行管理
- 数据组织、存储和管理
- 数据的建立和维护
- 其他功能
数据库特征
- 数据结构化且统一管理
- 有较高的数据独立性
- 数据控制功能(数据库的安全性、数据库的完整性、并发控制、故障恢复)
在数据库系统中,数据的安全性是指保护数据库,以防止不合法的使用所造成的数据泄漏、更改或破坏
完整性约束
- 实体完整性-实体完整性是指在关系R中主属性不能为空
- 用户自定义完整性–针对某一个关系,基于业务规则自定义的语义要求
- 参照完整性/引用完整性–外键的取值必须等于关系中的一个主键值,或者取值为空
数据库设计
分布式数据库
透明性
- 分片透明
- 复制透明
- 位置透明
- 局部映像透明性(逻辑透明)
DBA(数据库管理员)
职责
- 决定数据库中信息内同和结构
- 决定数据库的存储结构和存储策略
- 定义数据库的安全性要求和完整性约束条件
- 监控数据库的使用和运行
- 数据库的性能改进、数据库的重组和重构,以提高系统的性能
数据库设计阶段
- 用户需求分析
- 概念结构设计(主要工具为E-R图)
- 逻辑结构设计
- 物理结构设计
E-R模型
E-R模型三要素
- 实体–客观存在的对象
- 联系–实体之间的关系
- 属性–实体的具体特征
实体的属性
- 简单属性–不可再分割的属性
- 复合属性–可以再细分为简单属性的属性
- 单值属性–针对一个元组来讲,取值是单一的
- 多值属性–一个元组会有多个取值
- null属性–没有输入数据的对象,默认为null
- 派生属性–能够通过其他列计算出来的
E-R模型的联系
函数依赖公理系统
函数依赖
函数的公理系统
确定候选码
- 只出现在右边的绝对不是候选码
- 左边右边都没有出现过的一定是候选码
- 只出现在左边的一定是候选码
判定1~4NF主要依据
SQL语句
创建视图
视图是一张虚拟的表,没有存放具体数据结构,存放的是视图的定义,当需要用视图查询数据时,视图会通过其查询语句从其他基本表中查询,在安全上和管理上提供了很大的方便,提高安全性,屏蔽后台数据的复杂性,可以为不同用户提供专属的数据
语法
CREATE VIEW 视图名 AS SELECT 子句 WITN CHECK OPTION
SELECT语句
语法
SELECT <列名>[,…n] FROM <表名|视图名>,[,…n] WHERE <条件表达式>
连接查询
聚集函数
授权语句
GRANT 代表授予用户不但获得权限,还能授予对应权限给其他用户
关系代数运算
笛卡尔积
笛卡尔积里面如果存在同名的列名,要用对象引用的方式标识属性来自于哪一个列
sql语句: SELECT R.A,R.B,R.C,S.A,S.B,S.C FROM R,S
投影
投影是在垂直方向(列)做的筛选,下标表示要展现的列
sql语句: SELECT A,C FROM R
选择
选择是在水平方向进行筛选,筛选的条件作为下标
sql语句: SELECT * FROM R WHERE A>B
连接
sql语句: SELECT R.A,R.B,R.C,S.A,S.B,S.C FROM R,S WHERE R.A<S.B
自然连接sql语句: SELECT R.A,B,R.C,D FROM R,S WHERE R.A=S.A AND R.C=S.C
关系代数查询优化准则
- 提早执行选取运算
- 合并乘积与其后的选择运算为连接运算
- 将投影运算与其后的其他运算同时进行,以避免重复扫描
- 将投影运算和其前后的二目运算结合起来,使得没有必要为去掉某些字段再扫描一遍关系
- 在执行连接前对关系做适当的预处理,就能快速地找到要连接的元组
- 存储公共子表达式