数据库的简单认识
数据库 的认识:
数据库是进行数据存储,数据管理,数据操作的仓库,最底层为硬件层,上一层是操作系统层,再上一层是数据库管理系统,数据库是数据库管理系统的管理对象,以上统称数据库系统。
数据库管理系统有对以下的管理:
权限管理
数据管理
网络管理
权限管理,管理数据库操作者
数据管理是对数据进行管理,分别从数据存储,数据操作,其中数据存储包括,数据分表,索引,数据备份恢复,
数据操作包括,基本 SQL指令操作,函数,存储过程,触发器,游标的使用等,
网络管理,包括连接管理,网络安全管理,
数据库实例
数据库文件存放在磁盘等外部存储环境中,加载进内存可运行而成为一个实例。由系统全局区的内存区域和后台进程组成。在oracle的实用集群中会有多个实例使用一个数据库,实例通常运行在不同的服务器上,服务器间保持高速内连。
基本结构是表
物化视图:由查询检索到的数据副本 避免在执行查询期间访问大型表。
分区:把一个表分成多个部分,单独管理表的每一部分。简化维护操作,提高查询效率。 可以根据数据范围,数据列表,列数据的哈希值 这几个条件的单一或者组合来进行。
外表:在查询中把本表和其他表关联起来,在不需要把大量数据导入数据库的情况下进行访问。关联过程是建立指向(指针)的过程,Oracle中有指向文件的指针(BFILE类型,需要建立目录别名,指向物理路径)
关系表:对象的构成形式。
对象关系表:
临时表:允许多个用户向表中插入数据,每个用户只能看到自己在表中插入的数据。
集群表:如果两个表通常会被一起查询,那么可以通过集群集群把他们存储到物理相邻的位置。
删除的表:可以通过flashback table to before drop 命令迅速恢复已删除的表。可以一次恢复到某个时间点状态。
索引组织表:可以创建一个表,这个表把数据存储在一个索引结构中,使得表中的数据根据索引的值排列。
为了访问表可以使用视图,视图能够处理连接和聚集,限制返回的数据行或更改显示的列。视图可以是只读的也可以是更新的。可以引用本地表或者远程表。
索引:逻辑索引:数据行的地址指针以某种逻辑方式进行排序。——非聚集索引
物理索引:数据行按照某种可以形成索引方式进行排序。——聚集索引
oracle 数据库:
为了调整对表的访问,oracle支持很多类型的索引,有:
² B*树索引,是oracle的标准索引类型,对于选择符合等式条件或者范围条件的数据非常有用,这种索引由create index 命令创建。
² 位图索引,对于极少几个值得列使用,位图索引只应该数据在批量加载时使用。
² 基于函数的索引 可以把基于函数的列作为索引,如UPPER(name),这种基于函数的索引可以为Oracle 优化器在选择执行路径上提供更多选择。
² 分区索引 可以对索引进行分区(不同区域使用不同索引)索引分区可以用于表分区,也可以用于表中所有行。
² 反键索引 如果再插入连续数据时牵涉到I/O操作,Oracle会在存储数据之前动态地反转已经按索引排序好的数据。
² 文本索引 以文本数据为索引,以支持高级的搜索功能,如扩展单词词干或搜索短语。
存储数据
数据字典>表空间
逻辑的数据结构必须存储在数据库中,Oracle维护一个数据字典,用于记录所有对象(对象所有者,定义,相关权限)有关的元数据(有点类似于类文件)对于需要自己的的物理空间来存储的对象,Oracle会在一个表空间为其分配空间。表空间可以按照字典方式进行管理,也可以按本地方式进行管理。按本地方式进行管理的表空间中,Oracle在每个表空间的数据文件中都维持一个位图,这个位图用于追踪可用空间的大小。只有存储限额是在数据字典中管理的。(额,这是多么像内存管理中的块管理机制啊。)
自动存储管理(ASM automatic storage Management)
ASM将自动完成对数据库所使用的数据文件和其他操作系统级别文件的分布规划,并把这些文件分配到所有可用的磁盘空间中。是动态维护的过程。保证数据的安全高效。
自动Undo管理
为支持事务,动态创建和管理Undo数据段,这个数据段有助于维护数据块/行在修改前的镜像。自动Undo无需数据库管理员干预。另外简化了闪回查询的使用。
删除数据
回收站的概念,大大简化了偶然删除数据表的恢复,但增加了数据库使用的空间。
数据保护
访问权限的管理
可编程结构
² PL/SQL
² 动态SQL
² SQL*Plus
² Java和jdbc
² Xml
² 面向对象的SQL和PL/SQL
² Data Pump
² SQL*Loader
² 外部程序和过程
² UTL_MAIL
数据库三大范式
² 第一范式:属性不可分(原子性)保持列的独立性
² 第二范式:主键约束 保存信息基于主题(主键)的唯一性,消除数据冗余。
第三范式:属性间的依赖性,唯一依赖于主键。
事务
数据库事务,是将多个SQL指令的执行组合为原子性的整体(工作的逻辑单元),要么同时执行,要么都不执行
索引
逻辑索引:数据行的地址指针以某种逻辑方式进行排序。——非聚集索引
物理索引:数据行按照某种可以形成索引方式进行排序。——聚集索引
序列
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。
游标
对于Sql 指令工作的内存区域,提供一种指针对内存区域进行位置信息的提取,是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。
约束
视图
视图是一张虚拟表,视图本身不包含任何数据,只包含映射到基表的一个Select语句,当基表发生变化时,视图随之变化,可以通过视图(映射操作)对基表进行操作(可以加以限制)查询,修改。
触发器
触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发。
触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行。
存储过程
存储过程是一组预编译的SQL语句,具有过程化的特点,属于一个模块整体。
存储过程可以赋予权限,可以提高执行效率,可以减少网络流量。
存储过程是过程化的SQL指令,函数是带有返回值的SQL程序模块。
函数必须有返回值,存储过程没有返回值,
存储过程一般是作为一个独立的部分来执行(EXEC执行),而函数可以作为查询语句的一个部分来调用(SELECT调用),由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。
存储过程重在执行过程,函数重在执行结果。
浙公网安备 33010602011771号