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

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 始终是有效的,避免数据引用错误。


http://www.kler.cn/a/386993.html

相关文章:

  • IP数据云 识别和分析tor、proxy等各类型代理
  • 一键生成本地SSL证书:打造HTTPS安全环境
  • C++STL容器——map和set
  • Python高级编程模式和设计模式
  • vue请求数据报错,设置支持跨域请求,以及2种请求方法axios或者async与await
  • UniApp 应用、页面与组件的生命周期详解
  • Web前端开发--HTML语言
  • Conpair: 配对样本一致性concordance与污染contamination分析
  • LLMs之MemFree:MemFree的简介、安装和使用方法、案例应用之详细攻略
  • 论文精读:NC kagome FeGe 自旋声子耦合驱动CDW 实验与理论计算
  • CCF ChinaOSC |「开源科学计算与系统建模openSCS专题分论坛」11月9日与您相约深圳
  • 《CIDEr: Consensus-based Image Description Evaluation》简要
  • Python毕业设计选题:基于django+vue的荣誉证书管理系统
  • 【Mode Management】AUTOSAR架构下唤醒源检测函数EcuM_CheckWakeup详解
  • 高级 <HarmonyOS主题课>构建华为支付服务的课后习题
  • Halcon 重写Rectangle2及Arrow
  • 专题——编程案例
  • Java | Leetcode Java题解之第552题学生出勤记录II
  • 全网最最最详细的haproxy详解!!!
  • 测试实项中的偶必现难测bug--苹果支付丢单问题
  • Python爬虫实战 | 爬取网易云音乐热歌榜单
  • 【开源免费】基于SpringBoot+Vue.JS水果购物网站(JAVA毕业设计)
  • Python小白学习教程从入门到入坑------第二十九课 访问模式文件定位操作(语法进阶)
  • Docker配置及简单应用
  • 探索 C++20:C++ 的新纪元
  • 智能合约在供应链金融中的应用