用惯了Oracle的人,接触SQL Server中的概念时,会觉得比较难理解,甚至感觉有点“绕”,这是因为Oracle中将某些其他数据库中存在的概念给简化了,这里就拿两个最常见的概念来举例说明:
1、schema:A schema is a container that holds tables, views, procedures, and so on. It is inside a database, which is inside a server. These entities fit together like nested boxes. The server is the outermost box, and the schema is the innermost box. It holds all of the securables listed below. But it cannot hold another box.
上面“schema”的概念,可以翻译成“模式”,这里说是各种数据库对象的容器,其实,也就是一个数据库对象的逻辑集合,这个概念,不仅仅在SQL Server里有,在其他很多关系库里也有,只不过在Oracle中对这个概念进行了弱化,将模式(schema)与用户(user)设计成了一一对应的模式,很多Oracle用户甚至没有模式的概念,只有用户的概念。而在SQL Server里,模式和用户是两个分离的概念,模式是数据对象的容器,而用户是访问数据库的方式和途径,用户可以拥有模式,模式也可以与用户分离,在用户间转换,甚至游离于任何数据库用户。SQL Server中文联机文档里,将schema翻译为架构,大家知道是一回事儿就可以。
2、logical Operators和physical Operators
1)Logical Operators:Logical operators describe the relational algebraic operation used to process a statement. In other words, logical operators describe conceptually what operation needs to be performed.
2)Physical Operators:Physical operators implement the operation described by logical operators. Each of the physical operators is an object or routine that performs an operation. For example, some physical operators access columns or rows from a table, index or view. Other physical operators perform other types of operations: The Aggregate operator calculates an expression containing MIN, MAX, SUM, COUNT or AVG, and the Merge Join operator performs different types of logical join operations.
这里讲的逻辑操作(logical Operators)和物理操作(physical Operators)是指SQL语句执行计划中的各个操作,这点SQL Server有点特殊,非得把执行计划的一个步骤分为逻辑操作和物理操作,前者是逻辑概念,后者是前者的具体选择和实现,这点来说,Oracle更简单些,执行计划中直接给出了具体的操作,也就是这里的物理操作,没有明确逻辑操作的概念,其他数据库中,记得也没有这层概念(记得是这样,但不是很确定),感觉多个逻辑概念有点“多余”,也许是微软想让大家阅读分析执行计划时,给大家一个对每个步骤中操作的概念吧。
从以上两点来看,SQL Server中的概念一般分的更细致,层级更多,各个概念之间也分离的更加清晰,但对用惯了Oracle等其他数据库的用户来讲,开始可能要多适应和理解这点了。

SQL Server“复杂”概念之理解的更多相关文章

  1. SQL Server Alwayson概念总结

    一.alwayson概念 “可用性组” 针对一组离散的用户数据库(称为“可用性数据库” ,它们共同实现故障转移)支持故障转移环境. 一个可用性组支持一组主数据库以及一至八组对应的辅助数据库(包括一个主 ...

  2. SQL Server执行计划的理解【转】

      要理解执行计划,怎么也得先理解,那各种各样的名词吧.鉴于自己还不是很了解.本文打算作为只写懂的,不懂的懂了才写. 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看 ...

  3. SQL SERVER中架构的理解

    在sqlserver 2005中,可能大家在工作或学习的时候会经常发现这样一些问题,你使用一个账户在数据库中创建了一张表,却发现你自己创建的表却没有修改和查询的权限,这是一件很郁闷的事情,在sqlse ...

  4. SQL Server 死锁概念和分析

    锁的概念 锁是什么 锁是数据库中在并发操作情形下保护资源的机制.通常(具体要看锁兼容性)只有锁的拥有者才能对被锁的资源进行操作,从而保证数据一致性. 锁的概念可分为几部分 锁资源(锁住什么) 锁模式( ...

  5. SQL Server 执行计划的理解

    要理解执行计划,怎么也得先理解,那各种各样的名词吧.鉴于自己还不是很了解.本文打算作为只写懂的,不懂的懂了才写. 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的. ...

  6. Sql Server 游标概念与实例

    引言 先不讲游标的什么概念,看如下Sql Server2008 图例: 需求:两张表的O_ID是一一对应的,现在求将加薪的工资+原来的工资=现在的工资,也就是O_Salary=O_Salary+A_S ...

  7. 对MySql查询缓存及SQL Server过程缓存的理解及总结

    一.MySql的Query Cache 1.Query Cache MySQL Query Cache是用来缓存我们所执行的SELECT语句以及该语句的结果集.MySql在实现Query Cache的 ...

  8. SQL Server 中函数的理解总结

    T-SQL语言为我们提供了更加灵活的方式操作数据,那就是函数,函数总的分为三大类:标量函数:(传入一个参数,再传出一个参数)聚合函数(传入多个参数,传出一个参数),表值函数(传入一个结果集对象,让我们 ...

  9. sql server dba概念系列引用

    原文转自:https://www.cnblogs.com/gaochundong/p/everyone_is_a_dba_sqlserver_architecture.html <人人都是 DB ...

随机推荐

  1. bash:command not found解决方法

    先用:echo $PATH 查看path是否含有:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin如果没有先用临时环境变量(重启 ...

  2. trackViewer 氨基酸位点变异位置图谱展示

    内容中包含 base64string 图片造成字符过多,拒绝显示

  3. SVN服务器搭建和使用教程

    安装SVNserver 点击Next下一步,如下: 然后再点击Next项,下一步,如下: 点击[Next] 如下: Location是指VisualSVN Server的安装目录,Repository ...

  4. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) D. Office Keys time limit per test2 seconds 二分

    D. Office Keys time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  5. cookie被禁用,如何使用session

    转载自:https://blog.csdn.net/ai_shuyingzhixia/article/details/80778183 1.禁止使用cookie response.encodeURL( ...

  6. docker下debian镜像开启ssh, 允许root用密码登录

    用的官方python镜像做开发, 暴露端口, 用pycharm ssh进去开发. 忽然发现本来ssh能连上, 但是更了新的python镜像连不上了. 有折腾了一下, 连上了. 主要是python官网镜 ...

  7. 虚拟机镜像压缩(qcow2,raw)

    ●qcow2 格式的压缩首先,需要对虚拟机系统的剩余空间写零操作: $ dd if=/dev/zero of=/zero.dat 删除 zero.dat$ rm /zero.dat关闭虚拟机,进入虚拟 ...

  8. RPG游戏中如何判断敌人是否在玩家的攻击范围之内

    // 方式1:通过主角和场景中的所有敌人比较 private void AtkCondition1(float _range,float _angle) { // 搜索所有敌人列表(在动态创建敌人时生 ...

  9. CRC分段校验

    crc16 modbus分段校验码: const uint8_t ModbusCRCHighTab[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x ...

  10. SQL语句内做除法得出百分比

    保留两位小数点 SELECT ROUND(CAST(field1 AS DOUBLE)/field2, 2) * 100 FROM TB; 不保留 SELECT CAST(field1 AS FLOA ...