·

数据库中的Schema是什么?

发布时间:2024-08-18 00:31:51阅读量:111
专业文章
转载请注明来源

在数据库中,schema( [ˈskimə],发音 “skee-muh” 或者“skee-mah”,(计划或理论的)提要,纲要;网络模式;图式;架构。中文叫模式)是数据库的组织和结构schemasschemata都可以作为复数形式。模式中包含了schema对象,可以是(table)、(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary key)、外键(foreign key)等。数据库模式可以用一个可视化的图来表示,它显示了数据库对象及其相互之间的关系。

以上是模式图的一个简单例子,显示了三个表及其数据类型、表之间的关系以及主键和外键,以下是数据库模式的一个更复杂的例子。

在这种情况下,模式图分为四个部分:

(1)Customer Data(客户数据):与客户有关的数据,如姓名,地址等

(2)Business(业务):业务所需的数据,例如员工,商店位置,付款细节等

(3)Inventory(库存):所有产品的细节。在这里,产品是电影,所以它包含电影标题,类别,演员等数据。

(4)Views(视图):关于用于评估的数据的特别观点,所以通过这些模式图,我们可以进一步创建一个数据库,实际上,MySQL Workbench允许我们直接从图中生成一个Create Table脚本,然后我们就可以直接用这个脚本去创建一个数据库,还可以直接将一个数据库转换为一个关系图表。

Schema和DataBase是否等同?

涉及到数据库的模式有很多疑惑,问题经常出现在模式和数据库之间是否有区别,如果有,区别在哪里。

取决于数据库供应商

对schema(模式)产生疑惑的一部分原因是数据库系统倾向于以自己的方式处理模式

(1)MySQL的文档中指出,在物理上,模式与数据库是同义的,所以,模式和数据库是一回事。
(2)但是,Oracle的文档却指出,某些对象可以存储在数据库中,但不能存储在schema中。 因此,模式和数据库不是一回事。
(3)而根据这篇SQL Server技术文章SQLServer technical article,schema是数据库SQL Server内部的一个独立的实体。 所以,他们也不是一回事。

因此,取决于您使用的RDBMS,模式和数据库可能不一样。

SQL标准对schema如何定义?

ISO/IEC 9075-1 SQL标准中将schema定义为描述符的持久命名集合(a persistent, named collection of descriptors),如果你之前对schema的定义疑惑不解,希望看了我的这篇文章会好一些,起码不会更差。

广义上

造成疑惑的另一个原因可能是由于schema这一术语具有如此广泛的含义,因为它在不同的环境下有不同的含义,schema一词源于希腊语skhēma,意思是形态(form),轮廓(figure),形状(shape)或方案(plan)。Schema在心理学中被用来描述组织信息类别及其之间关系的有组织的思维或行为模式。我们在设计一个数据库之前,还需要看看数据中的信息种类和它们之间的关系, 在我们开始使用DBMS中的物理模式之前,我们需要创建一个概念模式。在软件开发中讨论模式时,可以讨论概念模式、物理模式、内部模式、外部模式、逻辑模式等,每一个都有其特定的含义。

DBMS的schema定义

以下是三个领先的关系数据库系统的schema定义:

MySQL

Conceptually, a schema is a set of interrelated database objects, such as tables, table columns, data types of the columns, indexes, foreign keys, and so on. These objects are connected through SQL syntax, because the columns make up the tables, the foreign keys refer to tables and columns, and so on. Ideally, they are also connected logically, working together as part of a unified application or flexible framework. For example, theINFORMATION_SCHEMA and performance_schema databases use “schema” in their names to emphasize the close relationships between the tables and columns they contain.In MySQL, physically, aschema is synonymous with adatabase. You can substitute the keywordSCHEMA instead ofDATABASE in MySQL SQL syntax, for example using CREATE SCHEMA instead of CREATE DATABASE.Some other database products draw a distinction. For example, in the Oracle Database product, aschema represents only a part of a database: the tables and other objects owned by a single user.

MySQL官方文档指出,从概念上讲,模式是一组相互关联的数据库对象,如表,表列,列的数据类型,索引,外键等等。但是从物理层面上来说,模式与数据库是同义的。你可以在MySQL的SQL语法中用关键字SCHEMA替代DATABASE,例如使用CREATE SCHEMA来代替CREATE DATABASE

参考: MySQL Glossary, MySQL 5.7 参考手册. MySQL, Retrieved 6 June 2016。

SQL Server

The names of tables, fields, data types, and primary and foreign keys of a database.

SQL Server官方文档指出,schema中包含了数据库的表,字段,数据类型以及主键和外键的名称。参考:SQL Server Glossary. SQL Server 2016 Technical Documentation. Microsoft Developer Network. Retrieved 6 June 2016.

Oracle Database

Oracle中的schema系统与其他数据库系统大不相同,Oracle的schema与数据库用户密切相关。

A schema is a collection of logical structures of data, or schema objects. A schema is owned by a database user and has the same name as that user. Each user owns a single schema.

Oracle官方文档指出,schema是数据或模式对象的逻辑结构的集合,由数据库用户拥有,并且与该用户具有相同的名称,也就是说每个用户拥有一个独立的schema。

参考: Oracle Database Objects. Oracle Database Online Documentation 12c Release 1 (12.1). Oracle Help Center. Retrieved 6 June 2016.

如果想了解更多关于schema的内容,可以参考这篇文章schema definitions by DBMS.

创建Schema

尽管上述三个DBMS在定义schema方面有所不同,还是有一个共同点,就是每一个都支持CREATE SCHEMA语句。

MySQL

在MySQL中,CREATE SCHEMA创建了一个数据库,这是因为CREATE SCHEMACREATE DATABASE的同义词。 换句话说,你可以使用CREATE SCHEMA或者CREATE DATABASE来创建一个数据库。

Oracle Database

在Oracle中,CREATE SCHEMA语句实际上并不创建一个模式,这是因为已经为在创建用户时,数据库用户就已经创建了一个模式,也就是说在ORACLE中CREATE USER就创建了一个schema,CREATE SCHEMA语句允许你将schema同表和视图关联起来,并在这些对象上授权,从而不必在多个事务中发出多个SQL语句。

SQL Server

在SQL Server中,CREATE SCHEMA将按照名称创建一个模式,与MySQL不同,CREATE SCHEMA语句创建了一个单独定义到数据库的模式。和ORACLE也不同,CREATE SCHEMA语句实际创建了一个模式(前面说到这个语句在ORACLE中不创建一个模式),在SQL Server中,一旦创建了模式,就可以往模式中添加用户和对象。

总结

schema这个词可以用在很多不同的环境中,在特定数据库管理系统创建一个schema时,您需要使用DBMS特定定义模式,当你切换到一个新的数据库管理系统时,一定要查看该系统是如何定义schema的。


中文翻译转自:数据库中的Schema是什么?_我是蚁人的博客-CSDN博客_schema

英文原文转换语言可见。

评论区

暂无评论,来发布第一条评论吧!

弦圈热门内容

法人可以借钱给自己公司吗?

法人可以借钱给自己公司吗?很多人只要公司一缺钱就把自己的钱转给公司,殊不知啊,这都掉进坑里了。那怎么操作才可以避免风险,今天我就来给大家详细介绍一下。01在公司法定代表人借钱给公司之前,需要召开一次股东会议,明确公司需要向法人借款的事项以及相关内容,这里需要注意一点就是咱们公司的股东为2位及以上才需要召开股东会决议。02法人和公司之间需要签一个借款合同,合同中要对借款人,借款金额借款时间,偿还时间,借款利率,借款途径等相关内容说明清楚。03借款利率不得高于同期银行的贷款利率水平,并且公司要代扣代缴相关的利息税。04财务做账处理需要保留相关的资料凭证,比如借款合同,借款的银行回单,公司开具的借款收据等等。

工商异常对企业的危害有哪些?

1. 影响企业信用度和个人征信当企业被列入工商异常名录后,异常状态也会公开于社会眼前,不仅合作伙伴对企业的信用情况产生质疑。其法人、股东、监事的有关信息也会被纳入“黑名单”,限制高消费,不能贷款买房、移民,不能乘坐飞机、高铁,甚至连养老保险都不能领取。2. 贷款受限,不利于企业发展企业经营异常名录信息是银行等金融机构作为贷款、担保保险等商事活动的参考依据。被列入经营异常名录的企业金融机构可能不受理其银行开户、贷款等业务3. 企业无法变更或注销当企业被列入异常名录时,企业主体不能做任何的工商变更或注销。4. 无法参与政府工程,阻碍发展当企业被列入异常名录时,企业将受到信用约束机制的影响。政府采购、工程招标、国有土地使用权以及申请荣誉等工作,对被列入经营异常名录的企业依法予以限制或者禁入。5. 办理税务事项受限不能办理变更税务、升级一般纳税人、防伪税控发行、领取发票等税务事项。6. 吊销营业执照公司被列入经营异常名录后,该异常记录会一直公示在市场监督管理局的网页上,无论是在工商局网站还是一些第三方查询网站,都可以查到异常信息。如果一直不处理,严重情况下,还会被吊销营业执照!

cover

金钱替代了价值,人成了金钱的奴隶,人与人之间的关系充满了铜臭

“货币只是通向最终价值的桥梁,而人却无法栖居在桥上”——齐美尔这真是一句发人深省的一句话。关于现代性审美,从波德莱尔、齐美尔、克拉考尔,《美丽新世界》的赫胥黎,一直到法兰克福学派的马尔库塞,马泰卡林内斯库,都有着精彩的论述。卡林内斯库提出了现代主义和工业时代的五大审美:现代主义、先锋派、颓废、媚俗艺术、后现代主义。齐美尔从工具、货币金钱角度提出的货币哲学,货币替代信仰、货币替代价值。货币替代价值随着货币经济在现代社会的日益繁荣,货币逐渐将它自身的品格和逻辑渗透到现代人的心理层面,影响现代个体行为,塑造独特的现代性体验。金钱货币从指向一定目标的纯粹的手段变成目的本身,被放在“至高无上”的位置上,成了一切价值的替代品与衡量物。在人们的心中,金钱具有无穷的魅力,拥有至高无上的地位,生活的意义与占有货币紧密联系在一起,即货币替代价值。“大多数现代人在他们生命的大部分时间里都必须把赚钱当作首要的追求目标,由此他们产生了这样的想法,认为生活中的所有幸福与所有最终满足,都与拥有一定数量的货币紧密地联系在一起。在内心中,货币从一种纯粹的手段和前提条件成长为最终的目的。”在经济活动中,正常的经济行为起源 ...

小规模和一般纳税人疑问解答

小规模和一般纳税人能互相转吗?小规模是可以转变为一般纳税人的。及时公司没有达到500w的营业额,也可以去工商局申请转为一般纳税人。但是,一般纳税人就不能变回小规模了。所以那些享受小规模优惠政策的老板,注意年开票额千万不要超500w小规模季度30w免税,可以不要进项票吗?不可以,因为小规模季度30w免税,免的只是增值税,公司还有企业所得税,个体户还有个税,这些进项票都可以用来抵扣成本,从而可以少交企业所得税或者个税注册公司选择小规模还是一般纳税人?看客户:如果未来客户体量比较大,不能接受3%增值税专用发票,建议直接注册一般纳税人,否则可以选小规模。看规模:如果公司投资大,年收入销售很容易超500w,建议直接认定一般纳税人,否则选小规模。看行业:有的行业只能注册为一般纳税人。

给邱教授寄信没有收到回复,我被网友顺着网线找上门暴打一顿,最后踏上修仙之路成为元婴大佬

在京北市的八月,阳光透过树叶的缝隙,洒下斑驳的光影,为这座城市增添了几分宁静与祥和。然而,对于陈木而言,这个夏天注定不平凡。陈木,一个普通的图书管理员,每天的工作就是整理书架、帮助读者查找资料、登记借阅信息。他的生活简单而规律,除了工作,他几乎不与人交往,也没有什么特别的爱好。然而,在这个平凡的外表下,陈木却有着一个不为人知的秘密——他对数学有着近乎狂热的热爱。陈木的数学之路始于他的童年。他的父亲是一位数学老师,家中的书架上摆满了各种数学书籍。在父亲的熏陶下,陈木从小就对数字和公式产生了浓厚的兴趣。他喜欢沉浸在数学的世界里,那里充满了逻辑和秩序,每一个问题都有答案,每一个答案都有逻辑。随着年龄的增长,陈木对数学的热爱并没有减退,反而越来越强烈。然而,陈木并没有选择成为一名数学家。他的父亲在他高中毕业那年因病去世,留下了一大笔债务。为了维持生计,陈木放弃了上大学的机会,选择了一份稳定的工作。尽管如此,他并没有放弃对数学的追求。每天下班后,他都会在自己的小屋里,点上一盏台灯,沉浸在数学的世界中。陈木的小屋并不大,只有一间卧室和一个小厨房。卧室里除了一张床和一个衣柜,最显眼的就是那张堆满了数 ...

小平邦彦:树懒style的世界一流数学家

撰文 | 喵头鹰同学1915年,日本农商务省官员小平权一家迎来了长子。这是个有点让人担心的孩子,从小到大一副不大精明的样子。长大以后他更是自称懒人,总觉得这也麻烦那也啰嗦,他时常想着如何摸鱼。他还说树懒过的日子就是他的理想生活,大有“躺平之王”的气质。但偏偏就是这样一个人,日后从东京大学前往普林斯顿高等研究所工作,还成了首个获得菲尔兹奖的亚洲数学家。这个树懒style的大数学家,就是小平邦彦。正在上课的小平邦彦(摘录于为纪念作者 60 岁而出版的Collected Works)1稀里糊涂上重点童年时期的小平邦彦完全没有“牛娃”的样子。他在学校里的表现谈不上出色,除了数学别的科目都学得不好。小平邦彦和中学时期的同学回忆儿时经历时,小平邦彦直言自己“非常讨厌上学”,一点不考虑要是有家长想拿他当榜样激励自家孩子怎么办。到了初中阶段,情况没有好转多少,但他遇到了一位眼光独特的化学老师。当时的化学课程涉及大量计算题,小平邦彦“都能应付”,所以老师觉得他可能是个人才,进而鼓励他报考第一高等学校。贵为重点的一高当年报名条件还很宽松,想考的学生基本都能去试试。也许是被老师的热情感动了,小平邦彦决定认真 ...