数据库技术基础

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内部实现这三个抽象层次的联系和转换:

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

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

相关推荐
好奇的菜鸟3 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
tan180°3 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
满昕欢喜3 小时前
SQL Server从入门到项目实践(超值版)读书笔记 20
数据库·sql·sqlserver
优创学社24 小时前
基于springboot的社区生鲜团购系统
java·spring boot·后端
why技术4 小时前
Stack Overflow,轰然倒下!
前端·人工智能·后端
幽络源小助理4 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
Hello.Reader4 小时前
Redis 延迟排查与优化全攻略
数据库·redis·缓存
ai小鬼头5 小时前
AIStarter如何助力用户与创作者?Stable Diffusion一键管理教程!
后端·架构·github
简佐义的博客5 小时前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang
爬山算法5 小时前
MySQL(116)如何监控负载均衡状态?
数据库·mysql·负载均衡