《精选版Oracle数据库基础及应用第一章》由会员分享,可在线阅读,更多相关《精选版Oracle数据库基础及应用第一章(40页珍藏版)》请在金锄头文库上搜索。
1、SQL语言与Oracle数据库沈阳师范大学科信软件学院1课程说明课程说明课程代码:1630 9800课程总学时(理论学时/实验学时):54(36/18)学分:3课程性质:专业选修课教学目的与要求:本课程通过介绍Oracle数据库基本操作、体系结构与数据库基本管理使学生初步掌握大型数据库的基本原理,了解大型数据库的管理方法,使学生熟练掌握Oracle数据库系统下的SQL语言运用及PL/SQL程序设计。2课程说明课程说明本课程与其它课程关系:数据库原理和一门程序设计语言考核方式 :平时50%+综合实验50%推荐参考教材:Oracle数据库基础及应用,李占波、李妍主编, 清华大学出版社,2013。3
2、第第1章数据库基础概念章数据库基础概念41.1 数据数据库技技术概述概述数据库技术产生于20世纪六七十年代,伴随着计算机技术的产生和发展而发展,是计算机技术在各行各业的数据管理技术的延伸、渗透、发展的产物在计算机技术应用领域,数据库技术也是一门专业性很强的学科,它涉及到操作系统、数据结构、程序设计等多领域的知识5数据数据库基本概念基本概念1. 数据数据数据(data)是描述事物的符号,其类型是多种多样的,如数字、文字、图形、声音等。2. 信息信息 信息(Information)的英文原意为“通知或消息”。信息是客观存在的事物,是通过物质载体所产生的消息、情报等。数据信息加工处理图1-1:数据和
3、信息的关系63. 数据数据库(DB,DataBase)数据库是按一定的数据模型组织、描述和存储在计算机内的、有组织的、可共享的数据集合。4. 数据管理数据管理数据管理是指对数据的收集、整理、组织、存储、维护、计算、检索、传送、加密等操作。数据管理技术的优劣,将直接影响数据处理的效率75.数据库用户数据库的设计、维护、使用必然会涉及到很多人员。可以按这些人员使用数据库的角度,将他们分成几类,每一类都可以由一个或几个人组成,统称为数据库的用户(1) 数据库管理员(DBA)决定数据库中的信息内容和结构;决定数据库的存储结构和存取策略;定义数据的安全性要求和完整性约束条件;监控数据库的使用和运行;数据
4、库的性能改进;定期对数据库进行重组和重构,以提高性能(2) 系统分析员和数据库设计人员系统分析员:负责应用系统的需求分析和规范说明;和用户及DBA结合,确定系统的硬软件配置并参与数据 库系统概要设计 数据库设计人员:负责数据库中数据的确定、数据库各级模式的设计 必须参加用户需求调查和系统分析,然后进行数据库设计(3) 应用程序员按照DBA、系统分析员撰写的用户需要分析,负责设计应用程序的结构,并利用程序设计语言、开发工具来编写、调试、维护嵌入了SAL语言的数据库应用程序。(4) 用户指最终使用数据库应用程序的人员,如超市收银员、火车售票员等。他们一般不直接使用DBMS,而是通过运行由应用程序员
5、精心设计并具有友好界面的应用程序来查询、更新数据库中的数据。86. 数据数据库管理系管理系统(DBMS,DataBase Management System)DBMS是位于操作系统与用户(应用软件)之间的一组数据管理软件,它提供了对数据库中的数据进行统一管理和控制的功能,包括存储管理、安全性管理、完整性管理、数据备份和恢复功能等,它使用户可以方便快速地建立、维护、检索、存取和处理数据库中的数据,它是数据库系统的核心。用户对数据库提出的访问请求都是由DBMS来处理的。在DBMS中还提供了许多对数据库进行操作的实用程序。9数据库数据库操作系统DBMS应用程序1应用程序m 用户1用户2 用户n应用程
6、序员DBA负责图1-2:DBMS、数据库以及用户之间的关系10数据库基本功能数据定数据定义语言(言(DDL,Data Definition Language)用于描述数据库的结构(如表、索引、约束等),以便存储数据数据操作数据操作语言(言(DML,Data Manipulation Language)用于对数据库中的数据进行操作(如查询、添加、删除、更新等)。数据控制数据控制语言(言(DCL, Data Control Language)用于规定用户对数据库的操作权限,监控用户的操作、防范不轨意图、提供事务处理功能保证数据库中数据的一致性,执行数据库的备份、恢复、转储、加密功能。性能和效率低性
7、能和效率低监控与控与优化化通过提供一些工具软件,对数据库的性能和效率进行监控,给出进行优化的方案以供参考。117. 数据数据库系系统 数据库系统是应用数据库技术进行数据管理的计算机系统,它由计算机硬件系统、软件系统、数据和用户组成,其中软件系统包括操作系统、数据库管理系统和应用程序系统,属于应用平台。12数据管理的数据管理的发展展阶段段早期的计算机主要用于科学计算,当它在面对的是数量惊人的各种数据。为了有效地管理和利用这些数据,就产生了计算机的数据处理技术,经历了三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段。13人工管理阶段20世纪50年代中期以前,计算机的数据处理技术采用的是人工处理
8、技术,主要特点是:数据不保存数据不保存应用程序管理数据用程序管理数据数据不具有共享性数据不具有共享性数据不具有独立性数据不具有独立性应用程序1应用程序2应用程序n数据1数据2数据n图1-3:人工管理阶段应用程序与数据之间的关系14文件系统阶段20世纪50年代中期到60年代后期进入了文件系统阶段,主要特点为:数据可以数据可以长期保存期保存有文件系有文件系统管理数据管理数据数据共享性差数据共享性差数据独立性数据独立性应用程序1应用程序2应用程序n数据1数据2数据n存取方法操作系统负责图1-4:文件系统阶段应用程序与数据之间的关系15数据数据库管理管理阶段段20世纪60年代后期以后至今,为了克服文件
9、系统的缺点,人们对文件系统进行了扩充,进入了数据库管理阶段数据数据结构化构化数据存取灵活数据存取灵活数据共享性高、冗余度低数据共享性高、冗余度低数据安全可靠数据安全可靠数据独立性高数据独立性高应用程序1应用程序2应用程序nDBMS数据库图1-5:数据库系统管理阶段应用程序与数据之间的关系16数据数据库系系统的三的三级模式模式结构及二构及二级映像映像从数据库管理系统的角度看,数据库通常采用模式、外模式、内模式三级结构:模式:又称逻辑模式。是对数据库中全部数据的整体逻辑结构的描述,由若干个概念记录类型组成。即DB中全体数据的逻辑结构和特征的描述。外模式:又称子模式或用户模式。它是用户与数据库的接口
10、,是用户用到的那部分数据的描述,它由若干个外部记录类型组成。内模式:又称存储模式。它是数据库在物理存储方面的描述,定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。即DB中数据的内部表示方式。17数据数据库系系统的三的三级模式模式结构及二构及二级映像映像为了能够在内部实现数据库三级模式之间的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式模式映像:定义该外模式与模式之间的对应关系。作用是当模式发生变化时,可通过修改映像使外模式保持不变,从而使应用程序不必修改,保证了程序和数据的逻辑独立性。模式内模式映像:定义DB全局逻辑结构和存储结构之间的对应关系。作用是当
11、存储结构发生变化时,可修改映像逻辑结构保持不变,从而使应用程序不必修改,保证了数据与程序的物理独立性。18数据库模式/内模式映像外模式/模式映像B外模式/模式映像ADBMSOS由数据库管理员建立和维护图1-6:数据库的三级体系结构191.2 关系数据关系数据库关系数据库是建立在关系模型基础上的数据库,它由一些相关的表和其他数据库对象组成。关系数据模型是关系数据库的基础。它由数据库结构、关系运算、完整性约束条件三部分组成。创建和使用关系数据库的主要工具是语言。这个定义包含几层含义:建立在关系模型基础上。建立在关系模型基础上。信息被存放在表(二维表)中。信息被存放在表(二维表)中。表之间是相互关联
12、的。表之间是相互关联的。除了表之外,还有其他数据库对象,如索除了表之外,还有其他数据库对象,如索引、视图、存储过程等。引、视图、存储过程等。20现实世界现实世界信息世界信息世界机器世界机器世界=抽象抽象转换转换建立概念模型便于用户和DB设计人员交流建立数据模型便于机器实现图1-7:信息的三个世界及其关系为了用计算机来处理现实世界的事物,首先需要把它们反映到人的大脑中来,即首先需要把这些事务抽象为一种既不依赖于某一具体的计算机,又不受某一具体D所左右的信息世界的概念模型,然后再把该概念模型转换为某一具体所支持的计算机世界的数据模型。21概念模型概念模型概念模型是在信息世界中为研究“过程和关系”所
13、建立的较为抽象的模型,它是一种不依赖于计算机软件、硬件的具体实现的一种模型。在信息世界中,常使用实体-联系方法(Entity-Relationship Approach,简称E-R方法)来研究和描述逻辑模型22E-R方法包含如下三个要素:实体:客观存在并且可以相互区别的“事物”称为实体。用矩形表示属性:描述实体的“特征”称为该实体的属性。用椭圆表示联系:实体之间的联系。用菱形表示联系有三种类型:一对一(1:1)类型一对多(1:m)类型多对多(m:n)类型。关系模型关系模型23关系模型关系模型关系模型是在概念模型的基础上所建立的适用于具体数据库实现的一种数据模型。关系模型是目前最重要的一种数据模
14、型。它是实体、属性、关系在数据库中的具体体现。为了将概念模型转换为关系模型,需要将实体映射为数据库表,将属性映射为数据序列,将关系映射为表的主键或外键。24关系模型包含以下特点和术语:1. 1. 数据数据结构构数据结构是研究存储在数据库中的对象类型的集合,这些对象类型是数据库的组成部分。在关系模型中,无论是实体还是关系都是由二维表表示的。二维表由行和列组成,一行表示该实体的一个实例,一列表示该实体的一个属性。25关系模型包含以下特点和术语:2. 2. 数据操作数据操作数据操作是指对数据库中各种对象的实例允许执行的操作的集合,包括操作和有关操作规则。关系模型中的数据操作主要是插入、删除、修改、查
15、询数据。这些操作必须满足关系的完整性约束条件。3. 关系完整性约束4. 关系应满足的条件26关系模型包含以下特点和术语:3. 3. 关系完整性关系完整性约束束数据的约束条件是完整性规则的集合,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。数据模型中的数据及其联系都要遵循完整性规则的制约。例如,主键不为空,每月最多有31天等等。4. 关系应满足的条件27关系模型包含以下特点和术语:4. 4. 关系关系应满足的条件足的条件二维表中每一列都是类型相同的数据;列不可重名;列的顺序可以任意安排;行的顺序可以任意安排;表中任意两行不能完全相同,即没有重复行;表中的列不包含其
16、他数据项,即不允许表中表。28数据数据库功能功能关系数据库主要包括如下功能:1.数据定数据定义数据定义构成数据库的三级模式、两级映像;定义数据的完整性、安全性等约束规则;定义为了保证数据库操作权限的用户口令和存取权限等。2.数据操数据操纵数据操纵实现对数据库中数据的操纵。基本操作是检索(查询)、更新(插入、删除、修改)。29数据数据库功能功能关系数据库主要包括如下功能:3.数据数据库的运行管理的运行管理安全性控制:防止未经授权的用户蓄意、无意地存取数据库中的数据,以免数据的泄露、更改、破坏。完整性约束:保证数据库中的数据及语义的正确性、有效性,以免数据库中的数据之间的关系被破坏。并发控制:能够
17、正确处理多用户、多任务环境下的操作。数据库的恢复:当数据库被破坏或数据不正确时,系统有能力把数据库恢复到正确的状态。30数据数据库功能功能关系数据库主要包括如下功能:4.数据数据库的存的存储管理管理数据库中需要存放两大类数据:应用数据和描述数据。数据库应用分门别类地组织、存储、管理这些数据,确定以何种文件结构、存取方式来物理地组织这些数据,以便提高存储空间的利用率、操作的时间效率等。31数据数据库功能功能关系数据库主要包括如下功能:5.数据数据库接口接口数据库需要提供与其他软件系统进行交互、通信、操作的接口,以便提供其开放性,否则ODBC(开放数据库连接)就无法实现。321.3 关系数据关系数
18、据库的范式理的范式理论在关系数据库中,为了保证构造的表(关系)既能准确地反应现实世界,又有利于应用和具体操作,还需要对构造的表进行规范化,常用的规范化方法就是对关系应用不同的设计范式。范式就是在关系数据库中构造数据库时必须遵循一定的规则。目前关系数据库有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、BCNF和第五范式(5NF)。满足最低要求的范式是第一范式(1NF)。一般说来,数据库只需满足第三范式(3NF)就足够了。33第一范式(第一范式(1NF)所谓第一范式(1NF)是指数据库表中的每一列都是不可分割的基本数据项,同一列中不能有多个值;即实体的某
19、个属性不能具有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体有重复的属性构成,新实体与原实体之间为一对多的关系。经过第一范式(1NF)后,数据库表中的字段都是单一的、不可再分的。34表1-1:学生选课信息表表1-2:学生信息表35第二范式(第二范式(2NF)第二范式(2NF)是在第一范式(1NF)的基础上建立起来的。第二范式(2NF)要求数据表中的每个实体或者各个行必须可以被唯一的区分。第二范式(2NF)要求实体属性完全依赖于主关键字,即不能存在仅依赖主关键字一部分的属性。36表1-1:学生选课信息表组合关键字存在问题:插入异常、删除异常、修改复杂修改成三
20、个表:SD(学号,姓名,系名,系主任)Course(课程号,课程名称)SC(学号,课程号,成绩)37第三范式(第三范式(3NF)满足第三范式(3NF)必须先满足第二范式(2NF)。第三范式要求关系表不存在非关键字列对任一候选关键字列的传递函数依赖。简而言之,第三范式要求一个关系表中不包含已在其他表中已包含的非主关键字信息。38假定学生关系表SD(学号,姓名,系名,系主任),该关系表的关键字为单一关键字“学号”,因此存在如下决定关系:(学号)-(姓名,系名,系主任)这个关系表是符合2NF的,但是它不符合3NF,因为存在决定关系:(学号)-(系)-(系主任)即存在非关键字“系主任”对关键字段“学号”的传递函数依赖。修改成两个表:Student(学号,姓名,系名,)Department(系名,系主任)391.4 常常见的关系数据的关系数据库Oracle数据数据库Microsoft SQL ServerSybaseDB240