大学计算机(Windows 10+WPS Office 2019)(微课版) 课件 第8章 数据库技术应用基础_第1页
大学计算机(Windows 10+WPS Office 2019)(微课版) 课件 第8章 数据库技术应用基础_第2页
大学计算机(Windows 10+WPS Office 2019)(微课版) 课件 第8章 数据库技术应用基础_第3页
大学计算机(Windows 10+WPS Office 2019)(微课版) 课件 第8章 数据库技术应用基础_第4页
大学计算机(Windows 10+WPS Office 2019)(微课版) 课件 第8章 数据库技术应用基础_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

大学计算机任课老师:*******微课版第8章数据库技术应用基础1数据库基础2数据模型3关系数据库系统4关系数据库标准语言SQL5关系数据库设计6Python数据库操作8.1

数据库基础数据数据库数据库管理系统数据库系统在计算机科学中,数据是指所有能输入计算机中并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字、字母、符号和模拟量等的通称。数据库是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念包括两层意思:①数据库是一个实体,它是能够合理保管数据的仓库,用户在该仓库中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。②数据库是数据管理的一种方法和技术,它能更合适地组织数据、更方便地维护数据、更严密地控制数据和更有效地利用数据。数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一管理和控制,以保证数据库的安全性和完整性。数据库系统通常由软件、数据库和数据管理员(DatabaseAdministrator,DBA)组成。软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统;数据库由数据库管理系统统一管理,数据的插入、修改和检索都要通过数据库管理系统进行;数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。8.1.1数据库的基本概念数据管理是指对数据进行分类、组织、编码、存储、检索和维护。在应用需求的推动下,在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理阶段、文件管理阶段、数据库系统管理阶段3个阶段。(1)人工管理阶段8.1.2数据管理技术的发展(2)文件管理阶段(3)数据库系统管理阶段8.1.2数据管理技术的发展①物理独立性:指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。当数据的物理结构(包括存储结构、存取方式等)改变时,如存储设备的更换、物理存储的更换、存取方式改变等,应用程序都不用改变。②逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,如修改数据模式、改变数据间联系等,用户程序都不用改变。8.1.3数据库系统的特点数据结构化数据库系统的特点数据的共享性好,冗余度低数据独立性好数据由数据库管理系统统一管理和控制数据库系统的内部结构通常采用3级模式结构,并提供两级映像功能8.1.4数据库系统的内部结构体系8.1.4数据库系统的内部结构体系三级模式是数据库在逻辑级上的视图,是对数据库系统中全局数据逻辑结构的描述,是全体用户的公共数据视图。一个数据库只有一个概念模式。定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求模式,也称逻辑模式或概念模式是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,它是由概念模式推导出来的,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个概念模式可以有多个外模式,但一个应用程序只能使用一个外模式。外模式,也称子模式或用户模式是对数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。内模式处于最底层,反映数据在计算机物理结构中的实际存储形式;概念模式在中间层,反映设计者的数据全局逻辑要求;而外模式处于最外层,反映用户对数据的要求。内模式,也称物理模式或存储模式两层映像保证了数据库系统中的数据具有较高的独立性。8.1.4数据库系统的内部结构体系两级映射该映射给出了概念模式中数据的全局逻辑结构与数据的物理存储结构间的对应关系内模式/模式映像概念模式是一个全局模式,外模式是用户的局部模式。一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个基本视图外模式/模式映像8.2

数据模型1.概念模型的相关概念8.2.1数据模型中的基本概念实体属性实体型和实体集实体(Entity)指客观存在且可以相互区别的事物。它可以是具体的,如一个学生、一棵树;也可以是抽象的概念或联系,如比赛活动、学生与成绩的关系等。实体用类型(Type)和值(Value)表示,如学生是一个实体,具体的学生王明、张立是实体值属性是指描述实体的某一方面的特性。一个实体可以由若干个属性来描述。例如,学生实体可以由学号、姓名、性别等属性组成。每个属性都有一个值,值的类型可以是整数、实数或字符型。属性用类型和值表示,如学号、姓名、年龄是属性的类型,08012001、张三、19是属性的值。实体可以用型和值来表示。实体型是属性的集合。例如,反映一个学生全部特征的所有属性之和,就是学生这个实体的型。将这些属性落实到某个学生身上而得到的所有数据就是实体的值。同类型的实体的集合称为实体集,如全班学生就是一个实体集8.2.1数据模型中的基本概念码域联系码是指能唯一标识实体的属性或属性集,如学生的学号属性域是指属性的取值范围,如性别的域为“男”和“女”,成绩的域为0~100现实世界的事物和事物之间总是相互联系的,这些联系在信息世界中就反映为实体内部或者实体之间的联系。实体内部的联系是指组成实体的各属性之间的联系;实体之间的联系是指不同实体集之间的联系,实体之间的联系通常有一对一、一对多和多对多3种①一对一联系(1:1)。如果实体集X中的任一实体至多对应实体集Y中的唯一实体,反之亦然,则称X与Y是一对一联系。例如,一个班只能有一个班长,而一个班长只能属于一个班,则班长和班之间具有一对一联系。②一对多联系(1:n)。如果实体集X中至少有一个实体对应实体集Y中一个以上的实体,且Y中任一实体至少对应X中的一个实体,则称X对Y是一对多联系。例如,一个班对应多个学生,而一个学生只属于一个班,则班与学生之间具有一对多联系。③多对多联系(m:n)。如果实体集X中至少有一个实体对应实体集Y中一个以上的实体,且Y中也至少有一个实体对应X中一个以上的实体,则称X与Y是多对多联系。例如,一个学生可以学习多门课程,而一门课程又可以由多个学生来学习,则学生与课程之间具有多对多联系。8.2.1数据模型中的基本概念2.E-R图概念模型是对信息世界建模的,所以概念模型应该能够方便、准确地表示上述信息世界中的常用概念。概念模型的表示方法很多,最常用的是实体-联系方法(Entity-Relationshipapproach)。该方法用E-R图来描述现实世界的概念模型。E-R图提供了表示实体型、属性和联系的方法,可以方便地转换成表的逻辑结构。构成E-R图的基本要素是实体、属性和联系,E-R图的表示符号如图所示。①实体:用矩形表示实体集,在矩形内写上该实体集的名字。②属性:用椭圆形表示属性,在椭圆形内写上该属性的名称。③联系:用菱形表示联系,在菱形内写上联系名。④连线:用来连接实体和各个属性以及实体和联系,在连接联系时,应同时在直线上注明联系的种类,即1:1,1:n或m:n。8.2.1数据模型中的基本概念数据模型通常由数据结构、数据操作、数据约束条件组成。①数据结构描述数据库的组成对象以及对象之间的联系。数据结构是所描述的对象类型的集合,是对系统静态特性的描述。因为数据结构是刻画一个数据模型性质最重要的方面,因此,在数据库系统中,按照数据结构的类型来命名数据模型,如层次模型、网状模型、关系模型等。②数据操作是指对数据库中各种对象的实例允许执行的操作的集合,是对系统动态特性的描述。数据库主要有检索和更新(插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言。③数据约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。数据模型应该反映和规定其必须遵守的基本的和通用的完整性约束条件。8.2.2数据模型的组成要素层次模型网状模型关系模型常见的数据模型关系模型中的关系是一张由行和列组成的二维表。①允许一个以上节点没有双亲。②一个节点可以有多于一个的双亲节点。①有且只有一个节点没有双亲节点,这个节点称为根节点。②根以外的其他节点有且只有一个双亲节点。8.2.3常见的数据模型8.3

关系数据库系统在关系数据库中,实体以及实体间的联系都由单一的结构类型来表示,这种逻辑结构是一张二维表。。8.3.1关系数据库系统概述选课系统中学生-课程-老师实体及其之间联系的E-R图在关系数据库中,实体以及实体间的联系都由单一的结构类型来表示,这种逻辑结构是一张二维表。。8.3.1关系数据库系统概述按照数据模型的三个要素,关系模型由关系数据结构、关系操作合集和关系完整性约束三部分组成。1.关系数据结构关系模型的数据结构非常简单,只包含单一的数据结构—关系。在用户看来,关系模型中数据的逻辑结构是一张二维表。2.关系模型的数据操纵关系数据模型的操作包括数据查询、数据删除、数据插入、数据修改,这些操作必须满足关系的完整性约束条件。3.关系模型的完整性约束关系模型的完整性规则是对关系的某种约束条件。为了保持数据库中数据与现实世界的一致性,关系数据库的数据与更新操作必须遵循三类完整性规则,即实体完整性、参照完整性和用户自定义完整性。8.3.2关系模型①关系(Relation):一个关系对应通常所说的一张表。通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。②元组(Tuple):表中的一行即为一个元组。③属性(Attribute):表中的一列即为一个属性,每个属性的名称就是属性名。④主关键字(Key):表中的某个属性或属性组,如果它可以唯一确定一个元组,则可成为本关系的主关键字。⑤域(Domain):属性的取值范围,如人的年龄一般在1~80岁,性别的域是(男,女),系别的域是一个学校所有系名的集合。⑥分量:元组中的一个属性值。⑦关系模式:对关系的描述,一般

表示为关系名(属性1,属性2,……,属性n)。8.3.2关系模型关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。关系代数的运算对象是关系,运算结果也是关系。关系代数用到的运算有以下两类。1.传统的集合运算

传统的集合运算是二目运算,包括并、差、交、广义笛卡儿积4种运算。参加集合操作的各结果表的列数必须相同,对应项的数据类型也必须相同。如图所示分别为具有三个属性列的关系R和S。8.3.3关系代数(1)并(Union)设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并仍为n目关系,并包含了关系R和关系S中的所有元组,如图(a)所示。(2)差(Difference)设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差仍为n目关系,由属于R而不属于S的所有元组组成,如图(b)所示。8.3.3关系代数(3)交(IntersectionReferentialintegrity)设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成,仍为n目关系,如图(c)所示。(4)广义笛卡儿积(Extendedcartesianproduct)这里的笛卡儿积严格地讲是广义笛卡儿积(ExtendedCartesianProduct)。在不会出现混淆的情况下广义笛卡儿积也称为笛卡儿积。8.3.3关系代数2.专门的关系运算专门的关系运算包括选择、投影、连接等。以如图所示的两张表为例。8.3.3关系代数(1)选择(Selection)选择运算时根据给定的条件,从一个关系中选出一个或多个元组(表中的行)。被选出的行组成一个新关系,这个新关系是原关系的一个子集。例如,从学生信息表中选取“性别”为“男”的记录,组成新关系,如图(a)所示。(2)投影(Projection)投影运算就是从一个关系中选择某些特定的属性(表中的列)重新排列组成一个新关系,投影后属性减少,新关系可能有一些行具有相同的值,此时重复的行将会被删除。例如,从学生信息表中选取“学号”“姓名”“院系”属性,组成新关系,如图(b)所示。8.3.3关系代数(3)连接(Join)连接运算是从两个或多个关系中选取属性间满足一定条件的元组,组成一个新关系。例如,将学生信息表和选课信息表按条件(学号相同)进行连接,产生一个新关系,如图(c)所示,其中“学号1”来自学生信息表,“学号2”来自选课信息表。可以看出,连接运算其实就是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。8.3.3关系代数8.4

关系数据库标准语言SQL

SQL是因为它是一个综合的、功能强大又简单易学的语言。其主要特点如下:8.4.1SQL的特点124533.面向集合的操作方式5.语言简洁,易学易用2.高度非过程化4.以同一种语法结构提供两种使用方式1.SQL风格统一8.4.1SQL的特点

SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用9个动词,如表所示。SQL语言语法简单,接近英语口语,因此容易学习和使用。8.4.1SQL的特点以学生选课数据库为例来讲解SQL的数据定义、数据操纵、数据查询语句。该数据库包含以下3张表。①学生信息表:Student(Sno,Sname,Ssex,Sbday,Sdept)其中,Sno表示学号,字符型,长度为4;Sname表示姓名,字符型,长度为16;Ssex表示性别,字符型,长度为1;Sbday表示出生日期,日期型;Sdept表示学院,字符型,长度为16。②课程信息表:Course(Cno,Cname,Ccredit)其中,Cno表示课程编号,字符型,长度为4;Cname表示课程名,字符型,长度为16;Ccredit表示学分,字符型,长度为2③选课信息表:SC(Sno,Cno,Grade),其中Sno表示学号;Cno表示课程号;Grade表示成绩,短整数。加下画线的属性表示关系的主码。1.定义基本表SQL语言使用CREATETABLE语句定义基本表,语句的一般格式:CREATETABLE<基本表名>(<列名1><数据类型1>[列级完整性约束条件1][,<列名2><数据类型2>[列级完整性约束条件2]]……[,<表级完整性约束条件>])SQL提供的数据类型很

多,常用的数据类型如

表所示。8.4.2数据定义2.修改基本表随着应用环境和应用需求的变化,

有时需要修改已建立的基本表,修

改基本表的ALTER语句的格式:3.删除基本表当某个基本表不再需要时,可以使用

DROPTABLE语句删除它。该语句的格

式:8.2.1数据模型中的基本概念数据操纵就是对表中的记录进行的操作,包括记录的插入(INSERT)、更新(UPDATE)和删除(DELETE)。1.插入元组的一般格式2.更新数据(修改数据)的一般格式3.删除数据的一般格式8.4.3数据操纵数据查询是数据库的核心操作。SQL提供SELECT语句进行数据查询,该语句的格式:说明:整个SELECT语句的作用是根据WHERE子句的条件表达式,从FROM子句指定的表中找出满足条件的元组,再按SELECT子句中的目标表达式选出指定的属性值形成结果表。如果有GROUPBY子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组。通常会在每组中使用聚集函数。如果GROUPBY子句带HAVING短语,则只有满足指定条件的分组才能输出。如果有ORDERBY子句,则结果还要按<列名2>的值升序或降序排序。8.4.4数据查询【例8-3】使用SELECT语句从Student、Course和SC表查询相关信息。①查询“张鹏”同学的基本信息。SELECT*FROMStudentWHERESname=“张鹏”说明:这里的“*”表示选择所有的属性。②在Student表中查询所有计算机学院的学生的学号、姓名。SELECTSno,SnameFROMStudentWHERESdept=“计算机学院”③查询所有姓张的同学的信息。SELECT*FROMStudentWHERESnameLIKE“张%”说明:谓词LIKE可以用来进行字符串的匹配,也就是用%(百分号)代表任意长度的字符串,用_(下画线)代表任意一个字符。例如,“张%”表示姓张的人,“张_”表示姓张且名字只有两个字的人。8.4.4数据查询④查询所有选修了“C01”课程的学生的学号、姓名和成绩。SELECTStudent.Sno,Sname,GradeFROMStudent,SCWHEREStudent.Sno=SC.SnoandCno=‘C01’学生的学号、姓名信息存放在Student表中,而选课信息存放在SC表中,所以需要在两张表中进行查询。这两张表之间的联系是通过公共属性Sno实现的。由于Sno属性在两张表中都存在,为了避免混淆,需要在属性名前加上表名前缀,即Student.Sno和SC.Sno来表示。说明:WHERE子句中可以包含查询条件和连接条件。⑤统计每个学院的学生人数。SELECTsdept,COUNT(*)FROMstudentGROUPBYsdept说明:GROUPBY分组子句将查询结果按某一列或多列的值分组,值相等的为一组。例如,在本例中按院系分组,院系值相同的为一组。GROUPBY分组后,SELECT子句中一般只会出现分组字段和聚集函数。8.4.4数据查询常见的聚集函数如表所示注意:WHERE子句中不能用聚集函数作为条件表达式。如果分组后还需要按一定条件对分组进行筛选,最终只输出满足指定条件的分组,可以使用HAVING短语指定筛选条件。例如,在本例中,需要查找学院人数在50以上的学院及人数,可以将SQL语句修改为:SELECTsdept,COUNT(*)FROMstudentGROUPBYsdeptHAVINGCOUNT(*)>50先对Student表中的记录按sdept分组,然后筛选出记录数大于50条的分组,将sdept和COUNT(*)的值输出。WHERE子句与HAVING短语的区别在于,WHERE子句作用于表,从中选择满足条件的元组;HAVING短语作用于组,从中选择满足条件的组。8.4.4数据查询⑥查询所有考试成绩为NULL的信息。SELECT*FROMSCWHEREGradeISNULL说明:如果查询涉及空值,不能用等号,要使用ISNULL或ISNOTNULL。⑦查询选修了C01课程的学生的学号和成绩,并按成绩降序排列。SELECTSno,GradeFROMSCWHERECno=“C01”ORDERBYGradeDESC说明:ORDERBY子句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认为升序。对于空值,排序时显示的次序由具体系统实现来决定。8.4.4数据查询8.5

关系数据库设计

关系数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理需求和数据操作需求。按照结构化系统设计的方法,考虑数据库及其应用系统开发全过程,将关系数据库设计分为6个阶段。

8.5关系数据库设计8.6

Python数据库操作SQLite3数据库是一款非常小巧轻量级的嵌入式开源数据库软件。由于其方便快捷,从Python2.5开始SQLite3就成了Python语言的标准模块了,这也是Python中唯一一个数据库接口类模块,适合用户开发小型数据库系统。数据库是存储数据的,它自然会对数据的类型进行划分,SQLite3中的数据类型如表所示。8.6.1SQLite3数据库简介

SQLite3数据库实现了自给自足的、无服务

器的、零配置的、事务性的SQL数据库引擎,

通常在小型应用,或者嵌入式开发中使用较多。Python连接SQLite3数据库的过程如图所示。1.导入SQLite3模块

由于Python2.5以后的安装包已经自带

SQLite3的软件包,所以用一行语句直接导入

即可,其语法格式:8.6.2Python连接SQLite3数据库流程2.打开(连接)数据库,建立数据库连接使用connect()方法建立一个数据库连接对象,其语法格式:这里的参数是指定要打开的数据库文件。在Python中,使用SQLite3创建数据库的连接,当指定的数据库文件不存在时,连接对象会自动创建数据库文件;如果数据库文件已经存在,则连接对象不会再创建数据库文件,而是直接打开该数据库文件。例如,conn=sqlite3.connect(“E:\\Test.db”)会打开E盘下的Test数据库,如果这个数据库不存在,则新建一个数据库。connect()方法返回con对象,就是数据库链接对象,它提供了如表8-6所示的连接对象的方法.8.6.2Python连接SQLite3数据库流程3.创建游标对象调用连接对象的cursor()方法可以得到一个游标对象。可以把游标理解为一个指针。游标如图8-18所示,图中的指针就是游标cursor,假设右边的表就是查询到的结果,那么可以通过游标扫描SQL查询并检查结果。定义游标的语法格式:游标对象有多种方法支持数据库操作,如表所示。8.6.2Python连接SQLite3数据库流程4.使用游标对象的execute()方法执行SQL命令调用游标对象的execute()方法执行SQL命令,其语法格式:这里的参数是一个SQL语句。根据执行的SQL语句类型的不同,可以分为以下两种情况。(1)数据定义和操纵。数据定义语句包括新建表、删除表、修改表结构操作(CREATE、DROP、ALTER),数据操

温馨提示

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

评论

0/150

提交评论