数据库实例是由一系列的后台进程以及为系统为这些进程分配的内存块组成的。实例可以理解为是我们访问数据库的通道。它有底层软件组织,也可以理解为数据库引擎,用来进行创建、查询、更新和删除数据。除此之外还有内存块,用来存放中间数据。
一、数据库实例简介
数据库实例是由一系列的后台进程以及为系统为这些进程分配的内存块组成的。众所周知,所谓的数据库其实并没有存放在数据库管理系统中,而是以各种文件的形式存放在电脑的物理磁盘上。数据库管理系统无非是提供的数据管理的工具、入口或平台来帮助用户进行数据处理。
实例可以理解为是我们访问数据库的通道。它有底层软件组织,也可以理解为数据库引擎,用来进行创建、查询、更新和删除数据。除此之外还有内存块,用来存放中间数据。比如,我们在读取数据时,实例会调用它的数据库引擎来查询和读取磁盘上文件里的数据,将这些数据读到告诉缓冲池(内存)中,然后再提交给用户。所以有的说实例就是数据库服务引擎也可以这么理解。
数据库实例就是访问数据库的应用程序,是位于用户和操作系统之间的一层数据管理软件。在Mysql中就是mysql的进程。用户对数据库中的文件(数据)的增、删、查、改以及包括数据定义、数据查询、数据维护、数据库运行控制等任何的操作直接通过文件系统操作数据库文件是不可能也是不允许的,这就需要数据库实例的帮助,即这些操作都是在数据库实例下进行的,数据库实例就是用户(程序员)访问数据库的通道,应用程序只有通过数据库实例才能和数据库打交道。数据库实例这个应用程序实现了对数据库操作的封装,同时也实现了SQL语言的解析,让用户用SQL语言这种简单直接的方式去操作数据库的内容。
通常来说一个数据库实例对应一个数据库。但是不同数据库的实例设置稍有不同。比如我们常用的SQL 数据库时候一个实例下可以有多个数据库。而则每个实例下只能有一个数据库。
实例的作用:
二、mysql多实例简介
多实例就是在一台服务器上同时开启多个不同的数据库服务端口(例如3306、3307),同时运行多个MYSQL服务进程,这些服务进程通过不同的监听不同的服务端口来提供服务。这些MySQL实例共用一个Mysql数据库安装程序,使用不同的f配置文件启动,在提供服务时,多实例MySQL在逻辑上看,是各自独立的,他们根据配置文件的设定来获得服务器相应数量的资源。
MySQL多实例的优点:
可以有效利用服务器资源,当单个服务器资源富裕时,可以充分利用资源提供更多的服务。节约服务器资源,若公司资金不是充裕,又想数据库能独立提供服务,还想用主从复制等技术,那么只能选择多实例部署方式。
MySQL多实例的缺点:
存在资源互享抢占的问题,当某个数据库实例并发很高且SQL查询耗时,那整个实例会消耗大量的系统资源,包括CPU、磁盘IO等,导致同一个服务器的其它数据库实例可能响应慢,毕竟它不会像虚拟机一样做到完全隔离。
三、数据库设计步骤1、需求分析
调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。需求分析是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。在需求分析中,通过自顶向下,逐步分解的方法分析系统,分析的结果采用数据流程图(DFD)进行图形化的描述。
2、概念设计
对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。
3、逻辑设计
主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。
4、物理设计
根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。
5、验证设计
在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改。因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。
6、运行与维护设计
在数据库系统正式投入运行的过程中,必须不断地对其进行调整与修改。至今,数据库设计的很多工作仍需要人工来做,除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交互式的半自动化设计。所以数据库设计今后的研究发展方向是研究数据库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设计提供自动或半自动的设计工具和集成化的开发环境,使数据库的设计更加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现软件工程的先进思想和方法。