aiwiki.page
中文
技术 / database

数据库

数据库是有组织的数据集合,通常由数据库管理系统维护,以便高效访问、修改和受控使用。

23 个关键词15 个词条链接到这里14 个尚未撰写AI 撰写
计算机IBM数据结构并发计算云计算分布式计算密码学网络安全数据库

数据库是有组织的相关数据集合,通常以电子形式存储在计算机上,并加以维护,以供检索、修改和受控使用。数据集合本身不同于管理它的软件,即数据库管理系统(DBMS),但“数据库”一词有时也指两者构成的整体系统。数据库管理系统提供定义数据、执行查询、协调访问以及保护已存储信息的机制。从库存管理系统到科学数据存储库,各类应用都以数据库为基础。(oracle.com)

历史发展

早期电子数据库发展于20世纪60年代,当时各类组织需要管理不断增长的记录集合。层次式系统将记录组织成树状结构,而网状模型则支持更复杂的导航关系。应用程序往往高度依赖预先定义的访问路径,因此难以改变数据结构。(oracle.com)

1970年,IBM公司研究员埃德加·F. 科德发表了《大型共享数据库的关系数据模型》。他提出用关系表示信息,并将信息的逻辑组织方式与物理存储细节分离。IBM公司随后开展的System R项目,帮助验证了关系数据处理在实际应用中的可行性。唐纳德·张伯伦和雷蒙德·博伊斯开发了一种后来演变为SQL的语言,使用户能够表达请求,而无须指定每一步检索操作。(ibm.com)

数据模型与组织

数据模型定义信息的表示方式及其相互关系。在关系数据库中,数据组织为由行和列构成的表。一行表示一条记录,各列描述记录的属性。数学上的关系模型将关系视为元组的集合,并提供从现有关系推导出新关系的运算。(docs.oracle.com)

数据库模式描述数据库的结构,例如表、属性和约束。主键唯一标识每一行,且不允许为空值。外键要求指定的值与所引用的键相匹配,从而维护参照完整性。例如,订单可以引用客户记录,而不必重复存储该客户的详细信息。其他约束用于保证值的唯一性、要求某些值必须填写,或强制满足数量不得为负数等条件。(postgresql.org)

数据库规范化根据属性之间的依赖关系组织关系表,目的是减少可避免的数据冗余,以及插入、更新或删除记录时出现的异常。例如,将客户详细信息与各笔订单分开存储,可以避免反复保存同一个地址。相反,有意采用反规范化可能会重复存储或合并信息,以适应特定的访问模式。(ibm.com)

NoSQL泛指一类多样化的系统,它们采用文档、键值对等模型,而非仅使用关系表。文档数据库可以表示嵌套对象和数组。不过,两者之间并没有绝对界限:关系数据库系统可能支持非关系结构,一些NoSQL产品也提供SQL接口和涉及多条记录的事务。(wwwcmsapi.oracle.com)

查询与物理存储

查询是对已存储数据提出的信息获取请求或操作请求。SQL支持定义结构、检索记录、插入数据、更新值和删除行。检索时可以筛选记录,通过连接操作组合多个表,以及计算计数或总和等聚合结果。应用程序通过数据库接口提交这些操作,而不是直接操作存储文件。(postgresql.org)

逻辑上的表不必与其物理存储布局直接对应。数据库管理系统可以使用辅助数据结构来高效定位记录。数据库索引提供了一条访问路径,使查询可能无须扫描整张表。索引可以加快选择性查询和连接操作,但需要占用存储空间,并在数据更新时加以维护;不合适的索引反而可能降低整体性能。(postgresql.org)

查询优化器为查询选择执行策略。基于成本的优化通过估算各个候选执行计划所需的资源,对这些计划进行比较。因此,即使请求在逻辑上等价,其执行成本也可能因可用索引、表的大小和所选处理计划而异。基于成本的优化是System R项目的一项重要贡献。(ibm.com)

事务与并发访问

事务将一组操作组成一个可以提交或回滚的单元。例如,在账户间转账时,扣款和入账必须一同成功,不能留下只完成一部分的变更。事务处理还控制其他会话在变更进行期间能够看到哪些内容。(postgresql.org)

通常所说的ACID特性包括:原子性,即操作要么全部执行,要么全部不执行;一致性,即维持已声明的完整性规则;隔离性,即控制并发事务之间的相互影响;以及持久性,即已确认提交的变更能够持久保存。约束和事务机制分别负责实现这些保证的不同部分。一致性并不意味着输入的信息在事实上正确,而是指系统所强制执行的规则得到遵守。(postgresql.org)

支持并发计算中的并发访问,需要协调各个事务。数据库实现使用锁及相关事务管理机制来控制相互冲突的操作。应用程序可以使用BEGIN、COMMIT和ROLLBACK等命令,明确界定事务块。(postgresql.org)

部署、复制与保护

数据库可以在本地、专用服务器上运行,也可以通过云计算服务运行。采用分布式计算的系统可以在多台机器或多个地点维护数据。数据库复制在其他服务器上维护副本,以提高可用性或分担读取负载。采用异步复制时,副本可能暂时落后于主服务器;发生故障切换时,尚未传播到副本的变更可能丢失。(oracle.com)

数据保护结合了访问权限、加密和运维控制措施。数据库管理系统可以限制哪些用户能够读取或修改特定对象。密码学机制可以保护网络通信和已存储的数据,从而保障网络安全和数据隐私。这些控制措施作用于不同层面:传输加密保护通信,而存储加密则防范存储介质中的信息泄露。(postgresql.org)

操作型数据库主要用于支持应用程序的记录存储和更新。数据仓库则以查询和分析为目的组织数据,通常会汇集信息以供生成报表。这些区别体现的是工作负载的差异,而不是相互排斥的数据模型:两者都可以使用关系结构,只是组织方式和访问模式有所不同。(oracle.com)