【数据库原理 • 一】数据库系统概念

简介: 数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进,最常用的技术。当前互联网+与大数据,一切都建立在数据库之上,以数据说话,首先需要聚集数据、分析数据和管理数据,数据库技术已成为各种计算机系统的核心技术。数据库相关知识也已成为每个人必须掌握的知识。

一、数据库4个基本概念

1.1 数据(Data)

数据(Data)是信息的具体变现形式。在现实中的数据与其语义是不可分的。如93是一个数据,在不同语义下代表不同的意义:


语义1: 学生某门课的成绩

语义2: 某人的体重

语义3: 公司员工的人数


数据是大量存在的,在特定的语义(背景)下,就成为信息。


例如:

记录(张三,女,1996,苏州)就是数据。文字、图形、图像、声音等都是数据,各类数据必须数字化后才能加工处理。


1.2 数据库(DataBase,DB)

数据库(DataBase,简称DB)是一个存储数据的仓库。是数据和数据对象的集合。这种集合可以长期储存,具有确定的数据存储结构,同时能以安全可靠的方法进行数据的存储和检索。


当今世界,数据库非常广泛的应用在生活的方方面面。


例如:

12306保存了车次,售票等数据等等


1.3 数据库管理系统(DataBase Managemet System,DBMS)

数据库中数据量庞大,如何定义,操纵和管理 ?我们就需要用到数据库管理系统(DataBase Management System,简称DBMS),它是位于用户应用程序与操作系统之间的一层系统软件,用来操纵和管理数据库的软件,用于建立、使用和维护数据库。


在数据库管理系统中,他有如下功能:


数据定义功能:DBMS提供数据定义(DDL)语言,来定义数据库结构,并被保存在数据字典中。

数据存取功能:DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作(查询,插入,修改和删除)

数据库运行管理功能:DBMS提供数据控制功能,通过保证数据的安全性、完整性和并发控制等,实现对数据库的有效控制和管理,以确保数据正确有效

数据库的建立和维护功能:包括数据库初始数据的装入,数据库的转储、恢复、系统性能监视、分析等功能。

数据库的传输:DBMS提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。

常用的DBMS有Oracle、MySQL、Microsoft SQL Server等


1.4 数据库系统(DataBase System,DBS)

数据库系统(DataBase System,简称DBS)是指引入数据库技术后的整个计算机系统。能够实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的核心系统。


数据库系统主要包括3个部分:


计算机系统(软件、硬件和人)、数据库、数据库管理系统。


即DBS = 计算机系统 + DB + DBMS


微信图片_20230527155101.png


二、数据库技术的历史

2.1 数据库管理技术的历史

微信图片_20230527155105.png


人工管理阶段


数据不保存

数据由程序各自管理

一组数据只能对应一个程序

数据不具备独立性

文件系统阶段


数据可以长期的保存

数据由文件系统管理

数据可以结构化(记录内部是有结构的,整体无结构)

数据共享差,冗余度大

有了一定的独立性

数据面对的对象是某一个程序

数据库管理系统


数据库由DBMS管理

数据整体结构化

数据共享性高

高度的物理独立性和一定的逻辑独立性

数据控制能力由DBMS统一管理和控制

数据库管理技术各阶段比较分析:

微信图片_20230527155110.png

2.2 数据库的发展

数据库最早的起源是因为美国政府要管理庞大的火箭构件数据,要求IBM进行数据库的开发。


1968年诞生了层次数据库

微信图片_20230527155239.png



1969年诞生了网状数据库

微信图片_20230527155242.png



1970年诞生了关系数据库

微信图片_20230527155244.png


2.3 未来已来

新型数据库由普通数据库到与各种先进技术结合所形成的新型数据库:


OA⇐DB + Management Information System

Database Machine ⇐DB + Computer Architecture

Intelligent Database ⇐ DB + Artificial Intelligence

Distributed Database(DDB) ⇐ DB + Computer Network

Image Database / Multimedia Database ⇐ DB + Image

processing/ Multimedia processing

Temporal Database ⇐ DB + 时态技术处理

传感器数据库 RFID(Radio Frequency IDentification)射频识别技术,可以薄如纸张,小如豆粒。可以无线存储、发送数据。

微信图片_20230527155326.png


三、数据模型

现实生活中一张地图、一组建筑沙盘、一架航模飞机都是的模型。


而我们在数据库中,要把现实世界中存在的数据进行建模。比如我们把一个学校转化成数学模型,然后存储在计算机中。就需要经过一些数据抽象的步骤:


在数据库的开发过程中,我们把学校中的数据,通过概念结构的设计,转化成概念数据模型

然后对概念数据模型进行抽象,转化成数据模型(逻辑模型)

最终通过计算机物理模型的实现,有效的表达在计算机。


微信图片_20230527155343.png

3.1 层次模型

层次模型的数据结构是树型结构。满足下面两个条件的基本层次的集合为层次模型


有且只有一个结点没有双亲结点,该节点称为根结点

根结点以外的其他结点有且只有一个双亲结点

微信图片_20230527155406.png


根节点:最顶上的唯一的一个,所以A就是根结点

双亲节点:子节点的父节点就叫做双亲节点,如A是B、C的双亲节点


以下是教员学生层次数据模型

微信图片_20230527155411.png



以下是教员学生层次数据的值

微信图片_20230527155414.png



通过层次数据模型的数据结构可以清晰的了解到逻辑上对数据是怎么储存的(1对N)


层次模型的数据结构的优点 :


结构比较简单清晰

查询效率高

提供了良好的完整性支持

层次模型的数据结构的缺点


结点之间的多对多联系表示不自然

对插入和删除操作的限制多,应用程序的编写比较复杂

查询孩子结点必须通过双亲结点

层次命令趋于程序化

3.2 网状模型

网状模型的数据结构是是图型结构,任一结点都可以无双亲或有一个以上的双亲(N对N)。

微信图片_20230527155445.png



例如:

学生进行选修课程的时候可以选择多门课程,一门课程也可以被多名学生选择

微信图片_20230527155448.png



网状模型的优点:


能够更为直接地描述现实世界,如一个结点可以有多个双亲,具有良好的性能,存取效率较高

网状模型的缺点:


结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握

DDL、DML语言复杂,用户不容易使用

记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节。

3.3 关系模型

层次、网状模型基本上是面向专业人员的,与物理层关系密切。我们需要一种面向用户的数据模型,因此我们用二维表(关系)来描述实体及实体间联系的模型。

微信图片_20230527155452.png



例如,在现实生活中,有两张表,一个是班级信息表,一个是学生信息表。一名学生只能对应一个班级,班级中可以包含多名学生,这在现实生活中是一对多的联系,我们通过设置两个相同的属性列,就可以把这两个关系联接在一起,我们通过学生的ClaID就可以查询到班级相关的信息。

微信图片_20230527155454.png



CREATE TABLE Student

(StuID char(13),

StuName varchar(8),

StuBir smalldatetime,

StuSex char(2),

StuAddr varchar(30),

Cla_ID char(10) ,

CONSTRAINT class_Cla_ID FOREIGN key(Cla_ID) REFERENCES class(Cla_ID)

);


关系模型的优点:


建立在严格的数学概念的基础上

概念单一

关系模型的存取路径对用户透明

关系模型的缺点 :


存取路径对用户透明,查询效率往往不如格式化数据模型

为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度

数据模型是对现实世界存在的客观对象进行抽象认识。


按照抽象的层次可分为:概念模型->数据模型(逻辑模型)->物理模型。

数据模型(逻辑模型):层次模型,网状模型,关系模型,面向对象模型等,关系模型是我们最常用的一种数据模型

微信图片_20230527155459.png


四、模式与映像

在上面我们了解了数据库的工作坏境,应用程序是通过DBMS来访问数据库里的数据。

微信图片_20230527155550.png



例如,图书借阅系统。图书采买管理系统中有图书采买管理程序、图书借阅程序管理程序等很多程序,他们是怎么DBMS进行数据库的访问的?

微信图片_20230527155552.png



4.1 数据库的体系结构

从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构


从数据库最终用户角度看,数据库系统的结构分为:

微信图片_20230527155555.png



4.2 模式(Schema)

模式(Schema)是数据库逻辑结构和特征的描述,是型的描述,不涉及具体值, 反映的是数据的结构及其联系。


4.3 三级模式

微信图片_20230527155558.png


4.3.1 模式(逻辑模式)

模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图,一个数据库只有一个模式 。简单点理解就是所有用户的公共视图(全局视图),可以用数据定义语言DDL来定义。


模式是数据库系统模式结构的中间层 ,与数据的物理存储细节和硬件环境、应用程序、开发工具及高级程序设计无关。


模式的定义 :


数据的逻辑结构(数据项的名字、类型、取值范围等)

数据之间的联系

数据有关的安全性、完整性要求

4.3.2 外模式(子模式或用户模式)

数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述。


数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,


用户能看到的数据库和视图跟具体的程序或项目有关,可用DML来操作。


外模式的作用: 保证数据库的安全性


模式与外模式的关系: 一对多


外模式通常是模式的子集

一个数据库可以有多个外模式

对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。

4.3.3 内模式(也称存储模式)

内模式是数据物理结构和存储方式的描述


是数据在数据库内部的表示方式


记录的存储方式(如顺序存储,按照B+树结构存储,按hash方法存储等)

索引的组织方式

数据是否压缩存储

数据是否加密

数据存储记录结构的规定。

简单而言内模式对应物理级,数据在物理介质的存储方式和存储结构。


4.4 二级映象

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


二级映象在数据库管理系统内部实现这三个抽象层次的联系和转换


外模式/模式映像

模式/内模式映像

主要保证数据的逻辑独立性


当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变


应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性


保证数据的物理独立性


当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。


应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性


目录
相关文章
|
1月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
50 5
Mysql(3)—数据库相关概念及工作原理
|
17天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
34 2
|
1月前
|
关系型数据库 MySQL 数据库
MySQL数据库:基础概念、应用与最佳实践
一、引言随着互联网技术的快速发展,数据库管理系统在现代信息系统中扮演着核心角色。在众多数据库管理系统中,MySQL以其开源、稳定、可靠以及跨平台的特性受到了广泛的关注和应用。本文将详细介绍MySQL数据库的基本概念、特性、应用领域以及最佳实践,帮助读者更好地理解和应用MySQL数据库。二、MySQL
111 5
|
1月前
|
SQL 关系型数据库 数据库
SQL数据库:核心原理与应用实践
随着信息技术的飞速发展,数据库管理系统已成为各类组织和企业中不可或缺的核心组件。在众多数据库管理系统中,SQL(结构化查询语言)数据库以其强大的数据管理能力和灵活性,广泛应用于各类业务场景。本文将深入探讨SQL数据库的基本原理、核心特性以及实际应用。一、SQL数据库概述SQL数据库是一种关系型数据库
54 5
|
1月前
|
SQL 存储 安全
SQL查询数据库:基础概念与操作指南
在数字化时代,数据库已成为信息管理的重要工具之一。作为管理和操作数据库的核心语言,SQL(结构化查询语言)已成为数据管理和查询的关键技能。本文将全面介绍SQL查询数据库的基本概念、语句和操作指南,以帮助初学者快速上手,同时为进阶用户提供有价值的参考。一、数据库与SQL简介数据库是一种存储、管理和检索
40 3
|
1月前
|
SQL 关系型数据库 MySQL
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
|
1月前
|
SQL 存储 Java
sql注入原理与实战(二)数据库原理
sql注入原理与实战(二)数据库原理
|
7天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
23 1
|
10天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
24 4
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
83 1