一、使用数据库的原因
可以实现数据的持久化:把数据保存到可掉电式存储设备以供之后使用。企业级应用中,数据持久化意味着将内存中的数据保存到硬盘上,加以"固化"。
持久化的主要作用:将内存中的数据存储在关系型数据库中。
二、数据库与数据管理系统
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产品集成。
DB2 :IBM公司的数据库产品,常用在银行系统中。
PostgreSQL :稳定性强,最符合SQL的标准。开发源码,具备商业级DBMS 质量。对数据量大的文本和sql处理较快。
SQL ite:嵌入式的小型数据库,应用在手机端。零配置,不用安装,不需要开启、关闭、或者配置数据库的实例。系统崩溃后不用做任何恢复操作,下次使用数据库时自动恢复。
informix :IBM 公司出品,是第一个移植到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- 多对多
应创建第三个表------联接表。
联接表见多对多关系划分为两个一对多关系。这两个表的逐渐都插入到第三个表中。