数据库原理及应用(ORACLE)实用教程 成都电子高专计算机工程系
第1章 数据库的概念 第2章 实体联系模型 第3章 关系模型及ORACLE对象关系数据库 第4章 ORACLE SQL和PL/SQL 第5章 关系数据库设计理论 第6章 数据库的设计与维护 第7章 数据库保护 第8章 ORACLE的企业管理器(Enterprise Manager) 第9章 分布式数据库系统 第10章 数据库应用程序开发工具-ORACLE Developer 第11章 ORACLE J2EE高级技术与JDeveloper 第12章 ORACLE程序实例——图书管理信息系统
第一章 数据库的概念 1.1 数据库的意义 1.2 数据库的由来和发展 1.3 数据库的体系结构 1.4 数据库系统 1.5 数据库管理系统
1.1.1 DB(Database)数据库 Database :顾名思义,数据库(Database,即DB)是存贮在一起的相关数据的集合,是存贮数据的“仓库”。 诞生于20世纪中叶的计算机科学较之其它现代科学技术的发展更迅速,在21世纪到来之际,它几乎可以称为“知识爆炸”了。21世纪是信息和知识的社会,如何组织和利用这些庞大的信息和知识已成为衡量一个国家科学技术水平高低的重要标志。 早在60年代,数据库技术作为现代信息系统基础的一门软件学科便应运而生了。现在,数据库技术已成为计算机领域中最重要的技术之一,它是软件学科中一个独立的分支。
1.1.2 数据模型 数据库系统就是实现有组织地、动态地存贮大量相关数据,方便用户访问的计算机软、硬资源组成的系统。而数据库技术是研究数据库的结构、存贮、设计和使用的一门软件学科。因此,数据库技术主要是研究如何存贮、使用和管理数据。 数据库离不开数据模型。数据模型是对现实世界客观事物及其联系的描述,它反映数据项之间和记录之间的联系,在数据库技术中使用模型的概念描述数据库的结构与语义。 常用有三种数据模型 (data model):层次模型(hierarchical model),网状模型(network model)和关系模型(relational model)。此外,还有面向对象模型(object-oriented model) 返回
1.2 数据库的由来和发展 1.2.1人工管理阶段(20世纪50年代中期以前) 这一阶段的计算机主要用于科学计算。硬件中的外存只有卡片、纸带等。软件只有汇编语言,没有数据管理方面的软件。数据处理的方式基本上是批处理。这个时期的数据管理特点如下: 1. 数据不保存 2. 没有专用软件对数据进行管理 3. 只有程序(PROGRAM)的概念、没有文件的概念 4. 数据面向应用 即一组数据对应于一个程序。 5. 对数据的存取以记录为单位 返回
1.2.2 文件系统阶段 文件系统阶段(20世纪50年代后期至60年代中后期) 这一阶段的计算机不仅用于科学计算,还大量用于信息管理。外存已有磁盘、磁鼓等直接存取贮设备。软件方面出现了高级语言和操作系统。操作系统中的文件系统(有时也称为“信息处理模块”)是专门处理外存的数据管理软件。处理数据方式有批处理,也有联机实时处理。这一阶段数据管理情况如下: 1、特点 (1) 数据可长期保存在外存的磁盘上
(2) 数据的物理结构与逻辑结构有了区别,但较简单。程序与设备之间有设备独立性(程序只需用文件名与数据打交道 ) (2) 数据的物理结构与逻辑结构有了区别,但较简单。程序与设备之间有设备独立性(程序只需用文件名与数据打交道 ). (3) 文件的形式已多样化,有索引文件,链接文件和直接存取等,因而对文件的记录可顺序访问,也可随机访问。但文件之间是独立的,联系要通过程序去构造,文件的共享性差。
(4) 有了存贮文件以后,数据不再仅仅属于某个特定的程序,而可以重复使用。但文件结构的设计仍然是基于特定的用途,程序仍然是基于特定的 . (5) 对数据的存取基本上还是以记录为单位。 2. 缺陷 文件系统有三大缺陷:
(1) 数据冗余性(redundancy),由于文件之间缺泛联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存贮; (2) 不一致性(inconsistency),这往往是由数据冗余造成的,在进行更新操作时,稍不谨慎,就可能同样的数据在不同的文件中不一样; (3) 数据联系弱(poor data relationship),这是文件之间独立,缺乏联系造成的。
1.2.3 数据库阶段 数据库阶段(20世纪60年代末开始) 1. 采用复杂的数据模型(结构) 数据模型不仅要描述数据本身的特点,还要描述数据之间的联系。这种联系是通过存取路径来实现的。通过一切存取路径来表示自然的数据联系是数据库与传统文件的根本区别。这样数据不再面向特定的某个或多个应用,而是面向整个应用系统。数据冗余明显减少,实现了数据共享。
2. 有较高的数据独立性 在数据库系统中,系统提供映象的功能,确保应用程序对数据结构和存取方法有较高的独立性。用户以简单的逻辑结构操作数据而无需考虑数据的物理结构。数据库结构分成用户的逻辑结构、整体逻辑结构和物理结构。在改变物理结构时,不影响整体逻辑结构、用户的逻辑结构以及应用程序,这样就认为数据库达到了物理数据独立性。在改变整体逻辑时,不影响用户的逻辑结构以及应用程序,这样就认为数据库达到了逻辑数据独立性。 3. 数据库系统为用户提供了方便的用户接口 用户可使用查询语言或简单的终端命令操作数据库,也可以使用程序方式(用高级语言如C、 FORTRAN等语言和数据库操纵语言编制的程序)操作数据库。 4. 提供下述四方面的数据控制功能 (1)数据完整性:保证数据库始终包含正确的数据。用户可设计一些完整性规则以确保数据值的正确性。
(2) 数据安全性:保证数据的安全和机密,防止数据丢失或被窃取。 (3) 数据库的并发控制:避免并发程序之间的相互干扰,防止数据库数据被破坏,杜绝提供给用户不正确的数据。 (4) 数据的恢复:在数据库被破坏时或数据不可靠时,系统有能力把数据库恢复到最近某个时刻的正确状态。 5.还可以数据项为单位操作 对数据库的操作除了以记录为单位外还可以数据项为单位。
1.2.4高级数据库阶段 高级数据库阶段(20世纪70年代后期开始) 这一阶段的主要标志是分布式数据库系统、面向对象数据库、智能数据库系统的出现。
1.3数据库的体系结构 从DBMS的角度看: 数据库系统采用三级体系结构 从最终用户的角度看: 集中式结构 分布式结构 客户/服务器结构 平行结构
1.模式(schema)和实例(instance) 在数据模型中有型(type)和值(value)的概念。型是对某一类数据的结构和属性说明,值是型的一个具体赋值。例如:学生记录定义为(学号,姓名,性别,系别,年龄,籍贯)这样的“型”,而(900201,李明,男,计算机,22,江苏)则是该型的一个“值” 数据库模式只是数据库的一种结构描述,仅涉及到型的描述,并不涉及任何具体的数据。模式的一个具体值称为模式的一个实例。 我们常说“定义了一个数据库”只是指定义了一个数据库模式,只有按该模式装入数据以后,这个数据库才算真正建立起来了。
2.数据库的三级体系结构 数据库的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户不必关心数据在计算机内的具体表示方式与存储方式。 内模式(internal schema):也称存储模式(storage schema).它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。数据视图是指从某个角度看到的数据特性。 模式(schema):也称逻辑模式(logical schema) 是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序,所用的应用开发工具无关。
外模式(external schema):也称子模式(subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
数据库的二级映象功能与数据的独立性 为了实现三个抽象级别的转换,DBMS提供了两层映像(mappings):外模式/模式映像,模式/内模式映像。这两级映像保证了数据库系统中的数据具有较高的数据独立性(逻辑独立性和物理独立性) 物理独立性 Physical Data Independence:指用户的应用程序存储在磁盘上的数据库中数据是相互独立的。也就是说,数据怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不必改变。
逻辑独立性 Logical data independence:指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说逻辑结构改变了,用户程序也可以不变。 (1)外模式/模式映像 模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应同一模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式和模式之间的对应关系。当模式改变时(例如增加了新的关系,新的属性,改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像作相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
(2)模式/内模式映像 数据库只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据库全局逻辑结构和存储结构之间的对应关系。当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应的改变,可以使模式保持不变,从而应用程序不必修改。保证了数据与程序的物理独立性,简称数据的物理独立性。 返回
1.4 DBS(database systems)数据库系统 数据库系统的组成: 硬件平台及数据库 软件(DBMS+OS+具有数据库接口的高级语言及编译系统+以DBMS为核心的应用开发工具) 人员 (DBA,系统分析员,数据库设计人员,应用程序员,最终用户) 返回
数据库管理员(DBA) 下面着重介绍DBA的工作:要想成功地运转数据库,就要在数据处理部门配备管理人员DBA。DBA必须熟悉企业全部数据的性质和用途,因此他是面向应用的,对用户的需求有充分的认识;他对系统性能也非常关切,因而要求他兼有系统程序员和运筹学专家的品质和知识。DBA是控制数据整体结构的人,负责保护和控制数据,使数据能被任何有权使用的人有效使用。DBA可以是一个人,但一般是由几个人组成的一个小组,其主要职责是:
数据库管理员 数据库管理员(DBA)。下面着重介绍DBA的工作。要想成功地运转数据库,就要在数据处理部门配备管理人员DBA。DBA必须熟悉企业全部数据的性质和用途,因此他是面向应用的,对用户的需求有充分的认识;他对系统性能也非常关切,因而要求他兼有系统程序员和运筹学专家的品质和知识。DBA是控制数据整体结构的人,负责保护和控制数据,使数据能被任何有权使用的人有效使用。DBA可以是一个人,但一般是由几个人组成的一个小组,其主要职责是:
①决定数据库的信息内容和结构,确定某现实问题的实体联系模型,建立与DBMS有关的数据模型和概念模式。 ②决定存储结构和存取策略,建立内模式和模式/内模式映象。使数据的存储空间利用率和存取效率两方面都较优。 ③充当用户和DBS的联络员,建立外模式和外模式/模式映象。
④定义数据的安全性要求和完整性约束条件,以保证数据库的安全性和完整性。安全性要求是用户对数据库的存取权限,完整性约束条件是对数据进行有效性检验的一系列规则和措施。 ⑤确定数据库的后援支持手段及制订系统出现故障时数据库的恢复策略。 ⑥监视并改善系统的“时空”性能,提高系统的效率。
⑦当系统需要扩充和改造时,负责修改和调整外模式、模式和内模式。 总之,DBA承担创建、监控和维护整个数据库结构的责任。DBA负责维护数据库,但为了保证数据的安全性,数据库的内容对DBA应该是封锁的。例如,DBA知道职工记录类型中含有工资数据项,他可以根据应用的需要将该数据项类型由6位数字扩充到7位数字,但是他不能读取或修改任一职工的工资数据。
1.5 DBMS(Database Management System) 数据库管理系统 DBMS是指数据库系统中对数据进行管理的软件系统,它是数据库的核心组成部分,数据库系统的一切操作,包括查询,更新及各种控制,都是通过DBMS进行的。 主要功能有: 1.数据库定义功能 DBMS提供数据定义语言(data definition language,简称DDL),用户通过它可以方便地对数据库中的数据对象进行定义。
2. 数据操纵功能 DBMS提供数据操纵语言(data manipulation language,简称DML)实现对数据库的操作。基本的数据操作有检索和增加,删除,修改两大类。 3.数据库运行控制功能(通过四方面实现) : 数据安全性(security)保护:安全性指保护数据以防止不合法的使用造成的数据的泄密和破坏。 数据完整性(integrity)检查:完整性指数据的正确性,有效性和相容性。
并发(concurrency)控制:当多个用户的并发进程同时存取,修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏. 数据库恢复(recovery):计算机系统的硬件故障,软件故障,操作员的失误以及故意的破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(也称完整状态或一致状态)的功能,这就是数据库的恢复功能。
5.数据字典(data dictionary, 记为DD)存放着数据库三级结构的描述 4.数据库的维护功能 5.数据字典(data dictionary, 记为DD)存放着数据库三级结构的描述 综上所述:数据库是长期存储在计算机内有组织的大量的共享的数据集合。它可以供各种用户共享,具有较小冗余度和较高的数据独立性。DBMS在数据库建立,运用和维护时对数据库进行统一控制,以保证数据的完整性,安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。 返回