MySQL(1)概述

一、使用数据库的原因

可以实现数据的持久化:把数据保存到可掉电式存储设备以供之后使用。企业级应用中,数据持久化意味着将内存中的数据保存到硬盘上,加以"固化"。

持久化的主要作用:将内存中的数据存储在关系型数据库中。

二、数据库与数据管理系统

1、数据库相关概念

DB

数据库(database):存储数据的" 仓库 "。它保存了一系列有组织的数据。

DBMS

数据库管理系统(Database Management System)。数据库是通过DBMS创

建和操作的 容器

常见的数据库管理系统:MySQL Oracle DB2 SqlServer、 PostgreSQL

SQL

结构化查询语言(Structure Query Language):专门用来与数据库 通信

2、常见DBMS的介绍

SQL S erver Microsoft 研发的大型商业数据库,可以与WinNT 完全集成,也可以很好地与Microsoft BackOffice产品集成。

DB2IBM公司的数据库产品,常用在银行系统中。

PostgreSQL :稳定性强,最符合SQL的标准。开发源码,具备商业级DBMS 质量。对数据量大的文本和sql处理较快。

SQL ite:嵌入式的小型数据库,应用在手机端。零配置,不用安装,不需要开启、关闭、或者配置数据库的实例。系统崩溃后不用做任何恢复操作,下次使用数据库时自动恢复。

informixIBM 公司出品,是第一个移植到Linux 系统上的商业数据库产品。仅运行在inux 或者unix 平台,命令行操作。性能较好,适应集群,适用于安全性较高的系统。

3、MySQL的优点

(1)开放源代码,使用成本低。

(2)性能卓越,服务稳定

(3)软件体积小,使用简单,易于维护

(4)用户基群大,社区活跃

(5)历史悠久,时间检验的选择

4、Oracle与mysql的对比

Oracle性能稳高,但不易维护,使用成本昂贵,适用于大型跨国企业

MySQL软件体积小,总体成本低,易于维护,开放源代码,可以处理成千上万条的大型数据库,使很多互联网公司,中小型网站选择了MySQL作为网站数据库。

5、关系型数据库与非关系型数据库(RDBMS and 非RDBMS)

(1)RDBMS

1.1 概况

-1- 把复杂的数据结构归结为简单的二元关系、

-2- 以行和列的形式存储数据,行和列形成表,一组表组成一个库(DB)。

-3- 是建立在关系模型基础上的数据库。

1.2 优势

-1- 便于作复杂查询

-2- 安全性高

(2)非RDBMS

2.1 概述

传统关系型数据库的阉割版,不需要进行SQL层的解析,性能高。

2.2 RDMS 的种类

-1- 键值型数据库,用key-value键值的方式村塾数据。典型的使用场景是作为内存缓存。Redis是最流行的键值型数据库。

-2- 文档型数据库

可存放并获取文档。MongoDB

-3- 搜索引擎数据库

应用在搜索引擎的数据存储形式,核心原理是"倒排索引"

典型:Soir

-4- 列式数据库

相对于夯实存储的数据。

好处是大量降低系统的io 适合于分布式文件系统,但功能响度有限。

典型:Hbase

-5- 图形数据库

利用图的数据结构存储了实体对象之间的厝。

典型:社交网络中人与人的关系。

6、关系型数据库的设计规则

关系型数据库的典型数据结构是数据表 ,这些数据表的组成是结构化的。

将数据放到表中,表再放到库中。

应该和数据库中可以有多个表,每个表有一个名字用来标识自己。表名具有唯一性。

表具有一些特性,这些特性定义了数据在表中如何存储。

(1) 表、记录、字段

E-R模型中有三个主要的概念:实体集、属性、联系集

ORM 对象关系映射:

数据库中的表<--->语言中的类

表中的数据对应于java类中的对象。

表中的一个列对应于类中的一个字段、属性(field)

(2)表的关联关系

-1- 一对一

应用不多。

两种建表原则:

外键唯一:主表的逐渐和从表的外键(唯一)行测好难过主外键关系,外键唯一。

外键是主键:主表的主键和从表的主键行程主外键关系。

-2- 一对多

常见的实例场景:客户表和订单表,分列表和商品表,部门表和员工表

一对多的建表原则:在从表(多方)创建一个字段,字段作为外键执行主表(一方)的主键。

-3- 多对多

应创建第三个表------联接表。

联接表见多对多关系划分为两个一对多关系。这两个表的逐渐都插入到第三个表中。

-4- 自我引用
相关推荐
村口蹲点的阿三2 小时前
Spark SQL 中对 Map 类型的操作函数
javascript·数据库·hive·sql·spark
苹果醋33 小时前
golang 编程规范 - Effective Go 中文
java·运维·spring boot·mysql·nginx
fajianchen4 小时前
记一次线上SQL死锁事故:如何避免死锁?
数据库·sql
chengpei1474 小时前
实现一个自己的spring-boot-starter,基于SQL生成HTTP接口
java·数据库·spring boot·sql·http
叫我:松哥4 小时前
基于Python django的音乐用户偏好分析及可视化系统设计与实现
人工智能·后端·python·mysql·数据分析·django
中东大鹅5 小时前
MongoDB的索引与聚合
数据库·hadoop·分布式·mongodb
天天向上杰6 小时前
简识Redis 持久化相关的 “Everysec“ 策略
数据库·redis·缓存
Leaf吧7 小时前
springboot 配置多数据源以及动态切换数据源
java·数据库·spring boot·后端
狮歌~资深攻城狮7 小时前
TiDB出现后,大数据技术的未来方向
数据库·数据仓库·分布式·数据分析·tidb