Mysql(14):数据库基础

Wesley13
• 阅读 362

2018/1/3

一、数据库系统

数据库系统(Database System,DBS),是由数据库及其管理软件组成的系统。
       数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质 、处理对象和管理系统的集合体。

Mysql(14):数据库基础

图1

1.1 数据库系统一般由4个部分组成:

(1)数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。
(2)硬件:构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要。
(3)软件:包括操作系统、数据库管理系统及应用程序。数据库管理系统(database management system,DBMS)是数据库系统的核心软件,是在操作系统的支持下工作,解决如何科学地组织和存储数据,如何高效获取和维护数据的系统软件。其主要功能包括:数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立与维护。
(4)人员:主要有4类。第一类为系统分析员和数据库设计人员:系统分析员负责应用系统的需求分析和规范说明,他们和用户及数据库管理员一起确定系统的硬件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。第二类为应用程序员,负责编写使用数据库的应用程序。这些应用程序可对数据进行检索、建立、删除或修改。第三类为最终用户,他们利用系统的接口或查询语言访问数据库。第四类用户是数据库管理员(data base administrator,DBA),负责数据库的总体信息控制。DBA的具体职责包括:具体数据库中的信息内容和结构,决定数据库的存储结构和存取策略,定义数据库的安全性要求和完整性约束条件,监控数据库的使用和运行,负责数据库的性能改进、数据库的重组和重构,以提高系统的性能。

Mysql(14):数据库基础

图2

1.2 特点 :

  1. 数据的结构化,数据的共享性好,数据的独立性好,数据存储粒度小,数据管理系统,为用户提供了友好的接口。
  2. 数据库系统的核心和基础,是数据模型,现有的数据库系统均是基于某种数据模型的。
  3. 数据库系统的核心是数据库管理系统(DBMS)。
  4. 数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。

1.3 基本要求:

对数据库系统的基本要求是:
①能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。
②冗余数据少,数据共享程度高。
③系统的用户接口简单,用户容易掌握,使用方便。
④能确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。
⑤有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。
⑥具有可修改性和可扩充性。
⑦能够充分描述数据间的内在联系。

1.4 数据模式:

数据模型是信息模型在数据世界中的表示形式。可将数据模型分为三类:层次模型、网状模型和关系模型。
(1)层次模型
层次模型是一种用树形结构描述实体及其之间关系的数据模型。在这种结构中,每一个记录类型都是用节点表示,记录类型之间的联系则用结点之间的有向线段来表示。每一个双亲结点可以有多个子节点但是每一个子节点只能有一个双亲结点。这种结构决定了采用层次模型作为数系组织方式的层次数据库系统只能处理一对多的实体联系。

Mysql(14):数据库基础

图3

(2)网状模型
网状模型允许一个结点可以同时拥有多个双亲结点和子节点。因而同层次模型相比,网状结构更具有普遍性,能够直接地描述现实世界的实体。也可以认为层次模型是网状模型的一个特例。

Mysql(14):数据库基础

图4

(3)关系模型
关系模型是采用二维表格结构表达实体类型及实体间联系的数据模型,它的基本假定是所有数据都表示为数学上的关系。

Mysql(14):数据库基础

图5

1.5 常见数据库系统

MySQL:  MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。

       SQL Server: SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。

Oracle:  Oracle产品系列齐全,几乎囊括所有应用领域,大型,完善,安全,可以支持多个实例同时运行,功能强。能在所有主流平台上运行。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。

1.6 数据库系统三级模式结构

数据模式(Data schema)是一个数据库完整的数据描述形式。是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及到具体的值。

Mysql(14):数据库基础

图6

虽然实际的数据库管理系统产品种类很多,它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不相同,但它们在体系结构上通常具有相同的特征,即采用三级模式结构并提供两级映像功能。
数据视图(Data view)是指从某个角度看到的客观世界数据对象的特征。

外模式(External Schema):

外模式也称子模式(Subschema)或称用户模式(User’s schema)它是用户的数据视图,亦即是用户所见到的模式的一个部分,是与某一应用有关的数据的逻辑表示。它由概念模式推导而出,概念模式给出了系统全局的数据描述而外模式则给出每个用户的局部描述。一个概念模式可以有若干个外模式,每个用户只关心与它有关的模式,这样可以屏蔽大量无关信息且有利于数据保护,因此对用户极为有利。在一般的DBMS中都提供有相关的外模式描述语言(外模式DDL)。

Mysql(14):数据库基础

图7

概念模式(Conceptual Schema):

也称逻辑模式(logical Schema),简称模式(Schema),概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图,是数据库系统三级模式结构的中间层,此种描述是一种抽象的描述,它不涉及具体的硬件环境与平台,也与具体的软件环境无关。 概念模式主要描述数据的概念记录类型及数据以及它们间的关系,它还包括一些数据间的语义约束,对它的描述可用DBMS中的DDL语言定义。

内模式(Internal Schema),

也称存储模式(Storage Schema),又称物理模式(PhysicalSchema),它给出了数据库物理存储结构与物理存取方法的描述,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还不深入到设备级上(如磁盘及磁盘操作),但近年来有向设备级发展的趋势(如原始磁盘、磁盘分块技术等),DBMS一般提供相关的内模式描述语言(内模式DDL)。

Mysql(14):数据库基础

图8

三层模式体系结构的目的是将用户应用与物理数据库分离开来。在这个体系结构中,可以将模式定义在如下3个层次:

外部层(external level)或视图层(view level)包括许多外模式(externalschema)或用户视图(user view)。每个外模式描述的是一个特定用户组所感兴趣的那部分数据库,而对该用户组隐藏了数据库的其他部分。与概念层中介绍的一样,各个外模式通常都用一个表示数据模型实现,并且可能以高级数据模型的一个外模式设计为基础。
概念层(conceptual level)有一个概念模式(conceptual schema),它为用户群体描述了整个数据库的结构。概念模式隐藏了物理存储结构的细节,并重点描述实体、数据类型、关系、用户操作和约束。通常,实现了一个数据库系统之后,会使用一个表示数据模型来描述概念模式。这种实现概念模式通常以高级数据模型中的一个概念模式设计为基础。
内部层(internal level)有一个内模式(internal schema),它描述的是数据库的物理存储结构。内模式使用一个物理数据模型,全面描述了数据库中数据存储的全部细节和存取路径。

二级映射:

在各层间完成请求和结果转换的过程称为映射(mapping)。

(1)外-模式的映射

Mysql(14):数据库基础

图9

(2)模式-内模式的映射:

Mysql(14):数据库基础

图10

利用三层模式体系结构,可以更容易地实现真正的物理和逻辑数据独立性。映射可能很耗时,以至于降低了DBMS的效率。正因如此,很少有DBMS实现了完整的三层模式体系结构。

二级映像:

Mysql(14):数据库基础

图11

Mysql(14):数据库基础

图12

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这