前言
本文的所有知识点、图片均来自《数据库系统概念》(黑宝书)、山东大学李晖老师PPT。不可用于商业用途转发。
四个基本概念
一、数据
数据不是依赖于处理过程的附属品而是现实世界中独立存在的对象
定义
1、描述事务的符号记录
2、显示世界运转留下的痕迹
种类
数值、字符、BLOB、CLOB、data、time
特点
数据与语义是不可分的(解释数据仅有value无法理解数据,没有确定语义的数据没有意义)
二、数据库
数据库(DB)是长期存储再计算机内,有组织、可共享的大量数据集合。底层是文件系统,靠操作系统实现管理。
长期:意味着要处理原子性问题,发生故障能够恢复数据
有组织:意味着物理层和逻辑层两个level的处理,使得数据存储利用率高、存取效率高
共享:意味着能够并发操作
大量:文件系统的处理上限为100w行记录,数据库远大于这个值
三、数据库管理系统(DBMS)
数据库是数据集合,生成并管理数据库的程序就是数据库管理系统,例如:MySQL、Oracel等。当然数据库管理系统也要提供访问这些数据、可视化操作的功能
DBMS和编译系统同等地位,他们都能直接接触操作系统对计算机硬件进行操作
四、 数据库系统(DBS)
数据库系统是一个集成的概念,包括数据库管理系统、应用程序、数据库、数据库开发人员、用户
数据库系统和文件系统对比
文件系统的弊端
一、数据的冗余和不一致(redundancy and inconsistency)
二、数据访问困难(access)
三、数据孤立(data isolation):数据格式、类型在长期运营中可能发生变化,彼此孤立,需要重新写程序
四、完整性问题(integrity):数据库中所有数据应该满足某些特定的一致性约束条件
五、原子性问题(atomicity promblem):原子的——要么一起发生,要么一起不发生。系统故障时如何处理恢复
六、并发访问异常(concurrent):不同应用程序同时访问时,需要去合理管理使其有序
七、安全性问题
数据视图
数据库系统的一个主要功能就是给用户提供数据的抽象视图,也就是说系统隐藏关于数据存储和维护的细节,仅仅提供用户它所需要的数据视图,用于让用户能够使用数据
数据抽象
为了隐藏数据存储和维护的细节,数据库设计师将数据库分为了几个层次,不同层次对不同人开放。主要有物理层、逻辑层和视图层。
物理层
描述数据实际上的存储方式,描述底层的数据结构
逻辑层
描述数据库中存储了什么数据(数据类型、数据种类),以及这些数据间存在什么关系。学习数据库、做前后端开发主要研究的还是逻辑层的设计和开发
视图层
视图层就是针对不同用户群体,给他们提供逻辑层的部分信息。其他不需要的信息在视图层进行隐藏。同时,屏蔽数据类型等细节,也不予完整的数据库访问权
总结(见图)
实例和模式:
模式
数据库的总体设计叫做数据库模式
模式分类:
物理模式(内模式):在物理层描述数据库的设计
逻辑模式(模式):在逻辑层面描述数据库的设计(也是前后端开发人员主要的工作)
子模式(外模式):在视图层面描述数据库不同视图的分配
模式映像
三级模式有两级映像。映像存在的意义就是在底层模式发生变化的时候,外模式下的应用程序不会受到影响。保证各个模式中的数据的独立性。
实例
特定时刻存储在数据库中的信息的集合
数据模型
关系模型:目前主流的数据库模型。更加详细的解释在后续文章中给出。
实体-联系模型:底层思想:现实世界由一组称为实体的对象及这些对象间的联系构成
本文到这里就结束啦~~又肝到了12点 ,求求点个赞吧