zoukankan      html  css  js  c++  java
  • sql-schema与catalog

     schema: 指的是说当偶create database caiceclb时,caiceclb就是一个schema

     catalog: 指的是所有的database目录,就像上图显示的那样,将MySQL原来的(mysql,infomation_schema)及后来新建的的database的集合。

    catalog,数据库名,schema,表名,
    服务器的本地名称.数据库名.dbo.表名

    schema: 指的是说当用户create database ****时,****就是一个schema

     catalog:指的是所有的database目录,将MySQL原来的(mysql,infomation_schema)及后来create database ****创建的的database的集合。

    schema:    (直接翻译)模式;计划;图解;概要   我自己的理解在数据库里:表空间

    catalog:    (直接翻译) 目录 产品目录 编目  

    schema:

    指的是说当偶create database caiceclb时,caiceclb就是一个schema

    在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样,一个大数据库就可以根据应用把其表分开来管理。
    不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下,每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表,可以存入不同的数据(即schema用户自己的数据。

    catalog: 指的是所有的database目录

    两者关系:

    从概念上说,一个数据库系统包含多个 Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称从而解决命名冲突的问题了;例如数据库对象表的完全限定名称就可以表示为:Catalog名称.Schema名称.表名称。这里还有一点需要注意的是,SQL标准并不要求每个数据库对象的完全限定名称是唯一的,就象域名一样,如果喜欢的话,每个IP地址都可以拥有多个域名

    在Oracle中,一个用户就是一个Schema,表都是建立在Schema中的,也可以理解为每个用户拥有不同的表。一个用户想访问另外一个用户,也就是另外一个schema的表的时候,可以用 username.tablename的形式来访问,完全不需要分布式事务。
     
     
    当你在 SQL Server 里面, 使用 create database  创建一个数据库以后。
    你可以不必额外的去创建 schema,因为 SQL Server 会 自动的创建一个 名字叫  dbo  的 schema
  • 相关阅读:
    k8s之docker被屏蔽后下载方法
    代码合并工具Beyond Compare的使用技巧
    (转)设计模式——观察者模式
    notepad问题汇总
    个人构建问题
    内部git常用总结
    (转)动态规划算法—买卖股票的最佳时机系列
    (转)java中引用传递和值传递
    互联网面试题
    (转)UML类图与类的关系详解
  • 原文地址:https://www.cnblogs.com/hwaggLee/p/4596393.html
Copyright © 2011-2022 走看看