通过上几篇文章我们讲解了如何安装 PostgreSQL 数据库软件和 pgAdmin4 图形化管理工具。
接下来几篇文章我们将继续学习如何通过 pgAdmin4 管理工具图形化创建和连接 PostgreSQL 数据库。
今天这篇文章首先让我们来了解下什么数据库和数据库管理系统,对数据库和数据库管理系统有一个初步印象和了解。
科技日报之前发布了中国受制于国外的关键技术之一,即数据库技术,被列为排名第35位的"卡脖子技术"。
数据库作为当今社会各类信息系统的核心软件,以其技术门槛之高、研发周期之长、工程实现要求之高而被誉为“基础软件皇冠上的明珠”。
在文章《数据库管理系统:中国还在寻找“正确打开方式”》中提到,全球最受欢迎的两种数据库管理系统分别是Oracle和MySQL,它们都是甲骨文公司的产品。
竞争对手包括IBM、SAP以及微软公司的产品。美国公司如甲骨文、IBM、微软、Teradata、SAP等在数据库管理系统市场上占据绝大部分份额。
尽管中国国产数据库管理系统也存在,但市场份额相对较小,其稳定性和性能尚未完全获得市场认可。在对极端稳定性和可靠性、实时性要求较高的行业,如银行、保险、证券、电信、交通和电力领域,Oracle 等国外数据库产品依然占据主导地位。
那么“数据库”这项关键技术为什么总被西方“卡脖子”呢?
其实准确的说,被“卡脖子”的应该是数据库管理系统(DBMS)。
数据库(Database)是一个用来存储、管理和检索数据的结构化集合。
这些数据通常按照一定的规则和模式进行组织,以便有效地存储和检索信息。
数据库可以包含各种类型的数据,例如文本、数字、图像、音频和视频等。
数据库用于在各种应用和系统中保存和维护数据,以便在需要时能够快速、可靠地访问和操作这些数据。
数据库管理系统(Database Management System,DBMS)是一种软件工具,用于管理数据库的创建、访问、维护和操作。
它允许用户定义数据结构、存储数据、查询数据以及更新数据,同时提供数据完整性、安全性和一致性的保障。
DBMS充当了数据库与应用程序之间的中介,使应用程序能够与数据库交互而不必深入了解底层数据库的细节。
常见的数据库管理系统包括:
NoSQL数据库管理系统:这些数据库不使用传统的关系模型,而是采用其他数据模型,如文档、键-值、列族或图形模型。它们适用于不同类型的数据和应用场景。一些知名的NoSQL数据库包括MongoDB、Cassandra和Redis。
分布式数据库管理系统(DDBMS):这些系统用于分布式环境,可以在多个计算机之间存储和管理数据,以提供高可用性和可伸缩性。Hadoop、Couchbase和Amazon DynamoDB是一些例子。
内存数据库管理系统(IMDBMS):这些数据库将数据存储在内存中,以加速数据访问和处理。一些内存数据库包括Redis、Memcached和SAP HANA。
数据库和数据库管理系统在许多领域都起到了关键作用,包括企业数据管理、电子商务、金融、医疗保健、社交媒体和许多其他应用程序。
无论是存储大规模的业务数据还是个人信息,数据库都是一个不可或缺的技术基础,它使数据的可靠存储和高效访问成为可能。
为了方便理解,让我们用一个生动形象的类比来说明数据库和数据库管理系统。
想象一家图书馆是一个数据库,而图书管理员就是数据库管理系统。这家图书馆存放了大量的书籍,这些书籍代表了不同的数据。现在,让我们来解释一下这个类比:
数据库(图书馆):图书馆就像一个数据库,它是一个有序的、结构化的存储地方,用来保存各种书籍(数据)。每本书都有它自己的位置和编号,类似于数据库中的表格和记录。
数据库管理系统(图书管理员):图书管理员是数据库的管理者,他们负责书籍的分类、索引、存储、借阅和还书。他们确保图书馆中的书籍始终有序可查,这就像数据库管理系统确保数据库中的数据有序、可访问和安全。
数据(书籍):每本书都代表了数据库中的一个数据项。这些书籍可以包括小说、教科书、百科全书等各种类型,就像数据库中可以包含文本、图像、音频等不同类型的数据。
查询(借阅和查找书籍):当读者需要查找一本书时,他们与图书管理员交互,提供书名或主题,然后图书管理员协助他们找到所需的书。这就像数据库中的查询,用户可以使用查询语言(例如SQL)来检索特定的数据。
数据完整性和安全性:图书管理员负责确保书籍不会遗失、损坏或被盗。同样,数据库管理系统也负责维护数据的完整性和安全性,以防止数据损坏、未经授权的访问或丢失。
这个类比可以帮助你理解数据库和数据库管理系统的基本概念。
数据库是一个存储和组织数据的地方,而数据库管理系统则起到类似于图书管理员的角色,使数据容易管理和访问。
那么看起来数据库管理系统的工作原理并不难理解,难点在哪里呢?
速度和可靠性,兼顾是难题
在查询银行账户时,我们并不需要担心数字是来自哪台计算机或哪块硬盘,这个繁重的任务由数据库管理系统(DBMS)负责处理。
DBMS可以被类比为图书管理员:负责查找书籍、存储它们、提供访问……这听起来容易,但当图书馆的规模非常庞大,而书籍散布在遥远的书架上时,管理变得相当复杂。
在数据库开发与实施方面有丰富经验的IBM分析领域架构师罗曦光举了一个例子——当用户对数据进行修改时,相关存储区域会被锁定,其他用户必须排队等待。如果DBMS的数据存储不合理,这将导致严重的时间延迟。在理想的情况下,数据操作就像几十只手同时弹奏一架钢琴,各自发挥,互不干扰。
“数据库管理系统,特别是关系型数据库管理系统(RDBMS)的方法论,原理上非常清晰;其功能与常见的图书管理系统类似。但是,当数据量庞大,达到了TB和PB级别,DBMS的性能保持不下降就成为了一项巨大挑战。”罗曦光指出。
以一个普通的大型网站为例,每秒要处理成千上万的查询请求,数据库需要同时执行数十个查询任务,而且必须保持极短的响应时间。
“网络用户发送请求,期望在瞬间获得结果。如果DBMS表现不佳,响应时间延迟到了10秒或20秒,用户可能会失去耐心,甚至数据库可能会经常出现故障。”罗曦光解释道,要实现永不故障、达到高可用性,需要大量专业技术。
数据库在当今的信息化社会中有着非常广泛的应用场景,涵盖了几乎所有行业和领域。
日常生活中,我们每天都在接触和使用数据库,但是通常我们并不会察觉到,以下是数据库在当今社会不同领域中的重要应用,来看看我们生活中每天都会用到软件中都有哪些在和数据库打交道:
企业和商业:
生产制造:
医疗保健:
3.1 电子病历管理:数据库用于存储和管理病患的电子病历。这包括患者的医疗历史、病历记录、实验室结果、影像资料和处方信息。医生和护士可以访问这些电子病历,以更好地了解患者的病情,提供精确的诊断和治疗建议。
3.2 医疗图像存储与管理:数据库用于存储医疗图像,如X射线、CT扫描、MRI和超声图像。这些图像可以随时访问,用于诊断和治疗决策。医疗图像数据库还支持图像的备份、恢复和分享。
3.3 药物管理:数据库用于追踪和管理药物库存、处方信息和药物相互作用。它可以确保患者获得正确的药物,避免过量或药物相互作用,并提供警报和提醒功能,以确保患者按时服药。
3.4 医疗设备监控:数据库用于监控医疗设备的状态和性能,以确保它们正常运行。医院可以使用数据库来维护设备、预测设备故障和计划维修。
3.5 医疗研究和数据分析:数据库用于存储大规模医疗研究数据,包括临床试验数据、患者群体数据和基因组数据。这些数据可以用于疾病研究、流行病学研究和新药开发。
3.6 患者预约和排队系统:数据库支持医院和诊所的患者预约系统,使患者可以在线预约医疗服务,减少等待时间和提高医疗流程的效率。
3.7 财务管理和计费:数据库用于管理医疗机构的财务信息,包括患者账单、保险索赔、成本核算和预算。这有助于医疗机构有效管理财务流程。
3.8 患者跟踪和管理:数据库支持患者管理系统,用于跟踪患者的治疗计划、预约和健康状况。医疗保健提供者可以使用数据库来提供更个性化的医疗护理。
3.9 疾病监测和防控:数据库在流行病学研究中用于监测疫情爆发,跟踪疾病传播和协助制定防控策略。这对于应对传染病爆发至关重要,比如新冠疫情期间的“健康码”系统。
3.10 在线医疗服务平台:数据库支持在线医疗服务平台,如远程诊断、电子处方和患者在线咨询。这种数字化平台提供了更便捷的医疗服务方式。
教育管理:
电子商务:
社交媒体:
金融证券:
7.1 客户账户管理:
- 银行和金融机构使用数据库来管理客户信息、账户和交易历史。这有助于快速查询客户数据、处理交易、核实身份和提供个性化的金融服务。数据库还支持客户关系管理(CRM)系统,以改善客户体验和提供更好的服务。
7.2 账户交易和结算:
- 数据库在金融交易和结算中扮演关键角色。它们用于存储各种交易类型,包括股票、外汇、期货和债券交易。数据库支持实时交易监控、结算和清算流程,确保交易的准确性和透明性。
7.3 风险管理:
- 银行和金融机构使用数据库来识别、量化和管理风险。这包括信用风险、市场风险和操作风险。数据库存储大量的市场数据,用于风险模型的开发和风险监控。
7.4 外汇交易和货币管理:
- 外汇市场是高度动态和复杂的,数据库用于存储货币汇率数据、外汇交易订单和历史市场行情。金融机构依赖数据库来执行外汇交易、进行汇率分析和管理外汇风险。
7.5 证券交易和投资组合管理:
- 证券交易数据库用于存储股票、债券、衍生品和其他金融工具的信息。投资管理公司使用数据库来跟踪投资组合的表现、执行交易和进行风险分析。
7.6 市场数据分析:
- 数据库用于存储大量的市场数据,包括历史市场价格、成交量和市场指数。金融分析师和交易员使用这些数据来制定交易策略、进行技术分析和市场趋势预测。
7.7 合规和监管报告:
- 金融机构必须遵守严格的监管要求,并定期提交合规报告。数据库用于存储交易数据、客户信息和其他关键信息,以便生成合规性报告并进行监管审计。
7.8 网上银行和手机银行:
- 数据库支持在线银行和移动应用,允许客户访问其账户、查看交易历史、进行转账和支付账单。这些应用程序依赖数据库来提供安全、实时的服务。
7.9 金融研究和模型:
- 金融研究人员使用数据库来存储和分析金融数据,以开发金融模型、进行风险评估和市场预测。数据库支持复杂的数据挖掘和量化分析。
7.10 客户支持和投诉管理:
- 银行和金融机构使用数据库来跟踪客户投诉、解决问题和提供支持。这有助于改善客户满意度和快速响应客户需求。
政府行政管理:
8.1 公共安全和执法:
- 数据库用于存储犯罪数据、案件记录、嫌犯信息和执法活动。执法部门使用数据库来调查犯罪、追踪罪犯和维护公共安全。
8.2 身份验证和身份管理:
- 政府机构使用数据库来管理公民身份信息、护照数据、签证信息和身份认证。这有助于确保国家边境安全、防止身份盗窃和支持合法移民。
8.3 选民登记和选举管理:
- 数据库用于选民登记、选民名单管理和选举投票。这支持政府机构进行选举、公投和政治参与管理。
8.4 行政档案管理:
- 政府部门使用数据库来管理行政档案、政策文件、政府决策和政府文件。这有助于政府制定政策、履行监管职责和提供公共信息。
8.5 财政和税收管理:
- 数据库支持财政部门的财政记录、税收数据、纳税人信息和预算管理。这有助于政府管理财政资源和确保税收征管。
8.6 土地管理和城市规划:
- 土地数据库用于城市规划、地产管理、土地使用规划和土地所有权记录。政府使用数据库来管理土地资源和城市发展。
8.7 政府卫生和医疗管理:
- 数据库用于卫生部门的患者记录、疫情监测、卫生数据和医疗资源管理。这支持政府提供卫生服务和应对公共卫生挑战。
8.8 政府教育和学生管理:
- 数据库支持教育部门的学生记录、学术数据、教育计划和学校资源管理。政府使用数据库来管理教育体系和支持学生。
8.9 政府社会福利管理:
- 数据库用于社会福利部门的福利记录、社会服务数据和福利支持。政府机构使用数据库来提供社会服务和援助。
8.10 政府危机响应和紧急情况管理:
- 数据库支持政府机构的危机响应、紧急情况管理和自然灾害应对。这有助于政府应对紧急情况和保障公众安全。
交通管理:
数据库在交通领域的应用非常广泛,包括民航、高铁、船舶和车辆等多个领域。以下是一些交通领域中数据库的重要应用:
9.1 民航(航空交通管理):
航班信息管理:数据库用于存储和管理各个航班的信息,包括飞行计划、出发和到达时间、机场信息以及乘客和货物信息。
机场运营:机场管理人员使用数据库来协调和优化机场资源,包括航站楼、跑道、停机位等。
9.2 高铁(铁路交通管理):
9.3 船舶(海运交通管理):
9.4 车辆(道路交通管理):
司法调查:
军事国防安全:
11.1 情报收集和分析:
11.2 作战指挥和军事行动支持:
11.3 安全和情报共享:
11.4 军事后勤管理:
11.5 卫星和导航系统:
11.6 军事培训和模拟:
11.7 国土安全监测:
11.8 军事医疗管理:
11.9 网络和信息安全:
- 数据库用于监测网络活动、网络威胁和信息安全事件。这有助于保护军事通信和信息系统免受攻击。
11.10 战略规划和政策制定:
- 数据库支持国家安全战略规划和政策制定。政府机构可以使用数据库来存储国家安全政策文档、历史数据和决策支持信息。
科学研究:
社会保险:
13.1 社会保险参保人员管理:
13.2 社会保险金发放:
13.3 医疗费用管理:
13.4 社会保险政策管理:
13.5 社会保险数据分析:
13.6 社会保险欺诈检测:
13.7 养老金和退休规划:
13.8 社会保险信息门户:
13.9 工伤和事故管理:
- 数据库用于记录和管理工伤和事故报告,包括事故详情、受伤员工信息和工伤索赔处理。这有助于社会保险机构追踪工伤事件和提供赔偿。
13.10 社会保险审计和合规性:
- 数据库支持社会保险审计,用于检查社会保险金的合规性和准确性。它存储审计数据、审计结果和合规性报告。
这些应用场景突显了数据库在社会保险领域的关键性,有助于社会保险机构提供更好的服务、管理参保人员信息和确保社会保险金的准确分配。数据库在社会保险领域中发挥着关键作用,促进了社会保障制度的可持续性和公平性。
这些应用场景突显了数据库的多样性和广泛性,数据库在信息社会中起到了关键作用,使数据的存储、检索和分析变得更加高效和可靠。
数据库的功能和可扩展性使其能够满足各种领域的特定需求,帮助组织更高效地管理和利用数据。
它们不仅提供了数据的组织和管理,还支持决策制定、研究和创新。
正因为数据库安全稳定的运行对于社会系统各个层面的高效运行和国家安全有着重大影响,数据库一旦遭到黑客攻击和入侵,可能带来的影响和后果也将是灾难性的:
数据泄露:数据库遭到入侵可能导致敏感数据泄露,包括个人隐私信息、商业机密、政府机构数据等。这可能损害个人隐私,暴露商业机密,以及威胁国家安全。
经济损失:数据库攻击可能导致经济损失,包括金融诈骗、财务损失和信用卡盗刷。这对个人和企业经济造成直接损害。
社会混乱:大规模数据库攻击可能导致社会混乱。例如,电网、供水、天然气、石油等能源系统和民航、高铁、汽车、船舶交通系统,电信、移动、联通、广电等运营商移动通信网络 等关键基础设施的数据库遭到攻击会瘫痪社会运行。
国家安全威胁:数据库攻击对国家安全构成威胁。军事机密、国际关系数据、国土安全信息等可能被泄露,对国家的安全和国际关系产生负面影响。
声誉受损:企业和政府机构遭到数据库攻击后,声誉可能受损。公众对于数据泄露和安全问题的担忧可能导致信任丧失。
关键服务中断:数据库攻击可能导致关键服务的中断,包括医疗服务、教育、电信等。这会危及个人生命和社会正常运行。
国际竞争力下降:国际投资和合作需要数据安全保障。数据库攻击可能降低中国的国际竞争力,影响国际合作和商业机会。
正因为如此,数据库对于社会运行、国家安全和国际竞争力都具有严重的影响。世界各国之所以将数据库技术视为关键基础信息科技,就是因为它对国家的信息安全和社会稳定高效运行至关重要。
因此,数据库技术被视为我们国家的战略性关键科技之一,等同于芯片和半导体技术在技术竞争中的地位。引起了国家重视和投资。
随着国内技术发展和自主创新,数据安全和隐私保护意识的不断增强,云计算和大数据的发展促进了中国的各个行业,包括金融、医疗、制造、零售等,正在积极进行数字化转型。这促使了数据库技术的需求增加,以支持大规模数据的管理和分析。中国国内的数据库发展情况呈现出积极的趋势,许多国内企业和研究机构开始积极参与数据库系统的研究和开发。
可喜的是,我们国内已经出现了一些本土数据库软件产品,以满足国内不同行业和应用领域的需求:
只要持续在资金、技术和人才培养上进行投入,我们国产数据库克服卡脖子问题并实现突破是有希望的。这种综合性的支持和努力可以推动中国数据库技术不断进步,提高国内数据库产品的竞争力,进一步满足国内外广泛应用的需求。这也有望推动中国数据库行业在国际舞台上崭露头角,成为全球数据库领域的重要参与者。