第一章 引论

前面一半听的是浙江大学陈岭老师的课,后一半听的是中国人名大学王珊等老师的课。

1 引论(浙江大学 陈岭)
1.数据库系统目的数据处理和管理是计算机应用最重要的领域,数据库系统知识对于计算机学者至关重要。
2.与数据库相关的图灵奖1998,James Gray——事务、锁、日志和二阶段提交1981,Edgar F. Codd——关系数据库1972,Charles W. Bachman——网状数据库
3.我们将从以下三方面学习数据库相关知识:1.数据库模型与设计从现实生活中抽象出数据模型,再将其转化为适合目标的DBMS(数据库管理系统)的形式:表、视图。2.编程:使用数据库查询、更新数据(SQL)3.数据库管理系统实现(不重点展开)数据库管理系统的工作机制及设计
4.数据可以访问方式1:利用数据库管理系统提供的交互工具访问数据库比如:MySQL WorkBench,SQL Server查询分析器,ORACLE Sql*Plus,Work Sheet方式2:利用开发工具设计界面、处理数据,调用ODBC等接口访问数据库比如:ASP,JSP,VC++,PHP,PowerBuilder,Delphi
5.数据库与数据库管理系统定义1.数据库(DB)的定义定义1:与企业相关的数据集合定义2:具有完整性和持久性的数据集合[R. Ramakrishnan, J. Gehrhe]定义3:长期(常常多年)存在的信息集合[UIIman]定义4:长期存储在计算机内,有组织的,可共享的数据集合[萨师煊,王珊]2.数据库管理系统(DBMS)的定义数据库+一组用于访问、更新和管理这些数据的程序
6.DBMS的主要特性1.数据访问的高效和可扩展性2.缩短应用开发时间3.数据独立性(物理数据独立性/逻辑数据独立性,低耦合)4.数据完整性和安全性5.并访问和鲁棒性(恢复)
7.DBMS的发展历史1.File processing system(1950s-1960s)2.Network and hierarchical DBMS(1960s-1970s)网状数据模型、层次数据模型--网状数据库、层次数据库(结构更加复杂、使用更困难,但是更利于人的理解,由于现在计算机性能的发展,此类数据库又开始进入人们的视野)3.Relational database ststems(RDBMS)关系模型(1970,E.F. Codd)RDBMS开始发展(1970s)RDBMS走向市场(1980s)RDBMS技术成熟(1990s)目前的主流数据库4.其他数据库1.面向对象数据库系统:Object-oriented database system(OODBMS)2.对象关系数据库系统:Object-relational database systems(ORDBMS)3.面向应用数据库系统:Application-oriented database systems面向具体类型的数据库空间、时间、多媒体、网络数据库4.数据仓库(Data Warehousing)、联机分析处理(Online Analytical Processing)、数据挖掘(Data Mining)
8.数据库系统与文件处理系统的区别1.文件处理系统由传统操作系统所支持只要安装了操作系统,就有文件处理系统2.在文件处理系统中存储组织信息的主要弊端数据冗余和不一致多种文件格式、信息重复存储数据访问困难需要编写一个新程序来完成每一个新任务数据孤立多文件多格式,检索、共享数据困难完整性问题新增的约束和更改现有的约束很困难原子性问题再进行部分数据更新时,一旦发生故障,可能导致数据库处于不一致的状态例如:银行转账,如果使用文件处理系统,要在两个文件中修改数据,如果发生故障,只在一个文件中修改了数据,就会导致数据库不一致但是在数据库管理系统中,可以定义一个事务,保证这件事情的原子性并发访问异常为了提高系统的总体性能,许多系统允许并发访问不受控制的并发访问可能导致数据不一致文件处理系统可以支持同时访问,但是不支持同时修改安全性问题文件处理系统的安全权限设置不灵活**数据库系统位以上所有问题提供了解决方案。
9.DBMS市场1.关系数据库管理系统的公司甲骨文(Oracle)、SAP(Sybase):最大的数据库管理系统的公司IBM(DB2):世界上最大的DBMS供应商之一微软的SQL-Server以及Access:精简、相对便宜关系数据库公司也面临“面向对象DB”公司的挑战“对象-关系”系统,保留了核心的关系模型,同时允许类型扩展为面向对象的系统。2.其他数据库产品(百花齐放的年代,现在不存在):Ingres、Paradox、Foxbase、FoxPro、dBase,...3.开源数据库系统MySQL:是网站上小型系统最流行的开源数据库MySQL是LAMP(Linux,Apache,MySQL,PHP/Perl/Python)的重要组成部分,一个快速增长的开源企业软件栈堆http://www.mysql.comPostgreSQL:是一个高度可扩展的,开放源代码的对象关系数据库管理系统。最初由加州大学伯克利分销计算机系开发的“Postgres”http://www.postgresql.org
10.数据抽象如何使用数据库系统:不同的用法需要不用层次的抽象和建模三层结构:物理层:描述数据实际上怎样存储的逻辑层(最主要):描述数据库中存储什么数据以及这些数据间存在什么关系(最主要)视图层:应用程序能够隐藏数据类型的详细信息。视图也可以处于安全的目的隐藏数据信息。
11.实例和模式类似编程语言中的类型(types)和变量(variable)类型<-->模式(数据库中),变量<-->实例、模式(Schema):数据库的总体设计类似于程序中变量的类型信息物理模式:在物理层描述数据库的设计逻辑模式:在逻辑层描述数据库的设计实例(Instance):特定时刻存储在数据库中的信息的集合类似与程序中变量的值数据库的三级模式结构示意图

12.物理独立性和逻辑独立性修改一层的结构定义不影响更高层的结构定义物理数据独立性:修改物理结构而不需要改变逻辑结构的能力应用程序依赖于逻辑结构应用程序独立于数据的结构和存储这是使用DBMS最重要的好处逻辑数据独立性:数据逻辑结构的改变不影响应用程序逻辑数据独立性一般难以实现,因为应用程序严重依赖于数据的逻辑结构
13.数据模型数据模型是一个概念工具的集合,用于描述:数据结构数据关系数据语义数据约束数据抽象的不同层次需要不同的数据模型来描述实体-联系模型(对应数据库设计过程的:概念设计)关系模型(对应数据库设计过程的:逻辑设计)其他模型面向对象模型半结构化数据模型(XML)早期模型:网状模型和层次模型
14.数据库设计步骤1.需求分析需要什么样的数据、应用程序和业务2.概念数据库设计使用E-R模式或类似高层次数据模型,描述数据3.逻辑数据库设计将概念设计转换为某个DBMS所支持的数据模型4.结构优化关系标准化,检查冗余和相关的异常关系结构5.物理数据库设计索引,集群和数据库调优6.创建并初始化数据库&安全设计加载初始数据,测试识别不同的用户以及他们的角色示意图

15.实体-联系模型E-R(Entity-Relationship)模型实体(对象)例如:客户、账户、银行分支机构实体由属性描述联系:是几个实体之间的关联例如:账号A-101是由客户John拥有,联系设定存款关联客户的账户E-R模型在数据库设计中使用广泛E-R模型通常将数据库设计转化为关系模型的设计E-R模型很容易转化为关系模型最早由Peter Chen(华裔)提出实体用矩形来表示,实体对应的属性由椭圆表示,联系用来表示E-R模型示例

16.数据库语言数据库语言:Data Definition Language(DDL,数据定义语言)Data Manipulation Language(DML,数据操纵语言)Data Control Language(DCL,数据控制语言)1.数据定义语言(DDL)指定一个数据库模式作为一组关系模式的定义指定存储结构,访问方法和一致性约束DDL语言经过编译,得到一组存储在一个特殊文件中的表,特殊文件即数据字典(data dictionary),其中包含元数据(matadata)元数据包括:数据库模式,数据存储结构,访问方法和约束、统计信息、授权例如:CREATE TABLE account(account_number char(10),balance integer); //该语句创建了表account2.数据操作语言(DML)从数据库中检索数据插入/删除/更新数据即:进行增删改查操作,其中查最复杂,其他操作都建立在查的操作之上DML也称为查询语言有两类基本的数据操作语言1.过程化DML:要求用户指定需要什么数据,以及如何获取这些数据(C,java,Pascal,...)2.声明式DML:也称为非过程化DML,只要求用户指定需要什么数据,而不致命如何获取这些数据(SQL,Prolog)3.数据控制语言(DCL)4.SQLSQL=DDL+DML+DCLSQL已被广泛使用SQL(Structure Query Language,结构化查询语言)来源于1975年IBM System R中的“SEQUEL”(Structure English Query Language)语言使用示例1.根据用户的customer-id(192-83-7465)找到用户姓名(customer-name)SELECT customer-nameFROM customerWHERE customer-id='192-83-7465'2.找到用户(192-83-7465)持有的所有账户的余额SELECT account.balanceFROM depositor,accountWHERE depositor.customer-id='192-83-7465' and depositor.account-number = account.account-numberSQL是最广泛的查询语言。有三种用法;1.直接在交互环境中使用SQL Server:查询分析器Oracle:SQL*Plus、Work SheetMySQL:命令行客户端2.在宿主语言中,通过ODBC(开放式数据库连接)、JDBC使用3.在宿主语言中使用嵌入式SQL数据库的使用示意图

17.数据库用户根据所期望的与数据库系统交互方式的不同,数据库系统的用户可以分为四类:1.无经验用户(普通用户):他们通过激活实现已经写好的应用程序同系统进行交互比如:人们通过网络交互、银行出纳员、文员访问数据库2.应用程序员:通过SQL调用与系统进行交互3.富有经验的用户:用数据库查询语言或数据分析软件等工具来表达他们的要求例如:联机分析处理(OLAP)、数据挖掘4.特殊用户:编写专门的,不适合于传统数据处理框架的数据库应用。例如:计算机辅助设计系统(CAD),知识库系统(KDB),专家系统(ES)
18.数据库管理员(DBA,Database Administrator)对数据库系统进行集中控制的特殊用户DBA拥有管理数据库的最高权限DBA协调数据库系统的所有活动DBA控制所有用户访问数据库的权限DBA对企业的信息资源和需求有很好的理解数据库管理员的工作1.模式定义2.存储结构与存取方法修改3.数据访问授权4.日常维护
19.事务管理并发的使用很重要,但是会带来一系列问题事务:数据库应用中完成单一逻辑功能的操作集合事务的要求:原子性atomicity一致性consistence隔离性isolation持久性durability事务管理组件:确保系统在出现故障或事务失败的情况下,数据库能保持一致性并发控制管理器控制并发事务之间的交互
20.数据库体系结构1.存储管理器在底层数据存储与应用程序及查询之间,提供接口对数据库中的数据进行高效存储,检索与更新包括1.事务管理2.授权和完整性管理3.文件管理管理文件系统与数据系统,数据字典,索引文件之间的交互4.缓存管理2.查询处理器接收数据库语言输入,经过解析、优化、执行,输出相应结果给用户包括1.解析和翻译2.优化3.执行查询处理优化执行给定查询操作的方法:等价表达式每个操作有不同的实现算法不同执行方法之间的开销差可能是巨大的需要预估操作的开销关键取决于数据库中维持信息的统计信息需要预估中间结果的统计信息,这些统计信息将用于复杂表达式的开销数据库体系结构示意图

    SQL Server体系结构

21.应用程序体系结构1.两层体系结构像ODBC、JDBC这样的应用程序接口标准被用于进行客户端和服务器的交互2.三层体系结构如基于Web的应用程序及采用“中间件”构建的应用程序3.示意图

22.总结1.数据库管理系统用于维护和查询大量的数据集2.拥有故障恢复、并发访问、快速应用开发以及数据集成和数据安全的优点3.抽象使得数据具有独立性4.E-R模型,关系模型5.DDL、DML、SQL6.数据库管理员的职责7.DBS经典体系架构8.DBMS R&D(research and development)是计算机科学领域一个最广泛,令人兴奋的领域
1.3 数据库系统的结构(中国人民大学 王珊等)
1.从数据库应用开发人员的角度看数据库系统采用三级模式结构,是数据库系统内部的系统结构
2.从数据库最终用户角度看数据库系统的结构有1.单用户结构2.主从式结构3.分布式结构4.客户-服务器5.浏览器-应用服务器/数据库服务器1.3.1数据库系统模式的概念1.模式(Schema)是对数据库逻辑结构和特征的描述是对型的描述,不涉及具体值模式是相对稳定的2.实例(Instance)数据库某一时刻的状态--模式的一个具体值同一个模式可以有很多实例
1.3.2数据库系统的三级模式结构

    1.模式(Schema)1.模式(也称逻辑模式)数据库中所有数据的逻辑结构和特征描述所有用户的公共数据视图2.一般,某个应用的数据库有一个模式3.模式是数据库系统模式结构的中心与数据的物理存储细节和硬件环境无关与具体的应用程序、开发工具及高级程序设计语言无关4.定义模式DDL定义数据的逻辑结构,以某种数据模型为基础定义数据记录由哪些数据项构成,数据项的名字、类型、取值范围定义数据之间的联系定义与数据有关的安全性、完整性要求2.外模式(External Schema)1.外模式(也称子模式或用户模式)数据库用户使用的局部数据的逻辑结构和特征描述数据库用户的数据视图,是与某一应用有关的数据的逻辑表示2.外模式与模式的关系外模式通常是模式的子集、一个模式可以有多个外模式反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求对模式中某一数据,在不同的外模式中结构、类型、长度、保密级别等都可以不同3.外模式与应用的关系一个外模式可以为多个应用系统所使用,一个应用程序只能使用一个外模式4.外模式的用途每个用户只能看见和访问所对应的外模式中的数据,简化用户视图保证数据库安全性的一个有力措施3.内模式(Internal Schema)1.内模式(也称存储模式)是数据物理结构和存储方式的描述是数据在数据库内部的表示方法记录的存储方式例如,顺序存储,对存储,按hash方法存储等索引的组织方式(B+树,Bitmap,Hash)数据是否压缩存储数据是否加密数据存储记录结构的规定——如定长/变长,记录是否可以跨页存放2.一个数据库只有一个外模式
1.3.3数据库的二级映像功能与数据独立性三级模式是对数据的三个抽象级别数据库管理系统内部提供二级映像1.外模式/模式映像2.模式/内模式映像三个抽象层次的联系和转换1.外模式/模式映像1.对每一个外模式,有一个外模式/模式映像定义外模式与模式之间的对应关系映像定义通常包含在各外模式的描述中2.保证数据的逻辑独立性 当模式改变时,数据库管理员对外模式/模式映像作相应改变,使外模式保持不变应用程序使根据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性2.模式/内模式映像1.模式/内模式映像定义了数据全局逻辑结构与存储结构之间的对应关系。如,说明某个逻辑记录对应何种存储结构2.数据库中模式/内模式映像是唯一的该映像定义通常包含在模式描述中3.保证数据的物理独立性当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映像,使模式保持不变模式不变,则应用程序不变。保证了数据与程序的物理独立性,简称数据的物理独立性。
保证了应用程序的稳定性除非应用需求本身发生变化,否则应用程序一般不需要修改
从程序为中心——发展为以数据为中心具有了数据与程序之间的独立性,使得数据的定义与描述可以从应用程序中分离出去
数据的存取由数据库管理系统管理简化了应用程序的编制大大减少了应用程序的维护和修改

1.4 数据库系统的组成

数据库
数据库管理系统(及开发工具)
应用程序
数据库管理员1.硬件平台及数据库数据库系统对硬件资源的要求1.足够大的内存2.足够大的磁盘或磁盘阵列等外部设备3.较高的通道能力,提高数据传输率
2.软件数据库管理系统支持数据库管理系统运行的操作系统与数据库接口的高级语言及其编译器以数据库管理系统为核心的应用开发工具为特定应用环境开发的数据库应用系统
3.人员1.数据库管理员1.参与确定数据库中的信息内容和结构2.参与数据库的存储结构和存取策略的设计3.参与确定数据安全性要求和完整性约束条件4.监控数据库的使用和运行1.周期性转储数据库数据文件日志文件2.系统故障恢复3.介质故障恢复4.监事审计文件5.数据库的改进和重组1.性能监控和调优2.定期对数据库进行重组织,以提高系统的性能3.需求增加和改变时,数据库需要重构造2.系统分析员和数据库设计人员系统分析员负责应用系统的需求分析和规范说明与用户及数据库管理员结合,确定系统的软硬件配置参与数据库管理系统的概要设计数据库设计人员参与用户需求调查和系统分析确定数据库中的数据设计数据库各级模式3.应用程序员设计和编写应用系统的程序模块进行调试和安装4.最终用户他们通过应用系统的用户接口使用数据库1.偶然用户不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息企业或组织机构的中高级管理人员2.简单用户主要工作是查询和更新数据库银行的职员、机票预定人员、旅馆总台服务员3.复杂用户工程师、科学家、经济学家、科技工作者直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的应用程序接口编织自己的程序应用**不同的人员涉及不同的数据抽象级别,具有不同的数据视图各种人员的数据视图

第一章小结
1.重点牢记高年模型的基本概念;数据模型的3个组成要素(数据结构、数据操作、数据的完整性约束条件)数据库系统三级模式和两层映像的体系结构数据库系统的逻辑独立性和物理独立性
2.难点介绍了大量的基本概念数据模型及数据库系统的体系结构也会本章的难点

第一章 引论(数据库系统原理)相关推荐

  1. 编译原理-第一章-引论

    编译原理 第一章 引论 1,概念简介 (1) 编译器:一个编译器就是一个程序,它可以阅读以某一种语言(源语言)编写的程序,并把该程序翻译成为一个等价的.用另一种语言(目标语言)编写的程序. 2,一个编 ...

  2. c语言编程指法输入,C语言 课件 第一章引论.pdf

    C语言 课件 第一章引论 我很高兴为同学们上C语言课 我希望同学们有 良好的课堂纪律,给老师一个好心情: 让我先谢谢同学们的良好合作: 师生共努力,教好学好C语言; 学会编程更有利于数学的应用; 学习 ...

  3. 软件测试方法和技术第一章——引论

    第一章--引论 文章目录 第一章--引论 引论 1.1软件测试的必要性 1.2 为什么要进行软件测试? 1.3 什么是软件测试? 1.3.1 软件测试学科的形成 1.3.2 正反两面的争辩 1.4 测 ...

  4. PMBOK(第六版) 学习笔记 ——《第一章 引论》

    系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...

  5. PMP 考点 第一章 引论

    第一章 引论 章节 序号 知识点 考点级别 备注 第一章 引论 1.1 项目的定义和特征 1 1.2 运营和项目的区别 1 1.3 项目的意义.启动背景和EMP 1 1.4 项目管理定义.项目管理的价 ...

  6. 【再读第六版PMBOK】第一章 引论

    [再读第六版PMBOK]第一章 引论 1)项目 1.1)项目的两大特点 1.2)项目驱动组织变更 1.3)项目的商业价值 1.4)项目启动背景 2)项目管理的重要性 3)项目,项目集,项目组合以及运营 ...

  7. PMBOK(第六版) PMP笔记——《一》第一章 引论

    本文已同步至 GitHub/Gitee/公众号,感兴趣的同学帮忙点波关注~ 第一章  引论 1."项目管理知识体系":应该包含所有行业.应用领域项目管理的具体知识.技能.方法和实践 ...

  8. 龙书《编译原理》摘要 第一章 引论

    文章目录 0. 前言 1. 语言处理器 2. 编译器基本结构 3. 一些常用术语 0. 前言 最近开始研究TVM源码,总感觉自己抓不住主线. 说是实现了新语言Relay,里面那些奇怪的东西是什么?是类 ...

  9. 【编译原理】第一章 引论

    一,语言处理器 1)一个集成的软件开发环境,其中包括很多种类的语言处理器,比如编译器.解释器.汇编器.连接器.加载器.调试器以及程序概要提取工具. 2)编译器:把源程序的每一条语句都编译成机器语言,并 ...

最新文章

  1. 用C语言解“逆序的三位数”问题
  2. Cannot identify version of git executable: no response
  3. Oracle数据库的语句级读一致性
  4. curl get请求_Linux curl 常用示例你都 Get 了吗?| CSDN 博文精选
  5. 对 Java 集合的巧妙利用
  6. [JavaScript]只需一行代码,轻松搞定快捷留言功能
  7. 十八般武艺玩转GaussDB(DWS)性能调优(三):好味道表定义
  8. oracle备份恢复学习
  9. oracle报27040错误,【oracle案例】创建表空间时遇到 ORA-01119,0RA-27040,0SD-04002
  10. cad插件_【CAD插件】家具绘图神器
  11. java中求平方函数和开方函数
  12. 基于服务的多源异构数据整合平台解决方案
  13. layout 工程师如何提升自己? 2020-3-27
  14. 第一颗国产 TTL 转 HDMI 1.4,视频信号转换芯片LT8618EXB
  15. linux批量修改文件时间
  16. 嵌入式裸机NandFlash和 SD/iNand学习笔记
  17. H3C S7500E系列高端多业务路由交换机
  18. 手机群控系统(补充篇)
  19. WIN10系统内存占用80%以上的解决方案,导致电脑一卡一卡的
  20. 软考-嵌入式系统设计师:[多媒体技术:笔记(四)]

热门文章

  1. BZOJ2226 基础数论
  2. 技术分享 | MOCAP无人机集群
  3. 自制 COCO api 直接读取类 COCO 的标注数据的压缩文件
  4. jsonp跨域的原理以及优缺点
  5. 12306模拟登陆Python3.x+cookiejar+request
  6. ISO20000的认证范围
  7. ACM G - 7 深度优先搜索(DFS)
  8. 如何让文件加密更安全,迅软DSE维护电脑数据安全刻不容缓
  9. I型三电平 28335控制器 有源电力滤波器APF程序源代码
  10. 机器人控制的基本方法