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

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


文章目录

  • 关系数据库中重要且实用的知识点小结
  • 前言
  • 一、关系型数据结构&&形式化定义
  • 二、关系操作
    • 1.基本操作
    • 2.关系型数据语言
  • 三、关系的完整性
    • 1、实体完整性
    • 2、参照完整性
    • 3、用户定义完整性
  • 四、基础术语&&三级模式
    • 1、基础概念
    • 2、三级模式结构
    • 3、三级模式实例应用
      • (1)概念模式:E-R图
      • (2)逻辑模式:关系模式
      • (3)物理模式:二维表
  • *补充

前言

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


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

  • 数据结构——存储结构

(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、三级模式结构

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


三级模式关系如下:

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.0 19
211110002 哈利波特 外国小说 89.5 10
211110003 计算机网络原理 计算机 39.0 12

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

借阅编号 借阅时间 借阅数量 归还时间 读者编号 图书编号
000001 2020/10/01 2 2020/11/12 20200101 211110002
000002 2021/02/13 1 2021/03/16 20200203 211110001
000003 2021/04/01 1 20200303 211110003

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

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

*补充

关系型数据库的主要特征

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

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

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

  1. DM数据库体系结构(易理解版)

    DM数据库体系结构(易理解版) 一.DM逻辑存储结构 1.1各类名词解释 1.2逻辑结构介绍 二.DM物理存储结构 2.1物理存储结构介绍 2.2配置文件 2.3控制文件 2.4数据文件 2.5其他文 ...

  2. java web期末课程设计 学生成绩管理系统(mysql,jstl+el,Javabean)+增删改查,session域+servlet(基础易理解)

    学生成绩管理系统 一.实验目的 为了更好的学习理解JavaWeb,创建了此系统.此系统可以帮助学习Java web基础,特别是javaweb入门,此系统使用大部分Java web基础知识.Java w ...

  3. 关系型数据库规范化的通俗理解

    在大学的时候就已经对数据库范式的概念有所耳闻,但是一直是仅仅知道有这么一个概念.最近参加数据库系统工程师的考试,结合自己的工程经验,终于对数据库规范化理论有了一知半解. 本文试图从工程化的角度,用大白 ...

  4. 关系型数据库是什么?

    关系型数据库建立在关系型数据模型的基础上,是借助于集合代数等数学概念和方法来处理数据的数据库.现实世界中的各种实体以及实体之间的各种联系均可用关系模型来表示,市场上占很大份额的 Oracle.MySQ ...

  5. 非关系型数据库NoSQL的崛起

    非关系型数据库NoSQL的崛起 <连线>杂志网络版近日刊载文章,对NoSQL(非关系型数据库)的来源与历史进行了追溯.文章主要介绍了最古老的NoSQL数据库之一CouchDB,这种数据库的 ...

  6. NoSQL数据库的基础知识

    关系型数据库和NoSQL数据库 什么是NoSQL 大家有没有听说过"NoSQL"呢?近年,这个词极受关注.看到"NoSQL"这个词,大家可能会误以为是" ...

  7. 关系型数据库和非关系型数据库简单介绍:

    常见的数据库模型分为两种,分别是关系型数据库和关系型数据库. 关系型数据库 关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据.简单说,关系型数据库是由多张 ...

  8. Amazon Aurora是如何设计原生云关系型数据库的?

    关系型数据库已经存在很长时间了.数据的关系模型是E.F. Codd在20世纪70年代提出的,而支撑当今主要关系型数据库管理系统的核心技术是在1980到1990年代开发的.关系型数据库的基础,包括数据关 ...

  9. RDS关系型数据库 入门 01 创建关系型数据库实例【华为云分享】

    [摘要] 关系型数据库(Relational Database Service,简称RDS)是一种基于云计算平台的即开即用.稳定可靠.弹性伸缩.便捷管理的在线关系型数据库服务.RDS具有完善的性能监控 ...

最新文章

  1. SUBSTRING函數用法
  2. 2018智能音频报告:智能音箱带来的智能音频和广播媒体的机遇
  3. Java数据结构与算法:排序算法
  4. Latex入门:编辑器(texmaker+texlive)安装
  5. How is assignment blocks of overview pages read from configuration
  6. html个版本间的特点,了解下什么是HTML5,他与以往的版本有什么区别 什么新元素...
  7. 合同电子档备份-NXCRM客户管理系统v2.2.5
  8. 一个小小Css3动画的案例
  9. python __xxxitem__
  10. python文件路径过滤器_自定义过滤器及标签
  11. climbing-stairs-动态规划,爬楼梯的路径数
  12. 数学建模之概率模型详解
  13. 网站类项目商业计划书(转)
  14. [python小工具]加减法出题器
  15. 2018.12.15【HDU4622】Reincarnation(后缀自动机SAM)
  16. e.target.dataset和e.currentTarget.dataset
  17. 同时安装 TensorflowPytorch
  18. Unity脚本介绍和常用API
  19. Github 之提交代码
  20. Mybatis中#和$的区别

热门文章

  1. 青岛大学_王卓老师【数据结构与算法】Week04_12_案例分析与实现2_学习笔记
  2. 多人在线游戏服务器端开发心得
  3. 微软pop3服务器,在outlook的服务器设置中POP3协议是指
  4. Ultimate Rope Editor 柔性绳子编辑器插件
  5. cetus权限连接主从mysql_cetus/cetus-quick-try.md at master · session-replay-tools/cetus · GitHub...
  6. Flutter介绍和主流框架的对比
  7. 如何设置计算机重新启动功能,Win7系统定时重启怎么设置
  8. 如何减少电壁挂炉的电用量—五妙招教你巧省电
  9. linux sfdisk命令,Linux运维知识之Linux sfdisk硬盘分区工具程序命令详解
  10. hasOwnProperty 1