关系数据库基本原理与技术

关系数据库

关系的基本概念

具有想同数据类型的值的集合
域的基数:域中所包含的值的关系

笛卡尔积

D1D2D3={(d1,d2,d3)}
不能重复

元组

笛卡尔积中的每一个元素叫做一个元组

分量

代表元组中的每一个分量

基数

域中元素或者笛卡尔积中的所有元素的数量

笛卡尔积的表示方法

二维表

关系

笛卡尔积的子集叫做众多域上的关系

关系中的元组

关系中的每个元素

属性:n元关系有n个属性

  1. 候选码:唯一确定一个元组的属性值或者属性值组称为候选码
  2. 全码:极端情况,所有属性组是这个关系模式的候选码,称为全码
  3. 主码
  4. 主属性与非主属性,包含在候选码中的属性叫做主属性,不包含在任何候选码中的属性称为非主属性
  5. 外码,加强两个关系之间链接的一列或者多列

关系的类型和性质

类型:

  1. 基本表
  2. 查询表
  3. 视图表

关系的特性

  1. 关系中不允许出现相同的元组
  2. 关系中元组的顺序是无关紧要的,在一个关系中可以任意交换两行的顺序
  3. 列顺序可换
  4. 属性必须有不同名字
  5. 关系的每一分量必须是不可分的数据项,满足此条件的称为规范化关系,不满足的称为非规范化关系
  6. 属性值必须来自相同域

关系模式

形象化的表示:R(U,D,dom,F)
R: 关系名
U: 组成该关系的属性名集合
D:U中属性所来自的域
dom:属性向域的映像集合
F:属性间的数据依赖关系集合
简记为R(U)

关系数据库

有型值之分

关系的完整性

实体完整性:主码不能取空值
参照完整性:外码必须等于空值或者一个存在于某个元组的主码值
用户定义的完整性:满足具体语义要求

关系代数

四类运算符

集合运算符:并(U)差(-)交(n)广义笛卡尔乘积(x)
专门的关系运算符:o选择,Π投影,∞连接,÷除(不仅涉及行,还涉及列)

  1. 关于连接运算符,等值连接,自然连接(属性相同的值把重复的去掉)
  2. 除操作是从行和列的角度进行运算
    算数比较符
    逻辑运算符

关系数据库标准语言SQL

SQL的数据类型

  • 数值型:整数型INT,小数numeric,和钱数MONEY
  • 字符串型:varchar和char
  • 日期时间型:DATETIME

SQL基本操作

定义基本表
create table <表名>

<列名><数据类型>[<列级完整性约束条件>]
<列名><数据类型>[<列级完整性约束条件>]
<列名><数据类型>[<列级完整性约束条件>]//涉及相应属性列的完整性约束条件

[,<表级完整性约束条件>]//一个或者多个属性列的完整性约束条件

常用约束:

  • 主码约束:primary key
  • 唯一性约束:unique
  • 非空值约束:not null

删除基本表
drop table<表名>

修改基本表
alter table<表名>
[add<新列名><数据类型>[完整性约束]]//新增加一列均为空值
[drop[完整性约束]]//可以删除一列或者删除约束
[modify<列名><数据类型>]//修改列名或者数据类型

建立与删除索引

建立索引
create unique index <列名> on <表名(属性)>
删除索引
drop index<索引名>

查询

select 属性名 from 表名 where 查询条件 group by 列名1 having 条件表达式 order by <列名2>

单表查询
选择若干元组(distinct短语,查询满足条件的元组)
模糊查询
涉及空值的查询
对查询结果排序
多表查询
集函数
分组查询
连接查询
嵌套查询
相关子查询
不相关子查询
带有any和all谓词的子查询
带有exists谓词的子查询

数据更新

插入数据

  • 插入单个元组
  • 插入子查询结果

修改数据
update<表名>
set<列名>=<表达式>【,<列名>=<表达式>】…
[where <条件>];

  • 修改某一个元组的值
  • 修改多个元组的值
  • 带子查询的修改语句

删除数据
delete from<表名>[where<条件>];

  • 删除某一个元组的值
  • 删除多个元组的值
  • 带子查询的删除语句

视图

建立视图
create view <视图名> 【(<列名>【,<列名>】…)】
as <子查询>
【with check option】
删除视图
drop view<视图名>;
查询视图
同表

DBMS实现数据安全性保护的过程(SQL)

权限

  • 操作权限
  • 用户权限
  • with grant option 实现授权权限

授权权限

  • grant<权限>【,<权限>】【on <对象类型><对象名>】to<用户>【,<用户>】[with grant option]

SQL收回权限

revoke 后面语法和授予权限相同没有with grant option 子句

数据库设计

需求分析

用户需求的表达

数据流图(DFD):表达和描述处理需求数据流程图
数据字典(DD):各类数据描述的集合

概念结构设计

逻辑结构设计

一个实体型转化成一个关系模式

数据库物理设计

DBMS常用存取方法

  • 索引方法,B+索引树方法
  • 聚簇方法
  • hash方法

关系数据库设计理论

函数依赖

平凡函数依赖

  • 平凡函数依赖,X依赖Y,但是Y属于Y
  • 非平凡函数依赖,X依赖Y,但是Y不属于X

完全函数依赖和部分函数依赖
传递函数依赖和直接依赖

范式

第一范式(1NF)
第二范式(2NF)
第三范式(3NF)
BC范式(BCNF)
第四范式(4NF)
第五范式(5NF)

关系模式的规范化

发布了12 篇原创文章 · 获赞 0 · 访问量 172

猜你喜欢

转载自blog.csdn.net/qq_41985293/article/details/103122914