发布网友 发布时间:2022-04-23 16:38
共4个回答
懂视网 时间:2022-05-01 09:26
无论是数据库管理员,还是普通用户,都需要经常对数据库对象进行管理,如数据库对象的创建、删除、修改等。
Oracle 中的数据库对象包括表、索引、视图、存储程序、序列等,这些数据库对象以一种逻辑关系组织在一起,这就是模式( schema )。
模式是一个用户所拥有的所有数据库对象的集合。
每个数据库对象都属于某个用户,一个用户所拥有的数据库对象就组成了一个模式,模式的名称与用户名相同。
当创建用户时,就同时产生了一个模式,在默认的情况下,用户在自己的模式中有所有的权限。
将站在数据库管理员的角度,重新考虑这些数据库对象在Oracle 中所涉及的特性,如存储结构、数据的组织方式等。
表的管理
表的管理涉及表的结构、表的创建、修改与删除等操作,以及临时表、分区表和索引组织表三种特殊类型的表。
表的结构
在数据库中,表是最基本的数据库对象,用来存储系统或用户的数据。
表中的数据是按照行和列的格式存放的。
表中的各行数据一般以写入的先后顺序存放,而一行中的各列一般按照定义表时指定的顺序存放的。
在逻辑结构上,一个表位于某个表空间。
当创建一个表时,将同时创建一个表段,用于存放表中的数据。
在物理结构上,表中的数据都存放在数据块中,因而在数据块中存放的是一行行的数据。
图为数据块中一行数据的结构。
其中行的头部记录了该行中列的个数、行间的全连接、加锁信息等。
列长度记录-个列实际占用的字节数,而列值则记录了该列实际存放的数据。
表中的每一行数据都有一个行号,用于标识该行数据的物理位置。
根据这个行号,可以直接定位该行数据。
行号可以通过伪列ROWID获得。
例如,以下查询得到表DEPT中的数据及每行的行号。
SELECT rowid, emp.* FROM scott.emp;
行号是由数据库服务器自动生成的字符串,包含18个字符。
行号的组成如图所示。
其中前六个字符表示数据库对象的编号,用来指定该行数据属于哪个数据库对象。
在数据库中每个数据库对象都有一个唯一的编号。
从第七个到第九个共三个字符表示数据文件的相对编号,用来指定该行数据存储在哪个数据文件中。
在数据库中每个数据文件中有两个编号,一个是绝对编号,它是数据文件在整个数据库范围内的编号,另一个是相对编号,它是数据文件在一个表空间范围内的编号。
从第十到第十五共六个字符表示数据块的编号,用来指定该行数据位于哪个数据块中。
最后三个字符表示行号,用来指定该行数据在数据块中位于第几行。
为了使用户对行号的进行解析, Oracle提供了一个DBMS_ROWID程序包,利用这个程序包中的函数可以对行号进行分析。
DBMS_ROWID 中各个函数的用法如表所示。
例如,以下查询将得到dept表中每行数据所在的文件编号、数据库对象的编号、数据块编号和在数据块中的行号:
SELECT DBMS_ROWID.ROWID_RELATIVE_FNO(rowid) AS 相对文件号,
DBMS_ROWID.ROWID_OBJECT(rowid) AS 对象编号,
DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) AS 数据块编号,
DBMS_ROWID.ROWID_ROW_NUMBER(rowid) AS 行号
FROM scott.dept;
表的创建
在创建表时,可以同时为表指定一些重要的属性,如存储参数、所属表空间等。
这些属性都通过CREATE TABLE命令的子句指定。
1.PCTFREE和PCTUSED子句
这两个参数的作用是用来控制数据块的空间使用情况。
为了减少数据块间的迁移,在创建表时可以通过PCTFREE和PCTUSED子句指定数据块空间的使用情况。
考虑以下创建表的语句:
CREATE TABLE Tl(
name varchar2 ( 10) )
PCTFREE 20
PCTUSED 40;
在表Tl 中,每个数据块都有20o/o的保留空间。
当可用空间使用完后,新的数据将被写入另外一个数据块。
当从表中删除数据时,数据块中已用空间不断减少,当减少到40%时,可再次向该数据块中插入数据。
在使用PCTFREE和PCTUSED子句时,可以参考以下原则:
• PCTFREE和PCTFUSED的值必须小于或等于100% 。
·如果在一个表上很少执行UPDATE操作,可以将PCTFREE设置得尽量小。
• PCTFREE与PCTUSED之和越接近100o/o ,数据块的空间利用率越高。
2.TABLESPACE子句
TABLESPACE子句用来指定将表创建在哪个表空间上。
如果不指定TABLESPACE子句,用户将在自己的默认表空间上创建表。
为了能够在指定的表空间上创建表,当前用户必须在该表空间上有足够的空间配额或在数据库中具有UNLIMITED TABLESPACE权限。
3.INITRANS和MAXTRANS子句
数据库中的数据存储在数据块中,用户的事务最终要修改数据块中的数据。
Oracle允许多个并发的事务同时修改一个数据块中的数据。
每当用户的事务开始作用于一个数据块时,数据库服务器将在该数据块的头部为该事务分配一个事务项,以记录事务的相关信息。
事务结束时,对应的事务项将被删除。
INITRANS和MAXTRANS参数用于控制一个数据块上的并发事务数量,其中INITRANS 用于指定初始的事务数量。
MAXTRANS 用于指定最大的并发事务数量。
当创建一个表时,数据库服务器按照INITRANS的值为每个数据块分配一定的事务项,这些事务项将一直保留到该表被删除。
当一个事务访问数据块时,将占用其中的一个事务项,事务结束时,将释放事务项。
当这些预先创建的事务项全部被占用后,如果又有新的并发事务发生,数据库服务器将在数据块的可用空间中为事务创建一个新的事务项。
在任一时刻,数据块中的事务项不会超过MAXTRANS 参数值。
例如,在利用以下语句创建表时,指定初始的事务项为10 ,最大的并发事务数量为2000
CREATE TABLE T2(
name varchar2 ( 10) )
INITRANS 10
MAXTRANS 200;
INITRANS和MAXTRANS参数的值可以根据用户对表的访问情况进行设置。
如果参数值过大,事务项将占用更多的数据块空间,那么数据可以利用的空间将喊少。
如果参数设置过小,有些事务将因为无法分配到事务项而等待,从而降低了数据库的性能。
一般情况下,如果多个用户同时访问表的情况很少发生,可以为这两个参数设置较小的参数值,反之要为这两个参数指定较大的参数值。
4.CACHE子句
CACHE子句用于指定将表中的数据放在数据库高速缓存中,并保留一段时间。
如果在创建表时指定了CACHE字句,那么在用户第一次访问表中的数据时,这个表将整个被读到数据库高速缓存中,并保留较长的一段时间,这样用户以后再访问该表时,可直接访问数据库高速缓存中的数据,从而提高访问的效率。
在默认情况下创建表时使用NOCACHE子句。
对于一些较小的、用户访问频繁的表,在创建时可以考虑使用CACHE子句,以提高访问效率。
CREATE TABLE T3(
name varchar2 ( 10) )
CACHE;
5.RAPALLEL子句
在一般情况下,通过INSERT命令向表中写人数据时,一次写入一行数据,这样的写操作是串行进行的。
如果在创建表时指定了PARALLEL子句,那么在向表中以批量方式写入大量数据时就是以并发方式进行的,这样可以大大提高处理的速度。
例如,利用以下语句创建表时,将实现并发操作。
CREATE TABLE T4(
name varchar2 ( 10) )
PARALLEL;
如果不希望在表上以并发方式写入数据,在创建表时需要指定NOPARALLEL 。
6.LOGGING子句
在默认情况下,用户在表上执行DDL和DML命令时,服务器进程都会产生重做日志。
如果不希望产生重做日志,在创建表时需要指定NOLOGGING子句。
使用NO LOGGING子句有以下好处:
·由于不写重做日志,因而节约了重做日志文件的存储空间。
.减少了处理时间。
·在以并行方式向表中写入大量数据时提高了效率。
当然在使用NOLOGGING子句时也有不好的一面。
因为没有重做日志,当表被破坏时,将无法进行恢复,所以在表创建后应该及时对其进行备份。
CREATE TABLE T5(
name varchar2 ( 10) )
NOLOGGING;
7.COMPRESS子句
如果在创建表时使用了COMPRESS子句,那么一个数据块中两行完全相同的数据将被压缩为一行,并存储在数据块的开始,在数据块中本应存储这两行数据的地方只存储该行数据的引用。
使用表的压缩功能可以减少表所占用的存储空间和数据库高速续存空间,并且可以提高查询速度。
表的压缩功能一般用在向表中批量插入数据的情况(例如基于查询创建表)。
一个表中可以包含压缩的和未压缩的数据,所有DML操作均可应用于这些压缩的数据。
例如,下面的语句用于创建表T6,这个表具有压缩功能,支持并发的数据写入,对DDL和DML命令不产生重做日志。
CREATE TABLE T6(
name varchar2 ( 10) )
COMPRESS PARALLEL NOLOGGING;
临时表是一种特殊类型的表,表中的数据并不永久保存,而是一些临时数据。
这些临时数据只在当前事务或当前会话中有效,当事务或会话结束时,这些临时数据将被全部删除。
创建临时表的命令是CREATE GLOBAL TEMPORARY TABLE 。
在创建临时表时还需要通过ON COMMIT子句指定临时数据的有效范围。
如果指定了ON COMMIT DELETE ROWS 子句,那么临时表是事务级的,当事务提交或回滚时,临时表中的数据即被删除。
如果指定了ONCOMMIT PRESERVE ROWS子句,那么临时表是会话级的,表中的数据将一直保留,直到当前会话结束时才被删除。
以下语句用于创建一个事务级的临时表:
CREATE GLOBAL TEMPORARY TABLE T7(
name varchar2(10)
ON COMMIT DELETE ROWS;
基本数据库对象管理
标签:
热心网友 时间:2022-05-01 06:34
Access主要对象有数据表、查询、报表、窗体、宏、模块。
数据表(Table) ——表是Access数据库的核心对象,主要是用于存储数据,是创建其他5种对象的基础。数据表是以行、列来显示数据记录,是同一类数据的集合体。
表由记录组成,记录由字段组成,是Access数据库中存贮数据的地方,故又称数据库。一个数据库中可以包含一个或多个数据表。
查询(Query)——根据事先设定的*条件从一个或多个数据表中检索除符合条件的数据,并加以统计和分析。查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。
窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。一方面窗体可以增加录入过程的趣味性,另一方面也保护了数据的完整性、准确性和安全性。
报表(Report)——报表是用于将将检索的数据或原始数据以特定的方式显示出来,报表既可以对数据进行分组,还支持对数据的各种统计和计算。
宏(Macro)——是一个或多个命令的集合,其中每个命令都可以实现特定的功能,通过将这些命令组合起来,可以自动完成某些经常重复或复杂的动作。Access大部分功能是可以通过宏的组合来完成的。
模块(Mole)——模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。
扩展资料
Access数据库的优缺点:
Microsoft Access Basic提供了一个丰富的开发环境。这个开发环境给你足够的灵活性和对Microsoft Windows应用程序接口的控制,同时保护你使你免遭用高级或低级语言开发环境开发时所碰到的各种麻烦。
不过,许多优化、有效数据和模块化方面只能是应用程序设计者才能使用。开发者应致力于谨慎地使用算法。除了一般的程序设计概念,还有一些特别的存储空间的管理技术,正确使用这些技术可以提高应用程序的执行速度,减少应用程序所消耗的存储资源。
提高速度和减少代码量
你可以用几种技巧来提高你的编码速度,但是却找不到有效的算法的替代者。接下来的这几点建议可以提高你的编码速度同时又减少你的应用程序消耗的存储空间。
用整形数进行数*算
即使Microsoft Access 会使用一个联合处理器来处理浮点型算术,整型数算术也总是要快一些。当你的计算不含有小数,尽量使用整型或长整型而不是变量或双整型。整型除法同样也要比浮点除法要快。在使用其他一些有效的数据类型时会警告:没有任何东西可以替换有效的运算法则。
避免使用过程调用
避免在循环体中使用子程序或函数调用。每一次调用都因额外的工作和时间而给编码增大了负担。每一次调用都要求把函数的局部变量和参数压栈,而栈的大小是固定的,不能随便加大,并且同时还要于Microsoft Access共享。
热心网友 时间:2022-05-01 07:52
1、表(Table) :表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。
2、查询(Query):查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。
3、窗体(Form):窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。
4、报表(Report):报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。
5、宏(Macro):宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。
扩展资料:
Access数据库的用途:
一、用来进行数据分析:
Access有强大的数据处理、统计分析能力,利用access的查询功能,可以方便地进行各类汇总、平均等统计。
并可灵活设置统计的条件。比如在统计分析上万条记录、十几万条记录及以上的数据时速度快且操作方便,这一点是Excel无法与之相比的。 Access提高了工作效率和工作能力。
二、用来开发软件:
Access用来开发软件,比如生产管理、销售管理、库存管理等各类企业管理软件,其最大的优点是:简单易学,非计算机专业的人员也容易上手。
低成本地满足了那些从事企业管理工作的人员的管理需要,通过软件来规范同事、下属的行为,推行其管理思想。
参考资料来源:百度百科-Microsoft Office Access
热心网友 时间:2022-05-01 09:26
1、表:主要用于存储数据。为了保证数据的准确性,可以设置有效性、掩码等。为了数据安全和准确性期间,一般不建议让用户直接操作表,而是通过窗体来完成录入、删除或者修改等功能。
2、查询 主要用于提取数据。主要包括列举、统计、增减删改数据等功能。数据库的主要功能将由查询来完成,但同样由于上述的原因,一般也是建议通过窗体来完成的。
3、窗体 用户与程序的交互。通过对窗体上控件或菜单的操作,来完成数据的录入、修改和删除等工作。一方面窗体可以增加录入过程的趣味性,另一方面也保护了数据的完整性、准确性和安全性。
4、报表 主要用于展示数据。为了数据的便携,可以通过打印报表把数据展现出来并分发下去。此外,通过格式化,可以更加个性化地设计报表,在加强数据可读性的同时,可以使得报表更加美观。
5、页 主要用于数据共享。出于数据共享的目的,可以把数据库做成页,通过网页的形式分发给未装Access的用户来查看。
6、宏 用于自动化完成。大部分功能是可以通过宏的组合(即宏组)来完成的,例如多步运行的查询,组合成一个宏,而最后只需要执行一次宏即可完成所有查询,从而简化了工作。此外,窗体上大部分控件都是可以通过宏来完成的。在对代码仍不太熟悉的人来说,宏应该算是一个不错的选择。
7、模块 用于自定义函数,或个性化工具。通过对VBA代码的编译,模块可以实现以下几种功能:a、使用自定义公式。用户可以建立自定义公式并运用到查询当中。b、自定义函数。用户可以自定义函数,赋值后被窗体其它控件命令所调用(当然,函数也可以用宏来调用:RunCode)。c、操作其它命令。例如打开注册表写入注册信息、通过Shell函数打开一些文件或者程序。d、美观登录界面。例如建立无边框界面等等