数据库基础
DBMS主要功能
- 数据库的定义功能
把用DDL编写的各级… - 数据库的操作功能
单独数据操作语言DML及其编译程序,实现对数据库的基本操作。基本操作有两类检索和更新 - 数据库的保护功能
数据库的数据恢复、数据库的并发控制、数据完整性控制和数据安全性控制 - 数据库的维护功能
数据库的数据导入、转换、存贮、数据库性能监控等。
DBMS的优点
- 相互关联的数据的集合
- 较少的数据冗余
- 程序与数据相互独立
- 保证数据的安全、可靠、正确
- 数据可以并发使用并能同时保证一致性
数据库系统(DBS)
1、数据库系统的发展经历了3个阶段:
网状模型(图形结构)层次模型(树形结构)- 关系模型(简单二维表结构)
2、DBS的基本概念
信息和数据
关系数据库系统
(实体-联系-模型)
实体:
客观事物在信息世界中称为实体(Entity),它是现实世界中任何可区分、识别的食物
属性:
描述实体或者联系的性质或者特征的数据项
联系:
反应事物内部或事物之间的关联集合
常见的实体联系有三种:一对一、一对多、多对多
关系模型(Relational Model)
关系的基本概念
- 关系:一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名
- 元祖:二维表的每一行在关系中被称为元祖。在MySQL中,一个元祖对应表中的一个记录
- 属性:二维表中的每一列在关系中称为属性,每个属性都有一个属性名,属性值则是各个元组的取值(字段——列)
- 域:属性的取值范围称为域。同一属性只能在相同域中取值
关系模式
- 对关系的描述称为关系模式,其格式为:
- 关系名(属性名1 , 属性名2 , … , 属性名n)
关系的基本特点
- 在关系模型中,关系具有以下特点:
- 关系必须规范化,属性不可再分割。
- 注意:(例如:为学生表添加 " 班级 " 字段,是不合理的,因为班级可以再分割,如班级的教师,班级的授课老师等)
- 在同一关系中不可出现相同的关系名
- 在同一关系中,元组(即记录)的顺序可以任意
- 在同一关系中,属性(即字段)的顺序可以任意
- 关系必须规范化,属性不可再分割。
关系运算
- 关系运算主要有选择、投影和连接三种
- 选择:从关系模式中选择若干元组组成新的关系
- (从行的角度进行的运算) - 投影:从关系模式中指定若干属性组成新的关系
- (从列的角度进行的运算) - 连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组,组成新的关系
- 选择:从关系模式中选择若干元组组成新的关系
注意:数据的连接并不是都有价值的
学生ID | 姓名 | 班级 |
---|---|---|
000001 | 学生1 | 01班 |
000002 | 学生2 | 02班 |
班级ID | 班级 |
---|---|
01 | 01班 |
02 | 02班 |
对上述两张表使用笛卡尔积进行连接:
学生ID | 姓名 | 班级 | 班级ID | 班级 |
---|---|---|---|---|
000001 | 学生1 | 01班 | 01 | 01班 |
000001 | 学生1 | 01班 | 02 | 02班 |
000002 | 学生2 | 02班 | 01 | 01班 |
000002 | 学生2 | 02班 | 02 | 02班 |
可见,有笛卡尔积连接两个表所得结果会出现没有价值的数据;所以,笛卡尔积需要结合条件筛选达到效果。
关系的完整性约束
实体完整性
主属性值(主关系键的值)不能为空
如:学生信息表中的学号不可为空
参照完整性(引用完整性)
简单来说就是主键与外键的关系
如:学生表与选课表之间用学号建立关联。学生表是主表,选课表是从表。若向从表中输入一条新纪录,系统会检查记录的学号是否在主表中存在。若存在,则允许操作,否则将拒绝输入。