数仓项目第一天

本文详细介绍了数据库设计规范,包括关系数据库系统、主键、外键、索引和规范化,强调了数据完整性、范式理论以及命名规范的重要性。此外,还详细阐述了SQL开发规范,如使用预编译语句、避免隐式类型转换和子查询,以及避免在`WHERE`子句中进行函数转换等,以提升数据库性能和安全性。
摘要由CSDN通过智能技术生成

关系数据库系统是支持关系模型数据库系统。常见的数据库MySQL,Oracle、DB2,SQLServer都是关系型数据库。

关系:

由行和列构成的二维结构,对应关系数据中表,也就是数据的存储结构

元组  

关系数据库中的一个表的行,也就是一条记录。

关系数据库的特性

  1. 在一个数据库中,表名称唯一
  2. 表中的每个列名称不同,不同的表列名称可以相同
  3. 列是无序的
  4. 行是无序的

关系数据模型中的键

关系模型中具有一些键:超键、候选键、主键、外键,这些键用来约束关系完整性。

超键:含有主键和其他键。

候选键:candidate key 即主键

主键:主键的选择遵循以下原则:

  1. 主键要尽可能的小
  2. 主键值不应该被改变,主键通常会被其他表所引用,如果更改后,引用的键值也需要做相应的更改,否则引用就无效了
  3. 主键通常使用数值类型
  4. 最好是单列

一般在表的设计中,有能唯一标识记录的字段,但是跟业务有关,我们一般不用作主键,额外增加一个自增的列做为主键。我们在设计表的时候必须给表一个主键,如果没有主键表中的数据更新和删除就会很困难。

聚集索引和主键的区别和联系:每个表只能有一个聚集索引,聚集索引可以不要求具有唯一性。有的数据库中如果表没有聚集索引,在创建主键的时候可以设定把主键作为聚集索引。

聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况,所以,对应的聚集索引只能有一个。如果某索引不是聚集索引,则表中的行物理顺序与索引顺序不匹配,与非聚集索引相比,聚集索引有着更快的检索速度。

关系完整性

上面我们讲了关系模型中的键,这些键约束了完整性的规则,关系数据模型有两个重要的完整性规则:实体完整性和参照完整性。

实体完整性即表中的主键列不能为空。

NULL:空值,表示目前还不知道或者不可用的值,

空值参与算术表达式结果为NULL

true and null=null 

fasle and null = false 

null and null =null

true or null = true

false or null = null

null or null =null

not null = null

null=null 会返回null 而不是ture,如果要判断是否为不为空,要使用 is null 或者is not null 

参照完整性:就是表中存在外键,外键必须与主表的某些记录的候选键相同,或者外键的值必须全部为空。

除上述的完整性规则,通常实际的业务场景有业务规则的约束,约束特定的列能够接受的值,一般的数据库都

有,即check约束。比如性别取值:男和女等,这些约束要根据业务来制定。

规范化,范式

规范化是组织数据的一种技术,规范化方法对表进行分解,以消除数据冗余,避免异常更新,提高数据完整性。规范化是通过范式规则实现的,最常用的范式有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。

  1. 第一范式1NF,表中的列只能含有原子性的值,也就是每个列的值都不能再分,假如有一个人有两个手机号,不能存到一个列中,手机号需要单独存一个表中。
  2. 第二范式2NF,2NF要满足两个条件:
  1. 满足第一范式
  2. 没有部分依赖,每个非主属性完全函数依赖于候选键

也就是表要有一个主键,其他字段都依赖主键,每个非主属性是由整个主键函数决定的,而不能由主键的一部分来决定,如果有属性跟主键不相关则叫做部分依赖,就不满足第二范式。

例如(学生选课表):

学生

课程</

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值