‘壹’ Oracle数据库的物理结构有哪些
Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。
1. 物理结构
物理数据库结构是由构成数据库的操作系统文件所决定,Oracle数据库文件包括:
数据文件(Data File)
数据文件用来存储数据库中的全部数据,例如数据库表中的数据和索引数据.通常以为*.dbf格式,例如:userCIMS.dbf 。
日志文件(Redo Log File)
日志文件用于记录数据库所做的全部变更(如增加、删除、修改)、以便在系统发生故障时,用它对数据库进行恢复。名字通常为Log*.dbf格式,如:Log1CIMS.dbf,Log2CIMS.dbf 。
控制文件(Control File)
每个Oracle数据库都有相应的控制文件,它们是较小的二进制文件,用于记录数据库的物理结构,如:数据库名、数据库的数据文件和日志文件的名字和位置等信息。用于打开、存取数据库。名字通常为Ctrl*ctl 格式,如Ctrl1CIMS.ctl。
配置文件
配置文件记录Oracle数据库运行时的一些重要参数,如:数据块的大小,内存结构的配置等。名字通常为init*.ora 格式,如:initCIMS.ora 。
2 逻辑结构
Oracle数据库的逻辑结构描述了数据库从逻辑上如何来存储数据库中的数据。逻辑结构包括表空间、段、区、数据块和模式对象。数据库的逻辑结构将支配一个数据库如何使用系统的物理空间.模式对象及其之间的联系则描述了关系数据库之间的设计.
一个数据库从逻辑上说是由一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库,每一个表空间是由段(segment)组成,一个段是由一组区(extent)所组成,一个区是由一组连续的数据库块(database block)组成,而一个数据库块对应硬盘上的一个或多个物理块。一个表空间存放一个或多个数据库的物理文件(即数据文件).一个数据库中的数据被逻辑地存储在表空间上。
表空间(tablespace)
Oracle数据库被划分为一个或多个称为表空间的逻辑结构,它包括两类表空间,System表空间和非System表空间,其中,System表空间是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。除此之外,还能包含用户数据。。
一个表空间包含许多段,每个段有一些可以不连续的区组成,每个区由一组连续的数据块组成,数据块是数据库进行操作的最小单位。
每个表空间对应一个或多个数据文件,每个数据文件只能属于一个表空间。
数据库块(database block)
数据库块也称逻辑块或ORACLE块,它对应磁盘上一个或多个物理块,它的大小由初始化参数db-block-size(在文件init.ora中)决定,典型的大小是2k。Pckfree 和pctused 两个参数用来优化数据块空间的使用。
区(extent)
区是由一组连续的数据块所组成的数据库存储空间分配的逻辑单位。
段(segment)
段是一个或多个不连续的区的集合,它包括一个表空间内特定逻辑结构的所有数据,段不能跨表空间存放。Oracle数据库包括数据段、索引段、临时段、回滚段等。
模式对象(schema object)
Oracle数据库的模式对象包括表、视图、序列、同意词、索引、触发器、存储.过程等,关于它们将重点在后面章节介绍。
3.Oracle Server系统进程与内存结构
当在计算机服务器上启动Oracle数据库后,称服务器上启动了一个Oracle实例(Instance)。ORACLE 实例(Instance)是存取和控制数据库的软件机制,它包含系统全局区(SGA)和ORACLE进程两部分。SGA是系统为实例分配的一组共享内存缓冲区,用于存放数据库实例和控制信息,以实现对数据库中数据的治理和操作。
‘贰’ 数据库中常用的字段有哪些
数据库中常用的字段类型有:字符型、数值型、逻辑型、备注型。这四种是最常用的。对初学者来说掌握这四种已可以了!
‘叁’ 数据库中的字段有哪些
数据库中的字段是在建立数据表时,有创建数据表的人定义的,字段类型有很多种,如:int,char,varchar,date,等等,但是不用的数据库中字段类型的名称不太一样,同样的类型,表现出来的也稍微不一样。
‘肆’ access数据库字段的类型有哪几种
有10种类型。
分别为:
1、文本型:用于输入文本或与数字组合的文本的数据,最多255个字符(字节),默认值为50。在存取中,每一个汉字和所有特殊字符(包括中文标点符号)都算作一个字符。
2、货币型:用于存储货币值,占8字节。计算中禁止舍入。
3、数字型:除货币外可用于数值计算的数据。数字字段按字段大小分为7种情况:字节、整数、长整数、单精度、双精度、同步复制ID和十进制,分别占1、2、4、4、8、16和12字节。
4、日期/时间型:存储日期和/或时间值的8字节。
5、自动编号:添加记录时自动插入的序列号(每次增加1或随机编号)。默认情况下,它是长整数,或者可以更改为同步复制ID。不能更新自动编号。
6、是/否型:表示逻辑值(是/否,真/假),占1字节。
7、备注型:用于将长文本或长文本与数字(大于255个字符)组合,最多65535个字符。
8、OLE对象型:使用OLE协议(如Word文档、Excel电子表格、图片、声音等)在其他程序中创建的OLE对象可以存储到1GB(受磁盘空间限制)。
9、超链接型:用于存储超链接地址,最多64000个字符。
10、锁定向导型:允许用户通过组合框或列表框从其他表或值列表中选择值。实际字段类型和长度取决于数据源。
‘伍’ 常用的字段类型有哪些各自有何特征
CABI数据库分主题、分类和文献来源系列等52个检索字段,字段之间存在着互补及相包容的关系。下面是学习啦小编整理的什么是字段,欢迎阅读。
什么是字段
我们把表中的每一行叫做一个“记录”,每一个记录包含这行中的所有信息,就像在通讯录数据库中某个人全部的信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。在数据库中存放在表行列交叉处的数据叫做“值”,它是数据库中最基本的存储单元,它的位置要由这个表中的记录和字段来定义。
字段
(field)
一个成员,它表示与对象或类关联的变量。
在数据库中,大多数时,表的“列”称为“字段” ,每个字段包含某一专题的信息。就像“通讯录”数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。
但是有时候,字段也不是表中的列,比如用as将列的内容经计算,“存入”另一个字段。如:一个表"T”中只有列"ID”,内容为"int"值"1"。运用"select id, id * 5 as abc from T",得出的结果为
id abc
备注
此SQL语句在MYSQL 5.0中测试无误。
每个字段由若干按照某种界限划分的相同数据类型的数据项组成.
字段在C++中的定义:
一个成员,它表示与对象或类关联的变量。
字段类型
不同的字段类型用来存放不同类型的数据。创建和使用表时,更你应该理解五种常用的字段类型:字符型,文本型,数值型,逻辑性和日期型。
字符型数据
字符型数据非常有用。当你需要存储短的字符串信息时,你总是要用到字符型数据。例如,你可以把从HTML form的文本框中搜集到的信息放在字符型字段中。
要建立一个字段用来存放可变长度的字符串信息,你可以使用表达式 VARCHAR。考虑你前面创建的表guestbook:
CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate DATETIME)
在这个例子中,字段visitor的数据类型为VARCHAR(可变长字符型)。注意跟在数据类型后面的括号中的数字。这个数字指定了这个字段所允许存放的字符串的最大长度。在这个例子中,字段visitor能存放的字符串最长为四十个字符。如果名字太长,字符串会被截断,只保留四十个字符。
VARCHAR类型可以存储的字符串最长为255个字符。要存储更长的字符串数据,可以使用文本型数据。
另一种字符型数据用来存储固定长度的字符数据。下面是一个使用这种数据类型的例子:
CREATE TABLE guestbook (visitor CHAR(40),comments
TEXT,entrydate DATETIME)
在这个例子中,字段visitor被用来存储四十个字符的固定长度字符串。表达式CHAR指定了这个字段应该是固定长度的字符串。
VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。
现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。
当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。
VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要。
文本型数据
字符型数据限制了字符串的长度不能超过255个字符。而使用文本型数据,你可以存放超过二十亿个字符的字符串。当你需要存储大串的字符时,应该使用文本型数据。
这里有一个使用文本型数据的例子:
CREATE TABLE guestbook (visitor VARCHAR(40),comments
TEXT,entrydate DATETIME)
在这个例子中,字段comments被用来存放访问者对你站点的意见。注意文本型数据没有长度,而上一节中所讲的字符型数据是有长度的。一个文本型字段中的数据通常要么为空,要么很大。
当你从HTML form的多行文本编辑框(TEXTAREA)中收集数据时,你应该把收集的信息存储于文本型字段中。但是,无论何时,只要你能避免使用文本型字段,你就应该不适用它。文本型字段既大且慢,滥用文本型字段会使服务器速度变慢。文本型字段还会吃掉大量的磁盘空间。
‘陆’ Oracle数据库物理组建件的类型有什么
Oracle两部分:实例和数据库
实例由以下组成:SGA,Sharedpool,Databasebuffercache,Redologbuffercache。数据库由物理文件组成,其中必须有的文件是:数据文件,控制文件,重做日志,另外还有:参数文件,口令文件,归档日志文件(这三个不是必须的)。
用户建立连接后,启动一个服务器进程,用来将来代替用户进程完成SQLCOMMAND,再通过Oracle实例实现对数据库的相关文件进行改变(数据进行读取或修改)。
用户进程不可以直接操作数据库,而必须通过建立连接后,再通过服务器进程来完成。
OracleSERVER由两个部分组成,
1、INSTANCE:又由内存结构和后台进程。
2、DATABASE:又由数据文件,日志文件和控制文件组成<这三个文件是必需的>。
CONTROLFILE是用来连接实例和DATABASE:
SQL>SHUTDOWNIMMEDIATE
SQL>STARTUPNOMOUNT
SQL>ALTERDATABASEMOUNT
以上三个过程就是通过CONTROLFILE来连接实例和数据库。
SQL>ALTERDATABASEOPEN:在OPEN的过程对DATABASE的数据文件和重做日志文件进行一次性的验证,验证它们的状态。
OracleINSTANCE:存取数据库的一个手段。
一个DATABASE与INSTANCE之间是1:N的关系,一个INSTANCE只能操作一个DATABASE,由内存结构(共享池,
BUFFERCACHE,REDOLOGBUFFERCACHE)及相应的进程结构组成(PMON<程序监控进程>,SMON<系统监控进程>,CKPT<检查点进程>)。
SQL>SHOWSGA---显示DATABASE内存结构信息
SQL>SETWRAPOFF
SQL>SETLINESIZE200
以上这两个是设置行宽。
SQL>SELECT*FROMV$BGPROCESS;
将看到在这个系统中所有可能使用到的进程,其中PADDR并不每个进程都分配到有效的地址,即并不是每个进程都是必须的。
SQL>SELECT*FROMV$BGPROCESSWHEREPADDR<>''00''
将显示所有必需的进程。
连接到Oracle实例包括建立一个用户连接及创建会话。
SQL>SELECT*FROMV$CONTROLFILES;--显示现系统下由几个控制文件组成。
SQL>SELECT*FROMV$DATAFILE;--显示由几个数据文件组成。
SQL>SELECT*FROMV$LOGFILE;--显示由几个日志文件组成。
OracleMEMORYSTRUCTURE(内存结构)
由两部分组成:
1、SGA是动态的,其最大值由SGA_MAX_SIZE指定,SGA的内存由SGACOMPONENTS来动态调整。
2、PGA是不共享的,即其包含的信息是不一样的,有两个可享的内存可以由SGA配置:
<1>LARGEPOOL
<2>JAVAPOOL
SQL>SHOWPARAMETERSHARED
SQL>SHOWPARAMETERDB_CACHE
SQL>SHOWPARAMETERLOG
以上三个命令是用于查看相关内存信息。
SQL>ALTERSYSTEMSETDB_CACHE_SIZE=20M;
所有内存大小总和不能大于SGA_MAX_SIZE的值,当提示信息出现?号或乱码时,是由于系统的语言问题。
可以通过ALTERSESSIONSETNLS_LANGUAGE=''AMERICAN''或ALTERSESSIONSETNLS_LANGUAGE="SIMPLE
CHINESE"。
SHAREDPOOL(共享池)
<1>LIBRARYCACHE库缓存;
<2>DATADICTIONARYCACHE数据字典缓存,有的地方又称行CACHE,由SHARED_POOL_SIZE指定大小。
SQL>ALTERSYSTEMSETSHARED_POOL_SIZE=64M;
LIBRARYCACHE主要为提高代码的共享,存储的是最近使用的SQL和PL/SQL代码。
<1>用最近最少使用(LRU)算法;
<2>包括两个结构1:共享SQL代码2:共享PL/SQL代码;
<3>不可直接定义,而由SHAREDPOOLSIZE决定。
DATADICTONARYCACHE。
如:SQL>SELECT*FROMAUTHORS;
执行此命令的过程是:首先确认是否存在AUTHORS,,然后确认字段存不存在,再检查语法,最后验证权限,而这些信息就属于DATADICTIONARYCACHE的内容。其包含的信息有:DATABASEFILES,表,索引,字段,用户,权限和其他数据库对象。
<1>主要用来改变系统的感应时间和性能。
<2>通过改变SHAREDPOOL大小来设置,DATADICTIONARYCACHE不能单独设置大小
‘柒’ 数据库中数据类型有哪些
Character 数据类型
Character 数据类型用来存储字母数字型数据。当你在oracle 中定义一个character 数据时,通常需要制定字段的长度,它是该字段的最大长度。ORACLE提供以下几种character 数据类型:
CHAR() CHAR数据类型是一种有固定长度和最大长度的字符串。存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度。长度定义在1——2000字节之间。
当你创建一个CHAR型字段,数据库将保证在这个字段中的所有数据是定义长度,如果某个数据比定义长度短,那么将用空格在数据的右边补到定义长度。如果长度大于定义长度将会触发错误信息。
VARCHAR() varchar型数据是varchar2型数据的快照。
VARCHAR2() varchar2数据类型是一种可变长度的、有最大长度的字母数字型数据。Varchar2类型的字段长度可以达到4000字节,Varchar2类型的变量长度可以达到32676字节。
一个空的varchar2(2000)字段和一个空的varchar2(2)字段所占用的空间是一样的。
NCHAR() 和 NVARCHAR2() NCHAR() 和 NVARCHAR2()数据类型分别与CHAR() 和 VARCHAR2()类型是相同的,只不过它们用来存储NLS(National Language Support)数据。
LONG LONG 数据类型是一个遗留下来的而且在将来不会被支持的数据类型。它将被LOB(Large Object)数据类型所代替。
比较规则 Varchar2和char数据类型根据尾部的空格有不同的比较规则。对Char型数据,尾部的空格将被忽略掉,对于Varchar2型数据尾部带空格的数据排序比没有空格的要大些。比如:
Char 型数据: ‘YO’=‘YO ’
Varchar2型数据: ‘YO’<’YO ’
Numberic 数据类型
Numberic 数据类型用来存储负的和正的整数、分数和浮点型数据,范围在-1*10-103 和9.999…99*10125之间,有38位的精确度。标识一个数据超出这个范围时就会出错。
Number(
,) Number数据类型存储一个有p位精确度的s位等级的数据。
DATE 数据类型
DATE 数据类型用来存储日期和时间格式的数据。这种格式可以转换为其他格式的数据去浏览,而且它有专门的函数和属性用来控制和计算。以下的几种信息都包含在DATE数据类型中:
Century
Year
Month
Day
Hour
Minute
Second
LOB 数据类型
LOB(Large Object) 数据类型存储非结构化数据,比如二进制文件,图形文件,或其他外部文件。LOB 可以存储到4G字节大小。数据可以存储到数据库中也可以存储到外部数据文件中。LOB数据的控制通过DBMS_LOB 包实现。BLOB, NCLOB, 和CLOB 数据可以存储到不同的表空间中,BFILE存储在服务器上的外部文件中。LOB数据类型有以下几种:
BLOB: 二进制数据
CLOB: 字符型数据
BFILE: 二进制文件
其他数据类型
ROWID ROWID 数据类型是ORACLE数据表中的一个伪列,它是数据表中每行数据内在的唯一的标识。
‘捌’ 数据库中所有的数据类型
SQL 用于各种数据库的数据类型:
一、MySQL 数据类型:
在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。
1、Text 类型。
‘玖’ 数据库物理结构中,存储着哪几种形式的数据结构
Log File物理结构
log block结构分为日志头段、日志记录、日志尾部
Block Header,占用12字节
Data部分
Block tailer,占用4字节
Block Header
这个部分是每个Block的头部,主要记录的块的信息
Block Number,表示这是第几个block,占用4字节,是通过LSN计算得来的,占用4字节
Block data len,表示该block中有多少字节已经被使用了,占用2字节
First Rec offet,表示该block中作为第一个新的mtr开始的偏移量,占用2字节
Checkpoint number,表示该log block最后被写入时的检查点的值,占用4字节
‘拾’ 数据库表中字段类型有哪些
数据库表中字段类型有二进制数据类型、字符数据类型、数字数据类型 等其中类型。具体类型如下所示:
1、二进制数据类型
Binary、Varbinary、Image
2、字符数据类型
Char,Varchar和 Text
3、Unicode数据类型
包括Nchar,Nvarchar和Ntext
4、日期和时间数据类型
包括Datetime, Smalldatetime, Date, TimeStamp
5、数字数据类型
数字数据类型包括正数和负数、小数和整数
6、货币数据类型
表示正的或者负的货币数量。
7、特殊数据类型
特殊的数据类型有3种,即Timestamp、Bit 和 Uniqueidentifier。