数据库基础知识

Posted zmj97

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库基础知识相关的知识,希望对你有一定的参考价值。


title: 数据库基础知识
toc: true
date: 2018-09-29 08:36:52
categories:

  • Web

tags:

  • 数据库

数据库系统

数据库系统的组成

数据库系统是由数据库、数据库管理系统、支持数据库运行的软硬件环境、数据库应用软件和数据库管理员组成的。

  • 数据库:长期储存在计算机内、有组织的、可共享的大量数据的集合。
  • 数据库管理系统:DBMS,管理数据库的软件,是用户和数据库之间的接口,负责完成各项数据处理操作:数据定义、数据操纵、数据库运行管理、数据库的建立和维护。
  • 支持数据库运行的软硬件环境:有足够大的内存来保障数据库系统的运行,操作系统要提供对数据管理系统的支持等。
  • 数据库应用软件:由用户或第三方软件公司设计的有特殊用途的应用软件,实现用户和数据库管理系统之间的沟通和交流。例如图书管理系统等。
  • 数据库管理员:Database Administrator,DBA,负责建立、管理和维护数据的人员。主要职责包括:定义并存储数据库的内容、监督并控制数据库的使用、负责数据库的日常维护、必要时重组和改进数据库。

数据库的体系结构

数据库三级模式结构

模式是对数据库中全部数据的逻辑结构和特征的描述,仅仅涉及到“型”的描述,不涉及具体的值。

数据库由内模式、模式、外模式三级组成。

技术分享图片

  • 内模式:又称为存储模式,是对数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
  • 模式:又称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
  • 外模式:通常是模式的一个子集,又称为子模式。外模式面向的是用户,是用户眼中的数据库,所以外模式又称为用户视图。

三级模式之间的映射

  • 外模式/模式间的映射:模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对于同一个模式,可以有任意个外模式。对于每个外模式,数据库系统都有一个外模式/模式之间的映射。
  • 模式/内模式间的映射:数据库只有唯一的模式和内模式,因此它们之间的映射也是唯一的,这个映射定义了数据库全局逻辑结构和存储结构之间的对应关系。

数据模型

概念

数据模型是一种模型,是现实世界数据特征的抽象。

数据模型通常包括数据结构、数据操作和完整性约束三部分。

  • 数据结构:是所研究对象的集合,描述的是数据库结构的组成、特性和其互相之间的联系。数据库系统通常按数据结构的类型来命名数据模型,如关系结构的模型命名为关系模型。
  • 数据操作:数据库中各种对象的实例允许执行的操作的集合。主要包括检索和维护两大类。
  • 完整性约束:为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。

实体与关系

  • 实体:客观存在并可相互区分的事物,一个实体可以用若干属性来描述。具有相同属性的实体集合称为实体集。
  • 关系:有一对一、一对多、多对多三种。

常见的数据模型

  • 层次模型:数据结构是一颗有向树,特征是:
    • 有且仅有一个结点没有父结点,即根结点
    • 除了根结点,其他结点有且只有一个父结点
  • 网状模型:结点间可以任意发生关系,特征是:
    • 可以有一个以上的结点没有父结点
    • 允许结点有多于一个的父结点
  • 关系模型:用二维表结构表示实体与实体之间的联系。E-R方法(实体-关系方法)是表示实体与关系的最常用的方法。在E-R图中:
    • 长方形表示实体
    • 椭圆表示属性
    • 菱形表示关系
    • 关系与实体间用实线连接,并注明关系的类型

技术分享图片

技术分享图片

技术分享图片

关系数据库的规范化

为了使数据库设计更加优化,提出了规范化理论。

关系数据库必须满足一定的要求,即满足不同的范式。

在第一范式(1NF)的基础上进一步满足更多要求的称为第二范式(2NF),以此类推。一般来说,数据库只要满足第三范式(3NF)即可。

  • 第一范式(1NF):无重复的列,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成。
  • 第二范式(2NF):先满足1NF,同时要求属性完全依赖于主键
  • 第三范式(3NF):先满足2NF,同时要求不存在传递依赖关系



以上是关于数据库基础知识的主要内容,如果未能解决你的问题,请参考以下文章

JAVA基础入门教程 -

python---基础知识回顾数据库基础操作(sqlite和mysql)

测试复习大纲

SQL基础教程的介绍

数据分析指北 - 基础(基础数据操作之一)

网络基础+数据库基础笔记