计算机导论 第7章 数据库技术_第1页
计算机导论 第7章 数据库技术_第2页
计算机导论 第7章 数据库技术_第3页
计算机导论 第7章 数据库技术_第4页
计算机导论 第7章 数据库技术_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机导论教师:第7章数据库技术07目录CONTENTS1数据库概述2数据模型3关系数据库4结构化查询语言5数据库设计6常用数据库管理系统7数据库技术发展本章学习目标掌握数据库的基本概念和数据模型的构成掌握关系数据库的重要概念掌握结构化查询语言的基本语句了解数据库设计的步骤了解数据库技术的发展趋势本章学习目标数据库概述1.数据数据(Data)是数据库中存储的基本对象,是描述事务的符号记录。在日常生活中,数据有多种表现形式,如数字、文字、图像、记录等。2.数据库数据库(DataBase,DB)是长期存储在计算机内、有组织的、可共享的数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有冗余度小、数据独立性高、易扩展和可共享的特点。3.数据库管理系统数据库管理系统(DataBaseManagementSystem,DBMS)是位于用户和操作系统之间的数据管理软件,用户和应用程序需要通过数据库管理系统来访问数据库中的数据。4.数据库系统数据库系统(DataBaseSystem,DBS)是由数据库、数据库管理系统、应用系统和数据库管理员组成的存储、管理和维护数据的系统。数据库概述数据定义功能数据库管理系统能提供数据定义语言(DataDefinitionLanguage,DDL),用户通过它可以方便地对数据库对象进行定义,如表的创建、修改和删除等。数据操纵功能数据库管理系统能提供数据操纵语言(DataManipulationLanguage,DML),用户通过它对数据进行基本操作,如数据的插入、删除、修改和查询等。数据库管理功能数据库在创建、运行和维护时由数据库管理系统统一管理和控制,以保证数据库的正确运行,保证数据库的安全性、完整性,多用户对数据的并发操作及发生故障后的系统恢复。数据库建立和维护功能数据库建立和维护功能包括数据库初始化数据、转换功能,以及数据库的转储、恢复功能,数据库的重组织、重构功能和性能监视、分析功能等。数据库管理系统都能提供以下功能。数据模型数据库技术的发展是以数据模型的发展为基础的。数据模型是对现实世界数据特征的抽象和模拟,即用来描述数据、组织数据和操作数据。由于计算机不能直接处理现实世界中的事物,人们需要将事物数字化,并将具体的事物转换成计算机能够处理的数据,因而数据从现实世界到计算机数据库的抽象表示经历了3个阶段,即现实世界、信息世界和机器世界。概念模型概念模型,即信息模型,是按用户的观点对数据和信息建模的,用于数据库的设计,这就要求概念模型具有较强的语义表达能力,易于表示和理解。对现实世界进行抽象表示时,需要对事物及事物之间的联系进行抽象表示。概念模型基本术语实体客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物或抽象的概念、联系,如一个学院、一名学生、一个玩具、学生的一次选课等都是实体。属性实体所具有的某一特性称为属性。一个实体可以由若干个属性来描述,如图书实体可以由图书编号、书名、作者、出版社、出版日期、价格等属性组成。码能唯一标识实体的属性集称为码,如图书编号是图书实体的码。实体型用实体名及其属性名集合来抽象和描述的同类实体称为实体型,如图书(图书编号、书名、作者、出版社、出版日期、价格)就是一个实体型。实体集同一类型实体的集合称为实体集,如图书馆的全部图书就是一个实体集。联系现实世界中事物内部及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。概念模型基本术语两个实体型之间的联系一对一联系(1∶1)一对多联系(1∶n)多对多联系(m∶n)概念模型的表示方法概念模型是对信息世界建模,与具体的数据库管理系统无关。概念模型的表示方法很多,其中E-R图(Entity-RelationshipDiagram,实体-联系图)是最为常用的方法之一。构成E-R图的基本要素是实体型、属性和联系。(1)实体型。用矩形表示,矩形框内要写明实体名。(2)属性。用椭圆形表示,并用直线与相应实体连接起来。(3)联系。用菱形表示,菱形框内要写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1∶1、1∶n或m∶n),联系也可以具有属性。常见的逻辑模型数据模型是数据库系统的核心和基础。各种数据库管理系统软件都是基于某种逻辑模型的。常用的逻辑模型有层次模型、网状模型及关系模型。其中,层次模型和网状模型统称为非关系模型,非关系模型的数据库系统在20世纪70年代非常流行,而到20世纪80年代,关系模型的数据库系统以其独特的优势成为主流数据库产品。关系模型关系模型是用一组二维表来表示实体及实体间的联系的。其理论基础是1970年IBM研究人员E.F.Codd提出的数据库系统的关系模型,他开创了对数据库关系理论和关系方法的研究,为数据库技术奠定了理论基础。关系模型的优点是结构简单,一个关系对应一张二维表,易于用户掌握,通过简单的查询语句就能对数据库进行各种操作,而层次模型和网状模型设计的数据库系统需要通过指针链查找数据,这是它们之间的根本区别。目前,关系模型是最广泛使用的模型之一,计算机厂商推出的数据库管理系统几乎都支持关系模型。关系数据库的基本概念学号姓名性别专业班级出生日期2017021001董林女计算机171班1999-06-052017021002李明男计算机172班1998-12-032017021013张佳女电气工程173班1997-10-252016025111李婷女自动化161班1996-04-282018031012佟宇男自动化181班2000-03-06(1)关系:一个关系对应一张二维表。例如,图7.3所示的关系模型中的三张表对应三个关系。关系数据库的基本概念(2)关系模式:关系模式是对关系的描述,一般形式如下。关系名(属性1,属性2,…,属性n)例如,关系student和关系course的关系模式如下。student(学号,姓名,性别,专业,班级,出生日期)course(课程号,课程名,学分)(3)记录:表中的一行称为一条记录,也称为元组。例如,课程信息表[见图7.3(b)]中有5行数据,其中一行为一条记录,对应5条记录。(4)属性:表中的一列称为一个属性,属性也称字段。每个属性都有一个名称,称为属性名。例如,学生信息表[见图7.3(a)]中有6个属性,属性名分别为学号、姓名、性别、专业、班级和出生日期。关系模型的完整性例7-1职工关系和部门关系如下。职工(职工编号,姓名,部门编号,性别,联系电话)部门(部门编号,部门名)在这两个关系中,部门关系的“部门编号”是主码,职工关系的“部门编号”取值必须是已存在的部门编号,即参照部门关系的主码“部门编号”取值,因而职工关系的“部门编号”是外码。关系数据库的基本概念(5)候选码:表中能唯一确定一条记录的某个属性组,称为候选码,也称候选关键字或码。例如,学生信息表[见图7.3(a)]中的学号可以唯一确定一条学生记录,因此学号是一个候选码。而姓名可能会出现重名的情况,不能唯一标识一条学生记录,因而姓名不适合作为候选码。(6)主键(PrimaryKey):一个表中可能有多个候选码,在实际应用中通常选择一个候选码作为主键,主键也称主码、主关键字。主键值不能为空。例如,若在学生信息表[见图7.3(a)]中增加一个字段为身份证号,则学号和身份证号都可作为候选码,但在实际应用中,选用一个作为主键即可。(7)主属性:关键字中的诸属性称为主属性,不包含在任何关键字中的属性称为非主属性或非码属性。例如,学生信息表[见图7.3(a)]中的学号就是主属性,姓名是非主属性。(8)值域:属性的取值范围。值域可以是数值、文本、日期、字符串等,如成绩的值域为0~100,性别的值域为{男,女}。(9)外键(ForeignKey):设F是基本关系R的一个属性组,但不是R的码,Ks是基本关系S的主码,如果F与Ks相对应,则称F是R的外键,也称外码。关系数据库的基本概念关系模型提供了三类完整性约束规则:实体完整性、参照完整性和用户定义完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性,用户定义完整性是面向应用领域所需遵循的约束条件,体现具体语义的约束。(1)实体完整性规则。规定关系中主属性值不能为空。例如,学生(学号,姓名,性别,专业,班级,出生日期)关系中,学号是主属性,不能取空值。图7.3(c)学生选课关系中,学号和课程号联合作为主键,因而学号和课程号都是主属性,都不能取空值。(2)参照完整性规则。若属性集F是关系R的外码,它与关系S的主码Ks相对应(关系R和S不一定是不同的关系),则R中每个元组在F上的值等于S中某个元组的主码值或者取空值(F的每个属性值均为空值),这条规则的实质是“不允许引用不存在的实体”,实际上也提供了实现两个关系相联系的方法。如例7-1中,职工关系中的“部门编号”是外码,其取值必须是已存在的部门编号,即参照部门关系中的主码“部门编号”取值,不能把职工分配到一个不存在的部门中去,职工的部门编号也可能取空值,表示该职工尚未分配到任何一个部门。(3)用户定义完整性规则。用户定义完整性规则是针对某一具体数据库的约束条件,它反映了某一具体应用所涉及的数据必须满足的语义要求,如属性的取值范围、是否能取空值等。关系模式的规范化关系模式的规范化就是把一个存在数据冗余、插入异常、更新异常和删除异常等情况的关系模式通过模式分解,转换为符合设计要求的关系模式集合。关系数据库的设计,主要是关系模式的设计,而关系模式设计的关键在于关系模式的规范化。关系模式的规范化过程是通过对关系模式的分解来实现的,即把低一级的关系模式分解为若干个高一级的关系模式。范式是关系模式满足不同程度的规范化要求的标准。满足最低程度要求的范式属于第一范式,简称1NF,是指关系中的每一个属性都是不可分割的基本数据项。在任何一个关系数据库中,1NF是对关系模式的基本要求,不满足1NF的数据库就不是关系数据库。结构化查询语言结构化查询语言(StructuredQueryLanguage,SQL)是关系数据库的标准语言。SQL标准主要包括四部分内容。(1)数据定义语言(DDL),用于定义数据库的模式、基本表、视图、索引等结构。(2)数据操纵语言(DML),分为数据更新和数据查询。其中数据更新包括插入、删除和修改3种操作。(3)数据控制语言(DCL),包括对基本表或视图的授权、完整性规则、事务控制等。(4)嵌入式SQL,包括SQL语句嵌入在宿主语言程序中的规则。结构化查询语言当前绝大多数流行的关系数据库管理系统,如Oracle、SQLServer、MySQL等都采用了SQL标准,并对其进行了一定程度的扩展。(1)PL/SQL(ProceduralLanguage/SQL,过程化/SQL语言)是Oracle数据库对SQL语句的扩展。PL/SQL将数据库技术和过程化程序设计语言联系起来,它在普通SQL语句的使用上增加了编程语言的特点,把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作来实现复杂的功能。(2)T-SQL(Transact-SQL)是Microsoft在SQLServer数据库中使用的SQL标准的实现,是Microsoft对SQL的扩展。它具有SQL的主要特点,同时增加了变量、运算符、函数、流程控制和注释等语言元素,使其功能更加强大。在SQLServer中使用图形界面能够完成的所有功能,都可以利用T-SQL来实现。使用T-SQL操作时,与SQLServer通信的所有应用程序都要通过向服务器发送T-SQL语句来进行,而与应用程序的界面无关。数据定义1.创建数据库语句格式:CREATEDATABASE<数据库名>例7-2写出创建一个名为db_Student的数据库的SQL语句。CREATEDATABASEdb_Student;2.创建基本表语句格式:CREATETABLE<表名>(<列名><数据类型>[<列级完整性约束条件>][,<列名><数据类型>[<列级完整性约束条件>]]…[,<表级完整性约束条件>]);数据定义3.修改基本表语句格式:ALTERTABLE<表名>[ADDCOLUMN<列名><数据类型>[完整性约束][FIRST|AFTER已存在的字段名]][CHANGECOLUMN<旧列名><新列名><数据类型>][ALTERCOLUMN<列名>{SETDEFAULT<默认值>|DROPDEFAULT}[MODIFYCOLUMN<列名><数据类型>][DROPCOLUMN<列名>][RENAMETO<新表名>];例7-4在student表中增加“入学时间”列。ALTERTABLEstudentADDCOLUMNentimeDATEAFTERstu_name;4.删除基本表语句格式:DROPTABLE<表名>例7-5删除表course。DROPTABLEcourse;

数据更新1.数据插入数据插入是指把新的记录插入到表中。语句格式:INSERTINTO<表名>[(<属性列1>[,<属性列2>…)]VALUES(<常量1>[,<常量2>]…);例7-6将学生记录插入到学生表中。INSERTINTOstudent(stu_id,stu_name,major,class)VALUES(‘2018021010’,‘李明’,‘计算机’,‘181’);2.数据删除数据删除即删除表中满足条件的记录或删除全部记录。语句格式:DELETEFROM<表名>[WHERE<条件>];

数据更新3.数据修改数据修改即对表中的一条或多条记录中的某些列值进行修改。语句格式:UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>]…[WHERE<条件>];如果省略WHERE子句,则要修改表中的所有记录。例7-9修改课程号为‘02002003’的课程的学分为3学分。UPDATEcourseSETcredit=3WHEREc_id=‘02002003’;数据查询SQL能提供SELECT语句,可以从数据库表或视图中查询符合条件的记录。语句格式:

SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…|(SELECT语句)[AS]<别名>[WHERE<条件表达式>] /*选择满足条件的记录*/[GROUPBY<列名1>[HAVING<条件表达式>]] /*分组*/[ORDERBY<列名2>[ASC|DESC]]; /*排序*/1.单表查询例7-10查询所有学生的信息。

SELECT* /**号表示表中所有字段*/ FROMstudent;例7-11查询所有计算机专业的学生的学号、姓名、专业、班级。SELECTstu_id,stu_name,major,class_no FROMstudentWHEREmajor=‘计算机’;数据控制1.授权授权是指将对指定操作对象的指定操作权限授予指定用户。GRANT语句的一般格式:GRANT<权限>[,<权限>]...[ON<对象类型><对象名>]TO<用户>[,<用户>]...[WITHGRANTOPTION];例7-15把查询Student表的权限授给用户user1。GRANTSELECTONTABLEStudentTOuser1;数据控制2.回收回收是指授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回。REVOKE语句的一般格式:REVOKE<权限>[,<权限>]...[ON<对象类型><对象名>]FROM<用户>[,<用户>]...;例7-16收回用户user1修改学生学号的权限。REVOKE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论