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

数据库基础

数据库基本概念

概述

数据 :是数据库中存储的基本对象,是描述事物的符号记录。
数据的分类 :文本、图形、图像、音频、视频等。
数据库 (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模型中,使用椭圆表示属性(一般没有)、长方形表示实体、菱形表示联系,联系的两端要填写联系类型,示例如下图:

实体 :客观存在并可相互区别的事物。可以是具体的人、事、物或抽象概念。如人、汽车、图书、

账户、贷款。

  • 弱实体和强实体:弱实体依赖于强实体的存在而存在。
  • 实体集:具有相同类型和共享相同属性的实体的集合,如学生、课程。
    属性:实体所具有的特性。
  • 属性分类:简单属性和复合属性;单值属性和多值属性;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记录数。
投影(π) :实际是按条件选择某关系模式中的某列,列也可以用数字表示。
选择(σ):实际是按条件选择某关系模式中的某条记录。

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

相关推荐
Ahern_39 分钟前
Oracle 普通表至分区表的分区交换
大数据·数据库·sql·oracle
夜半被帅醒1 小时前
MySQL 数据库优化详解【Java数据库调优】
java·数据库·mysql
不爱学习的啊Biao1 小时前
【13】MySQL如何选择合适的索引?
android·数据库·mysql
破 风1 小时前
SpringBoot 集成 MongoDB
数据库·mongodb
Rverdoser1 小时前
MySQL-MVCC(多版本并发控制)
数据库·mysql
m0_748233642 小时前
SQL数组常用函数记录(Map篇)
java·数据库·sql
dowhileprogramming2 小时前
Python 中的迭代器
linux·数据库·python
0zxm3 小时前
08 Django - Django媒体文件&静态文件&文件上传
数据库·后端·python·django·sqlite
Minxinbb7 小时前
MySQL中Performance Schema库的详解(上)
数据库·mysql·dba
mmsx8 小时前
android sqlite 数据库简单封装示例(java)
android·java·数据库