《数据库的基本概念.ppt》由会员分享,可在线阅读,更多相关《数据库的基本概念.ppt(40页珍藏版)》请在三一文库上搜索。
1、信息工程学院 劳 东 青 TEL:15109083065 Email:,关于本课程。,Why we should learn this course? 56学时(理论30,实验26) 课程安排: 10、11章选学;重点3、4、5、6、8 作业10次;实验13次 课堂纪律 考核:笔试 成绩:平时成绩(30%)+考试成绩(70%) 平时成绩:作业+实验+出勤+课堂表现,1.1 数据库基本概念,1.2 数据库设计,1.3 数据库应用系统,补充: SQL Server 2000环境,1.1.1 数据库与数据库管理系统 1数据库(DATA BASE,DB) 简单地说,数据库是指存放数据的仓库。 数据不仅
2、包含数字,还包括文本、图像、音频、视频等。并且,这些数据存在一定的关联,并按一定的格式存放在计算机内。 严格的DB定义: DB是指长期存储在计算机内、有组织的、统一管理的相关数据的集合。 例如,把一个学校的学生、课程、学生成绩等数据有序地组织并存放在计算机内,就可以构成一个数据库。 特点:DB能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性。,你会想到什么?,2数据库管理系统(DATA BASE MANAGEMENT SYSTEM, DBMS) DBMS是位于用户与OS之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
3、 DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。,2数据库管理系统 DBMS的具体功能: (1)数据定义功能(DDL):可定义数据库中的数据对象。 (2)数据操纵功能(DML):可对数据库表进行基本操作,如插入、删除、修改、查询等。 (3)数据库的保护功能: 数据完整性检查功能:保证用户输入的数据满足相应的约束条件。 数据库的安全性控制功能:保证只有具有权限的用户才能访问数据库中的数据。 数据库的并发控制功能:使多个应用程序可在同一时刻并发地访问数据库的数据。,2数据库管理系统 DBMS应提供如下功能: (3)数据库的保护功能: 数据库系统的故障恢复功能:使数据库
4、在运行出现故障时进行数据库恢复,以保证数据库可靠运行。 (4)数据库的维护功能 (5)数据字典(DD):给数据流图上每个成分加以定义和说明。 (6)在网络环境下访问数据库的功能。 (7)提供方便、有效地存取数据库信息的接口和工具。编程人员通过程序开发工具与数据库的接口编写数据库应用程序。数据库系统管理员(DBA,DataBase Adminitrator)通过提供的工具对数据库进行管理。,数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。,数据库系统的构成,常用数据模型:层次模型、网状模型、关系模型。 层次模
5、型:以树状层次结构组织数据。,图1.2 某学校按层次模型组织的数据示例,网状模型:每一个数据用一个节点表示,每个节点与其他节点都有联系,这样,数据库中的所有数据节点就构成了一个复杂的网络。,图1.3 按网状模型组织的数据示例,(3)关系模型:以二维表格(关系表)的形式组织数据库中的数据。 例如,在学生成绩管理系统所涉及的学生、课程和成绩三个表中。学生表涉及的主要信息有学号、姓名、性别、出生时间、专业、总学分、备注。课程表涉及的主要信息有课程号、课程名、开课学期、学时和学分。成绩表涉及的主要信息有学号、课程号和成绩。,学生 关系表,课程关系表,成绩关系表,一行一 个记录,一列一 个字段,字段名,
6、13,如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为关系表名(字段名1,字段名2,字段名n),通常把关系表的结构称为关系模式。 例1:学生表取名为XSB,则学生表的关系模式为: XSB(学号,姓名,性别,出生时间,专业,总学分,备注) 例2:成绩表取名为CJB,则成绩表的关系模式为: CJB(学号,课程号,成绩,学分) 在关系表中,如果一个字段或几个字段组合的值可唯一标识其对应的记录,则称该字段或字段组合为码。 一个表可以有多个码,但只有一个主码。关系模式中,一般用下划线标出主码。,关系型数据库的标准语言是SQL(Structured Query Language,结构化查询语
7、言)。 SQL语言的功能包括数据查询、数据操纵、数据定义和数据控制4部分。 SQL语言简洁、方便、实用,为完成其核心功能只用了6个动词:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE),目前已成为应用最广的关系数据库语言。 SQL语言易学易用,作为关系数据库的标准语言,它已被众多商用数据库管理系统产品所采用。不过,因为不同的数据库管理系统在其实践过程中都对SQL规范做了某些编改和扩充,所以,实际上不同数据库管理系统之间的SQL语言不能完全通用。例如,微软公司的SQL Server数据库系统支持的是Transact-SQL(简称T-SQL),而甲骨
8、文公司的Oracle 数据库所使用的SQL语言则是PL-SQL。,15,数据库设计的三个关键步骤:概念结构设计、逻辑结构设计、物理设计。 1.2.1 概念结构设计 实体(entity):客观存在,可以相互区别的事物称为实体。 实体集(entity set):性质相同的同类实体的集合,称为实体集。如:学生实体集、课程实体集等 属性(attribute):实体有很多特性,每一个特性称为属性。 如学生实体的学号、姓名、班级、出生日期等。 每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。 实体集中的实体彼此间是不同的,区别不同实体的属性或属性组合称为码(或称键)。 每一个实体集都可以指定
9、一个码为主码。,16,1.2.1 概念结构设计 每一个实体集及其属性,都可以用图来描述。此时,通常用矩形框表示实体集,圆角矩形框表示属性,用线段连接实体集与属性。当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记一斜线。,图1.4 学生和课程实体集属性的描述,17,1.2.1 概念结构设计 如果实体集A和实体集B之间存在各种关系,通常把这些关系称为联系。 描述实体集及实体集联系的图就是实体(Entity)-联系(Relationship)图,简称E-R图。 E-R图通常用来描述实体-联系模型,即E-R模型。 E-R图的表示方法: 矩形实体; 圆形实体或联系的属性; 菱形联系。 概念
10、结构设计:指从分析用户项目设计的数据对象及数据对象之间的联系出发,到获取E-R图的这一过程。,1一对一的联系(1 : 1) A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。 例如,“班级”与“正班长”这两个实体集之间的联系是一对一的联系,因为一个班级只有一个正班长,反过来,一个正班长只属于一个班级。,图1.5 “班级”与“正班长”实体集E-R模型,两个实体之间可能有三种联系。,2一对多的联系(1 : n) A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。 例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因
11、为,一个班级可有若干学生,反过来,一个学生只能属于一个班级。,图1.6 “学生”与“班级”两个实体集的E-R模型,3多对多的联系(m : n) A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。 例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为,一个学生可选多门课程,反过来,一门课程可被多个学生选修。,图1.7 “学生”与“课程”实体集间的E-R模型,逻辑结构设计:指将概念结构设计阶段所得到的概念模型(E-R模型)转换为具体DBMS所能支持的数据模型(即逻辑结构),并对其进行优化的过程。 1、1 : 1联系的E-R图到关系模式的转换 11的
12、联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。 (1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。 例如,对于图1.5描述的“班级(BJB)”与“正班长(BZB)”实体集通过属于(SYB)联系E-R模型,可设计如下关系模式:,BJB(班级编号,院系,专业,人数 ) BZB(学号,姓名) SYB(学号,班级编号) (2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。 例如,对于图1.5描述的“班级(BJB)”与“正班长(BZB)”实体集通过属于(SYB)联系E-R模
13、型,可设计如下关系模式: BJB(班级编号,院系,专业,人数) BZB(学号,姓名,班级编号) 或者 BJB(班级编号,院系,专业,人数,学号) BZB(学号,姓名),2、1 : n联系的E-R图到关系模式的转换 1n的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。 (1)若联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。 例如,对于图1.6描述的“班级(BJB)”与“学生(XSB)”实体集E-R模型,可设计如下关系模式: BJB(班级编号,院系,专业,人数) XSB (学号,姓名,性别,出生时间,专业,总学分,
14、备注) SYB (学号,班级编号),2、1 : n联系的E-R图到关系模式的转换 (2)若联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。 例如,对于图1.6描述的“班级(BJB)”与“学生(XSB)”实体集E-R模型,可设计如下关系模式: BJB(班级编号,院系,专业,人数) XSB (学号,姓名,性别,出生时间,专业,总学分,备注,班级编号),3、m : n联系的E-R图到关系模式的转换 m : n的联系单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。 例如
15、,对于图1.7描述的“学生(XSB)”与“课程(KCB)”实体集之间的联系可设计如下关系模式: XSB(学号,姓名,性别,出生时间,专业,总学分,备注) KCB(课程号,课程名称,开课学期,学时,学分) CJB(学号,课程号,成绩) 关系模式CJB的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。,数据的物理模型指数据的存储结构,如对数据库物理文件、索引文件的组织方式、文件的存取路径,内存的管理等。 物理模型对用户是不可见的,它不仅与数据库管理系统有关,还与操作系统甚至硬件有关。,1.3.1 数据库的连接方式 客户端应用程序或应用服务器向数据库服务器请求
16、服务时,必须首先和数据库建立连接。 1、ODBC数据库接口 ODBC即开放式数据库互连(Open DataBase Connectivity),是微软公司推出的一种实现应用程序和关系数据库之间通信的接口标准。符合标准的数据库就可以通过SQL语言编写的命令对数据库进行操作,但只针对关系数据库。目前所有的关系数据库都符合该标准(如SQL Server,Oracle,Access,Excel等)。 ODBC本质上是一组数据库访问API(应用程序编程接口),它由一组函数调用组成,核心是SQL语句,其结构如图1.8所示。,ODBC管理器根据注册的数据源提供的DB位置、DB类型、ODBC驱动程序等信息,建
17、立起ODBC与具体数据库的联系。,2OLE DB数据库接口 OLE DB即数据库链接和嵌入对象(Object Linking and EMBedding DataBase)。OLE DB是微软提出的基于COM思想且面向对象的一种技术标准,其目的是提供一种统一的数据访问接口来访问各种数据源。 这里所说的“数据”除了标准的关系型数据库中的数据之外,还包括邮件数据、Web上的文本或图形、目录服务(Directory Services)、主机系统中的文件和地理数据以及自定义业务对象等。 OLE DB标准的核心内容就是,提供一种相同的访问接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,
18、而不用考虑数据的具体存储地点、格式或类型。,3ADO数据库接口 ADO(ActiveX Data Objects)是微软公司开发的基于COM的数据库应用程序接口,通过ADO连接数据库,可以灵活地操作数据库中的数据。,图1.10 ADO访问SQL Server的接口,使用ADO访问SQL Server数据库有两种途径:一种是通过ODBC驱动程序,另一种是通过SQL Server专用的OLE DB Provider,后者有更高的访问效率。,4ADO.NET数据库接口 ASP.NET使用ADO.NET数据模型。该模型从ADO发展而来,但它不只是对ADO的改进,而是采用了一种全新的技术。主要表现在以下
19、几个方面。 (1)ADO.NET 不是采用 ActiveX 技术,而是与.NET框架紧密结合的产物。 (2)ADO.NET 包含对 XML标准的完全支持,这对于跨平台交换数据具有重要的意义。 (3)ADO.NET 既能在与数据源连接的环境下工作,又能在断开与数据源连接的条件下工作。特别是后者,非常适合于网络应用的需要。因为在网络环境下,保持与数据源连接,不符合网站的要求,不仅效率低,付出的代价高,而且常常会引发多个用户同时访问带来的冲突。因此ADO.NET系统集中主要精力来解决在断开与数据源连接的条件下的数据处理问题。,ADO.NET 提供了面向对象的数据库视图,并且在ADO.NET 对象中封
20、装了许多数据库属性和关系。最重要的是,ADO.NET 通过多种方式封装和隐藏了很多数据库访问的细节。用户可以完全不知道对象在与 ADO.NET 对象交互,也不用担心数据移动到另外一个数据库或者从另一个数据库获得数据的细节问题。图1.11所示为ADO.NET 架构总览。,5JDBC数据库接口 在JDBC API中有两层接口:应用程序层和驱动程序层,前者使开发人员可以通过SQL调用数据库和取得结果,后者处理与具体数据库驱动程序相关的所有通信。 使用JDBC接口对数据库操作有如下优点: (1)JDBC API与ODBC十分相似,有利于用户理解。 (2)使编程人员从复杂的驱动器调用命令和函数中解脱出来
21、,而致力于应用程序功能的实现。 (3)JDBC支持不同的关系数据库,增强了程序的可移植性。 使用JDBC的主要缺点:访问数据记录的速度会受到一定影响;此外,JDBC结构中包含了不同厂家的产品,这给数据源的更改带来了较大麻烦。,6数据库连接池技术 网络环境下的数据库应用,由于用户众多,使用传统的JDBC方式进行数据库连接,系统资源开销过大,这成为制约大型企业级应用效率的瓶颈,而采用数据库连接池技术对数据库连接进行管理,可以大大提高系统的效率和稳定性。,对于一般的数据库应用系统,除了数据库管理系统外,需要设计适合普通人员操作数据库的界面。目前,流行的开发数据库界面的工具主要包括Visual BAS
22、IC、Visual C+、Visual FoxPro、Delphi、PowerBuilder等。数据库应用程序与数据库、数据库管理系统之间的关系如图所示。,由于应用程序直接与用户打交道,而数据库管理系统不直接与用户打交道,所以应用程序被称为“前台”,而DBMS被称为“后台” 。 由于应用程序向DBMS提出服务请求,故通常称为客户程序(Client);而DBMS为其他应用程序提供服务,故通常称为服务器程序(Server)。这种操作数据库模式被称为客户-服务器(C/S)模式。,应用程序和数据库管理系统可以运行在同一台计算机上(单机方式),也可以运行在网络方式下。在网络方式下,数据库管理系统在网络上
23、的一台主机上运行,应用程序可以在网络上的多台主机上运行,即一对多的方式。例如,用Visual Basic开发的客户-服务器(C/S)模式的学生成绩管理系统的学生信息输入界面如图1.13所示。,图1.13 C/S模式的学生成绩管理系统界面,基于Web的数据库应用采用三层客户-服务器模式,也称为B/S结构。第一层为浏览器,第二层为Web服务器,第三层为数据库服务器。 浏览器是用户输入数据和显示结果的交互界面。用户在浏览器表单中输入数据,然后将表单中的数据提交并发送到Web服务器。 Web服务器应用程序接收并处理用户的数据,通过数据库服务器,从数据库中查询需要的数据(或把数据录入数据库)并返回给Web服务器。Web服务器再把返回的结果插入HTML页面,传送到客户端,在浏览器中显示出来。,例如,用ASP.NET开发的三层客户-服务器(B/S)模式的学生成绩管理系统的学生信息更新页面如图1.15所示。,图1.15 B/S模式的学生成绩管理系统页面,39,什么是数据库、数据库系统? 什么是数据库管理系统?它有什么功能? 常用的数据模型有哪些?它们有什么特点? 假设职工有职工编号、职工姓名、年龄、性别四个属性,部门有部门编号、部门名称、地址、简介四个属性,试分析职工实体与部门实体之间的联系,并用E-R图将之描述出来,最后根据所得E-R图写出相应的关系模式。,40,
链接地址:https://www.31doc.com/p-3185172.html