SQL Server 2008数据库应用技术(第二版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-23 23:26:30

点击下载

作者:杨云 谭冬平

出版社:中国铁道出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

SQL Server 2008数据库应用技术(第二版)

SQL Server 2008数据库应用技术(第二版)试读:

版权信息

书名:SQL Server 2008数据库应用技术(第二版)

作者: 杨云,谭冬平

排版:中国铁道出版社

出版社:中国铁道出版社

出版时间:2017.02

ISBN:978-7-113-22642-8

本书由中国铁道出版社授权北京当当科文电子商务有限公司制作与发行。

— · 版权所有 侵权必究 · —内容简介

本书以SQL Server 2008 R2为平台,从数据库管理和开发的角度出发,介绍数据库应用开发技术,内容涵盖了开发数据库应用系统所需的技术和知识。本书将一个贯穿全书的案例“学生信息管理系统”融入各章节,阐述了数据库的创建、管理、开发,以及T-SQL程序设计的思想与方法;由浅入深、循序渐进地讲述了数据库基础知识、数据库及表的创建与管理、数据完整性操作、数据库查询、视图操作、存储过程与触发器应用、数据库安全性管理等内容。

本书以“理论必需、够用,强化实用、应用”为原则,总结一线骨干教师的教学、工程实践经验,以贯穿全书的案例为载体,以数据库系统的开发过程为顺序,逐步讲解完成数据库开发的技术方法和相关知识,然后有针对性地配以实训项目,并在最后给出完整的数据库应用系统开发实例。读者通过学习本书,能够准确完整地理解数据库基础知识,掌握SQL Server 2008的基本操作,培养运用T-SQL进行程序设计的思想,提高数据库应用系统开发的水平。

本书适合作为高等职业院校计算机类专业的教材,也可作为相关人员学习SQL Server2008的自学教材或培训用书。前言(第二版)

SQL Server是微软公司推出的一个性能优越的关系型数据库管理系统,也是一个典型的网络数据库管理系统,支持多种操作系统平台,性能可靠、易于使用,是电子商务等应用领域中较好的数据库产品之一。本书以SQL Server 2008 R2为平台,介绍SQL Server数据库应用开发技术。

本书第一版出版近3年,得到了兄弟院校师生的厚爱,已经重印4次。但鉴于技术的发展和教改的深入,我们以实际应用为导向进行了内容重构,同时将软件平台升级为SQL Server 2008,并对一些新的技术做了简单介绍。

1.教材组成

本书主要由5部分构成,包括4个单元和附录。

第1单元为走进SQL Server 2008数据库。该部分由第1~5章组成,主要介绍数据库基础知识;SQL Server 2008安装技术;SQL Server 2008的管理工具使用方法;创建数据库技术,管理数据库技术;创建数据库对象(表);SQL Server 2008查询窗口;管理数据表技术。经过本单元的学习,学生能流畅地完成对数据库的基本操作,如设计数据库,理解服务器、数据库、表之间的关系,对数据表中数据能够进行查询、修改、添加、删除等。

第2单元为数据库及数据库对象的管理。该部分由第6~9章组成,主要介绍提高查询信息速度的技术(索引);保护数据完整性(CHECK约束、DEFAULT约束、唯一约束、规则、默认值、主键、外键、触发器等);数据库安全性技术(视图、存储过程);Transact_SQL语言编程。

第3单元为安全管理与日常维护。该部分由第10章、第11章组成,主要介绍SQL Server 2008安全管理技术,包括用户管理、角色管理以及权限管理等;还介绍了如何备份和还原(恢复)数据库,以及如何导入、导出数据库中的数据等技术。

第4单元为数据库应用开发训练。该部分由第12章组成,主要介绍ASP.NET与SQL Server2008配合开发实例,Java/SQL Server 2008开发和JSP/SQL Server 2008开发关键技术。

第5部分为附录。该部分由附录A学生数据库(XS)表结构及数据样本、附录B连接查询用例表结构及数据样本、附录C常用语句、附录D常用函数组成,主要介绍本书中数据库XS结构和数据,归纳了常用的T-SQL语句和函数,以备学生需要时进行查阅。

2.教学环境

Windows Server 2008操作系统或Windows Server 2012操作系统、IIS、SQL Server 2008 R2,ASP.NET。

3.本书特点

本书按照数据库应用系统开发的工作过程组织内容。在每一章的讲解中,首先在引言中给出本章涉及的内容;接着介绍本章内容在整个数据库系统开发中的定位,明确指出本章的学习目标及需要掌握的知识要点;然后介绍完成本章工作的技术方法和相关知识、理论;最后给出实训,引导学生通过实训掌握完成该项工作应具备的技术技能。本书的最后一章完整地给出了数据库应用系统开发实例,使学生从整体上掌握数据库应用系统的开发。全书以数据库应用系统实例“学生信息管理系统”作为教学用例,贯穿始终。

本书以“理论必需、够用,强化实用、应用”为原则,并总结了一线骨干教师的教学、工程实践经验,以贯穿全书的案例为载体,以数据库系统的开发过程为顺序,逐步讲解完成数据库开发的技术方法和相关知识。书中所有例题都已调试通过,每章的实训和习题都经过精心编制,实用性强,可以帮助学生更好地掌握相应的数据库技术和知识。

本书由杨云、谭冬平任主编,刘震、运永顺任副主编。具体编写分工:武汉信息传播职业技术学院刘震编写第1~4章,湖南电子科技职业学院谭冬平编写第5~7章,大庆职业学院运永顺编写第8~11章,杨云、孙丽娜、粘新育、岳莉、李宪伟、李明生、杨建新、张晖、徐莉、郭娟等参与了本书其他章节的编写工作。

由于时间仓促,编者水平有限,书中疏漏与不妥之处在所难免,敬请广大读者批评指正。作者E-mail:yangyun90@163.com,Windows & Linux教师交流QQ群:189934741。

特别提醒:除了放到中国铁道出版社网上的PPT、习题答案外,作者还有成套的授课教学资料(项目式Word教案、项目实训指导书等),欢迎各位老师通过QQ索取。

编者2016年9月第1单元走进SQL Server 2008数据库

第1章 数据库基础知识

第2章 SQL Server 2008概述

第3章 数据库的创建与管理

第4章 数据表的创建与管理

第5章 使用T-SQL查询维护表中数据第1章数据库基础知识

引言:

本书提供的学生信息管理系统具有档案管理、课程管理、成绩管理、系统管理等功能。通过运行该系统,可以实现学生档案的查询、修改、增加,课程信息的查询、修改、增加,学生成绩的查询、修改、增加,密码的修改等功能。这套系统是利用ASP.NET/SQL Server 2008开发的一套数据库应用系统。学习本课程的目的就是要掌握数据库应用开发技术,能够设计、开发数据库应用系统。为此,本章先介绍必要的数据库基础知识。

本章定位:

数据库系统开发

学习目标:

● 掌握数据库的概念。

● 掌握关系数据模型。

本章要点:

● 数据库的定义。

● 数据库系统的组成。

● 各类数据模型的特点。

● 关系数据库。

● 一般数据库设计步骤。1.1数据管理概述1.1.1 数据和数据处理

1.数据

数据(Data)是描述事物的符号记录,用类型和数值来表示。随着计算机技术的发展,数据的含义更加广泛,不仅包括数字,还包含文字、图像、声音和视频等。在数据库技术中,数据是数据库中存储的基本对象。例如,学生的档案管理记录、货物的运输情况等都是数据。

信息不同于数据,数据是信息的载体;信息是数据的含义,是一种已经被加工为特定形式的数据。这种数据形式对接收者来说是有意义的,即只有有价值的数据才是信息。根据这个定义,那些能表达某种含义的信号、密码、情报、消息都可概括为信息。例如,一个“会议通知”,可以用文字(字符)写成,也可用广播方式(声音)传送,还可用闭路电视(图像)来通知,不管用哪种形式,其含义都是通知,它们所表达的信息都是“会议通知”,所以“会议通知”就是信息。

数据和信息二者密不可分,信息是客观事物性质或特征在人脑中的反映,信息只有通过数据形式表示出来才能被人理解和接受,对信息的记载和描述产生了数据;反之,对众多相关数据加以分析和处理又将产生新的信息。

人们从客观世界中提取所需数据,根据客观需要对数据处理得出相应信息,该信息将对现实世界的行为和决策产生影响,它对于决策者能增加知识,具有现实的或潜在的价值。信息是经过加工处理以后的数据,两者的转换过程如图1-1所示。

图1-1 数据与信息的转换过程

2.数据处理

数据处理是指将数据转换成信息的过程。它是由人、计算机等组成的能进行信息的收集、传递、存储、加工、维护、分析、计划、控制、决策和使用的系统。经过处理,信息被加工成特定形式的数据。

在数据处理过程中,数据计算相对简单,但是处理的数据量大,并且数据之间存在着复杂的联系,因此数据处理的关键是数据管理。

数据管理是指对数据收集、整理、组织、存储和检索等操作。这部分操作是数据处理业务的基本环节,是任何数据处理业务中必不可少的共有部分。因此,必须学习和掌握数据管理技术,对数据处理提供有力的支持。有效的数据管理可以提高数据的使用效率,减轻程序开发人员的负担。数据库技术就是针对数据管理的计算机软件技术。1.1.2 数据管理技术的发展

数据管理是数据库的核心任务,内容包括对数据的分析、组织、编码、存储、检索和维护。随着计算机硬件和软件的发展,数据库技术也不断地发展。计算机在数据管理方面经历了由低级到高级的发展过程,经历了人工管理阶段、文件管理阶段和数据库管理阶段。

1.人工管理阶段

人工管理阶段约在20世纪50年代中期以前,计算机技术相对落后,硬件主要是磁带、卡片、纸带,没有磁盘,软件没有操作系统,主要用于科学计算。因此,没有专门管理数据的软件,数据由计算或处理它的程序自行携带。数据管理的任务包括存储结构、存取方法、输入/输出方式等,完全由程序设计人员负责。

这一时期计算机数据管理的特点如下:

①数据不保存。

②没有对数据进行管理的软件系统。

③没有文件的概念。

④一组数据对应于一个程序,数据是面向应用的。一个程序中的数据不能被其他程序所利用,因而,程序之间存在着大量的重复数据,造成了数据的冗余。

以上特点可用图形来表示,如图1-2所示。

图1-2 人工管理阶段数据管理

2.文件管理阶段

文件管理阶段约为20世纪50年代后期至60年代中后期,此时计算机已经开始大量用于管理数据的阶段。此时的计算机硬件具有磁盘、磁鼓等直接存储设备。在操作系统上有了专门用于管理数据的软件,称为文件系统。

这一时期计算机数据管理的特点如下:

①数据需要长期保存在外存上供反复使用。

②程序和数据之间有了一定的独立性。

③文件形式多样化。

④文件的存取基本上以记录为单位。

以上特点可用图形来表示,如图1-3所示。

图1-3 文件系统阶段的数据管理

3.数据库管理阶段

20世纪60年代后期,数据管理规模更为庞大,应用更广泛,数据量剧增,共享要求更高。在硬件方面有了大容量的快速存取的磁盘,软件方面出现了数据库管理系统。它的功能是对所有的数据进行统一、集中和独立式的管理,使数据存储独立于使用数据的程序,减少了数据的冗余度、节约存储空间,提高了数据的一致性和完整性,充分实现了数据的共享。多个用户能够同时访问数据库中的数据,减小了应用程序的开发和维护代价。这一阶段程序和数据的关系如图1-4所示。

图1-4 数据库管理阶段的数据管理1.2数据库系统概述1.2.1 数据库的概念

数据库、数据库管理系统和数据库系统是数据库技术中常用的基本术语,下面简单介绍。

1.数据库

数据库(DataBase,DB)是指长期存储在计算机内,按一定数据模型组织存储、可共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。

2.数据库管理系统

数据库管理系统(DataBase Management System,DBMS)是用户和操作系统之间的数据管理软件。它使用户方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的数据恢复。其功能如下:

①数据定义功能。数据库管理系统具有专门的数据定义语言(Data Description Language,DDL),用户可以方便地创建、修改、删除数据库及数据库对象。

②数据操纵功能。数据库管理系统提供数据操纵语言(Data Manipulation Language,DML),可以实现对数据库中数据的检索、插入、删除和修改等操作。

③数据库运行管理功能。数据库运行过程中,由数据库管理系统统一控制管理,以保证数据的安全性、完整性。当多个用户同时访问相同数据时,由数据库管理系统进行并发控制,以保证每个用户的运行结果都是正确的。

④数据库的维护功能。它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监测、分析功能,等等。这些功能通常由一些实用程序完成。

总之,数据库管理系统是用户和数据库之间的交互界面,在各种计算机软件中,数据库管理系统软件占有极其重要的位置。用户只需通过它就可以实现对数据库的各种操作与管理。数据库管理系统在计算机层次结构中的地位如图1-5所示。

图1-5 DBMS在计算机层次结构中的地位

目前,广泛应用的大型网络数据库管理系统有SQL Server、DB2、Oracle、Sybase等,常用的桌面数据库管理系统有Visual FoxPro、Access等。

3.数据库系统

数据库系统(DataBase System,DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、操作系统、数据库管理系统、应用开发工具、应用系统、数据库管理员、应用程序员和用户构成。数据库系统可用图1-6表示。

图1-6 数据库系统

其中,数据库管理员、应用程序员和用户主要是指存储、维护和检索数据的各类使用者,主要有三类:

①最终用户(End User,EU)。最终用户是应用程序的使用者,通过应用程序与数据库进行交互。

②应用程序员(Application Programmer,AP)。应用程序员是在开发周期内进行数据库结构设计、完成应用程序开发的人员,通常多于1人,并保证程序在运行周期中功能和性能正确无误。

③数据库管理员(Database Administrator,DBA)。数据库管理员对数据库进行日常的管理,负责全面管理和控制数据库系统,是数据库系统中最重要的人员,其职责包括:设计与定义数据库系统,帮助最终用户使用数据库系统;监督与控制数据库系统的使用和运行;改进和重组数据库系统,优化数据库系统的性能;备份与恢复数据库;当用户的应用需求增加或改变时,对数据库进行较大的改造,即重构数据库。1.2.2 数据库系统的模式结构

在数据模型中有“型”(Type)和“值”(Value)的概念。型是对某一类数据的结构和属性的说明,值是型的一个具体赋值。例如,学生人事记录定义为(学号,姓名,性别,系别,年龄,籍贯)这样的记录型,而(900201,李明,男,计算机,22,江苏)则是该记录型的一个记录值。

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其关系,而实例反映的是数据库某一时刻的状态。

虽然实际的数据库系统软件产品种类很多,它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据存储结构也各有不同,但从数据库管理系统角度看,它们在体系结构上通常都具有相同的特征,即采用三级模式结构(微机上的个别小型数据库系统除外),并提供二级映像功能。

1.数据库系统的三级模式结构

数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级构成,如图1-7所示。

图1-7 数据库系统的三级模式(1)模式

模式又称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境,与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。

实际上模式是数据库在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构(例如,数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。(2)外模式

外模式又称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。它通常是模式的子集。

一个数据库可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则他们的外模式描述就是不同的。即使对模式中的同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。另一方面,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们来说是不可见的。(3)内模式

内模式又称存储模式,是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序存储、按照B树结构存储还是按Hash方法存储,索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等。一个数据库只有一个内模式。

2.数据库系统的二级映像

数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。而为了能够在内部实现这3个抽象层次的联系和转换,数据库系统在这三级模式之间提供了二级映像:外模式/模式映像和模式/内模式映像。正是这二级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。这些映像定义通常包含在各自外模式的描述中。当模式改变时(例如,增加新的数据类型、新的数据项、新的关系等),由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变,从而使应用程序不必修改,保证了数据的逻辑独立性。

数据库中只有一个模式,也只有一个内模式,所以模式/内模式的映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的。该映像定义通常包含在模式描述中。当数据库的存储结构改变了(例如,采用了更先进的存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而保证了数据的物理独立性。1.2.3 数据库系统的特点

数据库系统的主要特点包括数据结构化、数据共享和数据独立性,以及统一的数据控制功能。

1.数据结构化

数据库中的数据是以一定的逻辑结构存储的,这种结构是由数据库管理系统所支持的数据模型决定的。数据库系统不仅可以表示事物内部各数据项之间的联系,而且可以表示事物与事物之间的联系。只有按照一定结构组织和存储的数据,才便于对它们实现有效的管理。

2.数据共享

数据共享是数据库系统最重要的特点。数据库中的数据能够被多个用户、多个应用程序所共享。此外,由于数据库中的数据被集中管理和统一组织,因而避免了不必要的数据冗余。

3.数据独立性

在数据库系统中,数据与程序基本上是相互独立的,其相互依赖的程度已大大减小。对数据结构的修改将不会对程序产生大的影响。反过来,对程序的修改也不会对数据产生大的影响。

4.统一的数据控制

数据库系统必须提供必要的数据安全保护措施,主要包括:

①安全性控制。数据库系统提供了安全措施,使得只有合法用户才能进行其权限范围内的操作,防止非法操作造成数据的破坏或泄密。

②完整性控制。数据的完整性包括数据的正确性、有效性和相容性。数据库系统可以提供必要的手段来保证数据库中的数据在处理过程中始终符合其事先规定的完整性要求。

③并发操作控制。对数据的共享将不可避免地出现对数据的并发操作,也就是说,多个用户或者多个应用程序同时使用同一个数据库、同一个数据库表或者同一条记录。如果不加以控制将导致相互干扰而出现错误的结果,使得数据的完整性遭到破坏,所以必须对并发操作进行控制协调。一般采用数据锁定的方法来处理并发操作,当某个用户访问并修改某个数据时,应先将该数据锁定,当这个用户完成对此数据的写操作之后消除锁定,然后才允许其他的用户访问此数据。1.3数据模型1.3.1 数据模型的概念

数据库是某个企业、组织或部门所涉及的数据的综合,它不仅要反映数据本身的内容,而且要反映数据间的联系。由于计算机不可能直接处理现实世界中的具体事物,所以人们必须把具体事物转换成计算机能够处理的数据,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的模拟。现有的数据库系统均是基于某种数据模型的。

数据库管理系统是按照一定的数据模型组织数据的,数据结构、数据操作和完整性约束称为数据模型的三要素。

1.数据结构

数据结构是一组规定的用以构造数据库的基本数据结构类型。这是数据模型中最基本的部分,它规定如何把基本数据项组织成更大的数据单位,并通过这种结构来表达数据项之间的关系。由于数据模型是现实世界与机器世界的中介,因此它的基本数据结构类型应是简单且易于理解的;同时,这种基本数据结构类型还应有很强的表达能力,可以有效地表达数据之间各种复杂的关系。

2.数据操作

数据操作能实现对数据结构按任意方式组合起来所得数据库的任何部分进行检索、推导和修改等。实际上,数据结构只规定了数据的静态结构,而操作的定义则说明了数据的动态特性。同样的静态结构,由于定义在其上的操作不同,可以形成不同的数据模型。

3.完整性约束

完整性约束用于给出不破坏数据库完整性、数据相容性等数据关系的限定。为了避免对数据执行某些操作时破坏数据的正常关系,常将那些有普遍性的问题归纳起来,形成一组通用的约束规则,只允许在满足该组规则的条件下对数据库进行插入、删除和更新等操作。

综上所述,一个数据模型实际上给出了一个通用的在计算机上可实现的现实世界的信息结构,并且可以动态地模拟这种结构的变化,因此它是一种抽象方法。为在计算机上实现这种方法,研究者开发和研制了相应的软件——数据库管理系统(DBMS)。DBMS是数据库系统的主要组成部分。

数据模型大体上分为两种类型:一种是独立于计算机系统的数据模型,即概念模型;另一种则是涉及计算机系统和数据库管理系统的逻辑模型。1.3.2 概念模型

信息是对客观事物及其相互关系的表征,同时数据是信息的具体化、形象化,是表示信息的物理符号。在管理信息系统中,要对大量的数据进行处理,首先要弄清楚现实世界中事物及事物间的联系是怎样的,然后再逐步分析、变换,得到系统可以处理的形式。因此,对客观世界的认识、描述是一个逐步进行的过程,有层次之分,可将它们分成3个层次。

1.现实世界

现实世界是客观存在的事物及其相互联系,客观存在的事物分为“对象”和“性质”两个方面,同时事物之间有广泛的联系。

2.信息世界

信息世界是客观存在的现实世界在人们头脑中的反映。人们对客观世界经过一定的认识过程,进入到信息世界形成关于客观事物及其相互联系的信息模型,在信息模型中,客观对象用实体表示,客观对象的性质用属性表示。

3.数据世界

对信息世界中的有关信息经过加工、编码、格式化等具体处理,便进入了数据世界。数据世界中的数据既能代表和体现信息模型,同时又向机器世界前进了一步,便于用机器进行处理。在这里,每一实体用记录表示,对应于实体的属性用数据项(或称字段)表示,现实世界中的事物及其联系用数据模型表示。

3个领域间的关系如图1-8所示。

图1-8 客观描述的层次

由此可以看出,客观事物及其联系是信息之源,是组织和管理数据的出发点,同时也是使用数据库的归宿。为了把现实世界中的具体事物进行抽象,人们常常首先把现实世界抽象成为信息世界,然后再把信息世界转化为机器世界。把现实世界抽象为信息世界,实际上是抽象出现实系统中有应用价值的元素及其联系,这时所形成的信息结构是概念模型。在抽象出概念模型后,再把概念模型转换为计算机上某一DBMS所支持的数据模型。概念模型是现实世界到真实机器的一个中间层次,是按照用户的观点对数据和信息建模,是数据库设计人员与用户之间进行交流的语言。

目前,描述概念模型的最常用的方法是实体-联系(Entity-Relationship,E-R)方法。这种方法简单、实用,它所使用的工具称为E-R图。E-R图中包括实体、属性和联系3种因素。实体用矩形框表示,属性用椭圆形框表示,联系用菱形框表示,框内填入相应的实体名,实体与属性或者实体与联系之间用无向直线连接,多值属性用双椭圆形框表示,派生属性用虚椭圆形框表示。

E-R模型中使用的基本符号如图1-9所示。

①实体。客观存在并且可以相互区别的事物称为实体。实体可以是具体的事物,也可以是抽象的事件。例如,学生、图书等属于具体的事物,订货、借阅图书等活动是抽象的事件。

图1-9 E-R图基本符号表示

②实体集。同一类实体的集合称为实体集。由于实体集中的个体成千上万,人们不可能也没有必要一一指出每一个属性,因此引入实体型。

③实体型。对同类实体的共有特征的抽象定义称为实体型。由实体名及其属性名集合来抽象和描述。例如,学生(学号,姓名,年龄,性别,成绩)是一个实体型。

④属性。描述实体的特性称为属性。例如,学生实体用学号、姓名、性别、年龄等属性来描述。不同的实体用不同的属性区分。

⑤联系。实体之间的相互关系称为联系,它反映现实世界事物之间的相互关联。实体之间的联系可以归纳为3种类型:

● 一对一联系(1:1):设A、B为两个实体集,如果A中的每个实体至多和B中的一个实体有联系,反过来,B中的每个实体至多和A中的一个实体有联系,称A对B或者B对A是一对一联系。例如,班级和班长这两个实体之间就是一对一的联系,如图1-10(a)所示。

● 一对多联系(1:n):设A、B为两个实体集,如果A中的每个实体可以和B中的多个实体有联系,而B中的每个实体至多和A中的一个实体有联系,称A对B是一对多联系。例如,班级和学生这两个实体之间就是一对多联系,如图1-10(b)所示。

● 多对多联系(m:n):设A、B为两个实体集,如果A中的每个实体可以和B中的多个实体有联系,而B中的每个实体也可以和A中的多个实体有联系,称A对B或B对A是多对多联系。例如,学生和课程这两个实体之间就是多对多联系,如图1-10(c)所示。

图1-10 实体间的联系

值得注意的是,联系也可以有属性,例如,学生选修课程,则“选修”这个联系就有“成绩”属性,如图1-11所示。

图1-11 实体-联系属性图

由于实体集中的个体成千上万,人们不可能也没有必要一一指出个体间的对应关系,只需指出实体型间的联系,注明联系方式,这样既简单又能表达清楚概念。具体画法是:把有联系的实体(矩形框)通过联系(菱形框)连接起来,注明联系方式,再把实体的属性(椭圆框)连到相应实体上。

一般为了简洁,在E-R图中可略去属性,着重表示实体联系情况,属性可单独以表格形式列出。1.3.3 逻辑模型

逻辑模型指数据库中数据的组织形式和联系方式。数据库中的数据是按照一定的逻辑结构存储的,这种结构是用数据模型来表示的。现有的数据库管理系统都是基于某种数据模型的。按照数据库中数据采取的不同联系方式,数据模型可分为3种:层次模型、网状模型和关系模型。

1.层次模型

用树形结构表示实体及其之间联系的模型称为层次模型。在这种模型中,数据被组织成由根开始的倒置的一棵树,每个实体由根开始沿着不同的分支放在不同的层次上。

层次模型的优点是结构简单,层次清晰,易于实现;适合描述类似家族关系、行政编制及目录结构等信息载体的数据结构。

其基本结构有两个限制:

①此模型中有且仅有一个结点没有双亲结点,称为根结点,其层次最高。

②根结点以外的其他结点有且仅有一个双亲结点。

所以,使用层次模型可以非常直接、方便地表示1:1和1:n联系,但不能直接表示m:n联系,难以实现对复杂数据关系的描述。一个层次模型的简单例子如图1-12所示。

图1-12 PS数据库层次模型

该层次数据库PS具有6个记录类型。记录类型P(学院)是根结点,由字段P#(学院编号)、PN(学院名称)、PL(办公地点)组成,它有两个子结点:D(系)和DP(部)。记录类型R(教研室)和S(学生)是记录类型D的两个子结点。T(教师)是R的子结点。其中,记录类型D由字段D#(系编号)和DN(系名)组成,记录类型DP由字段DP#(部门编号)和DPN(部门名称)组成,记录类型R由R#(教研室编号)、RN(教研室名称)和RC(教研室人数)组成,记录类型S由S#(学号)、SN(学生姓名)和SS(学生成绩)组成,记录类型T由T#(教师编号)、TN(教师姓名)和TD(研究方向)组成。

在该层次结构中,DP、S、T是叶子结点,它们没有子结点。由P到D、由P到DP、由D到R、由D到S、由R到T均是一对多的联系。

2.网状模型

网状模型是一种比层次模型更具有普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有多种联系。因此,网状模型可以更直接地描述现实世界。而层次模型实际上是网状模型的一个特例。

网状模型的主要优点是在表示数据之间的多对多联系时具有很大的灵活性,但是这种灵活性是以数据结构的复杂化为代价的。

网状结构可以有很多种,如图1-13所示。其中图1-13(a)所示为一个简单的网状结构,其记录类型之间都是1:n的联系。图1-13(b)所示为一个复杂的网状结构,学生与课程之间是m:n的联系,一个学生可以选修多门课程,一门课程可以被多个学生选修。图1-13(c)所示为一个简单环形网状结构,每个父亲可以有多个已为人父的儿子,而这些已为人父的儿子却只有一个父亲。图1-13(d)所示为一个复杂的环形网状结构,每个子女都可以有多个子女,而这多个子女中的每一个都可以再有多个子女(m:n)。图1-13(e)中人和树的联系有多种。图1-13(f)中既有父母到子女的联系,又有子女到父母的联系。

图1-13 网状模型

3.关系模型

关系模型是目前最重要的一种模型。美国IBM公司的研究员E.F.Codd于1970年发表题为《大型共享系统的关系数据库的关系模型》的论文,文中首次提出了数据库系统的关系模型。20世纪80年代以来,计算机厂商推出的数据库管理系统(DBMS)几乎都支持关系模型。

关系模型与层次和网状模型的理论和风格截然不同,如果说层次和网状模型是用“图”表示实体及其联系,那么关系模型则是用“二维表”来表示的。从现实世界中抽象出的实体及其联系都使用关系这种二维表表示。而关系模型就是用若干个二维表来表示实体及其联系的,这是关系模型的本质。关系模型如图1-14所示。

图1-14 关系模型

由于关系型数据库采用了人们习惯使用的表格形式作为存储结构,易学易用,因而成为使用最广泛的数据库模型。1.4关系数据库1.4.1 基本概念

1.关系术语

在关系数据库中,有以下几个常见的关系术语:

①关系。关系就是一个二维表格,每个关系都有一个关系名,在SQL Server 2008中,一个关系称为一个表(Table)。

②记录(元组)。在一个具体的关系中,每一行称为一个记录,又称元组。

③字段(属性)。在一个具体的关系中,每一列称为一个字段,又称属性。

④域。域就是属性的取值范围,即不同记录对同一个属性的取值所予以限定的范围。例如,“成绩”属性的域是0~100;“性别”属性的域范围为“男”和“女”。

⑤关键字。在一个关系中有一个或几个这样的字段(属性),其值可以唯一地标识一个记录,称为关键字。例如,学生表中的“学号”字段就可以作为一个关键字,而“姓名”字段因其值不唯一而不能作为关键字。

⑥关系模式。对关系的描述称为关系模式。一个关系模式对应一个关系,是命名的属性集合。其格式为:

关系名(属性名1,属性名2,…,属性名n)

例如:

学生(学号,姓名,年龄,性别)

课程(课程号,课程名,学分,学时)

选修(学号,课程号,成绩)

一个具体的关系模型则是若干个相联系的关系模式的集合。以上3个关系模式就组成了关系模型。

2.关系的约束

关系表现为二维表,但不是所有的二维表都是关系。成为关系的二维表有如下约束:

①不允许“表中套表”,即表中每个属性必须是不可分割的数据单元。或者说每个字段不能再分为若干个字段,即表中不能再包含表。

②在同一个关系中不能出现相同的属性名。

③列的次序可以任意交换,不改变关系的实际意义。

④表中的行称为元组,代表一个实体,因此表中不允许出现相同的两行。

⑤行的次序可以任意交换,不会改变关系的意义。

注意: 上述各种名词,在实际的关系型DBMS中往往叫法不一样,如在SQL Sever大型数据库中把关系称为“数据库文件”或“表”,把属性称为“字段”,把元组称为“记录”。1.4.2 关系运算

数学中的算术运算是大家熟悉的。例如,2+3是一个数学运算,该运算的运算对象是数值2和3,运算法则是加法,运算结果也是数值5。与此类似,关系运算的运算对象是关系(二维表),关系运算的法则包括选择、投影、连接,关系运算结果也是关系(二维表)。下面分别介绍这3种关系运算法则。

1.选择

选择(Selection)运算是在一个关系中找出满足给定条件的记录。选择是从行的角度对二维表格的内容进行筛选,形成新的关系。例如,学生表如表1-1所示。

表1-1 学生表【例1-1】 从学生表中选择男同学,其结果如表1-2所示。SQL语句如下:

表1-2 选择运算结果

通俗地说,选择运算是将满足条件的元组提取出来,组成一个新的关系。

2.投影

投影(Projection)是从一个关系中找出符合条件的属性列组成新的关系。投影是从列的角度对二维表的内容进行筛选或重组,形成新的关系。【例1-2】 从表1-1所示的学生表中筛选所需要的列:姓名和出生日期,结果如表1-3所示。SQL语句如下:

SELECT 姓名,出生日期

FROM  学生

表1-3 投影运算结果

从上述两例得知:选择从行的角度进行运算,投影则是从列的角度进行运算。

注意: 若投影后出现完全相同的元组(行),则取消重复的元组(行)。【例1-3】 从表1-1所示的学生表中筛选性别列,结果如表1-4所示。SQL语句如下:

SELECT 性别

FROM  学生

表1-4 投影运算结果

3.连接

连接(Join)是从两个关系的笛卡儿积中选取属性之间满足一定条件的元组形成的新关系。在此不给出笛卡儿积的定义,仅仅通过一个举例对笛卡儿积进行初步了解,对于笛卡儿积的定义请大家参考离散数学。

设关系R和关系S分别如表1-5和表1-6所示。

表1-5 关系R

表1-6 关系S

说明:关系R中的属性A和关系S中的属性A取自相同的域。

对关系R和关系S做笛卡儿积的结果如表1-7所示。

表1-7 R和S的笛卡儿积

连接运算中有两种常用的连接:一种是等值连接(Equi-Join);另一种是自然连接(Natural Join)。等值连接是选取R与S的笛卡儿积的属性值相等的那些元组。自然连接要求两个关系中进行比较的分量必须是相同属性组,且要在结果中把重复的属性去掉。【例1-4】 关系R与关系S按属性A的值做等值连接的结果如表1-8所示。

表1-8 等值连接后的结果

自然连接Rs的结果如表1-9所示。

表1-9 自然连接后的结果

从表中可看出两点:第一点是一般的连接操作是从行的角度进行运算的;第二点是自然连接与等值连接的主要区别是自然连接中没有相同的列。

总之,在对关系数据库的查询中,利用关系的投影、选择和连接运算可以很方便地分解或构造新的关系。1.4.3 关系数据库

基于关系模型建立的数据库称为关系数据库,它具有通用的数据管理功能,数据表示能力较强,易于理解,使用方便。20世纪80年代以来,关系数据库理论日益完善,并在数据库系统中得到了广泛的应用,是各类数据库中使用最为重要、最为广泛、最为流行的数据库。

关系数据库是一些相关的表和其他数据库对象的集合。这里有三层含义:

①在关系型数据库中,数据存储在二维表结构的数据表中,一个表是一个关系,又称实体集。通常:

● 一个表包含若干行,每一行称为一条记录,表示一个实体。

● 每一行数据由多列组成,每一列称为一个字段,反映了该实体某一方面的属性。

● 实体的属性中,能唯一标识实体集中每个实体的某个或某几个属性,称为实体的关键字,在关系数据库中,关键字称为主键。

②数据库所包含的表之间是有联系的,联系由表的主键和外键所体现的参照关系实现。通常:

● 关系表现为表。关系数据库一般由多个关系(表)组成。

● 表之间由某些字段的相关性而产生联系。在关系数据库中,表既能反映实体,又能表示实体之间的联系。

● 用表的主键和外键反映实体间的联系。在关系数据库中,外键(Foreign Key)是指表中含有的与另一个表的主键相对应的字段,用来与其他表建立联系。

③数据库不仅包含表,还包含其他的数据库对象,如视图、存储过程和索引等。

数据库是存储数据的容器,数据主要保存在数据库的表中,所以数据表是数据库的基本对象。除此之外,在数据库中还有其他对象,常用的有:

● 视图:是一个虚拟表,可用于从实际表中检索数据,并按指定的结构形式浏览。

● 存储过程:是一个预编译的语句和指令的集合,可执行查询或者数据维护工作。

● 触发器:是特殊的存储过程,可设计为在对数据进行插入、修改或删除时自动调用。

● 索引:用于实现快速对数据表中数据的检索访问,以及增强数据完整性。

● 规则:通过绑定操作,可用于限定数据表中数据的有效值或数据类型。

目前使用的数据库系统大都是关系数据库。现在关系数据库以其完备的理论基础、简单的模型和使用的便捷性等优点获得了最广泛的应用。本书中阐述的数据库模型都是关系模型。1.5数据库设计

数据库技术是信息资源开发、管理和服务的最有效手段,因此,数据库的应用范围越来越广,从小型的单项事务处理到大型的信息系统,大都利用了先进的数据库技术来保持系统数据库的整体性、完整性和共享性。

大型数据库设计是一项庞大的工程,其开发周期长、耗资多。它要求数据库设计人员既有坚实的数据库知识,又充分了解实际应用对象。所以,数据库设计是一项涉及多学科的综合性技术。

数据库设计的任务是在DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统,如图1-15所示。

图1-15 数据库设计

数据库设计应该与应用系统设计相结合,即数据库的设计内容主要包括两方面:一是结构设计,也就是设计数据库框架或者数据库结构;二是行为设计,也就是应用程序和事务处理等的设计。

从数据库应用系统开发的全过程来考虑,可将数据库的设计归纳为6个步骤:

①需求分析。

②概念结构设计。

③逻辑结构设计。

④数据库物理设计。

⑤数据库实施。

⑥数据库的运行与维护。

在整个设计过程中,应努力把对数据库的设计(通常是关系模型的设计)和对数据库中数据处理的设计(程序设计)紧密结合起来,将这两方面的分析、设计和实现在各个步骤中同时进行,以便相互参照,相互补充。事实上,如果不了解应用环境对数据的处理要求,或没有考虑如何去实现这些处理要求,是不可能设计一个良好的数据库结构的。1.5.1 需求分析

进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步,需求分析的结果是否准确地反映了用户的实际要求,将直接影响后续各个设计阶段,最终将影响到设计结果是否合理和实用。它的目的是分析系统的需求。该过程的主要任务是从数据库的所有用户那里收集对数据的需求和对数据处理的要求,主要涉及应用环境分析、数据流程分析、数据需求收集与分析等,并把这些需求写成用户和设计人员都能接受的说明书。

确定用户的最终需求其实是一件很困难的事,这是因为一方面用户缺少计算机知识,开始时无法确定计算机究竟能做什么,不能做什么,因此无法马上准确地表达自己的需求,他们所提出的需求往往不断变化;另一方面设计人员缺少用户的专业知识,不易理解用户的真正需求。此外,新的硬件、软件技术的出现也会使用户需求发生变化。因此,设计人员必须与用户不断深入地进行交流,才能逐步确定用户的实际需求。

本书以“学生信息管理系统”的开发为例,简单描述数据库的开发流程。通过与某校学生处及教务处的学生管理流程为基准收集到其所需的基本需求包括:学生档案管理、教学课程管理、学生成绩管理、系统管理等。在学生档案管理中能够查询、修改、添加学生的基本档案信息;在教学课程管理中能修改所开设课程、添加新开设课程、删除淘汰的课程;在学生成绩管理中能针对学生每门课程的学习情况,记录其成绩并提供查询和修改功能;在系统管理中可以提供用户登录验证、用户修改密码等功能。1.5.2 概念结构设计

将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。概念结构设计是整个数据库设计的关键,是对现实世界的一种抽象,即对人、物、事和概念进行人为处理,抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体的DBMS的概念模型。描述概念结构设计的主要工具是E-R图。

E-R图方法是面向问题的概念性模型,与数据的存储组织、存取方法、效率等无关,而不会考虑这些数据在DBMS中的态势。E-R方法的基本步骤如下:

①根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部E-R图。

②集成局部E-R图,步骤如下:

● 划分和确定实体类型和关系类型。

● 确定属性,找出该实体所包含的实际属性。

● 画出E-R图。

③优化局部E-R图,产生集成E-R图。(包括消除冲突、修改与重构)

针对“学生信息管理系统”的需求,抽取出各实体及其所需属性并形成局部E-R图。

学生实体E-R图如图1-16所示;课程实体E-R图如图1-17所示。

图1-16 学生实体E-R图

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载