数据库(一)| 数据库概述、基本概念、关系型数据库特点、超键候选码等

news2024/11/22 8:55:26

文章目录

  • 1 数据库的一些基础概念
    • 1.1 数据库和数据库管理系统
    • 1.2 关系模式和关系实例
    • 1.3 数据库模式和数据库实例
  • 2 数据库组织形式
    • 2.1 数据采用文件的缺点
    • 2.2 使用数据库管理系统的 优点
  • 3 关系型数据库特点
  • 4 三个层次的数据抽象Data Abstraction
  • 5 超键、候选码、主码、外码

1 数据库的一些基础概念

1.1 数据库和数据库管理系统

A database-management system (DBMS) is a collection of interrelated data and a set of programs to access those data.

It is a powerful tool for managing large amount of data efficiently and allowing data to persist safely.

Database refers to a collection of data that is managed by a DBMS

数据库是一组相关数据的集合,而数据库管理系统(DBMS)是管理、维护和操作这些数据的软件系统。简单来说,数据库是数据的集合,而DBMS是用来管理和操作这些数据的工具。

1.2 关系模式和关系实例

关系模式(Relation Schema)和关系实例Relation Instance是关系型数据库中的两个不同但相关的概念。

A relation schema (关系模式) consists of a list of attributes and their corresponding domains.It defines the structure of the table, but does not include any actual data.

关系模式(Relation Schema)是指关系型数据库中表格的结构,包括表格的名称、列名、数据类型、主键和外键等。它定义了表格的结构,但并不包含任何实际的数据。关系模式通常通过CREATE TABLE语句来定义。

A relation instance (关系实例) is a set of tuples over a relation schema

关系实例(Relation Instance)是指关系模式中表格中的具体数据,也就是表格中的行和列。它是关系模式的一个具体实例,包括表格中的所有数据。关系实例可以通过SELECT语句来检索和查询。

例如,假设我们有一个关系模式为“学生(Student)”,包括学生编号(Student ID)、姓名(Name)、年龄(Age)和性别(Gender)等列。那么,关系实例就是表格中的具体数据,如学生编号为001、姓名为张三、年龄为20岁、性别为男性等。

1.3 数据库模式和数据库实例

数据库模式(Database Schema)是数据库的结构图,它描述了数据库中各个表、列、主键、外键等的结构和关系。也就是说,数据库模式定义了数据库中数据的逻辑结构,包括表格、关系、约束和索引等元素。它是一个静态概念,不会发生变化,除非进行数据库结构的修改。

Database schema (数据库模式) – is the logical structure of the database

数据库实例(Database Instance)是指在计算机内存中运行的数据库,它是数据库在运行时的状态。也就是说,数据库实例包含了数据库中所有数据的副本以及处理这些数据的进程和线程。每个数据库实例都有自己的内存空间和处理器资源,可以独立地进行处理和管理。

Database instance (数据库实例) – is a snapshot of the data in the database at a given instant in time.

2 数据库组织形式

2.1 数据采用文件的缺点

1 获得数据很困难,得为每一个潜在的程序写代码程序

Difficulty in accessing data

2 数据丢失或者不一致

Data redundancy and inconsistency

3 完整性问题

Integrity problem

4 并发访问,或者操作到一半的时候可能会出现程序崩掉,这时候数据库可能会把前面未完整执行的进行执行

Concurrent-access problem

5 安全访问问题

Security problem

6 操作原子性问题

Atomicity problem

2.2 使用数据库管理系统的 优点

主要是两方面

​ 便于查询和修改数据

​ 便于确定数据逻辑结构

​ 支持大量数据

​ 访问控制

​ 原子性操作

即事务是原子的。原子性是指事务中的所有操作被视为一个单独、不可分割的操作,要么全部执行成功,要么全部失败回滚,不会出现部分执行的情况。

这意味着,如果一个事务包含多个操作,如果其中任何一个操作失败,整个事务就会回滚,回到原始状态,所有的操作都会取消。这种方式可以确保数据的一致性和完整性,避免了数据损坏或错误的情况。

3 关系型数据库特点

  1. 数据以表格(表)的形式存储,其中每个表包含行和列,每个表有独一无二的名称
  2. 表之间可以建立关系,通过外键(foreign key)实现表之间的连接。
  3. 数据库使用结构化查询语言(SQL)进行查询和操作。
  4. 关系型数据库通常支持事务处理和数据完整性控制。

4 三个层次的数据抽象Data Abstraction

Logical level:users can see all tables and how they are related

比如数据表的组织方式

Physical level: describe how data is stored in a file.

比如某一个内容占据多少字节等等

View level: users can see the tables within the scope of their requirements and permissions.

比如教师可以看到教师的数据表,而学生只能看到学生的数据表

5 超键、候选码、主码、外码

超键

在关系型数据库中,**超键(Superkey)**是能够唯一标识一个关系中元组的一组属性集合。简单来说,超键是可以唯一区分关系模式中不同元组的一组属性。

超键具有以下特点:

  1. 超键必须是唯一的,即在关系模式中没有两个元组具有相同的超键值。
  2. 超键可以包含一个或多个属性。
  3. 超键可以是候选键(Candidate Key)的超集,也可以是包含主键(Primary Key)的超键。

候选码

​ 最小的超键,可以有多个

主码

​ 从候选码里选出来,唯一的一个 主码是数据库表中的一个字段或一组字段,用于唯一标识表中的每一行记录。

主码是数据库表中唯一标识记录的字段或字段集合,每个表只能有一个主码。候选码也是具有唯一性的字段或字段集合,但一个表可以有多个候选码,其中一个通常会被选择为主码。主要区别在于主码是表的主要标识符,而候选码是备选的唯一标识符。

写一个关系模式,将主键用下划线画出来,且一般在其他元素前

**在这里插入图片描述
**

写出他的关系模式

注意这里,用 两个才能唯一区别building, room number同时画下划线

外码

"参照关系"和"被参照关系"是用来描述表之间关系的术语,它们涉及到外码(Foreign Key)和主码(Primary Key)之间的联系。以下是它们的解释:

  1. 参照关系(Referencing Relationship):

    • "参照关系"指的是包含外码(Foreign Key)的表,该外码引用另一张表的主码(Primary Key)或候选码(Candidate Key)。
    • 在参照关系中,外码字段存储了关联表的键值,它用于确立两个表之间的关联。
    • 表示为:表A包含一个外码字段,该字段引用了表B的主码或候选码,这时表A就与表B存在参照关系。
  2. 被参照关系(Referenced Relationship):

    • "被参照关系"指的是包含主码或候选码的表,该表的键值被外码字段引用,从而使其他表可以与它建立关联。
    • 在被参照关系中,一个表的主码或候选码通常被其他表的外码引用,这表明它在其他表中作为关联的目标。
    • 表示为:表B的主码或候选码被表A的外码引用,这时表B就与表A存在被参照关系。

例如,考虑以下两个表:Customers(客户)和Orders(订单)。Customers 表的 CustomerID 字段是主码,而 Orders 表的 CustomerID 字段是外码。这种情况下:

  • Customers 表是被参照关系表,因为它的主码(CustomerID)被 Orders 表的外码字段(CustomerID)引用,允许订单表与客户表建立关联,以指示哪些客户下了哪些订单。
  • Orders 表是参照关系表,因为它包含了外码字段(CustomerID),该字段引用了客户表的主码(CustomerID),用于建立订单表与客户表之间的关联。

总之,参照关系和被参照关系描述了表之间的关联,外码与主码之间的关系非常重要,它们有助于维护数据完整性,并允许查询和检索相关数据

一个关系数据库由多个表组成,每个表有自己独一无二的名字

一个表通常内概念有 属性,元组,分量

在这里插入图片描述

概念

属性的域(domain):属性允许的值的集合,比如年龄这个属性,允许的值是正整数

r 的所有属性的域都应该是原子的。什么原子的?域的元素被认为是不可分割的单元

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1304719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode-654. 最大二叉树【栈 树 数组 分治 二叉树 单调栈】

LeetCode-654. 最大二叉树【栈 树 数组 分治 二叉树 单调栈】 题目描述:解题思路一:递归,这个问题的难点在于如何找到每个子数组的最大值。此处用的是暴力查找最大值,然后递归构建左右子树。解题思路二:单调栈&#xf…

如何实现更有效率的产线各工业设备数据采集?

随着工业物联网的发展,工业设备的智能化水平越来越高,然而设备的通讯受限于不同设备的物理链路、各种不同的协议,因此大多数设备数据不能互联互通。宝贵的数据被白白浪费掉,无法进行统一管理分析,因此亟需解决这一难题…

做数据分析为何要学统计学(9)——什么是回归分析

​回归分析(regression analysis)是量化两种或两种以上因素/变量间相互依赖关系的统计分析方法。回归分析根据因素的数量,分为一元回归和多元回归分析;按因素之间依赖关系的复杂程度,可分为线性回归分析和非线性回归分析。我们通过…

【带头学C++】----- 九、类和对象 ---- 9.12 C++之友元函数(9.12.5---9.12.7)

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️创做不易,麻烦点个关注❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ ❤️❤️❤️❤️❤️❤️❤️❤️❤️文末有惊喜!献舞一支!❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ 目录 补充上…

软文营销怎么做才能“人性化”,媒介盒子有妙招

软文营销已经成为品牌宣传的重要方式之一,想要做好软文营销,则要避免高高在上的宣传,围绕用户心理,打造人性化的内容。今天媒介盒子就来和大家聊聊软文营销怎么做才能人性化。 一、以情感驱动用户 形成用户印象所需要的时间是1/1…

Netflix Mac(奈飞客户端)激活版软件介绍

Netflix Mac(奈飞客户端)是一款流行的视频播放软件,专为Mac用户设计。它提供了大量的高质量电影、电视剧、纪录片和动画片资源,让用户可以随时随地观看自己喜欢的内容。 首先,Netflix Mac(奈飞客户端)以其简洁直观的用户界面而闻名。用户可以…

用FPGA实现四通道、全频率 GNSS RF 接收器-用于卫星的精确定位

用FPGA实现四通道、全频率 GNSS RF 接收器-用于卫星的精确定位 概念 全球导航卫星系统(英文:Global Navigation Satellite System,GNSS ),又称全球卫星导航系统,是能在地球表面或近地空间的任何地点为用户提…

阿木实验室普罗米修斯项目环境配置

引言 普罗米修斯项目其实只是个大ROS功能包, 里面每个模块就是每个ROS功能包,比如控制模块,视觉模块等等。对PX4配置的与这个一样,另外他是使用自己的P系列无人机(我个人是P450),所…

LAMP的搭建

LAMP概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或…

[学习笔记]在CentOS7中用Docker方式安装Jenkins

文章目录 原理:创建Docker网桥网络安装DinD创建镜像构建镜像运行容器 原理: Docker in Docker (以下简称 DinD)可以在 Container 中直接运行一个 Docker Daemon ,然后使用 Container 中的 Docker CLI 工具操作容器。其…

做数据分析为何要学统计学(6)——什么问题适合使用t检验?

t检验&#xff08;Students t test&#xff09;&#xff0c;主要依靠总体正态分布的小样本&#xff08;例如n < 30&#xff09;对总体均值水平进行差异性判断。 t检验要求样本不能超过两组&#xff0c;且每组样本总体服从正态分布&#xff08;对于三组以上样本的&#xff0…

apt-get update失败

一、先验证是否有网络 rootlocalhost:~# ping www.baidu.com ping: www.baidu.com: Temporary failure in name resolution rootlocalhost:~# 说明没有网&#xff0c;参考&#xff1a;https://blog.csdn.net/qq_43445867/article/details/132384031 sudo vim /etc/resolv.con…

windows如何解决端口冲突(实用篇)

在项目设计中&#xff0c;环境配置成功点击运行瞬间&#xff0c;一大堆红爆出&#xff0c;8080端口占用&#xff0c;这个是很烦人的。。。 解决方式&#xff1a; 笨方法&#xff1a;一、查看所有端口实用情况&#xff08;挨个扫&#xff09; 按住【WINR】快捷键打开运行输入…

报表控件FastReport .NET v2024功能演示—更改图图片形状

报表生成器FastReport .NET 是适用于.NET Core 3&#xff0c;ASP.NET&#xff0c;MVC和Windows窗体的全功能报告库。使用FastReport .NET&#xff0c;您可以创建独立于应用程序的.NET报告。 FastReport .net下载&#xff08;qun&#xff1a;585577353&#xff09;https://www.e…

靠着这份280页的前端面试指南,拿下了字节跳动offer

笔者是在今年秋招面试的头条教育线&#xff0c;顺利拿到了offer&#xff0c;把还记得的东西写下来&#xff0c;供大家参考一下。 一面 tcp 和 udp 的区别和使用场景&#xff1f;quic 基于 udp 怎么保证可靠性&#xff1f;讲一下同源策略和跨域方案&#xff1f;CORS 的几个头部…

AutoAnimate动画库,仅需一行代码

插件官网,支持react,vue AutoAnimate - Add motion to your apps with a single line of code 自动加动画原理 AutoAnimate 加动画的原理也很简单&#xff0c;监听绑定的 DOM 节点里 DOM 结构变化&#xff0c;自动添加对应的过渡动画&#xff1a; 增加子节点 > 渐入动画…

智能检测/摄像头监控系统EasyCVR无法启动进程是什么原因?如何解决?

国标GB28181智慧安防平台EasyCVR支持高清视频的接入和传输、分发&#xff0c;平台采用了开放式的网络结构&#xff0c;提供实时远程视频监控、录像回放与存储等功能。视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#xff0c;也能支持…

数据库系统 --- 关系模型

一、关系模型的数据结构以及形式化定义 1.关系 域&#xff1a;一组具有相同数据结构的值的集合。 笛卡尔积&#xff1a;域上的一种集合运算。多个集合做笛卡尔积的结果是每个集合取一个元素组合得到的一个新的集合。 域的基数&#xff1a;一个域上允许的不同取值的个数。 关系&…

【数仓理论】

一、数仓建模方法论 1.1 ER模型&#xff08;Entity Relationship、实体关系模型、范式模型&#xff09; ER模型是Bill Inmon提出的一种建模方法&#xff0c;实体关系模型将复杂的数据抽象为两个概念 ---- 实体和关系 该模型在范式理论上符合3NF&#xff0c;这种模型目的是减少…

VTK学习(入门级教程,包括安装和使用)~持续更新中

说明&#xff1a;研究QTVTK有段时间了&#xff0c;准备把学到的东西分享给大家&#xff0c;这篇博客以VSQTVTK为主进行展开学习的。 VTK学习 VTK安装和使用教程VTK入门级教程设计界面vtkStudy.ui的操作vtkStudy.h头文件说明完整代码 vtkStudy.cpp绘制球体绘制长方体绘制圆柱绘制…