数据库基本概念

mosh


基本概念

1 数据模型

数据库系统的核心和基础是数据模型。一般来说,数据模型是严格定义的一组概念的集合。这些概念精确地描述了系统的静态特征、动态特征和完整性约束条件。因此数据模型一般由数据结构、数据操作和完整性约束三部分组成

数据结构:存储在数据库中对象类型的集合,作用是描述数据库组成对象以及对象之间的联系

数据操作:指对数据库中各种对象实例允许执行的操作的集合,包括操作及其相关的操作规则

完整性约束:指在给定的数据模型中,数据及其联系所遵守的一组通用的完整性规则,它能保证数据的正确性和一致性

根据模型应用目的的不同,数据模型分为2类:

  • 第一类

概念模型:也称为信息模型。它是按用户的观点来对数据和信息建模,主要用于数据库设计

  • 第二类

逻辑模型:主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型等

物理模型:是对数据最底层的抽象,它描述数据在系统内部的表示方法和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的

关系模型是目前最重要的一种数据类型。关系数据库系统采用关系模型作为数据的组织方式

  • 关系模型中数据的逻辑结构是一张二维表,或者说关系的数据结构就是一张表

  • 关系数据模型的数据操作主要包含查询插入删除更新数据

  • 关系模型的完整性约束条件包含三大类:实体完整性参照完整性用户自定义的完整性

    关系模型的实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值(由此规则可得一直接结论:主键不能为空)

    关系模型的参照完整性规则:若属性(或属性组)F是某基本关系R的外键,且它与基本关系R1的主键相对应,则对于R中,每个F上的值或为空值或者等于R1中的主键值

2 主键与外键

  • 候选码:关系(二维表)中能唯一标识一个元组的属性组
  • 主键:如果一张表有多个候选码,则选定其中一个为主键
  • 外键:如果关系模式R中的某属性集不是R的主键,而是另一个关系R1的主键,则该属性集是关系模式R的外键。外键表示了两个关系(表)之间的联系。以另一个关系的外键作主键的表被称为主表,具有此外键的表被称为主表的从表
  • 主属性与非主属性:候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性

3 事务

事务是指用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位

事务具有4个特性:原子性一致性隔离性持续性。简称为ACID特性

4 索引

索引是对数据库中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息

为表设置索引的好处与坏处:

好处

  • 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
  • 可以大大加快数据的检索速度(创建索引的主要原因)
  • 在使用分组(group by)和排序(order by)子句进行数据检索时,同样可以显著减少查询中分组和排序的时间
  • 可以加速表和表之间的连接,特别是在实现数据的参照完整性方面特别有意义

坏处

  • 一是增加了数据库的存储空间
  • 二是插入和删除数据时要花费较多时间(因为索引也要随之变动)

索引是建立在数据库表中的某些列的上面。在创建索引时,应该考虑在哪些列上可以创建索引,在哪些列上不能创建索引:

一般来说,应该在这些列上创建索引

  1. 在经常需要搜索的列上创建索引,可以加快搜索的速度
  2. 在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构
  3. 在经常用在连接的列上创建索引,这些列主要是一些外键,可以加快连接的速度
  4. 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的
  5. 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间
  6. 在经常使用在WHERE子句中的列上创建索引,加快条件的判断速度

一般来说,不应该创建索引的这些列具有下列特点

  1. 那些在查询中很少使用的列不应该创建索引。很少使用故而即使创建索引也不会带来很大性能提升。索引又会带来空间和维护上的负担
  2. 只有很少数据值的列也不应该创建索引。如性别,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引并不能明显加快检索速度
  3. 那些定义为text和bit等数据类型的列不应该创建索引。因为这些列的数据量要么相当大,要么取值很少,不利于使用索引
  4. 当修改操作远远大于检索操作时,不应该创建索引。因为修改性能和检索性能互相矛盾。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改的性能,降低检索的性能

5 视图

视图是从一个或几个基本表(或试图)导出的表。与基本表不同,它是一个虚表

数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化时,视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化

视图一经定义,就可以和基本表一样被查询、删除

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值