邹瑞20201203
总结
Oracle体系结构
数据库
Oracle 数据库是数据的物理存储。这就包括(数据文件 ORA 或者 DBF、控制文件、联机日志、参数 文件)。其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。 可以看作是 Oracle 就只有一个大数据库。
实例
一个 Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构 (Memory Structures)组成。一个数据库可以有 n 个实例。
用户
用户是在实例下建立的。不同实例可以建相同名字的用户。
表空间
表空间是 Oracle 对物理数据库上相关数据文件(ORA 或者 DBF 文件)的逻辑映射。一个数据库在逻 辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一 个表空间(称之为 system 表空间)。
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能 属于一个表空间。
段、区和块
段存在于表空间中。
段是区的集合。
区是数据块的集合。
数据块会映射到磁盘块。
数据文件(dbf、ora)
数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数 据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数 据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的 表空间才行。
注: 表的数据,是由用户放入某一个表空间的,而这个表空间会随机把这些表数据放到 一个或者多个数据文件中。
由于 oracle 的数据库不是普通的概念,oracle 是由用户和表空间对数据进行管理和存放的。但是表 不是由表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表! 这里区分就是用户了!
用户授权
Oracle 用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。系统权限比如: CREATE SESSION,CREATE TABLE 等,拥有系统权限的用户,允许拥有相应的系统操作。数据库对象 权限,比如对表中的数据进行增删改操作等,拥有数据库对象权限的用户可以对所拥有的对象进行对应 的操作。
还有一个概念就是数据库角色(role),数据库角色就是若干个系统权限的集合。Oracle 中已存在三 个重要的角色: connect 角色, resource 角色, dba 角色。
CONNECT 角色: 是授予最终用户的典型权利,最基本的。主要应用在临时用户,特别是那些不需 要建表的用户,通常只赋予他们 CONNECT role。CONNECT 是使用 Oracle 的简单权限, 拥有 CONNECT 角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会 话)。 CREATE SESSION 建立会话 RESOURCE 角色:是授予开发人员的。更可靠和正式的数据库用户可以授予RESOURCE role。 RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器 (trigger)、索引(index)等。 CREATE PROCEDURE 建立过程 CREATE SEQUENCE 建立序列 CREATE TABLE 建表 CREATE TRIGGER 建立触发器 CREATE TYPE 建立类型
DBA 角色:拥有全部特权,是系统最高权限,只有 DBA 才可以创建数据库结构,并且系统权限也 需要 DBA 授出,且 DBA 用户可以操作全体用户的任意基表,包括删除
可以把某个权限授予某个角色,可以把权限、角色授予某个用户。系统权限只能由 DBA 用户授权,对象权限由拥有该对象的用户授权,授权语法是:
GRANT 角色|权限 TO 用户
回收权限的语法是:
REVOKE 角色|权限 FROM 用户
--修改用户的密码语法是: ALTER USER 用户名 IDENTIFIED BY 新密码
--修改用户处于锁定(非锁定)状态 ALTER USER 用户名 ACCOUNT LOCK|UNLOCK
Oracle数据类型
Oracle 数据库的核心是表,表中的列使用到的常见数据类型如下:
CHAR(length) 存储固定长度的字符串。参数length指定了长度,如果存储的字符串长 度小于length,用空格填充。默认长度是1,最长不超过2000字节。
VARCHAR 字符串
VARCHAR2(length) 存储可变长度的字符串。length指定了该字符串的最大长度。默认长度 是1,最长不超过4000字符。
NUMBER(n) NUMBER(n)表示一个整数,长度是 n NUMBER(m,n) NUMBER(m,n):表示一个小数,总长度是 m(默认38),小数是 n,整数是 m-n
DATE 存储日期和时间,存储纪元、4位年、月、日、时、分、秒,存储时间从 公元前4712年1月1日到公元后4712年12月31日。 TIMESTAMP 不但存储日期的年月日,时分秒,以及秒后6位,同时包含时区。
CLOB 存储大的文本,比如存储非结构化的XML文档,可存 4G
BLOB 存储二进制对象,如图形、视频、声音等,可存 4G
对于日期类型,可以使用 sysdate 内置函数可以获取当前的系统日期和时间,返回 DATE类型,用 systimestamp 函数可以返回当前日期、时间和时区。
近期评论