关系型数据库小结-基础-易理解!

Posted 葡萄籽-June

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系型数据库小结-基础-易理解!相关的知识,希望对你有一定的参考价值。

关系数据库中重要且实用的知识点小结

本篇文章的内容主要是简介关系型数据库的基本概念、关系数据结构&&形式化定义、关系操作、关系的完整性、常用术语、三级模式结构以及模式之间顺序与转换的应用举例等,来逐步了解它,并对关系型数据库有一个初印象!


前言

关系性数据库是采用关系模型作为数据组织方式的数据库。
它将每个具有相同属性的数据独立地存储在一个表中;对于任一表而言,用户可以增删改查表中的数据,而不会影响表中其它的数据。
关系型数据库对于初学者十分友好,它不仅有简单清晰的概念,在开发中也深受广大用户喜爱。

一、关系型数据结构&&形式化定义

  • 数据结构——存储结构

(1)逻辑结构

  • 二维表 <实体与实体之间的联系用表来表示>

(2)物理结构

  • 有的关系数据库管理系统中一个表对应一个一个操作系统文件。
  • 有的关系数据库管理系统从OS中申请若干个大的文件,自己划分空间,组织表、索引等存储结构,并进行存储管理。
  • 关系模式
  • 刻画出完整性约束条件
  • 是静态的
  • 是稳定的
  • 形式化定义
  • 域(domain)
    一组相同数据类型的值的集合(即二维表中的列)
  • 笛卡尔积
    是域上的一种集合运算
  • 关系(relation)
    (1)候选码(candidate key)
    (2)主码(prime key)

二、关系操作

1.基本操作

  • 查询(query)
  • 选择(select)
  • 投影(project)
  • 并(union)
  • 差(except)
  • 笛卡尔积
  • 连接(join)
  • 除(divide)
  • 交(intersection)
  • 插入(insert)
  • 修改(update)
  • 删除(delete)

2.关系型数据语言

SQL(Sttuctured Query Language)结构化查询语句,是关系型数据库的标准语句。

  • 主要功能

1、数据查询(data query)
2、数据操纵(data manipulation)
包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
3、数据定义(data definition)
能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。
4、数据控制(data control)
主要是对用户的访问权限加以控制,以保证系统的安全性。

  • SQL的特点

1、综合统一。集数据定义语言、数据操纵语言、数据控制语言的功能于一体;综合统一;独立完成数据库生命周期中的全部活动。
2、高度非过程化。提高了数据的独立性。
3、面向集合的操作方式。操作对象是元组的集合。
4、以同一种语法结构提供多种使用方式。能够嵌入到高级语言中。
5、语言简洁,易学易用。

  • SQL语言的分类:

1、数据查询语言(DQL: Data Query Language)
用以从表中获得数据,确定数据怎样在应用程序给出。
常用保留字:SELECT、WHERE、ORDER BY、GROUP BY、HAVING

2、数据操作语言(DML:Data Manipulation Language)
常用保留字:HAVING、 UPDATE、DELETE、INSERT
3、数据控制语言(DCL:Data Control Language)
确定单个用户和用户组对数据库对象的访问。
常用保留字:GRANT、REVOKE(实现权限控制)

4、数据定义语言(DDL:Data Definition Language)
在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。
常用保留字:CREATE 、ALTER、 DROP

5、事务控制语言(TCL:Transaction Control Language)
能确保被DML语句影响的表的所有行及时得以更新。
常用保留字:COMMIT(提交)、SAVEPOINT(保存点)、ROLLBACK(回滚)


三、关系的完整性

关系型中关系的完整性主要包括3个方面:实体完整性、参照完整性、用户定义完整性。

1、实体完整性

从概念上来说,关系数据库中的每个元组应该是可以区分的,是唯一的。即主码(无论是一个主属性组成还是多个主属性共同组成的)不能为空值。
实体完整性用最通俗的话来说就是定义主键,并且主键唯一、不为空。

若要保证设计的关系型数据库具有实体完整性,可如下设计:

  • 表中约束定义
    1、当主键由单属性组成时,有两种定义方式。
CREATE TABLE m_student{
Sno CHAR(9) NOT NULL PRIMARY KEY,    /*在 列级 定义主键*/
Sname CHAR(20) NOT NULL
}
/*或者*/
CREATE TABLE m_student{
Sno CHAR(9) NOT NULL ,    
Sname CHAR(20) NOT NULL,
PRIMARY KEY(Sno)					/*在 表级 定义主键*/
}

2、当主键是多属性组成时,只能使用标记定义主键。

--成绩表
CREATE TABLE m_SC{
Sno CHAR(9) NOT NULL ,    
Cno CHAR(9) NOT NULL ,    
Grade SMALLINT,
PRIMARY KEY(Sno,Cno)					/*在 表级 定义主键*/
}
  • 自动检查

1、检查主键值是否唯一。
2、检查主键的各个属性是否为空。

2、参照完整性

从概念上来说,参照的关系中的属性值必须能够在被参照关系找到(与关系相对应的主码保持一致)或者取空值。

参照完整性用通俗的话来说就是定义表的外键约束。

参照完整性的定义:

--学生表
CREATE TABLE m_student{
Sno CHAR(9) NOT NULL PRIMARY KEY,    /*在 列级 定义主键*/
Sname CHAR(20) NOT NULL
}
--课程表
CREATE TABLE m_course{
Cno CHAR(9) NOT NULL PRIMARY KEY,    /*在 列级 定义主键*/
Cname CHAR(20) NOT NULL
}
--成绩表
CREATE TABLE m_SC{
Sno CHAR(9) NOT NULL ,    
Cno CHAR(9) NOT NULL ,    
Grade SMALLINT,
PRIMARY KEY(Sno,Cno)					/*在 表级 定义主键*/
FOREIGN KEY(Sno) REFERENCES m_student(Sno),		/*在 表级 定义外键*/
FOREIGN KEY(Cno) REFERENCES m_course(Cno)		/*在 表级 定义外键*/
}

3、用户定义完整性

从概念上来说,它反映某一具体应用所涉及的数据必须满足的语义要求。主要是针对某一具体关系数据库的约束条件。


主要类型包括:

  • 非空约束(NOT NULL)
  • 检查约束(CHECK 短句)
  • 主键约束(PRIMATY KEY)
  • 外键约束(FOREIGN KEY)
  • 唯一约束(UNIQUE)

四、基础术语&&三级模式

1、基础概念

实体: 现实世界中客观存在并可以被区别的事物。比如“一个学生读者”、“一本书”、等等。值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,就像“读者借阅书籍”,表示读者和书籍之间的动作或者联系。在关系数据库中,一个实体可以看作是“一张表”的事物描述。
属性: 实体所具有的某一特性。由此可见,属性一开始是个逻辑概念,比如说,“学号”是“读者”的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”。
元组: 在关系数据库中,“表中的一行”就是一个元组。
分量: 元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库了。
码: 表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,叫候选码,我们从候选码中挑一个能够唯一标识这个的,它就叫主码。
全码: 如果一个主码包含了所有的属性,这个码就是全码。
主属性: 一个属性只要在任何一个候选码中出现过,这个属性就是主属性。
非主属性: 与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。
外码: 一个属性(或属性组),它不是码,但是它是其它表的主码,这个表在现实世界中与其它的表有一定的联系,那它就是外码。

图1-1 上述常用术语的清晰说明
各属性的说明

2、三级模式结构

数据库领域公认的标准结构是三级模式结构,它包括外模式、模式和内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。它主要体现在对数据库进行设计的时候模式之间的转换是很重要的。

DB三级模式
三级模式关系如下:
模式层次关系图

3、三级模式实例应用

以下通过一个简单的例子来描述。(根据现实世界所定义的实体、属性和联系往往在不同的应用场景是不一样的,下面的例子尽管有不全面的地方,但是作为简单理解概念的例子是足够啦!)

(1)概念模式:E-R图

E-R图基础概念:
1、实体-联系图(Entity Relationship Diagram)
2、矩形框:表示实体,在框中记入实体名。
3、菱形框:表示联系,在框中记入联系名。
4、椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。
5、连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)

栗子:简单图书管理系统E-R图如下:
在这里插入图片描述

(2)逻辑模式:关系模式

主要是根据E-R图转换为相应的关系模式(遵循第三范式)

上述E-R图转换为的关系模式如下:

管理员用户名,密码)
图书图书IBSN,图书名称,图书类别,图书单价,图书库存)
​读者读者编号,读者姓名,读者性别,读者联系方式,读者专业,注册时间,读者类型
​读者类型读者类型,借阅最大数量,借阅最大天数)
​借阅借阅编号,借阅时间,借阅数量,归还时间,图书编号读者编号

(3)物理模式:二维表

此模式主要是根据上述的关系模式转换为表的形式。

表1-1 学生读者基本信息表

读者编号姓名性别联系方式专业读者类型注册时间
20200101白百18201011129语言类三类2020/09/01
20200202赵一13909890980工商管理二类2020/09/01
20200303章萌15098909890软件工程一类2020/09/01

表1-2 图书基本信息表

图书IBSN图书名称图书类别图书单价图书库存
211110001数据结构计算机34.019
211110002哈利波特外国小说89.510
211110003计算机网络原理计算机39.012

表1-3 读者借阅书籍信息表

借阅编号借阅时间借阅数量归还时间读者编号图书编号
0000012020/10/0122020/11/1220200101211110002
0000022021/02/1312021/03/1620200203211110001
0000032021/04/01120200303211110003

表2-1 实体、主键、外键说明表

实体主键外键
读者读者编号读者类型名
读者类型读者类型名
图书图书IBSN
读者借阅书籍借阅编号读者编号、图书IBSN

*补充

关系型数据库的主要特征

  • 1)数据集中控制
  • 2)数据独立
  • 3)数据共享
  • 4)减少数据冗余
  • 5)数据结构化

今天就先分享到这叭~~~

以上是关于关系型数据库小结-基础-易理解!的主要内容,如果未能解决你的问题,请参考以下文章

JDBC基础编程六步+应用实例_最易理解!

抽象类和接口的区别(通俗易理解)

易理解java代码8皇后问题

查看发票组代码后的总结和有感

程序员架构修炼之道:如何设计“易理解”的系统架构?

❤️值得收藏❤️优先级队列(堆)❤️全面讲解(易理解+附大量图+超详细)!!!