第5章数据库应用基础5.1数据库概述5.2数据库系统5.3数据模型5.4关系数据库及其应用本章内容5.1数据库概述5.1.2数据库的基本术语本节内容5.1.2数据库的基本术语数据(Data)是用来记录信息的可识别的符号,是数据库中存储的基本对象。数据库(DB)是长期存放在计算机外存上、有结构的、可共享的相关数据的集合。数据库数据数据库管理系统(DBMS)是用于建立、使用和维护数据库的系统软件。数据库管理系统5.2数据库系统5.2.1数据库系统的组成5.2.3数据库管理系统简介本节内容5.2.4数据库系统的特点5.2.1数据库系统的组成用户1用户2……用户3数据库管理员数据库图5.3数据库系统组成示意图应用系统应用开发工具数据库管理系统操作系统1.数据库和数据库管理系统2.应用系统:为满足用户需求,而开发的数据库应用软件。3.应用开发工具:为开发应用软件而采用的各种开发工具。4.人员:最终用户、应用系统开发员和数据库管理员。5.2.3数据库管理系统简介数据库定义功能数据操纵功能等等MicrosoftAccessVisualFoxProOracle数据库管理系统的功能常见的数据库管理系统5.2.4数据库系统的特点数据的结构性强1.数据的共享性好,冗余度低2.数据的独立性高3.数据控制功能强:数据安全性控制、数据完整性控制、并发控制4.5.3数据模型5.3.1三个世界的概念5.3.2概念模型5.3.3数据模型本节内容5.3.1三个世界的概念人们管理的事物存在现实世界中,事物与事物之间存在着联系。概念世界是现实世界中的事物在人们头脑中的反映,是对客观事物及其联系的抽象描述。概念世界现实世界是在概念世界抽象描述的基础上,进一步抽象为便于计算机处理的数据形式。数据世界(计算机世界)现实世界概念世界数据世界客观事物实体记录(元组)特征属性字段5.3.2概念模型1实体:客观存在并且可以相互区分的事物如:学生2属性:描述实体的特性如:学号、姓名、性别、年龄、专业型:属性名。如学号、姓名等值:指属性的取值。如20070001、李红等3实体集:同一类型实体的集合4实体型:对同类实体的描述。由实体名与其属性名共同构成。如:学生(学号,姓名,性别,年龄,专业)5关键字:能够唯一标识实体集中每个实体的一个或一组属性6联系:实体集之间的联系三种类型的联系①一对一联系(记作1:1)实体集A中的一个实体至多与实体集B中的一个实体相对应;反之亦然。例如:班级与班长班级编号班级名称1001计算机1班1002计算机2班班级编号班长姓名1001李明1002王平②一对多联系(记作1:n)实体集A中的一个实体与实体集B中的多个实体相对应;反之,实体集B中的一个实体至多与实体集A中的一个实体相对应。例如:班级与学生班级编号班级名称1001计算机1班1002计算机2班班级名称姓名计算机1班李明计算机1班赵岩计算机2班王平计算机2班张红③多对多联系(记作m:n)实体集A中的一个实体与实体集B中的多个实体相对应;反之,实体集B中的一个实体与实体集A中的多个实体相对应。例如:教师与学生教师编号教师姓名001王老师002张老师学号姓名2007001李明2007002刘兰2007003王丹2007004张三2007005周五5.3.3数据模型数据模型:在计算机世界按数据库的观点,对概念世界的数据抽象表示的工具。在数据库系统中DBMS支持的常见的数模型有三种:层次模型、网状模型和关系模型。关系模型:用二维表格表示实体及实体之间联系的模型。关系模型学号姓名性别年龄专业20070001李红女19计算机20070002王晓平男18自动化20070005赵胜利男19计算机20070003张灵女20化工20070004杨中华女18化工关系student(学生基本情况表)(1)关系:一张二维表如:student(2)属性:表中的一列如:关系student中有5个属性学号、姓名、性别、年龄和专业关系模型的基本术语(3)记录:表中的一行数据。也称为元组(4)关键字:表中某一属性或属性组,它的值能够唯一标识一条记录。例如:关系student中的“学号”,关系success中的属性组“学号”和“课程编号”(5)值域:属性的取值范围(6)关系模式:对关系的描述,包括关系名,属性名、值域和关键字。示例1:student的关系模式:student(学号,姓名,性别,年龄,专业)其中下划线部分表示关键字。示例2:success的关系模式:success(学号,课程编号,成绩)5.4.1关系数据库关系数据库:若干个关系(二维表)的集合属性:关系中的列记录:关系中的一行数据关键字:关系中值能够唯一确定一条记录的一个或一组属性5.4关系数据库及其应用5.4.1关系数据库在关系数据库中,两个关系的联系一般是通过相同的属性建立的,其中,将一个关系称为主表,另一个关系称为从表。主表中的关键字称为主键;而从表中某个属性或属性组不是该关系的关键字,但它是主表的关键字,则把这个属性或属性组称为外键。表与表之间的联系是通过主键和外键为纽带建立的。5.4.3关系模型的完整性规则实体完整性:是对关系中记录唯一性,即关键字的约束。(关键字的值不能为空且不能有相同的值)参照完整性:是对外键的约束。(从表中外键的值必须是主表主键的有效值或是空)用户定义的完整性:是根据应用环境对数据的约束条件。5.4.4关系操作选择操作:在一个关系中选择出满足给定条件的记录组成新关系。例如:在关系student中查询女学生信息。1.选择操作学号姓名性别年龄专业20070001李红女19计算机20070003张灵女20化工20070004杨中华女18化工投影操作:在一个关系中选取指定列组成新关系。2.投影操作例如:在student中查询所有学生的姓名、年龄和专业。姓名年龄专业李红19计算机王晓平18自动化赵胜利19计算机张灵20化工杨中华18化工连接操作:将两个关系通过连接条件组成一个新关系。3.连接操作例如:将student和success进行连接操作,连接的条件是student的学号等于success的学号。Student.学号Student.姓名Student.性别Student.年龄Student.专业Success.学号Success.课程编号Success.成绩20070001李红女19计算机200700010019020070001李红女19计算机200700010029220070001李红女19计算机200700010038920070002王晓平男18自动化200700020018820070005赵胜利男19计算机200700050027620070003张灵女20化工200700030018520070003张灵女20化工2007000300480例如:查询女学生的成绩信息,包括姓名、专业、课程编号和成绩。方法1:先连接操作,再选择,最后投影Student.姓名Student.专业Success.课程编号Success.成绩李红计算机00190李红计算机00292李红计算机00389张灵化工001855.4.5结构化查询语言SQL(1)SELECT语句的基本格式SELECT*│all│column1,column2,…FROMtable1[,table2,…][WHEREcondition]①SELECT:关键字。②*│all│column1,column2,…:目标列。其中“│”表示“或者”;*和all表示所有列;column1,column2,…表示指定列。③FROM子句:查询的基本表名。(不能确省)④WHERE子句:查询的条件(可以确省),其中condition表示查询条件表达式。常用比较运算符有:、=、、=、=、3.SQL的数据查询语句例5.1查询出student表中所有学生的信息。SELECT*FROMstudent;例5.2查询出student表中所有学生的姓名和年龄。SELECT姓名,年龄FROMstudent;例5.3查询出student表中女学生的信息。SELECT*FROMstudentWHERE性别="女";例5.4查询出student表中年龄为19岁的学生的学号、姓名和专业。SELECT学号,姓名,专业FROMstudentWHERE年龄=19;(2)SELECT语句的功能从指定的表中,查询满足条件的信息例5.5查询出success表中成绩大于等于90的学生信息。SELECT*FROMsuccessWHERE成绩=90;例5.6查询出所有学生的学号、姓名、课程编号和成绩。SELECTstudent.学号,student.姓名,success.课程编号,success.成绩FROMstudent,successWHEREstudent.学号=success.学号;例5.7查询出所有学生的学号、姓名、课程名称和成绩。SELECTstudent.学号,student.姓名,course.课程名称,success.成绩FROMstudent,success,courseWHEREstudent.学号=success.学号,success.课程编号=course.课程编号;不要求的习题一、填空题3三、简答题6