数据库系统概念(第二周 第一堂)

2024-03-13 10:20

本文主要是介绍数据库系统概念(第二周 第一堂),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

本文的所有知识点、图片均来自《数据库系统概念》(黑宝书)、山东大学李晖老师PPT。不可用于商业用途转发。

回顾

        上周最后一个知识点说到数据库三级模式结构,在这个结构里面我们设立了模式/内模式映像内模式/外模式映像,主要为了解决数据独立性的问题。数据独立性又分为物理数据独立性逻辑数据独立性

数据模型

定义

数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合

数据模型的选择本质上就是选择一个存放数据的方式,这个存放数据包括数据的物理存放、逻辑关系以及语义联系等

由定义可知,数据库的设计最核心的部分就是物理存放设计(数据底层存储方式),逻辑存放设计(设计数据在业务层面的逻辑关系)

分类

关系模型:用表的集合表示数据和数据之间的关系

实体-联系模型:现实世界是由实体和实体之间的联系构成的,用于数据库设计

基于对象数据模型:实体-联系模型增加了封装、方法和对象标识等拓展

组成要素

一、数据结构:数据库中对象类型的集合(与数据内容、类型有关的对象,与数据之间联系有关的对象),是对系统静态特性的描述。

数据结构课程中的数据结构是指数据的类型以及组织方式(数组/动静态数组、链表/单双链表等等),数据库中的数据结构是指数据库中数据的结构即数据的类型

二、数据操作:包括检索、更新两个方面,是对系统动态特性的描述。

数据操作在数据结构课程中对应的就是数据的组织方式和数据类型,或者说数据的组织方式和数据类型两者共同决定数据操作

三、数据约束条件:一组完整性规则的集合

关系模型

关系模型在现代已经全面取代了其他两类模型,故数据库中讨论的只有关系模型。

初识

优点 

一、简单。只有关系一种数据结构,同时逻辑上的数据结构也只有表这一种形式。

二、非过程化数据请求,数据请求可以不指明路径。(非过程化数据请求,说明关系数据库的数据获取更多是一种静态批量的数据获取)

三、数据独立性。用户只需提出做什么,不用考虑怎么做

四、坚实的理论基础

数据库语言

任何一种数据库语言都可以分为三类语言。

一、DDL:数据库定义语言。是指对数据库结构进行定义、管理和调整的语言

二、DCL:数据库控制语言。是指对数据库的管理、访问权限进行定义、修改和调整的语言

三、DML:数据库操控语言。是指对数据库中的数据进行更新、查询的语言

这里书中的翻译是语言,但是我更倾向于用语句。因为在正常情况下,我们认为SQL是一种语言,而对于任何一个类似SQL的数据库语言,它基本都有上面三类语句。使用语言容易将这三种语句误解为和Sql平等地位的语言

事务管理

事务定义

事务是由一系列操作序列构成的程序执行单元。对于一个事务中的操作序列,要么都做,要么都不做,事务是一个不可分割的工作单位

事务特性

一、原子性:事务中包含的所有操作要么全做,要么全不做。他们必须是一个不可分割的工作单位

二、一致性:事务在处理前后整个数据库必须处于一致性的状态。即不同用户的数据库变化必须对应的上

三、隔离性:系统必须保证事务不受其他并发执行事务的影响

四、持久性:一个事务一旦提交后,他对数据库的影响必须是永久的

数据库系统结构

数据库系统的体系结构较为复杂,在后续章节详细带大家进入 

 数据库应用结构

数据库应用结构曾经是两层结构,此时应用(包括前端应用UI和后端应用业务逻辑)属于上层,一旦业务逻辑发生变化,UI前端需要发生变化,这将导致升级业务逻辑变得非常复杂。

现在的数据库应用结构都是三层结构,并且将应用分为应用客户和应用服务器。即将应用的前后端进行分离。此时应用的业务逻辑发生变化不需要再修改应用的前端UI。

综上数据库应用结构的改变,主要是应用上的改变,重点体现在应用的前后端分离

这篇关于数据库系统概念(第二周 第一堂)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/804545

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

Kotlin 协程之Channel的概念和基本使用详解

《Kotlin协程之Channel的概念和基本使用详解》文章介绍协程在复杂场景中使用Channel进行数据传递与控制,涵盖创建参数、缓冲策略、操作方式及异常处理,适用于持续数据流、多协程协作等,需注... 目录前言launch / async 适合的场景Channel 的概念和基本使用概念Channel 的

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

一文带你迅速搞懂路由器/交换机/光猫三者概念区别

《一文带你迅速搞懂路由器/交换机/光猫三者概念区别》讨论网络设备时,常提及路由器、交换机及光猫等词汇,日常生活、工作中,这些设备至关重要,居家上网、企业内部沟通乃至互联网冲浪皆无法脱离其影响力,本文将... 当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成

MySQL 事务的概念及ACID属性和使用详解

《MySQL事务的概念及ACID属性和使用详解》MySQL通过多线程实现存储工作,因此在并发访问场景中,事务确保了数据操作的一致性和可靠性,下面通过本文给大家介绍MySQL事务的概念及ACID属性和... 目录一、什么是事务二、事务的属性及使用2.1 事务的 ACID 属性2.2 为什么存在事务2.3 事务

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

【MRI基础】TR 和 TE 时间概念

重复时间 (TR) 磁共振成像 (MRI) 中的 TR(重复时间,repetition time)是施加于同一切片的连续脉冲序列之间的时间间隔。具体而言,TR 是施加一个 RF(射频)脉冲与施加下一个 RF 脉冲之间的持续时间。TR 以毫秒 (ms) 为单位,主要控制后续脉冲之前的纵向弛豫程度(T1 弛豫),使其成为显著影响 MRI 中的图像对比度和信号特性的重要参数。 回声时间 (TE)

计算机网络基础概念 交换机、路由器、网关、TBOX

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOXTelematics BOX,简称车载T-BOX,车联网系统包含四部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示;车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控