【数据库系统概论】数据模型
数据模型概览
数据模型定义
数据模型是严格定义的一组概念的集合
精确地描述了系统的静态特性、动态特性和完整性约束条件(Integrity Constraints)。
数据模型由三部分组成(三要素)
1 数据结构--描述系统的静态特性
⒉数据操作--描述系统的动态特性
3 完整性约束
数据模型分类
概念数据模型:仅仅用于表达设计思路(实体-联系模型(E-R)),就行设计大楼前的图纸,一般由业务人员设计ER图。
逻辑数据模型:根据ER图,设计设计相应的数据表,一般由数据管理人员设计逻辑数据模型,数据管理员会选择合适的DBMS(数据管理系统)进行设计。
物理数据模型:数据在系统内部的表示方法和存取方法,实现数据的物理存储。包括数据的存储位置,索引存放位置,存储文件位置和存储策略等
这一步由DBMS控制,无需人员。
案例:
数据模型三要素
数据结构
数据结构是所研究的对象类型的集合。它从语法角度表述了客观世界中数据对象本身的结构和数据对象之间的关联关系,是对系统静态特征的描述。
数据操做
增删查选
数据完整性约束
数据完整性指数据库中数据的正确性、相容性和一致性。包括现实世界中的应用需求的完整性。数据的完整性由完整性规则来定义。
关系模型的完整性规则是对关系的某种约束,提供一种手段来保证用户对数据库的修改时不会破坏数据库中数据的完整性。保证数据是有意义的。
关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性约束。 前两者是必须满足的条件,称作关系的两个不变性。
读数据的存储进行制约,数据约束 性别:只有男女,还书日期不能早于借书日期,自定义一个人不能借超过15本书。
实体完整性约束(Entity Integrity Constraint)
此约束指关系的主属性,主码不能为空,在关系数据库系统中,一个关系对应一张表,实体完整性指在数据存储数据的表中,主键/码不能取控值 NULL
规定表的每一行在表中是唯一的实体。
参照完整性约束 (Referential Integrity Constraint)
现实世界中实体之间往往存在某种联系,在关系模型中这种联系通过关系来描述
参照完整性约束就说定义外码和主码之间的引用规则,是对关系间引用数据的一种限制。若属性(属性组)X 是基本关系 R 的外码,它与基本关系 S 的主码 Y 对应,那么 R 中每个元组在 F 上的值要么取 NULL,要么等于 S中对应元组的主码值。 R 和 S 可以是不同的关系,也可以是同一关系。
如:
教师(职工号,姓名,性别,系编号)
|
上述两个关系之间存在属性的引用,系编码既是 系
关系的主码又是教师
关系的外部码。那么教师
关系中系编码属性的取值需要参照 系
关系中系编码的值或为 NULL。
借了一本 图书馆里没有的书,系统需要拒绝这样的信息录入。
用户定义完整性约束 (User-defined Integrity constraint)
此约束针对某一应用环境的完整性约束条件,反映了某一具体应用所涉及的数据应满足的要求。关系模型提供定义和检验的机制,此类规则一般在建立数据库表的同时进行定义,如果某些条件未建立在库表一级,则应在各个模块的具体编程中通过程序进行检查和控制。
自定义一个人不能借超过15本书。具体的操做如下:
关系模型完整性约束检验
在对数据库进行修改时须检验是否满足对上述三类完整性约束
插入操作
首先检查实体完整性约束,检查插入行在主码属性上的值是否已存在,不存在,可以执行插入,否则不可插入。再检查参照完整性约束,如果是向被参照关系插入,则不需要考虑此约束;如果向参照关系插入,则检查插入行在外码属性上的值是否已在相应被参照关系的主码属性中存在,存在,可插入,否则不可插入,或者将插入行的外码属性的值改为NULL,再插入,最后检查自定义完整性约束,包括数据的类性、精度、取值范围、是否允许空值、是否有默认值等,满足即可执行插入操作,否则给出错误信息。
删除操作
一般只需对被参照关系检查参照完整性约束。如果主键被引用则不可删,或将参照关系中对应行的外码属性改为为NULL,再删除
更新操作
结合删除 和 插入操作,先删除再插入。