一、数据库基础
(一)基本概念
概念 | 定义 |
---|---|
数据(DATA) | 对客观事物的描述或逻辑归纳 |
数据库(DB) | 是长期存储在计算机内、有组织、可共享的相关数据的集合 |
数据库系统(DBS) | 是指计算机系统中引入数据库后的系统 |
数据库管理系统(DBMS) | 建立、运用、管理和维护数据库的系统软件,常见的有SQL Server、Oracle、MySQL、Access等 |
(二)数据库技术的发展
阶段 | 数据管理 | 数据保存性 | 共享性/冗余性 | 独立性 |
---|---|---|---|---|
人工管理阶段 | 人 | 不保存 | 不共享、冗余大 | 无独立性 |
文件系统阶段 | 文件系统 | 长期保存 | 共享差、冗余大 | 独立性低 |
数据库系统阶段 | DBMS | 结构化保存 | 共享高、冗余小 | 独立性高 |
(三)数据库系统
1、数据库系统的三级结构
个数 | 别名 | 关键字 | |
---|---|---|---|
外模式 | 多个 | 用户模式/子模式 | 用户、程序、视图 |
模式 | 1个 | 概念模式/概念视图 | 概念、公共视图、全局视图 |
内模式 | 1个 | 物理模式/存储模式 | 物理、存储 |
2、数据库系统的二级映像
①外模式/影像模式:保证逻辑独立性
②模式/内模式影像:保证物理独立性(就将内模式看做我们的一种存储结构,看不见、摸不着)
3、DBMS的主要功能
①数据定义:定义数据库的结构、完整性约束和用户的权限等。
②数据操纵:可实现对数据的插入、删除、修改和查询等操作。
③数据控制(保护):主要包括数据的安全性控制、数据的完整性控制、数据的并发控制、数据的备份和恢复控制。
④数据维护:主要包括数据库出现故障后的恢复、数据库的重组、性能的监视等,由使用程序来完成。
二、数据模型
(一)认识数据模型
信息世界是对现实世界的抽象,计算机世界是对信息世界的抽象。
数据模型的组成要素:
- 数据结构:描述数据库的组成对象以及对象之间的联系
- 数据操作:允许执行的操作的集合,主要有查询和更新(包括插入、删除、修改)两大类操作。
- 数据库的完整性约束条件:是一组完整性规则。主要有实体完整性、参照完整性和用户自定义完整性约束。
(二)概念模型(E-R模型)
1、相关术语
术语 | 说明 | 实例 |
---|---|---|
实体 | 客观存在并可以相互区分的事物 | 学生、教师、班级等 |
属性 | 实体所具有的特征 | 学号、身份证号、年龄、性别等 |
实体型 | 同类实体,由实体名和属性名来描述 | 学生(学号、身份证号、年龄、性别) |
实体集 | 同一类型的实体的集合 | 全体学生、全体教师等 |
码(键、关键字) | 唯一标识实体的某一属性或属性集 | 学号、身份证号 |
域 | 某一属性的取值范围 | 性别的取值范围为{男,女} |
联系 | 实体和实体之间的现实关联 | 教师和学生是教与被教的关系 |
2、实体型之间的关系
- 一对一联系(1:1)
- 一对多联系(1:n)
- 多对多联系(m:n)
3、E-R图
矩形表示实体;
椭圆表示属性;
菱形表示联系;
无向边;
联系类型
(三)逻辑模型
1、层次模型
结构:树形结构
特点:
(1)一个模型有且只有一个节点没有双亲节点,这个节点称为根节点
(2)根节点以外的其他节点有且只有一个双亲节点
(3)父子节点之间的联系是一对多联系(1∶n)
2、网状模型
结构:网型结构
特点:
(1)允许一个以上的节点没有双亲节点
(2)允许一个节点有多个双亲节点
(3)节点之间存在多对多联系( m:n)
3、关系模型
结构:二维表
联系:一对一、一对多、多对多
三、关系数据库
(一)关系模型
1、基本概念
(1)关系:二维表(有行有列)
(2)属性:列、字段;元数(下表为6元关系表)
(3)域:值域(取值范围)
(4)元组:行、记录
(5)分量:属性值;如,(01001,赵乾,女,讲师,计算机,6000)中“01001”为一个分量
(6)关系模模式:二维表结构;如,T(TNo,TN,Sex,Prof,Dept,Sal )
2、关系的性质
(1)每一列是同质的
(2)不同列可同域但不同名
(3)列的顺序可以任意交换
(4)行的顺序可任意交换
(5)不允许出现完全一样的行
(6)不允许出现合并单元格
3、E-R图和关系模式的转换
码:码是可以确定一个元组的所有信息的属性名或属性名组
(1)一对一联系的转换
(2)一对多联系的转换
(3)多对多联系的转换
(二)关系模型的完整性约束
3类:实体完整性、参照完整性、用户定义完整性
1、关系的码
键码 | 定义 |
---|---|
候选码 | 唯一确定一个元组的属性或属性集 |
主属性 | 包含在候选码中的属性 |
非主属性 | 不包含在任何候选码中的属性 |
主码 | 若有多个候选码,选定其中一个为主码(主键、主关系键、关系键、关键字) |
外码 | 若属性X1是R1的主码,同时又在另一个关系R2,则称X是R2的外码 |
2、实体完整性
原则:有主码(不空)②不同元组的主码不重复
【例】在选课(学号,课程编号,成绩)中,主码为(学号,课程编号),则“学号”与“课程编号”两个属性值都不能为空。
3、参照完整性
原则:R2表的外键X的取值,参照R1表的主键值
【例】已知学生与选课的关系如下:
学生(学号,姓名,性别,系别,年龄)
选课(学号,课程编号,成绩)
则选课关系中的“学号”只能取学生关系中“学号”中已经存在的值。
4、用户自定义完整性
原则:事先定义阈值
【例】规定选课关系中“成绩”属性的取值范围为0~100之间的整数等。
(三)代数运算
1、传统的集合运算
①并
②差
③交
④笛卡尔积
2、专门的关系代数运算
①选择(根据条件得到行)
②投影(根据条件得到列)
③连接
等值连接:
自然连接:
四、ACCESS数据库(给图看懂)
(一)创建数据表
1、数据类型
2、字段属性
对数据类型作进一步限制。
3、数据表之间的关系
(二)编辑数据表记录
1、添加记录
2、删除记录
3、更新记录
(三)创建查询
①指定列查询(勾选谁,谁就查询出来)
②排序查询
③条件查询
五、SQL基础
(一)SQL特点
综合能力强,非过程化,面向集合,使用方法灵活,简洁易用:九个动词
功能 | 动词命令 |
---|---|
数据定义 | CREATE,ALTER,DORP |
数据操纵 | INSERT,UPDATE,DELETE |
数据查询 | SELECCT |
数据控制 | GRANT,REMOVE |
(二)数据表的基本操作
1、数据类型
字符串型:char,varchar
数值型:int,float
日期型:data
2、数据定义
①创建
②修改
③删除
3、数据操纵
①插入
②修改
③删除
4、单表查询
①无条件查询
②条件查询
③聚集函数
④分组查询
⑤排序查询
5、多表查询
六、关系数据库的设计
(一)、设计步骤
(二)设计方法
1、基于E-R模型的数据库设计方法
2、基于3NF的数据库设计方法
(二)函数依赖
1、定义
2、推理规则
3、类型
①完全函数依赖
②部分函数依赖
③传递函数依赖
④-⑤
(三)范式
1、第一范式 1NF
2、第二范式 2NF
3、第三范式 3NF
4、BC范式 BCNF