数据库程序设计作者:曾磊学习目的:学会数据库应用技术,对数据进行查询和生成数据报表。学习要求:提高自主学习能力,按时完成作业。有问题及时解决。教学形式:边讲边练。学好Oracle的六条总结1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看懂它们,你就可以跳到2。否则请先学习一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。2、要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:instance(实例)、数据文件、日志文件、参数文件、数据文件与表空间的关系3、2是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深入的了解。4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA,请继续。5、可以根据自己的实际情况,进行有选择的学习,也就是说下面的内没有特别顺序要求。可以选择深入学习ORACLE的管理、备份与恢复、性能调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样可以在实际中成长,学会TROUBLESHOOTING。学好Oracle的六条总结6、当然在学习的过程中,你可以在网站或论坛中与他人进行交流,可以看别人的一些经验文章,也可以自己写一些心得体会。技术进步的本身就是经验的积累和提炼过程。1.1数据库基本知识1.2关系数据库1.3数据库设计基础1.4SQL基本命令1.5Oracle简介1.6启动和关闭Oracle1.7Oracle命令复习数据库基本知识1.1数据库基础知识1.1.1计算机数据管理的发展1.1.2数据模型问题1:实体、实体属性、实体集和实体型的概念?问题2:几种数据模型及数据模型的概念?1.1.1计算机数据管理的发展一、信息、数据和数据处理数据是人们对客观事物观察时记录下来的可鉴别的符号,是用于表示客观事物的未经加工的原始素材,如图形符号、数字、字母等。信息是用某种方式对数据进行加工、解释后的结果,它表示数据的含义,而且能对信息的使用者产生直接的影响。数据处理就是利用计算机对各种形式的数据进行处理。它包括:数据采集、组织整理、控制编码和输入数据,有效地把数据输入到计算机中,由计算机对数据进行一系列存储、加工、计算、分类、检索、传输、输出等操作过程。其目的是从大量的原始数据中提炼出对人们有价值的信息。1.1.1计算机数据管理的发展二、计算机数据管理数据处理的一系列的操作环节,称为数据管理。数据管理是数据处理的中心问题,数据管理则是指对数据进行组织、分类、编码、存储、检索和维护等操作。三、数据管理技术的发展数据管理技术经历了五个阶段:手工管理阶段:数据在程序中文件系统阶段:数据文件数据库系统阶段:数据库分布式数据库系统阶段:网上共享数据面向对象数据库系统:面向对象程序设计早期(46-50年代中期)计算机数据处理方法:程序自带数据。在引用数据时,直接按内存单元地址或外部设备的物理位置加内存单元地址存取。…………应用程序1数据组1应用程序n数据组n特点:数据的物理存储结构和逻辑结构一致,编程者自行设计数据格式,并将数据嵌入程序中。数据与处理它的程序合为一体,多个程序不能共享数据。1.手工处理阶段2.文件系统阶段文件系统管理下的数据文件:若干相关的数据元素组成“记录”,若干记录构成文件。数据文件存放于外存储器上,由文件系统统一管理,通过程序来操纵数据。每个用户都可建立、维护和处理一个或几个文件。文件系统阶段:50-60年代,现在,文件(管理)系统是操作系统的一部分。…...…...应用程序1数据文件1应用程序n数据文件n文件系统优点:数据以文件形式保存,与程序独立,且可多次存取。缺点:数据文件是无结构的数据集合,只能反映客观事物的存在,不能反映各事物间的联系。数据和应用程序互相依赖,数据文件由程序生成,数据存取由程序完成,离开所依赖的程序则失去意义。服务与不同程序的数据文件互相独立,无法实现数据共享。一个应用程序所对应的数据文件不能为另一个程序使用。数据冗余大。应用程序编制较繁烦,缺乏对数据正确性、安全性、保密性的有效控制手段。数据库系统阶段:60年代至今数据库是存储在一起的相关数据的集合。数据库独立于使用它的程序;为多种应用服务;对数据库的修改、检索等均可按公用的可控制方式进行。特点:数据的性质由其依赖的数据模型来决定。数据模型规范了数据库中数据的组织形式,表示了数据之间的联系。有层次模型、网状模型和关系模型等。如果依照关系模型来设计库中数据结构,则为关系数据库。3.数据库系统阶段应用程序1数据库DBMS应用程序n…由数据库管理系统(DBMS)来实现对数据库的定义、管理和操作。DBMS是用户和数据的接口。目前,流行DBMS软件大多采用关系模型。常见DBMS:Oracle,IBMDB2,Informix,Sybase,FoxPro,SQLServer,Access等。数据共享性:数据库中的数据是综合和通用的。一个用户只用部分数据,不同用户可共享,且可按不同方式重叠使用数据。数据冗余度小。数据一致性。具有数据完整性措施。可以采用交互式或程序方式操作。分布式数据库系统阶段:80年代中期开始数据库技术,以及网络和通信技术的发展,使异机、异地间的数据共享成为现实。分布式数据库:数据库和网络、通信系统的结合体。处理的数据分散在各结点上,每个结点的数据由本地DBMS管理,各结点间通过网络实现数据共享;4.分布式数据库系统阶段DDBMS……计算机DBMS1DB1计算机DBMSnDBn数据表对象:字段1字段2………..查询对象:字段1字段2………..报表对象:字段1字段2………..窗体对象数据页对象模块对象宏对象5.面向对象数据库系统阶段数据库技术与面向对象程序设计技术结合产生了面向对象的数据库系统。1.1.2数据模型一、实体描述1.实体客观存在并相互区别的事物称为实体。例如:学生手机等为实际事物。2.实体的属性描述实体的特性称为属性。例如手机分为型号、单价等多个属性。1.1.3数据模型二、实体间联系及种类实体间的联系有3种类型:•一对一联系:学生成绩和学生情况表的关系是一对一联系。•一对多联系:例如教师和学生的联系是一对多联系。•多对多联系:例如学生和课程之间联系是多对多联系。1.1.3数据模型三、数据模型简介数据库中的数据必须有一定的结构,这种结构用数据模型来表示。在数据库领域中,当前最常用的数据模型有四类,它们是:(1)层次模型(HierarchicalModel)(2)网状模型(NetworkModel)(3)关系模型(RelationalModel)结点(记录)是实体,树枝是联系。结点间是一对多联系。特点:有且仅有一个根结点,其记录值与下属结点1:n联系。其它结点与一个父结点、多个子结点相联系。查询、访问从根结点开始,按父子关系依次访问。1.层次数据模型(树形)电话地址校长校名室号处长处名系主任系名系号院主任院名院号室号科长科名职务姓名工号室主任室名室号职称姓名工号班主任班长编号入学分姓名学号任何两个实体间可有任意的基本联系。特别是,任何实体向上可与几个实体相联系;一般地,每一联系都是一对多的联系。若为多对多的联系,常要演变成一对多的联系。2.网状数据模型特点:可有0个或多个结点无双亲允许结点有多个双亲允许结点间有2种以上的联系存取、访问须从指定点出发,按指定路径进行。学生选课的网状模型学分时数课名课号职称性别姓名工号班级性别姓名学号分数课名学号关系模型:以数学理论为基础构造的数据模型,将每个实体集看成二维表(关系)。一个关系定义一个实体集,联系也用关系表示。不同关系间联系还可通过共同属性表现。3.关系数据模型典型RDBMS(关系数据库管理系统):VFP、Oracle、Sybase、DB/2、Informix、Access等。关系S关系P关系SP课程编号课程名称课程类别学分101高数必修6102英语必修5103语文选修3学号姓名性别年龄001张三男20002李四女19003王五男18选课ID学生编号课程编号成绩1001101902001103883002102864003103831.2关系数据库P91.2.1关系数据模型问题1:关系、元组、属性、域、关键字和外部关键字概念?问题2:关系的特点(规则)问题3:实际关系模型1.2.2关系运算数据库系统问题1:传统集合运算(并、差、交)?问题2:专门关系运算(选择、投影、联接和自然联接)l集合运算符:∪(并)、∩(交)、-(差)l专门的关系运算符:σ(选择)、∏(投影)、(连接)、*(自然连接)1.2关系数据库P91.2.1关系数据模型关系模型是用二维表格结构来表示实体以及实体间联系的模型。关系数据模型的最大特点是描述的一致性,即可用表格来表示实体,又可用表格形式来表示和实现实体间的联系。一个表就是一个关系。学号是2个表中的唯一标识,可以将2个表通过关系运算建立关联。学号姓名高数英语计算机0301高红7865900302李军8980950303陈磊9089670304赵娜635270学号姓名政治面目入学总分0301高红团员4670302李军团员4350303陈磊群众4210304赵娜群众409学生成绩表学生情况表1.2关系数据库P9一、关系术语P101.关系一个关系就是一个二维表,每个关系有一个关系名。例如:学生成绩表可以是一个关系,其表名为成绩表。关系的描述称为关系模式,一个关系模式对应一个关系的结构。格式为:表名(字段名1,字段名2,……,字段名n)例如:成绩表(学号,姓名,高数,英语,计算机)2.元组二维表中的每一行称为一条记录,是一个元组。元组对应表中的一条具体记录。3.属性二维表中的列称为属性,每一列有一个属性名,在Oracle中表示为字段名。每个字段的数据类型、宽度等在创建表的结构时规定。4.域域是指属性的取值范围。例如成绩的取值范围为“0-100”,性别的取值范围是“男”或“女”。1.2关系数据库P91.2关系数据库P95.关键字这个值能够唯一地标识一个元组(记录)的属性或属性的组合。例如学号是唯一的,可以作为关键字。6.外部关键字如果表中的一个字段不是本表的只关键字,而是另外一个表的主关键字或候选关键字,这个字段为外关键字。学号姓名高数英语计算机0301高红7865900302李军8980950303陈磊9089670304赵娜635270文件名:学生成绩表元组记录关系关键字属性属性属性属性属性—字段二、关系的特点p10•关系必须规范化,属性不可分割,表中不能包含表•在同一个关系中不能出现相同的属性名•关系中不允许有完全相同的元组,即冗余•同一关系中元组的次序无关紧要•同一关系中属性的次序无关紧要实发工资应扣工资房租水电托儿费应发工资基本工资奖金津贴职称姓名1.2关系数据库P91.2关系数据库P9三、实际关系模型p11一个数据库中包含多个表,这个数据库文件对应一个实际的关系模型,反映各个表的实体之间的联系,要通过各个表中的公共字段名来体现。关系模型中各个关系模式不是孤立的、随意的。1.2关系数据库P91.2.2关系运算一、传统的集合运算P13传统的集合运算:其运算是按元组进行的。(按记录进行的)集合运算有:1.并2.差3.交(1)关系并运算(Union)关系R和关系S的所有元组合并,再删去重复的元组,组成一个新关系,称为R与S的并,记为R∪S。表中R和S的属性个数相同,而且相应属性分别有相同的值域。R与S的并运算结果表所示,它由属于R和S的去掉重复元组后的所有元组组成。学号姓名高数英语计算机0301高红7865900302李军89809503