原文指路:关系、关系模式、关系模型blablabla…

数据:数据就是数据库中存储的基本数据,比如学生的学号、学生的班级
数据库:存放数据的仓库
数据库管理系统:数据库软件,如MySQL、Oracle
数据库系统:数据库+数据库管理系统+应用程序+数据库管理员(大佬)

实体:客观存在的对象,比如一个学生,一位老师
属性:实体的特性,比如学生的学号、姓名、院系
:可唯一标识实体的属性集。比如学号是学生的码,一个学号唯一标识一名学生。学号和课程号是成绩的码,因为学号和课程号唯一标识一门课程的成绩
实体型:对实体的描述,比如学生(学号,姓名,院系)
实体集:实体的集合
联系:实体集之间的关系。一名学生对应一个寝室(一对一),一个院系对应多名学生(一对多),多位教师对应多名学生(多对多)

关系:若干元组的集合->数据库表
关系模式:对关系的描述称为关系模式,最后会详细描述 -> 表的标题
关系模型:若干关系的集合 -> 数据库
属性(关系):相对于前面的属性的意义,这里特指数据库表中的某列
元组:一条数据库记录
分量:元组中某一属性值
:一组具有相同数据类型的值的集合,是属性的取值范围,比如性别属性的域就是{男,女},学生学历属性的域就是{学士、硕士、博士、院士}

候选码:可唯一标识某一元组的属性组,属性组中各个属性缺一不可。【t_student】(学号,姓名,学院),姓名可能会重复,所以其中学号可以唯一标识一条记录,学号就是t_student的候选码。那么假设姓名不会重复,那么候选码就有学号和姓名两个。 又比如【t_grade】(学号,课程,成绩),其中一个学生可以有多条成绩记录,所以需要学号和课程号组合才可以唯一标识一条数据库记录,所以学号、课程号就是t_student的一个候选码。
超码:只要一个属性组可以唯一标识一个元组,那么就说这个属性组是超码 【t_student】(学号,姓名,学院),姓名可能会重复,所以(学号)是一个超码同时也是候选码,(学号,姓名)可唯一标识一个元组,所以其也是超码,但不是候选码,因为少了姓名也可以唯一标识。
主属性:候选码中的属性称为主属性。【t_student】(学号,姓名,学院),学号就是主属性
非主属性:不是主属性就是非主属性呗。【t_student】(学号,姓名,学院),姓名、学院就是非主属性
全码:极端情况下表的所有属性组成该表的候选码,则称为全码
主键/主码:primary key,一个表可能有多个候选码,往往选中一个作为主键
外键/外码:foreign key,假设表A的某个属性attr是另一表B中的主码,且A和B有某种联系,则称attr是外码
参照表:外码所在的表
被参照表:外码所引用(foreign key references)的表
数据完整性:数据完整性就是指数据的正确性和相容性(符合逻辑),又分为实体完整性、参照完整性、用户自定义完整性
实体完整性:主码唯一且不为空
参照完整性:不允许引用不存在的实体。参照表插入某条记录,这条记录的外码在被参照表中必须存在
用户自定义完整性:由用户自定义的数据约束。比如性别只能用男、女表示,人的年龄在0-120之间。常见的用户自定义完整性有NOT NULL,UNIQUE,CHECK等

内模式:对数据库的物理存储结构和存储方式的描述,是数据库在数据库内部的存储方式。拿MySQL来讲,每建一个表,都会在文件系统上生成一个或多个文件,这些文件存储了数据、表信息、索引信息,这就称为内模式
模式:对内模式的抽象,即数据库
外模式:对模式的抽象,即用户直接使用的应用程序
外模式-模式映像:保证数据的逻辑独立性。当模式改变时(增加表,增加表的结构),可以保证外模式不变
模式-内模式映像:保证数据的物理独立性。当内模式改变时(比如MySQL切换了存储引擎),可以保证模式不变,从而外模式也不会变。

关系模式
关系模式是对关系的描述(有哪些属性,各个属性之间的依赖关系如何),模式的一个具体值称为模式的一个实例。模式反应是数据的结构及其联系,是型,是相对稳定的,实例反应的是关系某一时刻的状态,是值,是相对变动的。
想要查看t_student的关系模式?DESC t_student
想要查看t_student的关系实例?SELECT * FROM student
另外,关系模式有约定的数学表示,R(U,D,DOM,F),R指关系名,U指一组属性,D指域,DOM指属性到域的映射,F就是指数据依赖。举个栗子,假设一个学生表t_student,拥有属性学号,姓名,性别,学院,其数学表示如图。

数据库中的各种定义,关系、关系模式、关系模型……相关推荐

  1. 数据库笔记——实体关系与数据库中存储的方式

    实体间的关系: 一对一:如老公和老婆:一对多:如一个员工从属一个部门,一个部门拥有多名员工:多对多:一名老师有多名学生,一名学生有多名老师: 概念模型: Java中的实体类(JavaBean) 描述实 ...

  2. 数据库中Schema(模式)概念相关

    数据库中Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构.还有一种是物理上的 Schema,指的是数据库中的一个名字空间,它包含一组表.视图 ...

  3. PostgreSQL数据库中的角色(Role)、用户(User)、模式(Schema)

    文章目录 PostgreSQL数据库中的角色(Role).用户(User).模式(Schema) 角色(Role)和用户(User) 角色操作 CREATE ROLE 创建角色 ALTER ROLE修 ...

  4. mysql 查询不为0的数据_查询数据库中所有记录总数不为0的数据表名称

    [如何查询postgreSQL 里面某个数据库中所有用户定义的数据表的名字@forandever 2011-11-131.通过命令行查询\d 数据库  -- 得到所有表的名字\d 表名  -- 得到表 ...

  5. MySQL中地点的数据类型_数据库中地址的数据类型

    数据库中用什么数据类型存储电话号码比较合理? 因为涉及到固定电话,所以一般用varchar2 ,单纯手机号码的话可以用number. 数据类型分类: 数字型- Integer(整型).Long(长整型 ...

  6. sqlserver根据字段查表_查找sqlserver数据库中,查询某值所表名和字段名

    有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,通过一个存储过程实现的.只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名. 前提是要将这个存储过程放在所查询的数据库. CR ...

  7. MySQL的关系模式集是什么_数据库中“关系模式”的定义是什么?

    展开全部 数据库中"关系模式"的定义是对关系的描述,其必须指出这个元组集合的结构,也就是它32313133353236313431303231363533e4b893e5b19e3 ...

  8. 【数据库】期末复习:SQL语句、关系代数的运算、范式的定义和判断、求最小函数依赖集、ER图转关系模式

    文章目录 SQL语句 查询select 其他 视图 关系代数的运算 并.差.笛卡尔积.投影和选择 连接 自然连接 笛卡尔积 详细版(如果完全不了解就看这里) 范式的定义和判断 如何求候选码 一些例题 ...

  9. 数据库中的实体、元组、字段、属性、码、分量、依赖关系、完全部份传递依赖、范式等你了解吗?【笔记自用】

    我们读不同的描写数据库的文章,会看到不同的概念名称,从某种意义上来讲,是公说公有理,婆说婆有理的问题,只是个人理解不同而称呼有异,这也给一些人,尤其是初学者带来一定的困扰,鉴于此,特整理<数据库 ...

最新文章

  1. 黑白青春-纪念那年我的秋天
  2. 云南大学计算机网络原理,云南大学软件学院计算机网络原理期中试卷王世普.doc...
  3. docker mysql 无权限_Docker 中级篇
  4. 安卓能不能安装jar_Sentaurus TCAD安装之jedit+TCAD宏包
  5. 条件队列大法好:wait和notify的基本语义
  6. python秒表小项目_适合新手练习的几个python小项目
  7. 小程序引用其他页面js_来聊聊小程序页面之间如何通信
  8. 道闸系统服务器价格,小区道闸系统价格服务客户
  9. 01背包问题--动规
  10. 分治算法兵乓球比赛日程(java)
  11. C#中使用GUID的笔记
  12. 用批量重命名技巧把文件夹下多个文件快速重命名
  13. web常见的屏幕尺寸
  14. MySQL单表数据查询之分组数据查询之旅
  15. 关于医院精确套打发票的实现
  16. Go语言经典库使用分析(六)| Negroni 中间件(二)
  17. 图形绘制canvas
  18. 进程间通信之面包师问题
  19. 电磁感应式无线充电系统详解
  20. 《星科快报》2021.11.11何为NFT

热门文章

  1. 解决idea包名合并问题
  2. ElasticSearch入门-搜索(java api)
  3. matlab遗传算法工具箱源代码学习
  4. Linux内核中段伪例,利用Linux内核里的Use-After-Free(UAF)漏洞提权
  5. 神马笔记 版本1.5.0——笔名功能
  6. 有序列表、无序列表、定义列表
  7. VM新创建的虚拟机上网问题
  8. 浅谈childNodes和children以及firstChild和firstElementChild
  9. 方法递归调用(重点)
  10. 基于facenet做人脸比对