当前位置: 首页 > news >正文

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 • 数据只有在设计的场景中才有意义。&#xff…...

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

nginx配置代理地址

1&#xff0c;配置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&#xff0c;由清华大学和北京大学共同创建的AndroidLab数据集&#xff0c;为安卓自主代理的训练和评估提供了一个包含操作环境、行动空间和可复现基准的系统框架&#xff0c;这对于推动安卓代理技术的发展具有重要意义。 数据集地址&#xff1a;Android Instruct|A…...

Java--正则表达式入门指南

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

阿里云服务器 篇十(加更二):自动定时备份CSDN博客内容:更新文件最后修改时间,以在个人博客正确展示最近更新

文章目录 系列文章核心修改更新后的核心代码使用方法系列文章 阿里云服务器 篇一:申请和初始化 阿里云服务器 篇二:搭建静态网站 阿里云服务器 篇三:提交搜索引擎收录 阿里云服务器 篇四:404页面模板 阿里云服务器 篇五:短链服务网站 阿里云服务器 篇六:GitHub镜像网站 …...

Python编程探索:从基础语法到循环结构实践

文章目录 前言1. 行与缩进&#xff1a;Python代码的灵魂2. 数据类型的转换&#xff1a;灵活处理数据3. 字符串切片&#xff1a;提取字符串的子部分4. 字符串拼接&#xff1a;连接多个字符串5. 逻辑运算符&#xff1a;处理布尔值6. 成员运算符&#xff1a;检查值是否存在于序列中…...

今天要重新认识下注解@RequestBody

在Spring框架中&#xff0c;RequestBody是一个常用的注解&#xff0c;它用于将HTTP请求体中的数据绑定到控制器&#xff08;Controller&#xff09;处理方法的参数上。这个注解通常与RESTful Web服务一起使用&#xff0c;在处理POST或PUT请求时尤为常见&#xff0c;因为这些请求…...

北斗有源终端|智能5G单北斗终端|单兵|单北斗|手持机

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

【题解】—— LeetCode一周小结44

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 【题解】—— 每日一道题目栏 上接&#xff1a;【题解】—— LeetCode一周小结43 28.冗余连接 II 题目链接&#xff1a;685. 冗余连接 II 在…...

faiss 用于检索10亿向量(维度768)的方法

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

sql专题 之 常用命令

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

Kubernetes Extended Resource 扩展资源使用简介

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

基于STM32的天气时钟项目教学

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

神经网络进行波士顿房价预测

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

C++builder中的人工智能(7)如何在C++中开发特别的AI激活函数?

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

更改lvgl图片的分辨率(减少像素)达到减小内存占用的目的

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

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

MySQL体系架构解析(三):MySQL目录与启动配置全解析

MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录&#xff0c;这个目录下存放着许多可执行文件。与其他系统的可执行文件类似&#xff0c;这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中&#xff0c;用…...