当前位置: 首页 > article >正文

数据库技术基础

1 数据库系统概述

1.1 数据库的4个概念

(1)数据(信息)

数据:指已记录或可获取的事实,是数据库存储的最小单元。除文本、数字外,还有图形、图像、声音等。  数据由于能为用户利用才被记录和保存的。

信息:指用户处于某种目的以某种手段(活动)获取的数据。

活动:数据搜索、数据处理、数据操纵。  

总结起来就是:

例:电话号码本--->数据,张三的电话号码--->信息

(2)数据库

数据库指长期存储在计算机内、有组织、可共享的大量数据的集合。 数据库的目的是将数据组织起来,以便用户直接从数据中获得信息。数据库的结构由数据库的元数据解释。

数据库元数据包含以下信息:

        数据结构名称(如:表名、列名);

        数据类型(如:字符型、整数型);

        数据描述(如:Sname代表学生姓名);

        其他描述数据库所存数据特征的信息。

(3)数据库管理系统DBMS

DBMS是位于用户与操作系统之间的一层数据管理软件,实现对数据库数据对象的统一管理、控制和维护。

DBMS的主要功能:

①数据定义:DBMS提供数据定义语言DDL,供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。相关信息被存放在数据字典中。

②数据操作:DBMS提供数据操作语言DML,供用户实现对数据的追加、删除、更新、查询等操作。 数据库的运行管理:并发控制、安全性控制、完整性控制、日志管理、事务管理与恢复。这些功能保证了数据库系统的正常运行。

③数据的组织、存储与管理:组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。

④数据库的维护:这一部分包括数据载入、转换、转储、数据库的重组合重构以及性能监控等功能。

⑤通信:负责数据的传送,DBMS与其他软件系统的通信功能以及数据库之间的互操作功能。

DBMS的层次结构如下图:

(4)数据库系统DBS

基于计算机系统,目的是在用户和数据库信息之间保证高效的交互。

数据库系统的三个组成部分:数据库、数据库管理系统(DBMS)和前端应用程序

1.2 数据管理技术及其发展

数据处理: 数据处理是将数据转换成信息,包括:数据的收集、管理、加工利用、信息输出。  

数据管理: 数据管理是数据处理的中心问题,包括对数据的分类、组织、编码、存储、检索和维护。  

数据管理技术的发展:

人工管理(20世纪50年代中期之前)、文件系统(20世纪50年代后期-60年代中期)、数据库系统(20世纪60年代 ····················       后期)

1.3 数据库系统的特点

① 数据结构化:实现整体结构化,理解与文件系统的区别。 

②数据的共享性高、冗余度低且易扩充 :数据的共享不局限于某个局部应用,高度的数据共享大大减少了数据冗余,保证数据的一致性。  

③数据独立性高:

数据独立性:应用程序对数据结构的依赖程度。    

逻辑独立性与物理独立性

④数据由数据库管理系统(DBMS)统一管理和控制

2 数据模型

2.1 数据模型概述

模型:对现实世界中复杂对象的模拟与抽象。例如,军事上用的沙盘、航模、建筑模型、地图等。 数据模型是对现实世界中相关实体数据特征的抽象。

数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合,是数据库系统的核心基础

三个世界:现实世界、信息世界和机器世界

抽象过程: 现实世界中的客观对象抽象为概念模型; 把概念模型转换为某一DBMS支持的数据模型。 (概念模型是现实世界到机器世界的一个中间层次)  

两类数据模型: 信息世界的概念模型、机器世界的逻辑模型和物理模型(也称结构数据模型) 

数据模型的三要素数据结构数据操作数据的完整性约束。  

常用的数据模型: 概念模型:实体-联系模型(E-R模型) 结构数据模型:关系模型、层次模型、网状模型等。

概念模型 :是按用户的观点来对数据和信息建模,即:信息世界的建模。    

逻辑模型:数据库的逻辑结构。  

物理模型:描述数据在存储介质上的存储方式和存取方法。

2.2概念模型

信息世界的数据模型(建模工具)。

作用:需求分析的可视化,设计人员与用户之间交流的语言。

信息世界中的基本概念:实体、属性、码、实体型、实体集、联系。

概念模型的一种常用方法:实体-联系方法(实体-联系模型,E-R模型),是一种用E-R图描述(抽象)现实世界的概念模型。

2.3层次模型

层次模型是数据库系统中最早出现的数据模型

层次数据库系统的典型代表是IBM公司的IMS(Information Management System)

层次模型用树形结构来表示各类实体以及实体间的联系

基本的层次联系:

满足下面两个条件的基本层次联系的集合为层次模型:

        1. 有且只有一个结点没有双亲结点,这个结点称为根结点

        2. 根以外的其它结点有且只有一个双亲结点

又如下关系:


层次模型的数据操纵:查询、插入、删除、更新

层次模型的完整性约束条件

        无相应的双亲结点值就不能插入子女结点值;

        如果删除双亲结点值,则相应的子女结点值也被同时删除;

        更新操作时,应更新所有相应记录,以保证数据的一致性。  

多对多联系在层次模型中的表示

        方法:将多对多联系分解成一对多联系

        分解方法:冗余结点法、虚拟结点法

2.4网状模型

网状数据库系统采用网状模型作为数据的组织方式

典型代表是DBTG系统: 70年代由数据系统语言研究会( CODASYL )下属的DBTG提出的一个系统方案。这奠定了数据库系统的基本概念、方法和技术

实际系统

        -Cullinet  Software  Inc.公司的 IDMS

        -Univac公司的 DMS1100

        -Honeywell公司的IDS/2

        -HP公司的IMAGE

网状模型的数据结构

满足下面两个条件的基本层次联系的集合为网状模型:

        1. 允许一个以上的结点无双亲;

        2. 一个结点可以有多于一个的双亲。

网状模型中子女结点与双亲结点的联系可以不唯一,要为每个联系命名,并指出与该联系有关的双亲记录和子女记录 。

网状模型结构示意

多对多联系在网状模型中的表示

2.5关系模型

关系数据库系统采用关系模型作为数据的组织方式

1970年IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型

计算机厂商新推出的数据库管理系统几乎都支持关系模型

关系模型的数据结构      

在用户观点下,关系模型由一组关系组成。每个关系的逻辑结构是一张二维表,它由(元组)和(属性)组成。


关系模型中的一些术语:  

        关系(Relation):一个关系对应通常说的一张表  

        元组(Tuple):表中的一行即为一个元组  属性(Attribute):表中的一列即为一个属性(属性名)  

        主码(Key):表中的某个属性组,可以唯一确定一个元组。  

        域(Domain):属性的取值范围。  

        分量:元组中的一个属性值。  

        关系模式:对关系的描述     

                关系名(属性1,属性2,…,属性n)     

                学生(学号,姓名,年龄,性别,系,年级)

注意:关系必须是规范化的,满足一定的规范条件!       

关系中的每一个分量必须是一个不可分的数据项。      

表中的工资和扣除是可分的数据项,不符合关系模型要求!


关系模型的数据操作

数据操作是集合操作,操作对象和操作结果都是关系

操作:查询、插入、删除、更新

数据操作是集合操作,操作对象和操作结果都是关系(元组的集合)

存取路径对用户隐蔽,只要指出“做什么”,不必详细说明“怎么做”

关系的完整性约束条件

        实体完整性

        参照完整性

        用户定义的完整性

关系模型的存储结构

实体及实体间的联系都用来表示

表以文件形式存储  

        有的DBMS一个表对应一个操作系统文件  

        有的DBMS自己设计文件结构

3 数据库系统的结构

数据库系统的内部结构-模式结构

从数据库管理系统角度看,数据库系统通常采用三级模式结构,是数据库系统的内部结构 。

 数据库系统的外部结构-体系结构

从数据库最终用户角度看(数据库系统的体系结构) ,数据库系统的结构分为: 单用户结构、主从式结构、分布式结构、客户/服务器 浏览器/应用服务器/数据库服务器多层结构等

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

        模   式:数据库整体逻辑结构

        外模式:用户的局部逻辑结构

        内模式:数据库的物理结构

数据库的二级映像功能与数据独立性

三级模式是对数据的三个抽象级别

二级映象在DBMS内部实现这三个抽象层次的联系和转换:

        外模式/模式映像:实现数据的逻辑独立性

        模式/内模式映像 :实现数据的物理独立性


http://www.kler.cn/a/534541.html

相关文章:

  • Python自动化测试selenium指定截图文件名方法
  • Android 常用命令和工具解析之Battery Historian
  • 【高阶数据结构(一)】:LRU Cache
  • react18新增了哪些特性
  • 蓝桥杯思维训练营(三)
  • 算法随笔_39: 最多能完成排序的块_方法2
  • Certum OV企业型通配符SSL
  • 常用工具类——Collections集合框架
  • c++ 基础 计算机的内存和寻址机制
  • Redis面试题总结(题目来源JavaGuide)
  • LeetCode 3442.奇偶频次间的最大差值 I
  • ASP.NET Core筛选器Filter
  • Vue3.5常用特性整理
  • 一、tsp学习笔记——开发环境搭建
  • 计算机网络笔记再战——理解几个经典的协议6——TCP与UDP
  • Mysql-增删改查(知识点总结)
  • WPS的word文档加密
  • module ‘matplotlib.cm‘ has no attribute ‘get_cmap‘
  • 在https下引用IC卡读卡器web插件
  • LeetCode 257.二叉树的所有路径
  • BUU10 [极客大挑战 2019]LoveSQL1
  • RK3576——USB3.2 OTG无法识别到USB设备
  • docker容器编排工具 docker compose
  • 【Elasticsearch】 邻接矩阵聚合(Adjacency Matrix Aggregation)
  • ASP.NET Core中间件Markdown转换器
  • 数据加载器--不同文档数据格式的加载方法