已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
医药数据库应用基础教程第1章数据库概述近年来,随着计算机技术与网络技术的飞速发展,信息技术在医药学领域的深度融合推动了数据库技术在医药学领域的广泛应用。例如,医院及其医疗机构对病人诊疗的相关数据、医院物资管理的数据、核算分析数据、决策分析统计数据等都是医药领域管理层十分关注的数据资源。医药相关部门需要对这些数据进行收集、处理和发布,基于这些数据之上的药品数据库、疾病数据库、新药数据库、生物数据库等具有医药特色的数据库的开发与应用已经越来越普遍。医药领域存在大量的数据和数据处理的需求,因而数据库技术也成为了医药学相关专业学生学习和研究的热点。本章首先介绍了数据库的基本概念与数据模型,然后阐述了数据库系统的组成,并分别对数据库技术中的数据库、数据库管理系统、数据库系统三个文字相近而容易混淆的概念进行了较为详细的辨析。随后,对数据库技术的发展动向做了相应的探讨,分别介绍了不同类型的几种数据库关系数据库、面向对象数据库、分布式数据库以及移动数据库。1.1 数据库基本概念在人们的日常生活和社会生产中都有大量的数据产生,例如在医疗机构及其各部门,病人治疗的相关数据、医院物资管理的数据、核算分析数据、决策分析统计数据等都是被人们关注的数据。数据成为一种需要被管理和加工的非常重要的资源。如何实现对数据科学地进行收集、整理、存储、加工、传输是人们长期以来十分关注的问题。数据处理就是指对原始数据进行上述活动的技术。数据处理的目的是从大量的数据中获得所需的资料,提取有用的数据成分作为指挥生产、优化管理、补充知识的决策依据。数据库就是为了实现高效率的数据处理和数据的合理存储,它有利于数据相对于处理程序的独立性和数据的共享,并保证数据的完整性和安全性。本节在系统地介绍数据库的基本概念之前,先介绍信息与数据的概念与联系。1.1.1 信息与数据信息与数据是数据库领域中两个基本的概念。信息与数据既相互关联,又相互区别。数据是信息的载体;信息则是数据的内涵,是对数据的语义解释。1信息(information)信息是指人脑对现实世界事务的存在方式或运动状态的反应。信息源于物质和能量,一切事物,包括自然界和人类都产生信息。信息是可以感知和存储的,并且可以加工、传递和再生。电子计算机是信息处理领域中最先进的工具之一,人类对收集到的信息使用计算机进行处理。信息需要被加工、处理后才能交流和使用,人们往往用数据去记载、描述和传播信息。同一个信息,其表现和传播方式可以是多种多样的。例如,对发现新型流感病毒这个信息,可以登报说明、网上发布,也可以通过电视等媒体进行传播,这几种表现和传播方式,都是对同一个信息的不同反映(表现形式)方式。2数据(data)数据是对客观事物的符号表示,是用于表示客观事物未经加工的原始素材,如图形符号、数字及字母等。或者说,数据是通过物理观察得来的事实和概念,是关于现实世界中的地方、事件、其他对象或概念的描述。在计算机科学中,数据则是指所有能输入到计算机并被计算机程序处理的符号的介质的总称。数据是从一系列的观察和测量中得到的,并以数字或符号的形式来描述,计算机可以很方便地对数据进行处理。数据是对客观现象的表示形式。例如,在药房的药品记录中,如果人们最感兴趣的是药品的编号、名称、药品类型、药品价格等,可以这样描述:(2030,甘草片,中成药,盒,2.00)。如果单纯给出这条记录,可能难以让人理解其中的含义,但是了解这个记录每一项所含意义的人,会通过这条记录,获得这样的信息:编号为2030这种药,是甘草片,它是一种中成药,每盒价格是2元。这种对事物描述的符号记录就是数据。数据有一定的格式,例如,药品编号栏最多允许4个字节,药品类型栏允许4个汉字等。人们通过解释、归纳、分析和综合等方法,从数据所获得的有意义的内容称为信息。因此,数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。3数据处理(data processing)数据处理实际指的是利用计算机对各种类型的数据进行收集、存储、分类、计算、加工、检索及传输的全过程。这一过程主要是由人来对数据进行有效的组织,并把数据输入到计算机中。上述数据处理的全过程可以分为两个层次的操作:一是数据的收集、存储、分类、检索及传输和维护等,称为基本操作,这些基本操作环节构成为数据处理流程;二是加工、计算和输出等,它们随管理对象的不同,操作要求也有所不同,这些操作被称为应用操作。1.1.2 数据管理方式的发展计算机诞生于1946年。最初,计算机主要用于科学研究和工程技术领域的数值计算。但随着社会生产力和文明的不断发展,信息在人类社会活动中起着越来越重要的作用。与此同时,越来越大的信息量使得人们急切需要能够快速处理大量信息的工具和手段。20世纪50年代初期,人们开始用计算机进行数据处理。几十年来,数据处理技术随着计算机软、硬件的发展而不断地发展,它大致经历了以下的三个阶段。1人工管理阶段人工管理阶段是计算机用于数据处理的初级阶段。在该阶段,应用程序中除了要明确数据的逻辑结构外,还要考虑数据在计算机中如何存储和组织,并为数据分配空间及决定存取方法。应用程序完全依赖于特定数据,数据结构的改变以及数据存取物理地址或存储设备的变化,都会要求修改相应的应用程序。也就是说,应用程序和数据一一对应,数据和处理它的应用程序融为一个整体,如图1.1所示。由于数据的物理组织是由应用程序员根据应用的要求设计的,因此很难实现多个应用程序共享数据资源,造成数据的大量重复。这一时期数据的处理主要是手工性质的,具有下述特点:(1)数据与程序不具有独立性一组数据对应一组程序,这就使得程序依赖于数据。如果数据的类型、格式或者数据量、存取方法、输入输出方式等改变了,程序必须做相应的修改。(2)数据不宜长期保存由于数据是面向应用程序的,在一个程序中定义的数据,无法被其他程序利用,因此程序与程序之间存在大量的冗余(重复)数据,占用资源。(3)系统中没有对数据进行管理的软件数据管理任务(包括存储结构、存储方法、输入输出方法等)完全由计算机所执行的任务决定,其存储形式和存储位置均无规律可循。这就给应用程序设计人员增加了很大的负担。2文件系统管理阶段人工管理阶段数据处理的缺点显而易见,即数据独立性差、冗余度高等,从而造成数据的处理效率低,维护困难,数据分散。20世纪50年代后期到60年代中期,随着计算机软、硬件技术的发展,在操作系统引入了文件管理系统后,对上述问题有了较大的改进。数据文件可以按文件名引用,应用程序通过文件管理系统与数据文件发生联系,数据的物理结构和逻辑结构间实现了转换,从而提高了数据的物理独立性,如图1.2所示。在文件系统中,还提供了多种文件组织形式,如顺序文件组织、索引文件组织和直接存取文件组织等。在这一阶段,由于计算机硬件方面有了磁盘、磁鼓等存储设备,数据可以长期保存,并实现了以文件为单位的数据共享,可以对文件进行查询、修改、插入和删除操作。程序和数据之间由文件系统提供存取方法和进行转换,使应用程序与数据之间有了一定的独 立性。 图1.1 人工管理阶段应用程序与数据之间的对 图1.2 文件系统管理阶段应用程序与 应关系 数据之间的对应关系进入文件管理阶段以后,文件系统存在以下问题:(1)数据冗余度大在文件系统中,应用程序与文件相对应,即文件面向应用。文件系统中未能实现以记录或数据项为单位的数据共享,数据仍然是分散的,是面向应用的,数据的共享必须以文件为单位,所以数据还存在大量的冗余。即使不同的应用程序具有大部分相同的数据,只要有不同的数据部分存在,应用程序也不能共用数据文件。这就造成了相同的数据可能因应用程序的不同具有多个数据备份,容易造成数据的不一致性,给数据的修改和维护带来困难。(2)数据完整性和独立性差在文件系统中,一个或一组文件与具体的应用相对应,数据文件是面向应用程序的。文件的逻辑结构对它所服务的应用程序来说是优化的,因而数据的改变,势必会引起应用程序的改变;反之,应用程序的改变亦有可能引起数据文件的改变。文件与应用程序之间缺乏数据独立性。此外,在文件系统管理阶段,应用程序和数据结构之间的相互依赖程度高,数据的完整性和安全性等也无法得到保证。3数据库系统管理阶段文件系统管理阶段处理数据存在着诸多不足,而计算机管理规模越来越大,数据量急剧增长。随着计算机工业的迅速发展,大容量和快速存取的磁盘设备开始进入市场,给数据库系统的研究提供了良好的物质基础。数据库系统是在文件系统的基础上发展起来的新技术,它克服了文件系统的缺点,解决了冗余和数据依赖问题,提供了更广泛的数据共享,为应用程序提供了更高的独立性,保证了数据的完整性和安全性,并为用户提供了方便的用户接口。与人工管理和文件系统阶段相比,数据库系统的特点主要有以下几个方面:(1)数据结构化数据结构化是数据库与文件系统阶段的根本区别。在文件系统中,相互独立的文件的记录内部是有结构的,传统文件的最简单形式是等长同格式的记录集合。在数据库管理阶段,数据库系统实现了整体数据的结构化,所使用的数据模型不仅描述数据本身的特点,还描述数据间的联系。(2)数据的共享性高,冗余度低,易扩充数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节省存储空间。而且,数据共享还能避免数据之间的不相容性与不一致性。所谓数据的不一致性是指同一数据不同备份的值不一样。采用人工管理或文件系统管理时,由于数据被重复存储,当不同的应用使用和修改不同的备份时就很容易造成数据的不一致。在数据库中数据共享减少了由于数据冗余造成的不一致现象。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或者加上一部分数据便可以满足新的需求。(3)数据独立性高数据独立性是数据库领域中一个常用术语,包括数据的物理独立性和数据的逻辑独 立性。物理独立性是指用户的应用程序与存储在磁盘数据库中的数据是相互独立的。也就是说,数据在磁盘数据库中怎样存储是由数据库管理系统管理的,应用程序不需要了解,应用程序要处理的只是数据的逻辑结构,即使数据的物理存储改变了,应用程序也不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据的逻辑结构改变了,应用程序也可以不变。数据与程序的独立,把数据的定义从程序中分离出去,加上数据的存取又由数据库管理系统负责,从而简化了应用程序,大大减少了应用程序的维护和修改的工作量。(4)数据由数据库管理系统统一管理和控制数据库的共享是并发(concurrency)的共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据,而这些都是由数据库管理系统统一管理与控制,从而简化了应用程序。1.2 数 据 模 型数据库是某个企业、组织或部门所涉及的数据的综合,它不仅要反映数据本身的内容,而且要反映数据之间的联系。由于计算机不可能直接处理现实世界中具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据,在数据库中用数据模型这个工具来抽象、表示和处理现实世界的模拟。不同的数据模型实际上是提供给用户模型化数据和信息的不同工具。根据模型应用的不同目的,可以将这些模型划分为两类,它们分属于两个不同的层次。第一类模型是概念层数据模型,习惯称它为概念模型,按照用户的观点来对数据和信息建模,主要用于数据库的设计。另一类模型是组织层数据模型,简称数据模型,主要分为关系数据库、层次数据库和网状数据库,它是按照计算机系统的观点对数据建模,主要用于数据库的实现。其中,关系型数据库是目前最重要的一种数据库。20世纪80年代以来,计算机厂商推出的数据库管理系统(database management system,DBMS)大多都采用关系型数据库系统。1.2.1 概念层数据模型概念模型用于现实世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。概念模型面向用户,描述用户的需求,它不依赖于某一个DBMS,但可以转换为计算机上某一DBMS支持的特定数据模型。概念模型的表示方法很多,其中最为著名、常用的是P.P.S.Chen于1976年提出的实体-联系方法。1实体-联系模型在实体-联系(entity-relationship,E-R)模型中,使用的与信息有关的概念主要有如下 一些:(1)实体 客观存在并可相互区别的事物称为实体,例如一位医生、一个病人。(2)属性 实体具有的某一特性称为属性。一个实体可以用若干属性来刻画,例如 (1001,阿莫西林,西药,24s,盒,24.6,1100,2006-3-13,2008-2-4)这些属性组合起来表征了一种药品。(3)实体集 同型实体的集合。例如,所有药品就是一个实体集,所有病人也是一个实体集。(4)联系 不同实体集之间的联系。两个实体之间的联系可以分为以下三类: 一对一联系 例如一个医院只有一个正院长,而一个院长也只在一个医院任职,则院长与医院之间是一对一联系。 一对多联系 例如一个医院有若干名入编医生,而每一入编医生只在一个医院任职,则医院与入编医生是一对多联系。 多对多联系 例如一名医生有多位病人,而一位病人可能也看多名医生,则医生与病人之间是多对多联系。表1.1列出了概念模式的三种联系。表1.1 实体与实体间的三种联系分 类定 义举 例联系11(一对一联系)A中任意实体至多对应B中的一个实体;反之,B中的任意实体至多对应A中的一个实体观众与座位、乘客与车票、病人与病床、学校与校长、医院与正院长1n(一对多联系)A中至少有一个实体对应B中的多个实体;反之,B中的任意实体至多对应A中的一个实体城市与街道、宿舍与学生、父亲与子女、班级与学生、医院与医生续表分 类定 义举 例联系mn(多对多联系)A中任意实体至少有一个实体对应B中的多个实体;反之,B中的任意实体至少对应A中的多个实体学生与课程、工厂与产品、商店与顾客、医生与病人2E-R图概念模型模拟现实世界建模。概念模型应该能够方便、准确地表示出现实世界中的常用概念。实体-联系模型是数据库设计中重要的概念模型,该模型用实体-联系(E-R)图来描述现实世界的概念模型。E-R图提供了表示实体型、属性和联系的方法。(1)实体型 用矩形表示,矩形框内写明实体名,如图1.3中表示的“医生处方”是一个实体。(2)属性 用椭圆形表示,并用无向边将其与相应的实体连接起来。如图1.3中表示的“处方医生编号”、“处方编号”、“处方日期”都是“医生处方”这个实体的属性,它们均与实体“医生处方”通过无向边相连。(3)联系 用菱形表示,并用无向边分别与有关实体连接。需要指出的是,联系也可以有属性。如图1.3中联系“开药”有一个属性“药品用量”,它表示医生的每张处方在开出药品后对每种药品均应有“药品用量”。这个属性既不属于“医生处方”实体,又不属于“药品”实体,只能属于它们的联系。实体型之间的联系要注意以下几点: 实体型之间的一对一、一对多和多对多联系不仅存在于两个实体型之间,也存在于两个以上的实体型之间。 同一个实体集内的各实体之间也可以存在一对一、一对多和多对多的联系。 联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。医生处方与药品之间的多对多联系在关系模型中可以用E-R图表示,如图1.3所示。图1.3中有“医生处方”与“药品”两种实体,它们之间的联系是:医生所开的 处方中可能有多种药物,一种药物也可能存在于多张处方当中。因而,“药品”实体与 “医生处方”实体之间的联系是多对多的联系。正是由于“医生处方”与“药品”之间的 这种联系,使得开发者在计算机上创建和处理这些数据时也不能把这些实体看成一个个简单独立的对象。开发者常常把有联系的实体经过处理后建立成为一个有联系的整体数据库。图1.3 医生处方与药品之间的E-R图在数据库的设计阶段使用E-R图来描述数据库概念模式的设计,它的主要设计步骤 如下:(1)针对特定用户的应用,确定实体、属性和实体间的联系,画出用户视图的局部E-R图。如上例,可以先画出“医生处方”和“药品”两个实体的局部E-R图,然后再考虑各实体之间的联系,实体越多,E-R图将越复杂。(2)综合各个用户的局部E-R图,产生反映数据库整体概念的总体E-R图。注意:对不同E-R图中的实体,要消除那些同名异义或同义异名的现象,保证数据的一致性。在综合局部E-R图时,需要注意消除那些冗余的实体、属性与联系。1.2.2 组织层数据模型数据库是一个具有一定数据结构的数据集合,这个结构是根据现实世界中事物之间的关系来确定的。在数据库系统中,不仅要存储和管理数据本身,还要保存和处理数据之间的联系,这个联系就是实体之间的联系。如果反映在数据上,则是记录之间的联系。研究如何表示和处理这种联系是数据库系统的一个核心问题。概念层数据模型是现实世界的一个抽象层面的描述方法,能较好地描述现实世界中事物之间的关系。数据库系统为了能很好地支持概念数据模型,必须要采用具体的数据组织结构,这就是组织层数据模型。组织层数据模型是位于概念层数据模型和数据库系统之间的一个层次。较为常见的组织层数据模型有层次模型、网状模型、关系模型和面向对象模型四类。它们之间的根本区别在于数据之间联系的表示方式不同(即记录型之间的联系方式不同)。层次模型是用“树结构”来表示数据之间的联系;网状模型是用“图结构”来表示数据之间的联系;关系模型是用“二维表”(又称为关系)来表示数据之间的联系;面向对象模型是用面向对象观点来描述现实世界实体的逻辑组织、对象间限制与联系。1层次模型层次数据模型是数据库系统中最早出现的数据模型。层次模型用树形结构表示实体及其之间的联系。该模型的实际存储数据由链接指针来体现联系。层次模型适合描述现实世界原本具有层次关系的系统,例如企业、学校、机关及家族等。层次数据库系统的典型代表是IBM公司于1968年推出的第一个大型商用数据库管理系统IMS(information management system)数据库管理系统。层次模型有且仅有一个结点无父结点,此结点即为根结点,其他结点有且仅有一个父结点,适合表示一对多的联系。层次模型的数据结构是一棵“有向树”。构造层次模型的过程就是将信息模型映射为一个有序树或森林的过程,此时树中的每个结点为一个记录类型,对应一个实体类型;树中的每个分支表示父子两结点(对应两个实体类型)间的一种一对多联系,称为父子联系(parent-child relationship,PCR)。在层次模型中,每个记录类型包含若干个数据项,每一个类型记录和它的数据项都必须命名,不同记录类型的名称应当不同,同一记录类型中不同数据项的名称也应不同。两个记录类型之间最多只有一个父子联系。一个层次模型在理论上包含任意有限个记录类型和数据项,但在实际应用上受存储容量等因素的限制仅有一定长。在查找层次模型的任何一个记录值时,必须从根结点出发,按其路径查看才能找出它的全部意义。图1.4表示了一个简单的医院层次数据模型,它有四个记录类型。记录类型“附属医院”是根结点,由“附属医院编号”和“附属医院名称”数据项组成,一个医药类型的学院可能有多个附属医院。“附属医院”有一个子结点,是记录类型“科室”,它们之间是一对多的联系。“科室”有“科室号”、“科室名”和“科室人数”三个数据项,它有两个子结点,一个是“医生”,一个是“病人”。“科室”与它的子结点之间也是一对多联系。图1.4 医院层次数据模型2网状模型用网状结构表示实体及其之间的联系的模型称为网状模型,又可以称为网络模型。网状模型允许结点有多于一个的父结点,也可以有一个以上的结点没有父结点,适合用于表示多对多的联系。最具代表性的网状数据库管理系统是1971年4月CODASYL(Conference On Data System Language,数据系统语言协会)组织通过DBTG(DataBase Task Group,数据库任务组)报告(和其后的修改文件)规范的系统,习惯称之为CODASYL系统或DBTG系统。网状模型反映着现实世界中实体间更为复杂的联系,其基本特征是:结点数据间没有明确的从属关系,一个结点可与其他多个结点建立联系。城市之间多对多的交通联系就是网状模型的典型例子。网状模型用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式,网状模型将数据组织成有向图结构。与层次模型类似,网状模型中每个结点也是代表数据记录类型,连线描述不同结点数据间的关系。下面以医生开处方为例,来说明网状数据库模式是如何组织数据的。“医生处方”与“药品”之间是多对多的联系,在网状数据模型中,通过引入联结记录的方式将多对多联系转换成为一对多联系。图1.5为医生处方与药品网状数据模型,它包含三个记录:“医生处方”、“药品”与“药品处方”,其中“药品处方”为联结记录。图1.5 医生处方与药品网状数据模型网状模型能够更为直接地描述现实世界,具有良好的性能,存取效率高。但网状模型结构复杂,随着应用环境的扩大,数据库的结构会变得更加复杂。同时,网状模型的数据定义及数据操纵语言也相对复杂。3关系模型关系模型是目前最重要的一种模型,其思想由IBM公司的E.F.Codd于1970年在他的一系列论文中提出,以后的几年陆续出现了以关系模型为基础的数据库管理系统,称为关系数据库管理系统(RDBMS)。现代广泛使用的RDBMS有:Oracle、Sybase、Informix、DB2、SQL Server、Access、Visual FoxPro系列数据库等。关系数据库采用关系模型作为数据的组织方式。关系模型的数据结构是一种二维表格结构。在关系模型中,实体本身的信息以及实体之间的联系均表现为二维表,这种表就称为关系。关系模型不是人为地设置指针,而是由数据本身自然地建立它们之间的联系,并且用关系代数和关系运算来操纵数据,这就是关系模型的本质。从用户的角度看,一个关系模型的逻辑结构是一张二维表格,它由行和列组成。例如,表1.2中的药品记录就是一个关系模型。表1.2 药品记录表药品编号药品名称药品类型药品剂型药品单位药品单价药品数量生产日期药品过期日期1001阿莫西林西药24s盒24.611002006-3-132008-2-41002阿莫仙士干糖浆西药125mg12包盒1112002006-3-302008-2-211003爱活胆通西药100s盒68.210002006-3-282008-2-191004倍他乐克西药20s盒15.710002006-4-72008-2-291005肠虫清西药10s盒1110002006-4-102008-3-3关系模型涉及以下一些概念: 关系 对应通常说的表,如表1.2所示。 元组 表中的一行即为一个元组,表中有多少行,就对应多少个元组,也称记录,如表1.2中有5条记录。 属性 表中的一列即为一个属性,如表1.2有9列,对应9个属性(药品编号、药品名称、药品类型、药品剂型、药品单位、药品数量、药品单价、生产日期、药品过期日期)。 主关键字 关系中的某个属性组,它可以唯一确定一个元组(记录)。例如表1.2中的药品编号,按照药品编号的编排方法,每种药品的编号都不相同,因而它可以唯一确定一种药品,也就成为本关系的主关键字。 域(domain) 属性的取值范围,如药品的生产日期一般在最近的某个时间,不可能是未来的某个时间。药品的类型也是目前存在的一些类型,如我国的中药、西 药等。 关系模式 对关系的描述,一般表示为:关系名(属性1,属性2,属性n)例如,图1.3中的E-R图在转换成关系模式时可描述为:药品(药品编号,药品名称,药品类型,药品剂型,药品单位,药品单价,药品数量,生产日期,药品过期日期)医生处方(处方编号,医生编号,处方日期)处方(处方编号,药品编号,用量)在图1.3中,由于“药品”与“医生处方”实体之间的联系是多对多的,在转换成关系模式时,通常把联系也转换成一个关系,它的属性由联系涉及的实体双方的主关键字和联系本身的属性组成。除了表1.2中描述的药品关系外,医生处方关系和处方关系参见表1.3和表1.4所示。 外关键字(外键) 如果一个关系模式中某一个属性或属性集是另一个关系的主关键字,那么这个属性或属性集是这个关系的外键。在“处方”关系中,“处方编号”属性是“医生处方”关系主键,因而“处方编号”是“处方”关系的外键。同理,“药品”编号也是“处方关系” 的外键。这三个关系通过“处方”关系连成一个整体。有了这种定义后,“处方”关系中的外键属性值不是由“处方”关系本身来定义,必须要参照键所诠释为主键的关系中的键的键值。这就是后面介绍的“参照完整性约束”规则。有了这三个关系,就可以在数据库中创建“药品-医生处方”数据库了。 关系数据模型的操纵与完整性约束 关系数据模型的操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。读者能在后面具体介绍SQL Server 2000数据库的操作章节中体会到关系数据库的完整性约束。4面向对象模型面向对象数据库吸收了面向对象程序设计方法学的核心概念和基本思想。一个面向对象数据模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。一系列面向对象核心概念构成了面向对象数据模型的基础。概括起来,面向对象数据模型的核心概念如下:(1)对象与对象标识现实世界中的任何实体都被统一地抽象为对象表示,每一个对象都有它唯一的标识,称为对象标识。对象标识与对象的物理存储位置无关,也与数据描述方式和值无关。它是在对象创建的瞬间由系统赋给的,在对象生存期间,标识是不能改变的。(2)封装每一个对象是其状态和行为的封装。对象的状态是该对象属性值的集合,而对象的行为是在对象状态上操作方法(程序代码)的集合。对象被封装的状态和行为在对象外部是不可见的,只能通过显式定义的消息传递来 存取。(3)类和类的定义域所有具有相同属性和方法集的对象构成一个对象类。任何一个对象都是某一对象类的一个实例。对象类中属性的定义域可以是任何类。类的定义域可以是基本类,如整数、字符串、布尔型,也可以是包含自身属性和方法的一般类。一个类的某一属性的定义也可以是类自身。(4)继承一个类可以直接或间接继承其他类的属性和方法,该类称为这些类的子类,被继承类称为超类。类继承分为单继承和多重继承。若一个类只有一个直接超类,称为单继承;若一个类有若干直接超类,称为多重继承。尽管对象的描述迄今尚未达到一致意见,但在以上称为核心的面向对象概念方面已达到了高度一致。一个面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者;而一个对象库是由一个面向对象数据模型所定义的对象的集合体,这些对象支持面向对象程序设计中对象的描述。一个数据库系统可称为面向对象数据库系统,必须满足以下两个条件: 支持一个核心的面向对象数据模型; 支持传统数据库系统所有的数据库特征。1.3 数据库系统的三层模式结构和二级映像尽管数据库软件产品种类繁多,使用的数据库语言各异,基础操作系统不同,采用的数据结构模型相差甚大,但绝大多数数据库系统在总体结构上都体现三级模式的结构特征:概念模式(conceptual schema)、外模式(external schema)和内模式(internal schema)。这个结构称为“数据库的体系结构”,有时也称为“三级模式结构”。数据库的三级模式结构是针对数据的三个抽象级别,它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,DBMS在三级结构之间提供两个层次的映像,即外模式/模式映像和模式/内模式映像。这里的模式是概念模式的简称。1.3.1 关系数据库的三级模式为了有效地组织和管理数据,提高数据库的逻辑独立性和物理独立性,人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式、模式和内模式。1概念模式概念模式是数据库中全部数据的整体逻辑结构的描述,它由若干个概念记录类型组成。概念模式不仅要描述概念记录类型,还要描述记录间的联系、操作、数据的完整性以及安全性等要求。定义模式时不仅要定义数据的逻辑结构(例如数据记录由哪些数据项构成,数据项的名字、类型、长度和取值范围等),而且还要定义与数据有关的安全性、完整性要求以及定义这些数据之间的联系。数据库系统提供模式描述语言来描述逻辑模式,严格定义数据的名称、特征、相互关系和约束等。2外模式外模式是用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式由若干个外部记录类型组成。用户使用数据操纵语言语句对数据库进行操作,实际上是对外模式的外部记录进行操作。一个数据库可以有多个外模式。如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则他们的外模式描述就是不同的。外模式是概念模式的子集,也称子模式或用户模式。3内模式内模式是数据库在物理存储方面的描述,它用于定义所有内部记录类型、索引和文件的组织方式以及数据控制方面的细节。一个数据库只有一个内模式,内模式也称为存储模式。图1.6描述了数据库系统的三层模式结构。数据库管理员(database administrator,DBA)的主要工作包括:数据库安装、数据库配置和管理、权限设置和安全管理、监控和性能调节以及数据库备份和恢复等。图1.6 数据库的三级模式结构1.3.2 数据库系统的二级映像集中式数据库中,数据的独立性是通过系统的三级模式和它们之间的二级映像得到的。分布式数据库中,分布透明性是由于引入新的模式和模式之间的映像得到的。1模式/内模式映像模式/内模式映像存在于概念模式与内模式之间,用于定义概念模式与内模式之间的对应性。由于这两级的数据结构可能不一致,即记录类型、字段类型的命名和组成可能不一样,因此需要这个映像说明概念记录和内部记录之间的对应性。2外模式/模式映像外模式/模式映像存在于外模式与概念模式之间,用于定义外模式与概念模式之间的对应性。3两级数据独立性两级数据独立性是指物理数据独立性和逻辑数据独立性两个级别。如果数据库的内模式要修改,即数据库的物理结构有所变化,那么只要对模式/内模式映像作相应的修改即可。可以使概念模式尽可能保持不变,也就是对内模式的修改尽量不影响到概念模式,当然对于外模式的影响更小,这样就称数据库达到了物理数据独立性。如果数据库的概念模式要修改,如增加记录类型或增加数据项,那么只要对外模式/模式映像作相应的修改,可以使外模式和应用程序尽可能保持不变,这样就称数据库达到了逻辑数据独立性。1.4 数据库系统的组成图1.7 数据库系统组成数据库系统(database system,DBS)由数据库(database,DB)、数据库管理系统(data base management system,DBMS)、应用程序和各类人员等组成。数据库是一个结构化的数据集合,主要是通过综合各个用户的文件,除去不必要的冗余,使之相互联系所形成的数据结构;数据库管理系统(DBMS)是数据库中专门用于数据管理的软件;各类人员指参与分析、设计、管理、维护和使用数据库中数据的人员,他们在数据库系统的开发、维护和应用中起着重要的作用。分析、设计、管理和使用数据库系统的人员主要是:数据库管理员、系统分析员、应用程序员和最终用户。数据库系统组成如图1.7所示。1.4.1 数据库数据库是统一管理的相关数据的集合,能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步加工处理,进一步抽取有用信息。在科学技术飞速发展的今天,人们的视野越来越广,数据量急剧增加。过去人们把数据存放在文件柜里,现在人们借助计算机和数据库技术科学地保存和管理大量和复杂的数据,以便能方便而充分地利用这些宝贵的信息资源。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。1.4.2 数据库管理系统数据库管理系统(DBMS)是操纵和管理数据库的软件系统,它由一组计算机程序构成,管理并控制数据资源的使用。在计算机软件系统的体系结构中,数据库管理系统位于用户和操作系统之间。 DBMS是数据库系统的核心,主要是实现对共享数据有效的组织、管理和存取,它的基本功能包括以下几个方面。1数据库定义功能数据库定义就是对数据库的结构进行描述,包括:外模式、模式、内模式的定义;数据库完整性的定义;安全保密定义(如用户口令、级别、存取权限)以及存取路径(如索引)的定义。这些定义存储在数据字典(亦称为系统目录)中,是DBMS运行的基本依据。DBMS提供数据定义语言(data definition language,DDL),用户通过它可以方便地对数据库结构进行定义。2数据操纵功能DBMS还提供数据操纵语言(data manipulation language,DML),用户可以使用DML操纵数据,实现对数据库的基本操作,如检索、插入、删除和修改等。一个好的DBMS应该提供功能强、易学易用的DML,以及方便的操作方式和较高的数据存取效率。DML有宿主型语言和自立型语言两类。前者的语句不能独立使用,必须嵌入某种主语言,如 C语言、Pascal语言;后者可以独立使用,通常供终端用户使用。3数据库的运行管理数据库在建立、运用和维护时由DBMS统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复,从而保证数据库系统的正常运行。4数据组织、存储和管理功能DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。要确定以何种文件结构和存取方式在存储级上组织这些数据以及如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法(如索引查找、Hash查找、顺序查找等),提高存取效率。5数据库的建立和维护功能它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。6其他功能包括DBMS与网络中其他软件系统的通信功能;一个DBMS与另一个DBMS或文件系统的数据转换功能;异构数据库之间的互访和互操作功能等。1.4.3 数据库系统数据库系统(DBS)是一个实际可运行的存储、维护和应用系统提供的数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。狭义而言,数据库系统是由数据库、数据库管理系统和用户构成。广义而言,数据库系统是由计算机硬件、操作系统、数据库管理系统以及在它支持下建立起来的数据库、应用程序、用户和维护人员的一个整体。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。对数据库系统的基本要求如下:(1)能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。(2)冗余数据少,数据共享程度高。(3)系统的用户接口简单,用户容易掌握,使用方便。(4)能够确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。(5)有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。(6)具有可修改性和可扩充性。(7)能够充分描述数据间的内在联系。1.5 数据库设计的基本步骤数据库设计(database design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。数据库设计遵循软件设计的理念,常常需要不同的设计人员分阶段进行。这样做的好处是便于技术分工和分段把关、逐级审查,保证设计质量和进度。参与设计的人员主要有数据库设计人员、用户、程序员和操作员。 数据库设计人员 这部分人员是数据库设计中的核心人员,他们参与数据库设计的全过程。数据库设计人员的设计水平对数据库系统的质量将具有决定性作用。 用户 用户主要参与需求分析和数据库的运行与维护。 程序员 程序员在系统实施阶段参与进来,负责编写应用程序。 操作员 操作员在系统实施阶段参与进来,负责准备软硬件环境。按照规范化设计的方法,数据库设计一般分为以下六个设计阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行与维护。1.5.1 需求分析阶段需求分析是设计数据库的起点,需求分析的结果是否准确反映了用户的实际要求,将直接影响到后面各个阶段的设计,并关系到数据库设计的成败。需求分析阶段的主要任务包括确定设计内容、信息的收集和分析、撰写系统需求说明书。1确定设计内容这部分需要用户的积极配合。设计人员要了解不同用户的实际需求,深入实地调查研究,在各类用户的参与下,弄清现行系统的组织结构、功能划分、总体工作流程;通过调查与分析,确定在新系统中计算机能够处理的范围和内容,明确哪些功能由计算机完成,哪些由人工完成,最终确定数据库系统实现的功能。比如在医院信息系统整体规划中,药品管理部分会涉及药房药品信息、处方信息、收费信息等数据收集和处理。2信息的收集和分析需求分析要获得数据库设计所必需的数据信息,这些信息包括用户的数据需求、处理需求、完整性与安全性需求等。数据需求是指用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。处理需求是指用户对信息加工处理的要求,包括处理流程、发生频度、响应时间、安全保密要求等。数据的完整性与安全性需求是指数据的保密措施和存取控制要求,数据自身的或数据之间的约束条件。3系统需求说明书需求说明书是在需求分析活动后建立的文档资料,它是对应用系统需求分析的全面描述。需求分析说明书的内容有:系统目标、功能、性能、运行环境以及分析过程中得到的功能结构图、数据流图、数据字典等。需求说明书是需求分析阶段的产物,是用户和设计开发人员在对系统的需求取得认同基础上的文字说明,应该能够准确表达用户的需求。在需求分析阶段,为了高效进行需求分析,往往采用结构化分析方法。结构化分析方法以数据流图为主要工具、逐步求精地建立系统模型。结构化分析方法常采用数据字典、判定表、判定树等辅助工具。数据流图以图形的方式来表达数据处理系统中信息的变换和传递过程。数据字典则给出数据流图中所有数据元素的逻辑定义。1.5.2 数据库概念设计在需求分析阶段,数据库设计人员充分调查并描述了用户的应用需求,还采用流程图等工具撰写了需求说明书。但说明书描述的需求仅仅是现实世界的具体需求。将需求分析阶段得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。数据库概念结构设计的常用方法是实体-联系方法。用实体-联系方法对具体数据进行抽象加工,将实体集合抽象成实体类型,用实体间联系反映现实世界事物间的内在联系。概念设计可分为局部视图设计和集成局部视图两个步骤。1局部视图设计一个整体的系统模型可以有多个局部视图。各个部门对于数据的需求和处理方法各不相同,它们都有自己的视图。概念设计首先根据需求分析阶段产生的各个部门的数据流图和数据字典中的相关数据,设计出各自的局部视图。局部视图的设计过程主要包括三步:确定实体类型和属性、确定实体间的联系、画出局部E-R图。可以根据数据流图中的数据文件及其相关内容来确定视图中的所有实体类型及其属性,然后进行必要的调整。接下来确定实体间的联系和画出E-R图。2集成局部视图当所有局部视图设计完毕,就可以进行视图集成。集成视图的主要任务是归并和重构局部视图,使之成为一个统一的整体视图。视图集成是一个相当困难的工作,往往必须凭设计者的经验与技巧才能很好地完成。集成局部E-R视图需要两步:合并,将各个分E-R图合并起来生成初步的E-R图;修改与重构,消除不必要的冗余,生成整体E-R图。1.5.3 数据库逻辑设计数据库逻辑设计阶段的任务就是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化,以形成本数据库的数据库逻辑模型。该模型必须满足数据库的存取、一致性及运行等各方面的用户要求。数据库逻辑设计一般包括以下几步。1DBMS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 库存甘油转让协议书
- 保母岗位职业基础知识资格证考试题与答案
- 廉洁招租协议书范本
- 扶贫车间租赁协议书
- 承办贷款协议书范本
- 承包区域经营协议书
- 承包地流转合同范本
- 承包山林的合同协议
- 承包服务协议书范本
- 承包活动协议书范本
- 单招协议培训
- 天津高考英语词汇3500
- (土壤学教学课件)第一章-土壤矿物质
- 外籍人员基本情况登记表
- 2023学年完整公开课版插座安装
- 水尺计重的资料
- 中小学(中职学校)学生餐饮保障突出问题台账
- GB/T 3672.1-2002橡胶制品的公差第1部分:尺寸公差
- GB/T 26746-2011矿物棉喷涂绝热层
- 黑龙江八一农垦大学-渠文军-答辩通用PPT模板
- 盾构法施工工艺及施工过程分步介绍
评论
0/150
提交评论