DB_oracle学习笔记_概念分析
概念分析:
1. 数据库(Database):
数据库是一个文件集合,包括数据文件,临时文件,重做日志文件和控制文件。也可以说数据库是物理操作系统文件或磁盘集合。数据库可以由多个实例(schema)创建和打开,而实例可以在任意时间点装载和打开一个数据库。
2. 实例(Instance):
实例就是一组操作系统进程(unix系统下)或者一个多线程的进程(windows系统下)以及一些内存(主要有:SGA,PGA,UGA等,关于oracle内存结构不在这里进行阐述)。一个实例只能有一组相关的文件集合(一个实例对应一个数据库),大多数情况下,反过来也成立,一个数据库上只有一个实例对其进行操作。不过,oracle的真正应用集群(Real Application Clusters, RAC)是个例外,这是oracle提供的一个选项,允许在集群环境中的多台计算机上操作,这样就有多个实例装载和打开同一个数据库(位于一组共享物理磁盘上)
3. 连接(Connection):
连接指oracle客户端与服务器端物理的网络连接。在已建立的连接上,建立客户端与oracle的会话,以后客户端与oracle的交互都在一个会话环境中进行。(注Oracle允许失去物理连接的会话)。
4. 会话(Session):
会话是个建立在连接到某个instance之上的一个动态概念。(注Oracle允许失去物理连接的会话)。一次会话是用户的一个活跃进程,它代表用户与系统交互。用户与会话是一对多关系,一个用户可同时打开多个会话,一个会话构成一个用户到多个角色的映射,即会话激活了用户授权角色的某个子集,这个子集称为活跃角色集。活跃角色集决定本次会话的许可集。
5. 表空间(Tablespace):
表空间是oracle数据库中最大的逻辑结构,从逻辑上说,一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACL数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。从物理上说数据库的数据被存放在数据文件中,从逻辑上说数据时被存放在表空间中。每个数据库至少有一个SYSTEM表空间。SYSTEM表空间是Oracle创建数据库时候自动创建的,且SYSTEM表空间总是要保持在联机模式下,因为其包含了数据库运行所要求的基本信息,如:数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表等等。
表空间的作用如下:
² 决定数据库实体的空间分配
² 控制数据库部分数据的可用性
² 分布数据于不同设备之间以改善性能
² 备份和恢复数据
² 设置数据库用户的空间份额(??尚未理解)
6. 用户(User):
是数据库中的用户,包含一个缺省schema(对象集合),用户是schema的拥有者; user可通过oracle预定义或自定义的角色进行权限设置,确定该user在schema中的行使权力。用户是表空间下的一个概念,其对应一个或多个schema对象集。
7. 角色(role):
角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理。角色分为预定义角色和自定义角色两类。
预定义角色是指Oracle所提供的角色,每种角色都用于执行一些特定的管理任务(具体预定义角色这里不阐述);自定义角色顾名思义就是自己定义的角色,根据自己的需要来定义,一般是DBA来建立,如果用的别的用户来建立,则需要具有create role的系统权限,在建立角色时可以指定验证方式(不验证,数据库验证等)。
8. 模式(Schema):
一个用户在数据库中创建的所有对象称为schema,schema为数据库对象的集合。schema中包含如:tables,views,sequences,procedures,functions……的对象。创建用户时,默认产生一个同名的schema(即缺省schema,还可以有其他schema)。
下面通过例子来理解下schema的概念:
select * from scott.emp;(select col1,col2,... from schema.table)
语句中的“scott”在这里便是schema名(注意不是用户名),在这里要区分用户与schema的概念,schema为数据对象的集合,user为该数据对象集合的拥有者。一个user可能对应多个schema。正确的理解为schema.object,而不是user.object)
DB_oracle学习笔记_概念分析的更多相关文章
- jQuery源代码学习笔记_工具函数_noop/error/now/trim
jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...
- SSM框架学习笔记_第1章_SpringIOC概述
第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念 ...
- Python学习笔记_我的参考网址
Python学习笔记, 下面记录网上搜到的可参考的网址: 一.关于Tkinter 1.Python3中tkinter模块使用方法详解 https://blog.csdn.net/Fighting_Bo ...
- FFT和NTT学习笔记_基础
FFT和NTT学习笔记 算法导论 参考(贺) http://picks.logdown.com/posts/177631-fast-fourier-transform https://blog.csd ...
- haskell学习笔记_函数
一开始学习函数式编程语言就被告知函数式编程语言是一种“定义式”的语言,而不是一种命令式的语言,在学习haskell的函数语法时,此感觉更加强烈,haskell的函数定义倾向于一种类似C++里面的swi ...
- Unity3d_学习笔记_入门
转自:http://blog.csdn.net/zlfxy/article/details/8722437 本文内容来自“编程教父”的视频课程. 1.Unity3d一个游戏引擎,可以用来开发很多游戏. ...
- 学习笔记_过滤器详细(过滤器JavaWeb三大组件之一)
过滤器详细 1 过滤器的生命周期 我们已经学习过Servlet的生命周期,那么Filter的生命周期也就没有什么难度了! (l) init(FilterConfig):在服务器启动时会创建Filte ...
- 学习笔记_第一个strut程序_之中文乱码,过滤器解决方案及过程总结
1. 第一次碰到加过滤器的过程,就是在学习struct1的时候,中文乱码 几个需要注意的关键字 2.什么叫package 所谓package就是打包的意思,就是说以下程序都是处于这个包内,所以一开始 ...
- No2_5.类的高级特性_Java学习笔记_抽象类和成员内部类
一.抽象类1.所谓抽象类,只声明方法的存在而不去实现它的类:2.抽象类不能被实例化,即不能实现其对象:3.abstract class 类名{ 类体 }4.包含一个或多个抽象方法的类必须声明成抽象类: ...
随机推荐
- C++的一些小的知识点
1.初始化: 对于内置类型 ]; // 10个未初始化int ](); // 10个值初始化为0的int 对于自定义类型: 只要一调用new,那么编译器不仅仅给它分配内存,还调用它的默认构造函数初始化 ...
- (转载)python2+selenium自动化测试系列(一)
1.Selenium2+python自动化1-环境搭建 2.Selenium2+python自动化2-pip降级selenium3.0 3.Selenium2+python自动化3-解决pip使用异常 ...
- 简洁的java代码
最近在codewars上刷题,学习到了不少简洁优雅的代码. codewars和leetcode都是刷题网站,codewars的题目难度分类比较广,适合各种不同水平的coder刷题. 刷完题后,看一下其 ...
- ASP.NET页面中去除VIEWSTATE视图状态乱码
保存页的所有视图状态信息和控件状态信息. 基于SEO技术的开发,在没有接触MVC框架 Razor 引擎的时候,我们需要使用ASP.NET引擎,如果使用ASP.NET引擎的服务器端控件,那么在ASP.N ...
- iOS相册中图片按照时间排序
ios相册默认是按照时间从过去到现在排列,图片顺序有正序和逆序,group可以用以下方法来选择顺序 /** @param NSIndexSet 需要获取的相册中图片范围 @param NSEnumer ...
- with try catch 作用域的问题
with({}){}和try{}catch(e){}会临时改变代码执行的作用域, var foo="abc"; with({foo:"d"}){ functio ...
- package、import和import static
package 语句: 该语句必须作为源文件的第一条非注释性语句,一个源文件只能指定一个包,即只能包含一条package语句. import 和import static 关键字: 引入import关 ...
- 微信公众平台创建自定义菜单中文编码导致system error
创建包含了中文的自定义菜单时总是返回{"errcode":-1,"errmsg":"system error"},要将编码方式设置为UTF- ...
- 用TypeScript开发爬虫程序
全局安装typescript: npm install -g typescript 目前版本2.0.3,这个版本不再需要使用typings命令了.但是vscode捆绑的版本是1.8的,需要一些配置工作 ...
- windows获取硬盘使用率等信息
#coding=utf8 import psutil cpu = {'user' : 0, 'system' : 0, 'idle' : 0, 'percent' : 0} mem = {'total ...