《数据库原理与应用ppt课件完整版》由会员分享,可在线阅读,更多相关《数据库原理与应用ppt课件完整版(212页珍藏版)》请在金锄头文库上搜索。
1、数据库原理与应用数据库原理与应用主编:第一章第一章 数据库应用基础数据库应用基础 学籍管理系统案例分析学习目标:学习目标:了解数据库系统的基础知识能根据用户要求实施系统需求分析能根据系统需求分析搭建关系模型积累职业素质培养团队合作精神和语言表达能力任务的提出任务的提出 新学期开始了,学生晓灵被班主任良老师叫到了办公室。良老师说:“晓灵呀!咱们班的同学学习计算机知识有一段时间了。你作为咱们班的班长能不能利用所学到的计算机知识开发一个软件来管理咱们班的学生信息。这样一来,你既提高了专业知识水平和解决实际问题的能力,也更好地管理这咱们班,为同学提供更好地服务!如果这个软件做得好,我们还可以推广到整个
2、年级、整个系乃至整个学院。”晓灵说:“做这个软件非常有意义,我非常愿意做这釿事。但就凭我目前所掌握的那点计算机知识来做这件事难度很大。”需考虑的问题需考虑的问题要想实现这样的一个系统,你首先应该考虑好以下几个问题:第一,要确定这个系统的使用者,及其操作计算机的水平、能力和素质。第二,要确定系统的用户对系统功能要求并且这些功能是否允许分期实现,从而确定系统的边界。第三,确定系统的使用环境和运行环境。如系统是运行在单机上还是运行在网络中?系统可能在哪些操作系统上运行?第四,系统用户对系统的性能、稳定性有哪些要求?” 1.2 数据库系统概述 l1.数据库系统的概念:数据、数据库、数据库管理系统、数据
3、库系统 l2.数据库系统的发展相关知识点相关知识点1.2.1 1.2.1 数据库系统的概念数据库系统的概念 1 1数据数据(DATA)(DATA)数数据据是是指指存存储储在在某某一一种种媒媒体体上上能能够够识识别别的的物物理理符符号号。数数据据的的概概念念包包括括两两个个方方面面:其其一一是是描描述述事事物物特特性性的的数数据据内容;其二是存储在某一种媒体上的数据形式。内容;其二是存储在某一种媒体上的数据形式。 2 2数据库数据库(Data(DataBaseBase,简称,简称DB) DB) 数数据据库库指指长长期期存存储储在在计计算算机机内内有有组组织织的的、可可共共享享的的数数据据集集合合
4、。数数据据库库中中的的数数据据按按一一定定的的数数据据模模型型组组织织、描描述述和和存存储储,具具有有较较小小的的冗冗余余度度,较较高高的的数数据据独独立立性性和和易易扩展性,并可为各种用户共享。扩展性,并可为各种用户共享。 3 3数据处理数据处理 数数据据处处理理是是指指对对各各种种形形式式的的数数据据进进行行收收集集、存存储储、加加工工和和传传播播的的一一系系列列活活动动的的总总和和。其其目目的的之之一一是是从从大大量量的的、原原始始的的数数据据中中抽抽取取、推推导导出出对对人人们们有有价价值值的的信信息息以以作作为为行行动动和和决决策策的的依依据据;目目的的之之二二是是为为了了借借助助计
5、计算算机机技技术术科科学学地地保保存存和和管管理理复复杂杂的的、大大量量的的数数据据,以以便便人人们们能能够方便而充分地利用这些宝贵的信息资源够方便而充分地利用这些宝贵的信息资源 4 4数据库技术数据库技术 数数据据库库技技术术是是研研究究数数据据库库结结构构、存存储储、设设计计、管管理理和和使使用用的的一一门门软软件件科科学学。数数据据库库技技术术是是使使数数据据能能按按一一定定格格式式组组织织、描描述述和和存存储储,且且具具有有较较小小的的冗冗余余度度,较较高高的的数据独立性和易扩展性,并可为多个用户所共享的技术。数据独立性和易扩展性,并可为多个用户所共享的技术。 5 5数据库管理系统数据
6、库管理系统(Data Base Management System,DBMS(Data Base Management System,DBMS) )数数据据库库管管理理系系统统指指位位于于用用户户与与操操作作系系统统之之间间的的一一层层数数据据管管理理软软件件。数数据据库库在在建建立立、运运用用和和维维护护时时由由数数据据库库管管理理系系统统统统一一管管理理、统统一一控控制制。数数据据库库管管理理系系统统使使用用户户能能方方便便地地定定义义数数据据和和操操纵纵数数据据,并并能能够够保保证证数数据据的的安安全全性性、完完整整性性、多多用用户户对对数数据据的的并并发发使使用用及及发发生生故故障障后
7、后的的系系统统恢恢复复,它它的的职职能能是是有有效效地地组组织织和和存存储储数数据据、获获取取和和管管理理数数据据,接接受受和和完完成成用用户户提出的访问数据的各种请求提出的访问数据的各种请求 6数据库系统数据库系统(Data(DataBaseBaseSystemSystem,简称,简称DBS)DBS)数数据据库库系系统统指指在在计计算算机机系系统统中中引引入入数数据据库库后后构构成成的的系系统统,一一般般由由数数据据库库、数数据据库库管管理理系系统统(及及其其开开发发工工具具)、应应用系统、数据库管理员和用户构成。用系统、数据库管理员和用户构成。最终用户专业用户数据库管理员各系统间的关系图各
8、系统间的关系图1.2.2 1.2.2 数据库系统的发展数据库系统的发展l第一代:层次和网状数据库系统l第二代:关系数据库系统l第三代:以面向对象数据模型为主要特征的数据库系统1.3 信息描述与数据模型信息描述与数据模型 所谓信息是客观事物在人类头脑中的反映。人们可以从现实世界中获得各种各样的信息,从而了解世界并且相互交流。但是信息的多样化特性使得人们在描述和管理这些数据时往往力不从心,因此人们把表示事物的主要特征抽象地用一种形式化的描述表示出来,模型方法就是这种抽象的一种表示。信息领域中采用的模型通常称为数据模型。 根据模型应用的不同目的,可以将模型分为两类或者说两个层次:一是概念数据模型(也
9、称信息模型),是按用户的观点来对数据和信息建模;一是逻辑数据模型(如网状、层次、关系模型),是按计算机系统的观点对数据建模 1.3.1 数据模型及其三要素数据模型及其三要素1.数据结构数据结构数据结构是对系统静态特性的描述。 2.数据操作数据操作数据操作是指对数据库中各种对象实例所允许执行操作的集合,包括操作和有关的操作的规则。 3.数据的完整性约束数据的完整性约束数据的约束条件是完整性规则的集合,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。 1.3.2 数据模型的分类数据模型的分类1.概念数据模型2.逻辑数据模型3.物理数据模型1.3.3概念模型及其表示方法
10、概念模型及其表示方法l概念模型是对现实世界的抽象反映,它不依赖于具体的计算机系统,是现实世界到数据世界的一个中间层次, 如图1.1所示。转换认识抽象信息世界 概念模型数据世界DBMS支持的数据模型现实世界图1.1 数据抽象过程图1.信息实体的概念信息实体的概念l实体实体:实体是客观存在并可相互区分的事物。l属性属性:属性是实体所具有的特性。一个实体可以由若干个属性来描述。l键键:能够惟一标识实体的属性集称为键,也叫关键字。l实体集实体集:具有相同属性的实体的集合称为实体集。l联系联系:现实世界中事物之间的联系必然要在信息世界中加以反映。包括两类联系:一个是实体内部的联系,是指实体各个属性之间的
11、联系;一个是实体之间的联系。2.实体间的联系实体间的联系l一对一的联系(1:1):如果实体集E1中的每一个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1与E2的联系称为“一对一联系”记为1:1。例如,每个学生都有一个学号,每位学生和学号之间具有一对一联系。l一对多联系(1:M):如果实体集E1中的每个实体可以与实体集E2中的任意个(零个或多个)实体间有联系;而实体集E2中的每个实体至多与实体集E1中一个实体有联系,那么称实体集E1与实体集E2的联系是“一对多联系”,记为1:M。例如,一个班级内有多名学生,而一名学生只属于一个班。班级与学生之间具有一对多联系。l多对多联系(M:
12、 N)。如果实体集E1中的每个实体可以与实体集E2中的任意个(零个或多个)实体间有联系,反之亦然,那么称E1与E2具有多对多联系,记为M: N。例如,学生在选课时,一个学生可以选修多门课程,一门课程也可以被多名学生选修,则学生和课程之间具有M: N联系3.E-R模型模型l模型,特别是具体的实物模型,人们并不陌生。例如,一张地图、一组建筑设计沙盘、一架精致的航模飞机,都是具体的模型。一眼望去,就会使人联想到真实生活中的事物。模型是现实世界特征的模拟和抽象。要将现实世界转变为机器能够识别的形式,必须经过两次抽象,即使用某种概念模型为客观事物建立概念级的模型,将现实世界抽象为信息世界,然后再把概念模
13、型转变为计算机上某一DBMS支持的数据模型,将信息世界转变为机器世界l概念模型的表示方法很多,其中最为著名、最为常用的是PPSChen于1976年提出的实体联系方法(Entity-RelationshipAprroach)。该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R概念模型。 实体联系图(ER图)是抽象描述现实世界的有力工具。它通过画图将实体以及实体间的联系刻画出来,为客观事物建立概念模型。下面以某学校计算机系的教学管理为例,说明实体联系图的建立方法。E-R图表示方法图表示方法E-R图设计案例图设计案例为了简单起见,假设该计算机系教学管理所涉及的实体有:1)教师。属性有教
14、师号、姓名、性别、年龄、职称、专业,其中教师号是码。2)学生。属性有学号、姓名、性别、年龄、籍贯、专业,其中学号是码。3)课程。属性有课程号、课程名、学时数、学分、教材,其中课程号是码。假设这些实体之间存在如下联系:1)一个教师可以讲授多门课程,一门课程可以被多位教师讲授,即教师和课程之间是多对多的联系。该联系也可以表示为一个实体,这里将教师与课程之间的联系命名为授课,假设其属性有教师号和课程号,它们分别是教师实体和课程实体各自的码。2)一个学生可以选修多门课程,一门课程可以被多位学生选修,即学生和课程之间是多对多的联系。这里将学生与课程之间的联系命名为选课,该联系也可以表示为一个实体。假设其
15、属性有学号、课程号和成绩。学号和课程号组成码。其中学号和课程号分别是学生实体和课程实体各自的码,成绩是该联系特有的属性。 3)在某个时间和地点,一位教师可指导多位学生,但每个学生在某个时间和地点只能被一位教师指导,即教师和学生之间是一对多的联系。这里把教师和学生之间的联系命名为指导,其属性有教师号、时间和地点等E-R图设计规定图设计规定在E-R图中规定:1)用长方形表示实体,在框内写上实体名。2)用椭圆形表示实体的属性,并用线段把实体与其属性连接起来。3)用菱形表示实体之间的联系,菱形内写上联系名。用线段把菱形与有关的实体连接,在线段旁标上联系的类型。若实体之间的联系也有属性(实体以外的属性)
16、,则把属性和菱形也用线段连接起来教师实体图教师实体图学生实体图学生实体图课程实体图课程实体图实体联系图实体联系图 关系模型是用规范的二维表结构来表示实体以及实体间联系的模型,由关系数据结构、关系操作集合和关系完整性规则三部分组成。关系数据结构就是由一组关系结构组成的集合, 1.4关系模型与关系数据库关系模型与关系数据库1.关系模型的数据结构关系模型的数据结构l关系模型的数据结构由规范的二维表结构组成。在关系模型中,将规范的二维表称为关系。每个关系由关系名、关系结构和关系实例组成,对应规范的二维表中的表名、表框架(表头)和表中的行。一个规范的二维表由行和列组成,除第一行(表头)以外,表的每一行称
17、为一个记录(或称为元组);表中的每一列称为一个字段(或称为属性),每个字段有字段名、字段数据类型和宽度,字段的取值范围称为值域。表头的各列给出了各个字段的名字 2.表(关系)的性质表(关系)的性质关系模型要求关系数据库中的表必须具有如下性质:l表中的每个字段值必须是一个值,不能是值的集合。l字段必须是同质的,即同一字段的各个值应是同类型的数据。l在同一个表中不能出现相同的字段名。l表中不允许有完全相同的记录,即每行记录必须是唯一的。l在一个表中记录的次序是任意的。l在一个表中字段的次序是任意的。 3.超键、关系键、候选键和主键超键、关系键、候选键和主键l在表中能唯一标识记录的字段组合称为该表的
18、超键。l在表中能唯一标识记录且不包括多余字段的字段组合称为该表的关系键。当某些表中具有关系键特性的最小字段组合有多个,即一个表中有多个关系键时,那么这些关系键都称为该表的候选键。l为了唯一地标识表中的每一个记录,保证记录的唯一性,每个表都必须选择一个候选键作为主键。每个表只能有一个主键。对于任意一个表,主键一经选定,通常是不能随意改变的。主键也称为主关系键、键或主码。1.4.2 关系模式和关系数据库关系模式和关系数据库1关系模式 关系模式是对关系结构(表结构)的描述;关系则是关系模式在某一时刻存储的值,其值是动态的、随时间不断变化的。 在具体的关系数据库管理系统中,使用关系数据库管理系统提供的
19、SQL 语言的CREATE TABLE语句来定义关系模式的名称、关系中的字段、字段类型、宽度、完整性约束等,将定义的语句称为该关系的关系模式。为了便于讨论和描述,关系模式可以表示为: 关系名(字段名1,字段名2, ,字段名n ) 其中关系键用下画线标出,n是关系的目(也可称为度)。2关系数据库模式 关系数据库模式是对关系数据库结构的描述,是由一组关系模式组成的集合。一个关系数据库的结构对应一个具体的关系模型。上面给出的学生关系模型中STUDENT、COURSE和GRADE关系的结构的可用下面的一组关系模式表示: STUDENT(学号,姓名,年龄,性别,系名) COURSE(课程号,课程名,学时
20、数,任课教师) GRADE(学号,课程号,成绩)1.4.3 关系的完整性规则关系的完整性规则 关系模型的完整性规则是用来约束关系的,以保证数据库中数据的正确性和一致性。关系模型的完整性共有三类:实体完整性、参照完整性和用户定义的完整性。数据完整性由实体完整性和参照完整性规则来维护,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,由关系数据库管理系统自动支持 1. 实体完整性实体完整性 实体完整性规则:若属性A是基本关系R的主键,则属性A不能取空值。对于实体完整性的说明如下: 一个基本关系对应着一个现实世界的实体集。 现实世界中的实体是可区分的,即他们具有某种惟一的标识。 关系模型中用
21、主键作为惟一性标识。 主码不能取空值,因为主键取空值说明存在某个不可标识的实体,与第二点矛盾。2.参照完整性参照完整性 在关系数据库中,关系之间的联系是通过公共属性实现的。这个公共属性是一个表的主键和另一个表的外键。所谓外键是指若一个关系R中包含有另一个关系S的主键所对应的属性组F,则称F为R的外键。外键的值必须是另一个表的主键的有效值或是一个“空值”。3.用户自定义完整性用户自定义完整性 用户自定义的完整性则是针对某一具体数据库的约束条件,由应用环境决定,它反映了某一具体应用所涉及的数据必须满足的语义要求。如学习成绩的取值范围,用户一般会定义在0100之间。数据库管理系统应提供定义和检验这类
22、完整性的机制,以便用统一的方法处理它们而不再由应用程序完成这一任务 1.5关系数据库规范化设计关系数据库规范化设计l在关系数据库中,对于同一个问题,选用不同关系模式集合作为数据库模式,其性能的优劣是大不相同的,某些数据库模式设计常常带来存储异常,这是不利于实际应用的。为了区分数据库模式的优劣,人们常常把数据库模式分为各种不同等级的范式(NormalForm)。 在关系规范化中,通常将关系分为5个级别,即5种范式。满足最低条件的称为第一范式,简称1NF。1NF是关系模式应满足的最起码的条件。在第一范式的基础上进一步满足一些要求的可升级为第二范式,其余依次类推。通常,若关系R是第X范式就写成RXN
23、F。1.第一范式第一范式l设R是一个关系模式,如果R中的每个属性都是不可分解的,则称R是第一范式,记为R1NF。l第一范式要求不能表中套表,它是关系模式最基本的要求,数据库模式中的所有关系模式必须是第一范式。关于第一范式这个问题,在前面曾经给过一个例子,这里再给出如图所示的选课关系SC1,以此说明非第一范式的弊病。第二范式第二范式l如果关系模式R是第一范式,且每个非码属性都完全依赖于码属性,则称R是第二范式,记为R2NF。l部分函数依赖关系是造成插入异常的原因。在第二范式中,不存在非码属性之间的部分函数依赖关系,即消除了部分函数依赖关系,因此第二范式解决了插入异常问题。第三范式第三范式l如果关
24、系模式R是第二范式,且没有一个非码属性传递依赖于码,则称R是第三范式,记为R3NF。l传递函数依赖关系是造成删除异常的原因。第三范式消除了传递函数依赖部分,因此解决了数据的删除异常问题。l一个关系模式达到3NF,基本解决了“异常”问题,但还不能彻底解决数据冗余问题。因为3NF不能很好地处理模型中含有多个候选关键字和候选关键字是组合项的情况,因此需要更强的范式。1.6 数据库设计数据库设计l数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界中信息和信息联系,满足用户数据要求和加工要求,又能被某
25、个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。 1.6.1 数据库的设计任务与内容数据库的设计任务与内容数据库设计应包含两方面的内容:l一是结构设计,也就是设计数据库框架或数据库结构;l二是行为设计,即设计应用程序、事务处理等。 1.6.2 数据库的设计方法数据库的设计方法l目前常用的各种数据库设计方法都属于规范设计法,即都是运用软件工程的思想与方法,根据数据库设计的特点,提出了各种设计准则与设计规范。这种工程化的规范设计方法也是在目前技术条件下设计数据库最实用的方法。1.6.3 数据库设计步骤数据库设计步骤1.需求分析2.概念结构设计3.逻辑结构设计4.数据库物理设计5
26、.数据库的实现6.数据库运行和维护1.6.4晓灵学生管理系统的设计晓灵学生管理系统的设计数据库原理与应用第2章 数据库开发环境 SQL Server2000 的安装与配置学习目标:了解数据库系统软件的构成了解数据库系统软件的构成1了解对硬件及软件环境的需求了解对硬件及软件环境的需求2掌握软件的安装及注册方法掌握软件的安装及注册方法3积累职业素质及团队精神积累职业素质及团队精神4任务的提出为了设计实现晓灵学生管理系统,首先需要建立系统的设计与开发环境,然后根据业主及用户的需要进行需求分析,提出系统的解决方案。第三,根据解决方案所确定的系统边界,对系统的功能进行设计。第四,根据所确定的功能组织数据
27、,进行系统数据库的设计和实现。最后,再根据需要进行系统界面的设计。要做好上述的五步,前提是在计算机上安装和配置好SQL Server2000数据库管理系统 需考虑的问题要想成功的安装SQL 2000数据库管理系统,需要解决以下几个问题:了解SQL 2000数据库系统都有哪些版本? SQL 2000数据库管理系统各版本,对操作系统的要求有哪些?SQL 2000数据库管理系统各版本,对计算机配置都有哪些要求?硬件的要求是什么?软件环境又是什么?在安装SQL 2000数据库管理系统过程中,需要注意和解决哪些问题?在安装SQL 2000数据库管理系统以后,如何验证安装是否成功?在安装SQL 2000数
28、据库管理系统以后,需要如何配置SQL 2000数据库管理系统才能正常使用?相关知识点相关知识点2.2SQLServer2000系统安装前的准备2.2.1SQLServer数据库的发展阶段1.1987SybaseSQLServer2.1988SQLServer43.1996SQLServer6.54.1998SQLServer75.2000SQLServer20006.2005SQLServer2005SQLServer的工作模式vSQLServer采用客户/服务器体系结构,即中央服务器用来存储数据库,该服务器可以被多台客户机访问,数据库应用的处理过程分布在客户机和服务器上。客户机/服务器(Cl
29、ient/Server,C/S)体系结构的应用又被称作分布式计算机系统。该系统的数据处理不是在单个计算机上进行,而是把程序的不同部分在多台计算机上同时运行。它的最大好处是提高了数据处理和应用能力2.2选择安装版本v1)MicrosoftSQLServer2000的企业版可以用作一个产品数据库服务器,这种版本支持MicrosoftSQLServer2000所有的功能,包括支持当前世界上最大的Web站点、企业在线事务处理(Onlinetransactionprocessing,OLTP)和数据仓库。企业版是功能最齐全的数据库,支持数十个TB字节的数据库,也是价格最昂贵的数据库系统。作为完整的数据库
30、解决方案,企业版应该是企业首选的数据产品。2)MicrosoftSQLServer2000的标准版可以用作一个部门或一个工作组的数据服务器,支持GB字节的数据库。虽然标准版不像企业版的功能那样齐全,但是它所具有的功能已经能够满足普通企业的一般需求,这种版本是非常实用的一种数据库版本。如果考虑企业需要处理的数据量和财政状况等原因,那么使用标准版本的数据库产品是一种比较明智的选择?3)MicrosoftSQLServer2000的个人版主要用于移动用户。这些移动用户的大量时间是与网络断开连接的,但是它们的业务需要LServer系统来存储它们大量的业务数据。另外,当只在某一个客户机上存储本地的数据时
31、,也可以使用这种个人版。这种版本的产品为整天奔波忙碌的用户提供了恰当的数据库解决方案。4)MicrosoftSQLServer2000的开发人员版主要用于数据库应用程序开发人员进行应用程序的开发,且需要使用MicrosoftSQLServer2000来存储数据。虽然,开发人员版支持企业版本的所有功能,支持开发人员使用这些功能来编写和测试应用程序,但是开发人员版的注册方式只是用于开发和测试应用程序系统,而不是用作生产服务器。这种版本只适用于数据库应用程序开发人员,不适用于普通的数据库用户。5)MicrosoftSQLServer2000的桌面引擎只具有MicrosoftSQLServer2000
32、的数据库引擎,可以用来完成数据库本身数据存储的一些功能。这种版本主要针对独立的软件厂商,即可以在它们的应用程序中打包进这种数据库管理系统。举例说明一下,桌面引擎就像是一台没有外包装的计算机,但是具有计算机处理数据的基本功能。这种版本的数据库产品主要是由各种中间厂商来使用,而最终用户可以借助于中间的软件产品来间接地使用SQLServer2000系统。6)MicrosoftSQLServer2000的WindowsCE版主要用于在MicrosoftWindowsCE设备上存储数据。可以使用MicrosoftSQLServer2000的企业版和标准版来复制数据,使得WindowsCE数据可以和主数据
33、库中的数据同步化。例如,可以将这种版本的数据库产品嵌入到以WindowsCE作为操作系统的商务通路中。7)MicrosoftSQLServer2000韵企业评估版是可以从微软网站上免费下载的一种数据库版本。这种版本主要用来测试MicrosoftSQLServer2000的功能。虽然这种企业评估版具有MicrosoftSQLServer2000的所有功能,但是其运行时间只有120天。因此,使用这种版本时间过长就有可能给用户带来巨大损失,如数据的丢失等。虽然,对这种版本的分类似乎没有必要,但是这种版本的数据库产品确实存在。通过上面的介绍可得出这样的结论:对于所有的用户来说,企业版、标准版和个人版是
34、3种可以使用的数据库产品,而其他版本的数据库产品只是适用于一部分特殊的用户。有时候,为了简化,常常认为SQLServer2000有3种版本,即企业版、标准版和个人版。SQL Server版本应 用企业版可作为正式环境(Production)数据库服务器,它支持 SQL Server 2000 的所有功能,且提高执行效率,以支持最大的网站与企业线上交易处理(OLTP)以及数据仓储系统标准版可作为小型工作群组或部门的数据库服务器个人版由行动用户所使用,他们会有一些时间与网络离线,但执行需要SQL Server数据存储的应用程序;同时也用于执行需要在客户端计算机本地SQL Server 数据存储的独
35、立应用程序开发版由开发以SQL Server 2000 作为数据存储的应用程序的程序设计者所使用。虽然开发版可支持企业版的所有功能,以便让开发者编写与测试可使用这些功能的应用程序,但是开发版只能许可作为开发与测试系统之用,而非营运服务器2SOLServer2000的运行环境在安装SQLServer2000时,一定要考虑以下几个方面的内容:1)保证计算机满足安装SQLServer2000的需求。2)如果打算安装一个故障切换群集,必须在运行安装程序之前取消与任何网络的连接。3)如果在运行MicrosoftWindowsNT或MicrosoftWindows2000的计算机上安装SQLServer2
36、000,那么要事先设置一个或多个域用户账号,这样SQLServer2000就可以和其他客户端和服务器进行通信。4)以本地管理员权限的用户账号或恰当的域用户账号登录系统。5)关闭所有与SQLServer有关的服务,包括任何使用ODBC的服务,例如MicrosoftInternetinformationServices(11S)。6)关闭MicrosoftWindowsNT事件阅读器和文件Regedit.EXE或Regedit32EXE。2.1.2安装SQLServer2000的软硬件要求1硬件要求为了正确地安装MicrosoftSQLServer2000或MicrosoftSQLServer20
37、00客户端管理工具和库,满足MicrosoftSQlServer2000正常的运行要求,计算机的芯片、内存、硬盘空间等配备需要满足最低的硬件配置要求,这种最低的硬件要求见表21。硬件项目规格说明CPU处理速度在Pentium 166MHz以上的Intel或与之兼容的CPURAM至少64MB的内存空间;若是要安装企业版建议128MB或更多磁盘空间安装SQL Server 2000所占用的磁盘空间,会随着选择的安装组件而有所不同,范围约于95MB至270MB之间,若采用典型安装,需占用250MB的磁盘空间另外,安装Analysis Service与English Query需要额外的磁盘空间,安装
38、Analysis Service至少需要50MB的空间,安装English Query需要80MB的磁盘空间显示器VGA或更高分辨率,SQL Server 图形工具要求 800600或更高分辨率。其它设备MS鼠标或兼容设备、CD-ROM光盘驱动器、磁带驱动器等。2软件要求v软件要求包括对操作系统的要求和对浏览器的要求。对于不同的MicrosoftSQLserver2000版本,所要求的操作系统也不一样。因此,了解系统对操作系统的要求,也是安装MicrosoftSQLServer2000不可缺少的知识。SQL Server版本操 作 系 统企业版Windows NT 4.0 Server,Win
39、dows 2000 Server,Advanced Server,Data Center Server标准版Windows NT 4.0 Server,Windows 2000 Server,Advanced Server,Data Center Server个人版Windows Me/98,Windows NT 4.0 Server,Windows 2000 Professional,Server,Advanced Server,Data Center Server开发版Windows NT 4.0,Windows 2000客户端工具Windows Me/98,Windows NT 4.0,
40、Windows 2000连接工具Windows Me/98/95,Windows NT 4.0,Windows 2000数据库原理与应用第3章 数据库的基本使用 数据库及表的创建学习目标:了解数据库对象和表对象的作用能熟练创建和管理数据库对象能熟练创建和管理表对象积累职业素质培养团队合作精神和语言表达能力任务的提出为了实现晓灵学生管理系统,需要建立系统开发环境,这就必须要在计算机中使用SQLServer2000数据库系统软件创建一个符合需求的数据库,并且要在数据库中创建相关的表格来存储和管理数据。 需考虑的问题1. 数据库系统在计算机中的存储结构,数据库文件的构成2. 什么是系统数据库,系统数
41、据库的功能3. 创建用户数据库前的考虑4. 创建用户数据库的方法5. 数据库都包含哪些对象,各个对象的功能6. 创建表对象的方法7. 管理和维护数据库及数据库对象的方法SQLServer2000数据库架构v数据库是SQLServer2000存放数据库对象的逻辑实体,是数据库服务器的主要组件,是数据库管理系统的核心。在使用数据库的时候,我们所使用的主要是逻辑组件,如表、视图、存储过程等,而其物理表现形式则是存储在某个磁盘路径下的操作系统文件。作为一名数据库管理员,在创建数据库之前,首先应理解数据库的各个组成部分及设计方法,以确保所设计的数据库在实现后,能够高效地运行。数据库架构图SQLServe
42、r2000数据库对象SQLServer2000中有以下数据库对象:关系图(diagrams)表(table)视图(view)存储过程(stored procedures)用户(users)用户自定义数据类型(user-defined data types)用户自定义函数(user-defined functions)规则(constraints)默认值(defaults) 数据库存储结构v在前面已经讲过,SQLServer2000使用一组操作系统文件来存放数据库中的数据。这些操作系统文件有两种形式,一种是数据文件,一种是日志文件。其中数据文件又可分为主数据文件和次数据文件两种。数据库物理存储结
43、构v数据的物理空间在文件之间的分配是通过簇按比例分配的。例如,如果文件data1有10m的存储空间,文件data2有20m的存储空间。当SQLServer2000进行空间分配时,为文件1分配一个簇,为文件2分配两个簇。这样保证两个文件存储空间的使用平衡。v而簇则由“页”构成,“页”是MicrosoftSQLServer2000可管理的最小空间,每一个页的大小是8KB,即8192字节。在表中,每一行数据不能跨页存储。这样,表中每一行的字节数不能超过8192个字节。每8个连续页称为一个簇,即簇的大小是64KB。系统数据库vmaster数据库vtempdb数据库vmodel数据库vmsdb数据库1使
44、用使用CREATEDATABASE创建数据建数据库CREATEDATABASE数据库名ONPRIMARY,nFILEGROUP文件组名,nLOGON,nFORRESTORE使用使用CREATEDATABASE创建数据建数据库1.创建建简单数据数据库2.创建建单文件数据文件数据库3.创建多文件数据建多文件数据库4.创建多文件建多文件组数据数据库【任务3.1】使用T-SQL语句按照要求创建qg_test数据库。USEmasterGOCREATEDATABASEqg_testON(NAME=qg_testdat,FILENAME=c:programfilesmicrosoftsqlservermss
45、qldatatest.mdf,SIZE=10,MAXSIZE=100,FILEGROWTH=10)GO【任务3.2】使用T-SQL语句创建sales数据库。USEmasterGOCREATEDATABASESalesON(NAME=Sales_dat,FILENAME=c:programfilesmicrosoftsqlservermssqldatasaledat.mdf,SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOGON(NAME=Sales_log,FILENAME=c:programfilesmicrosoftsqlservermssqldatasalelog.l
46、df,SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB)GO【任务3.3】使用T-SQL语句创建Archive数据库。USEmasterGOCREATEDATABASEArchiveONPRIMARY(NAME=Arch1,FILENAME=c:programfilesmicrosoftsqlservermssqldataarchdat1.mdf,SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch2,FILENAME=c:programfilesmicrosoftsqlservermssqldataarchdat2.ndf,
47、SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch3,FILENAME=c:programfilesmicrosoftsqlservermssqldataarchdat3.ndf,SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)LOGON(NAME=Archlog1,FILENAME=c:programfilesmicrosoftsqlservermssqldataarchlog1.ldf,SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Archlog2,FILENAME=c:pro
48、gramfilesmicrosoftsqlservermssqldataarchlog2.ldf,SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)GO使用使用ALTERDATABASE修改数据修改数据库ALTERDATABASE数据库名ADDFILE,nTOFILEGROUP文件组名|ADDLOGFILE,n|REMOVEFILE逻辑文件名|ADDFILEGROUP文件组名|REMOVEFILEGROUP文件组名|MODIFYFILE|MODIFYNAME=新数据库名|MODIFYFILEGROUP文件组名|NAME=新文件组名使用使用ALTERDATABASE修改数
49、据修改数据库1.增加数据增加数据库文件、日志文件和文件文件、日志文件和文件组2.删除数据除数据库文件、日志文件和文件文件、日志文件和文件组3.修改数据修改数据库、文件和文件、文件和文件组的属性的属性使用使用DROPDATABASE删除数据除数据库语法格式:DROPDATABASE数据库名,n该命令可以从SQLServer中一次删除个或几个数据库。例:删除数据库abcdropdatabaseabc表功能介绍创建用户数据库后,我们还无法将数据保存在数据库中,还必须在数据库中创建用来存放数据的“容器”,这个“容器”就是表。表是数据库中最重要的对象,是用来存储数据和操纵数据的逻辑结构。对数据库的各种管
50、理和操纵,实际上就是对数据库中表的管理和操纵。表的组成v在数据模型中,一张表代表一个实体,实体名即为表名。例如:在晓灵学生管理系统中有一个教师信息表,它表示所有教师的基本信息都存储在该表中。v表由行和列组成。在关系数据模型中,行也被称为记录或元组,列也被称为字段或属性。每一行都是这个实体的一个完整描述,每个列都是对该实体的一种属性的描述。数据类型v现实世界是一个多样化的世界,现实世界的信息是多种多样的,所以描述信息的数据也应该是多种多样的。在定义表中的列时,每一个列都要有一个与之相关的特定的数据类型,用来准确的表示信息的类别。v例如,教师的姓名可以用字符型(char,varchar)来表示,出
51、生日期可以用日期型(datetime)来表示,如果为了表示单价可以用货币型(money)来表示等等SQLServer2000提供的系提供的系统数据数据类型型类 型名称取值范围长度数字型bigint-263 (-9223372036854775808) 到263-1 (9223372036854775807)8个字节int-231 (-2147483648) 到231-1 (24147483647)4个字节smallint-215 (-32768) 到213-1 (32767)2个字节tinyint0-2551个字节Decimal (p,s)Numeric (p,s)P为精度(1=p=38)S为
52、小数点后位数(0=s=p)38位数字字符型Char(n)存放固定长度的n个字符 1=n=8000最大8000个字符Varchar(n)存放可变长度的n个字符1=n=8000最大8000个字符货币型money-263到263货币数据,小数点后保留4位8个字节Smallmoney-214748.3648-214748.36474个字节日期型Datetime1/1/1753 到 12/31/99998个字节smalldatetime1/1/1900 到 12/31/20794个字节位 型bit1或0的整数数据1位使用使用CREATETABLE创建表建表CREATETABLE数据库名.表所有者.表名(
53、|,n)ON|文件组名|DEFULT|【任务3.11】创建一个职工表,该表结构如下列 名数据类型约束要求职工编号int主键职工姓名Varchar(20) 不允许空性别Char(2)默认值“男”年龄 Tinyint不允许空CREATE TABLE 职工表 (职工编号 int primay key, 职工姓名 varchar(20) not null , 性别 char(2) default 男, 年龄 tinyint not null )【任务3.12】创建含有计算列的表CREATETABLEmytable(col_1int,col_2int,col_3ascol_1+col_2)【任务3.13
54、】创建含有标识列的表CREATETABLE订单表(订单编号intideneity(1,1)primarykey,商品名varchar(20)notnull,数量int)【任务3.14】创建具有检查约束的表,表结构如下:列 名数据类型约束要求学号int 主键学生姓名Varchar(20) 不允许空性别Char(2)只能输入“男”或“女”默认为“男”年龄Tinyint值小于100联系电话Varchar(11)设置唯一性约束CREATE TABLE 学生表( 学号 int primay key, 学生姓名 varchar(20) not null , 性别 char(2) default 男 che
55、ck (性别=“男” or 性别=“女”), 年龄 tinyint not null check(年龄0 并且成绩0 and 成绩100) Constraint pk_cj primary key (学号,课程号) constraint fk_cj foreign key(课程号)references kc(课程号)使用使用ALTERTABLE修改表修改表ALTERTABLE表名ADD,n|WITHCHECK|WITHNOCHECKADD,n|DROPCOLUMN列名|CONSTRAINT约束名,n|ALTERCOLUMN列名新数据类型(数据宽度,新小数位数)NULL|NONULL|CHECK
56、|NOCHECKCONSTRAINTALL|约束名,n使用使用ALTERTABLE修改表修改表1增加列增加列2增加增加约束束3删除除约束束4删除列除列5修改列修改列6启启动或或暂停停约束束使用使用DROPTABLE删除表除表DROPTABLE表名,n使用企使用企业管理器管理器实现数据数据库的的创建、修改和建、修改和删除除1创建数据建数据库2修改数据修改数据库3删除数据除数据库创建数据建数据库创建数据建数据库创建数据建数据库修改数据修改数据库使用企使用企业管理器管理器实现表的表的创建、修改和建、修改和删除除1创建表建表2修改表修改表3删除表除表创建表建表v在EnterpriseManager中创
57、建表按以下步骤进行:(1)在要创建表的数据库中选择“Tables”对象后,单击右键,从快捷菜单中选择“NewTable”选项,或在工具栏中选择图标,即会出现如图7-1所示的定义列对话框。在此可以是设定表的列名、数据类型、精度、缺省值等属性。创建表建表创建表建表修改表v在EnterpriseManager中选择要进行改动的表,单击右键,从快捷菜单中选择“DesignTable”选项,则会出现如图7-4所示的修改表结构对话框。可以在图7-4所示的对话框中修改列的数据类型、名称等属性或添加、删除列,也可以指定表的主关键字约束。单击工具栏中的图标,出现如图7-5所示的编辑表和约束的属性的对话框。可以在
58、其中编辑各种约束和一些表的属性。修改表修改表删除表除表v在EnterpriseManager中用右键单击要删除的表从快捷菜单中选择“删除(Delete)”选项,则会出现如图7-9所示的删除对象对话框,单击“DropAll”按钮,即可以删除表。单击“ShowDependencies”按钮,即会出现如图7-10所示的对话框。它列出了表所依靠的对象和依赖于表的对象。当有对象依赖于表时,就不能删除表。删除表除表删除表除表数据库原理与应用数据库的基本管理 -学生信息的更新与查询学习目标: 熟练掌握简单查询数据的方法2 培养团队协作精神、语言表达能力4熟练掌握向表中添加、删除、修改数据的方法3 1 培养职
59、业素质3 3任务的提出在本章,我们将在上一章实现的晓灵学生管理系统数据库和各基本表的基础上,输入各相关数据。在输入的过程中,讲解数据的插入、删除与修改的各种方法。最后我们要对晓灵学生管理系统所涉及的数据进行查询或检索,因为我们在数据库中存储数据并不是目的,我们更观注于对数据的查询和使用 需考虑的问题如果想要向表中添加、删除、修改数据可以使用相关命令或企业管理器的图形界面实现。如果想要查询表中的数据,一般使用T-SQL语句,使用查询分析器实现。查询数据的语句为Select 列名 from 表名Where 条件查询语句的使用非常复杂,在学习情境4中,我们学习简单的数据查询方法,包括列的过滤,行的过
60、滤等内容。相关知识点1.1.使用使用INSERT语句插入表数据语句插入表数据插入一行数据插入一行数据 INSERT INTO 表名 (列名 ,n )VALUES( 表达式 | NULL | DEFULT ,n )相关知识点2. 2. 使用使用SELECT语句查询表数据语句查询表数据SELECT 源表名.选择列名 ,n FROM 源表名,n WHERE 逻辑表达式 相关知识点3. 3. 使用使用UPDATE语句修改表数据语句修改表数据UPDATE 表名SET 列名=表达式 | NULL | DEFULT ,n WHERE逻辑表达式相关知识点4. 4. 使用使用DELETE语句删除表数据语句删除表
61、数据DELETE 表名WHERE逻辑表达式Insert语句插入数据v【任务4.1】使用insert语句晓灵学生管理系统数据库的学生表中添加一条记录。INSERTINTOstudentVALUES(40101,温荣奇,男,1985-5-15,计算机,z0401,2004-9-1,h1101,天津市河东区塘沽路8号,13520201187)注意事项vinsertvalues语句一次只能输入一行数据。v不能对IDENTITY列、计算列等进行赋值。v向表中插入数据时,不能违反完整性约束的要求。使用update语句更新数据v【任务4.4】使用update语句更新所有行的数据update gradeset
62、 gradenum=gradenum+5go更新部分数据v【任务4.5】使用update语句更新部分数据。UPDATEstudentSTEsBanji=z0402WheresID=040101使用delete语句删除数据v【任务4.6】使用delete语句删除学生表中学号为040101的学生的信息。DELETEstudentWHEREsID=040101v【任务4.7】使用delete语句删除学生表中所有学生的信息。DELETEstudentSELECT语句查询几种查询工具的介绍企业管理器SELECT语句查询几种查询工具的介绍查询分析器SELECT语句的语法结构Select语句的功能是从数据库
63、中检索行,并允许从一个或多个表中选择一个或多个行或列。虽然SELECT语句的完整语法较复杂,但是其主要的子句可归纳如下:SELECTselect_listINTOnew_tableFROMtable_source WHEREsearch_condition GROUPBYgroup_by_expression HAVINGsearch_condition ORDERBYorder_expressionASC|DESC1.选择列1.指定列语法结构:select列名1,nfrom表名1,n【任务4.8】使用select语句从学生表中查询学生的学号,姓名,性别等信息。Select学号,姓名,性别Fr
64、om学生表1.选择列提示:在数据检索时,列的顺序由SELECT语句中列表的顺序决定。可以和定义表时列的顺序不同,这不会影响数据在表中的存储思考题:思考题:选择employees表中所有雇员的employeeid,lastname,firstname和title列(注:此表在northwind示例数据库中,可在northwind数据库中练习,答案在下页)1.选择列答案:usenorthwindselectemployeeid,lastname,firstname,titlefromemployeesgo1.选择列2.使用通配符(*)如果需要检索表中所有的列可以使用“*”来代替。【任务4.9】使用
65、通配符选择所有数据列。Select*Fromstudent提示:应避免使用通配符,因为它会大大降低查询的效率1.选择列3.改变查询结果中的列名默认情况下,数据查询结果中显示的列名就是创建表时使用的列名,但对于新增加的列,系统显示为“无列名”。如果我们想实现更改列名可以有两种方法实现u 使用 “=“u 使用 AS 关键字1.选择列【任务4.10】在结果集中为列重新命名。Select学号=sid,姓名=sname,性别=ssex,出生日期=sbrithdayFromstudent或Selectsidas学号,snameas姓名,ssexas性别,sbrithdayas出生日期Fromstudent
66、1.选择列4、在结果集中添加注释列【任务4.11】在学生表结果集中手机号前加 上“移动电话”说明列。 Select sid,sname,ssex,szhuanye,saddr, 移动电话:,stel From student2.选择行如果在工作中我们只查询部分数据记录,即找出满足某些条件的数据记录。此时我们可以在SELECT语句中使用WHERE子句来指定查询条件,过滤不符合条件的数据纪录行。其语法形势为: Select 列名1,n From 表名1,n Where 查询条件过滤条件的种类搜索条件比较操作符=,=,=,!,!大于=大于等于=小于等于 !=不等于!不大于!不小于2.选择行【任务4.
67、12】查询不及格学生的信息。Selectsid,kcid,gradenumFromgradeWheregradenum=x and x and 0 and gradenum = 0 and range = 100规则的绑定v规则创建成功后,需要将其绑定在数据表的列上,当向数据表的列上绑定了规则后所有对列的插入或更新操作都要满足规则的要求,否则插入和更新操作将无法完成。v如果在列或数据类型上已经绑定了规则,那么当再次向他们绑定规则时,旧的规则会自动被新的规则所覆盖例题v使用系统存储过程sp_bindrule可以将规则捆绑到列或用户自定义的数据类型上。语法格式为:sp_bindrule rulen
68、ame = 规则名 , objname = 对象名 , futureonly = futureonly_flag 对象名是要绑定规则的表和列或者用户定义数据类型的名称。v【任务5.20】将新创建的ch_chengji规则对象绑定在学习成绩表的成绩列上exec sp_bindrule ch_chengji, grade.gradenum规则的反绑定v使用sp_unbindrule在当前数据库中为列或用户定义数据类型解除规则绑定。语法格式为:sp_unbindruleobjname=对象名例题v【任务5.21】将上题绑定的规则对象解除execsp_unbindrulegrade.gradenum规
69、则的删除v使用DROPRULE从当前数据库中删除一个或多个用户定义的规则。语法格式如下:DROPRULE规则名,.n例题v【任务5.22】删除ch_chengji对象。DROPRULEch_chengji数据完整性总结完整性类型约束类型描述域完整性Default当使用insert语句时,提供默认值Check指定列可以接受的值Referential根据另一表中的值,指定更新可接受的数据实体完整性Primary key每行唯一的标识符,确保没有重复的行,不允许有空值Unique每行唯一的标识符,确保没有重复的行,允许有空值参照完整性Foreign key定义列和列的组合的值,匹配同一表或另一张表中的关键字check根据表中另一列的值,指定在某列中可接受的数值