关系数据库概述

一、数据模型

        一般地讲,数据模型是严格定义的一组概念的集合,通常由数据结构数据操作完整性约束三部分组成。

1.1 数据结构

        数据结构描述数据库的组成对象以及对象之间的联系。数据结构是刻画一个数据模型性质最重要的方面。因此在数据库系统中,人们通常按数据结构的类型来命名数据模型。例如层次结构、网状结构和关系结构的数据模型分别命名为层次模型网状模型关系模型

1.1.1 层次模型

        层次模型就是以“上下级”的层次关系来组织数据的一种方式,层次模型的数据结构看起来就像一颗树:

 举例:

 图1.18

层次模型的基本特点:任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。

1.1.2 网状模型

        在现实世界中事务之间的联系更多的是非层次关系的,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一弊病。

在数据库中,满足以下两个条件的基本层次联系集合称为网状模型:

(1)允许一个以上的结点无双亲

(2)一个结点可以有多于一个的双亲

 

P26 图1.23 1.24

1.1.3 关系模型

        关系数据库系统采用关系模型作为数据的组织方式,是建立在严格的数学概念基础上。

        关系模型把数据看作是一个二维表格,任何数据都可以通过行号+列号来唯一确定,它的数据模型看起来就是一个Excel表:

  •  关系(Relation):一个关系对应通常说的一张表,如上面的一张表就可以称为一个关系;
  • 元祖(Tuple):表中的一行即为一个元祖;
  • 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。如上面的“学号”、"姓名"、“年龄”都是属性;
  • 码(Key):也称为码键。表中的某个属性组,它可以唯一确定一个元祖。例如上面的“学号”属性就可以唯一确定一个学生,也就成为本关系的码;
  • 域(Domain):属性的取值范围,如人的年龄一般在1~150岁之间,性别的域是“男”或者“女”等;
  • 分量:元组中的一个属性的值;
  • 关系模式:对关系的描述,一般表示为:关系名(属性1、属性2、...、属性n)

        例如,上面的关系可表述为:学生(学号、姓名、年龄、性别、系名、年级)

        值得注意的是,关系必须是规范的,满足一定的约束条件。最基本的约束条件: 关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。下面就是一个不规范的关系:

1.2 数据操作

        数据操作是指对数据库中各种对象的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。比如对数据库的增、删、改、查等。具体可以参见下面的SQL语言的DDL、DML和DQL。

1.3 完整性约束

        完整性约束一共可以包括实体完整性约束参照完整性约束用户自定义完整性约束。具体可以参见下面的微博,讲的很好:

https://blog.csdn.net/qq_42884482/article/details/100150177

二、SQL简介

        什么是SQL?SQL(Structured Query Language)是结构化查询语言的缩写,用来访问和操作数据库系统。SQL语句既可以查询数据库中的数据,也可以添加、更新和删除数据库中的数据,还可以对数据库进行管理和维护操作。不同的数据库,都支持SQL,这样,我们通过学习SQL这一种语言,就可以操作各种不同的数据库。

        虽然SQL已经被ANSI组织定义为标准,不幸地是,各个不同的数据库对标准的SQL支持不太一致。并且,大部分数据库都在标准的SQL上做了扩展。也就是说,如果只使用标准SQL,理论上所有数据库都可以支持,但如果使用某个特定数据库的扩展SQL,换一个数据库就不能执行了。例如,Oracle把自己扩展的SQL称为PL/SQL,Microsoft把自己扩展的SQL称为T-SQL

        现实情况是,如果我们只使用标准SQL的核心功能,那么所有数据库通常都可以执行。不常用的SQL功能,不同的数据库支持的程度都不一样。而各个数据库支持的各自扩展的功能,通常我们把它们称之为“方言”。

总的来说,SQL语言定义了这么几种操作数据库的能力:DDL、DML和DQL。

2.1 DDL:Data Definition Language 数据定义语言

        DDL允许用户定义数据,也就是创建表、删除表、修改表结构这些操作:

  • CREATE - 创建
  • ALTER - 修改
  • DROP - 删除
  • TRUNCATE - 移除
  • COMMENT - 注释
  • RENAME - 重命名

2.2 DML:Data Manipulation Language 数据操作语言

        DML为用户提供添加、删除、更新数据的能力,这些是应用程序对数据库的日常操作:

  • SELECT - 查询
  • INSERT - 添加
  • UPDATE - 更新
  • DELETE - 删除
  • CALL - 调用
  • EXPLAIN - 解释
  • LOCK TABLE - 锁,用于控制并发

2.3 DQL:Data Query Language 数据控制语言

        DQL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等:

  • GRANT - 授权 允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限
  • REVOKE - 收回已经授予的权限
  • COMMIT - 提交
  • SAVEPOINT - 保存点
  • ROLLBACK - 回滚
  • SET TRANSACTION - 设置当前事务的特性,它对后面的事务没有影响.

三、主流关系数据库

目前,主流的关系数据库主要分为以下几类:

  • 商用数据库,例如:OracleSQL ServerDB2等;
  • 开源数据库,例如:MySQLPostgreSQL等;
  • 桌面数据库,以微软Access为代表,适合桌面应用程序使用;
  • 嵌入式数据库,以Sqlite为代表,适合手机应用和桌面程序。

四、参考

1.关系数据库概述 - 廖雪峰的官方网站

2.

数据库的三种模型_彼岸的饭碗的博客-CSDN博客_数据库模型

3.MySQL基础系列之 DDL、DML和DCL的区别与理解_通往架构师的路上的博客-CSDN博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值