数据库管理全解析:从规划到维护
1. 数据库空间分配与结构
在数据库管理中,为数据表、索引和事务日志分配独立的空间是常见做法。数据库管理员(DBA)需要准确估计每个组件的大小。若分配空间过少,会影响性能;分配过多,则会造成磁盘容量的浪费。虽然多数系统提供了后续添加空间的工具,但提前做好精确估计至关重要。
对于数据表空间的估计,主要思路是确定平均每行的字节大小,再乘以表中预计的行数。不过,不同的数据库管理系统(DBMS)存储数据的方式略有差异,有些还会为每行额外添加字节。可以参考各DBMS的文档获取详细信息。更精确的方法是创建一个临时数据库,在每个表中插入几行数据,然后根据实际平均空间来预估未来需求。
索引和回滚日志所需的空间取决于具体的DBMS和计算机系统。若需要高精度的估计,需查阅特定DBMS的文档和支持工具。同时,索引和日志的空间还与应用程序中定义的事务数量和长度有关。例如,用于事务处理的数据库的事务日志通常要比主要用于决策支持和数据检索的数据库的日志大得多。大型DBMS一般提供了估计和监控存储空间的工具。
数据库结构方面,虽然每个DBMS有不同特点,但SQL标准定义了数据库的总体结构。用户在单个数据库实例中定义,并由DBA授予权限。模式(Schema)作为命名空间的容器,可避免表名重复。最初,模式是为每个用户创建独立的表空间,如今可用于各种目的。目录(Catalog)是SQL 99标准提出的概念,旨在将相关模式放在一个容器中,便于查找和访问,但目前很少有DBMS支持。
用户和应用程序通常被分配到默认模式,该模式下的表和视图可直接访问(需考虑安全权限)。若要访问不同模式下的表或视图,则需使用完整名称,包括模式名(可能还有目录名)。例如,