您好,欢迎访问三七文档
数据库系统原理1陈岭浙江大学计算机学院2•教材:–DatabaseSystemsConcepts6thedition–ByAbrahamSilberschatz,HenryF.KorthandS.Sudarshan–HigherEducationPress,McGraw-HillCompanies•参考书目:–DatabaseManagementSystems3rdeditionByRamakrishnanandGehrke–DatabaseSystems:TheCompleteBookByGarcia-Molina,UllmanandWidom–数据库系统概论(第四版),萨师煊王珊,高等教育出版社,2006–数据库系统原理教程,王珊陈红,清华大学出版社,2003–数据库课程设计,陈根才孙建伶林怀中周波,浙江大学出版社,2007(实验参考书)引论3数据库系统目的数据视图数据模型数据库语言数据库管理员数据库用户事务管理存储管理数据库体系结构数据处理和管理是计算机应用最重要的领域,数据库系统的知识对于计算机学者至关重要。数据库涉及社会生活的方方面面:银行业:所有交易航空公司:预订,时间表大学:注册,成绩销售:客户,产品,购买制造业:生产,库存,订单,供应链电子政务,电子商务,……你可能学习了很多课程,但数据库系统能够让你找到一份好工作数据库系统目的4图灵奖获得者51998,JamesGray——事务、锁、日志和二阶段提交1981,EdgarF.Codd——关系数据库1972,CharlesW.Bachman——网状数据库我们将从以下三方面学习数据库相关知识:数据库模型与设计从现实生活中抽象出数据模型,再将其转换为适合目标DBMS(数据库管理系统)的形式:表、视图。编程:使用数据库查询、更新数据(SQL)数据库管理系统实现数据库管理系统的工作机制及设计学些什么?6学生分数表的设计7这张表的设计好吗?为什么?学号姓名专业DB平时DB期末DB总评成绩OS平时OS期末OS总评成绩3023001093黄毅照混合班859590853011112340周朝威计算机科学与技术809085883020621034徐鑫计算机科学与技术909090853020831035薄延嵩计算机科学与技术708075903021131123胡俊计算机科学与技术707070753022112002蒋永丽计算机科学与技术809085803022112003顾娉娉计算机科学与技术90909085另外一种表的设计8SidSnameSsexSageSpecialty3023001093黄毅照M21No3011112340周朝威F20Cs3020621034徐鑫M18Cs3020831035薄延嵩M19Cs3021131123胡俊F22CscidCnamecredit1DB42OS53English44Math4sidcidgrade1grade2grade330230010931903023001093285302062103419030208310351753021131123275StudentsCoursesEnrolled这种表的设计好吗?为什么?数据库访问9方法1:利用数据库管理系统提供的交互工具访问数据库如:MySQLWorkBench,SQLServer查询分析器,ORACLESql*Plus,WorkSheet数据库访问10方法2:利用开发工具设计界面、处理数据,调用ODBC等接口访问数据库,如:ASP,JSP,VC++,PHP,PowerBuilder,Delphi数据库与数据库管理系统定义11数据库(DB)与企业相关的数据集合具有完整性和持久性的数据集合。[R.Ramakrishnan,J.Gehrhe]长期(常常多年)存在的信息集合。[Ullman]长期存储在计算机内,有组织的,可共享的数据集合。[萨师煊,王珊]数据库管理系统(DBMS)数据库+一组用以访问、更新和管理这些数据的程序DBMS的主要特性12数据访问的高效和可扩展性缩短应用开发时间数据独立性(物理数据独立性/逻辑数据独立性)数据完整性和安全性并发访问和鲁棒性(恢复)DBMS的发展历史13Fileprocessingsystem(1950s-1960s)NetworkandhierarchicalDBMS(1960s-1970s)网状数据模型、层次数据模型-网状数据库、层次数据库(结构复杂、使用很困难)Relationaldatabasesystems(RDBMS)关系模型(1970,E.F.Codd)RDBMS开始发展(1970s)RDBMS走向市场(1980s)RDBMS技术成熟(1990s)DBMS的发展历史14面向对象数据库系统:Object-orienteddatabasesystem(OODBMS)对象关系数据库系统:Object-relationaldatabasesystems(ORDBMS)面向应用数据库系统:Application-orienteddatabasesystems空间、时间、多媒体、网络数据库数据仓库(DataWarehousing)、联机分析处理(OnlineAnalyticalProcessing)、数据挖掘(DataMining)DatabaseSystemsVSFileProcessingSystems15文件处理系统由传统操作系统所支持:随着需求的增长,需要编写新的应用程序,并创建新的数据文件但在相当长的时间内,数据文件可以是不同的格式。数据文件是相互独立的在文件处理系统中存储组织信息的主要弊端:数据冗余和不一致–多种文件格式、信息重复存储数据访问困难–需要编写一个新的程序来完成每一个新的任务数据孤立–多文件多格式,检索、共享数据困难DatabasesystemsVSFileProcessingSystems16在文件处理系统中存储组织信息的主要弊端:完整性问题–完整性约束(如账户余额0)成为程序代码的一部分–增加新的约束或更改现有的约束很困难原子性问题–在进行部分数据更新时,一旦发生故障,可能导致数据库处于不一致的状态–例如,从一个账户转移资金到另一个账户,此操作要么完成,要么根本不会发生并发访问异常–为了提高系统的总体性能,许多系统允许并发访问–不受控制的并发访问可能导致数据不一致–例如,两个用户读取同一账号余额,并在同一时间更新它DatabasesystemsVSFileProcessingSystems17在文件处理系统中存储组织信息的主要弊端:安全性问题–并非所有用户都可以访问所有数据数据库系统为以上所有问题,提供了解决方案DBMS的市场18关系数据库管理系统的公司:甲骨文(Oracle)、SAP(Sybase):最大的数据库软件公司之一IBM(DB2):世界上最大的DBMS供应商之一微软的SQL-Server以及Access:精简、相对便宜关系数据库公司也面临“面向对象DB”公司的挑战“对象-关系”系统,保留了核心的关系模型,同时允许类型扩展为面向对象的系统其他数据库产品:Ingres,Paradox,Foxbase,FoxPro,dBase,…DBMS的市场19开源数据库系统:MySQL:是网站上小型系统最流行的开源数据库–MySQL是LAMP的重要组成部分(Linux,Apache,MySQL,PHP/Perl/Python),一个快速增长的开源企业软件堆栈–PostgreSQL:是一个高度可扩展的,开放源码的对象关系型数据库管理系统。–最初由加州大学伯克利分校计算机系开发的“Postgres”–如何使用数据库系统:不同的用法需要不同层次的抽象(如,学生成绩管理系统)物理层:描述数据实际上是怎样存储的逻辑层:描述数据库中存储什么数据及这些数据间存在什么关系–如,typeinstructor=recordID:char(5);name:char(20);dept_name:char(20);salary:numeric(8,2);end;视图层:应用程序能够隐藏数据类型的详细信息。视图也可以出于安全目的隐藏数据信息(例如,员工的薪水)数据视图21数据抽象的三层结构:实例和模式22类似编程语言中的类型(types)和变量(variables)类型模式,变量实例模式(Schema):数据库的总体设计类似于程序中变量的类型信息物理模式:在物理层描述数据库的设计逻辑模式:在逻辑层描述数据库的设计实例(Instance):特定时刻存储在数据库中的信息的集合类似于程序中变量的值数据库系统的模式结构23模式123子模式3外模式2外模式1应用A应用C应用D应用B内模式外模式/模式映象模式/内模式映象数据库AbovethewaterBelowthewaterPhysicallevelLogicallevelViewlevel物理独立性和逻辑独立性24修改一层的结构定义不影响更高层的结构定义物理数据独立性:修改物理结构而不需要改变逻辑结构的能力应用程序依赖于逻辑结构应用程序独立于数据的结构和存储这是使用DBMS最重要的好处逻辑数据独立性:数据逻辑结构的改变不影响应用程序逻辑数据独立性一般难以实现,因为应用程序严重依赖于数据的逻辑结构数据模型25数据模型是一个概念工具的集合,用于描述:数据结构数据关系数据语义数据约束数据抽象的不同层次需要不同的数据模型来描述:实体-关系模型关系模型其他模型:–面向对象模型–半结构化数据模型(XML)–早期模型:网状模型和层次模型…数据库设计过程:需求分析概念设计逻辑设计……数据库设计步骤261.需求分析–需要什么样的数据、应用程序和业务2.概念数据库设计–使用E-R模型或类似的高层次数据模型,描述数据3.逻辑数据库设计–将概念设计转换为某个DBMS所支持的数据模型4.结构优化–关系标准化,检查冗余和相关的异常关系结构5.物理数据库设计–索引,集群和数据库调优6.创建并初始化数据库&安全设计–加载初始数据,测试–识别不同的用户及他们的角色数据库设计步骤27面向对象模型--非关系模型--层次模型网状模型现实世界概念模型(数据模型)逻辑模型物理模型信息世界E-R图关系模型(表结构)物理存储结构1968,IBMIMS树型结构(除根结点外,每个结点有且只有一个双亲结点)DBTG模型|CODASYL系统网状结构(一个结点可有多个双亲,允许多个结点无双亲)HoneywellIDS/2,HPimage机器世界实体–联系模型28E-R(Entity–Relationship)模型实体(对象)例如,客户、帐户、银行分支机构实体由属性描述联系:是几个实体之间的关联例如,帐号A-101是由客户Johnson拥有,联系设定存款关联客户的帐户E-R模型数据库设计中使用广泛ER模型通常将数据库设计转化为关系模型的设计最早由PeterChen提出EntityAttributeAttributeRelationship实体–联系模型29实体-联系模型示例:关系模型30将E-R图转换为关系模式在关系模型中,表格数据的示例:customer-namecustomer-idcustomer-streetcustomer-cityaccount-numberJohnsonSmithJohnsonJonesSmith192-83-7465019-28-3746192-83-7465321-12-3123019-28-3746AlmaNorthAlmaMainNorthPaloAltoRyePaloAltoHarrisonRyeA-101A-215A-201A-217A-201AttributesTuple元组Cus
本文标题:数据库第一章
链接地址:https://www.777doc.com/doc-3990038 .html