1、数据库定义
- 数据库时长期存储在计算机内有组织的共享的大量的数据集合;
- 可以供各种用户共享,具有最小冗余度和较高的数据独立性;
- 数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复;
2、数据库模型
- 数据模型时对现实世界数据特征的抽象。通俗的讲,数据模型就是现实世界的模拟;
- 数据模型应满足三方面的要求
- 真实模拟现实世界;
- 容易理解;
- 数据模型时数据库系统的核心和基础;
2.1、数据模型分类
1)、概念模型,又称信息模型
按用户的观点对数据和信息建模,用于数据库设计。
2)、逻辑模型和物理模型
2.1)、逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型。
逻辑模型是按计算机系统的观点对数据建模,用于DBMS实现。
2.2)、物理模型是对数据最底层的抽象
描述数据在系统内(磁盘)的表示方式和存取方法。
2.2、概念模型
2.2.1、概念模型的用途
- 用于信息世界的建模
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的工具
- 数据库设计人员和用户之间进行交流的载体
2.2.2、基本要求
- 语义表达
- 简单、清晰、易于用户理解
2.2.3、信息世界中的基本概念
1)、实体(Entity)
客观存在并可相互区别的事物。可以是具体的人、事、物或抽象的概念。
2)、属性(Attribute)
实体所具有的某一特性。一个实体可以有多个属性。
3)、码(Key)
唯一标识实体的一个或多个属性。
4)、实体类型(Entity Type)
用实体名及其属性名集合来抽象和刻画的同类实体
5)、实体集(Entity Set)
同一类型实体的集合。
6)、联系(Relationship)
- 现实世界中事物内部以及事物之间的联系,在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
- 实体内部的联系:指组成实体的各属性之间的联系。
- 实体间的联系:指不同实体集之间的联系。有一对一、一对多、多对多等。
2.2.4、实体-联系方法
是概念模型的一种表示方法,Entity-Relationship Approach。用E-R图来描述现实世界,E-R方法也称E-R模型。
2.2.5、数据模型的组成要素
1)、数据结构
- 描述系统的静态特性。
- 刻画数据模型性质的重要方面。用数据结构的类型来命名数据模型,如,层次结构--层次模型、网状结构--网状模型、关系结构--关系模型。
- 描述数据库的组成对象,对象的类型、内容、性质。
- 描述对象之间的联系。
2)、数据操作
- 描述系统的动态特性。
- 对数据库中各种对象的实例执行的操作的集合。包括操作及有关的操作规则。
- 操作的类型。包括查询、更新(插入、删除、修改)。
- 操作语言。定义了数据操作的确切含义、符号、优先级。如,查询语言、更新语言。
3)、完整性约束。
- 是一组完整性规则的集合。给定的数据模型中,数据及其联系所具有的制约和依存规则。用来限定符合数据模型的数据库状态,以及状态的变化,以保证数据的正确、有效和相容。
- 数据模型对完整性约束条件的定义。
反映和规定必须遵守的、基本的、通用的完整性约束条件。
提供定义完整性约束条件的机制,以反映具体应用所涉及的数据,必须遵守的特定的语义约束条件。
2.3、常用的数据模型
2.3.1、层次模型
用树形结构来表示各类实体,以及实体间的联系。
1)、定义
有且只有一个结点没有双亲结点(根结点),根以外的其他结点有且只有一个双亲结点的基本层次联系的集合称为层次模型。
2)、表示方法
- 实体型。用记录类型描述。每个结点表示一个记录类型(实体)
- 属性。用字段描述。每个记录类型可以包含若干个字段
- 联系。用结点之间的连线表示记录类型(实体)之间的一对多父子关系
3)、数据操作
查询,插入,删除,更新
4)、完整性约束
4.1)、无相应的双亲结点值就不能插入子女结点值
4.2)、如果删除双亲结点值,则相应的子女结点值也同时被删除
4.3)、更新操作时,应更新所有相应记录,以保证数据的一致性
5)、优点
5.1)、数据结构简单、清晰
5.2)、查询效率高、性能优于关系模型,不低于网状模型
5.3)、提供了良好的完整性支持
6)、缺点
6.1)、结点之间的多对多联系表示不自然
6.2)、对插入和删除操作的限制多,应用程序的编写比较复杂
6.3)、查询子女结点必须通过双亲结点
6.4)、命令趋于程序化
2.3.2、网状模型
采用网状结构来表示各类实体以及实体间的联系
1)、定义
允许一个以上的结点无双亲。一个结点可以有多个双亲的基本层次联系的集合。
2)、表示方法
- 实体型。用记录类型描述,每个结点表示一个实体
- 属性。用字段描述,每个实体可以有多个字段
- 联系。用结点之间的连线表示实体之间一对多的父子联系
3)、数据操作
导航式的查询语言和增删改操作语言
4)、完整性约束条件
- 不严格的完整性约束条件
- 允许插入尚未确定双亲结点值的子女结点值
- 允许只删除双亲结点值
5)、优点
- 更为直接地描述现实世界。如可以有多个双亲
- 良好的性能,存取效率较高
6)、缺点
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构会变得复杂,不利于最终用户掌握
- DDL、DML语言复杂,不易使用
记录之间联系是通过存取路径实现的,应用程序必须选择存取路径
2.3.3、关系模型
1)、数据结构
从用户角度,关系模型中的数据逻辑结构是一张二维表
- 关系。一个关系对应一张表
- 元组。表中的一行
- 属性。表中的列
- 主码。又称码键。表中的某个属性组
- 域。一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
- 分量。元组中的一个属性值
- 关系模式。对关系的描述
关系必须是规范化的,满足一定的规范条件。最基本的规范条件是,每一个分量必须是一个不可分的数据项,不允许表中有表。
2)、数据操作
- 集合操作,操作对象和结果都是关系。可进行查询、插入、删除、更新
- 数据存储对用户不可见,增强了数据的独立性
3)、完整约束条件
- 实体完整
- 参照完整
- 用户定义的完整性
4)、优点
- 建立在严格的数学概念之上
- 概念单一。实体和各类联系都是用关系来表示。对数据的检索结果也是关系。
- 关系模型的存取路径对用户不可见。有较高的数据独立性和安全性,而且简化了应用的开发工作
5)、缺点
- 查询效率不如格式化数据模型
- 增加了数据库管理系统的复杂度