103 - Lecture 1
Introduction to Database
一、Introduction to Database Systems
1. 数据的定义
What is Data?
EX: data could be a docx file storing your project status report;
data could be a spreadsheet containing information
• 数据只有在设计的场景中才有意义。(designed scenario)
• 数据需要能够被创建、修改和访问。(to be created, modified, and accessed)
2. 数据库的定义
What is a Database?
(1) Database
• 数据库是“有组织的数据集合,结构化、便于快速搜索和检索”。
“organized collection of data, structured for ease and speed of search and retrieval.”
(2) Database Management System
• 数据库管理系统 (DBMS) 是一种软件,允许用户存储、检索和更新数据库中的数据。
3. 数据库的应用
Database Applications
Database applications include mobile payment, hotel booking websites, online game data storage, and healthcare.
4. DBMS 环境的组成部分
Components of the DBMS Environment
(1) Hardware
硬件:运行 DBMS 的计算机。
(2)Software
软件:包括 DBMS、应用程序(如支付宝)和操作系统。
application programs (e.g., Alipay), and the operating system.
(3)Data
数据:包括操作数据和元数据。( operational data and metadata.)
(4)Procedures
程序:设计和使用数据库的规则和指令。
instructions and rules governing the design and use of the database.
(5)People
人员:包括数据库设计人员、终端用户、开发人员和管理员。
database designers, end users, application developers, and database administrators.
5. DBMS 功能
DBMS Functions / Must Haves
(1). 允许用户存储、检索(retrieve)和更新数据。
(2). 系统目录:包含模式、用户、应用程序等的元数据。
System catalog: holds data about schemas, users, applications, etc., also known as metadata.
(3). 原子性(Atomicity):确保操作要么完全执行,要么不执行。
(4). 并发控制(concurrency control):确保多个用户更新时数据库的正确性。
(5). 数据恢复(data recovery):在数据库损坏时进行恢复。
(6). 权限控制(Access control):确保只有授权用户(authorized users)可以访问数据库(DB).
6.数据模型
Data Models
• 数据可以有不同的结构模型,如关系模型、层次模型、网络模型等。
relational data model, hierarchical model, and network model.
• 关系模型:基于数学概念的表格形式,具有列和行。
• 实体关系模型:常用于教学数据库结构的基础。
Entity-Relationship Model: Commonly used to teach database structure basics.
•Graph model:uses graph structures for semantic queries with nodes,edges
二、Relational Model
1. Terminologies
• 关系:相当于表格,由列和行组成。
Relation: A table with columns and rows.
• 属性:关系中的列。
Attribute: A named column of a relation.
• 域:属性的允许值集合,每个属性有一个域,例如,Department 的域可能包括 Marketing、Accounts 和 Personnel。
Domain: The set of allowable values for attributes.
• 元组:关系中的一行,代表一个实体实例。
Tuple: A row in a relation, representing an instance of an entity.
• 基数:关系中的行数。
Cardinality: The number of tuples in a relation.
• 度:关系中的属性数量。
Degree: The number of attributes in a relation.
2. Properties of Relations
• 每个关系的名称在数据库模式(schema)中是唯一的。
• 每个单元格只包含一个原子值。( atomic value)
• 关系中没有重复的元组。
No duplicate tuples in a relation.
• 一个属性的所有值必须属于同一个域,这意味着它们的数据类型和约束条件相同。
• The order of attributes has no significance.
• The order of tuples has no significance.
三、Relational Keys
在一个关系中,不允许有重复的元组。 因此,我们需要能够识别一个或多个属性(称为关系键),以唯一地标识(uniquely identified)关系中的每个元组。
• 超键(Superkey):唯一标识关系中元组的属性或属性组合。
a superkey may contain additional attributes that are not necessary for unique identification
• 候选键(Candidate key):最小(minimal)的超键,且不包含不必要的属性。
Thee may be several candidate keys for a relation
• 主键(Primary Key):候选键中选定用于唯一标识元组的键。
candidate keys = primary key + alternate keys
A relation can only have one primary key
• 外键(Foreign Key):引用另一个关系中候选键的属性。
Foreign Key: An attribute or set of attributes in one relation that references the candidate key of another relation.
• when a key consists of more than one attribte, we call it a composie key.
从图片中的提示可以看出,staff_id 是主键
Finding Candidate Key
• 不能仅依靠(based solely)表中的数据来推断候选键。
• 通常(more often than not),一个关系的实例只包含所有可能值的一个小子集。
示例:
• 表 Queue 中的 queue_no 值会重复使用,例如从 A1 到 A99,再重置(reset back)到 A1。
• 因此,仅靠 queue_no 可能不足以唯一标识一条记录。
Example
CREATE TABLE Branch (
branchNo CHAR(4) PRIMARY KEY,
street VARCHAR(100),
city VARCHAR(25),
postcode VARCHAR(7) UNIQUE
);
• branchNo 是主键,而 postcode 是唯一键。
branchNo is the primary key, and postcode is a unique key.
EX:
外键是一种约束,用于确保一个表中的某些值必须与另一个表中的主键或候选键相对应,以维护数据的一致性和完整性。例如:
• 如果 staff 表中的 branchNo 是 Branch 表的外键,那么 staff 表中 branchNo 列的值必须在 Branch 表的 branchNo 列中存在。
• 这确保了 staff 表中引用的 branchNo 始终是有效的,避免数据引用错误。
相关文章:

103 - Lecture 1
Introduction to Database 一、Introduction to Database Systems 1. 数据的定义 What is Data? EX: data could be a docx file storing your project status report; data could be a spreadsheet containing information • 数据只有在设计的场景中才有意义。ÿ…...

Ubuntu 20.04禁用或者移除 cloud-init
1、禁用cloud-init 这是最简单最安全的方法,在 /etc/cloud 目录下创建 cloud-init.disabled 文件重启后生效。删除该文件就可以恢复 # 创建cloud-init.disabled文件 sudo touch /etc/cloud/cloud-init.disabled # 重启 reboot 2、移除 cloud-init 软件包及文件夹…...

DevOps开发运维简述
DevOps平台是一套集成的解决方案,旨在协调软件开发(Development)和信息技术运维(Operations)。它促进跨功能团队合作,实现自动化流程,确保持续集成与持续交付(CI/CD)。 一…...

C++之list的使用
在C中,std::list 是一个双向链表,它允许在列表的任何位置高效地插入和删除元素。以下是一些基本的使用方式: 包含头文件 要使用 std::list,首先需要包含头文件 <iostream> 和 /list>。 #include <iostream> #in…...

nginx配置代理地址
1,配置19上的代理 location /jmis/ { alias D:/images/; autoindex on; sendfile on; } 2.在18服务器上访问19的图片。18服务器nginx代理 proxy_set_header 指令用于在发送给后端服务器的请求中添加或修改指定的HTTP头信息。 proxy_p…...

国际版JAVA同城打车源码同城服务线下结账系统源码适配PAD支持Android+IOS+H5
一、数据中心 总用户数今日接单数量今日新增今日收入本月新增本月收入本年新增本年收入 二、用户中心 全部用户普通用户师傅用户推广员用户 三、财务中心 提现管理收入统计提现统计充值统计充值记录保证金管理平台收入统计 四、首页装修 轮播图分享图语音播报配置 五…...

AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
2024-10-31,由清华大学和北京大学共同创建的AndroidLab数据集,为安卓自主代理的训练和评估提供了一个包含操作环境、行动空间和可复现基准的系统框架,这对于推动安卓代理技术的发展具有重要意义。 数据集地址:Android Instruct|A…...

Java--正则表达式入门指南
正则表达式(Regular Expression)是一种用于匹配字符串中字符模式的工具。在Java中,正则表达式的使用主要依赖于java.util.regex包,其中最重要的两个类是Pattern和Matcher。今天将探讨正则表达式的基础概念、书写规则、常用方法&am…...

阿里云服务器 篇十(加更二):自动定时备份CSDN博客内容:更新文件最后修改时间,以在个人博客正确展示最近更新
文章目录 系列文章核心修改更新后的核心代码使用方法系列文章 阿里云服务器 篇一:申请和初始化 阿里云服务器 篇二:搭建静态网站 阿里云服务器 篇三:提交搜索引擎收录 阿里云服务器 篇四:404页面模板 阿里云服务器 篇五:短链服务网站 阿里云服务器 篇六:GitHub镜像网站 …...

Python编程探索:从基础语法到循环结构实践
文章目录 前言1. 行与缩进:Python代码的灵魂2. 数据类型的转换:灵活处理数据3. 字符串切片:提取字符串的子部分4. 字符串拼接:连接多个字符串5. 逻辑运算符:处理布尔值6. 成员运算符:检查值是否存在于序列中…...

今天要重新认识下注解@RequestBody
在Spring框架中,RequestBody是一个常用的注解,它用于将HTTP请求体中的数据绑定到控制器(Controller)处理方法的参数上。这个注解通常与RESTful Web服务一起使用,在处理POST或PUT请求时尤为常见,因为这些请求…...

北斗有源终端|智能5G单北斗终端|单兵|单北斗|手持机
在当今科技日新月异的时代,智能设备的创新与升级速度令人目不暇接。其中,智能5G终端作为连接数字世界的桥梁,正逐步渗透到我们生活的方方面面。今天,让我们聚焦于一款集尖端科技与实用功能于一身的智能5G设备——QM-L5智能5G单北斗…...

【题解】—— LeetCode一周小结44
🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 【题解】—— 每日一道题目栏 上接:【题解】—— LeetCode一周小结43 28.冗余连接 II 题目链接:685. 冗余连接 II 在…...

faiss 用于检索10亿向量(维度768)的方法
faiss 用检索10亿向量(维度768)的方法,注意考虑占用内存空间大小不能超过100G,因为100G已经是很多服务器内存的极限了,有的128G已经是超规格的机器了。价格也就是2000左右(月租)。 要处理 10 亿个 768 维的向量,并且限制内存占用不超过 100G,我们需要使用 FAISS 中的…...

sql专题 之 常用命令
文章目录 查询基础语法查询全表查询选择查询:常量和运算: 条件查询where运算符:、 !、<、>空值:null模糊查询:like逻辑运算:and or not 去重:distinct排序:order by截断和偏移…...

Kubernetes Extended Resource 扩展资源使用简介
Kubernetes 除了提供基于 CPU 和内存的传统计算资源调度外,还支持自定义的 Extended Resource 扩展资源,以便调度和管理其它各种类型的资源。 Extended Resource Extended Resource 扩展资源的创建和使用过程如下图所示: 定义资源ÿ…...

基于STM32的天气时钟项目教学
引言 随着物联网技术的普及,基于STM32的微控制器被广泛应用于各种智能设备的开发。本项目旨在打造一个基于STM32的天气时钟,除了显示当前时间,还可以通过Wi-Fi获取当地天气信息,提供一个实用的生活工具。 环境准备 在开始项目之前…...

神经网络进行波士顿房价预测
前言 前一阵学校有五一数模节校赛,和朋友一起参加做B题,波士顿房价预测,算是第一次自己动手实现一个简单的小网络吧,虽然很简单,但还是想记录一下。 题目介绍 波士顿住房数据由哈里森和鲁宾菲尔德于1978年Harrison …...

C++builder中的人工智能(7)如何在C++中开发特别的AI激活函数?
在当今的AI开发中,人工智能模型正迅速增加。这些模型使用数学函数来执行和学习,以便在传播时优化最佳结果,或在反向传播时选择最佳解决方案。其中之一就是激活函数。也称为转移函数或阈值函数,它决定了神经元的激活值作为输出&…...

更改lvgl图片的分辨率(减少像素)达到减小内存占用的目的
lvgl的内存占比过大,更改图片的分辨率(减少像素)达到减小内存占用的目的,可以用更多的空间去开发其他的功能 -- 由于lvgl中图片占的内存过大,所以需要更改图片的分辨率(降低像素的方式) --注意…...

python的socket库的基本使用总目录
章节总目录 一、Python 实现UDP通讯的简单模型 二、Python 实现TCP通讯的简单模型 三、Python 实现TCP和UDP通讯代码的区别...

golang学习3
Go 语言之旅...

Python解力扣算法题(六)(详解+注释)
# 1.学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。 # 排序后的高度情况用整数数组 expected 表示,其中 expected[i] 是预计排在这一行中第 i 位的学生的高度(下标从 0 开始)。 # 给你一…...

【C++】继承和多态常见的面试问题
文章目录 继承笔试面试题1. 什么是菱形继承?菱形继承的问题是什么?2. 什么是菱形虚拟继承?如何解决数据冗余和二义性?3. 继承和组合的区别?什么时候用继承?什么时候用组合? 选择题 多态概念考察…...

入门网络安全工程师要学习哪些内容(详细教程)
🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 大家都知道网络安全行业很火,这个行业因为国家政策趋势正在大力发展,大有可为!但很多人对网络安全工程师还是不了解,不知道网…...

【游戏引擎之路】登神长阶(十二)——DirectX11教程:If you‘re going through hell, keep going!
【游戏引擎之路】登神长阶(十二)——DirectX11教程:If youre going through hell, keep going! 2024年 5月20日-6月4日:攻克2D物理引擎。 2024年 6月4日-6月13日:攻克《3D数学基础》。 2024年 6月13日-6月20日&#x…...

Python列表(一图秒了)
一、概念 所谓的列表是由一些列按照顺序存储的元素组成,区别于C语言中的数组,可以存储多种类型的数据,其中元素之间是没有任何关系的。 注意: 元素放在[]里面的,多个元素之间用 逗号 隔开列表的元素可以修改 定义 …...

雷池社区版 7.1.0 LTS 发布了
LTS(Long Term Support,长期支持版本)是软件开发中的一个概念,表示该版本将获得较长时间的支持和更新,通常包含稳定性、性能改进和安全修复,但不包含频繁的新特性更新。 作为最受欢迎的社区waf,…...

推荐一款功能强大的数据库开发管理工具:SQLite Expert Pro
SQLite Expert Professional是一个功能强大的工具,旨在简化SQLite3数据库的开发。 它是SQLite的一个功能丰富的管理和开发工具,旨在满足所有用户从编写简单SQL查询到开发复杂数据库的需求。 图形界面支持所有SQLite功能。 它包括一个可视化查询构建器&a…...

动态规划 之 路径问题 算法专题
一. 不同路径 不同路径 状态表示 dp[i][j] 表示走到[i][j]位置, 有几种不同的路径状态转移方程 以离[i][j] 最近的位置划分问题 1.从[i - 1][j] 到[i][j], 到[i][j]位置的不同路径数 就是和 到[i - 1][j]位置的不同路径数相同, 即dp[i][j] dp[i - 1][j] 2.从[i][j - 1] 到[i…...