数据库基础理解与分享

管理三阶段:1.人工管理,2.文件管理,3.数据库

三级模式两级映射:消除冗余,提升共享性,增强独立性(逻辑独立性,物理独立性)

三级模式是:内模式(物理),模式,外模式(视图)

数据模型包括

  1. 概念模型---现实抽象
  2. 逻辑模型
  3. 物理模型

数据模型三要素:数据结构,数据操作,数据完整性约束

数字模型有:层次模型,网状模型,关系模型,面向对象模型,对象关系模型,半结构化模型

关系的完整性:实体完整性,参照完整性,用户自定义完整性

关系->表,元组->行,属性->列,域->取值范围

基本操作关系:选择σ,投影П,并U,差-,笛卡尔积X

操作的对象和结果都是集合

关系代数

传统关系代数:

并 RUS={t|t∈R∪t∈S} 行相并

差 R-S={t|t∈R∩t∉S} 减去R中包含S的属性

交 R∩S={t|t∈R∩t∈S } 取t在R,S中的共同值

笛卡尔积RXS={tr^ts|tr∈R∩ts∈S} R中的每一组数据与S中的每一组数据组合

专门关系代数:

选择 σ条件(表)={t|t∈R∩F(t)=1} 等同于select * from表 where 条件

投影 π列(表)={t[列]|t∈R} 等同于select 列 from 表

连接(选择性笛卡尔积)

即A=B为等值连接,A>B或A<B等为非等值连接,自然连接为去重复的等值连接

除  R➗S={tr[x]|tr∈R∩πy(s)∈Yx} 取满足S相同列的所有属性的R

创建表

Create table 表名字(

列名 类型 约束,

Sno  int(8) primary key

删除表

Drop table 表名字

修改表

Alter table 表名字

ADD 列名 类型 约束

ADD Sname char(8) unique

DROP 列名

Drop Sept

ALTER column 列名 类型

ALTER column Sno int(9)

建立索引

Create index 索引名

On 表名(列名【次序】,列名【次序】...)

删除索引

Drop index 索引名

索引可以增加查询的速度,但对于增删改频繁的表格,会因为系统操作过多降低查询效率

查询操作

Select (distinct) 列//唯一

From 表

Where 条件//不可以使用函数

Group by 列 having 条件//可以使用函数

Order by 列 asc/desc//(升序/降序)

部分函数列举:max最大值,min最小值,count计数,avg平均数,sum和

Where的部分解释

可用于比较大小,例:where A>1

可用于框定范围,例:where grade between 0 and 100

例:where Cno in(’001’,’003’)

可用于模糊查询,例:where Sname like ‘_尔盖%’//_为单个字符,%为多个

多个条件用and, 例:where grade>80 and Cno in(’001’,’003’)

多表连接 例:where A.C=B.C

嵌套查询   例:where Cno in(select ...)

Existe(存在)返回值为True或者为FALSE

插入操作

Insert into 表名(列名)//如果全部列都要添加可以不写列名

Values(值)

更新操作 删除操作

Update 表名 Delect

Set 列名=表达式 From表名

Where 条件 Where 条件

创建视图 删除视图

Create view 视图名 Drop view 视图名

AS

Select...

修改视图 查询

Update 视图 select 列

Set 列=表达式 From 视图

Where 条件 where 条件

修改视图本质上是修改原表数据,不是所有的数据都能被修改,例如函数

数据安全性

数据库的本质是防止不合法的使用造成的数据泄露,更改和破坏

2个重要等级:

C1等级:自主存取控制 (实现逻辑独立,将用户与数据分离,实例为视图)

B1等级:审计和强制存取控制 (实现对数据和访问者都标记机密等级 进行区分)

创建用户操作 用户写入的数据不能低于自身密级

Create user 用户名 用户读取的数据不能高于自身密级

创建角色操作 绝密TS>机密S>可信C>公开P

Create role 角色名

授权用户或角色

Grant 权限//select,update,delect,insert,*

On 对象//表名字 例如:student

To 用户//或角色

With grant option//该语句为授权对象可授权其他对象

收回授权

Revoke 权限

On 对象

From 用户//与授权不同,这边用户用from而授权用to

授权另一个角色权限

Grant 角色1

To 角色2

With distinct option

审计用于监视操作(但会浪费大量资源)

开启审计 关闭审计

Audit 权限 Noaudit 权限

On 表 On 表

完整性

本质是确保数据的正确性与相容性

共有3个完整性:参照完整性,实体完整性,用户自定义完整性

可定义出错时系统给与的反应

拒绝 no action

级联 cascade[on 权限 cascade] //级联插入,级联删除,级联修改

设空 set null

使用例:

Foreign key(sno)references student(sno)

On delete cascade

On update cascade

关于约束的设定格式

主键

单个

Create table student(

Sno int(8) primary key

)

多个

Create table sc(

Cno int(8),

Sno int(8),

Primary key(Cno,Sno)

)

外键

Create table sc(

Cno int(8),

Sno int(8),

Primary key(Cno,Sno)

Foreign key(Sno)references Student(Sno)

)

非空,唯一

Create table sc(

Cno int(8) unique,

Sno int(8) not null

)

约束

Create table student(

Sno int(8) check(Sno>2021420510 and Sno<2021421999)

)

触发器

创建触发器

Create trigger 触发器名字

Before|after 事件

On 表名

For each row

触发器语句

创建多事件触发器

Create trigger 触发器名字

Before|after 事件

On 表名 For each row

Begin

触发语句

End

范式 *必考

1NF 不可再分

2NF 消除非主属性的部分函数依赖

3NF 消除非主属性的传递函数依赖

BCNF 消除主属性的部分函数依赖和传递函数依赖

4NF 消除多值依赖

数据库设计

共有六个阶段

  1. 需求分析

是最重要也是花费时间,精力的阶段

  1. 概念模型设计

将现实中的数据抽象成E-R图

  1. 逻辑模型设计

将E-R图转换成选用的数据库管理系统产品支持的数据模型相符合的逻辑结构

  1. 物理模型设计

给逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计

  1. 数据库的实施和维护(可以分为2个阶段)
  1. R

实体为矩形,属性为椭圆,联系为菱形

E-R图冲突

属性冲突,命名冲突,结构冲突

E-R图需要注意

1.属性不可在需要描述

2.属性不能域其他实体具有联系

ProcessOn软件可以进行E-R图设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值