数据库的schemas(模式)

数据库的schemas(模式)Schemas 模式 schema 发音 skee muh 中文叫模式 是数据库的组织和结构

大家好,欢迎来到IT知识分享网。

Schemas(模式)

schema(发音 “skee-muh” ,中文叫模式)是数据库的组织和结构。模式中包含了schema对象,可以是表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary key)、外键(foreign key)等。

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

而在Oracle中不能用create新建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决,在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同。

LDAP 中的 Schemas

LDAP的schemas也类似于数据库,LDAP的Schema定义了LDAP目录所应遵循的结构和规则,比如一个 objectclass会有哪些属性,这些属性又是什么结构等等,schema给LDAP服务器提供了LDAP目录中类别,属性等信息的识别方式,让这些 可以被LDAP服务器识别。

在LDAP的schema中,有四个重要的元素:
1. Objectclass
    objectclass定义了一个类别,这个类别会被不同的目录(在LDAP中就是一个Entry)用到,它说明了该目录应该有哪些属性,哪些属性是必须 的,哪些又是可选的。一个objectclass的定义包括名称(NAME),说明(DESC),类型(STRUCTURAL或AUXILARY ,表示是结构型的还是辅助型的),必须属性(MUST),可选属性(MAY)等信息。

2. Attribute
    attribute就是一个上面objectclass中可能包含的属性,对其的定义包括名称,数据类型,单值还是多值以及匹配规则等。后面用具体的例子来说明。

3. Syntax
    syntax是LDAP中的“语法”,其实就是LDAP中会用到的数据类型和数据约束,这个语法是遵从X.500中数据约束的定义的。其定义需要有一个ID(遵从X.500)以及说明(DESP)

4. Matching Rules
    是用来指定某属性的匹配规则,实际上就是定义一个特殊的Syntax的别名,让LDAP服务器可以识别,并对定义的属性进行匹配。

base基本架构和schemas的区别

简单来说。断罪小学一年一班有个学生叫李杀神。

下边是他的信息。

dn : cn=李杀神,ou=一年一班,dc=断罪小学,dc=com uid: 李杀神 cn: 李杀神 sn: 李杀神 mail: 李杀神@一年一班.com objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: { 
   crypt}$6$V8.K82Wq$b5mVC7khXo8y8Fcm5GBBhtF.vj7ot6lMRPHuFi5.ufa2XKcZoC0VldwT8VV2uAMba7vEYab7rIpB7C9JJyb1i1 shadowLastChange: 18242 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 1000 gidNumber: 1000 homeDirectory: /ldaphome/李杀神 

base定义了层级关系,或者说组织架构,它定义了有个断罪小学.com域,也就是 “ 树根 ” ,断罪小学有个一年一班,当然还有能有一年二班,一年三班等等。

李杀神这个学生就是数据,要存到组织架构中去。所以他被分配到了一年一班。我们要想找李杀神,就要通过dn 找。dn : cn=李杀神,ou=一年一班,dc=断罪小学,dc=com找到断罪小学,找到一年一班,最终找到李杀神。

小学 ,班级这种层级的关系,就是由base基本架构来定义的。

schema定义了什么呢?他定义了一个学生可以有什么属性,比如李杀神有名字,ID,邮箱,objectClass,等等,这些东西是由schemas定义的。

所以在使用OpenLDAP时要先导入schemas。

另外 MySQL和 Oracle中也有 schema。而且有所区别

mysql中 show databases;查看所有数据库。
初始的库有这几个 sys 、 information_schema 、 mysql 、 prformance_schema 。这些都是数据库。
在mysql中是databases 用来分开各个项目的数据,一个项目一个数据库。

但是在Oracle中只有1个database只有1个名字,但是Oracle中可以创建多个schema。

在mysql中建库操作:
create database abc;

在Oracle中建schema:
create user hr identified by hr ;

Oracle的schema —- MySQL的 database

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/143447.html

(0)
上一篇 2025-05-03 16:45
下一篇 2025-05-03 17:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信