第五章 数据库技术

一、数据库基础

(一)基本概念

概念 定义
数据(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
在这里插入图片描述

相关推荐

  1. :大模型的数据

    2024-07-16 07:06:03       56 阅读
  2. 实战

    2024-07-16 07:06:03       51 阅读
  3. 饥饿

    2024-07-16 07:06:03       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 07:06:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 07:06:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 07:06:03       58 阅读
  4. Python语言-面向对象

    2024-07-16 07:06:03       69 阅读

热门阅读

  1. C++ 有用的资源

    2024-07-16 07:06:03       18 阅读
  2. Hello,World!(C++)

    2024-07-16 07:06:03       20 阅读
  3. Eclipse 创建 XML 文件

    2024-07-16 07:06:03       22 阅读
  4. Electron 为什么采用多进程,而不是单进程

    2024-07-16 07:06:03       19 阅读
  5. live555 rtsp服务器实战之createNewStreamSource

    2024-07-16 07:06:03       27 阅读
  6. MATLAB的mat文件转换成json文件

    2024-07-16 07:06:03       31 阅读
  7. 统计学随笔

    2024-07-16 07:06:03       23 阅读
  8. 暂停cPanel / WHM帐户的方法

    2024-07-16 07:06:03       20 阅读
  9. .NET C# 使用 iText 生成PDF

    2024-07-16 07:06:03       17 阅读
  10. 服务器的rabbitmq的guest账号登不进去

    2024-07-16 07:06:03       28 阅读
  11. STO SS1 SS2 SLS 安全释义

    2024-07-16 07:06:03       21 阅读