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中图片占的内存过大,所以需要更改图片的分辨率(降低像素的方式) --注意…...
MySQL 高频面试题-01
在去面试之前,很多人天天背“八股文”,结果一到现场被面试官稍微一变形就问懵了。比如:“你天天说 B 树,那为什么不用 B 树?不用红黑树?它俩到底差在哪?”“既然索引能加速,那我把所…...
网盘直链解析工具:多平台文件下载的实用解决方案
网盘直链解析工具:多平台文件下载的实用解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...
FRED的光路和光路历史记录
对于杂散光分析,通常会使用“高级光线追迹”对话框,并选择“创建/使用光线历史文件”和“确定光路”选项。下面是对这两个选项的简要解释。确定光线路径选择此选项会使得FRED存储所有光路信息。这允许用户之后使用诊断工具,如光路追迹路径报告…...
面试:怎么设计客服 Agent对话状态机的?
面试:怎么设计客服 Agent对话状态机的? 这个问题问得好,我结合我们当时的设计思路具体讲讲。 对话状态机的核心设计思路 客服场景的状态机和其他业务系统不太一样——它既要处理业务状态(订单走到哪一步了),又要处理对话状态(用户在哪个节点、槽位填了多少),还得处理…...
函数递归调用原理
1. 什么是递归 2. 递归的举例 3. 递归与迭代1. 什么是递归递归就是一种解决方法,在C语言中,递归就是函数调用自己。下面是一个简单的递归C语言程序:#include <stdio .h>int main(){printf("hello world\n");main();//main函数…...
LabVIEW状态机设计:从顺序流程到事件驱动的架构升级
1. 项目概述:从“顺序流程”到“状态驱动”的思维跃迁如果你用过LabVIEW,画过流程图,写过一些简单的数据采集或仪器控制程序,那你大概率经历过这样的场景:程序一开始跑得挺好,几个步骤按顺序执行࿰…...
相控阵天线设计避坑指南:为什么低副瓣方案里,Chebyshev加权比单纯调相位更靠谱?
相控阵天线设计避坑指南:为什么低副瓣方案里,Chebyshev加权比单纯调相位更靠谱? 在相控阵天线设计中,低副瓣性能往往是工程师们追求的关键指标之一。副瓣过高不仅会浪费辐射能量,还可能造成信号干扰、目标识别困难等一…...
分布式/集群/微服务
分布式:将一个系统划分为多个子系统,每个子系统在不同的服务器上运行,并通过网络通信进行协作集群:一组相互独立的计算机系统协同工作,共同提供服务或处理任务,它们之间可以共享资源和负载均衡微服务&#…...
Nodejs开发者三步搞定Taotoken接入并实现异步聊天对话功能
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Nodejs开发者三步搞定Taotoken接入并实现异步聊天对话功能 对于Node.js开发者而言,将大模型能力集成到应用中的第一步&…...
终极指南:如何在ComfyUI中实现AI动作迁移与姿态控制
终极指南:如何在ComfyUI中实现AI动作迁移与姿态控制 【免费下载链接】ComfyUI-MimicMotionWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-MimicMotionWrapper ComfyUI-MimicMotionWrapper是一个基于腾讯MimicMotion技术的ComfyUI插件&#…...
