IB/第 4 组/计算机科学/数据库/基本概念
计算机存储数据。数据可以是多种不同类型中的任何一种(例如数字、文本、布尔值等),但对人类来说没有内在含义。当数据被放到赋予其含义的上下文中时,它就变成了信息。
例如:32 23 11 08 40 17 是数据,但它没有任何意义。
如果我们为该数据提供一个上下文,它就变成了信息,例如:
- 上周六 6 支足球队的客场和主场得分
- 今天中午全球 6 个城市的摄氏度
- 最近 6 位经过巴黎埃菲尔铁塔检票口的人的年龄(岁)。
因此:信息 = 数据 + 上下文
严格来说,数据库存储的是数据,而不是信息。然而,术语通常被松散地使用,因为人们假设存储在数据库中并从数据库中检索的数据是在适当上下文中被人类解释的。
"信息系统(IS)是任何用于收集、组织、存储和传播信息的组织系统。
"信息系统(IS)是由相互作用以生成信息的组件组成的群体。"[1]
"...信息系统...由六个组件组成:硬件、软件、数据、人员、网络和流程。"[2]
因此,信息系统是一个比数据库更广泛的术语,因为它指的是一个完整的系统,尽管许多(如果不是大多数)信息系统在其整体结构中包含一个或多个数据库。
在不使用数据库的情况下,会遇到几个独特的问题
1. 数据大小:在电子表格中存储少量数据是可以管理的;但是,当数据变得很庞大时,电子表格解决方案就不可行了。如果数据记录数达到数百万,将数据存储在多个电子表格中会导致速度问题,这使得查找特定记录非常耗时。
2. 更新数据的简便性:多个用户无法同时编辑同一个文件。因此,其他人必须等待文件变得可用才能更新,从而导致时间浪费。
3. 准确性:由于没有内置数据验证,因此电子表格或文件中的数据输入容易出错。用户可能会输入错误的拼写、日期或金额,这使得维护数据准确性变得具有挑战性。
4. 安全性:存储在文本文件或电子表格中的数据无法得到充分保护。未经授权的用户可以访问和读取信息,这使得这些存储方法不适合需要隐私的应用程序,例如银行、医疗保健或薪资部门。
5. 冗余:在使用文本文件或电子表格时,数据重复是可能的。限制添加多个数据副本很困难,会导致准确性问题。管理和更新多个副本并不是一件容易的事。
6. 不完整的数据:由于缺乏验证,某些数据可能不被认为重要,因此未输入到文件中。这会损害数据完整性。
为了避免与将数据存储在文本文件或电子表格中相关的上述问题,数据库是必要的。
事务是对数据库执行的一项工作单元。事务是按逻辑顺序完成的一系列工作单元,无论是用户手动执行的,还是由某种数据库程序自动执行的。
事务是对数据库进行的一个或多个更改的传播。例如,如果你正在创建记录、更新记录或从表中删除记录,那么你正在对该表执行事务。控制这些事务对于确保数据完整性和处理数据库错误非常重要。
例如,为了确保在两个帐户之间转移资金时数据的一致性,有必要完成两个操作(借记一个帐户并贷记另一个帐户)。除非这两个操作都成功执行,否则该事务将被回滚。
在数据库的上下文中,一致性是指不能写入会违反数据库自身有效数据规则的数据。如果发生某些试图引入不一致数据的事务,整个事务将被回滚,并向用户返回错误。
数据完整性是指数据的整体完整性、准确性和一致性。这可以通过两个实例之间或两个数据记录更新之间的更改不存在来表明,这意味着数据是完整的且未更改。数据完整性通常在数据库设计阶段通过使用标准程序和规则来强制执行。数据完整性可以通过使用各种错误检查方法和验证程序来维护。
事务包括在数据库管理系统(或类似系统)中针对数据库执行的一项工作单元,并以独立于其他事务的连贯可靠的方式处理。
数据库环境中的事务有两个主要目的
1. 提供可靠的工作单元,允许从故障中正确恢复,并在系统故障的情况下保持数据库一致性,即使在执行停止(完全或部分)并且对数据库的许多操作仍未完成的情况下,其状态也不清楚。
2. 在并发访问数据库的程序之间提供隔离。如果没有提供这种隔离,程序的结果可能会有错误。
根据定义,数据库事务必须是原子性的、一致性的、隔离的和持久的。
数据库从业人员通常使用首字母缩略词 ACID 来指代数据库事务的这些属性。
事务型数据库是指一个 DBMS,其中对数据库的写事务能够被回滚,如果它们没有被正确完成(例如,由于电源或连接丢失)。
大多数现代关系数据库管理系统都属于支持事务的数据库类别。
在数据库系统中,事务可能包括一个或多个数据操作语句和查询,每个语句和查询都读取和/或写入数据库中的信息。
数据库系统用户认为数据的完整性和一致性非常重要。
简单的交易通常以类似于以下模式的语言(如 SQL)发布到数据库系统,并包含在交易中:
开始事务 执行一组数据操作和/或查询 如果没有错误发生,则提交事务并
结束它
如果发生错误,则回滚事务并结束它 如果在事务执行期间没有发生错误,则系统将提交事务。
事务提交操作将应用事务范围内的所有数据操作,并将结果持久化到数据库中。
如果在事务期间发生错误,或者用户指定了回滚操作,则事务内的数据操作不会持久化到数据库中。
在任何情况下,都不能将部分事务提交到数据库,因为这会导致数据库处于不一致状态。
在内部,多用户数据库通常使用事务 ID 或 XID 来存储和处理事务。
除了上面记录的简单方法之外,还有多种不同的实现事务的方法。例如,嵌套事务是事务
包含在其中以启动新事务(即子事务)的语句。多级事务是嵌套事务的一种变体,其中子事务发生在分层系统体系结构的不同级别(例如,数据库引擎级别的一个操作,操作系统级别的一个操作)[2] 另一种类型的事务是补偿事务。
并发控制是数据库管理系统 (DBMS) 的一个概念,用于解决多用户系统中可能出现的对数据同时访问或修改的冲突。如果两个或多个用户尝试同时更新数据库内容,则会使用锁和分区来阻止这种情况发生。从而实现更高的并发性。
ACID 代表
- 原子性 确保工作单元中的所有操作都成功完成。否则,事务将在故障点中止,并且所有先前操作将回滚到其先前状态。
- 一致性 确保在成功提交事务后数据库状态会正确改变。
- 隔离性 使事务能够独立且透明地彼此运行。
- 持久性。 确保在发生系统故障的情况下,已提交事务的结果或影响会持续存在。
查询功能 查询是向数据库表或表组合请求数据或信息的请求。此数据可以作为结构化查询语言 (SQL) 返回的结果生成,也可以作为图形、图表或复杂结果生成,例如来自数据挖掘工具的趋势分析。
ADD、DELETE UPDATE 都是可以对数据库执行的功能
UPDATE 查询用于修改表中现有的记录。可以使用 WHERE 子句与 UPDATE 查询一起更新选定的行,否则所有行都会受到影响。
数据验证是一种确保用户输入的是他们想要输入的方式,换句话说,确保用户在输入数据时不会出错。... 验证是对输入数据进行检查,以确保其符合系统的要求,从而避免数据错误。数据验证是确保数据有效的过程。数据验证规则用于数据验证过程,以确保有效性。数据有效性大多指数据的意义和正确性。数据验证是在原始文档上进行,而数据验证是在副本上进行。这是数据验证和数据验证之间的主要区别。