数据库术语中的关系是什么?

当有人提到数据库课程中的关系时,这是什么意思?

解决方法

令人惊讶的是,“关系”数据库中的“关系”并不表示一个表与另一个表的外键关系.根据维基百科 ‘Relation (database)’所述,“关系是一种数据结构,包括一个标题和一组共享相同类型的无序元组.”

sql RDBMS(如MS sql Server和Oracle)中,表格是存储关系,其中在数据字典中定义的列名称形成“标题”,行是关系的“元组”.

然后从表中查询可以返回一个不同的关系:

create table t (x number primary key,y number not null);

Table created.

sql> insert into t values (1,10);

1 row created.

sql> insert into t values (2,20);

1 row created.

sql> select x from t;

         X
----------
         1
         2

从t中选择x,返回一个与基表相比较少的列,少元素的元组的关系.并从t中选择x,y,其中x = 1将返回与基表相比较少的元组的关系:

sql> select x,y from t where x = 1;

         X          Y
---------- ----------
         1         10

使用内连接的示例:

sql> create table s (x number primary key,words varchar2(100) not null);

Table created.

sql> insert into s values (1,'Hello World!');

1 row created.

sql> insert into s values (3,'Will not show');

1 row created.

sql> select t.x,t.y,s.words
  2  from t
  3  inner join s
  4      on t.x = s.x;

         X          Y WORDS
---------- ---------- ---------------
         1         10 Hello World!

在概念上,t.x = s.x上的t内连接经过以下步骤:

>拿取s和t的笛卡尔乘积,取每行s,并将其与每行t组合,得到一个大小为t * t或t的大小的元组,每个元组都有两个列的所有列和t很像结果:

sql>选择*从s,t;

X WORDS                    X          Y
3 Will not show            1         10
     3 Will not show            2         20
     1 Hello World!             1         10
     1 Hello World!             2         20

(或从sql-92语法中的s交叉连接中选择*)从包含四个元组的笛卡尔乘积(在s.x = t.x上四列)将元组还原为一个,仍然有四列:

sql> select *
  2  from t
  3  inner join s
  4      on t.x = s.x;

         X          Y          X WORDS
---------- ---------- ---------- ---------------
         1         10          1 Hello World!

并选择t.x,s.word从关系中除去一列.

请注意,以上描述了正在发生的一个概念或逻辑模型.数据库带有查询优化器,它们旨在给出结果,就好像遵循所有逻辑步骤一样,但是在物理实现工作中跳过步骤,并使用不是部分的支持物理结构(如索引)的关系模型.

视图是不存储关系的关系定义,而是根据其他关系定义关系,最终以底部的表格. (除了物化视图,预先计算并存储基于其他关系的关系.)

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03