数据库实例是什么

数据库实例是由一系列的后台进程以及为系统为这些进程分配的内存块组成的。实例可以理解为是我们访问数据库的通道。它有底层软件组织,也可以理解为数据库引擎,用来进行创建、查询、更新和删除数据。除此之外还有内存块,用来存放中间数据。

一、数据库实例简介

数据库实例是由一系列的后台进程以及为系统为这些进程分配的内存块组成的。众所周知,所谓的数据库其实并没有存放在数据库管理系统中,而是以各种文件的形式存放在电脑的物理磁盘上。数据库管理系统无非是提供的数据管理的工具、入口或平台来帮助用户进行数据处理。

实例可以理解为是我们访问数据库的通道。它有底层软件组织,也可以理解为数据库引擎,用来进行创建、查询、更新和删除数据。除此之外还有内存块,用来存放中间数据。比如,我们在读取数据时,实例会调用它的数据库引擎来查询和读取磁盘上文件里的数据,将这些数据读到告诉缓冲池(内存)中,然后再提交给用户。所以有的说实例就是数据库服务引擎也可以这么理解。

数据库实例就是访问数据库的应用程序,是位于用户和操作系统之间的一层数据管理软件。在Mysql中就是mysql的进程。用户对数据库中的文件(数据)的增、删、查、改以及包括数据定义、数据查询、数据维护、数据库运行控制等任何的操作直接通过文件系统操作数据库文件是不可能也是不允许的,这就需要数据库实例的帮助,即这些操作都是在数据库实例下进行的,数据库实例就是用户(程序员)访问数据库的通道,应用程序只有通过数据库实例才能和数据库打交道。数据库实例这个应用程序实现了对数据库操作的封装,同时也实现了SQL语言的解析,让用户用SQL语言这种简单直接的方式去操作数据库的内容。

通常来说一个数据库实例对应一个数据库。但是不同数据库的实例设置稍有不同。比如我们常用的SQL Server数据库时候一个实例下可以有多个数据库。而Oracle则每个实例下只能有一个数据库。

实例的作用:

  • 数据库提供给用户的一个通道,一个处理磁盘文件上数据的通道。
  • 数据安全性方面的考虑。有时候我们在给用户规划应用软件时,需要保证客户数据与其他数据完全分离,这时候就可以通过实例来解决。新建实例,并将该应用软件的数据库单独布置在一个实例下即可。

二、mysql多实例简介

多实例就是在一台服务器上同时开启多个不同的数据库服务端口(例如3306、3307),同时运行多个MYSQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。这些MySQL实例共用一个Mysql数据库安装程序,使用不同的my.cnf配置文件启动,在提供服务时,多实例MySQL在逻辑上看,是各自独立的,他们根据配置文件的设定来获得服务器相应数量的资源。

MySQL多实例的优点:

可以有效利用服务器资源,当单个服务器资源富裕时,可以充分利用资源提供更多的服务。节约服务器资源,若公司资金不是充裕,又想数据库能独立提供服务,还想用主从复制等技术,那么只能选择多实例部署方式。

MySQL多实例的缺点:

存在资源互享抢占的问题,当某个数据库实例并发很高且SQL查询耗时,那整个实例会消耗大量的系统资源,包括CPU、磁盘IO等,导致同一个服务器的其它数据库实例可能响应慢,毕竟它不会像虚拟机一样做到完全隔离。

三、数据库设计步骤

1、需求分析

调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。需求分析是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。在需求分析中,通过自顶向下,逐步分解的方法分析系统,分析的结果采用数据流程图(DFD)进行图形化的描述。

2、概念设计

对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。

3、逻辑设计

主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。

4、物理设计

根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。

5、验证设计

在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改。因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。

6、运行与维护设计

在数据库系统正式投入运行的过程中,必须不断地对其进行调整与修改。至今,数据库设计的很多工作仍需要人工来做,除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交互式的半自动化设计。所以数据库设计今后的研究发展方向是研究数据库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设计提供自动或半自动的设计工具和集成化的开发环境,使数据库的设计更加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现软件工程的先进思想和方法。

延伸阅读

数据库概念

  1. 数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
  2. 数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。

开发者生产力工具大全

从人工到自动化,从重复到创新,技术演进的历程中,都伴随着开发者工具类产品的发展,所以这里整理近几年口碑良好,使用广泛的22款程序员生产力工具。

1.研发项目管理与协作:PingCode

优点:让工作推进、进度/问题追踪、团队协作变得更简单,2021年研发项目管理榜单TOP1(36Kr)。

简介:覆盖研发全生命周期,广泛用于需求、版本、项目(敏捷/kanban/瀑布)、测试、缺陷、文档、效能等环节管理与协作。并且集成github、gitlab、jinkens等主流工具,支持私有部署、在线等多种部署使用方式。

教程/官网

2.任务管理/甘特图制作工具:Worktile

优点:功能成熟、性价比高、国内市场占有率最高的团队任务工具;

简介:在功能上Worktile 是一个工具集合,它具备OKR目标管理、项目管理、项目集管理、项目计划、项目风险、项目成本管理、企业网盘、审批、简报等能力。并且具备强大的自定义能力,能够配置出符合各种项目团队的流程、表单、字段、数据报表,以及具备丰富的模板市场。

官网/教程

3.分布式版本控制系统:Git

优点:分布式开发、速度快、灵活

简介:Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

教程/官网

4.数据库管理工具:Navicat

优点:高效、安全,最好用的数据库管理工具。

简介:“Navicat”是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库,它与阿里云、腾讯云、华为云、Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud 和 MongoDB Atlas等云数据库兼容。

官网/教程

其余工具可通过《神级程序员都用什么工具?程序员生产力工具大全 》查看,以上均整理自该文章。

文章标题:数据库实例是什么,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/47632

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年3月24日 下午12:03
下一篇 2023年3月24日 下午12:27

相关推荐

  • 微软project能做什么

    微软project能做:1、项目规划;2、沟通与协作;3、共同创作;4、报告;5、路线图;6、时间表;7、资源管理。项目规划是指,使用甘特图和看板来计划工作。Microsoft Project 的规划功能比 Microsoft Planner 的功能强大得多。 一、微软project能做什么 1、项…

    2023年2月22日
    18500
  • Web前端是什么与后端的关系是什么

    Web前端是指构建和设计网站用户界面的技术和工具,它通常涉及使用HTML、CSS和JavaScript等技术来开发用户交互和视觉效果。Web后端是指处理网站后台功能的技术和工具。Web前端和后端通常协同工作,构成一个完整的Web应用程序。 一、Web前端是什么 Web前端是指构建和设计网站用户界面的…

    2023年5月8日
    5000
  • 消息代理与RPC框架有什么区别和联系

    区别是:消息代理又称消息队列,是面向队列的,主要维护客户端和服务端之间的消息,消息队列是在消息的传输过程中保存消息的容器。RPC是远程过程调用的缩写形式。RPC框架也是有消息队列的,只不过不需要使用消息队列的东西,只需要调用就好。

    2023年2月15日
    3600
  • gmail邮箱注册

    Gmail邮箱注册步骤:1、打开谷歌官方帐号登录页面,点击创建帐号;2、在谷歌帐号创建页面,输入您要创建的Google帐号信息;3、验证您的手机号码等。在创建Google账号时,会有Gmail邮箱的输入设置选项,Google账号创建完毕后,即可登录使用Gmail邮箱帐号。 一、Gmail邮箱注册步骤…

    2023年3月16日
    28600
  • AI 驱动的超分辨技术落地实践

    近年来,随着深度学习技术的快速发展,基于AI的超分辨技术在图像恢复和图像增强领域呈现出广阔的应用前景,受到了学术界和工业界的关注和重视。但是,在RTC视频领域中,很多AI算法并不能满足实际场景下的应用需求。本文将着眼于AI技术从研究到部署的落地问题,分享超分辨技术在RTC领域落地应用所面临的机遇与挑…

    2022年3月17日
    34300
  • 如何推进项目制管理

    推进项目制管理的步骤:1、定义项目组织结构;2、设定明确的项目目标;3、制定沟通计划;4、定义角色和职责;5、制定风险管理计划;6、设定项目绩效基准等。定义项目组织结构时需要创建一个项目组织结构图,指定每个团队成员的角色和层次结构。 1、定义项目组织结构 这是管理项目时必须考虑的第一件事。这个项目组…

    2023年2月24日
    8000
  • okr和kpi的区别是什么

    okr和kpi的区别是:1.本质不同;2.核心原理不同;3.实操过程不同;4.保密性不同;5.利益关联不同。整体对比来看,okr相比kpi更注重考核过程,概括性理解就是okr控制过程,而kpi确保结果。通常okr不能单独适合,要结合kpi。

    2022年11月16日
    11.2K00
  • 面向对象编程和面向切面编程的区别

    面向对象编程和面向切面编程的区别是:面向对象程序编程作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。

    2023年2月13日
    14100
  • 网线 8 芯线各自作用是什么

    网线 8 芯线各自作用分别是:输出数据 (+)、输出数据 (-)、输入数据 (+)、 保留网络传输、保留网络传输、输入数据 (-)、保留网络传输、保留网络传输。网线里面的8芯线是由4对不同颜色对绞在一起的传输线组成的,所以也被称为双绞线。

    2023年1月27日
    24200
  • PHP、Python、 Ruby 在Web 开发的区别

    PHP、Python和Ruby都是Web开发中常用的脚本语言,但是它们有一些区别,主要是:一、异常处理区别;二、关系型数据库抽象的区别;三、函数式语言特性区别。PHP是一种服务器端脚本语言,用于创建动态Web页面,而Python和Ruby都是通用编程语言,可以用于Web开发、数据分析、人工智能等领域…

    2023年4月6日
    4000

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部