1、,第6章信息管理,第6章 数据库系统概述,6.1 数据库系统的基本概念 6.2 E-R概念模型 6.3 关系数据库 6.4简介,6.1 数据库的基本概念,、数据(Data)是用来描述事物的符号记录,是数据库中存储的基本对象。数据的种类很多,包括文字、数字、声音、图形及图像等。 2、数据库(DataBase,DB)是指以一定的组织方式存储的相互关联的数据的集合。这些数据能够长期存储、统一管理和控制,且能够被不同用户所共享,具有数据独立性及最小冗余度。,3、数据库管理系统(DataBase Management System,DBMS)是对数据库进行管理的软件系统,是数据库系统的核心。它位于计算机
2、系统中操作系统与用户或应用程序之间,主要功能包括:数据定义、数据操纵、数据组织、存储和管理、数据库的建立和维护、数据通信接口。 4、数据库管理员:专门对数据库进行规划、设计、管理、协调和维护的工作人员。,6.1 数据库的基本概念,5、数据库系统(DataBase System:DBS)是DB、DBMS、DBA、用户和计算机系统CS(Computer System)的总和。,6.1 数据库的基本概念,模型 :完成数据的转换。根据不同的应用,分为概念模型和数据模型,6.2 模型,1.概念模型 :也称信息模型,是按照用户的观点对数据和信息建模,与计算机系统无关,是概念级的模型,通常用于数据库的设计,
3、它是数据库设计人员和用户之间进行交互的一种形式化描述。 (1) 基本概念 实体现实世界客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。,6.2 模型概念模型,属性实体所具有的某一特性称为属性。一个实体通常由若干个属性描述。 码唯一标识一个实体的属性或属性组称为码。 域属性的取值范围称为域。 实体型对具有相同属性的若干实体,用实体名及其属性名的集合来抽象和描述同类实体,称为实体型。,6.2 模型概念模型,实体集同型实体的集合称为实体集。 联系 不同实体集之间的联系,实体间联系通常有一对一、一对多、多对多三种。 一对一联系:记为“1:1” ,如:电影票座位
4、一对多联系:记为“1:M” ,如:班级学生多对多联系:记为“M:N” ,如:课程学生,6.2 模型概念模型,(2) 概念模型的表示-E-R模型用矩形表示实体型;用椭圆表示属性;用菱形表示联系,并标示出联系的类型,6.2 模型概念模型,2.数据模型:按计算机系统的观点对数据建模 。 (1) 层次模型 有且只有一个节点没有双亲,该节点为根节点;根以外的其他节点有且只有一个双亲节点。 (2) 网状模型 在层次模型的基础上,允许节点无父节点,或者有多个父节点 。 (3) 关系模型以关系代数为基础,实体间通过公共属性实现联系,与数据的物理结构无关。,6.2 模型数据模型,3.数据模型的三要素 (1) 数
5、据结构数据结构是指所研究的数据库组成成分的类型的集合,用于描述系统的静态特征。 (2) 数据操作指对数据库中数据允许执行的操作的集合,用于描述系统的动态特征。数据模型中必须定义操作(如查询、更新)的确切含义、操作符号、操作规则以及实现操作的规则。 (3) 数据的约束条件是数据完整性规则的集合,指对给定的数据模型中数据及其联系所具有的制约和依存规则。,6.2 模型数据模型,6.3 关系数据库,6.3.1 关系数据库的基本概念 1关系关系可以看作是一个行与列交叉的二维表,每一个交叉点都必须是单值的,每一列的所有数据都是同一类型的,每一列都有唯一的列名,行和列在表中的顺序无关紧要,表中任意两行不能相
6、同。 2属性关系中的每一列称为属性,属性的总数称为关系的度。 3元组关系中的行称为元组,元组包含了一组属性。,4候选码候选码是关系中能够唯一标识一个元组的某个属性或属性组,一个关系可以有多个候选码。 5主码一个关系中选定一个候选码作为该关系的主码。 6主属性主码的各个属性称为主属性。 7外码在关系数据库中,为了实现表与表之间的联系,将一个表的主码作为公共属性放到另一个关系中,在另一个关系中起连接作用的属性称为外码。,6.3 关系数据库,6.3.2 关系模型与关系模式 1.关系模型 (1) 关系数据结构 关系模型中,关系数据结构就是表 。 (2) 关系操作 选择、投影、连接、除、并、交、差、查询
7、、插入、删除、修改等 。 (3) 关系的完整性约束 三种完整性约束条件:实体完整性、参照完整性、用户自定义的完整性。,6.3 关系数据库,2.关系模式 关系的描述称为关系模式,一个完整的关系模式通常需要描述出一个关系的属性的集合、属性所取值的域的集合、属性向域的映像的集合、属性间数据依赖关系的集合。通常,使用关系模式的简单描述:R(A1,A2,An) 其中,R为关系名,A1,A2,An为属性名。域名和属性向域的映像直接说明为属性的类型和长度。,6.3.2 关系模型与关系模式,3.关系运算 (1) 传统的关系运算,(a)关系R;(b)关系S;(c)关系的并运算(d)关系的交运算(e)关系的差运算
8、,6.3.2 关系模型与关系模式,(2) 专门的关系运算,学生表,课程表,成绩表,6.3.2 关系模型与关系模式,选择运算从给出的关系中选出满足给定条件的那些元组,是对关系的行进行的运算。 例6.2 查询电信系所有学生的情况。,6.3.2 关系模型与关系模式,投影运算 从给出的关系中选出关系的一个或多个属性列,是对关系的列进行的运算。 例查询学生的姓名和所在的系 。,6.3.2 关系模型与关系模式,连接运算 将两个关系模式通过共有的属性名拼接成一个更多属性列的关系。 例学生关系与成绩关系的自然连接 。,6.3.2 关系模型与关系模式,6.4 数据库查询语言SQL,SQL的全称是“结构化查询语言
9、(Structured Query Language)”,是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系型数据库标准语言。目前,SQL语言已被确定为关系型数据库系统的国际标准,被绝大多数商品化关系型数据库系统采用,如Oracle 、Sybase、DB2、SQL Server这些数据库管理系统都支持SQL语言作为查询语言 功能统一 非过程性语言 面向集合的操作方式 SQL提供两种灵活的使用方式 SQL简单、易学,6.4.1 SQL基本概念,基本表 :一个关系即对应一个基本表。 视图 :视图是由一个或几个基本表导出的表。 存储过程 :存
10、储过程是用SQL语言编写成的SQL语句序列,它存储于SQL服务器上供用户调用执行。 触发器 :触发器是一种特殊的存储过程,用来维护不同表中的相关数据的一致性。 通过事件触发。,6.4.2 SQL的简单实例,例 一个学生课程数据库,包括三个表:学生表:S(Sno,Sname,Ssex,Sage,Sdept)课程表:C(Cno,Cname,Ccredit)学生选课表:SC( Sno,Cno,Grade),1.插入:由VALUES子句定义。 例如,在学生表S中插入一个学生信息。设这个学生的信息如下: 学号:01021003,姓名:王力,性别:男,年龄:20,所在系:计算机系(CS)。 写出SQL语句
11、如下: INSERT INTO S VALUES (01021003,王力,20,男, CS);,6.4.2 SQL的简单实例,2.删除:由WHERE子句定义删除元组需要满足的条件。 例如,将学号为01021001的学生信息从学生表S中删除。 写出SQL语句如下: DELETE FROM S WHERE Sno=01021001;,6.4.2 SQL的简单实例,3.更新:需要更新的属性放在SET子句中,WHERE子句定义要更新的元组需要满足的条件。 例如,将编号为C005的课程的学分改为3。 写出SQL语句如下: UPDATE C SET Ccredit=3 WHERE Cno= C005;,
12、6.4.2 SQL的简单实例,4.选择 例如,查询学号为01021001的学生的基本信息。 写出SQL语句如下: SELECT * FROM S WHERE Sno=01021003; 说明:“*”在此表示选择所有的属性。,6.4.2 SQL的简单实例,5.投影:显式列出新关系的列名。 例如,查询学号为01021003的学生的姓名、所在系。 写出SQL语句如下: SELECT Sname,Sdept FROM S WHERE Sno=01021003;,6.4.2 SQL的简单实例,6.连接:由WHERE字句明确定义用于关系连接的公共属性,连接后关系的属性为原来两个关系属性的组合。 例如,查询学号为01021003的学生所选修的课程名。 写出SQL语句如下: SELECT Cname FROM SC, C WHERE SC.Cno=C.Cno AND Sno=01021003;,6.4.2 SQL的简单实例,7.并 例如,查询计算机系并且年龄小于20岁的学生信息。 写出SQL语句如下: SELECT * FROM S WHERE Sdept= CS UNION SELECT * FROM S WHERE Sage20 ;,6.4.2 SQL的简单实例,