首页 > 数据库 >数据库系统

数据库系统

时间:2024-02-22 21:13:00浏览次数:19  
标签:关系 数据库 用户 模式 数据库系统 数据 属性

目录

数据库体系结构

集中式数据库体系结构

三级模式

  1. 外部模式(External Schema)

    • 外部模式也称为用户模式,它定义了用户如何看待和访问数据的方式。
    • 每个外部模式对应着一个或多个用户的视图,这些视图描述了用户所需的数据以及他们对数据的操作。
    • 外部模式隐藏了数据库内部的细节,用户只需关心与其相关的数据。
  2. 概念模式(Conceptual Schema)

    • 概念模式是数据库的全局逻辑结构的描述,它描述了数据库中存储的所有数据以及这些数据之间的关系。
    • 概念模式定义了数据库中的实体(Entity)以及实体之间的联系(Relationship)。
    • 概念模式独立于任何特定用户或应用程序,并且对数据库的整体视图提供了一致的抽象。
  3. 内部模式(Internal Schema)

    • 内部模式是数据库的物理存储结构的描述,它定义了数据在存储介质上的实际存储方式。
    • 内部模式包括数据的存储方式、索引、数据分区等细节信息,以及如何在物理层面上组织和管理数据。
    • 内部模式通常是数据库管理系统(DBMS)的内部实现细节,用户一般不直接操作或访问内部模式。

两级映像

  1. 逻辑独立性(Logical Independence):数据的逻辑结构发生变化后,用户程序也可以不修改。但是为了保证应用程序能够正确执行,需要修改外模式和概念模式之间的映像。

  2. 物理独立性(Physical Independence):当数据的物理结构发生改变时,应用程序不用改变。但是为了保证应用程序能够正确执行,需要修改概念模式和内模式之间的映像。

分布式数据库体系结构

特点

  1. 数据独立性:除了数据的逻辑独立性和物理独立性外,还有数据分布独立性(分布透明性)。
  2. 集中与自治共享结合的控制结构:各局部的DBMS可以独立地管理局部数据库,具有自治功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。
  3. 适当增加数据冗余度:在不同的场地存储同一数据的多个副本,可以提高系统的可靠性和可用性,同时也能提高系统性能。
  4. 全局的一致性、可串行性和可恢复性

透明性

  1. 分片透明:用户不必关心数据分不分片,怎么分片
  2. 位置透明:用户不必关系数据存放在何处
  3. 复制透明:用户不必关心各个结点数据的复制与同步更新
  4. 逻辑透明:用户不必关系局部DBMS支持哪种数据模式、使用哪种语言

数据库设计

数据库设计过程

  1. 需求分析阶段

    • 任务:与利益相关者(如客户、用户、管理人员)一起收集和分析系统的需求和业务规则。
    • 产物:数据流图、数据字典、需求说明书等。
  2. 概念设计阶段

    • 任务:基于需求分析结果,设计数据库的概念模型,确定实体、属性和它们之间的关系。
    • 产物:E-R模型。
  3. 逻辑设计阶段

    • 任务:将概念模型转换为规范化的关系模式,确定关系模式之间的关系,以及实施数据完整性和一致性的约束。
    • 产物:关系模式(表结构)。
  4. 物理设计阶段

    • 任务:确定数据库的物理存储结构,包括索引、分区、存储过程等。
    • 产物:物理存储模式、索引设计文档、分区方案。

概念结构设计

  1. 抽象数据
  2. 设计局部ER模型
  3. 合并局部ER模型消除冲突
  4. 重构优化消除冗余
  • 集成的方法
    • 多个局部E-R图一次集成。
    • 逐步集成,用累加的方式一次集成两个局部E-R图。
  • 集成产生的冲突及解决办法
    • 属性冲突:包括属性域冲突和属性取值冲突
    • 命名冲突:包括同名异义和异名同义
    • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同

逻辑结构设计

  1. 转化为数据模型
  2. 关系规范化
  3. 模式优化
  4. 设计用户子模式
  • E-R图向关系模式的转换
    • 实体向关系模式的转换
    • 联系向关系模式的转换
  • 关系模式的规范化
  • 确定完整性约束(确保数据的正确性)
  • 用户视图的确定(提高数据的安全性和独立性)
    • 根据数据流图确定处理过程使用的视图
    • 根据用户类别确定不同用户使用的视图
  • 应用程序设计

关系代数

  1. 投影(Projection): 投影操作用于从关系中选择指定属性的数据,去除其他属性。投影操作可以通过关系中的列(属性)来进行。在关系代数中,投影操作通常用符号 (\pi)(Pi)表示。

    例如,假设有一个关系 R 包含属性 A、B 和 C,我们可以使用投影操作选择只包含属性 A 和 B 的数据子集,这样就得到了一个新的关系,表示为 (\pi_{A, B}(R))。

  2. 选择(Selection): 选择操作用于从关系中选择满足指定条件的元组(行),并去除不满足条件的元组。选择操作可以通过关系中的行来进行。在关系代数中,选择操作通常用符号 (\sigma)(Sigma)表示。

规范化理论

阿姆斯特朗公理体系

  • 自反律:如果Y是X的一个子集,那么X→Y总是成立。
  • 增广律:如果X→Y,那么对于任何属性集Z,XZ→YZ也成立。
  • 传递律:如果X→Y且Y→Z,那么X→Z也成立。

数据库设计过程中的规范化理论主要包括以下几个层次:

  1. 第一范式(1NF):确保每个表格的原子性,表中的每个字段都是不可分割的最小数据单位。
  2. 第二范式(2NF):在第一范式的基础上,消除非主属性对主键的部分函数依赖。
  3. 第三范式(3NF):在第二范式的基础上,消除非主属性对主键的传递函数依赖。
  4. 博茨-科德范式(BCNF):更严格的第三范式,要求表中的每一个决定因素都必须是候选键。
  5. 第四范式(4NF):在BCNF的基础上,消除表中的多值依赖。
  6. 第五范式(5NF):确保数据的完全规范化,消除表内的所有连接依赖。

模式分解

是否保持函数依赖的判断:分解后的关系模式,属性间保留的函数依赖合并后与合并前一致,则保留函数依赖。

是否无损的判断:满足交集推导出差集的函数依赖则满足无损。

并发控制

三级封锁协议

  1. 一级封锁协议:事务T在修改数据项X之前必须先对其加上X锁(排他锁)。这保证了任何时刻只有一个事务可以修改数据项,防止了丢失修改。
  2. 二级封锁协议:在一级封锁协议的基础上,要求事务T在读取数据项X之前必须先对其加上S锁(共享锁)。事务结束时释放所有锁。这除了防止丢失修改,还防止了脏读。
  3. 三级封锁协议:在二级封锁协议的基础上,要求事务T只能在结束时才能释放其所有的S锁和X锁。这除了防止丢失修改和脏读,还防止了不可重复读。

两段锁协议

  • 加锁阶段:事务可以获取任意数量的锁,但不能释放任何锁。
  • 解锁阶段:事务可以释放锁,但不能再获取新的锁。

标签:关系,数据库,用户,模式,数据库系统,数据,属性
From: https://www.cnblogs.com/Jathon-cnblogs/p/18028197

相关文章

  • 数据库系统优化--业务逻辑设计优化
         当我们优化一个系统时,有时发现一种情况就是自己修改SQL,索引以及分区是不能解决性能问题的。这时你要考虑业务逻辑优化和表设计的重构。这两点的确和设计结合的很紧密。 业务逻辑优化     结合实际,我们先谈谈业务逻辑优化。     案例一:         我......
  • IntelliJ IDEA 数据访问工具配置 Caché/M 数据库系统
    首先打开IntelliJIDEA的数据库访问工具,然后在数据源中选择:其他下面的InterSystemsIRIS数据源。  配置数据库驱动默认情况下的数据驱动给了9091,这个端口是不对的。IRIS的数据库端口应该是1972。如果你使用的是默认的数据库安装,那么可以参考下面的配置:jdbc:IRIS......
  • 第十四章:MySQL数据库系统
    MySQL数据库系统本章的主要内容就是MySQL关系数据库系统;介绍了MySQL数据库系统和它的重要性;Linux系统下MySQL的安装与使用方式;MySQL数据库的命令模式和批处理模式的SQL脚本管理方法;C与MySQL数据库的有机结合;MySQL数据库与PHP的集成,通过动态Web创建和管理MySQL数据库。MySQL是一......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》 第十二周学习总结 MySQL数据库系统
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学****知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • 学习笔记12(PHP MySQL数据库系统)
    一、知识点梳理(一)使用PHP连接到MySQL服务器安装必要的软件:在基于Ubuntu的系统上,可以使用以下命令:sudoapt-getinstallphpmysql-serverphp-mysql启动MySQL服务:使用以下命令:sudoservicemysqlstart创建MySQL数据库和用户:登录MySQL并创建一个数据库以及一个......
  • 第十三周Linux教材第十四章学习笔记——MySQL数据库系统
    MySQL数据库系统MySQL是一个广泛使用的关系型数据库管理系统(RDBMS),它是开源的,支持多用户和多线程。14.1基础知识1.数据库基础概念数据库(Database):**数据库是一个包含相关数据的集合,并提供了对这些数据的有效管理和访问。表(Table):**表是数据库中的基本数据结构,用于存储相关......
  • 数据库系统概述之国产数据库
    当今世界,数据已成为重要的生产要素,数据库管理系统更是广泛应用于信息化行业各领域,国内数据库产业能否健康可持续的发展,在很大程度上影响着国民经济发展和网络空间安全。当前,国产数据库行业竞争非常激烈,近几年多就有多达200多家数据库公司成立。人大金仓、达梦、南大通用等是老牌数......
  • 【第20章】数据库系统安全
    20.1数据库安全概况20.1.1数据库安全概念主流的数据库系统有MSSQL、MySQL、Oracle、DB2等,数据库安全是指数据库的机密性、完整性、可用性能够得到保障,其主要涉及数据库管理安全、数据安全、数据库应用安全以及数据库运行安全。20.1.2数据库安全威胁(1)授权的误用(Mi......
  • 分享技术大牛成长课,从0到1带你手写一个数据库系统
    点击下崽:分享技术大牛成长课,从0到1带你手写一个数据库系统  提取码:li4t数据库系统是现代计算机系统中十分重要的一局部,它为应用程序提供了高效、牢靠、平安的数据存储和管理功用。手写一个数据库系统能够协助我们深化了解数据库的原理和完成,同时也能够进步我们的编程才能和系......
  • 数据库系统概论
    绪论DBS中的4个基本概念数据DBDBMSDBSDB发展阶段1.人工2.文件3.DBMS数据模型概念模型实体(属性,码)实体型实体集逻辑模型2.1层次模型2.2网状模型2.3关系模型一张表即为关系,表中一行为元组,一列为属性(多列成组)(放在元组中称分量,其中起唯一标识作用的......