数据库基础与创建指南
立即解锁
发布时间: 2025-08-20 01:14:23 阅读量: 1 订阅数: 3 


C# 5.0与SQL Server 2012数据库开发实战
# 数据库基础与创建指南
## 1. 关系型数据库基础
### 1.1 关系型数据库概念
关系型数据库基于埃德加·F·科德(Edgar F. Codd)博士在 20 世纪 70 年代发明的数据关系模型。这里的“关系”源于数学(集合论)中的关系概念,即可以通过定义良好的数学运算(关系代数和关系演算)来操作的元组集合。需要注意的是,“关系型数据库”中的“关系”与表之间的关系并无直接关联。
### 1.2 键的理解
在关系型数据库中,键用于建立表之间的关系,主要有主键和外键两种类型。
- **主键**:
- 定义:主键是用于唯一标识实体中记录的一个或多个属性(列)。
- 属性要求:
- 实体的每条记录必须有非空值。
- 每条记录的值必须唯一。
- 在实体实例的生命周期内,值不能改变或变为空。
- 每个实体只能定义一个主键。
- 相关概念:
- 候选键:任何可以作为主键的键或最小键集。确定候选键后,为每个实体选择一个且仅一个主键。
- 复合键:由多个属性组成的主键。一个实体只能有一个主键,但复合键可以有多个属性(最多 16 个)。
- 代理键:当一个额外的属性作为标识属性添加到列中时,称为代理键。其值在记录插入前的运行时生成并存储到表中。
- **外键**:外键通过标识父实体来完成表之间的关系。它提供了维护数据完整性(引用完整性)和在实体的不同实例之间导航的方法。每个关系模型中的关系都必须由外键支持。例如,在 Customers 和 Orders 表中,Orders 表的 CustomerID 字段是外键,引用了 Customers 表的 CustomerID 主键。
### 1.3 数据完整性
数据完整性指数据库中的数据值正确且一致,包括实体完整性和引用完整性。
- **实体完整性**:主键的任何部分都不能为 null,以确保所有行都有主键值,且主键值唯一。数据库管理系统(DBMS)通过不允许产生无效主键的操作(如 INSERT、UPDATE)来强制执行实体完整性。
- **引用完整性**:当使用外键定义表之间的关系后,必须管理键数据以维护正确的关系。引用完整性要求子表中的所有外键值要么与父表中的主键值匹配,要么(如果允许)为空,即满足外键约束。
### 1.4 规范化概念
规范化是一种避免潜在更新异常的技术,主要通过最小化逻辑数据库设计中的冗余数据来实现。规范化设计通常可以降低更新处理成本,但可能会使查询处理更加复杂。
- **规范化形式**:理论上有五种规范化形式,但实际中通常只需达到第三范式(3NF)。
- 第一范式(1NF):所有列值都是标量,即具有单个值,不能根据数据模型进一步分解。所有关系和 SQL 表默认都满足 1NF。
- 第二范式(2NF):非键属性必须完全依赖于唯一标识它们的键。例如,如果一个表包含员工和他们的职位,且多个员工可以有相同的职位,那么职位不依赖于唯一标识员工的键。为了将表转换为 2NF,需要为职位创建一个单独的表,并在原表中用外键引用新表。
- 第三范式(3NF):所有非键列必须由整个主键唯一标识,而不仅仅是主键的一部分。例如,在一个包含 ManagerName、EmployeeId 和
0
0
复制全文
相关推荐










