数据库简介

  数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。SQL 是 Structured Query Language(结构化查询语言)的首字母缩写词。

定义

  数据库,简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

  数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。
  在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。
  例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。[来自百度百科]

Oracle数据库简介

 

  

  上图是数据库的使用原理,用户通过网络向数据库服务器发送请求,数据库处理请求,再向用户返回数据
 

Oracle 数据库结构

  

  oracle数据库结构分为物理结构和逻辑结构。

  物理结构:物理组件就是Oracle数据库所使用的操作系统物理文件。我们可以在安装目录下的 product\10.2.0\oradata\orcl 目录下进行查看,在生产环境中不同的文件放在不同的目录,根据用户访问的频繁情况来做决定。

  

  1)、主要物理文件可分为三类:
  i、数据文件:数据文件用于存储数据库数据,如表、索引数据等。
  ii、控制文件:控制文件是记录数据库物理结构的二进制文件。
  iii、在线日志文件:记录对数据库的所有修改信息,用于故障恢复。
  注意:丢失这些文件,数据库不可以继续运行,需要进行介质恢复。

  2)、非主要物理文件包括:
  参数文件、密码文件、告警和跟踪文件、归档日志文件、备份文件。
  参数文件分为pfile文件和spfile文件,位于ORACLE_HOME\DATABASE目录下,9i开始默认不使用sfile文件,如spfileorcl.ora文件。
  密码文件:sys用户密码,位于ORACLE_HOME\DATABASE目录下,如pwdorcl.ora文件。
  查看是否有归档日志:archive log list。
  ORACLE_HOME: D:\dev\oracle\product\10.2.0\db_1
  注意:丢失这些文件,数据库仍然可以继续运行,不需要进行介质恢复。

  逻辑结构:数据库的逻辑结构是从逻辑的角度分析数据库的组成。

  Oracle 的逻辑组件包括:数据库->表空间->段->区->数据库->模式。

  [该两段来自Ruthless文章]

Oracle 实例

  Oracle 实例是后台进程和内存结构的集合

  

Oracle 实例内存  

  当服务器进程启动时分配程序全局区,Oracle 的内存结构包含以下两个内存区

  

  

系统全局区

  数据库信息存储于SGA,由多个数据库进程共享

  

  共享池

  • 共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域
  • 共享池由库缓存和数据字典缓存组成。
  • 共享池的大小直接影响数据库的性能。

  数据缓冲区

  • 用于存储从磁盘数据文件中读入的数据,所有用户共享。
  • 服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。
  • 数据缓冲区的大小对数据库的读取速度有直接的影响。

  日志缓冲区

  • 日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。
  • 当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。
  • 相对来说,日志缓冲区对数据库的性能影响较小。

程序全局区

  • 程序全局区(PGA)包含单个服务器进程所需的数据和控制信息
  • PGA是在用户进程连接到数据库并创建一个会话时自动分配的,保存每个与Oracle 数据库连接的用户进程所需的信息
  • PGA为非共享区,只能单个进程使用,当一个用户会话结束,PGA释放
 

Oracle 实例进程

  

  后台进程是Oracle数据库为了保持最佳系统性能和协调多个用户请求而设置的。 Oracle 实例启动时即创建一系列后台进程

  

  PMON 进程监控进程

  • 清理出现故障的进程。
  • 释放所有当前挂起的锁定。
  • 释放故障进程使用的资源。

  SMON 系统监控进程

  • 在实例失败之后,重新打开数据库时自动恢复实例。
  • 整理数据文件的自由空间,将相邻区域结合起来。
  • 释放不再使用的临时段。

  DBWR 数据写入进程

  • 管理数据缓冲区,将最近使用过的块保留在内存中。
  • 将修改后的缓冲区数据写入数据文件中。

  LGWR 日志写入进程

  • 负责将日志缓冲区中的日志数据写入日志文件。
  • 系统有多个日志文件,该进程以循环的方式将数据写入文件。

Oracle 主要组件

  

会话

  • 会话是用户与 Oracle 服务器的单个连接
  • 当用户与服务器建立连接时创建会话
  • 当用户与服务器断开连接时关闭会话

  

Oracle 逻辑组件

  数据库的逻辑结构是从逻辑的角度分析数据库的组成。Oracle 的逻辑组件包括:

  

  

表空间  

  • 表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。
  • 每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
  • 表空间的大小等于构成该表空间的所有数据文件大小之和。
  创建表空间的语法是:

  CREATE TABLESPACE tablespacename

  DATAFILE ‘filename’ [SIZE integer [K|M]]

  [AUTOEXTEND [OFF|ON]];

  • 段是构成表空间的逻辑存储结构,段由一组区组成。
  • 按照段所存储数据的特征,将段分为四种类型,即数据段、索引段、回退段和临时段。

  • 区为段分配空间,它由连续的数据块组成。
  • 当段中的所有空间已完全使用时,系统自动为该段分配一个新区。
  • 区不能跨数据文件存在,只能存在于一个数据文件中。

数据块

  • 数据块是Oracle服务器所能分配、读取或写入的最小存储单元。
  • Oracle服务器以数据块为单位管理数据文件的存储空间。

模式

  • 模式是对用户所创建的数据库对象的总称。
  • 模式对象包括表、视图、索引、同义词、序列、过程和程序包等。

使用 Oracle 数据库的开发流程

Oracle学习笔记一 初识Oracle的更多相关文章

  1. Oracle学习笔记二 初识Oracle(二)

    Windows 中的 Oracle 服务 Oracle 9i的每个实例在Windows中都作为一项服务启动 服务是在 Windows 注册表中注册的可执行进程,由 Windows 操作系统管理 “服务 ...

  2. 【Oracle学习笔记-2】Oracle基础术语解析

    来自为知笔记(Wiz) 附件列表 Oracle概念解析.png 表空间.png 大小关系.png 段segment.png 块block.png 区entent.png 数据库基本概念.png

  3. Oracle学习笔记之五,Oracle 11g的PL/SQL入门

    1. PL/SQL概述 PL/SQL(Procedural Language/SQL)是Oracle的专用语言,是对标准SQL语言的扩展,它允许在其内部嵌套普通的SQL语句,还可以定义变量和常量,允许 ...

  4. 【oracle学习笔记02】Oracle Architecture —— Process Structure

    Oracle中有三类进程: 1 User Process 2 Server Process Server Process is a program that directly interacts wi ...

  5. Oracle学习笔记之三,Oracle 11g数据库的启动与关闭

    SQL*PLus命令 SQLPLUS username[/password][@connect_identifier][AS SYSOPER|SYSDAB] 1. 启动数据库实例 STARTUP [n ...

  6. 【oracle学习笔记01】oracle architecture —— Memory Strucrure

    附图3: granule_size for each components 附图4:

  7. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  8. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  9. Oracle学习笔记——点滴汇总

    Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster

随机推荐

  1. 浅谈 linux 例行性工作 crontab (linux定时任务)

    定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...

  2. SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

    SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问 ...

  3. 今天有群友不是很清楚htm直接存数据库的危害,我简单举个例子

     通过这个案例就知道为什么不要把原生的html放数据库了  常见的几种转码  常用的几种显示方法 只有原生html和最下面一种弹框了,变成了持久xss 如果是Ajax的方式,请用@Ajax.JavaS ...

  4. 揭开SQL注入的神秘面纱PPT分享

        SQL注入是一个老生常谈但又经常会出现的问题.该课程是我在公司内部培训的课程,现在分享出来,希望对大家有帮助.     点击这里下载.

  5. java注意的一些细节问题

    1. 大括弧作用域问题 public static void main(String[] args) { { int x; { int x;//编译错误:Duplicate local variabl ...

  6. 一个技术汪的开源梦 —— 基于 .Net Core 的组件 Nuget 包制作 & 发布

    一个技术汪的开源梦 —— 目录 微软的 ASP.Net Core 强化了 Nuget 的使用,所有的 .Net Core 组件均有 Nuget 管理,所以有必要探讨一下 .Net Core 组件制作 ...

  7. linux定时备份mysql并同步到其它服务器

    数据在任何一家公司里面都是最核心的资产,定期备份则是为了保证数据库出现问题的时候能够及时回滚到最近的备份点,将损失缩小到最小 这篇文章将会两部分来说明:1.mysql的定期备份:2.同步到其它服务器 ...

  8. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  9. J2EE 邮件发送那些事儿

    距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...

  10. 解决Jquery Kendo.xxx is not a function 的方法

    不知道大家遇到过没有,要同时间使用Telerick 和Kendo的时候 这个问题搞了我好多天,其实解决方法很简单,就是在LAYOUT里面先写TELERIK的注册脚本, 再写KENDO的. @(Html ...