交互式SQL和嵌入式SQL
独立使用SQL语言进行数据库操作时,其使用方法称为交互式SQL,独立使用SQL语言进行数据库操作时,其使用方法称为交互式SQL
当一个程序既要访问数据库,又要处理数据时,把SQL语言嵌入程序设计语言即宿主语言中,将SQL语言访问数据库的功能和宿主语言的数据处理功能相结合,是目前解决该问题的最有效途径。
一、数据…相关概念
数据库中储存的是数据与数据的联系
长期储存在计算机内、有组织的、可共享的数据集合
数据库(DB)
社交网络数据库
电子商务平台数据库
企业信息数据库
通讯数据库
数据库中的数据可以共享
数据库减少了数据冗余
数据类型
数值、图形、文本、音频…
数据(DATA)储存方式
写在纸上的,存在excel表格的…
- 本节课的数据库(DB)特指长期储存在计算机内、有组织的、可共享的数据集合。
数据库管理系统(DBMS)- Mysql
SQL 语言集数据定义 、数据查询 、数据操纵、数据控制功能于一体。
- 数据库管理系统是位于用户与操作系统之间的一层数据管理软件
- 目标:科学地组织和存储数据、高效地获取和维护数据
- 位于用户应用与操作系统之间的一层数据管理软件
- 属于基础软件,是一个大型复杂的软件系统。
- 一组系统软件,而不是一组应用软件。
数据定义DDL
提供数据定义语言(DDL),用于定义数据库中的数据对象
语言:DDL
数据操作/数据操控DML
提供数据操纵语言(DML),用于操纵数据实现对数据库的基本操作(查询、插入、删除和修改)
增删改查
语言:DML
数据库控制
语言:
数据库维护
其他功能
对外连接
数据库管理员(DBA)
负责全面管理和控制数据库系统,是数据库系统中最重要的人员。
职责(我们的学习目标):
- 设计和定义数据库系统
- 帮助最终用户使用数据库系统
- 监督与控制数据库系统的使用和运行
- 改进和重组数据库系统
- 调优数据库系统的性能
- 转储和恢复数据库
- 重构数据库
数据库系统(DBS)
特点
①数据结构化
②数据的共享性高,冗余度低,且容易扩充。
③数据独立性高(物理独立性(应用程序与物理存储相互独立,数据的物理存储改变应用程序不改变),(逻辑独立性人应用程序与逻辑结构相互独立,数据的逻辑结构改变应用程序不改变)
④数据由数据库管理系统统一管理和控制
在DBS中,DBMS调用了OS的功能。
数据共享,数据独立性高,数据完整性,减少了数据冗余。
应用数据库技术的主要目的是为了共享数据问题。
在计算机系统中引入数据库后的系统构成
数据库系统的构成:
- 数据库
- 数据库管理系统
- 应用系统(及其开发工具)
- 相关人员(数据库管理员、应用系统开发人员、用户)
概括: 硬件、软件(DBMS运行的操作系统和本身)、数据库、用户
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ijaq6B6z-1679071249960)(E:\2picgo\1669271173760.png)]
应用系统
用户
应用开发软件
操作系统
一致性
数据库中,产生数据不一致的根本原因是数据冗余
主要原因是事务的隔离性在并发中遭到了破坏
数据模型
数据模型是数据库系统的核心和基础
在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。例如:地图、航模飞机。
数据模型应满足三方面要求
能比较真实地模拟现实世界
容易为人所理解
便于在计算机上实现。
将E-R模型转换成关系模型,属于数据库的逻辑设计。
抽象
现实世界 --> 概念模型 --> 逻辑模型 --> 物理模型 --计算机中数据
概念模型
信息模型
它是面向用户的模型,是现实世界到机器世界的一个中间层次。其基本特征是按用户观点对信息进行建模,与具体DBMS无关。
世界是由一组称作实体的基本对象和这些对象之间的联系构成。
E-R模型:
独立于计算机系统的模型
实体-联系方法
(1)实体(Entity)。实体是指客观存在并可相互区别的事物。实体可以是人、事或物,也可以是抽象的概念。如一件商品、一个客户、一份订单等都是实体。
关系模型中实现实体间 N:M 联系是通过增加一个关系实现。
(2)属性(Attribute)。实体通常有若干特征,每个特征称为实体的一个属性。属性刻画了实体在某方面的特性。例如,商品实体的属性可以有商品编号、商品类别、商品名称、生产商等。
(3)联系(Relationship)。现实世界中事物之间的联系反映在E-R模型中就是实体间的联系。例如,订单就是客户和商品之间的联系。
画图:
实体用矩形框表示,属性用椭圆形框表示,联系用菱形框表示,实体与属性与联系之间用无向直线连接。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5XlbBn9K-1679071249961)(E:\2picgo\1670580812504.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XO6BITnA-1679071249962)(E:\2picgo\1670580848849.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E52VAGDJ-1679071249964)(E:\2picgo\1670580880734.png)]
概念模型的用途
概念模型用于信息世界的建模
是现实世界到机器世界的一个中间层次
是数据库设计的有力工具
数据库设计人员和用户之间进行交流的语言
对概念模型的基本要求
较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识
简单、清晰、易于用户理解。
转表
如果两个实体之间具有 m:n 联系,则将它们转换为关系模型的结果是3个表。
逻辑模型(数据模型)
大多数时候就直接称为数据模型
由DBMS支持的
三要素1:数据结构
静态特性,数据本身以及数据之间的联系。
刻画数据模型性质的重要方面。
通常采用数据结构的类型来命名数据模型。
关系模型(主流)
基本的数据结构是表格,关系模型使用二维表来表示实体及其联系。
关系模型的数据操作主要包括查询和更新。关系数据操作具有两个显著特点:一是关系操作是集合操作,即操作的对象和结果均为集合;二是关系模型将操作中的存取路径向用户屏蔽起来,用户只要说明做什么,而不必指出怎样做。
网状模型
网状(可以多根)(多个父亲)
允许两个结点间有多种联系(复合联系)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-89lP7jbw-1679071249965)(E:\2picgo\1669272138380.png)]
层次模型-树状
(一个根)(一个联系)
面向对象模型*(Object Oriented Model)
对象关系模型*(Object Relational Model)
三要素2:数据操作
数据操作指对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则,它是对数据库动态特性的描述。
数据库中的数据操作主要分为查询、更新两大类,其中数据更新主要是指对数据记录的增、删、改。
数据模型需要定义这些操作的语义、操作符号、操作规则及实现操作的相关语句。
动态特征,允许执行的操作的集合,包括操作及操作规则。一般有检索、更新(插入、副除、修改)操作。
三要素3:数据完整性约束
完整性约束是数据的一组完整性规则的集合。
完整性规则是给定的数据模型中数据及其联系所具有的制约和存储规则,用以限定符合数据模型的数据库状态以及状态的变化,保证数据的正确、有效、相容。
是完整性规则的集合,规定数据库状态及状态变化所应满足的条件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4fBJQ8MC-1679071249967)(E:\2picgo\1669271603831.png)]
阶段
在数据库系统阶段,数据和程序之间具有较高的独立性。
数据库系统结构
目的:提高数据和程序的独立性。
- 系统模式的概念:
- 模式(Schema)
是对数据库逻辑结构和特征的描述是型的描述,不涉及具体值模式是相对稳定的 - 实例(Instance)
数据库某一时刻的状态——模式的一个具体值同一个模式可以有很多实例,实例随数据库中的数据的更新而变动
- 模式(Schema)
三级模式:(外模式、模式、内模式)
这是数据库开发人员的角度,是内部结构。三级模式是对数据的三个抽象级别
外模式(视图)(子模式)(用户模式):
视图是存放在数据库的表,为了安全。视图可以有多个,代表外模式也可以有多个。
数据库用户使用的局部数据的逻辑结构和特征的描述
外模式通常是模式的子集、一个模式可以有多个外模式反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求。每个用户只能看见和访问所对应的外模式中的数据,简化用户视图。
单个用户使用的数据视图的描述称为“外模式”。
模式(基本表)(逻辑模式):
一个数据库只有一个模式
模式是数据库系统模式结构的中心
数据库全体数据的逻辑结构和特征的描述,所有用户的公共数据视图。
这里的基本表并不是指你创建的表,而是本身存放在数据库的基本表,它们构成了一套逻辑结构来代表模式。
与数据的物理存储细节和硬件环境无关、与具体的应用程序、开发工具及高级程序设计语言无关。
内模式(存储模式):
一个数据库只有一个内模式
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的表示方式记录的存储方式
(例如,顺序存储,堆存储,Cluste按hash方法存储等)- 索引的组织方式(B+树,Bitmap,Hash)
- 数据是否压缩存储数据是否加密
- 数据存储记录结构的规定—如定长/变长,记录是否可以跨页存放等
DBMS提供三种模式的描述语言(DDL)来严格定义三种模式。
两级映象:(外模式/模式,模式/内模式映象 )
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MqkXdLgl-1679071249968)(E:\2picgo\1668010570182.png)]
二级映象在DBMS内部实现这三个抽象层次的联系和转换
引入知识点:映象,这是一种对应规则,说明映象双方如何进行转换。
1.外模式/模式映象
首先我们要知道这是定义在外模式描述中
官方的概念是:把描述局部逻辑结构的外模式与描述全局逻辑结构的模式联系起来,保证逻辑独立性。
当模式改变时,只要对外模式/模式映象做相应的改变,使外模式保持不变,则以外模式为依据的应用程序不受影响,从而保证了数据与程序之间的逻辑独立性,也就是数据的逻辑独立性。
个人理解是,我创建了一张表,有年龄这一字段,是int类型,我更改了类型为str类型,没有报错,那么对于我在这张表上之前输入的数据,不会改变,视图也不会改变
模式/内模式映象
映像是唯一的
首先我们要知道这是定义在模式描述中
官方概念:把描述全局逻辑结构的模式与描述物理结构的内模式联系起来,保证物理独立性。
当内模式改变时,比如存储设备或存储方式有所改变,只要模式/内模式映象做相应的改变,使模式保持不变,则应用程式保持不变。
二、关系数据库
概念
关系数据库
所有实体及实体之间联系的关系的集合构成一个关系数据库
所有关系的集合
关系数据库模式是关系模式的集合。
关系模式
关系模型,只包含单一的数据结构——关系
实体以及实体间的各种联系均用单一的结构类型——关系来表示
关系模型中的数据的逻辑结构是一张扁平的二维表
建立在集合代数的理论基础上
关系模式通常可以简记为
R(U,D,DOM,F)
U:属性名集合
D:U中属性来自的域
DOM:属性向域的映像集合
F:数据依赖
其中,R为关系名,A1,A2,…,An属性名
完整性约束
关系的目:列数。
域
一组具有相同数据类型的值的集合,反映在二维表中则是某一列的单元格的值的取值范围。
{‘男’,‘女’}/介于2007年7月1日到2008年2月29日之间的日期
笛卡尔积
一种集合运算
D 1 × D 2 × ⋯ D n = { ( d 1 , d 2 , ⋯ d n ) ∣ d i ∈ D i } D _ { 1 } \times D _ { 2 } \times \cdots D _ { n } = \{ ( d _ { 1 } , d _ { 2 } , \cdots d _ { n } ) | d _ { i } ∈ D _ { i }\} D1×D2×