加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:37:27 所属栏目:MsSql教程 来源:网络整理
导读:当有人提到数据库课程中的关系时,这是什么意思? 解决方法 令人惊讶的是,“关系”数据库中的“关系”并不表示一个表与另一个表的外键关系.根据维基百科 ‘Relation (database)’所述,“关系是一种数据结构,包括一个标题和一组共享相同类型的无序元组.” 在SQL
当有人提到数据库课程中的关系时,这是什么意思?

解决方法

令人惊讶的是,“关系”数据库中的“关系”并不表示一个表与另一个表的外键关系.根据维基百科 ‘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从关系中除去一列.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读