数据库原理与应用笔记(一):数据库绪论

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 数据库绪论

第一章:数据库绪论

1.1数据库系统概述

1.1.1数据库的4个基本概念数据Data

数据Data是数据库中存储的基本对象。

数据的定义:描述事物的符号记录。

数据的种类:数字、文字、图形图像等。

数据库Database

数据库Database是长期储存在计算机内、有组织的、可共享的大量数据的集合。

数据库的基本特征:数据按一定的数据模型组织、描述和储存;可为各种用户共享;冗余度较小;数据独立性较高;易扩展。


数据库管理系统DBMS

数据库管理系统是位于用户与操作系统之间的一层数据管理软件,是基础软件,是一个大型复杂的软件系统。

数据库管理系统用于科学地组织和存储数据、高效地获取和维护数据。


数据库系统DBS

数据库系统Database System

数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序、数据库管理员构成。

1.1.2数据库管理技术的产生和发展

什么是数据管理?

对数据进行分类、组织、编码、存储、检索和维护;数据处理的中心问题。


数据管理技术的发展过程:

人工管理阶段(20世纪50年代中之前)

文件系统阶段(20世纪50年代末-60年代中)

数据库系统阶段(20世纪60年代末-现在)


数据库系统阶段产生的背景:


应用背景 大规模数据管理
硬件背景 大容量磁盘、磁盘阵列
软件背景 有数据库管理系统
处理方式 联机实时处理,分布处理,批处理

1.1.3数据库系统的特点


1、数据结构化


数据的整体结构化是数据库的主要特征之一

整体结构化不再仅仅针对某一个应用,而是面向全组织;不仅数据内部结构化,整体是结构化,数据之间具有联系;数据记录可以变长;数据的最小存取单位是数据项。


2、数据的共享性高,冗余度低且易扩充


数据共享的好处:减少数据冗余,节约存储空间;避免数据之间的不相容性与不一致性;使系统易于扩充。


3、数据独立性高


数据独立性高是指物理独立性和逻辑独立性

物理独立性:指用户的应用程序与数据库中数据的物理存储使相互独立的。

逻辑独立性:指用户的应用程序与数据库的逻辑结构使相互独立的。

数据独立性由数据库管理系统的二级映像功能来保证。


4、数据由数据库管理系统统一管理和控制

数据库管理系统提供的数据控制功能

(1)数据的安全性(security)保护

保护数据以防止不合法的使用造成的数据的泄密和破坏。

(2)数据的完整性(integrity)检查

保证数据的正确性、有效性和相容性。

(3)并发(concurrency)控制

对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。

(4)数据库恢复(recovery)

将数据库从错误状态恢复到某一已知的正确状态。


1.2数据模型

数据模型使对现实世界数据特征的抽象(现实世界的模拟)

数据模型应满足三方面要求:能比较真实地模拟现实世界;容易为人所理解;便于在计算机上实现

数据模型使数据库系统的核心和基础

1.2.1两类数据模型

(1)概念模型(信息模型),它是按用户的观点来对数据和信息建模,用于数据库设计。

(2)逻辑模型和物理模型

逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。

物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方式,在磁盘或磁带上的存储方式和存取方法。

客观对象的抽象过程:现实世界中的客观对象抽象为概念模型→将概念模型转换为某一数据库管理系统支持的数据模型。

1.2.2概念模型

概念模型的用途

概念模型用于信息世界的建模;使现实世界到机器世界的一个中间层次;使数据库设计的有力工具;数据库设计人员和用户之间进行交流的语言

对概念模型的基本要求:较强的语义表达能力;简单、清晰、易于用户理解


信息世界中的基本概念

(1)实体Entity

客观存在并可相互区别的事物称为实体。可以使具体的人、事、物或抽象的概念。

(2)属性Attribute

实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。

(3)码key

唯一标识实体的属性集称为码。

(4)实体型entity type

用实体名及其属性名集合来抽象和刻画同类实体称为实体型。

(5)实体集entity set

同一类型实体的集合称为实体集。

(6)联系 relationship

实体内部的联系通常是指组成实体的各属性之间的联系

实体之间的联系通常是指不同实体集之间的联系

实体之间的联系有一对一、一对多和多对多等多种类型


实体-联系方法entity-relationship approach

用E-R图来描述现实世界的概念模型

E-R方法也称为E-R模型

实体型用矩形表示

属性用椭圆形表示

联系用菱形表示

1.2.3数据模型的组成要素

数据结构/数据操作/数据的完整性约束条件


数据模型的数据结构

描述数据库的组成对象,以及对象之间的联系

描述的内容

1与对象的类型、内容、性质有关

2与数据之间的联系有关

数据结构事对系统静态特性的描述


数据操作

对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则

数据操作的类型:查询,插入,删除,修改

数据模型对操作的定义

操作的确切含义,操作符号,操作规则(如优先级),实现操作的语言

数据操作是对系统动态特性的描述


数据的完整性约束条件

一组完整性规则的集合

完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则

用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容

数据模型对完整性约束条件的定义:反映和规定必须遵守的基本的通用的完整性约束条件;提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件

1.2.4常用的数据模型

层次模型

网状模型

关系模型

面向对象数据模型

对象关系数据模型

半结构化数据模型

1.2.5层次模型


20200621213802438.png

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

层次数据库系统的典型代表是IBM公司的IMS数据库管理系统

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


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

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

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


层次模型的特点:

结点的双亲是唯一的;只能直接处理一对多的实体联系;每个记录类型可以定义一个排序字段,也称为码字段;任何记录值只有按其路径查看时,才能显出它的全部意义;没有一个子女记录值能够脱离双亲记录值而独立存在。


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

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

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

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


优点

层次模型的数据结构比较简单清晰

查询效率高,性能优于关系模型,不低于网状模型

层次数据模型提供了良好的完整性支持

缺点

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

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

插叙子女结点必须通过双亲结点

层次命令趋于程序化

1.2.6网状模型


20200621213912881.png

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


满足以下两个条件的为网状模型:

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

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


网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束

码:唯一标识记录的数据项集合

一个联系中双亲记录与子女记录之间是一对多联系

支持双亲记录和子女记录之间某些约束条件


优点

能够更为直接地描述现实世界,如一个结点可以有多个双亲

具有良好的性能,存取效率较高

缺点

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

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

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

1.2.7关系模型

20200621214046390.png

关系模型的数据结构

关系(relation)

一个关系对应通常说的一张表

元组(tuple)

表中的一行即为一个元组

属性(attribute)

表中的一列即为一个属性,给一个属性起一个名称即属性名

主码(key)

也称码键。表中的某个属性组,它可以唯一确定一个元组

域(Domain)

是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。

分量

元组中的一个属性值

关系模式

对关系的描述


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

关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。


优点

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

概念单一:实体和各类联系都用关系来表示;对数据的检索结果也是关系

关系模型的存取路径对用户透明:具有更高的数据独立性,更好的安全保密性;简化了程序员的工作和数据库开发建立的工作


缺点

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

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

1.3数据库系统的结构

1.3.1数据库系统模式的概念

数据模型中有“型”type和“值”value的概念

型是指对某一类数据的结构和属性的说明,值是型的具体赋值

例如:学生记录型为(学号,姓名,年龄),则值为(20201314,维京,20)


模式是数据库中全体数据的逻辑结构和特征的描述,仅仅涉及型而不涉及值

模式的一个具体值称为模式的一个实例,一个模式可能有很多具体值即很多实例

例如:2020年入学的学生资料数据库实例和2019年入学的学生资料数据库实例

实例中学生不同(值)但每个学生都是要记录学号姓名年龄(型)的,所以仅仅涉及型

模式是相对稳定的,而实例是相对变化的

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


20200621214230823.png

1模式schema

模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图

一个数据库只有一个模式

2外模式external schema

外模式也称子模式subschema或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

外模式是模式的子集,一个数据库可以有多个外模式

因为它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式不同,则外模式的描述不同

3内模式internal schema

内模式也称存储模式storage schema,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织形式

例如:记录的存储方式是堆存储还是按照某个值属性的升降存储,索引按照什么方式组织,是hash索引还是B+树索引

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

数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像

1外模式/模式映像

当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像作相应改变

,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性

2模式/内模式映像

当数据库的存储结构改变时(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变

从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性

1.4数据库系统的组成

1.硬件平台及数据库

(1)要有足够大的内存,存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序

(2)有足够大的磁盘或磁盘阵列等设备存放数据库,有足够大的磁带作数据备份

(3)要求系统有较高的通道能力,以提高数据传送率

2.软件

(1)数据库管理系统。数据库管理系统是为数据库的建立、使用和维护配置的系统软件。

(2)支持数据库管理系统运行的操作系统。

(3)具有与数据库接口的高级语言及其编译系统,便于开发应用程序。

(4)为特定应用环境开发的数据库应用系统

(5)以数据库管理系统为核心的应用开发工具。

3.人员

(1)数据库管理员database administrator,DBA

职责包括:

①决定数据库中的信息内容和结构

②决定数据库的存储结构和存取策略

③定义数据的安全性要求和完整性约束条件

④监控数据库的使用和运行

⑤、数据库的改进和重组、重构

(2)系统分析员和数据库设计人员

(3)应用管理员

(4)用户

①最终用户

②简单用户

③复杂用户


相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
相关文章
|
3天前
|
人工智能 容灾 关系型数据库
【AI应用启航workshop】构建高可用数据库、拥抱AI智能问数
12月25日(周三)14:00-16:30参与线上闭门会,阿里云诚邀您一同开启AI应用实践之旅!
|
1月前
|
架构师 数据库
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
数据库乐观锁是必知必会的技术栈,也是大厂面试高频,十分重要,本文解析数据库乐观锁。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
|
29天前
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
1月前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
55 3
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
67 2
|
2月前
|
XML 存储 数据库
XML在数据库中有哪些应用?
【10月更文挑战第17天】XML在数据库中有哪些应用?
53 2
|
3天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
13 3
|
3天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
20 3
|
3天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
25 2