数据库

数据库系统理论概述(一)

本文主要讲述: 
– 1.数据库和数据库管理系统 
– 2.使用传统的文件系统对大量数据管理存在的问题 
– 3.常见的数据库系统模型 
– 4.数据库视图 
– 5.数据库语言 
– 6.数据存储和查询

1.什么是数据库,什么是数据库管理系统?

如今是一个大数据时代,数据充斥着我们生活的方方面面,那么究竟什么是数据库呢?其实从字面上理解就是数据仓库,就是数据的集合。那么问题来了,当数据的量达到一定程度之后,对数据的管理就会变得十分困难。而数据库的出现就是为了解决这个问题。那什么是数据库呢?数据库就是由互相关联的数据集合和一组用以访问这些数据的程序组成的系统。

2.为什么不用文件系统管理数据呢?

我们都知道,计算机要对数据进行处理,要先把存储在存储设备上的文件数据载入内存,然后才能对其进行处理和加工,那如果我们要把其中某些符合条件的行或列抽取出来,那会是十分困难的事情,使用文件系统对数据进行管理有如下问题:

  • 数据的冗余和不一致:由于不同的文件拥有不同的结构,相同的信息可能在好几个地方重复存储,例如老师属于两个系,老师的信息可能重复记录,导致存储和访问开销增大,还可能导致数据的不一致。

  • 数据访问困难:在一个文件中只需要找出某个符合条件的行或列时,就会显得十分困难。例如,在存储学生信息的文件中找出性别为男的所有学生的全部信息,只使用文件系统几乎是不可能的。

  • 数据孤立:由于数据分散在不同的文件中,所以编写程序来检索信息就会变得十分困难。

  • 原子性问题:所谓原子性就是指操作要么不发生,要么全发生。最经典的就是转账,比如A账户里有500元,B账户里没钱,A要转100到B账户,但是当A转出还没来得及存入B账户时系统出现故障,就造成了严重的后果。而在传统的文件处理系统中是很难保证原子性的。

  • 并发访问控制异常:为了提高系统的总体性能,很多系统都允许多个用户并发更新数据。例如对银行账户的操作,银行账户既允许网络支付,也可以使用银行卡支付,当两个人同时对一个账户进行操作时,就会导致数据的不一致,。

  • 安全性问题:并非数据库中的所有用户都有权限来访问数据。而使用文件系统对其管理的话,应用程序总是会加入到文件处理系统中来,这久带来了安全隐患。

    所以,这些原因就使得人们不得不去开发专业的数据库管理系统,这也正是数据库管理系统出现的原因。

3.常见的数据库系统模型

数据库结构的基础是数据模型。数据模型是描述数据,数据之间的关系,数据语义以及一致性约束的概念工具。常见的数据模型有:

  • 网状模型

  • 层次数据模型

  • 关系模型

  • 实体-联系模型之间的联系构成。

  • 结构化模型

  • 半结构化模型

4.数据库视图

数据库系统的的一个只要目的就是给用户提供数据的抽象视图,为了用户与系统的交互,通过如下几个层次的抽象来屏蔽复杂性: 
– 物理层:最低层次的抽象,描述数据在物理存储设备上如何存储。 
– 逻辑层:描述数据库中存储什么数据以及这些数据之间的联系,逻辑层通过相对简单的结构描述了整个数据库。 
– 视图层:最高层次的抽象,之描述整个数据库的一部分内容,数据库抽象的定义就是为了使用户与数据库系统的交互更简单。

5.数据库语言

数据库系统提供了数据定义语言(DDL,data-definition language)以及数据操纵语言(DML,data-manipulation language)来完成对数据库的管理。提供数据库管理的典型的语言是SQL语言。

  1. 数据库定义语言:定义数据库模式的实现细节,数据库系统所使用的存储结构和访问方式也是通过数据库定义语言来实现,而数据库定义语言中最重要的一个部分就是定义数据属性的约束条件,DDL定义的内容具体包括:

    • 域约束: 每个属性必须对应一个所有可能的取值构成的域,域约束是完整性约束的最基本形式。

    • 参照完整性:一个关系(表)中,给定属性集上的取值也在另一类关系的某一个属性的集的取值中出现。

    • 断言: 一个断言就是数据库设计需要时刻满足的某一条件,域约束和参照完整性是断言的特殊形式,但是,还有好多约束不能仅用这几个特殊的形式来表示。

    • 授权: 对于不同的用户在数据库中的不同数据值的访问上允许不同的访问类型,这些区别通过授权来表达,常见的有读授权,插入授权,更新授权,删除授权。

  2. 数据库操纵语言:用户同过数据库操纵语言来访问或操纵那些按照某种适当数据模型组织起来的数据。访问类型有:

    • 对存储在数据库中的数据进行检索。

    • 向数据库中插入信息

    • 从数据库中删除信息

    • 修改数据库中的信息

6.数据存储和查询

数据库系统划分为不同的模块,每个模块完成整个系统的一部分。数据库系统的功能部件大致分为存储管理器和查询管理处理部件。

1存储管理器

存储管理器是数据库中负责在数据库存储底层数据与应用程序以及向系统提交的查询之间提供借口的部件,负责与文件管理器进行交互,存储管理器将各种DML语句翻译为底层文件系统命令,存储管理器的部件包括:

2查询处理器:

    • DDL解释器:解释DDL语句并将这些定义的语言记录在数据字典中。

    • DML解释器:将查询语言中的DML语句翻译为一个执行方案,包括一系列查询执行引擎能理解的低级指令 。

    • 查询执行引擎:执行由DML编译产生的低级指令。

    • 权限及完整性管理器:检测是否满足完整性约束,并检查试图访问数据的用户的权限。

    • 事务管理器:保证即使发生了故障,数据库也要保持一致的状态。

    • 文件管理器:管理磁盘的存储空间的分配

    • 缓冲区管理器:负责将数据从磁盘上加载至内存,并决定哪些文件应该存储在缓冲区中,缓冲区管理器是系统中关键的部分,因为它可以使数据库可以处理比内存更大的数据。

原创文章,作者:zhangbao,如若转载,请注明出处:http://www.178linux.com/55537

(0)
zhangbaozhangbao
上一篇 2016-10-30
下一篇 2016-10-30

相关推荐

  • 计算机的组成及其功能简述

    1、计算机的组成 (1)运算器、控制器、寄存器、缓存 –> CPU,Central Processing Unit (2)存储器 –> Memory (3)输入设备 –> Keyboard、Mouse and so on (4)输出设备 –> Displayer and so on (5…

    Linux干货 2016-09-19
  • N22-妙手-第五周博客作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost grub]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,…

    Linux干货 2016-09-19
  • iptables初探

    iptables 简述 基础知识 命令使用 简述 iptables是什么?netfilter又是什么? iptables是位于用户控件的一个防火墙规则控制管理工具。netfilter是位于内核中的真正的防火墙,由五个钩子函数(hooks)而组成。 iptables的作用是什么? 用来添加,删除,管理netfilter规则。 netfilter的作用是什么? …

    2016-05-31
  • vim编辑器作业

    1、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符 [root@wzc tmp]# vim profile    # By default, we want umask to …

    Linux干货 2016-08-12
  • N26_第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 演示: [root@joylin test]# who|cut -d” ” -f1|uniq root gentoo [root@joylin test]# who|cut -d” ” -f1|uniq -c 5 root 1 gentoo 或者 [root@joyl…

    Linux干货 2017-02-21
  • 简单的shell脚本结合awk实现防止对web服务的dos攻击

    一 实验环境         鄙人使用的是centos 6.8操作系统   需要安装iptables(常见的linux系统貌似都会自动安装iptables)这条可以忽略   awk也需要安装没有的话就用yum装下吧       &…

    2017-04-24