数据库知识总结01

数据库的基础知识

1、什么是数据库

DB:数据库(Database)即存储数据的“仓库”。它保存了一系列有组织的数据。
DBMS:数据库管理系统(Database Management System):是一种操纵和管理数据库的大型软件,例如建立、使用和维护数据库。
数据库系统:就是通常由如软件、数据库和管理员组成的

2、关系型数据库设计规则:

遵循ER模型和三范式

  • E entity 代表实体的意思 对应到数据库当中的一张表
  • R relationship 代表关系的意思
    三范式:1、列不能拆分 2、唯一标识 3、关系引用主键
    具体体现:
  • 将数据放到表中,表再放到库中。
  • 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。
  • 表具有一些特性,这些特性定义了数据在表中如何存储,类似java和python中 “类”的设计。
  • 表由列组成,我们也称为字段。每个字段描述了它所含有的数据的意义,数据表的设计实际上就是对字段的设计。创建数据表时,为每个字段分配一个数据类型,定义它们的数据长度和字段名。每个字段类似java 或者python中的“实例属性”。
  • 表中的数据是按行存储的,一行即为一条记录。每一行类似于java或python中的“对象”。

3、什么是元组、码、候选码、主码、外码、主属性、非主属性?

  • 元组:是关系型数据库中的基本概念,关系是一张表,表中的每行(数据库中的每一条记录)就是一个元组,每列就是一个属性
  • 码:能够唯一的标识实体的属性的,对应于列表中的列
  • 候选码:若关系中的某一属性或则属性组的值能够唯一的标识一个元组,其任何的子集不能够再进行标识的,称之为这个是候选码
    - 主码:主键、主码是从候选码中选择出来的,一个实体中只有一个主码、可以有多个候选码,主键是为了唯一标识一个元组,且不能够重复的,不允许为空的。
  • 外码:外键、一个关系中的属性是另外一个关系中的主码,则称之为外键
  • 主属性:候选码中出现的属性称之为主属性
  • 非主属性:不包含在任何一个候选码中的属性

3、数据库设计的过程:

1、需求分析:用于分析用户的需求,包括说是数据功能和性能的需求、存储需求等等
2、概念设计:主要是采用E-R模型图进行设计,E-R图
3、逻辑结构设计:将E-R模型图转变为关系数据模型(常见的数据模型有
关系模型、层次模型、网状模型)
4、数据库的物理结构设计:主要数据是如何进行存储的、数据库事务的详细设计和应用程序的详细设计
5、实现与部署
6、运营管理和维护

在整理这个过程中,会经常出现的问题,也是面试中常会问的问题,主要如下:

  • 什么是存储过程的呀?(百度百科)
    存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。
    注:在阿里巴巴开发者手册中要求禁止使用存储过程,原因就是存储过程难进行调式和扩展,没有移植性

- 数据库的范式:
非常的重要:(参考资料:数据库技术,三级等级考试)
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。

在做几大范式的时候,必须要先搞清楚这几个概念才是主要的
函数依赖:设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们的Y属性值也相同,则称X函数决定Y,或Y函数依赖于X。

**部分函数依赖:**设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
eg:学生基本信息表R中(学号,身份证号,姓名)当然学号属性取值是唯一的,在R关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖与(学号,身份证号);

**完全函数依赖:**设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
eg:学生基本信息表R(学号,班级,姓名)假设不同的班级学号有相同的,班级内学号不能相同,在R关系中,(学号,班级)->(姓名),但是(学号)->(姓名)不成立,(班级)->(姓名)不成立,所以姓名完全函数依赖与(学号,班级);

**传递函数依赖:**设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
eg:在关系R(学号 ,宿舍, 费用)中,(学号)->(宿舍),宿舍!=学号,(宿舍)->(费用),费用!=宿舍,所以符合传递函数的要求;

范式

1. 1NF(第一范式)
表中的属性不可再进行分割,该字段只能够是一个值,不能够再分为其他的值。1NF是所有关系型数据库最基本的要求,只要是关系型数据库创建的表,必定要遵守1NF(来源于课本数据库系统概论)
2. 2NF(第二范式
2NF是在1NF的基础之上,消除了非主属性对于码的部分函数依赖。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是非主属性依赖于主关键字。
3. 3NF(第三范式)
3NF 在 2NF 的基础之上,消除了非主属性对于码的传递函数依赖 。符合 3NF 要求的数据库设计,基本上解决了数据冗余过大,插入异常,修改异常,删除异常的问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值