数据库原理与设计-第一章_第1页
数据库原理与设计-第一章_第2页
数据库原理与设计-第一章_第3页
数据库原理与设计-第一章_第4页
数据库原理与设计-第一章_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

数据库原理及设计

PrincipleandDesignofDatabases课程目的掌握数据库管理系统的基本原理;学习作为系统管理员应用、操作和管理数据库管理系统的方法和技能;设计开发数据库应用系统。内容提要数据库管理系统基本原理基本概念:数据库、数据库管理系统、数据库系统、视图、数据模型及抽象等基本内容:关系数据库与理论、SQL语言、数据库安全性、数据库完整性、数据库并发控制、数据库故障恢复等DBMS的基本原理在SQLServer中的体现;数据库应用系统的设计与开发。讲授方式首先讲解数据库系统的整体框架,了解其各部分组成及地位作用、所涉及的概念及内容;重视英文术语;根据整体框架,分别讲授各个组成部分;各个部分的讲解,基本上先讲其基本概念及理论,紧接着将以SQLServerDBMS为例,对应讲解该理论在实际的DBMS中的运用及体现;利用上机实验条件和课内外课时,实际上机实习,加深理论,掌握有代表性的SQLServerDBMS;教材:陶宏才主编,<<数据库原理及设计>>,第二版,清华大学出版社,2007.9学习方式好消息:课程内容是很多技术的基础

非常重要;几乎所有计算机应用领域都需要数据库–

非常有用。警钟:要把自己放到虚拟工作环境中,带着问题来学。课程内容多,需要深入理解;学习不努力,考试徒伤悲!如何在本课程中获得事半功倍的效果?积极主动地学习;记笔记;上课时脑细胞要活跃,多问为什么;按时、优质地完成作业;同学间讨论问题;自己动手练习。成绩评估方法平时成绩占30%作业占15%课堂讨论,测验占15%(考勤)上机(完成并提交上机报告)期末考试成绩占70%内容以课堂讲授及教材为准。主要参考书王珊、萨师煊等编著.数据库系统概论(第4版).高等教育出版社,2006郑阿奇.SQLServer实用教程(第3版).电子工业出版社,2013年施伯乐等编著.数据库系统教程.第2版.高等教育出版社,2003.8李建中,王珊编著.数据库系统原理.电子工业出版社,1999.4王珊,陈红编著.数据库系统原理教程.清华大学出版社,1998.7RamezElmasri,ShamkantB.Navathe著.数据库系统基础.第3版.邵佩英,张坤龙等译.人民邮电出版社,2002.11学习目的和要求数据库管理系统出现的背景数据库管理系统基本功能、抽象层次数据库系统总体结构理解数据库原理、应用及设计三部分间的关系数据库系统中的术语与基本概念第一章数据库系统概述思考一下

在数据库系统还没有出现的时候,你在大学学生处工作。有1000名新生需要登记信息,可能还会有1000人后续而来,你采用什么方法管理他们?一个完成数据输入、存储、修改、输出、持久有效的系统存储数据——使用一种数据结构易于修改数据——这种数据结构便于查找数据和修改数据持久有效——系统有安全保护措施走向数据库之一:“史前时期”数据库的“史前时期”是文件系统(FileSystem)时期。文件系统怎样开发管理应用呢?开发任务简单学生管理系统,学生注册、选课、学籍和成绩管理。开发工具及环境程序设计语言如C/C++,Windows下的文件系统。数据结构设计确定管理对象;抽取对象主要特征;将特征组织起来。利用C/C++语言中的“结构”数据类型存放数据。文件系统实现过程(1)-数据结构定义structStudent{ int nStudNo; charszStudName[20]; char cGender; int nAge; char szDept[30];};structEnrollment{ int nStudNo; int nWhichTerm; char cEnrolled; char szMem[30];};structCourse{int nCourseNo;charszCourseName[20];char szDept[30];};structScore{ int nStudNo; int nCourseNo; int nScore;};注:sz-数组(Array),n–整数(Number),c-字符(Char)文件系统实现过程(2)构造链表为了管理学生的信息,常常以班级为单位。如果对集合数据进行添加、修改、排序等操作,一个办法是构造链表。在我们的例子中,至少需要构造四个这样的链表。以学生基本信息链表为例:StudentInfoStudentInfoΛStudentInfo链表操作对班级的学生进行增加、删除、修改、查询与排序工作。相对于链表是对结点进行insert,delete,update,query,sort。文件系统实现过程(3)-用户界面设计文件系统实现过程(4)创建数据存储文件将链表中的数据以文件形式存盘。使用文件I/O操作函数完成对文件中数据的读写,上例中需要四个数据文件。程序运行前,需将数据文件中的数据读出,放入程序中的对应链表中,以方便数据的操作。程序结束运行之前,将链表中的数据存入到对应的数据文件中。数据管理操作最基本的数据操作:增加、删除、修改和查询,简称:增删改查询。其他操作或功能由这四个基本操作组合而来文件系统的缺陷(1)无法处理超大量数据(如GB级,TB级,PB级)证券、银行、保险等领域拥有超大量级数据。内寸不够,不能一次读入大量数据。32位计算机直接访问的地址为4GB;在32位机上Linux、WindowsNT、Windows2000等操作系统不允许硬盘上单个文件超过232=4GB大小。大数据量下的查询速度存在问题多用户并发访问(ConcurrentAccess)前面的学生管理系统只能单机或单用户使用。多用户的并发访问可能导致多个用户同时存取同一数据(Conflict)。数据访问冲突导致数据不一致。多用户并发访问的透明度。文件系统的缺陷(2)故障情况下的恢复(CrashRecovery)文件系统需要增加大量代码安全性(Security)文件系统必需做很大改进,以满足数据安全的要求,例如:不同用户的授权问题。数据的完整性(Integrity)同一数据可能会出现在多个数据结构中,同时对应地出现在多个数据文件中。修改一个文件的一个数据,必须同时修改其他文件中的相同的数据,否则就会产生数据的不一致。走向数据库之二:“数据库诞生”文件系统管理应用系统数据库数据库管理系统(DBMS)大容量数据并发访问故障恢复安全性完整性文件系统大容量数据并发访问故障恢复安全性完整性抽出五个基本公共功能形成数据库管理系统引起的术语变化:

结构类型⇒数据模型(datamodel)具体的某个结构⇒数据模式(dataschema)数据文件⇒数据库数据结构,数据文件开发支持数据库系统的优点整体数据的结构化是数据库的主要特征之一整体结构化不再仅仅针对某一个应用,而是面向全组织不仅数据内部结构化,整体是结构化的,数据之间具有联系数据库中实现的是数据的真正结构化数据的结构用数据模型描述,无需程序定义和解释数据可以变长数据的最小存取单位是数据项数据库系统的优点学号姓名性别年龄所在系家庭住址联系电话学生记录结构课程号课程名学时教材名称学号课程号学期成绩课程记录结构选课记录结构整体数据的结构化数据库系统的优点数据独立性(DataIndependence)将数据如何表示的(如:是数组还是整数?)和如何存储的(如:一个记录的长度)与应用程序分离数据结构和存储方式发生变化不需修改和编译应用程序。数据的逻辑独立性:当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变;应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。数据的物理独立性:当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变;应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。数据库系统的优点数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应用共享使用。数据共享的好处减少数据冗余,节约存储空间避免数据之间的不相容性与不一致性使系统易于扩充数据的共享性高,冗余度低,易扩充数据库系统的优点高效数据访问(EfficientDataAccess)DBMS利用许多复杂的技术来高效存储和检索数据,这对存于外部存储设备上的数据相当重要。数据完整性与安全性(DataIntegrityandSecurity)DBMS建立完整性约束,如为每个数据项指定数据类型。DBMS提供授权子系统,每个用户或用户组被赋予一个通过口令保护的帐户,不同的帐户有不同的访问权限。数据库系统的优点(续)数据管理数据的集中管理可以控制冗余(Redundancy)。并发访问与故障恢复多个用户使用数据库,但用户感到好象只有他一个人在使用似的。数据库在执行某个程序发生故障后,DBMS能把数据库恢复到这个程序开始执行前的正确状态。缩短应用开发时间(ReducedApplicationDevelopmentTime)五大功能及相关的任务由DBMS来完成,系统开发的难度降低,开发时间也缩短了。持久性存储(PersistentStorage)数据库可以为程序对象和数据结构提供持久性存储。数据库系统的基本功能数据独立性并发控制故障恢复安全性完整性注意:虽然DBMS有很多优势,但在某些情况下使用DBMS反而会导致不必要的开销。如:苛刻的实时环境(现在有real-timeDB);操作少,代码要求精炼时;数据是非结构化或半结构化的(如HTML、XML、MSWord文档),还没有相应的查询语言支持。走向数据库之三:“数据库的抽象层次”应用系统开发数据库的抽象过程对应用中的信息(数据)进行计算机化的管理“数据抽象”;例如:管理计算机系的学生李白(20010311)的“数据库”课程的成绩

用一定的方式来组织数据,使其具有结构化

“数据模型”(datamodel);利用“数据模型”工具完成对具体系统的数据抽取、组织,得到的结果就是“数据模式”(dataschema)复杂的应用系统,可分成多个应用子系统。对每个子系统进行数据抽象,得到各自的模式,称为外模式(externalschema)“视图抽象”;在外模式的基础上“合零为整”,形成一个全局的数据模式,是概念上的,唯一的,称为概念模式(conceptualschema)“概念抽象”;概念模式转化成计算机可实现的内模式(internalschema),落实到计算机的物理实现层面“物理抽象”;数据库三级抽象层次(模式)结构外模式1……概念模式内模式外模式m外模式n视图抽象概念抽象物理抽象数据库用户组1用户组n全局局部视图抽象概念抽象概念抽象视图抽象数据库的抽象层次应用系统的设计和工具外模式1……概念模式内模式外模式2外模式n数据库用户组1用户组n物理抽象物理抽象局部全局自顶向下自底向上物理抽象物理抽象数据库舞台上的角色最终用户(enduser):为了查询、更新、以及产生报表等需要而访问数据库的人。如银行的柜员、商业分析师等。数据库设计者:分析用户需求,负责从“外部模式”

“概念模式”“内模式”建立数据库的过程。数据库管理员(DBA):负责数据库监控、日常维护和管理。例如,为用户授予存取权限等。数据库设计者往往是DBA的候选人。有关的软件工程师:开发数据库工具软件包;系统分析;等等。数据库的语言数据库设计人员使用数据定义语言(DDL)完成对数据库模式的描述。数据库管理员和用户使用数据操纵语言(DML)对数据进行“增删改查询”等操作。数据库管理员使用数据控制语言(DCL)对数据库进行管理。SQL(StructuredQueryLanguage,结构化查询语言)综合了上述各方面在一个语言中,是关系型数据库管理系统支持的数据库语言。目前的标准化版本为SQL-92,被ANSI、ISO(InternationalStandardsOrganization)采纳。SQL语言既可以作为交互式(Interactive)数据库语言使用,也可以嵌入(Embedded)到程序设计语言中作为其子语言使用。程序设计语言被称为宿主语言(HostLanguage),如:C/C++语言、PowerBuilder、Delphi等。数据库设计、原理与应用之间的联系数据库系统总体结构图利用SQL中的DDL将关系模式存入数据库SQL定义语句概念模式

外模式1

外模式n

外模式2

现实系统

数据库设计部分

内模式

关系数据库管理系统RDBMS

数据库实现(原理)部分DB

数据库安全

并发控制

故障恢复

完整性限制CGI/ISAPI

ODBC/JDBC/OLEDB

SQL的嵌入式使用C/C++、PB、Delphi、Java应用程序

数据库应用部分

用户

SQL的交互式使用

SQL语句

C/S模式

浏览器

WEB服务器

B/S模式

HTTP

SQL语句CGI/ASP/JSP程序

走向数据库之四:“数据库的发展”“史前时期:文件系统“石器时代和中古时期”:层次与网状数据库系统“近代,1970+”:标准DBMS,关系数据库系统(RDBS)“当代,1989+”:面向对象数据库(OODBS)“当代,1990+”:对象-关系数据库(ORDBS)“现代,1995+”:数据仓库;并行数据库;分布式数据库;基于Internet/Web的数据库系统……C/S结构,B/S结构OLTP,OLAP,数据挖掘……第一代数据库系统1964,Bachmanetal,第一个数据库IDS,网状数据库,——数据库界第一个图灵奖(1973)。1968,IBM,商品化产品,IMS,层次数据1969,DBTG,DBTG报告,确定了网状数据库系统的概念、方法和技术。

CharlesW.Bachman

第二代数据库系统1970,IBM,E.F.Codd,提出了关系模型,奠定了关系型数据库管理系统的基础(关系数据库之父)。数据库界第二个图灵奖(1981)

E.F.CoddJamesGray-1998年图灵奖得主由于数据库是计算机各种应用的基础,它大大促进计算机的普及。IBM,“SystemR”项目成果极大地推动了关系数据库技术的发展,在此基础上推出的DB2和SQL等产品成为IBM的主流产品。SystemR本身作为原型并未问世,但鉴于其影响,ACM把1988年的“软件系统奖”授予了SystemR开发小组(获奖的6个人中就包括1998年图灵奖得主J.Gray)。基于J.Gray在数据库安全性、事务处理、图形处理、存储方面的杰出贡献,他获得了1998年图灵奖。这是数据库界第三个图灵奖。JamesGray群雄并起到春秋五霸GartnerGroup(位于美国康涅狄克州斯坦福德的IT市场调查公司)基于估计的税收(Revenues)对2005年RDBMS的卖主排序Top5:Oracle:48.9%IBM:22.4%Microsoft:13.9%Teradata:3.2%Sybase:3.0%关系数据库管理系统2005年比前一年增长8.3%LarryEllison,OracleCEOOLAP/DataWarehouse/WebDataWarehouse1988年,IBM公司的研究者BarryDevlin和PaulMurphy发明了一个新的术语—信息仓库,之后,IT的厂商开始构建实验性的数据仓库。1991,W.H.Inmon,提出了数据仓库(DataWarehouse)的概念.1993,Codd,定义了OLAP,推动了数据仓库的建立。Inmonvs.Kimball数据仓库≠数据库数据仓库支持经营管理中的决策制定过程。它面向运营分析,数据挖掘(DataMining),决策,商务(政务)智能。数据库面向商业处理,如销售,进货等一单一单的业务处理。为什么需要数据仓库和OLAP数据库平板文件数据仓库去年的第二季度WalMart的所有分店的洗发水的销售情况?顾客销售…………50元50kg1元苹果15元10块1.5元香皂B126元20瓶6.3元洗发水A总销售额销售量单价货品记录内容(x年x月x日)每日的销售记录记录存储经理运营分析结果去年的第二季度WalMart的所有分店的洗发水的总销售额为14500元OLTPandOLAP数据库平板文件数据仓库顾客销售每日的销售记录记录存储OLTPOLAP新商业计划运营分析结果Internet/WebDatabase单机多机本地网络化纯数据多媒体数据结构化数据非结构化数据/半结构化数据主机/显示器C/S和B/S结构<?xmlversion="1.0"encoding="UTF-8"?>

<Student>

<Student1SID=20030001>

<name>ZhangPin</name>

<age>21</age>

<gender>Female<gender></Student1〉</Student>C/S和B/S模式2-tierClient/ServerDBMS服务器数据读写和处理。DB数据存储客户机提出业务要求;事物流控制;显示结果。网络应用服务器事物流控制;负荷平衡。提出业务要求;显示结果。客户机网络DBMS服务器数据读写和处理。DB数据存储应用服务器事物流控制;负荷平衡。浏览器客户端:提出业务要求;显示结果。HTTPWeb服务器CGI,ISAPI,NSAPIODBC,JDBC,OLEDB3-tierClient/ServerBrowser/Server模式

数据库系统的基本概念(1)数据(Data):是描述现实世界中各种具体事物或抽象概念的、可存贮并具有明确意义的信息。数据库(Database,DB):是相互关联的数据集合。数据库管理系统(DatabaseManagementSystem,DBMS):是一个通用的软件系统,由一组计算机程序构成。它能对数据库进行有效的管理,包括存储管理、安全性管理、完整性管理等;同时,它也为用户提供了一个软件环境,使其能够方便快速地创建、维护、检索、存取和处理数据库中的信息。数据库系统的基本概念(2)数据库系统(DatabaseSystem,DBS):由数据库和数据库管理系统构成,更广义的构成则为“DB+DBMS+数据库管理员+应用程序+用户”。数据字典(DataDictionary,DD):是数据库系统中的一个特殊文件,用于存储数据库中重要的说明信息,这些说明信息称为元数据(MetaData)。元数据是描述数据的数据,例如:数据类型及长度(P17),价格单位,数据导出规则,等等,已经成为重要的系统数据。数据库操作(DatabaseOperation):在数据库应用中,最常见的有:增加、删除、修改和查询。大型数据库与微机数据库区别:在于微机数据库系统的某些功能相对弱化了。视图(1)视图(View):从不同的角度截取同一数据库的子集(不同的理解),每一个子集被称为该数据库的一个视图。数据库的分层视图:

应用程序员

最终用户

DBA

系统程序员

物理

数据

物理视图

内模式

内部视图

概念模式

概念视图

子模式1

外部视图

子模式2

子模式n

用户图表1

I/O视图

用户图表2

用户图表n

组织

视图(2)输入输出数据视图:即终端用户所见到的输入输出数据结构描述。是按用户要求表示出的数据,如报表等。外部视图(ExternalView):局部数据库逻辑结构称为外部视图。这种视图在数据库设计时通常以图形的形式(如E-R图)表示,有的又叫视图或用户视图。概念视图(ConceptualView):整个数据库系统的全局逻辑结构。这种逻辑结构称为概念模型,它不包含任何数据库的实现细节,如:何种DBMS、文件组织、存取方法等。这种逻辑结构的形式化描述称为概念视图。在数据库设计时,概念视图通常也以E-R图表示。视图(3)内部视图(InternalView)或存储视图:特定的DBMS所处理的数据库的内部结构称为内部模型,其形式化描述称为内部视图或存储视图,它将数据库表示为“内部记录”或“存储记录”的集合。存储记录仍然是逻辑性的,它不是存储设备上的物理记录或物理块,也不涉及任何具体设备限制,如:柱面或磁道的大小等,所以存储视图还不是最底层的物理层。存储视图还指明存储记录的物理顺序、以及它们如何彼此关联。存储视图的语言形式定义称为内部模式。物理视图(PhysicalView):数据库在存储设备上的物理组织称为物理模型,其描述称为物理视图。它包含了所使用设备特征、物理记录或块的组成、寻址技术和压缩存储技术等的说明。数据抽象、数据模型与数据模式(1)数据抽象(DataAbstraction):即是将数据抽象化、逻辑化,使用户不必了解数据库文件的物理存储结构、存储位置和存取方法等细节,即可存取数据库。在数据库系统中,有三种级别的数据抽象,即:视图级抽象、概念级抽象和物理级抽象。数据模型(DataModel):即是对数据进行抽象化表示的工具,主要使用逻辑概念(如对象、对象属性、对象联系等)来表示数据。由于抽象级别的存在,数据模型也存在相应的级别。如:概念数据模型、逻辑数据模型、物理数据模型等。对于抽象级别高的概念数据模型我们叫它语义(Semantic)数据模型,如ER模型。数据模式(DataSchema):根据数据模型来描述数据,得到的具体的表达。亦即是描述数据的模板。数据库三级抽象层次(模式)结构外模式1……概念模式内模式外模式m外模式n视图抽象概念抽象物理抽象数据库用户组1用户组n数据抽象、数据模型与数据模式(2)三者的关系:数据抽象是将真实世界中的信息(数据)提炼,再提炼,变成计算机能认识,可以管理的数据的过程;数据模型是数据抽象的工具,是数据组织和表示的方式;数据模式是数据抽象利用数据模型将数据组织起来后得到的结果。数据模型的三要素数据结构用于描述系统的静态特性。数据结构不仅要描述数据本身,还要描述数据之间的联系。数据

温馨提示

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

评论

0/150

提交评论