concepts 阅读总结1——体系结构

1、数据库应用体系结构概述:c/s 结构 和 多层结构  --

多层体系结构具备以下组成部分:客户端程序,提交数据库操作;一个或多个应用服务器处理一个操作请求的不同部分。应用服务器首先负责访问数据,再对查询结果进行处理,这就减轻了数据库服务器的负担。应用服务器可以作为客户端与数据库之间的接口,还可提供额外的 安全控制;一个数据库服务器,或称为服务端,存储用户操作所需的数据。

  • 在这种体系结构下,应用服务器起到以下作用:

    • 验证用户身份,
    • 连接Oracle数据库服务器
    • 代替用户执行对数据库的请求

 物理数据库机构概述:主要是各种文件:

包括数据文件,重做日志文件,归档日志文件,控制文件,跟踪文件(trace file),服务器参数文件(server parameter file),备份文件(backup file)

逻辑数据库机构概述:主要是一些数据块,数据扩展,数据段等:

一个数据库在逻辑上被分为一个或多个表空间,用户可以在每个表空间中创建一个或多个数据文件来物理的存储此表空间的逻辑对象。oracle10g创建数据库的时候自动创建两个表空间:system,sysaux。表空间可以有联机状态和脱机状态,有时候你可以把联机的表空间设置成脱机状态,这样就不能访问了,方便管理哈。

在Oracle数据库中,最精细的数据存储粒度是数据块(data blocks)。一个数据块相当于磁盘上一段连续的物理存储空间。数据块分配的默认容量由初始化参数 DB_BLOCK_SIZE 决定。

更高一层的数据库存储结构式数据扩展(extent),包含数个连续的数据块,用于存储信息。

再向上一层结构叫(segment),包括一组数据扩展。

当一个段内已有的数据扩展的装满之后,Oracle动态地分配新空间。换句话说,段内已有的数据扩展装满之后,Oracle为这个段分配新的数据扩展。因为数据扩展是随需分配的,因此一个段内的数据扩展 物理上未必是连续的。

一个段,以及属于他的数据扩展是必须存在于同一个表空间中的,但是在一个表空间中,一个段的各个数据扩展可以存储在不同的数据文件中,也就是说,段可以跨文件存储。但是一个数据扩展只能属于一个数据文件。

用户分配一个数据拓展时,其中对应的数据块未必同时分配。书上是这么说的:如果一个数据拓展是专门为一个数据库对象分配的,那么这个数据拓展的数据块会立即加入可以列表(free list),也就是说立即被分配可用了。如果不是专门为某个数据库对象分配,那么数据块只有在高水位线(high water mark 就是段中已用和未用空间的分界点)移动的时候才被分配。

2、方案及常用的方案对象概述:

方案(scheme)是一组数据库对象的集合,它和用户名是重名的,并且属于该用户,比如书scott是一个用户名,也是一个方案,方案对象包括:表,索引,视图等逻辑数据结构。一个方案和一个表空间是没有任何关系的,一个表空间内可以同时有好几个方案的对象,一个方案的不同对象也可以存放在不同的表空间中。也就是说,表空间与用户也是没有关系的;

常见的方案对象有表啊,视图啊,索引啊之类的,再加上俩个不太熟悉的:

(cluster)是一组物理上存储在一起的表,她适用于数个表有相同的列而且经常一起使用的情况。因为相关的数据物理的存储在一起,有利于降低磁盘存取时间。

同索引一样,簇的使用也不会影响应用程序设计。一个表是否属于一个簇对用户和应用程序都是透明的。储存于簇表中的数据与非簇表中的数据一样可以通过相同的SQL来访问。

同义词是表、视图、物化视图、序列、过程、函数、包、类型、Java类、用户自定义对象、或其他同义词的别名。因为同义词只是个别名,除了在数据字典中的定义之外他不需额外的存储空间。

3、数据字典概述:

时间: 2025-01-26 16:33:37

concepts 阅读总结1——体系结构的相关文章

concepts阅读总结9——数据仓库

数据仓库简介: 数据仓库有四个典型的特点:1.数据仓库是面向主题的 数据仓库的建立是针对一个主题的,可以是一个人事的管理,销售的管理的数据仓库,他的功能就是帮助用户分析数据用的.2.数据仓库是统一的,就是不同形式的数据,不同类型的数据,在存入数据仓库的时候会被转化成统一的形式进行存储. 3.数据仓库是永久的,不应该被删除或者修改,是用来查询使用的.4.数据仓库是历史的,为了发现业务中存在的趋势,分析用户需要使用大量数据.这与联机事务处理(online transaction processing

concepts阅读总结6——视图和索引

1.视图: 视图不会要求分配空间,他只有一个查询语句即为他的定义,存储在数据字典中.当用户在sql语句中引用了视图时,oracle将进行入下工作: 1.将引用视图的语句与视图定义语句整合为一条sql语句. 2.在共享SQL区对这条语句进行解析. 3.执行解析好的语句. 下面看看oracle是如何整合查询一条语句的: 例如有以下视图: CREATE VIEW employees_view AS  SELECT employee_id, last_name, salary, location_id

concepts阅读总结5——堆表

1.方案对象概述: 表: 当oracle创建一个表的时候,数据库会在对应的表空间中为此表分配数据段,具体如何控制数据段的分配和使用的呢?有两个方面的控制:  * 通过设置段的存储参数,控制其空间分配方式(如开始分配多少个数据扩展,这个表总共可以用多少个数据扩展)  * 通过控制数据段内的PCTFREE, PCTUSED 两个参数,控制数据段中的数据扩展内的数据块的可用空间的大小.    Oracle 在存储簇表(clustered table)的数据时统一使用为其所属簇(cluster)创建的数

concepts阅读总结4——事务

1.事务: 语句级回滚和可恢复空间的分配问题: 语句级的回滚一般发生在一条sql语句执行出现错误的时候,这一条语句的回滚不会影响整个事务,在此语句之前的ddl语句隐式提交的工作都是有效的: 当处于可恢复空间分配模式的事务需要分配空间,但是由于空间不足或者达到最大数据扩展的限制时,oracle数据库不会直接报错,它会将此事务挂起,相关占用的空间保留,等到别的事务提交,释放空间,此事务需要的空间足够了,就会再次执行..(我觉得这样形成类似死锁的资源争用很容易,正好两个事务都挂起了,都等着对方释放资源

concepts阅读总结8——内存结构补充+oracle工具+个别进程

1.内存结构: 关于之前SGA,PGA的介绍我就不多说了,在我的博客里有专门的介绍: http://blog.csdn.net/changyanmanman/article/details/7256255 我们看看各个区域的介绍吧,这是官方的文档,准确性和权威性不言而喻. 2.数据缓存区: 一个新的点,数据缓存区在逻辑上被分成了好几个组,这种分组的内存管理方式减少了多处理器系统中的资源竞争.(共享SQL区也是这样的) 数据缓存区内的缓冲区(buffer)通过两个列表来管理:待写列表(write

concepts阅读总结10——分区

分区概述: 1.范围分区:范围分区(range partitioning)依据用户创建分区时设定的分区键值(partition key value)范围将数据映射到不同分区.范围分区是较常用的分区方式,通常针对日期数据使用.例如,用户可以将销售数据按月存储到相应的分区中. 在采用范围分区时,应注意以下规则: 定义分区时必须使用 VALUES LESS THAN 子句定义分区的开区间上限(noninclusive upper bound).分区键大于等于此修饰符(literal)的数据将被存储到下

concepts阅读总结3——文件

1.表空间,数据文件,控制文件:   为数据库分配更多的空间: a 为表空间添加新的数据文件:alter tablespace system add datafile 'data2.dbf 'size 10m; 这个命令很重要哦. b 创建新的表空间(相当于至少向数据库中添加了一个数据文件):create tablespace users datafile 'data3.ora';创建了一个名字为users的表空间,并插入了一个新的数据文件data3.ora.(其实此句会报错,因为没有指定文件的

concepts 阅读总结2——存储

1.可用空间管理: 首先说明这里的可用空间和块中的"可用空间区"不是一个概念,这里是指段里的没有被用的可用空间,段内已用与可用空间以位图(bitmap)的形式记录,但是可用块是以另外一种位图的形式管理的,注意区分. 段空间自动管理(Automatic segment-space management)具备以下优势: 易于使用 空间利用效率更高,尤其针对每行数据容量差异大的表(或其他对象) 能够更好地针对当前数据的情况实时调整 Better multi-instance behavior

concepts阅读总结11 ——数据库安全与数据完整性

数据库安全: 先来介绍几个定义吧: 1.用户安全域:每个用户都有一个对应的安全域(security domain),所谓安全域实际上是一组属性,这组属性决定了: 用户可执行的操作(权限(privilege)或角色(role)) 用户的表空间限额(tablespace quota)(即可用的磁盘空间) 用户的系统资源限制(例如,CPU 处理时间) 2.配置模板及资源限制: 每个用户都有一个对应的安全域(security domain),所谓安全域实际上是一组属性,这组属性决定了: 用户可执行的操作