本章主要介绍了SQL数据库的创建与管理,包括数据库的组成与文件类型,以及数据库对象和系统数据库的角色。
在SQL数据库的管理中,删除数据库是一项常见的操作,但并非在任何情况下都能顺利完成。当数据库处于以下状态时,删除操作可能会被阻止:
1. **数据库正在使用**:如果数据库正服务于某个应用程序或者有用户在访问,那么该数据库不能被删除,因为这可能导致数据丢失或中断服务。
2. **用户正在操作**:如果有用户正在进行数据的插入、更新或查询等操作,删除数据库会被系统阻止,以保护用户的操作不受影响。
3. **数据复制期间**:在数据库进行备份、恢复或复制操作时,删除数据库也是不允许的,因为这可能破坏复制过程,影响数据一致性。
接下来,我们深入探讨数据库的构成与管理:
**3.1 数据库组成与文件**
数据库在SQL Server 2000中由一组操作系统文件来表示。主要分为三类文件:
- **主数据文件 (Primary)**:存放数据库的主要数据,每个数据库至少有一个,扩展名为.MDF。
- **次数据文件 (Secondary)**:可选,用于额外的数据存储,扩展名为.NDF。
- **事务日志文件 (Transaction Log)**:记录所有事务信息,每个数据库至少有一个,扩展名为.LDF。
数据库通常由一个主数据文件和一个事务日志文件构成,但可以根据需求添加次数据文件和更多日志文件,以便于数据分布和负载均衡。
**3.1.2 数据库组成**
数据库由多种对象构成,包括:
- **关系图 (Relation Map)**:表示数据之间的关系。
- **表 (Table)**:存储数据的基本单元。
- **视图 (View)**:虚拟表,基于一个或多个表的数据组合。
- **存储过程 (Stored procedures)**:预编译的SQL代码集合,可提高性能并简化管理。
- **触发器 (Triggers)**:响应特定数据库事件自动执行的代码。
- **用户自定义数据类型 (User-defined datatypes)**:扩展标准数据类型。
- **用户自定义函数 (User-defined functions)**:自定义的计算或逻辑操作。
- **索引 (Indexes)**:加速数据检索。
- **规则 (Constraints)**:确保数据的完整性和一致性。
- **默认值 (Defaults)**:为列提供默认值。
**系统数据库和示例数据库**
SQL Server安装后会创建6个数据库:
- **master**:存储系统级别的信息,如所有数据库的信息、登录信息等。
- **tempdb**:临时工作空间,用于存储临时对象和中间结果。
- **model**:作为新数据库的模板。
- **msdb**:用于SQL Server代理服务和调度信息。
- **Northwind** 和 **Pubs**:示例数据库,用于教学和演示目的。
理解这些基本概念对于有效地管理和维护SQL数据库至关重要。在实际操作中,需确保在合适的时间和状态下执行数据库的删除操作,避免对数据和系统造成不良影响。