数据库原理与应用技术(SQL Server 2008)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-03 02:13:47

点击下载

作者:陈漫红

出版社:北京理工大学出版社

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

数据库原理与应用技术(SQL Server 2008)

数据库原理与应用技术(SQL Server 2008)试读:

前言

本书是面向计算机及相关专业学生学习数据库知识而编写的教材,其特点是内容全面,其中既包括数据库的基础理论知识,又包括数据库前端和后端的应用技术。全书共分以下三个部分。

第一部分(第1章):介绍了数据库系统的基本概念和原理。具体内容包括数据库概述、数据库系统的组成与结构、关系数据库理论及数据库的设计步骤等。

第二部分(第2~10章):是将数据库的理论与具体的数据库管理系统相结合,介绍SQL Server 2008的功能和使用方法。具体包括SQL Server 2008数据库管理系统介绍,数据库及表的创建和管理,视图、存储过程和触发器的创建和使用,SQL Server 2008的安全管理及数据库的日常维护等内容。

第三部分(第11章):是数据库的应用技术,主要介绍如何以SQL Server 2008作为后台服务器,在Visual C#环境中开发数据库的前端应用程序。分别用实例来介绍数据库应用程序的整个开发过程。

本书比较全面地介绍了数据库系统的基本原理、技术实现和基本应用,编写力求内容全面、概念清晰、语言流畅、图文并茂、理论与实际相结合,相关章节与当今流行的SQL Server 2008数据库系统相结合,并以Visual C#开发实例来介绍数据库管理应用程序从设计到开发和实现的整个过程。本书的教学大约需要64学时,其中理论课20学时,实验与实训安排44学时,充分体现了学以致用的教学特点。

本书是作者多年从事数据库原理教学工作的经验和总结,其中第1~6章由北京联合大学师范学院陈漫红编写,第7~9章由张银霞编写,第10~11章由魏威编写。全书由陈漫红负责统稿、审定。

由于作者水平有限,书中不妥之处在所难免,敬请广大读者批评指正。编者第1章数据库基本理论

本章内容介绍

随着信息管理水平的不断提高,信息资源已经成为企业重要的财富和资源,用于管理信息的数据库技术也得到了很大的发展,其应用领域也越来越广泛。数据库应用也从简单的事务管理扩展到各个应用领域,如工程设计的工程数据库、Internet的Web数据库、决策支持的数据仓库技术、多媒体技术的多媒体数据库等,但应用最广泛的还是基于事务管理的各类信息系统领域。

本章主要介绍数据库的基础理论知识,包括数据和数据模型,数据库的系统结构,关系数据库中的关系运算、关系的规范化、数据库的完整性控制以及关系数据库的设计等。1.1数据库概述

随着信息管理技术的不断提高,其应用的范围也日益扩大,信息已成为人们重要的财富和资源,而进行信息数据处理的核心技术是数据库技术,数据库技术已逐步渗透到人们日常生活工作和学习的方方面面。数据库的应用,为高效、精确地处理数据创造了条件,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。1.1.1 数据与数据处理1.数据

数据(data)是数据库中存储的基本对象。为了用计算机来处理现实世界的各种信息,人们需要用计算机来描述各种事物,用自然语言来描述虽然比较直接,但过于烦琐,不便于形式化,而且也不利于用计算机来表达。为此,人们常常只抽取那些感兴趣的事物特征或属性作为事物的描述。所谓数据,指的是用符号记录下来的可以区别的信息。数据的表现形式多种多样,主要有数字、文字、声音、图形和图像等形式。

可以将数据定义为描述事物的符号记录。这些符号可以是数字,也可以是文字、图形、图像、声音、语言等多种形式,并且这些符号都可以经过数字化后保存到计算机中。2.数据处理

数据处理又称信息处理,是将数据转换成信息的过程,包括对数据的收集、存储、加工、检索和传输等一系列活动。其目的是从大量的原始数据中抽取和推导出有价值的信息,以进行各种应用。数据与信息之间的关系可以表示为:信息=数据+数据处理。3.数据与信息的关系

数据是承载信息的载体,是描述信息的物理符号,而信息是数据的内涵。比如,“40 ℃”表示一个数据,没有任何意义,但如果表示天气的温度,或者是人体的温度,就有意义了,这就是信息。所以说信息是客观世界各种事物变化和特征的反映,信息可以通信,并且可以形成知识。人们正是通过获得信息来认识事物、区别事物,从而来改造世界的。

数据实际上是记录下来的被鉴别的符号,它本身并没有意义,例如(2013020351011,张捷,女,1995-07,北京,北京联合大学师范学院)就仅仅是一组数据,只有经过解释从而成为信息才有意义。所以可以说信息是经过加工,并对客观世界产生影响的数据。数据与信息的对应因具体环境而异,同一信息可以用不同的数据来表示,同一数据也可有不同的解释。

例如在大学里,同样是一个学生的记录,教务管理部门需要的信息主要是学生的来源、入学成绩、在校时期的各学年成绩等,以便分析教务工作和学生的培养情况;而学生管理部门则需要学生的家庭情况、在校表现情况、奖惩记录等信息,以便做好学生管理和就业分配等工作。

综上所述,数据和信息是两个互相联系、互相依存又相互区别的概念。信息是加工处理后的数据,是数据所表达的内容,而数据则是信息的表达形式。1.1.2 数据管理的产生与发展

随着数据处理数量的增长,数据管理技术也有了巨大的发展,数据管理是指对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题。随着计算机硬件和软件技术的发展,经历了如下几个阶段:1.人工管理

这一阶段即20世纪50年代中期以前,计算机主要用于科学计算,计算机硬件状况是,外存只有磁带、卡片、纸带,还没有磁盘等直接存取的存储设备;从软件看,只有汇编语言,没有操作系统,没有管理数据的软件,数据处理方式是批处理。

该阶段数据管理的特点是:数据不保存在计算机内,数据需要由应用程序自己进行管理,基本上没有文件概念,数据不能共享,数据面向应用程序。2.文件管理

这一阶段从20世纪50年代后期到60年代中期,计算机硬件和软件都得到了发展。计算机不仅用于科学计算,还大量用于管理。操作系统中已经有了专门的数据管理软件,一般称为文件系统。

该阶段的数据管理形成了如下几个特点:数据可以长期保存,文件系统管理数据,文件已经多样化,数据的存取基本上以记录为单位。

例如,要用某种程序设计语言编写对学生信息进行管理的系统,在此系统中要对学生的基本信息和选课情况进行管理。在学生基本信息管理中要用到学生的基本信息数据文件(设为F1);学生选课情况的管理包括学生的基本信息、课程基本信息文件(设为F2),以及学生的选课信息文件(设为F3)。另设A1程序为实现学生基本信息管理功能的应用程序,A2程序为实现学生选课管理功能的应用程序。文件管理系统的示例如图1-1所示。图1-1 文件管理系统示例

假设学生基本信息文件F1包含学号、姓名、性别、出生日期、所在系、专业、所在班、特长、家庭住址;课程基本信息文件F2包含课程号、课程名、授课学期、学分、课程性质;学生选课信息文件F3包含学号、姓名、专业、课程号、课程名、修课类型、修课时间、考试成绩。

在学生选课管理中,若有学生选课,需先查F1文件,判断有无此学生;若有,则访问F2文件判断其所选的课程是否存在,若存在,则将学生选课信息写到F3文件中。这样看起来似乎很好,但仔细分析会发现文件系统仍存在很多缺点:(1)数据共享性差,数据冗余度大

在文件管理系统中,一个文件基本上对应于一个应用程序,当不同的应用程序具有相同的数据时,也必须建立各自的文件,而不能共享相同的数据。比如应用程序A2需要在F3文件中包含学生的所有或大部分信息,则除了学号之外,还需要姓名、专业、所在系等信息,而F1文件中也包含这些信息,因此F3文件和F1文件中有重复的信息,数据的冗余度大,浪费存储空间,同时由于相同数据的重复存储、各自管理,给数据的修改和维护带来了困难,更为严重的是,容易造成数据的不一致。(2)数据孤立,数据间的联系较弱

在文件管理系统中,文件与文件之间是彼此孤立,毫不相干的,文件之间的联系必须通过程序来实现。例如上例中的F1文件和F3文件。F3文件中的学号、姓名等学生基本信息必须是F1文件中已经存在的;同样,F3文件中的课程号等与课程有关的基本信息也必须是F2文件中已经存在的。这些数据之间的联系是实际需求当中所要求的很自然的联系,但文件系统本身不具备自动实现这些联系的功能,必须依靠应用程序来保证这些联系,也就是必须通过手工编写程序来保证这些联系。这不但增加了程序编写的工作量和复杂度,而且当联系很复杂时,也难以保证其正确性。(3)应用程序依赖性

就文件处理而言,程序依赖于文件的格式。比如C语言用Struct、VB用Type来定义用户的数据结构,文件结构的每一次修改都将导致应用程序的修改。而随着应用环境和需求的变化,修改文件的结构是不可避免的,如增加一些字段、修改某些字段的长度等。而这些又都需要在应用程序中做相应的修改,所以是相当费时费力的,这些后果都是由于应用程序对数据文件的过度依赖造成的。(4)安全性问题

在文件管理系统中,很难控制某个人对文件的操作。如控制某个人只能读或者修改文件,不能删除文件,或者不能读或修改文件中的某个或某些字段。在实际应用中,数据的安全性无疑是非常重要的。例如在学生选课管理中,学生对其考试成绩只有查询的权利而没有修改的权利,而任课教师则有录入其所授课程的考试成绩的权利、教务部门对录入有误的成绩有修改权等。但这些功能在文件管理系统中却很难实现。(5)并发访问异常

在现代计算机系统中,为了有效地利用计算机资源,系统一般允许多个应用程序并发运行。例如某个用户打开了一个Excel文件,如果第二个用户在第一个用户没有关闭之前就想打开此文件,那么他只能以只读的方式打开此文件,而不能对该文件进行修改。这就是文件管理系统不支持并发访问造成的。3.数据库管理

20世纪60年代后期以来,计算机硬件和软件技术得到了飞速发展,为了解决多用户、多应用共享数据的需求,相应出现了数据库这样的数据管理技术,使信息系统的研制从围绕加工数据的程序为中心转变到围绕共享的数据库来进行。这样既便于数据的集中管理,也有利于应用程序的研制和维护,提高了数据的利用率和相容性,从而提高了做出决策的可靠性。

对于上述学生基本信息管理和学生选课管理系统来说,若使用数据库来管理,其实现的过程如图1-2所示。图1-2 数据库管理系统实现示例

观察图1-1与图1-2,即与文件管理系统比较以后,会发现数据库管理系统具有如下的优点:(1)数据的结构化

在描述数据时,不仅要描述数据本身,还要描述数据之间的联系。在文件系统阶段,只考虑同一文件内部数据项之间的联系,而不同文件的数据是没有联系的,这样的文件有一定的局限性,不能反映现实世界各种事物之间复杂的联系。(2)数据共享性高,冗余度小,易扩充

数据能够充分地共享,这是数据库管理系统阶段的最大改进,即数据不再面向某个应用程序,而是面向整个系统,所有的用户可同时存取数据库中的数据,这样减少了不必要的数据冗余,节约了存储空间,同时也避免了数据之间的不一致性,这样使数据库系统的弹性加大,可增加新的应用,易于扩充。(3)数据独立性高

数据的独立性是指逻辑独立性和物理独立性。

数据的逻辑独立性是指当数据的总体逻辑结构改变时,数据的局部逻辑结构不变。由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改,从而保证了数据与程序间的逻辑独立性。

数据的物理独立性是指当数据的存储结构(或物理结构)改变时,数据的逻辑结构可以不变,从而应用程序也不必改变。

数据的独立性是利用数据库管理系统的二级映像功能来保证的,相关知识见1.2.2节。

数据与程序的独立把数据的定义从程序中分离出去,加上数据的存取又由数据库管理系统负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。(4)数据由DBMS统一管理和控制

数据库为多个用户和应用程序所共享,对数据的存取是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。为确保数据库数据的正确性和有效性,数据库管理系统提供以下四个方面的数据控制功能:

①数据的安全性(Security)控制。防止不合法使用数据造成数据的泄露和破坏,从而保证数据的安全。如系统提供口令检查或其他手段来验证用户的身份,防止非法用户来使用系统;此外,还可以对数据的存取权限进行限制,只有通过检查后才能执行相应的操作。

②数据的完整性(Integrity)控制。系统通过设置一些完整性规则以确保数据的正确性、有效性和相容性。所谓正确性,是指数据的合法性,如年龄属于数值型数据,只能为0~150的整数数值,不能含有字母或特殊符号;有效性是指数据是否在其定义的有效范围,如月份只能由1~12的正整数表示;相容性是指表示同一事实的两个数据应相同,否则就不相容,例如一个人不能有两个性别,这个人的性别要么是“男”,要么是“女”;等等。

③数据库恢复(Recovery)。当数据库被破坏或数据不可靠时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态,使数据不丢失或只有少部分的丢失,从而保证系统能够连续、可靠地运行。

④并发控制(Concurrency)。当多用户同时存取或修改数据库时,防止因相互干扰而提供给用户不正确的数据,并使数据库受到破坏。例如,在学生选课系统中,某门课程只剩下最后一个名额,但有两个学生在两台选课终端上同时发出了选修这门课的请求,必须采取某种措施,以确保两名学生不能同时拥有这最后一个名额。(5)数据的最小存取单位是数据项

既可以存取数据库中某一个数据项或一组数据项,也可以存取一个记录或一组记录。4.新型数据库系统

这一阶段的主要标志是20世纪80年代出现的分布式数据库系统、90年代出现的面向对象数据库管理系统和各种新型数据库系统。(1)分布式数据库系统

Distributed Database System(DDBS)是数据库技术与网络技术、分布式处理技术相结合的产物。分布式数据库系统是将系统中的数据地理上分布在计算机网络的不同节点,但逻辑上属于一个整体的数据库系统。它不同于将数据存储在服务器上供用户共享存取的网络数据库系统,分布式数据库系统不仅能支持局部应用(访问本地数据库),而且能支持全局应用(访问异地数据库)。分布式数据库系统主要应用于航空、铁路、旅游订票系统,银行通存通兑系统,水陆空联运系统,跨国公司管理系统,连锁配送管理系统等。(2)面向对象数据库系统

Object-Oriented Database System(OODBS)是将面向对象的模型、方法和机制与先进的数据库技术有机结合而形成的新型数据库系统。它的基本设计思想是把面向对象语言向数据库框架方向发展,使应用程序能够存取并处理对象;扩展数据库系统,使其具有面向对象的特征,提供一种综合的语义数据建模概念集,以便对现实世界中复杂应用的实体和联系建模。因此,面向对象数据库系统首先是一个数据库系统,具备数据库系统的基本功能;其次是一个面向对象的系统,针对面向对象的程序设计语言的永久性对象存储管理而设计,充分支持完整的面向对象概念和机制。它对一些特定应用领域(如CAD等)能较好地满足其应用需求。(3)多媒体数据库系统

Multi-media Database System(MDBS)是数据库技术与多媒体技术相结合的产物。随着信息技术的发展,数据库应用从传统的企业信息管理扩展到计算机辅助设计(CAD)、计算机辅助制造(CAM)、办公自动化(OA)、人工智能(AI)等多个应用领域。这些领域中处理的数据不仅包括传统的数字和字符等格式化数据,还包括像声音、图形、图像等非格式化数据。多媒体数据库系统主要应用于军事、医学病例管理、航天测控、地理信息系统、数字图书馆和期刊出版系统等。(4)数据仓库技术

Data Warehouse(DW)是基于信息系统业务发展的需要、基于数据库技术发展而来,并逐步独立的一系列新的应用技术。数据仓库作为决策支持系统(Decision Support System,DSS)的有效解决方案,涉及数据仓库技术、联机分析处理(On-Line Analytical Processing,OLAP)技术和数据挖掘(Data Mining,DM)技术三个方面。其中DW用于数据的存储和组织,OLAP集中于数据的分析,DM则致力于知识的自动发现。它们都可以分别应用到信息系统的设计和实现中,以提高相应部分的处理能力。但由于这三种技术内在的联系性和互补性,将它们结合起来即是一种新的决策支持系统架构。这一架构以数据库中的大量数据为基础,系统由数据驱动。该技术主要应用于通信、零售业、金融及制造等领域。1.1.3 数据库、数据库管理系统与数据库系统1.数据库(Database)

数据库是长期存储在计算机内,有组织的、大量的、可共享的数据集合。它的特点是可以供各种用户共享,并且具有最小的冗余度和较高的数据与程序的独立性,具有安全控制机制,能够保证数据的安全可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的安全性和完整性。但是要强调的是,数据库所具有的这些特征并不是数据库中的数据所固有的,而是靠数据库管理系统来提供和保障的。2.数据库管理系统(DBMS)

数据库管理系统(Database Management System,DBMS)是位于用户与操作系统(OS)之间的系统软件,它为用户或应用程序提供访问数据库(DB)的方法,在建立、运用和维护数据库时,由数据库管理系统进行统一管理,统一控制,以保证数据的完整性、安全性,同时在多用户使用数据库时进行并发控制,在发生故障后对系统进行恢复。DBMS的功能主要包括以下六个方面:(1)数据定义

包括定义构成数据库结构的模式、存储模式和外模式,定义各个外模式与模式之间的映射,定义模式与存储模式之间的映射,定义有关的约束条件。(2)数据操纵

包括对数据库数据的检索、插入、修改和删除等基本操作。(3)数据库运行管理

对数据库的运行进行管理是DBMS运行时的核心部分。所有访问数据库的操作都要在这些控制程序的统一管理下进行,以保证数据的安全性、完整性、一致性以及多用户对数据库的并发使用。(4)数据组织、存储和管理

数据库中需要存放多种数据,DBMS负责分门别类地组织、存储和管理这些数据,确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系,以便提高存储空间利用率以及提高各种操作的时间效率。(5)数据库的建立和维护

建立数据库包括数据库初始数据的输入与数据转换等。维护数据库包括数据库的转储与恢复、数据库的重组织与重构造、性能的监视与分析等。(6)数据通信接口

在分布式数据库或提供网络操作功能的数据库中,DBMS需要提供与其他软件系统进行通信的功能。

总之,数据库管理系统是数据库系统的核心软件之一。目前比较流行的DBMS有Access、SQL Server、Oracle和DB2等。3.数据库系统(DBS)

仅有数据、数据库、数据库管理系统还不能构成完整的数据库系统(Database System,DBS),一个完整的数据库系统还需要有硬件、软件和用户。因此,基于一定硬件,数据库管理技术的应用程序、数据库、数据库管理系统及对数据库进行规划、设计和维护工作的管理人员一起构成了一个完整的数据库系统。数据库系统的组成如图1-3所示。图1-3 数据库系统的组成(1)硬件平台

由于数据库系统的数据量都很大,再加上DBMS丰富的功能,使得数据库系统自身的规模很大,因此整个数据库系统对硬件资源提出了较高的要求。主要包括:要有足够大的内存存放操作系统、DBMS的核心模块、数据缓冲区和应用程序;要有足够大的硬盘等直接存取设备存放数据库,同时要有足够的磁盘做数据备份;要求系统有较高的通道能力,以提高数据传送率。(2)软件

数据库系统的软件包括:操作系统OS、数据库管理系统DBMS、应用开发工具和数据库应用系统。其中,DBMS是为数据库的建立、使用和维护所配置的软件;支持DBMS正常运行的是操作系统;以DBMS为核心的应用开发工具是系统为应用开发人员和最终用户提供高效率、多功能的应用生成器、高级程序设计语言等各种软件工具,它们为数据库系统的开发和应用提供了良好的环境;数据库应用系统是指系统开发人员利用数据库系统资源开发出来的面向某一类实际应用的应用软件系统。(3)用户

用户是指使用数据库的人。用户分为以下三类:第一类为终端用户(End user),主要是使用数据库的各级管理人员、工程技术人员、科研人员等,一般为非计算机专业人员;第二类为应用程序员(Application programmer),负责为终端用户设计和编制应用程序,以便终端用户对数据库进行各种存取操作;第三类为数据库管理员(Database Administrator,DBA),全面负责数据库系统的管理、维护,以使其正常运行和使用。1.2数据库系统结构

考察数据库系统的结构可以有多种不同的层次和角度。从数据库管理系统内部角度来看,数据库系统通常采用三级模式结构;从数据库的最终用户角度来看,即从数据库系统的外部体系结构来看,数据库系统的结构分为单用户、主从式结构、分布式结构、客户/服务器、浏览器/应用服务器/数据库服务器等多层结构。1.2.1 数据库系统的三级模式结构

数据库系统的三级模式结构指的是数据库系统的外模式、模式和内模式。图1-4说明了这三级模式结构之间的关系。

从图1-4中可以看到,在这三级模式结构中,内模式最接近物理存储,是数据库的物理存储方式,并且它只有一个;外模式最接近用户,是用户看得到的数据视图,并且它可以有许多个,每一个都或多或少地抽象表示整个数据库的某一部分;而模式是介于内模式和外模式之间的中间视图,它只有一个,包含对现实世界数据库的抽象表示,这里的抽象是指记录和字段这些更加面向用户的概念,而不是位和字节那些面向机器的概念。

下面从外模式开始进行讨论这三层模式结构:图1-4 数据库系统的三级模式结构1.外模式(External Schema)

外模式也称子模式(Subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见的和使用的局部的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集,即一个数据库可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式、对数据保密要求等方面存在差别,则其外模式描述就不相同。另外,外模式是保证数据安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。

从广义上讲,外模式就是特定用户所看到的数据库的内容。例如,学校的学生管理部门把各个系的学生数据集合作为他的外模式,而不考虑各个系的用户所看到的教师和课程的记录。2.模式(Schema)

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

模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时,不仅要定义数据的逻辑结构,还要定义数据之间的联系,定义与数据有关的安全性、完整性要求。数据库管理系统提供了数据定义语言(DDL)来定义数据库的模式。3.内模式(Internal Schema)

内模式也称存储模式(Storage Schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据库内部的表示方法。例如,记录的存储方式是顺序存储、按照B树结构存储还是按Hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等。1.2.2 数据库系统的二级映像及数据独立性

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

外模式/模式映像定义了外模式与模式之间的映像关系。由于外模式和模式的数据结构可能不一致,即记录类型、字段类型的命名和组成可能不同,因此,需要这个映像说明外部记录和概念之间的对应性。2.模式/内模式映像

模式和内模式映像定义了内模式与模式之间的映像关系。例如,说明逻辑记录和字段在内部是如何表示的。该映像定义通常包含在模式描述中。3.数据独立性

所谓数据的独立性,是指应用程序和数据库的数据结构之间相互独立,不受影响。数据独立性分为物理独立性和逻辑独立性。(1)物理数据独立性

如果数据库的内模式要修改,即数据库的物理结构有所变化,那么只要对模式/内模式映像做相应的修改,从而使概念模式尽可能地保持不变。这样我们称数据库达到了物理数据独立性(简称物理独立性)。(2)逻辑数据独立性

如果数据库的概念模式要修改,例如增加记录类型或增加数据项,那么只要对外模式/模式映像做相应的修改,从而使外模式尽可能地保持不变。这样我们称数据库达到了逻辑独立性(简称逻辑独立性)。

在数据库的三级模式结构中,模式是数据库的中心与关键,它独立于数据库的其他层次。在设计数据库时,也是首选设计数据库的模式。数据库的内模式依赖于数据库的全局逻辑结构,但它独立于数据库的用户视图,也独立于具体的存储设备。内模式将全局逻辑结构中定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间和空间效率。数据库的外模式面向具体的数据库用户,它定义在模式之上,独立于内模式与存储设备。当应用需求发生较大变化,相应的外模式不能满足用户要求时,就需要对外模式做相应的改动,因此,设计外模式时应充分考虑到应用的可扩展性。

特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构相互独立。不同的应用程序有时可以共用同一个外模式。数据库的两级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。

程序与数据之间的独立性,使得数据的定义和描述可以从应用程序中分离出来。另外,由于数据的存取由DBMS负责管理和实施,因此用户不必考虑存取路径等细节,从而简化了应用程序的编写工作,减少了对应用程序的维护和修改工作。1.2.3 数据库系统的特点

从数据库系统的体系结构可以得到数据库系统具有如下特点:(1)数据结构化

这是数据库的主要特征之一。在描述数据时,不仅描述数据本身,还描述数据之间的关系。这也是数据库系统与文件系统的本质区别。(2)数据的共享性高,冗余性低,易扩充

数据库的数据不再面向某个应用,而是面向整个系统,因此可以被多个用户、多个应用、由多种不同的语言所共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且可以增加新的应用,这使得数据库易于扩充。(3)数据独立性高

数据库系统的三级模式结构和二级映像功能保证数据库中的数据具有较高的物理独立性和逻辑独立性。(4)数据由DBMS统一管理和控制

DBMS的数据控制功能主要包括:

①数据的安全性保护。即保护数据以防止非法使用造成数据的泄露和破坏。

②数据的完整性检查。是将数据控制在有效的范围内或保证数据之间满足一定的关系、一定的约束条件。

③并发控制。是对多用户的并发操作加以控制和协调,保证并发操作的正确性。

④数据库恢复。是指当计算机系统发生硬件故障、软件故障,或者由于操作人员的失误以及故意破坏而影响数据库中数据的正确性,甚至造成数据库的部分或全部数据的丢失时,能将数据库从错误的状态恢复到某一已知的正确状态。

数据库系统的出现使得信息系统从以加工数据的程序为中心转向以围绕共享数据库为中心的新阶段。1.3数据模型

为了更好地了解和研究世界、交流信息,人们需要描述各种事物。用自然语言来描述事物虽然比较直接,但过于烦琐,不便于形式化,而且也不便于用计算机来表达。为此,人们描述事物常常只抽取那些感兴趣的特征和属性。例如,可用如下信息来描述一个职工:(190002,王越,男,1989-6-25,北京市西城区二龙路12号楼3-102号,13367627189,wangyue@163.net)。这一行数据称为一条记录,但我们很难知道其确切的含义,如果知道这行数据的含义,就可以得到如下信息:王越的职工号是190002,性别男,1989年6月25日出生,家住北京市西城区二龙路12号楼3-102号,电话13367627189,邮箱wangyue@163.net。这种描述事物的记录称为数据,数据有一定的格式,如姓名一般是不超过4个汉字的字符(假设没有少数民族),性别是一个汉字的字符。这些格式的规定就是数据的语法,而数据的含义就是数据的语义。人们通过解释、推理、归纳、分析和综合等方法,从数据所获得的有意义的内容称为信息。因此,数据是信息存在的一种形式,只有通过解释或处理的数据才能成为有用的信息。1.3.1 数据模型概述

模型是现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。现有的数据库系统都是基于某种数据模型的。数据模型是数据库系统的数学形式框架,是用来描述数据的一组概念和定义。数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。一种数据模型要很好地满足这三方面的要求,在目前尚很困难。在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。

这些数据模型都包括以下三方面的内容:

①数据的静态特征,它包括对数据结构和数据间联系的描述。

②数据的动态特征,一组定义在数据上的操作,包括操作的含义、操作符、运算规则及其语言等。

③数据的完整性约束,这是一组规则,数据库中的数据必须满足这组规则。1.数据模型的三要素

一般地讲,任何一种数据模型都是有严格定义的概念的集合。这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常都是由数据结构、数据操作和数据约束条件三个要素组成的。(1)数据结构

数据结构用于描述系统的静态特性,是所研究的对象类型(object type)的集合。这些对象是数据库的组成成分,它们包括两类:一类是与数据类型、内容、性质有关的对象,例如网状模型中的数据项、记录,关系模型中的域、属性、关系等;一类是与数据之间联系有关的对象,例如网状模型中的系型(set type)。

数据结构是刻画一个数据模型性质最重要的方面。因此,在数据库系统中,通常按照其数据结构的类型来命名数据模型。例如,层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。(2)数据操作

数据操作用于描述系统的动态特性。

数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。(3)数据的约束条件

数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态,以及当数据库状态发生变化时,其数据仍保持正确、有效和相容。

数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件,还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。2.两类数据模型

不同的数据模型实际上是提供模型化数据和信息的不同工具。根据数据模型应用的不同目的,可以将这些模型划分为两类,它们分属于两个不同的层次。第一类模型是概念模型,也称为信息模型,它是按用户的观点对数据和信息建模;另一类模型是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。1.3.2 概念数据模型

概念层模型也称为概念模型或信息模型,它从数据的应用语义的角度来抽取模型,并按用户的观点对数据和信息进行建模。这类模型主要用于数据库的设计阶段,它与具体的数据库管理系统无关。实际上,概念模型是现实世界到机器世界的一个中间层次,如图1-5所示。图1-5 现实世界中客观对象的抽象过程

由于概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是用户与数据库设计人员之间进行交流的语言,因此,概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;另一方面,它还应该简单、清晰、易于用户理解。1.信息世界涉及的概念

①实体(entity):客观存在并可相互区别的事物称为实体。它有物理的,也有抽象的。实体可以是具体的人、事、物,比如一个学生、一个部门;也可以是抽象事件,比如一次课、阅读了若干本图书等;还可以指事物之间的联系。

②属性(attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。比如学生的学号、姓名、性别、年龄等都是学生实体所具有的特征,即为学生的属性。

③码(key):唯一标识实体的属性集称为码。例如,学生实体中的学号属性能唯一标识每一个学生,即每个学生的学号都没有重复。

④域(domain):属性的取值范围称为该属性的域。例如,性别属性只能为“男”或者“女”。

⑤实体型(entity type):具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。

⑥实体集(entity set):同型实体的集合称为实体集。

⑦联系(relationship):在信息世界中,事物的联系反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。2.实体-联系模型

由于直接将现实世界的信息按具体的数据组织模型进行组织必须同时要考虑许多因素,设计工作也比较复杂,效果也不理想,所以需要一种方法来对现实世界的信息结构进行描述。1976年,P.P.S.Chen提出了实体-联系方法,即E-R方法。由于这种方法简单实用,因此得到了广泛的应用,也是目前描述信息结构最常用的方法。E-R方法使用的工具称为E-R图,它所描述的现实世界的信息结构模型又称为E-R模型。E-R模型提供了表示实体型、属性和联系的方法。

①在E-R模型中,实体用矩形表示,矩形框内写明实体名。

②在E-R模型中,属性用椭圆形表示,并用无向边将其与相应的实体连接起来。

③在E-R模型中,实体与实体之间的联系用菱形表示,菱形框内写明联系名,并用无向边分别将有关实体连接起来,同时在无边旁标上联系的类型(1∶1,1∶n或m∶n)。

需要注意的是,联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。图1-6所示为学生实体与班级实体的E-R图。图1-6 学生实体与班级实体的E-R图3.两个实体型之间的联系

两个实体型之间的联系可以分为三类:(1)一对一联系(1∶1)

如果对于实体集A中的每一个实体,实体集B中至多有1个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1∶1。例如,一个班级只有一个班长、一个系只有一个系主任、一个部门只有一个部门经理等都是一对一联系。(2)一对多联系(1∶n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系。记为1∶n。例如,一个系有多名老师、一个班级有多名学生、一个部门有多个职工等都是一对多联系。(3)多对多联系(m∶n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系。记为m∶n。例如,学生与课程之间就是多对多联系,一个学生可以选多门课程,一门课程也可以被多个学生所选修。

实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。实体型之间的这种一对一、一对多、多对多联系不仅存在于两个实体型之间,也存在于两个以上的实体型之间。若实体集E1,E2,…,En存在联系,对于实体集Ej(j=1,2,…,i-1,i+1,…,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,…,Ei-1,Ei+1,…,En之间的联系是一对多的。同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。如图1-7所示的E-R图中,图1-7(a)为部门与部门经理之间的1∶1联系;图1-7(b)为部门与职工之间的1∶n联系;图1-7(c)为学生与课程之间的m∶n联系;图1-7(d)为课程与教师,课程与参考书三个实体之间的m∶n联系;图1-7(e)为学生和班长之间的1∶1联系,这是同一实体集内各实体之间的关系。图1-7 实体与实体间联系的示例(a)1∶1联系;(b)1∶n联系;(c)m∶n联系;(d)三个实体间的m∶n联系;(e)同一实体间的1∶1联系4.机器世界中数据的描述

在机器世界中对数据进行描述的概念如下:(1)字段

标志实体属性的符号集叫字段(fields)或数据项。它是数据库中可以命名的最小逻辑数据单位,所以又叫数据元素。字段的命名应该体现出属性的具体含义。如学生表中可用Snum字段来表示学号属性,Sbirth字段来表示学生的出生年月属性等。(2)记录

字段的有序集合称为记录(record)。一般用一个记录描述一个实体,所以记录又可定义为能完整地描述一个实体的符号集。例如,一个学生记录由有序的字段集组成:学号、姓名、性别、出生年月、电话、系编号。(3)文件

同一类记录的汇集称为文件(file)。文件是描述实体集的,所以它又可定义为描述一个实体集。例如所有的学生记录组成了一个学生文件。(4)键

能唯一标识文件中每个记录的字段或字段集称为键(key)。这个概念与实体的码概念是一致的。

在现实世界、信息世界和机器世界三个世界中,各术语的对应关系见表1-1。表1-1 在三个不同世界中各术语的对应关系现实世界信息世界计算机世界事物总体实体集文件事物个体实体记录特征属性字段事物之间的联系实体模型数据模型1.3.3 结构数据模型

前面所介绍的概念数据模型是对数据在“概念”上的抽象,它与具体的数据库管理系统无关。而本节所介绍的结构数据模型与具体的数据库管理系统就有关系了。结构数据模型是从数据的组织方式的角度来描述信息的。不同的数据模型具有不同的数据结构形式。目前最常用的数据模型有层次模型、网状模型、关系模型和面向对象数据模型。1.层次数据模型

层次模型是数据库系统中最早出现的数据模型,它用树形结构表示各类实体以及实体间的联系。现实世界中许多实体之间的联系本来就呈现出一种很自然的层次关系,如行政机构、家族关系等。层次数据模型的数据结构为:只有一个结点没有双亲结点,称之为根结点;除了根结点以外的其他结点有且只有一个双亲结点。这就使得层次数据库系统只能处理一对多的实体关系。

层次数据模型的优点主要有:层次数据模型本身比较简单,只需很少几条命令就能操纵数据库,比较容易使用;对于实体间联系是固定的,且预先定义好的应用系统,采用层次模型来实现,其性能优于关系模型,不次于网状模型;层次数据模型提供了良好的完整性支持。

层次数据模型的缺点主要有:现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据组织(引入虚拟结点)来解决;对插入和删除操作的限制比较多;查询子女结点必须通过双亲结点;由于结构严密,层次命令趋于程序化。2.网状数据模型

在现实世界中,实体型间的联系更多的是非层次关系,用层次模型表示非树形结构是很不直接的,网状模型采用网状模型作为数据的组织方式,可以克服这一弊病。网状数据模型的数据结构:允许一个以上的结点无双亲;一个结点可以有多于一个双亲。网状数据模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外,它还允许两个结点之间有多种联系(称之为复合联系)。因此,网状数据模型可以更直接地描述现实世界。

网状数据模型的优点主要有:能够更为直接地描述现实世界,如一个结点可以有多个双亲、允许结点之间为多对多的联系等;具有良好的性能,存取效率较高。

网状数据模型的缺点主要有:其数据定义(DDL)及数据操纵(DML)语言极其复杂;结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。3.关系数据模型

关系模型是目前最重要的一种模型。关系数据库系统采用关系模型作为数据的组织方式。20世纪80年代以来计算机厂商推出的数据库管理系统几乎都支持关系模型。以下从数据模型的三要素角度来介绍关系模型的特点:(1)关系数据模型的数据结构

关系模型与以往的模型不同,它是建立在严格的数据概念的基础上的。在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。例如,表1-2中的学生档案就是一个关系模型,它涉及下列概念。表1-2 学生档案表

用关系表示实体以及实体之间联系的模型称为关系模型。下面介绍关系模型中的一些基本术语:

①关系(relation):一个关系对应通常所说的表,如表1-2中的这张学生档案表。它通常满足如下条件:关系表中的每一列都是不可再分的基本属性,如表1-3所示的表就不是一个关系,因为“成绩”不是基本属性,它包含了子属性“高等数学”、“英语”、“数据库”的成绩;表中的各属性不能重名;表中的行、列次序并不重要,即交换列的前后顺序并不影响其表达的意义。表1-3 包含子属性的表

②元组(tuple):表中的一行即为一个元组,它相当于一个记录值,例如表1-2所示的学生档案表中的元组有:(201402001,李明,20,男,计算机科学,江苏)(201403002,张灵,19,女,管理科学,湖南)(201404003,王鹏,21,男,机械工程,北京)(201402004,高远,20,男,计算机科学,上海)

③属性(attribute):表中的一列即为一个属性,或称为字段。每个属性有一个名字称为属性名,二维表中对应某一列的值称为属性值;二维表中列的个数称为关系的元数。如表1-2有6列,则对应6个属性(学号,姓名,年龄,性别,院系,籍贯),也就是说它是一个6元关系。

④候选键(candidate key):又称候选码或候选关键字。如果一个属性或属性集的值能够唯一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选键。一个关系的候选键可以不唯一。如学生档案关系的候选键可以是学号,还可以是姓名。

⑤主键(primary key):也称为主码或主关键字,它是表中的某个属性或属性组,它可以唯一确定一个元组,如表1-2中的学号,按照学生学号的编排方法,每个学生的学号都不相同,所以它可以唯一确定一个学生,也就成为学生档案关系的主码。而表1-4所示的选课关系就是学号和课程号共同组成的,因为一个学生可以选修多门课程,一门课程也可以有多个学生选修,所以只有将学号和课程号组合起来才能确定一条记录。表1-4 学生选课表学号课程号成绩201402001C0190201402001C0286201402001C06null201402002C0278201402002C0466201402004C0182

⑥域(domain):属性的取值范围,如学生档案表中学生年龄属性的域一般应设成[14~40],人的性别只能是“男”或者“女”,所以,属性“性别”的域是[男,女],院(系)的域是一个学校所有院(系)名的集合。

⑦分量(component):元组中的一个属性值,如在学生档案表中“学号”的一个值“201402001”即为一个分量,元组(201402001,李明,20,男,计算机科学,江苏)一共有6个分量。

⑧关系模式(relation schema):对关系的描述,即二维表的结构。一般表示为:关系名(属性1,属性2,…,属性n)。例如,上面的关系可描述为:学生档案(学号,姓名,年龄,性别,院(系),籍贯)。

⑨主属性(primary key)和非主属性(non-primary key):包含在任一候选键中的属性为主属性;不包含在任一候选键中的属性称为非主属性。例如,学生档案表中学号和姓名都可称为主属性,其他属性为非主属性。学生选课表中学号与课程号为主属性,成绩为非主属性。

⑩外码(foreign key):用于在关系表之间建立关联的属性(属性组)称为外码。例如学生选课表的学号为学生档案表中学号的外键。

⑪全码(all key):关系模式的所有属性组构成此关系模式的唯一候选码,称为全码。例如有关系音乐会,其关系模式为:音乐会(演奏者,乐曲,听众),只有演奏者、乐曲和听众这三个属性才能决定一场音乐会,所以该关系模式有全码。(2)关系数据模型的操作

关系数据模型的操作主要包括:

①传统的集合运算:并(union)、交(intersection)、差(difference)和广义笛卡尔积(extended Cartesian product)。

②专门的关系运算:选择(select)、投影(project)、连接(join)和除(divide)。

③有关的数据操作:查询(query)、插入(insert)、删除(delete)和更新(update)。

关系模型中的数据操作是集合操作,操作对象和操作结果都是关系(即若干元组的集合),也可以说是一个完整的表(可以是包含若干行数据的表,也可以是不包含任何数据的空表),而不像非关系模型中那样是单记录的操作方式。另外,关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”或“找什么”,不必详细说明“怎么干”或“怎么找”,从而大大地提高了数据的独立性,提高了用户的使用效率。(3)关系数据模型的存储结构

关系数据模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件形式存储,每一个表通常对应一种文件结构。

综上所述,关系数据模型具有下列优点:

①关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。

②关系模型的概念单一。无论是实体还是实体之间的联系都用关系来表示。对数据的检索结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。

③关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。所以关系数据模型诞生以后发展迅速,深受用户的喜爱。1.3.4 E-R模型向关系模型的转换

将E-R模型向关系模型的转换要解决的主要问题是如何将实体及实体间的联系转换成关系模式,即如何确定这些关系模式的属性和键。

一个实体转换为一个关系模式。实体的属性就是关系的属性,实体的标识符就是关系的码。对于实体间的联系,有以下不同的情况:

①一个1∶1联系可以转换为一个独立的关系模式,也可以与任意一端所对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系模式的主键,同时也是引用各自实体的外键;如果是与联系的任意一端实体所对应的关系模式合并,则需要在该关系模式的属性中加入另一个实体的码和联系本身的属性,同时加入的实体的码为此关系模式中引用另一个实体的外键。

②一个1∶n联系可以转换为一个独立的关系模式,也可以与n端所对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系模式的属性,而关系模式的主键为n端实体的码,同时n端实体的码为此新关系模式中引用n端实体的外键,1端实体的码作为引用1端实体的外键;如果是与n端所对应的关系模式合并,则需要在n端对应的关系模式的属性中加入1端实体的码及联系本身的属性,同时1端实体的码在n端实体中作为引用1端实体的外键。

③一个m∶n联系转换为一个独立的关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为该关系模式的属性,新关系模式的主键包含各实体的码,同时新关系模式中各实体的码为引用各自实体的外键。

三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为此关系模式的属性,而此关系模式的码包含各实体的码,同时,新关系模式中的各实体的码为引用各自实体的外键。

具有相同主键的关系模式可以合并。【例1-1】 1∶1转换示例。设有描述部门和经理关系的E-R图如图1-8所示,将其转换为合适的关系模式。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载