系统架构11 - 数据库基础(上)

数据库基础

  • 数据库基本概念
    • 概述
    • 三级模式、两级映像
      • 概念模式
      • 外模式
      • 内模式
      • 二级映像
        • 逻辑独立性
        • 物理独立性
  • 数据库设计
    • 需求分析
    • 概念结构设计
    • 逻辑结构设计
    • 物理设计
    • 数据库实施阶段
    • 据库运行和维护阶段
  • 数据模型
    • E-R模型
    • 关系模型
    • 模型转换
      • E-R图的联系
    • 关系代数

数据库基本概念

概述

数据:是数据库中存储的基本对象,是描述事物的符号记录。
数据的分类:文本、图形、图像、音频、视频等。
数据库(DataBase,DB):是统一管理的、长期储存在计算机内的,有组织的相关数据的集合。其特点是数据间联系密切、冗余度小、独立性较高、易扩展,并且可为各类用户共享。一般主要指的是存储数据的各种物理设备以及数据本身。
数据库管理系统(DBMS)是数据库系统的核心软件,是由一组相互关联的数据集合和一组用以访问这些数据的软件组成。它的功能包括:
(1)实现对共享数据有效的组织、管理和存取
(2)包括数据定义、数据库操作、数据库运行管理、数据的存储管理、数据库的建立和维护等。
数据库系统 (DataBase System,DBS): 是一个采用了数据库技术,有组织地、动态地存储大量相关联数据,从而方便多用户访问的计算机系统。广义上讲,DBS包括了数据库管理系统(DataBase Management System,DBMS)。它由四部分组成:
(1)数据库:统一管理、长期存储在计算机内的,有组织的相关数据的集合。
(2)硬件:构成计算机系统包括存储数据所需的外部设备。
(3)软件:操作系统、数据库管理系统及应用程序。
(4)人员:系统分析和数据库设计人员、应用程序员、最终用户、数据库管理员DBA。

三级模式、两级映像

三级模式是指数据库管理系统从三个层次来管理数据,分别是外部层(ExternalLevel)、概念层(Conceptual Level)*和内部层(Internal Level)。
这这三个层次分别对应三种不同类型的模式,分别是外模式(External Schema)、概念模式(Conceptual Schema)和内模式(Internal Schema)。
在外模式与概念模式之间,以及概念模式与内模式之间,还存在映像,即二级映像
外模式:面向应用程序,描述用户的数据视图(View);
内模式(又称为物理模式、存储模式):面向物理上的数据库,描述数据在磁盘中如何存储;
概念模式(又称为模式、逻辑模式):面向数据库设计人员,描述数据的整体逻辑结构。

三级映像

概念模式

概念模式也称模式,是数据库中全部数据的逻辑结构和特征的描述,它由若干个概念记录类型组成,只涉及“型”的描述,不涉及具体的值。概念模式的一个具体值称为模式的一个实例,同一个模式可以有很多实例。概念模式反映的是数据库的结构及其联系,所以是相对稳定的;而实例反映的是数据库某一时刻的状态,是相对变动的。
需要说明的是,概念模式不仅要描述概念记录类型,还要描述记录间的联系、操作、数据的完整性和安全性等要求。
但是,概念模式不涉及存储结构、访问技术等细节。只有这样,概念模式才算做到了“物理数据独立性”。
概念模式类似于表格的列标题,它描述了商品表中包含哪些信息。表的横向称为行,纵向称为列,第一行就是列标题,用来描述该列的数据表示什么含义。
实际上,概念模式在数据库中描述的信息还有很多,如多张表之间的联系、表中每一列的数据类型和长度等。

外模式

外模式也称用户模式或子模式,是用户与数据库系统的接口,是用户需要使用的部分数据的描述。它由若干个外部记录类型组成。
用户使用数据操纵语言对数据库进行操作,实际上是对外模式的外部记录进行操作
在打开一个电子表格后,默认会显示表格中所有的数据,这个表格称为基本表
在将数据提供给其他用户时,出于权限、安全控制等因素的考虑,只允许用户看到一部分数据,或不同用户看到不同的数据,这样的需求就可以用视图来实现。

内模式

内模式也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
如,在将Excel表格另存为文件时,可以选择保存的文件路径、保存类型(如XLS、XLSX、CSV等格式)等,这些与存储相关的描述信息相当于内模式
在数据库中,内模式描述数据的物理结构和存储方式,如堆文件、索引文件、散列(Hash)文件等。

二级映像

三级模式是数据的三个抽象级别,每个级别关心的重点不同。
为了使三级模式之间产生关联,数据库管理系统在三级模式之间提供了二级映像功能
二级映像是一种规则,它规定了映像双方如何进行转换
通过二级映像,体现了逻辑物理两个层面的数据独立性。

逻辑独立性

外模式/概念模式映像体现了逻辑独立性。
逻辑独立性是指当修改了概念模式,不影响其上一层的外模式。
例如,将用户表的“姓名”和“年龄”拆分到另一张表中,此时概念模式发生了更改,但可以通过改变外模式/概念模式的映像,继续为用户提供原有的视图

物理独立性

概念模式/内模式映像体现了物理独立性。
物理独立性是指修改了内模式,不影响其上层的概念模式和外模式。例如,在Excel中将.xls文件另存为.xlsx文件,虽然更换了文件格式,但是打开文件后显示的表格内容一般不会发生改变。
在数据库中,更换更先进的存储结构,或者创建索引以加快查询速度,内模式会发生改变。此时,只需改变概念模式/内模式映像,就不会影响到原有的概念模式

数据库设计

数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程
数据库设计的内容包括需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护六大部分。
数据库设计

需求分析

分析数据存储的要求,产出物有数据流图、数据字典、需求说明书。获得用户对系统的三个要求:信息要求、处理要求、系统要求

概念结构设计

就是设计E-R图,也即实体-联系图。工作步骤包括:选择局部应用、逐一设计分E-R图、E-R图合并。分E-R图进行合并时,它们之间存在的冲突主要有以下3类:

  • 属性冲突。同一属性可能会存在于不同的分E-R图中。
  • 命名冲突。相同意义的属性,在不同的分E-R图上有着不同的命名,或是名称相同的属性在不同的分E-R图中代表着不同的意义。
  • 结构冲突。同一实体在不同的分E-R图中有不同的属性,同一对象在某一分E-R图中被抽象为实体而在另一分E-R图中又被抽象为属性。

逻辑结构设计

将E-R图,转换成关系模式。工作步骤包括:确定数据模型、将E-R图转换成为指定的数据模型、确定完整性约束和确定用户视图。

物理设计

步骤包括确定数据分布、存储结构和访问方式。

数据库实施阶段

根据逻辑设计和物理设计阶段的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行

据库运行和维护阶段

数据库应用系统经过试运行即可投入运行,但该阶段需要不断地对系统进行评价、调整与修改

数据模型

关系模型是二维表的形式表示的实体-联系模型,是将实体-联系模型转换而来的,经过开发人员设计的;
概念模型是从用户的角度进行建模的,是现实世界到信息世界的第一抽象,是真正的实体- 联系模型。
网状模型表示实体类型及其实体之间的联系,一个事物和另外几个都有联系,形成一张网。
面向对象模型是采用面向对象的方法设计数据库,以对象为单位,每个对象包括属性和方法,具有类和继承等特点。
数据模型三要素数据结构(所研究的对象类型的集合)、数据操作(对数据库中各种对象的实例允许执行的操作的集合)、数据的约束条件(一组完整性规则的集合)。

E-R模型

用E-R图来描述概念数据模型,世界是由一组称作实体的基本对象和这些对象之间的联系构成的。
在E-R模型中,使用椭圆表示属性(一般没有)、长方形表示实体、菱形表示联系,联系的两端要填写联系类型,示例如下图:
E-R图
实体:客观存在并可相互区别的事物。可以是具体的人、事、物或抽象概念。如人、汽车、图书、
账户、贷款。

  • 弱实体和强实体:弱实体依赖于强实体的存在而存在。
  • 实体集:具有相同类型和共享相同属性的实体的集合,如学生、课程。
    属性:实体所具有的特性。
  • 属性分类:简单属性和复合属性;单值属性和多值属性;NULL属性;派生属性。
  • 域:属性的取值范围称为该属性的域。
  • 码(key):唯一标识实体的属性集。
    联系:现实世界中事物内部以及事物之间的联系,在E-R图中反映为实体内部的联系和实体之间的联系。
  • 一对一(1 :1 )
  • 一对多(1 :N)
  • 多对多(M:N)

关系模型

关系模型中数据的逻辑结构是一张二维表,由行列组成。用表格结构表达实体集,用外键标识实体
间的联系。
优点:
(1)建立在严格的数学概念基础上;
(2)概念单一、结构简单、清晰,用户易懂易用;
(3)存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作。
缺点:由于存取路径透明,查询效率往往不如非关系数据模型

模型转换

E-R模型转换为关系模型:
E-R图是全局的设计概念,不适合进行计算机处理,为了适应关系数据库的处理,必须将E-R图转为关系模型。
E-R图是由实体、属性和联系三要素组成,而关系模型只有一个结构,所以我们使用以下方式进行转换:每个实体都对应一个关系模型,实体名对应关系模型中的名称,实体属性对应关系模型的属性,实体标识符(联系)对应关系模型的码。

E-R图的联系

  • 1 :1 联系:联系可以放到任意的两端实体中,作为一个属性(要保证1 :1 的两端关联),也可以转换为一个单独的关系模式;
  • 1 :N联系:联系可以单独作为一个关系模式,也可以在N端中加入1 端实体的主键;
  • M:N联系:联系必须作为一个单独的关系模式,其主键是M和N端的联合主键。

关系代数

并:结果是两张表中所有记录数合并,相同记录只显示一次。
交:结果是两张表中相同的记录。
差:S1-S2,结果是S1表中有而S2表中没有的那些记录。

笛卡尔积:S1XS2,产生的结果包括S1和S2的所有属性列,并且S1中每条记录依次和S2中所有记录组合成一条记录,最终属性列为S1+S2属性列,记录数为S1*S2记录数。
投影(π):实际是按条件选择某关系模式中的某列,列也可以用数字表示。
选择(σ):实际是按条件选择某关系模式中的某条记录。

自然连接:显示全部的属性列,但是相同属性列只显示一次,显示两个关系模式中属性相同且值相同的记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/325740.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

可持续技术:2024 年技术趋势的绿色创新

随着我们步入2024年,对可持续技术解决方案的关注从未如此强烈。从可再生能源到环保小工具,科技行业正朝着更环保、更可持续的未来大步迈进。 在快速发展的技术领域,创新是推动我们走向可持续未来的动力。随着我们步入2024年,对可持…

高效工作法:占位图片生成工具助力项目快速迭代

在现代设计和开发项目中,图片资源的重要性不言而喻。然而,项目中经常会遇到寻找合适图片、调整图片尺寸和格式等问题,这些问题不仅耗时耗力,还可能影响到项目的进度和质量。此时,占位图片生成工具应运而生,…

【开源】基于JAVA语言的网上药店系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 药品类型模块2.3 药品档案模块2.4 药品订单模块2.5 药品收藏模块2.6 药品资讯模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 药品表3.2.3 药品订单表3.2.4 药品收藏表3.2.5 药品留言表…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-9 可观测性与分离原理

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-9 可观测性与分离原理

安卓之图表库的应用场景、技术实现及其优劣分析

一、引言 在移动应用开发中,数据可视化对于提供直观信息、帮助用户理解数据至关重要。安卓平台上的图表库为开发者提供了一系列工具和组件,使他们能够轻松地创建各种类型的图表,如线型图、柱状图、蜡烛图、气泡图、饼状图、雷达图以及散点图等…

适配器模式介绍

目录 一、适配器模式介绍 1.1 适配器模式定义 1.2 适配器模式原理 1.2.1 适配器模式类图 1.2.2 模式角色说明 二、适配器模式的应用 2.1 类适配器模式 2.1.1 需求说明 2.1.2 需求实现 2.1.2.1 类图 2.1.2.2 具体实现 2.1.2.2.1 SDCard接口 2.1.2.2.2 SDCardImpl实现…

婴儿洗衣机哪款性价比高?希亦、RUUFFY、觉飞全维度测评对比

当婴儿的到来,确实会给家庭带来许多变化,就好比如对于宝宝相关衣物的清洗需求。对于新生儿及婴幼儿的衣服,一般都要给予特殊的照顾与清洗,以保证不含细菌及过敏原。尤其是刚刚出生的婴儿,这时候宝宝们的皮肤很是幼嫩。…

【JavaEE进阶】 利用Spring简单实现加法计算器和用户登录

文章目录 🎍序言🌳加法计算器🚩准备工作🚩约定前后端交互接⼝🌲后端服务器代码的书写 🌴用户登录🚩效果展示🚩准备工作🚩约定前后端交互接⼝🎈需求分析&#…

spring boot学习第八篇:kafka

目录 1、安装kafka 1.1确认jdk是否安装OK 1.2下载kafka 1.3安装kafka 1.4验证kafka 2、连接kafka 3、在java中操作kafka 1、安装kafka 1.1确认jdk是否安装Ok java -version 1.2下载kafka wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-…

K8S之configMapsecret

job 第一个是初始化尝试,初始化尝试失败之后,会再重试两次。 配置资源管理: Secret Configmap*:1.2加入的新特征 1.18 Secret: 保存密码,token,敏感的k8s资源 这类数据可以存放在镜像当中,但是防止secret当中可以更方便的控…

爬虫—根据股票代码实时抓取股票信息

爬虫—根据股票代码实时抓取股票信息 数据来源网址:https://xueqiu.com 目标:根据输入的股票代码和证券所,实时抓取股票的交易信息 源码如下: import requests from lxml import etree# 本案例数据需要账号登录之后才能获取&a…

MSSQL-识别扩展extended event(扩展事件)中的时间单位

经常使用sqlserver extended event(扩展事件),但是总是忘记扩展事件使用的时间单位,不确定它们是 秒、毫秒、还是微秒? 以下下代码能够从 相关DMV中提取description字段内容来识别时间单位: SELECT [p].[name] [package_name],[o…

Androidmanifest文件加固和对抗

前言 恶意软件为了不让我们很容易反编译一个apk,会对androidmanifest文件进行魔改加固,本文探索androidmanifest加固的常见手法以及对抗方法。这里提供一个恶意样本的androidmanifest.xml文件,我们学完之后可以动手实践。 1、Androidmanife…

加密经济学:Web3时代的新经济模型

随着Web3技术的迅猛发展,我们正迈入一个全新的数字经济时代。加密经济学作为这一时代的核心,不仅在数字货币领域崭露头角,更是重新定义了传统经济模型,为我们开启了一个充满创新和机遇的新纪元。 1. 去中心化的经济体系 Web3时代…

c++中的以及链表的基础使用

c中的& 通俗的立减即为对一个变量起别名。(是和指针有区别的) 以下为两个示例程序: 通过&代替了以往对地址的传递。从而实现了对a和b的交换。 p为a的别名,对p操作即为对a操作。故最后输出a的值为10. 链表的基础应用 链…

C语言:底层剖析——函数栈帧的创建和销毁

一、究竟什么是函数栈帧 C语言的使用是面向过程的, 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。所以C语言的程序都是以函数作为基本单位的,如果能够深入理解…

Vue项目 css下载字体并引入使用

1.下载字体 下载字体:字体下载,字体大全,免费字体下载,在线字体|字客网字客网是全球知名的字体下载与分享网站,齐全的中文,日文,韩文,英文,图标,美术设计,毛笔,钢笔,手写,书法字体大全,提供找字体,字体识别,字体下载,在线字体预览,字体转换,字体设计等服务。…

【idea】idea插件编写教程,博主原创idea插件 欢迎下载

前言:经常使用Objects.equals(a,b)方法的同学 应该或多或少都会因为粗心而传错参, 例如日常开发中 我们使用Objects.equals去比较 status(入参),statusEnum(枚举), 很容易忘记statusEnum.getCode() 或 statusEnum.getVaule() ,再比…

运筹说 第90期 | 网络计划-图解评审法

前述章节的网络计划方法主要研究以时间为主要参数的确定型网络模型,其中的概率型网络模型也只讨论工作公式的不确定性,并没有对事项或工作的不确定性进行讨论。由于这类网络模型的建立有严格的规则,大量研究与开发类计划尚无法表达。因从本期…

程序翻译过程详解

一、快速认识gcc和g gcc和g都是编译器,C语言可以用gcc或者是g来进行编译,但推荐使用gcc来进行编译。但C语言只能用g编译器来进行编译。 1.1语言和编译器的自举的过程 为了更好地认识gcc和g,在这里可以给大家介绍一下语言和编译器的自举的过程…