关系模型:数据结构、操作集合、完整性约束
1.关系数据结构
二维表及其之间联系
2.关系操作集合
数据查询:选择、投影、连接、并、交、差、除
数据操作:增、删、改
3.关系完整性约束
实体完整性、参照完整性、用户定义完整性
SQL语言:一种结构化查询语言
模式结构:外模式、模式、内模式
1.外模式
也称为用户模式,是用户可以看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是某个应用相关的数据的逻辑表示。显然,一个数据库可以有多个外模式,外模式是保证数据安全性的一个有效措施,因为不同应用访问的数据是不同的。
2.模式
也称逻辑模式,是数据库中全体数据的结构特征和逻辑描述,是全体用户的公共视图。显然,一个数据库只有一个模式,它是数据库数据在逻辑上的视图,以某种数据模型为基础。定义模式时,需要定义逻辑结构,比如数据记录由哪些数据项构成,数据项的名字、类型、取值范围;还需要定义数据安全性、完整性,定义数据之间的联系
3.内模式
也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,例如,记录的存储方式可以是顺序、B-树、散列;索引按照什么方式组织、数据是否压缩,是否加密等。显然,一个数据库只有一个内模式,目的是为了减少冗余,实现数据共享、提升存储效率改善性能
表:数据库组织数据的基本单位,是二维表格,表中每一行称为记录
视图:是一个或多个表中导出的表,不进行实际存储,将视图称为虚表,物理存储的表称为基本表。数据库中只存储视图的定义,在对视图的数据进行操作的时候,根据视图定义操作和视图关联的基本表。注意,可以从视图导出视图,构成多级虚表。修改视图会修改关联的基本表,修改基本表也会反应在视图,可以控制只用来查询的视图,这样不能通过修改视图修改基本表
视图安全性的一个例子:在表中增加一个标记用户名的列,建立视图,稚嫩看见自己ID对应的表中的内容。
索引:对数据库中一列或者多列进行排序的结构,使用索引可以快速访问数据库表中的特定信息。与搜索所有行相比,索引有助于更快获取信息
索引的一个例子:如下sql语句:select * from table1 where id = 10000,若没有索引,那么遍历整个表,直到id = 10000这一行被找到,在id这一列上建立索引之后,就可以在索引中进行查找(比如索引按照二分进行,搜索时间被优化为对数)
索引种类:唯一索引、主键索引、聚集索引、索引列
1.唯一索引:是不允许两行具有相同索引值的索引
2.主键索引:主键是,一列或者多列的集合,其值唯一标识表中的每一行。在数据库关系图中为表定义主键将自动创建主键索引,显然,主键索引是唯一索引
3.聚集索引:表中行的物理顺序和索引顺序相同,一个表只能有一个聚集索引,和非聚集索引比,聚集索引通常访问速度更高,聚集索引的例子是字典目录
4.索引列:需要搜索多列的时候,比如名和姓
索引的代价:
1.增加了数据库的存储空间
2.插入和修改数据的时候,花费更多时间,因为索引也需要变化。这是一个算法的平衡问题,为了find性能牺牲add和del性能
适合建立索引的列:
1.经常需要搜索的列
2.主键所在的列
3.经常用在连接的列,主要是外键,可以加快连接速度
4.在进程使用where语句的列上,加快条件判断速度
不适合建立索引的列:
1.搜索很少的列
2.只有很少数据值的列,比如性别
3.定义为text,image,bit数据类型的列,这种列要么数据量很大,要么取值很少
4.对修改性能要求大于查询性能的要求