首页 > 数据库 >关系数据库

关系数据库

时间:2023-10-14 10:33:24浏览次数:47  
标签:关系 ...... 元组 关系数据库 集合 属性

一、关系数据结构及形式化定义

1.1 关系

  关系模型的数据结构只包含单一的数据结构------关系,在关系模型中,现实世界的实体以及实体之间的各种联系均用单一的结构类型,即关系来表示。关系模型是建立在集合代数的基础上的,从集合论的角度给出关系数据结构的形式化定义。
 1、域:一组具有相同数据类型的值的集合。例如:自然数,整数,大于0且小于等于100的整数,{0,1},{男,女}等。
 2、笛卡尔积:给定一组域D1,D2,D3,......,Dn,允许其中某些域是相同的,D1,D2,D3,......,Dn的笛卡尔积为:D1×D2×......×Dn={(d1,d2,......,dn) | di∈Di,i=1,2,......,n},其中,每一个元素(d1,d2,......,dn)叫做一个n元组,简称元组,元组中每一个值叫做一个分量。就是每次在每一个域中选一个元素组成一个元组,每个元组元素不尽相同,最后将所有元组放在集合中即为笛卡尔积
 3、关系:D1×D2×......×Dn的子集叫做在域D1,D2,D3,......,Dn上的关系,表示为R(D1,D2,D3,......,Dn),其中,R表示关系的名字,n是关系的目或度。即关系是笛卡尔积的有限子集,所以关系也是一张二维表,表的每行对应一个元组,每列对应一个域,由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性,n目关系必有n个属性。

  • 超码又称“超级码”,是一个或多个属性的集合,这些属性可以在一个实体集中唯一地标识这个实体。
  • 若关系中的某一属性组能唯一地标识一个元组,而其真子集不能,则称该属性组为候选码
  • 超码包括候选码,虽然超码中可以唯一标识一个实体,但是可能大多数超码中含有多余的属性。如果超码的任意真子集不能唯一地标识一个元组,则超码就是候选码。
  • 若一个关系有多个候选码,则选定其中一个为主码
  • 候选码的诸属性称为主属性
  • 若关系模式的所有属性是这个关系的候选码,称为全码

  关系有三种类型:基本关系(通常又称为基本表或基表),查询表和视图表。其中,基本表是实际存在的表,它是实际存储数据的逻辑表示(存储数据的);查询表是查询结果对应的表(一个表);视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据(显示出来的)。
  基本关系有6条性质:

  • 列是同质的:每一列中的分量来自一个域。
  • 不同列可出自同一个域(但属性名是不同的(唯一))。
  • 列的顺序无所谓。
  • 任意两行元组的候选码不能取相同的值。
  • 行的顺序无所谓。
  • 每一个分量必须是不可分的数据项。

1.2 关系模式

  关系的描述称为关系模式,它可以形象化的表示为R(U,D,DOM,F),其中,R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。通常可简记为R(U)。

1.3 关系数据库

  所有关系的集合构成一个关系数据库。关系数据库有型和值之分,关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

1.4 关系模型的存储结构

  表是关系数据的逻辑模型,在关系数据库的物理组织中,有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统来完成;有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。

二、关系操作

2.1 基本的关系操作

  即增删改查。关系的查询表达能力很强,是关系操作中最主要的部分,查询操作又可以分为选择、投影、并、差、笛卡尔积(5中基本操作)、连接、交等。

2.2 关系数据语言的分类

  关系数据语言包括:

  • 关系代数语言(例如ISBL)
  • 关系演算语言
  • 具有关系代数和关系演算双重特点的语言(例如SQL)

三、关系的完整性

3.1 实体完整性

  若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。例如:选修(学号,课程号,成绩)关系中,“学号,课程号”为主码,则“学号”和“课程号”两个属性都不能取空值。

3.2 参照完整性

  若属性(属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须:

  • 或者取空值(F的每个属性值均为空值)。
  • 或者等于S中某个元组的主码值。

  例如:对于学生(学号,姓名,性别,专业号,年龄)关系中,学号是主码,专业号是外码,此时,专业号为空表示当前学生还未确定专业,或者专业号为相对应的关系专业(专业号,专业名)中专业号相等。

3.3 用户定义的完整性

  用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

四、关系代数

4.1 传统的集合运算

设关系R和关系S都有n个属性,且相应的属性取自同一个域。

  • 并:∨,属性相同,结果仍为n目关系,由属于R或属于S的所有元组组成。
  • 差:- ,属性相同,结果仍为n目关系,由属于R而不属于S的所有元组组成。
  • 交:∧,属性相同,结果仍为n目关系,由属于R且属于S的元组组成。
  • 笛卡尔积:不要求属性相同。

4.2 专门的关系运算

1、选择:σSdept='IS'(Student),即在Student表中找到属性Sdept为IS的所有元组。
2、投影:∏Sname,Sage(Student),即在Student表中查找属性Sname和Sage两列,同时将两列中重复行取消。
3、连接:

  • 等值连接:从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组。
  • 自然连接:将重复属性去掉。

4、除:R÷S

标签:关系,......,元组,关系数据库,集合,属性
From: https://www.cnblogs.com/QwertyWang/p/sql_2.html

相关文章

  • 主流常见关系数据库分页sql语句写法。MySQL、PostgreSQL、SQLite、Oracle、DB2、SQL S
    前言1.分页sql逻辑:每页10条,取第3页。即取第21~30条数据1.1.MySQL/SQLite/PostgreSQLselect*fromdemolimit10offset20;select*fromdemolimit20,10;--PostgreSQL不支持该写法1.2.Oracle12C+Oracle11g之前很难用,Oracle12C+与MySQL用法格式一样了,只是语法关......
  • 关系数据库设计与范式回顾
    今天先把关系数据库设计及范式相关知识回顾总结一下,大部分出自我2010年底的学习笔记,发上来供大家参考,同时也希望对看到的人有所帮助。--------------------------------------------一、三大范式1、第一范式:消除一个字段包含多个数据库值,消除一个记录包含重复的组(单独的一列包含多......
  • 关系数据库扩展知识总结
    最近在学习分布式数据库架构相关的知识(主要是Mysql),并对数据库扩展这部分知识整理总结了一下,希望对看到的人有所帮助,也希望读者能多提建议。-----------------------------------------------------------关系型数据库扩展的几个步骤:一、第一步:主从复制+读写分离......
  • Redis 可以用作关系数据库吗?
    让我们从问题“你如何使用Redis?”开始。我相信大多数人将其用作服务的缓存。但是,我希望你知道它不仅仅可以用于缓存。最近,我在一篇文章中看到一份报告,介绍了如何将部分数据迁移到Redis,并将请求首先发送到Redis。现在,我想说的是不是我们如何应用它,而是在使用Spring及其抽象时,我们可......
  • 可扩展的分布式数据库架构 vs 传统关系数据库
    可扩展的分布式数据库架构本文发表在《程序员》杂志2010年第6期引言数据库的可用性和扩展性一直是数据库厂商和用户最关注的问题。过去我们采用高端的设备,比如使用小型机和大型存储来保证数据库的可用性。而扩展性主要采用向上扩展(Scaleup)的方式,通过增加CPU,内存,磁盘等方式......
  • Oracle - 关系数据库管理系统
    常见语法1、withas短语,抽取公用数据withA_tableas(select'feiqs'name,18ageFROMdual),B_tableas(select'feiqs'name,29ageFROMdual)select*fromA_table,B_table2、rowid数据唯一标识,该值表明了该行在数据库中的物理具体位置selectrowidfromst_......
  • NoSQL数据库与关系数据库的比较
    1.在原理方面2.在数据规模方面3.在数据库模式方面4.查询效率方面:5.在事务一致性方面:6.在数据完整性方面:7.在可扩展性方面:8.在可用性方面9.在标准化方面:10.在技术支持方面:11.在可维护方面:关系数据库的优势:劣势NoSQL数据库:两种数据库的应用场景:  ......
  • 系统架构设计师笔记第17期: 关系数据库
    数据库的分类可以根据不同的标准进行划分:根据数据结构分类:1.1关系数据库(RelationalDatabase):关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据,以表格形式存储数据,并支持事务处理、多用户访问、数据安全性和完整性控制等功能。1.2非关系型数据......
  • SQLite与MySQL与PostgreSQL:关系数据库的比较
    概述和功能SQLite是一个基于文件的嵌入式RDBMS,不需要任何安装或设置。反过来,这意味着应用程序不在需要启动,停止或配置的单独服务器进程下运行。这种无服务器架构使数据库能够跨平台兼容。完整的SQL数据库包含在单个磁盘文件中,所有读取和写入都直接在此磁盘文件上进行。由于数据直接......
  • 非关系数据库型--Redis
    RedisRedis安装1.yum/apt安装root@ubuntu:~#aptinforedisPackage:redisVersion:5:6.0.16-1ubuntu1Priority:optionalSection:universe/databaseOrigin:Ubuntu[root@localhost~]#yuminforedisAvailablePackagesName:redisVersion:5.0.3......