Download presentation
Presentation is loading. Please wait.
1
数据库原理与应用
2
课程简介 数据库的应用非常广泛:所有的信息系统和大型软件都离不开数据库。例如:图书馆管理系统;工资管理系统。很多的硬件设备都带有软件系统,也离不开数据库(参数配置、告警等)。 针对职业定位来决定数据库课程的内容选取:数据库管理与应用。 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的版本。
3
课程简介 职业技能目标:能安装配置数据库,建立维护数据库,运用数据库。 考核方式:采取平时实训考试与期末开卷上机考试相互结合的形式进行考核。
总评成绩=平时成绩(考勤、课堂表现、作业)*20%+实训成绩*40%+期末考试成绩*40%。
4
建议参考书 SQL Server 2000系统管理实录,赵松涛 吴维元 编著,电子工业出版社,2005年12月第1版。
5
第1章 关系数据库基础 第2章 SQL Server 2000安装与配置 第3章 SQL Server 2000数据库的建立与管理 第4章 SQL Server 2000表的建立与管理 第5章 索引与视图的建立与管理 第6章 Transact-SQL使用基础 第7章 Transact-SQL编程 第8章 Transact-SQL事务编程 第9章 SQL Server 2000数据库管理与维护 第10章 SQL Server 2000应用开发基础与实例
6
第1章 关系数据库基础 关系数据库是当今数据库产品的主流 1.1基本概念 1.2数据库系统的体系结构 1.3关系数据库系统的基本概念
1.4关系代数 1.5数据库设计 1.6关系规范化的基本思想
7
1.1 基本概念 1.1.1 数据(Data) 数据(数据库中存储的基本单位)是描述现实世界中事物的符号记录,是指用物理符号记录下来的可以鉴别的信息。而物理符号包括:数字、文字、图形、图像声音及其他特殊符号。数据的多种表现形式,都可以经过数字化后存入计算机对象。 信息是人们消化理解了的数据。
8
数据库(DataBase,简记为DB) 数据库是长期存储在计算机内、有组织的、可共享的数据集合。 存放数据的仓库,并且有组织有管理。
9
(DataBase Management System,简记为DBMS) 数据库管理系统是位于用户与操作系统之间的一个计算机系
1.1.3 数据库管理系统 (DataBase Management System,简记为DBMS) 数据库管理系统是位于用户与操作系统之间的一个计算机系 统软件,它的基本功能包括以下几个方面: 数据定义功能 方便地对数据库中的数据对象进行定义。 数据操纵功能 实现对数据的基本操作。如查询、插入、删除和修改。 数据库的运行管理功能 数据库在建立、运行和维护时由数据库管理系统统一管理和控制,以保证数据的安全性、完整性,对并发操作的控制以及发生故障后的系统恢复等。 数据库的建立和维护功能 它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。 目前流行的有:Oracle、Sybase、SQL Server、Access等。
10
1.1.4数据库系统(DataBase System,简记为DBS)
包括和数据库有关的整个系统:计算机硬件、 操作系统、数据库管理系统以及在它支持下建立起来的数据库、应用程序、用户和维护人员等。 有时也将人以外与数据库有关的硬件和软件系统称为数据库系统。
11
1.1.5 数据管理技术的发展 数据库(Database)起源于20世纪50年代,当时是美国为了战争的需要,把各种情报集中到一起,存储在计算机里,称为Information Base或Database。 20世纪70年代是数据库蓬勃发展时代,网状系统和层次系统占据了整个数据库的商用市场。 20世纪80年代,关系数据库逐渐取代网状系统和层次系统占据了市场。 20世纪90年代,关系数据库成为数据库技术的主流。
12
伴随着计算机硬件、软件技术的发展以及计算机应用的不断扩充,计算机进行数据处理也经历了从低级到高级的4个发展阶段。
人工管理阶段(50年代中期以前) 文件系统阶段(50年代后期—60年代中期) 数据库系统阶段(60年代后期开始) 分布式数据库管理阶段(80年代中期开始)
13
1. 人工管理阶段 背景(50年代中期以前) 计算机主要用于科学计算:数据量小、结构简单,如高阶方程、曲线拟和等;
外存为顺序存取设备:数据不保存在计算机内部,而是存储在磁带、卡片、纸带,没有磁盘等直接存取设备; 没有专用数据管理软件:用户用机器指令编码,通过纸带机输入程序和数据,程序运行完毕后,由用户取走纸带和运算结果,再让下一用户上机操作; 数据是面向程序的:每一组数据对应一个程序,两个程序之间不能共享数据。
14
人工管理阶段中程序与数据之间的关系 应用程序1 数据集1 应用程序2 数据集2 应用程序n 数据集n ...…
15
2. 文件系统阶段 在这一阶段,数据不再是程序的组成部分,而是按照一定的规则把成批数据组织在数据文件中,存放于外存储器上,并可为每个文件取一个名字。在程序中通过文件名把文件调入内存而使用其中的数据。 到了20世纪60年代中期,出现了磁带、磁盘等大容量的外存储器和操作系统,便可利用操作系统中的文件管理功能来进行数据处理了。
16
文件系统阶段中程序与数据之间的关系 应用程序1 数据文件1 应用程序2 数据文件2 应用程序n 数据文件n 存取方法 ...…
17
3.数据库系统阶段 20世纪60年代后期,数据处理的规模急剧增长。同时,计算机系统中采用了大容量的磁盘(数百MB以上)系统,使联机存储大量数据成为可能。为了解决数据的独立性问题,实现数据的统一管理,达到数据共享的目的,数据库技术得到了极大的发展。 所有程序中的数据由数据库管理系统(database management system,DBMS)统一管理,应用程序和数据完全独立,数据得到高度共享。
18
数据库系统阶段中程序与数据之间的关系 DBMS 应用程序1 应用程序2 数据库 …
19
数据库系统阶段的特点 数据的管理者:DBMS 数据面向的对象:现实世界 数据的共享程度:共享性高
数据的独立性:高度的物理独立性和一定的逻辑独立性 数据的结构化:整体结构化 数据控制能力:由DBMS统一管理和控制
20
从第1阶段到第3阶段 数据与程序之间关系的演变
应用程序1 应用程序2 应用程序n 数据1 数据2 数据n 数据库 物理文件1 物理文件2 物理文件n 文件 系统 数据库 管理系统 + OS 数据库系统阶段 文件系统阶段 人工管理阶段
21
4 分布式数据库系统阶段 分布式数据库系统是数据库技术与计算机网络技术相结合的产物,在20世纪80年代中期已有商品化产品问世。分布式数据库系统是一个逻辑上统一、地域上分布的数据集合,是计算机网络环境中各个局部数据库的逻辑集合,同时受分布式数据库管理系统的控制和管理。 分布式数据库系统适合于那些各部门在地理上分散的组织机构的事务处理,如银行业务、飞机订票等。
22
第一节结束。
23
1.2 数据库系统的体系结构 站在不同的角度或不同层次上看数据库系统的体系结构会有所不同。
1.2 数据库系统的体系结构 站在不同的角度或不同层次上看数据库系统的体系结构会有所不同。 站在最终用户的角度看,数据库系统体系结构分为集中式、分布式、C/S(客户/服务器)和并行结构。 站在数据库管理系统的角度看,数据库系统体系结构一般采用三级模式结构:外模式、模式和内模式。
24
集中式数据库体系结构:将DBMS软件、所有用户数据和应用程序放在一台计算机(作为服务器)上,其余计算机作为终端通过通信线路向服务器发出数据库应用请求,这种网络数据库应用系统称为集中式数据库体系结构。
25
客户/服务器(C/S)体系结构:这是在客户/服务器计算机网络上运行的数据库系统,这个计算机网络中,有一些计算机称为客户,另一些计算机称为服务器(即客户机/服务器)。客户/服务体系结构的关键在于功能的分布,一些功能放在客户机(前端机)上运行,另一些功能则放在服务器(后端机)上执行。
26
分布式数据库体系结构:将分散存储在计算机网络中的多个节点上的数据库在逻辑上统一管理。它是建立在数据库技术与网络技术发展的基础之上的。最初的数据库一般是集中管理的,随着网络的扩大,增加了网络的负荷,对数据库的管理也困难了,分布式数据库则可克服这些缺点,分布式数据库可供地理位置分散的用户共享彼此的数据资源。
27
并行结构数据库体系结构:并行数据库要求尽可能并行执行所有数据库操作从而在整体上提高数据库系统性能。是多个物理上连在一起的CPU(而分布式系统是多个地理上分开的CPU),根据承担数据库服务责任划分它们自身的数据,通过划分的任务以及通过每秒兆位级的高速网络通信共同完成事务查询。
28
三级模式 (1)外模式又称为子模式,是用户与数据库的接口,是应用程序可见的数据描述。
(2)模式分为概念模式和逻辑模式,是由数据库设计者综合所有用户数据,按照统一的观点构造的全局逻辑结构。 (3)内模式又称为物理模式或存储模式,它描述数据在存储介质上的安排与存储方式。
29
三级模式之间的联系:二级映射 映射用来指定映射双方进行数据转换的规则,实际的转换工作由DBMS来完成。
外模式/模式映射:表达了外模式与模式之间的对应关系; 模式/内模式映射:表达了模式与内模式之间的对应关系。
30
外模式A DBMS 外模式 / 模式映射 模式 / 内模式映射 内 模 式
应用程序 应用程序 应用程序 外模式B 外模式A DBMS 外模式 / 模式映射 模式 模式 / 内模式映射 内 模 式
31
三级模式、两级映射的作用? 高度的数据独立性!
32
第二节结束。
33
作业:小组论述 主题:数据库技术的应用 时间:第三周
分组:7-8人一组,分为6组,自愿组合,每组选出一个组长,班干部协调和登记,论述前提交名单。 方式:各小组在本周查找资料,制作PPT,上课时,组长上台讲10分钟,5分钟其它同学提问,本小组所有成员都可回答。 评分:每组提交一份排序表,排出第一名到第五名,最后按平均成绩排出最后顺序,排序结果决定小组成员本次作业的成绩。 对应分数:第一名:95;第二名:85分;第三名:80;第四名:75分;第五名70分;
34
1.3 关系数据库系统基本概念 1970年美国IBM公司的Ted Codd发表了一篇著名的论文,文中首次提出了关系数据库的概念。此前出现过层次数据库系统和网状数据库系统,但现在均已很少使用,关系数据库早已占据了主导地位,以其简易性简化了大量的编程工作。 我们使用的SQL Server是关系型的数据库系统,其理论基础是关系代数。 这节我们主要介绍关系的基本概念、关系模型、关系运算等方面的内容。
35
关 系 所谓关系,就是一张二维表。表的各列以属性开始,属性是列的入口。属性下面的每一行称为元组。 属性 龄 元组(记录)
36
关键字(主码或主键) 关系中能唯一标识每个元组的最少属性或属性组称之为关键字或主码。 上页的关系中,哪些属性适合作为关键字?
例如“学生”关系中的属性“学号”就是关键字,只要学号确定了,就能知道这个学号对应的姓名、性别和年龄等信息,但学生关系中的“性别”和“年龄”不能作为关键字,因为即使年龄或性别确定了,还是不能确定学生的姓名和学号等信息,同性别或者同年龄的学生太多了。当然如果这个关系中没有同姓名的学生,则姓名也可以作为关键字看待,这要根据具体的语义来决定。 当有多个可选的关键字(称之为候选关键字)时,可由关系的设计者或使用者指定其中之一为主关键字。
37
关系的特点 关系中的每一个属性值都必须是不能再分的元素。例如学生的“姓名”不能再细分为“姓”和“名”两个属性值,必须把其作为一个整体来看待。
每一列中的数值是同类型的数据。例如学生的年龄列为整数值等。 不同的列应该给予不同的属性名。同一个关系中的两个列即使其取值范围相同也必须有不同的属性名,以便区分其不同意义。 同一关系中不允许有相同的元组。如果有相同的元组也只保留一个。 关系是行或列的集合,所以行、列的次序可以任意交换,不影响关系的实际意义。
38
关系模式 关系名称和关系的属性名集称为该关系的模式,其记法为:
<关系名>(<属性名1>,<属性名2>,…,<属性名n>), 例如:教材表1-1所示的学生关系对应的关系模式为: 学生(学号,姓名,性别,年龄) 一个数据库中往往包含多个关系,一个数据库中这些关系模式的集合称之为“数据库模式”。数据库设计的主要任务是确定其中需要多少个关系,每个关系有多少个属性,属性的名称和数据类型等内容,也就是设计好每个关系的模式。
39
外关键字 在同一个数据库中某个关系R1中的属性或属性组若在另一个关系R2中作为主码使用,则该属性或属性组为R1的外关键字或外码。在同一个数据库中的关系往往是通过外关键字而相互关联的。 学生(学号,姓名,性别,年龄) 课程(课程号,课程名,学分) 成绩(学号,课程号,成绩) “学号”是“成绩”关系中的外关键字; “课程号”也是“成绩”关系中的外关键字。
40
关系模型 为了用计算机处理现实世界中的具体问题,往往要对复杂的事务进行高度概括和抽象,以便提取事务的主要特征,形成一个清晰且好理解的模型,这就是所说的“建模”。 数据模型就是对客观事物抽象化的表现形式,具有三大特点:1、它必须真实地反映现实世界中的具体应用,否则就失去了意义;2、要便于理解,使用者与设计者要取得一致的看法;3、应该便于使用计算机来实现和处理。 数据模型通常由数据结构、数据操作和完整性约束三要素组成。分别表示系统的静态特性、动态特性和数据库的正确性、相容性和有效性。
41
传统的数据模型有层次、网状和关系。但层次和网状数据模型已很少使用,关系数据库占据了主导地位。近年以来,对象模型也得到了一些应用。
数据以“关系”的形式表示,也就是二维表的形式表示,其数据模型就是我们所说的关系模型。在关系模型中,数据及数据之间的联系均用关系来表达,并且对关系进行各种处理之后得到的还是关系。
42
关系模型建立数据库系统具有的特点 (1)组织数据的结构单一:二维表 (2)采用集合运算:关系是元组的集合 (3)数据完全独立:程序与数据独立
(4)数学理论支持:集合论、数理逻辑
43
关系数据库系统 关系数据库系统就是以关系模型为基础的数据库系统。由于关系模型有严格的数学基础,而且便于人们理解和使用,因此关系数据库系统自七十年代末推出以来,得到了广泛的应用,并迅速占据了数据库系统的主流位置。 近年来各大公司推出的关系数据库产品主要有:Microsoft公司的ACCESS、SQL Server 2000、ORACLE公司的Oracle、IBM公司的DB2、Sybase 公司是Sybase等。
44
1.4 关系代数 关系代数是过程化的查询语言,所谓过程化语言就是需要用户指导系统对数据库执行一系列操作从而计算得到所需要的结果。关系代数是一系列运算的集合,这些运算都是以一个或两个关系为输入,产生一个新的关系作为结果。 关系代数的运算分为两大类,第一类是传统的集合运算(并、交、差),另一类是专门的关系运算(选择、投影、连接等)。
45
关系运算 从集合论的观点来定义关系:每个关系(表)是一个具有K个属性(字段)的元组(记录)集合。 关系的基本运算分为两大类:
1、传统的集合运算(并、交、差) 2、专门的关系运算(选择、投影、联接等)
46
传统的集合运算 设P1和P2为参加运算的两个关系,它们具有相同的属性集,则可定义以下三种传统的集合运算。
并运算: P1∪P2,表示关系P1与关系P2的并,结果中的元组或者属于P1或者属于P2。 差运算: P1一P2,表示关系P1与关系P2的差,结果中的元组属于P1但不属于P2。 交运算: P1∩P2,表示关系P1与关系P2的交,结果中的元组既属于P1又属于P2。
47
R1 R2 A B C a1 b1 c1 b2 c2 a2 A B C a1 b2 c2 b3 a2 c1
A B C a1 b1 c1 b2 c2 a2 A B C a1 b2 c2 b3 a2 c1 R1∪R R1–R R1∩R2 A B C a1 b2 c2 a2 c1 A B C a1 b1 c1 b2 c2 a2 b3 A B C a1 b1 c1
48
专门的关系运算 专门的关系运算我们主要介绍三类:选择、投影和连接(笛卡尔积、等值连接和自然连接)。
选择:从关系中找出满足条件的元组的运算,其运算符号为“ ”。 投影:从关系中选取若干属性的运算,其运算符号为“π”。 连接:从两个关系的广义笛卡儿积中选取满足条件的元组的运算,其运算符号“ ”
49
选择(Selection)运算“ ” 选择的运算符号为“ ”; 选择时需要说明是从哪个关系(表)中进行选择,需给出关系名;
选择的运算符号为“ ”; 选择时需要说明是从哪个关系(表)中进行选择,需给出关系名; 选择时需要说明选择的条件,如年龄>19或成绩<60等;复合条件使用AND、OR、NOT等符号连接。 选择运算的一般表示: 条件(关系名)
50
选择运算是从关系中行的角度进行的运算
51
选择运算实例 条件(关系名) Sdept=‘IS’(Student)
Sno Sname Ssex Sage Sdept 95001 李勇 男 20 CS 95002 刘晨 女 19 IS 95003 王敏 18 MA 95004 张立 Sno Sname Ssex Sage Sdept 95002 刘晨 女 19 IS 95004 张立 男 条件(关系名) Sdept=‘IS’(Student) 设有一个学生关系Student如上所示,要求找出信息(IS)系的全部学生。
52
查询年龄小于20岁的女学生: 条件(关系名) Sage<20 AND Ssex=‘女’(Student)
53
投影运算“π” 从原关系中选择出若干属性列组成新的关系。投影的运算符号为“π”; 投影时需要说明是从哪个关系(表)中进行投影,给出关系名;
投影时需要说明要投影的列(属性)名,多个列之间用逗号分开。 投影运算的一般表示: π列名集(关系名)
54
投影操作主要是从列的角度进行运算 注意:但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(重复行) π
55
投影运算实例 在前面学生关系中查询学生的姓名及所在系。 结果如右图所示 πSname,Sdept(Student) Sname Sdept
李勇 CS 刘晨 IS 王敏 MA 张立
56
查询学生关系Student中都有哪些系 πSdept(Student) 结果如右表所示, 注意:少了一行! Sdept CS IS MA
57
笛卡尔积 把两个关系的元组以所有可能的方式组合起来,其运算符号为“×”。两个关系A和B的笛卡尔积记为“A×B”
A×B的元组是A的一个元组和B的一个元组串联而成的长元组,因此, A×B的元组数是A的元组数和B的元组数的乘积。
58
笛卡尔积实例 设有关系D1和D2, 则笛卡儿积 D1×D2=? D1×D2= { (李明,20), (李明,21), (李明,19),
{ (李明,20), (李明,21), (李明,19), (刘滔,20), (刘滔,21), (刘滔,19), (吴双,20), (吴双,21), (吴双,19)} D1×D2 李明,20 D2 20 21 19 D1 李明 刘滔 吴双 李明,21 李明,19 刘滔,20 刘滔,21 刘滔,19 吴双,20 吴双,21 吴双,19
59
连接运算 连接运算是从两个关系的笛卡儿积中选取满足条件的元组形成新的关系,表示为:R (F) S
其中R和S是要连接的两个关系的名称,F是两关系中元组连接的条件表达式,其值为真时连接,否则不连接。 两种特殊的连接:等值连接与自然连接。如果F仅仅是比较两个关系中两个属性的值相等这样的条件,我们称这样的连接为等值连接;如果两关系中有相同的属性并且连接时比较相同属性的值相等即连接,且去掉重复的属性,则这种连接称之为自然连接,记为: R S
60
而自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
一般的连接操作是从行的角度进行运算。 而自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 R S
61
连接运算举例 S R B E b1 3 b2 7 b3 10 2 b5 A B C a1 b1 5 b2 6 a2 b3 8 b4 12
62
连接运算R C<ES A R.B C S.B E a1 b1 5 b2 7 b3 10 6 a2 8
63
等值连接:R R.B=S.BS A R.B C S.B E a1 b1 5 3 b2 6 7 a2 b3 8 10 2
64
自然连接 R S A B C E a1 b1 5 3 b2 6 7 a2 b3 8 10 2
65
关系代数运算综合实例 学 号 课 程 号 成 绩 Sno Cno Grade 95001 1 92 2 85 3 88 95002 90
Course Cno Cname Cpno Ccredit 1 数据库 5 4 2 数学 3 信息系统 操作系统 6 数据结构 7 数据处理 PASCAL语言 先行课 学分 SC 学 号 课 程 号 成 绩 Sno Cno Grade 95001 1 92 2 85 3 88 95002 90 80 Sno Sname Ssex Sage Sdept 95001 李勇 男 20 CS 95002 刘晨 女 19 IS 95003 王敏 18 MA 95004 张立 Student
66
πSno(σCno=‘2’(SC)) 查询选修了2号课程的学生的学号
进行综合运算时,要弄清楚需要对哪些关系进行什么样的运算,注意尽量先做选择运算,然后再自然连接,最后进行投影运算。
67
查询至少选修了一门其直接先行课为5号课程的课程的学生姓名。
πSname(σCpno='5'(Course SC Student)) 或 πSname(σCpno='5'(Course) SC πSno,Sname(Student)) πSname (πSno (σCpno='5' (Course) SC) πSno,Sname (Student))
68
查询出姓名(Sname)为lhy的学生的学生号、所选课程的每门课程号及相应成绩
πSno,Cno,Grade(σsname=‘lhp'(SC Student)) 或 πSno,Sno,Grade(σsname=‘lhp'(πSno,Sname,Cno,Grade (SC Student))) πSno,Sno,Grade(σsname=‘lhp'(πSno,Sname(Student) SC))
69
作业 P20 第一章课后题:1,4。
Similar presentations