对关系型数据库管理系统的介绍

1.数据库的相关介绍

关系型数据库管理系统:(英文简称:RDBMS)

为我们提供了一种存储数据的特定格式,所谓的数据格式就是表,

在数据库中一张表就称为是一种关系.

在关系型数据库中表由两部分组成:第一部分是字段(column)第二部分叫做记录(record)

在表中的每一类数据就是一种字段,在表中每一个数据录入就是一条记录。

在关系型数据库中表是不能单独存在的,想创建表就要先有数据库的存在,

在RDBMS中存储数据的结构是在数据库中去创建表在表中有字段(column)和记录(record)组成。

在RDBMS中的数据库的表中可以设置一些限制条件,这些限制条件的加入使得用户录入数据的统一规范。

2.对RDBMS中数据库中表的限制条件的介绍:

约束 constraint

1.域约束:在字段上进行数据类型的限制。(为了确保在表中每一列的数据格式的统一。)

2.检查性约束:在字段上进行一个数据的判断,满足条件则录入数据,形成一条记录,如果不满足条件则返回错误。(确保数据的合理性。)

3.主键约束(primary key):数据第一不能重复,第二填入数据的时候这一列不能为空,通常为编号的字段,设置主键约束。

注意:一张表只能有一个主键约束。(通常为编号的字段设置主键约束。)

4.惟一键约束(unique key):数据不能重复,但是数据可以为空。

一张表中可以存在多个惟一键。

(典型的IP地址不可能出现重复,)

5.外键约束(Foreign key):也就是说外键约束是多张表之间的一种联系,如果录入数据的编号在对应的表中找不到对应的编号则整行信息作废,不能录入表中。(确保数据的完整性准确性,但是录入数据的速度会降低。)

子表与母表应该通过唯一性数据进行联系,必须保证联系子表与母表之间的数据编号是不重复的。

  1. 维护数据完整性:外键约束确保了引用完整性(Referential Integrity),即两个相关联的表之间的数据一致性。当在一个表(从表或子表)中插入或更新记录时,外键约束会检查这些操作是否与另一个表(主表或父表)中的相关记录相匹配。例如,如果子表中的外键列必须引用主表中已存在的主键值,那么外键约束会阻止插入或更新一个不存在于主表中的外键值,从而避免了孤立数据和无效引用。

在RDBMS中如何避免数据的冗余?

在RDBMS中为了避免重复的重要手段之一就是把表拆掉,将一张表拆成两张表。

在数据库中最重要的就是对字段的设计,而每一张表都需要进行域约束

在数据库中最难的主要就是字段的设计。在数据库中每一张表都要去设置域约束。

数据的冗余

数据冗余(Data Redundancy)是指在数据库或数据存储系统中存储了超过一次的相同数据或可以由其他数据推导出来的数据。

3.事务

事务():Transaction

启动事务:准备做一项工作

回滚事务:如果经过检查,发现操作错误。则回滚事务,重新操作。

当启动事务后,经过检查之后发现操作无误,则提交事务,操作生效。

作用:确保多个操作要么全成功,要么全失败。

4.关系型数据库管理系统的软件

Oracle 商业软件

MySQL 早期是开源软件

mariadb-server 开源软件(除了名字跟MySQL不一样,其他都差不多。)

SQL Server (微软的收费软件,互联网人不用。)

postgresql

华为 GaussDB

相关推荐
2301_8002561117 小时前
第九章:空间网络模型(空间网络查询、数据模型、Connected、with Recursive、pgRouting)
网络·数据库·算法·postgresql·oracle
霖霖总总18 小时前
[小技巧19]MySQL 权限管理全指南:用户、角色、授权与安全实践
数据库·mysql·安全
heartbeat..1 天前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
麦聪聊数据1 天前
MySQL并发与锁:从“防止超卖”到排查“死锁”
数据库·sql·mysql
AC赳赳老秦1 天前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
myzshare1 天前
实战分享:我是如何用SSM框架开发出一个完整项目的
java·mysql·spring cloud·微信小程序
YMatrix 官方技术社区1 天前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
辞砚技术录1 天前
MySQL面试题——索引2nd
数据库·mysql·面试
linweidong1 天前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++
墨笔之风1 天前
java后端根据双数据源进行不同的接口查询
java·开发语言·mysql·postgres