数据库系统概述

什么是数据库?

数据库是一个以某种有组织的方式存储的数据集合。也就是:保存有组织数据的容器(一个文件或一组文件)数据库

为何咱们须要数据库?

毫无疑问,数据库是用来存储数据的。咱们对excel确定不会陌生,excel也是用来存储数据。那既然有excel这样很是好用的软件了,为何须要数据库呢??数组

  • excel存储的数据量太少了。因为咱们网络发展,excel的存储量远远不能支撑咱们的需求。
  • excel数据没法多人共享。excel只是一个单一的文件,只能是当前的用户使用并修改。
  • 数据安全性。若是硬盘奔溃了,excel的数据会丢失掉了。

数据库就解决了上面的问题,而且数据库以特殊的机制管理数据文件,对数据有极高的读写速度,大大超过了操做系统对常规文件的读写速度。安全

数据库系统的组成

数据库系统由三个层次组成:markdown

  • 数据库(dataBase)
    • 存放数据的仓库,按照必定的格式(有组织的方式)进行储存
  • 数据库管理系统(dataBase Manager System)
    • 创建、管理、维护数据库的系统软件
  • 数据库应用系统(dataBase Application System)
    • 使用到数据库技术的应用软件

这里写图片描述


数据描述与数据模型

理解数据描述

咱们在现实生活中描述一个事物是很是简单的,看到“一棵树”,就说是“一棵树”网络

但怎么把“一棵树“在计算机描述起来呢??计算机只识别0和1”一棵树“是不能直接存储到计算机上的数据结构

因而乎,咱们就把”一棵树“抽象出来,造成信息世界的概念模型。而后将概念模型的形式化成是DBMS支持的数据模型,存储在计算机中编码

简单来讲:数据描述就是将现实世界中的实物抽象出来,造成概念模型。把概念模型的形式转换成是DBMS支持的类型,而后存储到计算机中!操作系统


理解数据模型

数据模型主要用来描述数据!上边已经说了,当咱们想在计算机上存储现实事物的数据时,须要先抽象成概念模型。将概念模型转换成DBMS支持的数据模型,就能够把事物存储到计算机中!指针

数据模型通常由三个部分组成:excel

  • 数据结构(对象与对象之间的关系)
  • 数据操做(增删改查)
  • 完整性约束(限定数据是有必定规则的,好比:年龄不能为负数)

数据模型也经历了一个发展阶段:

①:层次模型,是一种树型(层次)结构来组织数据的数据模型。

这里写图片描述

优势:

  • 结构清晰,容易理解
  • 节点之间联系能够经过指针来实现,查询效率高

缺点:

  • 对于非层次结构的数据,表示起来很是麻烦,不直观!

②:网状模型, 是用有向图结构来组织数据的数据模型

这里写图片描述

优势:

  • 很是灵活,更能直接地描述现实世界的事物

缺点:

  • 结构复杂,很是难维护

③:关系模型,是一种用二维表格结构表示数据及数据之间联系的数据模型。

关系模型是咱们如今用得最多的数据模型。

优势:

  • 数据结构简单、清晰。不管实体仍是实体集,都用相对应的二维表来表示!
  • 有严格的数学理论根据。各类关系运算(后面会讲到)

缺点:

  • 查询效率比非关系模型查,尤为是多表查询的时候!

术语(基本概念)

咱们对照着课程关系表来说解吧:

实体(Entity)

客观存在并可相互区别的事物称之为实体。能够当作是Java类

例子:(课程关系表)就是一个实体。


属性(Attribute)

实体所具备的某一特性称之为属性。能够当作是Java类的成员变量。属性在数据库中又称为字段(或者是列)

例子:(课程名),(课程号)、(学时)就是属性名。


元组

除含有属性名所在的行以外的其余行称之为元组。

下面的每一行数据都称之为元组
(C401001 数据结构 70)
(C401002 操做系统 80)
(C402001 计算机原理 60)


码(Key)

码也被称做是关键字。它能够惟一标识一个实体

候选码和主码:

  • 候选码:若是一组属性集能惟一地标识一个关系中的元组而又不含有多余的属性,则称该属性集为该关系的候选码 。(候选码可能不止有一个
  • 主码:用户选定的那个候选键称为主键

例子:邮寄地址(城市名,街道名,邮政编码,单位名,收件人)

它有两个候选键:{城市名,街道名} 和 {街道名,邮政编码}

若是我选取{城市名,街道名}做为惟一标识实体的属性,那么{城市名,街道名} 就是主码


关系模式

关系名和其属性集合的组合称之为关系模式

关系模式例子:课程关系表(课程号,课程名,学时)

提示:关系模型就是关系模式组成的集合


关系模型要求元组的每个份量都是原子性的,也就是说,它必须属于某种元素类型,如Integer、String等等,不能是列,集合,记录,数组!

域就表明着该元组中每一个份量的类型,从上面的图咱们能够看出,它的域是这样的:课程号:string,课程名:string,学时:int


数据库体系内部结构

数据库的体系内部结构咱们能够分为三层:

  • 外模式
  • 逻辑模式
  • 内模式

三级模式的位置:

这里写图片描述

三级模式的做用:

这里写图片描述

逻辑模式

逻辑模式是对数据库所有数据的总体逻辑结构的描述

例子:如今我有一个数据库,操做权限、角色、用户之间的关系

因而有了如下的关系模式

  • 权限关系(权限编号,权限名称,权限描述)
  • 角色关系(角色编号,角色名称,角色描述)
  • 用户关系(用户编号,用户名称,用户密码)

在数据库中全部关系模式的集合就组成了逻辑模式!


外模式

外模式是对数据库用户能看见和使用的局部数据逻辑结构的描述,是与某一应用有关的数据的逻辑表示

外模式是能够有多个的,外模式是用户和DBAS的接口,是对局部逻辑结构的描述!

当用户应用程序只须要显示用户名称和密码时:

  • 用户关系(用户名称,用户密码)

在数据库中操做局部逻辑结构就称做为外模式


内模式

内模式是对数据库表物理存储结构的描述。它定义了数据的内部记录类型、记录寻址技术、索引和文件的组织方式及数据控制方面的内容

这里写图片描述


DB内部体系结构的两级映像

两级映像分别是:

  • 外模式和逻辑模式的映像
  • 逻辑模式和内模式的映像

这里写图片描述

提出两级映射的概念有什么用呢?为何须要有这两级映像呢??

  • 当数据库的逻辑模式结构因某种缘由修改时,只要没有改变逻辑模式中与外模式定义有关的属性及与其关系模式名的隶属关系,就可以使外模式保持不变,从而不需修改应用程序
  • 当数据库的内模式因为某种缘由要修改时,可经过对逻辑模式与内模式之间的映象的修改,使逻辑模式尽量地保持不变,实现内模式的改变尽量地不修改应用程序。

也就说:在改变内部结构的时候,只要不会触及外部的数据时,外部的数据并不须要作改变。两级映像概念的提出也就是程序中耦合的问题!

相关文章
相关标签/搜索