




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目2设计数据库《数据库管理与开发项目教程(SQLServer2019)(微课版)(第3版)》22【能力目标】
学会将现实世界的事物和特性抽象为信息世界的实体与关系。学会使用实体-联系(EntityRelationship,E-R)图描述实体、属性和实体间的关系。学会将E-R图转换为关系模型。能根据开发需求,将关系模型规范化到一定程度。对数据完整性有清晰的认识。【思政目标】坚定文化自信。深刻认识国产数据库跨越式发展的新机遇。软件国产化成为保护国家信息安全的重要手段,而数据库作为基础软件理应首当其冲成为国产化推进的主要领域之一。项目2设计数据库33【项目描述】设计学生信息管理系统的数据库,绘制E-R图,将E-R图转换成关系模型,指出各表的关键字。【项目分析】设计数据库是一个把现实世界抽象化,把信息世界数据化的过程。本项目以学生信息管理系统的xs数据库设计过程为例,介绍必要的数据库基础知识和数据库应用开发技术,使读者能够设计开发数据库应用系统。xs数据库贯穿全书,要求读者熟悉数据库中的3个表(XSDA、XSCJ、KCXX)以及它们之间的关系,初步了解数据库。项目2设计数据库【思政导入】欲善其事,先利其器
现实世界中存在的客观事物数据化后才能在计算机中处理,不同状态的数据发挥的作用不同。在职场中我们做好自己的角色很重要,将自己的工作做到极致,才能体现出自身的价值来。项目2设计数据库55【任务设置】任务1附加与分离数据库认知数据库结构任务2现实世界数据化任务3转换成关系模型任务4认知关键字和数据完整性项目2设计数据库66【任务目标】熟悉附加数据库的方法。熟悉分离数据库的方法。理解SQLServer2019的数据库结构。熟悉本书示例数据库xs的数据。【任务分析】现有xs数据库,如何将其加载到SQLServer2019中呢?只要附加数据库就可以了。本任务就介绍如何附加已有的数据库,并熟悉本书示例数据库xs的数据。任务1附加与分离数据库、认知数据库结构项目2设计数据库77
在使用SQLServer2019的过程中,用户可能会遇到两个问题:一个是将数据库从一个SQLServer服务器移到另一个SQLServer服务器上,另一个是数据库文件所在的磁盘空间已用完。第一个问题一般的处理方法是创建一个新数据库,然后通过备份和还原移动数据库;第二个问题的解决办法是在另一个磁盘上增加一个辅助数据文件。这两种办法都比较复杂,SQLServer2019则提供了一种非常简单的办法——分离和附加数据库。SQLServer2019允许分离数据库的数据和事务日志文件,然后将其附加到另一台服务器,甚至同一台服务器上。任务1-1附加数据库项目2设计数据库881.使用SSMS附加数据库【例2-1】使用SSMS将E:\SQL\databeifen文件夹中的数据库附加到当前的SQLServer实例上。(1)启动SSMS,在【对象资源管理器】窗口中用鼠标右键单击【数据库】选项,选择【附加】命令,如图2-1所示。(2)打开【附加数据库】窗口,进行相关设置,如图2-2所示。任务1-1附加数据库项目2设计数据库图2-1选择【附加】命令99(3)单击【添加】按钮,打开【定位数据库文件】对话框,选择要附加的主要数据文件。数据库附加成功后,在【数据库】选项中将会出现as数据库子选项。任务1-1附加数据库项目2设计数据库图2-2【附加数据库】窗口10102.使用T-SQL语句附加数据库在SQLServer2019中,使用存储过程EXECsp_attach_db可以附加数据库。语法格式:sp_attach_db数据库名,@FILENAME=文件名[,…16]【例2-2】使用T-SQL语句将E:\SQL\databeifen文件夹中的数据库附加到当前的SQLServer实例上:EXECsp_attach_dbxs,'E:\SQL\databeifen\as_data.mdf','E:\SQL\databeifen\as_log.ldf'任务1-1附加数据库项目2设计数据库1111xs数据库由选课系统所需的数据库信息组成,如图2-3所示。任务1-2认知数据库结构项目2设计数据库图2-3xs数据库结构1212服务器上的数据库结构如图2-4所示。任务1-2认知数据库结构项目2设计数据库图2-4服务器上的数据库结构1313SQLServer2019允许分离数据库的数据和事务日志文件,然后将其附加到另一台服务器,甚至同一台服务器上。下面介绍两种分离数据库的方法。1.使用SSMS分离数据库【例2-3】使用SSMS分离xs数据库,并将数据库对应的文件复制到E:\SQL\databeifen文件夹中。(1)启动SSMS,在【对象资源管理器】窗口中展开【数据库】选项。(2)用鼠标右键单击【xs】选项,选择【任务】→【分离】命令,如图2-5所示。任务1-3分离数据库项目2设计数据库1414任务1-3分离数据库项目2设计数据库图2-5选择【分离】命令1515(3)打开【分离数据库】对话框,选择要分离的数据库,并进行相关设置。(4)分离数据库准备就绪后,单击【确定】按钮,完成数据库的分离操作。数据库分离成功后,【数据库】下的【xs】选项将不复存在。(5)将E:\data文件夹中xs数据库对应的两个文件复制到E:\SQL\databeifen文件夹中(如果该文件夹不存在,就先创建该文件夹)。2.使用T-SQL语句分离数据库在SQLServer2019中,使用存储过程EXECsp_detach_db可以实现数据库的分离。任务1-3分离数据库项目2设计数据库1616语法格式:sp_detach_db数据库名【例2-4】使用T-SQL语句实现xs数据库的分离:EXECsp_detach_dbxs任务1-3分离数据库项目2设计数据库1717【任务目标】学会将现实世界的事物和特性抽象为信息世界的实体与关系。学会使用实体-联系图(E-R图)描述实体、属性和实体间的关系。【任务分析】本任务以学生选课为具体应用,把学生选修课程抽象出来,绘制出E-R图,将现实世界的客观事物数据化。任务2现实世界数据化项目2设计数据库1818要将现实世界的信息放入计算机中进行存储和表示,首先需要对其进行数据化,然后根据现实需求进行存储和修改。1.数据数据(Data)是描述事物的符号记录,用类型和数值来表示。随着计算机技术的发展,数据的含义更加广泛了,不仅包括数字,还包含文字、图像、声音和视频等。在数据库技术中,数据是数据库中存储的基本对象。例如,学生的档案管理记录、货物的运输情况等都是数据。任务2-1现实世界数据化的过程项目2设计数据库19192.数据处理数据处理是指将数据转换成信息的过程,是由人、计算机等组成的能进行信息的搜集、传递、存储、加工、维护、分析、计划、控制、决策和使用的系统。经过处理,信息被加工成特定形式的数据。任务2-1现实世界数据化的过程项目2设计数据库图2-6
从数据到信息的转换过程20202.数据处理数据处理是指将数据转换成信息的过程,是由人、计算机等组成的能进行信息的搜集、传递、存储、加工、维护、分析、计划、控制、决策和使用的系统。经过处理,信息被加工成特定形式的数据。3.数据库数据库(Database,DB)是指长期存储在计算机内、按一定的数据模型组织和存储、可共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。任务2-1现实世界数据化的过程项目2设计数据库21214.数据库管理系统数据库管理系统是一种数据管理软件,它使用户能够方便地定义数据和处理数据,并能够保证数据的安全性、完整性,以及多用户对数据的并发使用及发生故障后的数据恢复。其功能如下。(1)数据定义功能(2)数据处理功能(3)数据库运行管理功能(4)数据库的维护功能任务2-1现实世界数据化的过程项目2设计数据库图2-7数据库管理系统在计算机层次结构中的地位
22225.数据库系统数据库系统(DatabaseSystem,DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员、应用程序员(ApplicationProgrammer,AP)和用户构成,如图2-8所示。任务2-1现实世界数据化的过程项目2设计数据库
图2-8数据库系统23236.现实世界数据化过程将现实世界存在的客观事物进行数据化,要经历从现实世界到信息世界,再从信息世界到数据世界的过程。现实世界、信息世界和数据世界三者之间的关系如下。任务2-1现实世界数据化的过程项目2设计数据库2424数据库管理系统是按照一定的数据模型组织数据的。所谓的数据模型,是指数据结构、数据操作和完整性约束3个方面。这3个方面称为数据模型的三要素。1.数据结构2.数据操作3.完整性约束任务2-2数据模型的概念项目2设计数据库2525信息是对客观事物及其相互关系的表征,同时数据是信息的具体化、形象化,是表示信息的物理符号。在管理信息系统中,要对大量的数据进行处理,首先要弄清楚现实世界中事物及事物间的联系是怎样的,然后逐步分析、变换,得到系统可以处理的形式。因此对客观世界的认识、描述是一个逐步的过程,有层次之分,可将它们分成3个层次。1.现实世界2.信息世界3.数据世界任务2-3概念模型项目2设计数据库26263个层次间的关系如图2-9所示。任务2-3概念模型项目2设计数据库图2-9
3个层次间的关系2727描述概念模型最常用的方法是E-R方法。这种方法简单、实用,它所使用的工具称为E-R图。E-R图中包括实体、属性和联系3种图素。实体用矩形框表示,属性用椭圆形框表示,联系用菱形框表示,框内填入相应的名称,实体与属性或者实体与联系之间用无向直线连接。多值属性用双椭圆形框表示,派生属性用椭圆形框表示。E-R图中使用的基本符号如图2-10所示。任务2-3概念模型项目2设计数据库图2-10E-R图中使用的基本符号28281.实体客观存在并且可以相互区别的事物称为实体。实体可以是具体的事物,也可以是抽象的事件。例如,学生、图书等属于实际具体事物,订货、借阅图书等活动是抽象的事件。2.实体集同一类实体的集合称为实体集。由于实体集中的实体较多,没有必要一一指出每一个属性,因此引入实体型。3.实体型任务2-3概念模型项目2设计数据库2929实体型是对同类实体的共有特征的抽象定义,用实体名及其属性名称集合来抽象和描述。例如,学生(学号,姓名,年龄,性别,成绩)是一个实体型。4.属性描述实体的特性称为属性。例如,学生实体用学号、姓名、性别、年龄等属性来描述。不同的实体用不同的属性区分。5.联系(1)一对一联系(1∶1)(2)一对多联系(1∶n)。(3)多对多联系(m∶n)任务2-3概念模型项目2设计数据库3030任务2-3概念模型项目2设计数据库图2-11实体间的联系图2-12
实体联系E-R图3131绘制正确的E-R图是确定关系的必要条件,首先进行需求分析,然后进行E-R图设计。1.需求分析设计数据库首先必须准确了解与分析用户需求。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步,需求分析的结果是否准确地反映了用户的实际需求2.概念结构设计形成E-R图对于“学生信息管理系统”的需求,抽取出各实体及其所需属性并形成局部E-R图。学生实体E-R图如图2-13所示。课程实体E-R图如图2-14所示。任务2-4绘制学生选修E-R图项目2设计数据库3232任务2-3概念模型项目2设计数据库图2-14课程实体E-R图图2-13学生实体E-R图3333任务2-3概念模型项目2设计数据库图2-16用户实体E-R图图2-15成绩E-R图学生实体与课程实体之间的关系用成绩E-R图表示,如图2-15所示。用户实体E-R图如图2-16所示。对局部E-R图综合整理后,得到全局E-R图,如图2-17所示。3434任务2-3概念模型项目2设计数据库图2-17全局E-R图3535【任务目标】学会将E-R图转换成关系模型。能根据开发需求,将关系模型规范化到一定程度。【任务分析】关系模型是目前数据库系统普遍采用的数据模型,也是应用最广泛的数据类型。关系模型通过二维表来表示实体以及实体之间的联系。本任务详细介绍关系模型和二维表。任务3将E-R图转换成关系模型项目2设计数据库3636
逻辑数据模型是指数据库中数据的组织形式和联系方式,简称数据模型。数据库中的数据是按照一定的逻辑结构存储的,这种结构用数据模型来表示。现有的数据库管理系统都基于某种数据模型。按照数据库中数据采取的不同联系方式,数据模型可分为3种:层次模型、网状模型和关系模型。1.层次模型层次模型的优点是结构简单、层次清晰、易于实现,适合描述类似家族关系、行政编制及目录结构等信息载体的数据结构。任务3-1逻辑数据模型项目2设计数据库3737其基本结构有两个限制。(1)此模型中有且仅有一个节点没有双亲节点,该节点称为根节点,其层次最高。(2)根节点以外的其他节点有且仅有一个双亲节点。所以,使用层次模型可以非常直接、方便地表示1∶1和1∶n联系,但不能直接表示m∶n联系,难以实现对复杂数据关系的描述。一个层次模型的简单例子PS数据库层次模型如图2-18所示。任务3-1逻辑数据模型项目2设计数据库3838任务3-1逻辑数据模型项目2设计数据库图2-18
PS数据库层次模型39392.网状模型网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个节点没有双亲节点,允许节点有多个双亲节点,此外它还允许两个节点之间有多种联系。因此,网状模型可以更直接地描述现实世界。层次模型实际上是网状模型的一个特例。网状模型的主要优点是在表示数据之间的m∶n联系时具有很大的灵活性,但是这种灵活性是以数据结构的复杂化为代价的。任务3-1逻辑数据模型项目2设计数据库4040任务3-1逻辑数据模型项目2设计数据库图2-19网状模型41图2-20关系模型示例3.关系模型关系模型与层次模型、网状模型的理论和风格截然不同,如果说层次模型和网状模型是用“图”表示实体及其联系,那么关系模型用“二维表”来表示。从现实世界中抽象出的实体及其联系基本使用二维表表示。而关系模型就是用若干个二维表来表示实体及其联系的,这是关系模型的本质。关系模型示例如图2-20所示。任务3-1逻辑数据模型项目2设计数据库4242二维表并不一定是关系模型,只有具有下面特点的二维表才是关系模型。(1)表格中的每一列都是不可再分的数据单元。(2)每列的名称不同,数据类型相同或者兼容。(3)行的顺序无关紧要。(4)列的顺序无关紧要。(5)不存在完全相同的两行。通常将关系模型称为关系或者表,将关系中的行称为元组或记录,将关系中的列称为属性或字段。任务3-2认知关系模型的基本概念项目2设计数据库43431.关系术语关系数据库有几个常见的关系术语。(1)关系关系就是一个二维表格,每个关系都有一个关系名。在SQLServer2019中,一个关系称为一个表(Table)。(2)记录(元组)在一个具体的关系中,每一行称为一个记录,又称元组。(3)字段(属性)在一个具体的关系中,每一列称为一个字段,又称属性。任务3-2认知关系模型的基本概念项目2设计数据库4444(4)域域就是属性的取值范围,即不同记录对同一个属性的取值予以限定的范围。例如,“成绩”属性的域是0~100,“性别”属性的域为“男”“女”。(5)关键字在一个关系中有一个或几个这样的字段(属性),其值可以唯一地标识一个记录,该字段称为关键字。例如,学生表中的“学号”字段就可以作为一个关键字,而“姓名”字段因其值不唯一而不能作为关键字。任务3-2认知关系模型的基本概念项目2设计数据库4545(6)关系模式对关系的描述称为关系模式。一个关系模式对应一个关系,是命名的属性集合。其格式为:关系名(属性名1,属性名2,…,属性名n)例如:学生(学号,姓名,年龄,性别)课程(课程号,课程名,学分,学时)选修(学号,课程号,成绩)一个具体的关系模型则是若干个相联系的关系模式的集合。以上3个关系模式就可组成关系模型。任务3-2认知关系模型的基本概念项目2设计数据库46462.关系的二维表的约束关系表现为二维表,但不是所有的二维表都是关系。成为关系的二维表有如下约束。(1)不允许“表中套表”,即表中每个属性必须是不可分割的数据单元;或者说每个字段不能再分为若干个字段,即表中不能再包含表。(2)在同一个关系中不能出现相同的属性名。(3)列的次序可以任意交换,不改变关系的实际意义。(4)表中的行又称为元组,代表一个实体,因此表中不允许出现相同的两行。(5)行的次序可以任意交换,不会改变关系的实际意义。任务3-2认知关系模型的基本概念项目2设计数据库4747关系模型的逻辑结构是一组关系模式的集合,而E-R图则是由实体、实体的属性和实体之间的联系3个要素组成的,所以将E-R图转换为关系模型实际上就是将实体、实体的属性和实体之间的联系转换为关系模式。这种转换一般遵循如下原则。(1)一个实体转换为一个关系模式,实体的属性即关系的属性,实体的关键字就是关系的关键字。(2)如果是一个1:1联系,可在联系两端的实体关系中的任意一个关系的属性中加入另一个关系的关键字。(3)如果是一个1:n联系,可在n端实体转换成的关系中加入一端实体关系中的关键字。任务3-3将学生选修E-R图转换为关系模型项目2设计数据库4848(4)如果是一个n:m联系,可转换为一个关系。联系两端各实体关系的关键字组合构成该关系的关键字,组成关系的属性中除关键字外,还有联系自有的属性。(5)3个或3个以上实体间的一个多元联系转换为一个关系模式。(6)实体集的实体间的联系,即自联系,也可按上述1:1、1:n、m:n这3种情况分别处理。(7)具有相同关键字的关系可以合并。任务3-3将学生选修E-R图转换为关系模型项目2设计数据库4949按照上述转换原则,将图2-17所示的学生信息管理系统全局E-R图转换为如下关系模型。学生档案(学号,姓名,性别,系名,出生日期,民族,总学分,备注)课程信息(课程编号,课程名称,开课学期,学时,学分)学生成绩(学号,课程编号,成绩)用户信息(用户名,密码)【例2-5】分析表2-1是否是关系模型。表2-1不是关系模型,因为授课情况还可以细分为开课学期、学时、学分3列。任务3-3将学生选修E-R图转换为关系模型项目2设计数据库5050表2-1课程一览表任务3-3将学生选修E-R图转换为关系模型项目2设计数据库课程编号课程名称授课情况开课学期学时学分104计算机文化基础1603108C语言程序设计2965202数据结构3724【例2-6】
将表2-1规范为关系模型。将表2-1的授课情况细分为开课学期、学时、学分3列,如表2-2所示,得到关系模型。课程编号课程名称开课学期学时学分104计算机文化基础1603108C语言程序设计2965202数据结构37245151关系规范化的目的是消除存储异常、减少数据冗余(重复),以保证数据完整性(即数据的正确性、一致性)和存储效率,一般将关系规范到Ⅲ范式即可。表2-2~表2-4都满足关系模型的5个特点,它们都是关系,但存在以下几个问题。任务3-4关系规范化项目2设计数据库学号姓名性别系编号系名出生日期民族总学分备注201901王红女01信息1996-02-14汉60NULL201902刘林男01信息1996-05-20汉54NULL201903曹红雷男01信息1995-09-24汉50NULL学号姓名性别系编号系名出生日期民族总学分备注201901王红女01信息1996-02-14汉60NULL201902刘林男01信息1996-05-20汉54NULL201903曹红雷男01信息1995-09-24汉50NULL表2-3学生档案表表2-4学生成绩表(1)5252(1)数据冗余姓名在两个表中重复出现。(2)数据可能不一致课程名称、姓名重复出现,容易出现数据不一致的情况,如输入的课程名称不规范,有时候输入全称,有时候输入简称;另外,在修改数据时,可能会出现遗漏的情况,造成数据不一致。(3)数据维护困难任务3-4关系规范化项目2设计数据库5353数据在多个表中重复出现使数据库的维护变得困难。例如,某个学生更改姓名,则需要在学生档案表和学生成绩表这两个表中更改,才能保证数据的一致性,数据量大时维护工作量会很大。关系数据库中的关系要满足一定的规范化要求,对于不同的规范化程度,可以使用“范式”进行衡量,记作NF。满足最低要求的为Ⅰ范式,简称1NF。在Ⅰ范式的基础上,进一步满足一些要求的为Ⅱ范式,简称2NF。同理,还可以进一步规范为Ⅲ范式。任务3-4关系规范化项目2设计数据库54541.Ⅰ范式如果一个关系的每个属性都是不可再分的数据单元,则该关系是Ⅰ范式。【例2-7】分析表2-2、表2-3是否是Ⅰ范式。因为表2-2、表2-3均满足Ⅰ范式的条件,所以它们是Ⅰ范式。Ⅰ范式是关系必须达到的最低要求,不满足该条件的关系称为非规范化关系。因为Ⅰ范式存在数据冗余、数据不一致和维护困难等缺点,所以要对Ⅰ范式进一步规范。任务3-4关系规范化项目2设计数据库55552.Ⅱ范式如果一个关系是Ⅰ范式,并且关系中的每一个非主属性完全函数都依赖于主关键字(PrimaryKey,或称主键、主码),则该关系是Ⅱ范式。单个属性作为主键的情况比较简单,因为主键的作用就是能唯一标识表中的每一行,关系中的非主属性完全函数都能依赖于主键,所以这样的关系是Ⅱ范式。对于组合属性作为主键的那些关系,通常要判断每一个非主属性是完全函数依赖还是部分函数依赖于主键。任务3-4关系规范化项目2设计数据库5656【例2-8】分析表2-3、表2-4是否是Ⅱ范式。因为表2-3的主键是学号,该表的其他非主属性都完全函数依赖于主键课程编号属性,所以表2-3是Ⅱ范式。因为表2-4的主键为(学号,课程编号),在该表中成绩属性完全函数依赖于主键,姓名只依赖于主键中的学号属性,它与主键中的课程编号属性无关,即姓名属性部分函数依赖于主键,所以表2-4不是Ⅱ范式。将非Ⅱ范式规范为Ⅱ范式的方法是,将部分函数依赖关系中的主属性(决定方)和非主属性从关系中提取出来,单独构成一个关系;将关系中余下的其他属性加上主键,构成关系。任务3-4关系规范化项目2设计数据库5757【例2-9】将表2-4规范为Ⅱ范式。表2-4中的姓名属性只与主键(学号,课程编号)中的学号有关,规范时只需要将学号属性、姓名属性分离出来组成一个关系。由于分离出来的学号、姓名属性在表2-3中已存在,因此可以由分离的属性组成一个关系。剩余的其他属性,即成绩加上主键(学号,课程编号),构成关系,如表2-5所示。它符合Ⅱ范式的条件,所以是Ⅱ范式。任务3-4关系规范化项目2设计数据库5858Ⅱ范式依然存在数据冗余、数据不一致的问题,可以进一步将其规范为Ⅲ范式。3.Ⅲ范式如果一个关系是Ⅱ范式,且关系中的每一个非主属性都不完全函数传递依赖于主键,则此关系是Ⅲ范式。任务3-4关系规范化项目2设计数据库学号课程编号成绩201901104812019021087720190320289表2-5学生成绩表(2)5959【例2-10】分析表2-2、表2-3是否是Ⅲ范式。因为表2-2满足Ⅱ范式,并且任何一个非主属性都不完全函数传递依赖于主键,所以它是Ⅲ范式。表2-3是Ⅱ范式,但不是Ⅲ范式。它的主键为学号,系编号和系名之间存在通过系编号进行函数依赖传递的关系。要清除这种函数传递依赖关系,可将系编号属性、系名属性分离出来组成一个关系。删除重复行后构成表2-6所示的系部表,该表主键为系编号,它是Ⅲ范式。在表2-3中删除系名属性后,剩余属性组成表2-7所示的学生表,它是Ⅲ范式。任务3-4关系规范化项目2设计数据库6060任务3-4关系规范化项目2设计数据库学号课程编号成绩201901104812019021087720190320289表2-8学生信息表系编号系名01信息02计算机03人文表2-6系部表学号姓名性别系编号出生日期民族总学分备注202101王红女012003-02-14汉60NULL202102刘林男012003-05-20汉54NULL202103曹红雷男012003-09-24汉50NULL表2-7学生表(1)6161对于某些比较简单的数据库,也可以删除其系编号属性,从而满足Ⅲ范式的条件,如表2-8所示。Ⅲ范式的表数据基本独立,表和表之间通过公共关键字(CommonKey)进行联系(例如,表2-6和表2-7的公共关键字为系编号),它从根本上消除了数据冗余、数据不一致的问题。任务3-4关系规范化项目2设计数据库6262数学中的算术运算是大家熟悉的,例如,2+3是一个算术运算,该运算的运算对象是数值2和3,运算法则是加法,运算结果是数值5。与此类似,关系运算的运算对象是关系(二维表),关系运算的法则包括选择、投影、连接,关系运算结果也是关系(二维表)。下面分别介绍这3种关系运算法则。1.选择选择(Selection)是在一个关系中找出满足给定条件的记录。选择是从行的角度对二维表的内容进行筛选,形成新的关系。例如,学生表如表2-9所示。任务3-5关系运算项目2设计数据库6363任务3-4关系规范化项目2设计数据库表2-7学生表(2)学号姓名性别系名出生日期民族总学分备注202101王红女信息2003-02-14汉60无202102刘林男信息2003-05-20汉54无202103曹红雷男信息2003-09-24汉50无202104方平女信息2003-08-11回52三好学生202105李伟强男信息2003-11-14汉60一门课不及格【例2-11】从表2-9中选择男同学,选择运算结果如表2-10所示,SQL语句如下:SELECT*FROM学生WHERE性别='男'6464任务3-4关系规范化项目2设计数据库表2-10选择运算结果通俗地说,选择运算是将满足条件的元组提取出来,组成一个新的关系。2.投影投影(Projection)是从一个关系中找出符合条件的属性列组成新的关系。投影是从列的角度对二维表的内容进行筛选或重组,形成新的关系。学号姓名性别系名出生日期民族总学分备注202102刘林男信息2003-05-20汉54无202103曹红雷男信息2003-09-24汉50无202105李伟强男信息2003-11-14汉60一门课不及格6565任务3-4关系规范化项目2设计数据库表2-11投影运算结果(1)【例2-12】从表2-9所示的学生表中筛选姓名和出生日期列,投影运算结果如表2-11所示,SQL语句如下:SELECT姓名,出生日期FROM学生从【例2-11】和【例2-12】中得知:选择是从行的角度进行运算的,投影则是从列的角度进行运算的。姓名出生日期王红2003-02-14刘林2003-05-20曹红雷2003-09-24方平2003-08-11李伟强2003-11-146666任务3-4关系规范化项目2设计数据库表2-12投影运算结果(2)【例2-13】从表2-9中筛选性别列,投影运算结果如表2-12所示,SQL语句如下:SELECT性别FROM学生性别女男6767任务3-4关系规范化项目2设计数据库表2-13关系R3.连接连接(Join)是从两个关系的笛卡儿积中选取属性之间满足一定条件的元组形成新的关系。在此不给出笛卡儿积的定义,仅通过一个例子让读者初步了解笛卡儿积。对于笛卡儿积的定义,请大家参考离散数学中的相关内容。设关系R和关系S分别如表2-13和表2-14所示。ABCa1b1c1a2b2c2a3b3c36868任务3-4关系规范化项目2设计数据库表2-14关系S对关系R和关系S进行笛卡儿积运算的结果如表2-15所示。ADa1c4a3c5表2-15对关系R和关系S进行笛卡儿积运算的结果R.ABCS.ADa1b1c1a1c4a1b1c1a3c5a2b2c2a1c4a2b2c2a3c5a3b3c3a1c4a3b3c3a3c56969任务3-4关系规范化项目2设计数据库连接运算中有两种常用的连接:等值连接(Equijoin)和自然连接(NaturalJoin)。等值连接是选取R与S的笛卡儿积的属性值相等的那些元组。自然连接要求两个关系中进行比较的分量必须是相同属性组,且要在结果中把重复的属性去掉。【例2-14】关系R与关系S按照属性A的值进行等值连接的结果如表2-16所示。7070任务3-4关系规范化项目2设计数据库表2-16关系R与关系S按照属性A的值进行等值连接的结果自然连接R∞S的结果如表2-17所示。。表2-17自然连接R∞S的结果R.ABCS.ADa1b1c1a1c4a3b3c3a3c5R.ABCDa1b1c1c4a3b3c3c57171任务3-5关系数据库项目2设计数据库基于关系模型建立的数据库称为关系数据库,它具有通用的数据管理功能,数据表示能力较强,易于理解,使用方便。20世纪80年代以来,关系数据库的理论日益完善,关系数据库在数据库系统中得到了广泛的应用,是各类数据库中最为重要、使用最为广泛、最为流行的数据库。关系数据库是一些相关的表和其他数据库对象的集合。这里有3层含义。(1)在关系数据库中,数据存储在二维表结构的数据表中,一个表是一个关系,又称为实体集。①一个表包含若干行,每一行称为一条记录,表示一个实体。7272任务3-5关系数据库项目2设计数据库②每一行数据由多列组成,每一列称为一个字段,反映了该实体某一方面的属性。③在实体的属性中,能唯一标识实体集中每个实体的某个或某几个属性称为实体的关键字。在关系数据库中,关键字被称为主键。(2)数据库包含的表之间是有联系的,联系由表的主键和外关键字(ForeignKey,或称外键、外码)所体现的参照关系实现。①关系表现为表。关系数据库一般由多个关系(表)组成。②表之间由某些字段的相关性而产生联系。在关系数据库中,表既能反映实体,又能表示实体之间的联系。③用表的主键和外键反映实体间的联系。在关系数据库中,外键是指表中含有的与另一个表的主键相对应的字段,它用来与其他表建立联系。7373任务3-5关系数据库项目2设计数据库(3)数据库不仅包含表,还包含其他的数据库对象,如视图、存储过程和索引等。数据库是存储数据的容器,数据主要保存在数据库的表中,所以,数据表是数据库的基本对象。除此之外,在数据库中还有其他对象,常用的如下。①视图:一个虚拟表,可用于从实际表中检索数据,并按指定的结构形式浏览。②存储过程:一个预编译的语句和指令的集合,可执行查询或者数据维护工作。7474任务3-5关系数据库项目2设计数据库④索引:用于快速检索访问数据表中的数据,以及增强数据完整性。⑤规则:通过绑定操作,可用于限定数据表中数据的有效值或数据类型。目前使用的数据库系统大都是关系数据库。现在关系数据库以其完备的理论基础、简单的模型和使用的便捷性等优点获得了广泛的应用。本书中的数据库模型都是关系模型。7575【任务目标】对数据完整性有清晰的认识。●对关键字有清晰的认识。【任务分析】数据完整性是数据库设计日常维护的关键技术,本任务介绍关键字和数据完整性。任务4认知关键字和数据完整性项目2设计数据库7676关键字(keyword)又称保留字,作为一个关系的主码,标识关系的唯一性。1.关键字关键字是用来唯一标识表中每一行的属性或属性的组合,通常也被称为关键码。【例2-15】分析表2-2、表2-5、表2-8的关键字。表2-2课程信息表中的课程编号、课程名称两个属性都可以作为关键字,因为这两个属性的值在一门课程里都是唯一的。表2-5学生成绩表中的学号和课程编号是复合关键字。表2-8学生信息表中的学号、姓名是关键字。其他属性的值都不唯一。任务4-1认知关键字项目2设计数据库77772.候选关键字与主键候选关键字(CandidateKey)是指可以用来作为关键字的属性或属性的组合。主键是指选中的关键字。在一个表中能指定一个主键,它的值必须是唯一的,并且不允许为空(NULL,未输入值的未知值)。【例2-16】分析表2-2是否有候选关键字,选哪个(些)属性作为主键比较合适?表2-2课程信息表中的课程编号、课程名称两个属性都可以作为关键字,因为这两个属性的值在一门课程里都是唯一的,所以课程编号、课程名称两个属性都是候选关键字。任务4-1认知关键字项目2设计数据库78783.公共关键字公共关键字就是连接两个表的公共属性。【例2-17】指出表2-2与表2-5、表2-5与表2-8的公共关键字。表2-2课程信息表和表2-5学生成绩表之间通过课程编号进行联系,所以课程编号关键字是两个表的公共关键字,称课程编号为表2-2和表2-5的公共关键字。因为表2-5学生成绩表和表2-8学生信息表之间通过学号进行联系,所以学号关键字是两个表的公共关键字,称学号为表2-5和表2-8的公共关键字。任务4-1认知关键字项目2设计数据库79794.外键外键由一个表中的一个属性或多个属性组成,是另一个表的主键。实际上,外键本身只是主键的副本,它的值允许为空。外键是一个公共关键字。使用主键和外键可建立起表和表之间的联系。【例2-18】指出表2-2、表2-5、表2-8的外键。由例【2-17】知道,课程编号为表2-2课程信息表和表2-5学生成绩表的公共关键字,在表2-2中它是主键,在表2-5中它是外键,因为表2-5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同之二手车场地租赁合同
- 有机农产品认证咨询服务协议
- 股份制公司运营方案
- 体育健身行业私教课程运动伤害免责协议
- 劳务安全责任合同
- 高效率会议组织及策划方案
- 心理咨询师个人咨询免责协议书
- 股权出让居间协议书
- 第六单元《生日》教学设计-2024-2025学年四年级下册数学北师大版
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版
- 2025年房屋交易代持策划协议书
- 2025年上半年赣州市于都县招聘城管协管员易考易错模拟试题(共500题)试卷后附参考答案
- 中考数学总复习第一章第3课时二次根式课件
- 天然气脱硫完整版本
- 2025年中国电子烟行业发展前景与投资战略规划分析报告
- 货物学基础 课件 项目一 任务一 货物的基本概念
- 无人机法律法规与安全飞行 第2版空域管理
- 我的小学生活
- 《商务沟通-策略、方法与案例》课件 第三章 书面沟通
- 2024具身大模型关键技术与应用报告-哈尔滨工业大学
- 提高瓦屋面太阳能板安装一次验收合格率
评论
0/150
提交评论