文章目录
- 01 数据库概述
- 1.1 四个基本概念
- 1.2 数据管理技术的三个阶段
- 1.2.1 人工管理阶段
- 1.2.2 文件系统阶段
- 1.2.3 数据库阶段
- 1.3 数据独立性
- 1.4 数据库的三级模式结构
- 1.4.1 三级模式结构
- 1.4.2 数据库的二级映像与数据独立性
- 02 关系数据库
- 2.1 关系数据结构及形式化定义
- 2.1.1 关系
- 2.2 关系基本操作
- 2.2.1
- 2.2.2
- 2.2.3
- 2.2.4
- 2.2 关系的完整性
- 2.4 关系代数
- 实验内容
01 数据库概述
1.1 四个基本概念
1.数据data : 描述事物的符号记录,可以为文字、图像、图形、音频、视频等。
2.数据库DB : 长期存储在计算机内、有组织、可共享的大量数据的集合。
3.数据库管理系统DBSM : 位于操作系统与用户之间的一层数据管理软件。
4.数据库系统DBS : 由数据库、数据库管理系统、应用程序、数据库管理员组成的存储、管理、处理、维护数据的系统。
1.2 数据管理技术的三个阶段
1.2.1 人工管理阶段
数据处理方式:批处理
该阶段特点:
1.数据不能长期保存
2.数据不共享
3.数据不独立
4.数据冗余
1.2.2 文件系统阶段
该阶段特点:
1.数据可以长期保存
2.数据共享性差,冗余度大
3.数据独立性差
4.数据不一致
1.2.3 数据库阶段
该阶段特点:
1.数据结构化
2.数据共享性高、冗余度低、易扩充
3.由数据库管理系统统一管理和控制
1.3 数据独立性
物理独立性 : 指用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性 : 指用户的应用程序与数据库的逻辑结构是相互独立的。
1.4 数据库的三级模式结构
1.4.1 三级模式结构
1.模式:模式也称为逻辑模式,是数据库中全体数据的逻辑结果和特征的描述。是所有用户的公共数据视图。一个数据库只有一个模式。
2.外模式:也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式,但一个应用程序只能使用一个外模式。
3.内模式:也称存储模式,它是数据物理存储结构和存储方式的描述,是数据在数据库内部的组织方式。一个数据库只有一个内模式。
1.4.2 数据库的二级映像与数据独立性
1.外模式/模式映像
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。
当模式(逻辑模式)改变时,由数据库管理员对各个 外模式/模式 的映像作相应改变,可以使
外模式保持不变。应用程序是依靠数据的外模式编写的,从而应用程序不必修改,保证了数据与
程序的逻辑独立性,简称数据的独立性。
2.模式/内模式映像
数据库中只有一个模式,也只有一个内模式,所以该映像是唯一的。
当数据库的存储结构改变时,由数据库管理员对 模式/内模式 映像作相应改变,可以使模式
保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
02 关系数据库
2.1 关系数据结构及形式化定义
2.1.1 关系
关系:关系模型的一张二维表
1.域 : 一组具有相同数据类型的值的集合
2.候选码 : 若关系中的某一属性的值能唯一地标识一个元组(一行),而其子集不能,则称为该属性的候选码。
3.主码 : 若一个关系有多个候选码,则选定其中一个为主码。
4.主属性 : 候选码的诸属性
5.全码 : 关系模式的所有属性是这个关系模式的候选码
基本关系具有以下6条性质:
1.列是同质的。即每一列中的分量是同一类型的数据。
2.不同的列可出自同一个域。
3.列的顺序无所谓,即列的次序可以任意交换。
4.任意两个元组的候选码不能取相同的值。
5.行的顺序无所谓,即行的次序可以任意交换。
6.分量必须取原子值,即每一个分量都必须是不可分的数据项。
2.2 关系基本操作
关系模型的常用操作:查询操作、插入操作、删除操作、修改操作
查询操作包含:选择、投影、连接(x)、除(x)、并、差、交(x)、笛卡尔积等。其中选择、投影、并、差、笛卡尔积为基本操作。
关系数据语言分类:
SQL语言是一种高度非过程化的语言
2.2.1
2.2.2
2.2.3
2.2.4
2.2 关系的完整性
2.4 关系代数
实验内容
实验工具:Navicat
/********单表查询********/
SELECT*FROM`客户`/*查询客户表*/
/*查询所有客户的姓名、出生年份、电话,并且将输出结果中的列名显示为“客户姓名”、“出生年份”、“手机号码”*/
SELECT 姓名 客户姓名,出生日期 出生年份,电话 手机号码 FROM 客户
/*查询所有客户的姓名、电话、年龄、性别。*/
SELECT 姓名,电话,2022-出生日期 年龄,性别 FROM `客户`
/*查询所有男客户的信息,并按地址进行排序。*/
SELECT * FROM 客户 WHERE 性别='男' ORDER BY `地址`
/*查询年龄小于30岁的客户姓名、电话、地址*/
SELECT 姓名,电话,地址 FROM 客户 WHERE 2022-`出生日期`
/*查询“海南”的客户姓名、出生日期、电话、地址。 % 以海南开头的地址*/
SELECT 姓名,出生日期,电话,地址 FROM `客户` WHERE 地址 LIKE '海南%'
/*查询年龄大于 40 岁的客户姓名、年龄、电话、地址,并按年龄升序排列输出*/
SELECT 姓名,2022-`出生日期` 年龄,电话,地址 FROM `客户` WHERE (2022-`出生日期`)>40 ORDER BY 年龄
/*查询姓李的客户信息,并按性别降序排列输出,同性之间按年龄升序排列输出*/
SELECT * FROM `客户` WHERE 姓名 LIKE '李%' ORDER BY `性别` DESC /*加上运行不出来的内容:`出生日期` ASC*/
SELECT * FROM `商品`
/*查询价格在 5000 到 8000 之间的商品信息,并按单价降序排列输出*/
SELECT * FROM `商品` WHERE 单价 BETWEEN 5000 AND 8000 ORDER BY 单价 DESC
SELECT * FROM `订单`
/*查询成交记录表中下订单两天后才成交的订单编号、商品编号、订单时间、成交时间。*/
SELECT 订单编号,商品编号,订单时间,成交时间 FROM `订单` WHERE (`成交时间`-`订单时间`)>=2
/********连接查询(多表查询)******/
SELECT*FROM `商店`
SELECT*FROM `商品`
SELECT*FROM `订单`
/*查询商品名中包含有“计算机”的商店名称、商品名称、价格、负责人、客服电话*/
SELECT 商店名称,商品名称,单价,负责人,客服电话 FROM `商品`,`商店`
WHERE 商店.商店编号=商品.商店编号 AND 商品名称 LIKE '%计算机%'
/*查询购买了各式“打印机”的客户姓名、商品名称、电话、地址。*/
SELECT 姓名,商品名称,电话,地址 FROM `客户`,`订单` ,`商品` WHERE
客户.`客户编号`=订单.`客户编号` AND 商品.`商品编号`=订单.`商品编号` AND 商品名称 LIKE '%打印机%'
/*查询拥有两种以上商品的商店名称、负责人、商品数量 !!!这个运行不出来*/
SELECT 商店名称,负责人,COUNT(*) AS 商品数量 FROM `商品`,`商店` WHERE 商店.`商店编号`=商品.`商店编号`
ORDER BY 商店名称,负责人
HAVING COUNT(*)>=2
/*查询订单中不少于五条交易记录的客户编号、姓名、电话和记录数。*/