1.数据库实现模型
- 关系模型(Relational Model)
- 面向对象模型(Object Oriented Model)
- NoSQL数据库
- 分层模型(Hierarchical Model)
- 网状模型(Network Model)
- 倒排文件模型(Inverted file Model)
2.关系模型
关系数据库模型最早在1970年由IBM研究所的Edear.F.Code 提出。目前,关系数据库仍是最广泛使用的数据库之一。关系模型最广泛使用的数据库模型,与其他所有模型的原理相同,是理解其他模型的基础。
关系型数据库管理系统:Oracle, SQL Server, MySQL, DB2, PostgreSQL, MS Access
3.数据库模式文件
关系数据库往往建立很多张表格,以避免数据重复出现。在数据库被物理的创建之前,可以通过一个ER图来表示数据库的结构,ER图中的每个实体都将对应一张表格。这个ER图被称为数据库模式文件(Database Schema file)。
关系型表格的特征:
- 每一列(field)需要有一个独特的名称。
- 每一行(record),都代表一条相关信息 。
- 每一列的所有值都具有相同的数据类型。
- 一行一列的每个交集代表一个数据值,一个单元格就是一个分量(component)。
- 数据应该尽可能的不可分割(atomic)。
4.键(key)
在关系型数据库中,键(key)是用于唯一标识表中的记录(record)的字段(field)或字段组合。
键类型及其功能:
-
主键(Primary Key):
- 唯一标识表中的每一行记录。
- 不能有重复值,也不能为NULL。
- 通常是一个单一列,但也可以是多个列的组合(复合主键)。
- 选择主键的规则:唯一性(unique);考虑数据值的所有可能性;如果使用组合列,则使用最小列数 ;必须是一个稳定的值,不经常变化。
-
外键(Foreign Key):
- 用于在两个表之间建立关系。
- 外键在一个表中引用另一个表的主键。
- 允许在表之间进行联接查询。
-
候选键(Candidate Key):
- 表中可以作为主键的列或列组合。
- 每个候选键都能唯一标识记录,但只有一个被选为主键。
-
唯一键(Unique Key):
- 确保列中的所有值都是唯一的,但可以包含NULL值。
- 与主键类似,但允许一个NULL值。
-
复合键(Composite Key):
- 由两个或多个列组成的键,用于唯一标识记录。
- 常用于需要多个属性来唯一标识一条记录的情况。
5.数据库应用系统(DBAS)
数据库应用系统(Database Application System)是指在数据库管理系统(DBMS)支持下建立的计算机应用系统。主要由以下几个部分组成:
- 数据库(DB):存储和管理数据的集合。
- 数据库管理系统(DBMS):用于创建、管理和操作数据库的软件。
- 应用程序(Database Application):与用户交互并执行特定任务的软件。
- 用户(user):使用系统的人员,包括数据库管理员和终端用户。
用户通常使用的是一个包含了表单、定制报告、查询、程序代码的数据库应用程序,应用程序中的每一个部分将直接与DBMS通信来处理数据库表中的内容。
通信关系:user <——> Database Application <——> DBMS <——> DB
数据库应用系统的特点包括:
- 结构特性:与数据模型和实体之间的关系有关,涉及数据库的设计和模式。
- 行为特性:与数据的操作和状态变化有关,决定了系统的功能和应用程序的设计。
注意:一个数据库是很多张表格的合集,而一个数据库管理系统中有一个或多个数据库。
6.关系型数据库的优点
- 数据独立:数据只需要存储一次,与应用程序无关
- 减少数据冗余:消除数据异常
- 增加数据共享:可以多人共同访问DBMS
- 轻松访问:能够使用SQL进行特殊的查询能力
- 更好的安全性:容易提供不同的访问权限
- 数据增长:容易通过添加任何表来扩张未来的数据增长
7.数据库设计方法
1.自顶向下设计(Top-down design):首先定义全局的概念结构框架,然后逐步细化到具体的应用。 流程:
- 需求分析:从整体需求出发,确定系统的主要功能和数据需求。
- 概念设计:创建一个高层次的概念模型,通常使用E-R图表示。
- 逻辑设计:将概念模型转换为逻辑模型,适应特定的数据库管理系统(DBMS)。
优点:
- 提供清晰的全局视图,便于管理和维护。
- 有助于确保数据一致性和标准化。
缺点:
- 可能需要较长的时间和较高的成本。
- 对于需求变化的适应性较差。
2.自底向上设计(Botton-up design):首先定义各局部应用的概念结构,然后将它们集成起来,形成全局结构。流程:
- 局部设计:针对特定的业务需求,创建数据集市(Data Mart)。
- 集成:将多个局部设计整合成一个统一的全局模型。
优点:
- 更灵活,能够快速响应具体业务需求。
- 成本相对较低,适合小型企业或项目。
缺点:
- 可能导致数据孤岛,不同部门之间的数据不一致。
- 整合时可能面临挑战,增加管理复杂性。
3.正常化(Normalisation):在数据库设计的过程中,正常化是一个通过将数据分解成多个表,确保每个数据项都依赖于主键,从而消除不必要的依赖关系的过程。正常化的主要步骤:
- 第一范式(1NF):确保每个字段都是原子的,避免重复组。
- 第二范式(2NF):消除部分依赖,确保非主属性完全依赖于主键。
- 第三范式(3NF):消除传递依赖,确保非主属性不依赖于其他非主属性。
在自底向上设计中,正常化是一个关键过程:
- 使用现有文档和流程:从组织现有的数据和流程入手。
- 识别数据元素:确定需要管理的具体数据项。
- 分组数据元素:将识别出的数据元素进行分类,形成数据集。
- 定义属性并形成实体:首先定义每个数据项的属性,然后将它们组合成实体。
通过正常化,设计者能够优化数据库结构,减少冗余,提高数据的完整性和一致性。
8.数据库生命周期(DBLC)
数据库从创建到停用的全过程被称为数据库生命周期(Database Life Cycle),它是一个迭代的过程,各个阶段之间相互影响。
数据库的设计包含一系列的迭代步骤(Iterative Steps):
- 需求分析(Requirment analysis):step 1,决定数据库的功能和数据需求。这被称为需求分析,将决定什么数据将会被放在数据库以满足公司和用户,并决定公司/组织的业务规则。
- 数据建模(Data modelling):step 2,建立一个概念数据模型(Conceptual Data Model),用ER 图建模。概念模型独立于现实模型(关系模型),不是特定于DBMS。
- 关系参与(Candidate relations):step 3,建立一个逻辑数据模型(Logical Data Model),用ER图建模。现在实体模型已经确定,如果是关系数据库模型,则显示外键。逻辑数据模型仍然不特定于DBMS。
- 关系规范化(Normalized relations) :step 4,利用三范式对组织中的现有数据进行规范化。这被称为自顶向下设计。
- 在数据库中建表(Tables in a database):step 5,在数据库中建表。当所有数据都被包含在ER图中,它就成为一个物理模型(Physical Model)。物理模型是要存储在数据库中的表的实际结构。物理模型特定于DBMS。
- 物理实现(Physical implementations):step 6,物理实现完整的数据库,针对需求进行数据库优化(tuning)和维护(maintain)。