wordpress 如何仿站,网站开发质量控制计划书,wordpress 缩进 插件,创意作品从这篇文章我们开始学习数据库的相关知识
目录
1.为什么要使用数据库
2.数据库与数据库管理系统
2.1相关概念
2.2数据库与数据库管理系统的关系
编辑2.3常见的数据库管理系统
2.4常见的数据库介绍
3.MySQL介绍
3.1概述
3.2关于MySQL8.0
3.3 Oracle vs MySQL
4.RD…从这篇文章我们开始学习数据库的相关知识
目录
1.为什么要使用数据库
2.数据库与数据库管理系统
2.1相关概念
2.2数据库与数据库管理系统的关系
编辑2.3常见的数据库管理系统
2.4常见的数据库介绍
3.MySQL介绍
3.1概述
3.2关于MySQL8.0
3.3 Oracle vs MySQL
4.RDBMS与非RDBMS
4.1 关系型数据库RDBMS
4.1.1实质
4.1.2 优势
4.2 非关系型数据库非RDBMS
4.2.1介绍
4.2.2 有哪些非关系型数据库
4.3 小结
5 关系型数据库设计规则
5.1 表、记录、字段
5.2 表的关联关系
5.2.1 一对一关联one-to-one
5.2.2 一对多关系one-to-many
5.2.3 多对多many-to-many
5.3.4 自我引用(Self reference) 1.为什么要使用数据库
使用数据库是因为数据库具有数据持久化的特点
持久化persistence把数据存储到可掉电式存储设备以供之后使用。在大多数情况下特别是企业级应用数据持久化意味着将内存中的数据保存到硬盘上加以“固化”而持久化的实现大多通过各种关系数据库来完成的
持久化的主要作用是将内存中的数据存储到关系型数据库中当然也可以存储到磁盘文件、xml文件中去
解释我们平时的一些数据是存储在内存中的内存中数据的存储是靠高低电压来实现的一旦我们断电了内存中存储不了数据了也就是说内存中的数据就消失了为了避免这个问题我们用数据库来存储数据数据库具有持久化的特点可以将数据存储在可掉电式存储设备上供以后使用。 2.数据库与数据库管理系统
2.1相关概念
DB数据库Database即存储数据的仓库其本质是一个文件系统它保存了一系列有组织的数据
路径找到我们MySQL的安装路径进入到根目录点击“data”文件夹这个里面的就是数据库
其实说白了数据库就是我们的一系列的文件是表是放数据的地方这个地方可以是表可以是文件夹可以是其他的东西。
DBMS数据库管理系统Database Management System是一种操纵和管理数据库的大型软件用于建立、使用和维护数据库对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据。
我们所用的MySQL就是这个MySQL就是DBMS。
SQL结构化查询语言Structured Query Language专门用来与数据库通信的语言。
2.2数据库与数据库管理系统的关系
数据库管理系统(DBMS)可以管理多个数据库一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据一般会在数据库创建多个表以保存程序中实体用户的数据。
数据库管理系统、数据库和表的关系如图所示 2.3常见的数据库管理系统
目前互联网上常见的数据库管理软件有Oracle、MySQL、MS SQL Server、DB2、PostgreSQL、Access、 Sybase、Informix这几种。以下是对各数据库受欢迎程度进行调查后的统计结果
查看数据库最新排名: https://db-engines.com/en/ranking 2.4常见的数据库介绍
Oracle
1979 年Oracle 2 诞生它是第一个商用的 RDBMS关系型数据库管理系统。随着 Oracle 软件的名气 越来越大公司也改名叫 Oracle 公司。
2007年总计85亿美金收购BEA Systems。
2009年总计74亿美金收购SUN。此前的2008年SUN以10亿美金收购MySQL。意味着Oracle 同时拥有了 MySQL 的管理权至此 Oracle 在数据库领域中成为绝对的领导者。
2013年甲骨文超越IBM成为继Microsoft后全球第二大软件公司。 如今 Oracle 的年收入达到了 400 亿美金足以证明商用收费数据库软件的价值。
SQL Server
SQL Server 是微软开发的大型商业数据库诞生于 1989 年。C#、.net等语言常使用与WinNT完全集 成也可以很好地与Microsoft BackOffice产品集成。
DB2
IBM公司的数据库产品,收费的。常应用在银行系统中。
PostgreSQL
PostgreSQL 的稳定性极强最符合SQL标准开放源码具备商业级DBMS质量。PG对数据量大的文本以 及SQL处理较快。
SQLite
嵌入式的小型数据库应用在手机端。 零配置SQlite3不用安装不用配置不用启动关闭或者配置 数据库实例。当系统崩溃后不用做任何恢复操作再下次使用数据库的时候自动恢复。
informix
IBM公司出品取自Information 和Unix的结合它是第一个被移植到Linux上的商业数据库产品。仅运行 于unix/linux平台命令行操作。 性能较高支持集群适应于安全性要求极高的系统尤其是银行证券系统的应用。
3.MySQL介绍 3.1概述
MySQL是一个开放源代码的关系型数据库管理系统 由瑞典MySQL AB创始人Michael Widenius公 司1995年开发迅速成为开源数据库的 No.1。2008被 Sun收购10亿美金2009年Sun被 Oracle 收购。 MariaDB应运而生。MySQL 的创造者担心 MySQL 有闭源的风险因此创建了MySQL的分支项目 MariaDBMySQL6.x 版本之后分为社区版和商业版 。MySQL是一种关联数据库管理系统将数据保存在不同的表中而不是将所有数据放在一个大仓库 内这样就增加了速度并提高了灵活性。MySQL是开源的所以你不需要支付额外的费用。MySQL是可以定制的采用了GPLGNU General Public License 协议你可以修改源码来 开发自己的MySQL系统。MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL支持大型数据库支持5000万条记录的数据仓库32位系统表文件最大可支持 4GB 64位系 统支持最大的表文件为 8TB 。MySQL使用标准的SQL数据语言 形式。MySQL可以允许运行于多个系统上并且支持多种语言。这些编程语言包括C、C、Python、 Java、Perl、PHP和Ruby等。
3.2关于MySQL8.0
MySQL从5.7版本直接跳跃发布了8.0版本 可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上 做了显著的改进与增强开发者对MySQL的源代码进行了重构最突出的一点是多MySQL Optimizer优化 器进行了改进。不仅在速度上得到了改善还为用户带来了更好的性能和更棒的体验。
为什么如此多的厂商要选用MySQL大概总结的原因主要有以下几点
开放源代码使用成本低。性能卓越服务稳定。软件体积小使用简单并且易于维护。历史悠久社区用户非常活跃遇到问题可以寻求帮助。许多互联网公司在用经过了时间的验证。
3.3 Oracle vs MySQL
Oracle 更适合大型跨国企业的使用因为他们对费用不敏感但是对性能要求以及安全性有更高的要求。
MySQL 由于其体积小、速度快、总体拥有成本低可处理上千万条记录的大型数据库尤其是开放源码 这一特点使得很多互联网公司、中小型网站选择了MySQL作为网站数据库FacebookTwitter YouTube阿里巴巴/蚂蚁金服去哪儿美团外卖腾讯。
4.RDBMS与非RDBMS
RDBMS关系型数据库
非RDBMS非关系型数据库
从排名中我们能看出来关系型数据库绝对是 DBMS 的主流其中使用最多的 DBMS 分别是 Oracle、 MySQL 和 SQL Server。这些都是关系型数据库RDBMS。
4.1 关系型数据库RDBMS
4.1.1实质
这种类型的数据库是 最古老 的数据库类型关系型数据库模型是把复杂的数据结构归结为简单的 二元关系 即二维表格形式。关系型数据库以 行(row) 和 列(column) 的形式存储数据以便于用户理解。这一系列的行和列被称为表table一组表组成了一个库database表与表之间的数据记录有关系relationship。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系型数据库就是建立在关系模型基础上的数据库。SQL 就是关系型数据库的查询语言。 4.1.2 优势
复杂查询 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。事务支持 使得对于安全性能很高的数据访问要求得以实现。
4.2 非关系型数据库非RDBMS
4.2.1介绍
非关系型数据库可看成传统关系型数据库的功能 阉割版本 基于键值对存储数据不需要经过SQL层 的解析 性能非常高 。同时通过减少不常用的功能进一步提高性能。 目前基本上大部分主流的非关系型数据库都是免费的。
4.2.2 有哪些非关系型数据库
相比于 SQLNoSQL 泛指非关系型数据库包括了榜单上的键值型数据库、文档型数据库、搜索引擎和 列存储等除此以外还包括图形数据库。也只有用 NoSQL 一词才能将这些技术囊括进来。
键值型数据库
键值型数据库通过 Key-Value 键值的方式来存储数据其中 Key 和 Value 可以是简单的对象也可以是复杂的对象。Key 作为唯一的标识符优点是查找速度快在这方面明显优于关系型数据库缺点是无法 像关系型数据库一样使用条件过滤比如 WHERE如果你不知道去哪里找数据就要遍历所有的键 这就会消耗大量的计算。
键值型数据库典型的使用场景是作为 内存缓存 。 Redis 是最流行的键值型数据库。
文档型数据库
此类数据库可存放并获取文档可以是XML、JSON等格式。在数据库中文档作为处理信息的基本单位 一个文档就相当于一条记录。文档数据库所存放的文档就相当于键值数据库所存放的“值”。MongoDB 是最流行的文档型数据库。此外还有CouchDB等。
搜索引擎数据库
虽然关系型数据库采用了索引提升检索效率但是针对全文索引效率却较低。搜索引擎数据库是应用在 搜索引擎领域的数据存储形式由于搜索引擎会爬取大量的数据并以特定的格式进行存储这样在检 索的时候才能保证性能最优。核心原理是“倒排索引”。 典型产品Solr、Elasticsearch、Splunk 等。
列式数据库
列式数据库是相对于行式存储的数据库Oracle、MySQL、SQL Server 等数据库都是采用的行式存储 Row-based而列式数据库是将数据按照列存储到数据库中这样做的好处是可以大量降低系统的 I/O适合于分布式文件系统不足在于功能相对有限。典型产品HBase等。
4.3 小结
NoSQL 的分类很多即便如此在 DBMS 排名中还是 SQL 阵营的比重更大影响力前 5 的 DBMS 中有 4 个是关系型数据库而排名前 20 的 DBMS 中也有 12 个是关系型数据库。所以说掌握 SQL 是非常有必要的。
5 关系型数据库设计规则
关系型数据库的典型数据结构就是数据表这些数据表的组成都是结构化的Structured将数据放到表中再将表放到库中一个数据库中可以有多个表每个表都有一个名字用来标识自己。表名具有唯一性表具有一些特性这些特性定义了数据在表中如何存储类似java和python中“类”的设计
5.1 表、记录、字段
E-Rentity-relationship实体-联系模型中有三个主要概念是: 实体集 、属性 、联系集 。一个实体集class对应于数据库中的一个表table一个实体instance则对应于数据库表 中的一行row也称为一条记录record。一个属性attribute对应于数据库表中的一列 column也称为一个字段field。 5.2 表的关联关系
表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用 关系模型来表示。四种一对一关联、一对多关联、多对多关联、自我引用
5.2.1 一对一关联one-to-one
在实际的开发中应用不多因为一对一可以创建成一张表。
举例
设计学生表 学号、姓名、手机号码、班级、系别、身份证号码、家庭住址、籍贯、紧急联系人、...
拆为两个表两个表的记录是一一对应关系。
基础信息表 常用信息学号、姓名、手机号码、班级、系别档案信息表 不常用信息学号、身份证号码、家庭住址、籍贯、紧急联系人、...
两种建表原则
外键唯一主表的主键和从表的外键唯一形成主外键关系外键唯一。外键是主键主表的主键和从表的主键形成主外键关系。 5.2.2 一对多关系one-to-many
常见实例场景 客户表和订单表 分类表和商品表 部门表和员工表 。
举例
员工表编号、姓名、...、所属部门
部门表编号、名称、简介
一对多建表原则在从表(多方)创建一个字段字段作为外键指向主表(一方)的主键 5.2.3 多对多many-to-many
要表示多对多关系必须创建第三个表该表通常称为 联接表 它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。 5.3.4 自我引用(Self reference)