当前位置:首页 » 数据仓库 » 内存数据库教程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

内存数据库教程

发布时间: 2022-05-23 11:00:37

‘壹’ 数据库课程

数据库原理及应用讲述数据库原理,主要讲的是关系型数据库,如何进行数据库的设计,表的设计,以达到冗余最小,速度最快,数据库管理系统如何做到不出现脏读,不可重复读,幻觉读;数据锁的实现;数据读写的原子性,如何在其它语言中嵌入sql代码,数据库管理系统的不同发展历程,将来的发展方向;同时讲述SQL标准中的大部分sql语句,sql语句执行过程中数据库管理系统做了那些操作;同程序设计一样,数据库设计也可以把数据库设计到很好,还有最好......

数据结构讲述程序设计中常用到的数据结构线性表,链表,二叉树,图,及其相关的操作,而其它更复杂的数据结构可由数据结构课程中讲到的基本数据结构加以构造;国内的数据结构教材一般还包括一部分的算法,不单独开算法课程。好的数据结构表现的程序的空间复杂度上,具体在计算机上也就是程序运行时内存的使用量。

‘贰’ 求C#语言开发数据库教程

C#语言提供了丰富的数据库操作类库,极大地方便了对数据库的操作。在C#中,常用的有三种 访问数据库的模式分别为:SqlClient模式、OleDb模式和Odbc模式。其中SqlClient模式是微软老大哥专门为其产品Sql Server数据库而设计的,所以如果欲使用Sql Server数据库开发应用程序的话,建议使用这种模式,其性能和效率是比其他模式的要高。OleDb模式和Odbc模式可以运用在任何支持该模式的数据 库产品中,如Access数据库、DB2、Sybase和Sql Server 数据库等。下面简单介绍C#操作数据库的大致过程:

1、引入相关的命名空间

在C#中要操作数据库,一般情况需要引入两个命名空间,在三种连接模式中都要引入下面的命名空间:

System.Data;

而另外一个命名空间,使用不同的连接模式而不同,如果使用SqlClient模式的话,则需要引入如下命名空间:

System.Data.SqlClient;

如果使用OleDb模式的话,需要使用下面的命名空间:

System.Data.OleDb;

如果使用Odbc模式的话,需要使用下面的命名空间:

System.Data.Odbc;

2、定义连接字符串,并建立连接对象

在C#中,如果想连接数据库的话,需要使用Connection连接对象。同样,不同的连接模式下,所使用的连接对象也不同:

(1)如果使用SqlClient模式的话,其基本连接字符串和连接对象如下:

连接字符串:string connString = "server=.;database=testDB;uid=sa;pwd=;";

其中,server是指数据库所在的机器(服务器),如果使用当前机器(本地机器)的话,可 以使用“.”、“(local)”、“127.0.0.1”或本地机器的名字。如果使用其它机器上的数据库的话,可以使用那台机器的机器名字(确保域和工 作组的正确)或IP地址。database指的数据库的名字。uid和pwd分别代表连接数据库的用户名和密码。

定义连接字符串后,就可以建立SqlClient模式下的连接对象了,在SqlClient模式下,应使用SqlConnection。

SqlConnection sConn = new SqlConnection(connString);

(2)如果使用OleDb模式的话,其基本连接字符串和连接对象如下:

连接字符串:string connString = "Provider=SQLOLEDB.1;DataSource=(local);uid=sa;pwd=;Initial Catalog=testDB";

其中,Provider给出数据提供程序;DataSource给出数据库所在的服务器名或 IP地址(具体同SqlClient模式下的server关键字);uid和pwd分别指用户名和密码;Initial Catalog给出的是所连接的数据库的名字。如果使用Access数据库的话,其连接字符串的形式应该如下:

string connString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source = F:\\student.mdb";

定义好连接字符串后,就可以定义连接对象了,在该模式下,应使用OleDbConnection。

OleDbConnection odConn = new OleDbConnection(connString);

(3)如果使用Odbc模式的话,其基本连接字符串和连接对象如下:

连接字符串:string connString = "Driver={Sql Server};Server=.;Database = testDB;uid=sa;pwd=;";

如果使用Access数据库,其连接字符串如下:

string connString = "{Microsoft Access Driver(*.mdb)};Dbq = \"F:\\student.mdb\";";

定义好连接字符串后,使用OdbcConnection建立连接对象:

OdbcConnection oConn = new OdbcConnection(connString);

3、打开数据库连接

打开数据库使用Open方法,但在试图打开数据连接时会发生错误,因此常采用如下的异常控制方法(这里假设打开SqlClient模式下连接,实际上只不过连接对象的名字不同而已):

try
{
sConn.Open();
}
catch(Exception ex)
{
MessageBox.Show("发生错误:"+ex.Message);
//Console.WriteLine("发生错误:"+ex.Message); //在控制台下使用这种方式
}

4、Command命令对象的应用

Command用于向数据库传输的命令的对象,其构造函数常用两个参数,一个参数是所使用的 命令文本(CommandText),另一个为所使用的连接对象Connection。根据不同的数据库连接模式,其形式也不同,SqlCommand对 应着SqlClient模式;OleDbCommand对应着OleDb模式,OdbcCommand对应着Odbc模式。

假设我们想使用SqlClient模式查询Sql Server中testDB数据库中student表中的xh(学号)、xm(姓名)和xb(性别)三列的值,则可以建立如下的命令对象(sConn参见建立的连接sConn:

SqlCommand sCmd = new SqlCommand("SELECT xh,xm,xb FROM student",sConn);

亦可使用如下的形式:

SqlCommand sCmd = new SqlCommand();
sCmd.CommandText = "SELECT xh,xm,xb FROM student";
sCmd.Connection = sConn;

命令对象常用的有三个方法:ExecuteReader(), ExecuteNonQuery()和ExecuteScalar()。ExecuteReader方法用于返回查询结果的全部数据。 ExecuteNonQuery方法用于返回所影响的行数,一般用于Insert、Update和Delete操作。ExecuteScalar方法返回 结果中的第一行第一列的值。

5、数据读取器DataReader

DataReader用于从返回来的数据区中读取数据。其根据使用的数据连接模式不同也有不同的形式:SqlDataReader对应着SqlClient模式,OleDbDataReader对应着OleDb模式,OdbcDataReader对应着Odbc模式。

数据读取器应与命令对象配合使用,下面接着4中的例子来写:

SqlDataReader sdr = null;
sdr = sCmd.ExecuteReader(); //执行命令对象,并用sdr指向结果集的第一条记录。
while(sdr.Read()) //每读取一条记录后,指向其下一条记录
{
Console.WriteLine("学号:{0},姓名:{1},性别:{2}",sdr["xh"],sdr["xm"],sdr["xb"]); //或使用下面的格式
// Console.WriteLine("学号:{0},姓名:{1},性别:{2}",sdr[0],sdr[1],sdr[2]);
}
sdr.Close(); //关闭读取器

6、数据集DataSet和数据适配器DataAdapter

一般数据集和数据适配器是密不可分的,下面先介绍数据适配器。

数据适配器可以容纳一组数据命令和一个数据库连接对象,这与Command对象不同, Command只有一个数据命令和一个数据库连接。数据适配器根据不同的连接模式也有不同的形式:SqlDataAdapter、 OleDbDataAdapter和OdbcDataAdapter。下面给出SqlClient模式下数据适配器的定义方式:

SqlDataAdapter sda = new SqlDataAdapter("SELECT xh,xm,xb FROM student",sConn);

第一个参数是用到的SQL语句,第二个参数是数据连接。也可以使用一个命令对象传递上面的信息。即:

SqlDataAdapter sda = new SqlDataAdapter(sCmd);

下面再介绍一下DataSet,DataSet是在内存中缓存的数据集,包括数据本身,还包括定义在数据上的约束和关系等信息。数据集中可以包含0个这样的数据对象。不管使用什么样的数据库连接模式,其只有唯一的形式。其定义方法如下:

DataSet ds = new DataSet();

定义完数据集后,就可以调用数据适配器的Fill方法来填充数据集:

sda.Fill(ds);

也可以在填充的同时,指定表名:

sda.Fill(ds,"Student");

可以使用下面的方法读取数据集中的数据信息:

int rowNum = ds.Tables["Student"].Rows.Count; //获得数据集表student表中的行数

int columnNum = ds.Tables["Student"].Columns.Count; //获得数据集表student中的列数

for(int i = 0; i < rowNum; i ++)
{
for(int j = 0; j < columnNum; j ++)
{
Console.Write(ds.Tables["student"].Columns[j].ColumnName+":"+ds.Tables["student"].Rows[i][j].ToString();
}
Console.WriteLine();

}

下面给出一个数据库操作的例子。假设在Sql Server中有一个数据库test,其存放着一个数据表名为student,其结构为student(xh,xm,xb,mz),下面使用SqlClient模式连接数据库:

/**************************************

*

* 本程序演示数据库的操作

* 使用Sql Server2000数据库操作

*

* ************************************/

using System;

//引入命名空间

using System.Data;

using System.Data.SqlClient;

class DbOper

{

static void Main()

{

//定义连接字符串

string connString;

connString="server=.;uid=sa;pwd=;database=test;";

//定义连接对象sConn

SqlConnection sConn = new SqlConnection(connString);

try

{

//打开连接

sConn.Open();

}

catch(Exception ex)

{

//给出错误信息

Console.WriteLine("连接错误:"+ex.Message);

}

//定义SQL查询语句

string sql;

sql = "select * from student";

//定义命令对象sCmd

SqlCommand sCmd = new SqlCommand(sql,sConn);

//定义数据读取器sdr

SqlDataReader sdr=null;

//执行命令对象sCmd并赋值给sdr

sdr = sCmd.ExecuteReader();

//循环输出sdr中的内容

Console.WriteLine(" 学 号 姓名 性别民族");

while(sdr.Read())

{

Console.WriteLine(sdr[0]+" "+sdr["xm"]+sdr["xb"]+" "+sdr["mz"]);

}

//关闭数据读取器

sdr.Close();

//关闭数据库连接

sConn.Close();

}

}

‘叁’ asp.net 使用 h2 内存数据库

提供一个下载的地方
http://download.csdn.net/detail/yixiaoping/5956595
H2就不做很多介绍了。资源包内容列表是我进行H2预研是收集的H2资料,应该是最全面的的了:

1、h2.pdf (H2 API)

2、h2-1.3.173.jar (截止2013-8-15最新的H2.jar)

3、h2-2013-07-28.zip (截止2013-8-15最新的H2服务,包括API\JAR\服务)

4、H2Database_SQL语法.doc

5、H2Database高级特性.doc

6、H2Database聚合函数.doc

7、H2Database连接配置.doc

8、H2Database数据类型.doc

9、H2Database中文教程.doc

10、H2内存数据库h2部署操作手册.docx

11、H2内存数据库安装与维护.doc

12、H2数据库基础知识.docx

13、H2数据库使用.doc

‘肆’ oracle11g怎样创建数据库

  • 按住键盘上Windows键,打开开始菜单,找到Database Configuration Assitant并打开

‘伍’ 如何创建oracle数据库

方法/步骤

1
从Windows桌面执行“开始”→“程序”→“Oracle - <ORACLE_HOME_NAME>”→“配置和移置工具”→“Database Configuration Assistant”命令,打开Database Configuration Assistant对话框的欢迎界面,单击该界面中的“下一步”按钮

2
启用“创建数据库”选项,单击“下一步”按钮,进入“步骤2:数据库模板”界面

3
启用“一般用途或事务处理”选项,单击“下一步”按钮,进入“步骤3:数据库标识”界面

4
在“步骤3:数据库标识”界面中设置新数据库的全局数据库名,这里设置为myorcl,而数据库实例名(SID)默认与全局数据库名相同,也为myorcl
5
设置好口令后,单击“下一步”按钮,进入“步骤6:存储选项”界面,在该界面中启用“文件系统”选项

6
单击“下一步”按钮,进入“步骤7:数据库文件所在位置”界面。设置好存储位置后,单击“下一步”按钮,进入“步骤8

7
¤采用默认设置,单击“下一步”按钮,进入“步骤9:数据库内容”界面,该界面中可以对示例方案及定制脚本进行配置。采用默认设置,单击“下一步”按钮,进入“步骤10:初始化参数”界面,该界面中可以对内存、调整大小、字符集和连接模式进行配置。采用默认设置,单击“下一步”按钮,进入“步骤11:安全设置”界面,在该界面中采用默认设置,即启用“保留增强的11g默认安全设置”选项。¤单击“下一步”按钮,进入“步骤 12:自动维护任务”界面,在该界面中选择“启用自动维护任务”选项。
8
单击“下一步”按钮,进入“步骤13:数据库存储”界面,在该界面中可以指定数据库的存储参数,单击“下一步”按钮,进入“步骤14:创建选项”界面

9
单击“完成”按钮,在弹出的“确认”对话框中单击“确定”按钮,即可开始新数据库的创建

‘陆’ SQL 存储过程建立和使用方法

Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量、条件执行和其他强大的编程功能。 存储过程相对于其他的数据库访问方法有以下的优点: (1)重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。 (2)提高性能。存储过程在创建的时候就进行了编译,将来使用的时候不用再重新编译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。 (3)减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。 (4)安全性。参数化的存储过程可以防止SQL注入式的攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。 存储过程一共分为了三类:用户定义的存储过程、扩展存储过程以及系统存储过程。 其中,用户定义的存储过程又分为Transaction-SQL和CLR两种类型。 Transaction-SQL 存储过程是指保存的Transaction-SQL语句集合,可以接受和返回用户提供的参数。 CLR存储过程是指对.Net Framework公共语言运行时(CLR)方法的引用,可以接受和返回用户提供的参数。他们在.Net Framework程序集中是作为类的公共静态方法实现的。(本文就不作介绍了) 创建存储过程的语句如下:Code
CREATE { PROC | PROCEDURE } [schema_name.] procere_name [ ; number ]
[ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ [ OUT [ PUT ]
] [ ,n ]
[ WITH <procere_option> [ ,n ]
[ FOR REPLICATION ]
AS { <sql_statement> [;][ n ] | <method_specifier> }
[;]
<procere_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE_AS_Clause ]

<sql_statement> ::=
{ [ BEGIN ] statements [ END ] }

<method_specifier> ::=
EXTERNAL NAME assembly_name.class_name.method_name [schema_name]: 代表的是存储过程所属的架构的名称 例如: Create Schema yangyang8848
Go
Create Proc yangyang8848.AllGoods
As Select * From Master_Goods
Go 执行:Exec AllGoods 发生错误。 执行:Exec yangyang8848.AllGoods 正确执行。 [;Number]: 用于对同名过程进行分组的可选整数。使用一个 DROP PROCEDURE 语句可将这些分组过程一起删除。 例如: Create Proc S1 ;1
AS
Select * From Master_Goods
Go
Create Proc S1 ;2
As
Select * From Master_Location
Go 创建完毕了两个存储过程。它们在同一个组S1里,如果执行Exec S1 则存储过程默认执行 Exec S1 ;1 。如果我们想得到所有据点信息则需要执行Exec S1 ;2。当我们要删除存储过程的时候,只能执行Drop Exec S1 则该组内所有的存储过程被删除。 [@ parameter]: 存储过程中的参数,除非将参数定义的时候有默认值或者将参数设置为等于另一个参数,否则用户必须在调用存储过程的时候为参数赋值。 存储过程最多有2100个参数。 例如: Create Proc yangyang8848.OneGoods
@GoodsCode varchar(10)
As
Select * From Master_Goods Where GoodsCode = @GoodsCode
Go 调用的代码: Declare @Code varchar(10)
Set @Code = '0004'
Exec yangyang8848.OneGoods @Code 在参数的后边加入Output 表明该参数为输出参数。 Create Proc yangyang8848.OneGoods
@GoodsCode2 varchar(10) output,@GoodsCode varchar(10) = '0011'
As
Select * From Master_Goods Where GoodsCode = @GoodsCode
Set @GoodsCode2 = '0005'
Go 调用方法:
Declare @VV2 varchar(10)
Exec yangyang8848.OneGoods @Code out 注意:如果存储过程的两个参数一个有默认值一个没有,那么我们要把有默认值得放在后边,不然会出问题哦~~ 细心的朋友,可能看到上边的语句有一些不同,比如,存储过程用的是output,而调用语句用的是out。我要告诉您,两者是一样的。 [RECOMPILE]:指示数据库引擎 不缓存该过程的计划,该过程在运行时编译。如果指定了 FOR REPLICATION,则不能使用此选项。对于 CLR 存储过程,不能指定 RECOMPILE。 这个说一个非常好用的函数 OBJECT_ID :返回架构范围内对象的数据库对象标识号。 例如:我们创建存储过程时,可以如下写代码 If Object_ID('yangyang8848.OneGoods') Is Not Null
Drop Proc yangyang8848.OneGoods
Go Create Proc yangyang8848.OneGoods
@GoodsCode2 varchar(10) out,@GoodsCode varchar(10) = '0011'
As
Select * From Master_Goods Where GoodsCode = @GoodsCode
Set @GoodsCode2 = '0005'
Go 针对于上边的这个存储过程,我们调用以下SQL查询 Select definition From sys.sql_moles
Where object_id = Object_ID('yangyang8848.OneGoods'); 我们是可以查到结果的。 可是如果我们对该存储过程加入[ ENCRYPTION ] 那么你将无法看到任何结果 If Object_ID('yangyang8848.OneGoods') Is Not Null
Drop Proc yangyang8848.OneGoods
Go Create Proc yangyang8848.OneGoods
@GoodsCode2 varchar(10) out,@GoodsCode varchar(10) = '0011' With Encryption
As
Select * From Master_Goods Where GoodsCode = @GoodsCode
Set @GoodsCode2 = '0005'
Go</SPAN> 然后我们查询 sys.sql_moles 目录视图,将返回给你Null。</p> 然后我们执行以下SQL: Exec sp_helptext 'yangyang8848.OneGoods' 你将得到以下结果:The text for object 'yangyang8848.OneGoods' is encrypted. 说到这里你应该明白了,参数[ ENCRYPTION ]:是一种加密的功能, 将 CREATE PROCEDURE 语句的原始文本转换为模糊格式。模糊代码的输出在 SQL Server 2005 的任何目录视图中都不能直接显示。对系统表或数据库文件没有访问权限的用户不能检索模糊文本。但是,可通过 DAC 端口访问系统表的特权用户或直接访问数据库文件的特权用户可使用此文本。此外,能够向服务器进程附加调试器的用户可在运行时从内存中检索已解密的过程。 前两天写了一篇关于游标的介绍文章 ,下边写一个例子,将游标与存储过程一起使用上: If Object_ID('dbo.GetMasterGoods') Is Not Null
Drop Proc dbo.GetMasterGoods
Go Create Proc GetMasterGoods
@MyCursor Cursor Varying Output
With Encryption
As
Set @MyCursor = Cursor
For
Select GoodsCode,GoodsName From Master_Goods
Open @MyCursor
Go --下边建立另外一个存储过程,用于遍历游标输出结果 Create Proc GetAllGoodsIDAndName
As Declare @GoodsCode varchar(18)
Declare @GoodsName nvarchar(20)
Declare @MasterGoodsCursor Cursor
Exec GetMasterGoods @MasterGoodsCursor out
Fetch Next From @MasterGoodsCursor
InTo @GoodsCode,@GoodsName
While(@@Fetch_Status = 0)
Begin
Begin
Print @GoodsCode + ':' + @GoodsName
End
Fetch Next From @MasterGoodsCursor
InTo @GoodsCode,@GoodsName
End
Close @MasterGoodsCursor
Deallocate @MasterGoodsCursor
Go 最后执行Exec GetAllGoodsIDAndName结果为以下内容 0003:品0003
0004:品0004
0005:123123
0006:品0006
0007:品0007
0008:品0008
0009:品0009
0010:品0010
0011:品0011
0012:品0012
0013:品0013
0014:品0014

‘柒’ 有什么办法能把数据库加载到自己内存。 数据库不大,但需要频繁连接,并且连接比较慢。 我想有没什么办

JAVA连接数据库的方式有多种:
根据所需要的不同数据库驱动分,分为四种:
1:1类驱动。这就是JDBC-ODBC桥的方式。但这种方式不适合程序的重用与维护,不推荐使用。需要数据库的ODBC驱动。
2:2类驱动。这就是JDBC+厂商API的形式。厂商API一般使用C编写,所以,这种方式也不长使用。
3:3类驱动。这就是JDBC+厂商Database Connection Server+DataBase的形式。
这种方法就是在JAVA 与 DATABASE之间价起了一台专门用与数据库连接的服务器(一般由数据库厂商提供)。他的好处在于能优化连接。
4:4类驱动。这就是纯JDBC+DATABASE的连接方式。也是推荐的连接方式。这使得APPLICATION与数据库分开,开发者只需关心内部逻辑的实现而不需注重数据库连接的具体实现。在这其中有两种连接的方式:
硬编码方式,就是在程序中硬性编入数据库连接的所须参数。
JNDI DataSource方式。就是在程序运行的外布环境中又称(Context)设置一个datasource数据源,有一个jndi 名称,程序只须查找此名称就可得到一个数据库连接的对象。

‘捌’ C#语言怎么建立数据库 有哪些步骤啊谢谢

哥们,C#是不能创建数据库的,你说的创建数据库,有另外的软件,比如SQL 和 ORACLE.你想问的是连接数据库的步骤吧!
Connection是连接,用来连接上数据库服务器或者数据库文件打开一个数据查询通道

Command是命令,用来执行Tsql语句或者存储过程,可以建立查询参数,防止SQL注入

DataReader是一个只读向前的快速读取器,用来读取Command查询出的数据,供你显示或使用

OLEDB可以用在Access等数据库上,SQl可以用在MS Sql Server数据库上

DataSet是内存中的多个数据表的集合,包含数据结构,数据和数据关系,可以进行离线操作,然后在线更新

建立个条件查询:
用Command对象
Sqlcommand cmd = new Sqlcommand("select * from users where name = @name)
cmd.parameter.addwithvalue("name",request["name"]);

SQL语句中的@name就是一个参数替换点,用cmd.parameter.addwithvalue将查询用的条件值代入查询语句就行了...

BindingSource是介于可绑定控件和数据源(DataSet、适配器,DataTable,Reader等)之间的中介控件,是从查询到绑定之间的连接器
希望能帮到你。

‘玖’ 《数据库系统概论》课程讲什么内容

数据库技术和系统已经成为信息基础设施的核心技术和重要基础。数据库技术作为数据管理的最有效的手段,极大的促进了计算机应用的发展。 本课程系统全面地讲述数据库系统的基础理论、基本技术和基本方法。包括: 第一篇基础篇,包括绪论、关系数据库、关系数据库标准语言SQL、数据库安全性和数据库完整性,共5章; 第二篇设计与应用开发篇,包括关系数据理论、数据库设计和数据库编程,共3章; 第三篇系统篇,作为选修内容,可以拓展学习。内容包括关系查询处理和查询优化、数据库恢复技术、并发控制和数据库管理系统,共4章; 第四篇新技术篇,包括数据库技术发展概述、大数据管理、内存数据库系统和数据仓库与联机分析处理技术,共4章,作为参考资料供进一步学习数据库技术的学生阅读。 通过本课程学习,使学生系统地掌握数据库系统的基本原理和基本技术。要求在掌握数据库系统基本概念的基础上,能熟练使用SQL语言在某一个数据库管理系统上进行数据库操作;掌握数据库设计方法和步骤,具有设计数据库模式以及开发数据库应用系统的基本能力。

‘拾’ 有些什么比较好的oracle入门级教程,求分享!

oracle架构的基础知识(入门级)

学习oracle,最好首先了解Oracle的框架。这样对Oracle有一个整体的认识,有高屋建瓴的作用
1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成)

一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。
其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件;
参数文件(parameter file)口令文件(password file)是非数据库文件

1.1数据文件:存储数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。
由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。
types:
.data dictionary .data
.redo data .index
.temporary data 等等
1.2控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.
控制文件内容
。数据库名
。表空间信息
。所有数据文件的名字和位置
。所有redo日志文件的名字和位置
。当前的日志序列号
。检查点信息
。关于redo日志和归档的当前状态信息
控制文件的使用过程
控制文件把Oracle引导到数据库文件的其它部分。启动一个实例时,Oracle 从参数文件中读取控制文件的名字和位置。安装数据库时,Oracle 打开控制文件。最终打开数据库时,Oracle 从控制文件中读取数据文件的列表并打开其中的每个文件。

1.3重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件.
1.4 跟踪文件及警告日志(Trace Files and Alert Files)
在instance 中运行的每一个后台进程都有一个跟踪文件(trace file)与之相连。Trace file 记载后台进程所遇到的重大事件的信息。
警告日志( Alert Log)是一种特殊的跟踪文件,每个数据库都有一个跟踪文件,同步记载数据库的消息和错误.
1.5参数文件:包括大量影响Oracle数据库实例功能的设定,如以下设定:
。数据库控制文件的定位
。Oracle用来缓存从磁盘上读取的数据的内存数量
。默认的优化程序的选择.

和数据库文件相关,执行两个重要的功能
1〉为数据库指出控制文件
2〉为数据库指出归档日志的目标

1.6归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
1.7口令文件:认证哪些用户有权限启动和关闭Oracle例程.

2、逻辑结构(表空间、段、区、块)
表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。
段:是对象在数据库中占用的空间.
区:是为数据一次性预留的一个较大的存储空间.
块:ORACLE最基本的存储单位,在建立数据库的时候指定.

3、内存分配(SGA和PGA)
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA 是只被一个进程使用的区域,PGA 在创建进程时分配,在终止进程时回收.
4、后台进程
包括数据写进程(Database Writer,DBWR)、日志写进程(Log Writer,LGWR)、系统监控(System Monitor,SMON)、进程监控(Process Monitor,PMON)、检查点进程(Checkpoint Process,CKPT)、归档进程、服务进程、用户进程)
数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件
系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
进程监控:负责在一个Oracle 进程失败时清理资源
检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。该进程在检查点出现时,对全部数据文件的标题进行修改,指示该检查点。在通常的情况下,该任务由LGWR执行。然而,如果检查点明显地降低系统性能时,可使CKPT进程运行,将原来由LGWR进程执行的检查点的工作分离出来,
由CKPT进程实现。对于许多应用情况,CKPT进程是不必要的。只有当数据库有许多数据文件,LGWR在检查点时明显地降低性能才使CKPT运行。CKPT进程不将块写入磁盘,该工作是由DBWR完成的。 init.ora文件中 CHECKPOINT_PROCESS 参数控制CKPT进程的使能或使不能。缺省时为FALSE,即为使不能。
归档进程:在每次日志切换时把已满的日志组进行备份或归档
服务进程:用户进程服务。
用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。

5、SCN(System ChangeNumber):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。
我是从“上海全鼎软件学院”毕业的————————