第一章引论(数据库系统原理)

阅读: 评论:0

第⼀章引论(数据系统原理)
第⼀章引论
前⾯⼀半听的是浙江⼤学陈岭⽼师的课,后⼀半听的是中国⼈名⼤学王珊等⽼师的课。
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.在⽂件处理系统中存储组织信息的主要弊端
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)的重要组成部分,
⼀个快速增长的开源企业软件栈堆
PostgreSQL:是⼀个⾼度可扩展的,开放源代码的对象关系数据库管理系统。
最初由加州⼤学伯克利分销计算机系开发的“Postgres”
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模型⽰例
数据库语⾔:
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); //该语句创建了表account
2.数据操作语⾔(DML)
从数据库中检索数据
插⼊/删除/更新数据
即:进⾏增删改查操作,其中查最复杂,其他操作都建⽴在查的操作之上
DML也称为查询语⾔
有两类基本的数据操作语⾔
1.过程化DML:要求⽤户指定需要什么数据,以及如何获取这些数据(C,java,Pascal,...)
2.声明式DML:也称为⾮过程化DML,只要求⽤户指定需要什么数据,⽽不致命如何获取这些数据(SQL,Prolog)
3.数据控制语⾔(DCL)
4.SQL
SQL=DDL+DML+DCL
SQL已被⼴泛使⽤
SQL(Structure Query Language,结构化查询语⾔)
来源于1975年IBM System R中的“SEQUEL”(Structure English Query Language)
语⾔使⽤⽰例
1.根据⽤户的customer-id(192-83-7465)到⽤户姓名(customer-name)
SELECT customer-name
FROM customer
WHERE customer-id='192-83-7465'
2.到⽤户(192-83-7465)持有的所有账户的余额
SELECT account.balance
FROM depositor,account
WHERE depositor.customer-id='192-83-7465' and depositor.account-number = account.account-number
SQL是最⼴泛的查询语⾔。有三种⽤法;
1.直接在交互环境中使⽤
SQL Server:查询分析器
Oracle:SQL*Plus、Work Sheet
MySQL:命令⾏客户端
2.在宿主语⾔中,通过ODBC(开放式数据库连接)、JDBC使⽤
3.在宿主语⾔中使⽤嵌⼊式SQL
数据库的使⽤⽰意图
根据所期望的与数据库系统交互⽅式的不同,数据库系统的⽤户可以分为四类:
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体系结构

本文发布于:2023-05-06 08:42:46,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/89952.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   数据   系统   设计
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图