一、数据建模简介
数据建模不仅可以对象的属性建模(比如E-R图),也可以对数据的行为建模(比如触发器Trigger、存储过程Stored
Procedure).在进行数据库设计时,设计到如下几个概念:
模式 Schema、主键 Primary、外键 Foreign key、关系 Relationship、约束
constraint、索引 Index、触发器 Trigger、存储过程 Stored Procedure、视图
View。
二、数据建模元素
1、表(Table)
表是关系数据库最基本的模型结构。如下图

表的主键:InventoryID
表的外键:WarehouseId,关联到表Warehouse的主键
可以设置Table的数据库类型,如下图

也可以设置表空间,如下图

2、表索引(Table Index)
指按表文件中某个关键字段或表达式建立记录的逻辑顺序。它是由一系列记录号组成的一个列表,提供对数据的快速访问。索引不改变表中记录的物理顺序
3、表触发器(Table Trigger)
当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,SQL Server 就会自动执行触发器所定义的SQL
语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。
触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性
4、表约束(Table Constraint)
通过对列的约束,保证数据的有效性。

5、视图(View)
视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。如下图

6、存储过程(Stored Procedure)
将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,
那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。

三、数据建模实例

1、表有仓库Warehouse、库存Inventory以及书Book
2、主键分别为WarehouseID,InventoryID,ISBN
3、外键,表Iinventory的外键是WarehouseID,同时也是Warehouse的主键
表Book的外键是InventoryID,同时也是Inventory的主键
4、关系,表Warehouse与表Inventory是一对多的关系
Inventory与表Book是一对多的关系。
四、总结
本文主要介绍了数据库建模所涉及建模元素,主要包括模式 Schema、主键 Primary、外键 Foreign
key、关系 Relationship、约束 constraint、索引 Index、触发器 Trigger、存储过程
Stored Procedure、视图 View等等,并配以实例加以说明。
本篇文章比较简单,也是《UML建模-面向对象技术》系列文章的最后一篇建模文章。对此系列文章,后期抽个时间再写个总结,使的UML建模系列文章知识性更连贯,内容更加清晰。
|