首页 > 数据库 >数据库基础3 关系数据库与关系模型

数据库基础3 关系数据库与关系模型

时间:2024-02-23 23:57:20浏览次数:36  
标签:关系 候选 笛卡尔 数据库 元组 关系数据库 完整性 模型 属性

数据库系统的组成

1.硬件平台

2.软件

3.人员

(1)数据库管理员(DBA)

(2)系统分析员、数据库设计人员

(3)应用程序员

(4)最终用户

1.偶然用户

2.简单用户

3.复杂用户

 

关系数据库

关系模型是从表(Table)的处理方式中抽象出来的 在对传统表的操作上,进行数学化严格定义的基础上,引入集合理论逻辑学理论提出的 标准数据库语言(SQL语言)就是建立在关系模型之上的

关系模型三要素解释

一个关系就是一个表

1.数据结构

描述表中各种数据的基本结构形式

2.操作

描述表与表之间可能发生的各种操作(关系运算)

3.完整性约束

描述这些操作应该遵循的约束条件 学关系模型,就是学这个表(table)如何描述、有哪些操作、结果是什么、有哪些约束条件    

关系数据结构

1.域:值的集合

一组具有相同数据类型的值的集合

2.笛卡尔积:所有域中值的任意组合

笛卡尔积是所有域中所有取值的任意组合 笛卡尔积可以看着是关系的域  

3.关系:笛卡尔积的子集

定义:关系是一组域构成的笛卡尔积的一个子集 关系关联的值的数量称作关系的

4.元组:一个关系中的每个元素(关系表的行)

5.属性:(关系表的列)

码(键):一种特殊的属性,能够唯一地标识一个元组

   

关系的数学定义

1.域:列的取值范围

2.元组:一行

元组的每一个值叫做一个分量

3.笛卡尔积:组合,N个域中所有可能组合成的N元组的集合

所有可能的元组 笛卡尔积中的每一个元素称作一个N元组(每个元组有N个变量)

4.关系:有意义的组合

一组域的笛卡尔积的子集 笛卡尔积:所有的组合 关系:有某一方面意义的组合 由于关系的不同列可能来自同一个域,所以为区分,需要为每一个列起一个名字,叫属性名  

5.关系模式:表的标题(声明)

属性名:域名(属性的类型和长度)

关系模式与关系

类似数据结构与数据

6.度、目:关系包含的属性的数量

7.基数:关系中元组的数量

例:一个三目关系  

关系的特性

1.关系与行列的位置无关

调换行列位置,不更换某几列的值,关系仍等价

2.不重复性

理论上,关系的任意两个元组不能完全相同 但表(table)不一定遵守此特性

3.属性不可再分

也称作关系第一范式 每个属性必须是最基础的、不可再分的数据类型 关系中不能有复合属性、多值属性machine

关系概念

1.候选码/候选键(Candidate Key)

能唯一的标识一个元组属性组 不一定是单个属性,可以的复数属性构成的属性组 关系当中可能有多组候选码

2.主键/主码(Primary Key)

当有多个候选码时,可以选定一个做为主码

3.主属性与非主属性

主属性:包含在任何一个候选码中的属性 非主属性:不属于任何候选码的属性 全码关系:所有属性都是候选码

4.外码/外键

一个属性组,不是本关系候选码但是与另一个关系的候选码对应 两个关系通常就是靠外码连接起来的 外码是连接多个关系的纽带

总结

关系与表的对应: 关系模式 -- 表标题 属性与属性值 -- 列名与列值 元组 -- 行/记录  

关系完整性

1.实体完整性

关系的主码属性值不能为空NULL/NAN 空值:不知道、不存在、无意义的值

空值

   

2.参照完整性

对于外码,在一个表中可以取空值 但若不取空值,他必须取他连接的外部表的主码中的某值  

3.用户自定义完整性

用户在具体的应用环境定义的完整性约束条件 (类似写在C#属性中的保护逻辑)  

标签:关系,候选,笛卡尔,数据库,元组,关系数据库,完整性,模型,属性
From: https://www.cnblogs.com/jk-2048/p/18030596

相关文章

  • 数据库基础2 数据模型
    数据模型数据模型是什么数据模型是对现实世界数据特征的抽象数据模型应该满足的要求数据模型分类1.现实→概念→逻辑→物理转换过程2.概念模型信息世界基本概念实体(Entity)属性码(键)实体型实体集 联系 ER图:实体-联系方法(待续)数据模型的组成要素1.数......
  • 数据库基础4 关系代数运算
    基本操作前提条件:并相容性是并、差、交等关系代数操作的前提参与运算的两个关系及其相关属性之间必须又一定的对应性、可比性或关联性两个关系的属性数量必须相同对于任意i,关系R的第i个属性必须与另一个关系的第i个属性的域相同(数据类型、取值范围)一、传统集合运算并......
  • 数据库基础5 关系演算
    “关系代数是基于集合的查询”“关系演算是基于逻辑的查询”他们共同构成了数据库结构化查询语言SQL的基础关系演算概述关系演算是以谓词演算为基础的 关系元组演算1.公式的递归构造sitar:比较运算(>、<、>=、<=、!=、==)只有这几条之内的,属于【公式】所有公式都是由......
  • 数据库基础6 SQL语言概述
    SQL语言引导词DDL:数据库定义语言DML:数据库操作语言DCL:数据库控制语言1.DDL语句引导词数据库定义语言用于各种对象的定义和删除,操作对象是表2.DML语句引导词数据库操作语言:增删改查,操作对象是记录3.DCL语句引导词数据库控制语言,操作对象是用户权限 常用数据库1.......
  • 数据库基础1 数据库系统概述
    1.1四个基本概念1.数据定义  2.数据库定义  3.数据库管理系统DBMS数据库管理系统是介于操作系统与用户之间的DBMS主要功能:  4.数据库系统定义与构成:在不引起歧义的情况下,将数据库系统简称为数据库 1.2数据管理技术的产生和发展什么是数据管......
  • pymysql连接数据库和sqlite
    如果使用mysql,需要配置如下: -1配置文件中配置:settings.py DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'数据库名字','HOST':'127.0.0.1'......
  • python 加密 变量 (可用于深度学习模型加密)
    需求:深度学习基于pytorch,模型需要加密。查看到网上有使用cryptography加密的方法,如https://blog.csdn.net/weixin_43508499/article/details/124390983,总体思路是调用torch的save函数将模型保存为io.BytesIO,然后使用cryptography将保存为io.BytesIO的字节进行加密,解密......
  • 多模态大模型总结
    两类多模态大模型原生多模特模型和多个单模型拼接原生多模态模型意味着这些模型是从一开始的设计阶段,就是用于处理多种模态(包括文本、图像、音频、视频等)的数据。把不同的单个模型拼接起来使得模型具备多模态能力这种做法也比较好理解,比如之前社区开源的Qwen-VL[1],它就是Qwen-7B......
  • 项目mysql转换为kingbase人大金仓数据库
    项目mysql转换为kingbase人大金仓数据库目录项目mysql转换为kingbase人大金仓数据库官网已遇到的需要进行替换的部分UUID()部分进行分组并加以排序选择mysqlkingbase——row_number()排序函数列为null时的排序规则不同用到groupby的话,select的数据要进行分组my......
  • 医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来
    医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来医疗服务提供全新可能性1.指令数据集构建目前大多数开源的ChatLLM项目使用的是其他模型(如:ChatGPT)生成的指令数据,其不可避免的存在数据幻想的问题,数据幻想问题将严重影响LLM在实际场景中的应用......