返回顶部
首页 > 资讯 > 数据库 >oracle相关概念
  • 336
分享到

oracle相关概念

2024-04-02 19:04:59 336人浏览 独家记忆
摘要

sql 语句:结构化查询语言: Structured  Query Languageoracle数据库有三级结构:   关系模式,称为“基本表”   存储模


sql 语句:结构化查询语言: Structured  Query Language


oracle数据库有三级结构:

   关系模式,称为“基本表”

   存储模式(内模式)称为 “存储文件”

   子模式 称为视图(view)元组称为行(row),属性称为列(column)


oracle 体系

    “实例”(instance),数据库文件,

     用户进程(user process)和服务器进程(server process)

     其它文件,如:参数文件(parameter file),密码文件和归档日志文件(arcHived log file)

     物理结构文件是指数据库文件:由 数据文件,控制文件和重做日志文件组成。     


Instance:实例 

    包括内存区(SGA)和后台进程。启动实例就是启动这些进程和内存。

    一个实例对应一个数据库,一个数据库可以有多个实例。


三种连接方式:

    连接是指用户进程与数据库服务器之间的通讯途径,一个连接可以有多个会话。

    过程是: 用户进程 连接 服务器进程 再连接 数据库实例

    1、Host-Based方式:服务器和客户端在同一台主机上,用户直接连接数据库服务器。

    2、C/S方式:客户端通过网络远程管理数库服务器。

    3、三层访问方式:用户先访问应用服务器,由应用服务器连接数据库服务器。


SGA 内存结构

    共享池:

    共享SQL或者PL/SQL代码,由库高速缓存和数据字典高速缓存组成。

    重做日志高速缓冲区:

    当用户执行了INSERT,UPDATE,DELETE等操作后,数据发生了变化,

    这些变化了的数据写入数据库高速缓存之前会先写入重做日志缓冲区,

    同时变化之前的数据也放入重做日志高速缓存,

    这样在数据恢复时,oralce就知道那些需要前滚,那些需要后滚。


大池(large pool)和Java池-------可选的内存区

         大池 :在共享服务器环境下,oracle在共享池中分配额外的空间用于存储用户进程和服务器进程之间的会话信息,但是用户进程区域UGA的大部分将在大池中分配,这样就减轻了共享池的负担。在大规模的输入和输出及备份过程也需要大池作为缓存空间。

        流池(streaming  pool)------------流内存,数据共享,可以通过参数动态调整。

 

SGA   PGA    UGA

PGA:进程全局区,存储了服务器进程或单独的后台进程的数据信息和控制信息。它随着服务器进程的创建而被分配内存,随着进程的终止而释放内存。与SGA不同,它不是一个共享区域,而是服务器进程专有的区域,在专有的服务器(与共享服务器相对的概念)配置中包括如下组件:排序区,会话信息,游标状态,堆栈区。

UGA:用户全局区,它是共享服务器模式下的概念,指用户的会话状态,这部分内存会话总可以访问,UGA存储在每个共享服务器都可以访问SGA中,这样任何服务器都可以使用用户会话的数据和其它信息。而在专有服务器模式下,永华会话状态不需要共享,用户进程和服务器进程是一一对应的关系,所以,UGA总是在PGA中分配。

 

后台进程:

系统监控进程(SMON):数据库实例恢复。分三步:前滚----打开数据库-----回滚未提交的事物。

进程监控进程(PMON):在进程失败获知连接异常发生时该进程负责一些清理工作。

回滚没有提交的事务,释放进程占用的SGA资源,监视其它oracle进程,监视其它oracle的后台进程,向oracle TNS监听器注册刚启动的实例。

数据库写进程(DBWR):脏数据是指用户更改了的但没有提交的数据库中的数据,因为数据库的数据文件与数据库高速缓存中的数据不一致,称为脏数据。写进程的作用就是把脏数据在特定的条件下写入到数据文件中。

为什么不直接提交脏数据呢?为了减少I/O次数。当脏数据达到一定数量或条件时才一次性提交脏数据。

归档日志进程(ARCH):它是可选进程,不是在实例启动时自动启动,作用是把写满的重做日志文件的数据写入到一个归档日志中,这个归档日志用作介质故障时的数据库恢复。

校验点进程:校验点是一个事件。


SQL语句的介绍

按照功能可以分为五类:

数据查询语句:如select

数据操作语句(DML):

如 INSERT 向表中添加纪录,UPDATE更新表中的数据,通常和WHERE条件语句一起使用。

DELETE语句删除表中的数据。

数据定义语句(DDL):

 CREATE :创建数据库对象,如:表、索引、视图等。

 ALTER: 改变系统参数,如改变SGA的大小等

 DROP:删除一个对象,如删除一个表,索引或者序列号

 RENAME:重命名一个对象。

 TRUNCATE:截断一个表

事务控制语句

 COMMIT:用于提交由DML语句操作的事务。

 ROLLBACK: 用于回滚DML语句改变不了的数据。

数据控制语句(DCL):

 GRANT: 用于授予用户访问某对象的特权

 REVOKE:用于回收用户访问某对象的特权

 

空值(NULL)与空值处理函数:

空值是特殊的值,不能说它不存在,也不能说它为零。空值表示一类没有定义的值,具有不确定性。当然对于控制的运算也具有特殊性,因为不确定性的值是无法和一类具有确定性的值进行逻辑或算数运算的,oracle提供了一类空值处理函数,通过这些函数实现空值(NULL)的运算。

 

分组函数:

AVG和SUM函数

MAX和MIN函数,可以操作的字符类型有数字型,字符型和日期型

COUNT函数 返回经过计算得到的返回的行数,包括空行和重复的行

GROUP BY 句子

HAVING 子句:在分组函数中,不能使用WHERE子句限制分组函数,所以Oracle设计了HAVING 子句对分组函数的某些限制。


分组函数的嵌套使用

 

简单查询之SELECT语句的用法

  SELECT * | {[DISTINCT] column | expression [alias] , .......}  FROM  talbe;

   | 表示或的关系,[] 表示可选

   SELECT   选择一个列或多个列

   *选择表中所有的列

   DISTINCT去掉列种重复的值

   Column | expression选择列的名字或表达式

   Alias为指定的列设置不同的标题

   FROM table 指定要选择的列所在的表,即对那个表进行数据检索

 

SQL> SELECT * FROM  SCOTT.EMP;     查询SCOTT用户中EMP表中所用的数据

SQL> SELECT deptno,loc from scott.dept   查询这个表中deptno, loc 这两列

SQL>SELECT * FROM  dept  WHERE is NULL  查询这个表中为空值的行

 

别名机制:

在使用SELECT语句时,SQL*PLUS 使用选择的列名作为列标题,并且采用大写的方式,由于表中的列名是数据库开发人员或程序员设计的,是为了编程的需要。但是这样的列标题可能不具备描述性质而难以理解,Oracle提供了列别名更改列标题的显示方式。

 

创建Oracle数据库方式

1、使用DBCA(数据库配置助手)

2、使用CREATE DATABASE 指令

3、在安装数据库软件时创建数据库

 

临时表:

临时表是特殊的表,它只对当前用户的当前会话有效,创建临时表的目的就是使得某些操作的效率更高,临时表中的数据只对当前的会话的用户有效,是当前会话的私有数据,当前会话只操作自己的数据,没有数据的争用,这极大提高了历史表操作的效率。

对表中的数据可以进行:维护列,修改列,删除列

    删除表和截断表的区别:是否保留表结构。

 

oracle 数据字典

    数据字典是在数据库的创建过程中创建的,它是由oracle数据库服务器管理,存储在系统表空间中,它是一个集合,这个集合由只读表和视图组成,提供所有和数据库相关的信息。数据字典由两大类组成。

基表:基表无法读取,必须通过数据字典视图才转化为可读的表。

数据字典视图:是可读的数据字典,也是DBA经常使用的数据字典。它由以下两种对象组成:

  静态数据字典表:它基于基表而创建,容易阅读,通过使用一个名为catalog.sql脚本文件创建。如 user_tables,dba_objects等

  动态性能视图:它在数据库运行期间存在,它读取内存或控制文件的内容,提供了数据的动态性能信息。如:v$logfil, v$database , v$instance 等等。

 

三种主要的静态数据字典表:dba_XXX , all_XXX , user_xx

查询该用户所拥有的数据库对象信息:

user_tables , user_indexes (索引), user_views(视图)

动态性能视图以V$开头,它只存在于运行的数据库中,它是一组虚表。

    V$instance  , V$database  , V$controlfile  , V$log , V$logfil

 

 

视图的概念:

视图是一个虚表,不占用存储空间,不存储数据,数据字典中只有视图的定义,视图可以通过DML语言操作,但是有一定的限制,因为操作视图最终还是操作创建视图的底层表。

如:我们为每一个部门创建一个视图,这样不同的部门只要使用视图就可以完成查询,而不再使用多表连接和WHERE条件语句来限制查询的部门。

 

例子:create or replace view research_view

      (employee_name,job,hiredate,salary,dep_name)

      as

      select e.ename,e.job,e.hiredate,e.sal , d.dname

      from  dept  d,emp e

      where  e.deptno  = d.deptno

      and  d.deptno = 20

      with  read  only;

使用视图的WITH子句:with read only 子句

删除视图:drop  view  emp_view;

验证是否删除成功:select 语句

 

事务的概念:

 事务的由来:银行取款的例子

   如果用户A要给用户B从银行转账10000元,此时我们考虑ATM机的行为,把ATM机的行为作为一个事务。ATM机的实施步骤如下:

  从用户A的账号减少1万元

  从用户B的账户增加一万元。

  上述两个步骤必须都成功执行,如果两个步骤任何一个出现了问题,我们说ATM机没有正确的完成这次转账行为。谁也不希望在自己的账户上白白丢失一万元。此时ATM机的两个执行步骤是不可分割的行为,要么执行成功,要么不执行(回滚所有更改的数据),ATM机的两个操作在逻辑上就可以看作是一个完整的事务。

事务是一组逻辑工作单元,它有一条或多条SQL语句组成。一个事务可以在操作的数据库对象上执行一个或多个操作,事务可以作为程序的部分功能而执行。


事务开始于一条可执行的SQL语句,继续执行事务主体,然后结束以下的一种情况发生:

1、显示提交COMMIT:当事务遇到COMMIT指令时,将结束事务并永久保存所有更改的数据到数据库文件中。

2、显示回滚ROLLBACK:当事务遇到这个指令时,也结束事务的执行,但是此时它回滚所有更改的数据到其原始值,即取消所有更改

3、DDL语句:一旦用户在使用数据定义语言时,如CREATE、DROP等,则之前的所有DML语言操作都作为事务的一部分而提交,此时称为隐式提交。

4、正常结束程序,如果oracle 数据库应用程序正常结束,如使用 SQL*PLUS工具更改了数据,而正常退出该工具程序,则oralce自动提交事务。

5、非正常结束程序:当程序崩溃或意外中止时,所有数据更改都被回滚,类似于显示回滚操作的结果,这里是隐式回滚的,因为没有用户参与。


您可能感兴趣的文档:

--结束END--

本文标题: oracle相关概念

本文链接: https://lsjlt.com/news/42772.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • oracle相关概念
    SQL 语句:结构化查询语言: Structured  Query Languageoracle数据库有三级结构:   关系模式,称为“基本表”   存储模...
    99+
    2024-04-02
  • 数据库相关概念
    数据库事务:是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要...
    99+
    2024-04-02
  • python 类相关概念理解
    目录什么是类,对象,实例,类## 标题变量(类属性),实例变量(实例属性)类变量和类属性的分类类调用实例方法类的封装(enclosure),继承和多态迭代,迭代器(iterator)...
    99+
    2024-04-02
  • Hadoop相关概念有哪些
    这篇文章主要讲解了“Hadoop相关概念有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hadoop相关概念有哪些”吧!一、大数据的基本概念1.1、什么是大数据  大数据指的就是要处理的...
    99+
    2023-06-03
  • SNMP相关基本概念是什么
    本篇文章给大家分享的是有关SNMP相关基本概念是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、网络管理的概念狭义的网络管理仅仅指网络的通信量管理,而广义的网络管理指网络...
    99+
    2023-06-03
  • Windows安全相关的概念有哪些
    Windows安全相关的概念有以下几个: 访问控制:访问控制是指限制用户或进程对系统资源的访问。Windows系统通过用户帐户和...
    99+
    2023-10-23
    Windows
  • 关系型数据库和sql语句相关概念
    定义    数据仓库,保存数据的.是一个文件系统,也是使用文件的方式保存数据的,但是访问数据(增加删除 修改  查询)必须使用标准的sql语句来访问常见的关...
    99+
    2024-04-02
  • 数据库备份的相关概念有哪些
    本篇内容介绍了“数据库备份的相关概念有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、备份的类型备份...
    99+
    2024-04-02
  • iOS逆向:越狱及相关概念的介绍
    在上一篇内容中我们介绍了App脱壳的技术,今天我们来介绍一个和iOS逆向密切相关的知识:越狱。 iOS操作系统的封闭性一直是开发者们关注的焦点之一。为了突破Apple的限制,越狱技术应运而生。本文将深入探讨iOS越狱,包括可越狱的版本对比、...
    99+
    2023-08-30
    ios cocoa macos objective-c
  • MySQL知识【数据库相关概念】第一章
    💂 个人主页: 爱吃豆的土豆🤟 版权: 本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 🏆...
    99+
    2023-08-31
    数据库 mysql sql
  • C语言中关于树和二叉树的相关概念
    目录一、树树的相关概念树的存储结构二、二叉树二叉树的性质树是一种 非线性的 数据结构,由 n(n >= 0) 个 有限节点 组成一种 具有层次关系 的集合 一、树 树的结构可以...
    99+
    2023-02-14
    C语言树和二叉树的概念 C语言树和二叉树
  • oracle初学概念
    下面是我初学习oracle的一些自己理解的概念,有可能是错误的认知1.windows下可以用图形界面建数据库见百度: http://jingyan.baidu.com/article/90bc8fc80c0...
    99+
    2024-04-02
  • MySQL 参数相关概念及查询更改方法
    前言: 在前面一些文章中,经常能看到介绍某某参数的作用,可能有些小伙伴仍搞不清楚 MySQL 参数是啥。本篇文章我们来聊聊 MySQL 参数,学习下如何管理维护 MySQL 参数。 1.MySQL参数概念 我们所说...
    99+
    2022-05-23
    MySQL 参数 MySQL 查询更改
  • 数据库备份容灾相关概念有哪些
    本篇内容介绍了“数据库备份容灾相关概念有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!物理备份:是将实...
    99+
    2024-04-02
  • Entity Framework Core相关包的概念介绍与安装
    一、引言 我们以Entity Framework Core 最新版本3.1.1进行讲解,在正式的学习之前,我们第一步是要使用EF Core中的安装包,这时候需要明确的知道到底需要安装...
    99+
    2024-04-02
  • Shell 的相关概念和配置方法是什么
    这篇文章将为大家详细讲解有关Shell 的相关概念和配置方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用Linux的过程中少不了使用各种各样的Shell, 而根据启动环境的不同,...
    99+
    2023-06-05
  • .NET Framework Lambda表达式的相关概念是什么
    这篇文章将为大家详细讲解有关.NET Framework Lambda表达式的相关概念是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。.NET Framework应用程序为我们提供了多种...
    99+
    2023-06-17
  • parallel并行度的相关操作、概念、参数解释
    哪些场景可以使用并行度 table scan、fast full index scans、partition index range scans(仅限local索引) create table as、cre...
    99+
    2024-04-02
  • MySQL视图的相关概念及应用实例分析
    本篇内容主要讲解“MySQL视图的相关概念及应用实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL视图的相关概念及应用实例分析”吧!1.浅谈数据库对象2.什么是视图?视图一方面可以...
    99+
    2023-06-30
  • Oracle同义词概念
    Oracle同义词Oracle的同义词(synonyms)跟View功能类似,但更强大。在Oracle数据库中的大部分数据库对象,如表、视图、物化视图、序列、函数、存储过程、包、同义词等等都可以做为同义词。...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作