信息工程学院劳东青TEL:15109083065Email:dql904@126.com关于本课程。。。Whyweshouldlearnthiscourse?56学时(理论30,实验26)课程安排:◇10、11章选学;重点3、4、5、6、8作业10次;实验13次课堂纪律考核:笔试成绩:平时成绩(30%)+考试成绩(70%)◇平时成绩:作业+实验+出勤+课堂表现©2010劳东青1.1数据库基本概念1.2数据库设计1.3数据库应用系统补充:SQLServer2000环境©2010劳东青1.1.1数据库与数据库管理系统1.数据库(DATABASE,DB)简单地说,数据库是指存放数据的仓库。数据不仅包含数字,还包括文本、图像、音频、视频等。并且,这些数据存在一定的关联,并按一定的格式存放在计算机内。严格的DB定义:DB是指长期存储在计算机内、有组织的、统一管理的相关数据的集合。◇例如,把一个学校的学生、课程、学生成绩等数据有序地组织并存放在计算机内,就可以构成一个数据库。特点:DB能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性。你会想到什么?©2010劳东青2.数据库管理系统(DATABASEMANAGEMENTSYSTEM,DBMS)DBMS是位于用户与OS之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。OSDB用户DBMS©2010劳东青2.数据库管理系统DBMS的具体功能:(1)数据定义功能(DDL):可定义数据库中的数据对象。(2)数据操纵功能(DML):可对数据库表进行基本操作,如插入、删除、修改、查询等。(3)数据库的保护功能:数据完整性检查功能:保证用户输入的数据满足相应的约束条件。数据库的安全性控制功能:保证只有具有权限的用户才能访问数据库中的数据。数据库的并发控制功能:使多个应用程序可在同一时刻并发地访问数据库的数据。©2010劳东青2.数据库管理系统DBMS应提供如下功能:(3)数据库的保护功能:数据库系统的故障恢复功能:使数据库在运行出现故障时进行数据库恢复,以保证数据库可靠运行。(4)数据库的维护功能(5)数据字典(DD):给数据流图上每个成分加以定义和说明。(6)在网络环境下访问数据库的功能。(7)提供方便、有效地存取数据库信息的接口和工具。编程人员通过程序开发工具与数据库的接口编写数据库应用程序。数据库系统管理员(DBA,DataBaseAdminitrator)通过提供的工具对数据库进行管理。©2010劳东青数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。数据库系统的构成©2010劳东青常用数据模型:层次模型、网状模型、关系模型。◇层次模型:以树状层次结构组织数据。图1.2某学校按层次模型组织的数据示例©2010劳东青网状模型:每一个数据用一个节点表示,每个节点与其他节点都有联系,这样,数据库中的所有数据节点就构成了一个复杂的网络。图1.3按网状模型组织的数据示例©2010劳东青(3)关系模型:以二维表格(关系表)的形式组织数据库中的数据。例如,在学生成绩管理系统所涉及的学生、课程和成绩三个表中。学生表涉及的主要信息有学号、姓名、性别、出生时间、专业、总学分、备注。课程表涉及的主要信息有课程号、课程名、开课学期、学时和学分。成绩表涉及的主要信息有学号、课程号和成绩。。学号姓名性别出生时间专业总学分备注081101王林男1990-02-10计算机50081103王燕女1989-10-06计算机50081108林一帆男1989-08-05计算机52已提前修完一门课081202王林男1989-01-29通信工程40有一门课不及格,待补考081204马琳琳女1989-02-10通信工程42学生关系表©2010劳东青课程号课程名开课学期学时学分0101计算机基础18050102程序设计与语言26840206离散数学4684学号课程号成绩学号课程号成绩08110110180081108101850811011027808110810264081101206760811082068708110310162081202101650811031027008120410191课程关系表成绩关系表一行一个记录一列一个字段字段名©2010劳东青13如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为关系表名(字段名1,字段名2,……,字段名n),通常把关系表的结构称为关系模式。◇例1:学生表取名为XSB,则学生表的关系模式为:XSB(学号,姓名,性别,出生时间,专业,总学分,备注)◇例2:成绩表取名为CJB,则成绩表的关系模式为:CJB(学号,课程号,成绩,学分)在关系表中,如果一个字段或几个字段组合的值可唯一标识其对应的记录,则称该字段或字段组合为码。一个表可以有多个码,但只有一个主码。关系模式中,一般用下划线标出主码。©2010劳东青关系型数据库的标准语言是SQL(StructuredQueryLanguage,结构化查询语言)。SQL语言的功能包括数据查询、数据操纵、数据定义和数据控制4部分。SQL语言简洁、方便、实用,为完成其核心功能只用了6个动词:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE),目前已成为应用最广的关系数据库语言。SQL语言易学易用,作为关系数据库的标准语言,它已被众多商用数据库管理系统产品所采用。不过,因为不同的数据库管理系统在其实践过程中都对SQL规范做了某些编改和扩充,所以,实际上不同数据库管理系统之间的SQL语言不能完全通用。例如,微软公司的SQLServer数据库系统支持的是Transact-SQL(简称T-SQL),而甲骨文公司的Oracle数据库所使用的SQL语言则是PL-SQL。©2010劳东青15数据库设计的三个关键步骤:概念结构设计、逻辑结构设计、物理设计。1.2.1概念结构设计实体(entity):客观存在,可以相互区别的事物称为实体。实体集(entityset):性质相同的同类实体的集合,称为实体集。如:学生实体集、课程实体集等属性(attribute):实体有很多特性,每一个特性称为属性。◇如学生实体的学号、姓名、班级、出生日期等。◇每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。实体集中的实体彼此间是不同的,区别不同实体的属性或属性组合称为码(或称键)。每一个实体集都可以指定一个码为主码。©2010劳东青161.2.1概念结构设计每一个实体集及其属性,都可以用图来描述。此时,通常用矩形框表示实体集,圆角矩形框表示属性,用线段连接实体集与属性。当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记一斜线。图1.4学生和课程实体集属性的描述©2010劳东青171.2.1概念结构设计如果实体集A和实体集B之间存在各种关系,通常把这些关系称为联系。描述实体集及实体集联系的图就是实体(Entity)-联系(Relationship)图,简称E-R图。E-R图通常用来描述实体-联系模型,即E-R模型。E-R图的表示方法:◇矩形——实体;◇圆形——实体或联系的属性;◇菱形——联系。概念结构设计:指从分析用户项目设计的数据对象及数据对象之间的联系出发,到获取E-R图的这一过程。©2010劳东青1.一对一的联系(1:1)A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。例如,“班级”与“正班长”这两个实体集之间的联系是一对一的联系,因为一个班级只有一个正班长,反过来,一个正班长只属于一个班级。图1.5“班级”与“正班长”实体集E-R模型两个实体之间可能有三种联系。人数属于正班长班级姓名学号班级编号院系专业11©2010劳东青2.一对多的联系(1:n)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为,一个班级可有若干学生,反过来,一个学生只能属于一个班级。图1.6“学生”与“班级”两个实体集的E-R模型人数属于学生班级姓名学号班级编号院系专业姓名姓名姓名姓名姓名1n©2010劳东青3.多对多的联系(m:n)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为,一个学生可选多门课程,反过来,一门课程可被多个学生选修。图1.7“学生”与“课程”实体集间的E-R模型学分选课学生课程姓名学号课程号课程名学时姓名姓名姓名姓名姓名nm课程名©2010劳东青逻辑结构设计:指将概念结构设计阶段所得到的概念模型(E-R模型)转换为具体DBMS所能支持的数据模型(即逻辑结构),并对其进行优化的过程。1、1:1联系的E-R图到关系模式的转换1∶1的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。(1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。例如,对于图1.5描述的“班级(BJB)”与“正班长(BZB)”实体集通过属于(SYB)联系E-R模型,可设计如下关系模式:©2010劳东青BJB(班级编号,院系,专业,人数)BZB(学号,姓名)SYB(学号,班级编号)(2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。例如,对于图1.5描述的“班级(BJB)”与“正班长(BZB)”实体集通过属于(SYB)联系E-R模型,可设计如下关系模式:BJB(班级编号,院系,专业,人数)BZB(学号,姓名,班级编号)或者BJB(班级编号,院系,专业,人数,学号)BZB(学号,姓名)©2010劳东青2、1:n联系的E-R图到关系模式的转换1∶n的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。(1)若联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。例如,对于图1.6描述的“班级(BJB)”与“学生(XSB)”实体集E-R模型,可设计如下关系模式:BJB(班级编号,院系,专业,人数)XSB(学号,姓名,性别,出生时间,专业,总学分,备注)SYB(学号,班级编号)©2010劳东青2、1:n联系的E-R图到关系模式的转换(2)若联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。例如,对于图1.6描述的“班级(BJB)”与“学生(XSB)”实体集E-R模型,可设计如下关系模式:BJB(班级编号,院系,专业,人数)XSB(学号,姓名,性别,出生时间,专业,总学分,备注,班级编号)©2010劳东青3、m:n联系的E-R图到关系模式的转换m:n的联系单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。例如,对于图1.7描述的“学生(XSB)”与“课程(KCB)”实体集之间的联系可设计如下关系模式:XSB(学号,姓名,性别,出生时间,专业,总学分,备注)KCB(课程号,课程名称,开课学期,学时,学分)CJB(学号,课程号,成绩)关系模式CJB的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。©2010劳东青数据的物理模型指数据的存储结构,如对数据库物理文件、索引文件的组织方式、文件的存取路径,内存的管理等。物理模型对用户是不可见的,它不仅与数据库管理系统有关,还与操作系统甚至硬件有关。©2010劳东青1.3.1数据库的连接方式客