一:数据库管理系统概述:

应用广泛,银行/航空/学校/电子商务等等都需要使用数据库,

研究方面:1972网状数据库的研究,1981关系数据库,1998事务/锁/日志和二阶段提交分别获得图灵奖。

从以下三个层面学习数据库:

(1)数据库模型与设计

  从现实生活中抽象出数据模型,再将其转换为适合目标DBMS的形式:表/试图。

(2)使用数据库

  查询,更新数据SQL实现。

(3)数据库管理系统实现

  数据库管理系统的工作机制及设计

(1)数据库模型与设计

数据库 archived 数据库原理及应用_数据库系统

上述表存在问题,会有数据冗余。采用多张表设计会更好。

二:数据库定义

数据库(DB):长期存储在计算机内,有组织的,可共享的数据集合。数据具有完整性和持久性。

数据库管理系统:数据库+一组用以访问/更新/管理这些数据的程序

数据库管理系统特性:(1)数据访问的高效和可扩展性(数据库的内部有很多的机制,索引/查询优化的机制来保证数据访问的高效性。)(2)缩短应用开发时间(3)数据独立性(物理数据独立性/逻辑数据独立性。独立性带来的好处是物理层/逻辑层发生变化,应用层不必变化,可以减少不必要迁移的工作量。)(4)数据完整性和安全性(5)并发访问和鲁棒性(恢复)

三:DBMS发展历史

(1)纯文件系统(1950-1960)

(2)网状数据模型/层次数据模型 - 网状数据库/层次数据库(结构复杂,使用困难。但是随着计算机的发展,现在也有发展,如图数据库)

(3)关系数据库系统(1970开始发展,1980走向市场,1990技术成熟)

(4)面向对象数据库系统(确定就是上层和下层的映射困难)

(5)对象关系数据库系统(postgresql就是对象关系数据库系统,上层是面向对象的思想,下层保留原本的关系数据库,开发快,上下层映射不存在问题)

(6)面向应用数据库系统(空间/时间/多媒体/网络数据库)

(7) 现在的研究重点是,数据仓库/联机分析处理/数据挖掘

 

四:数据库系统和文件系统的比较

文件系统优点:(1)操作系统自带文件系统不需要安装

文件系统相对数据库系统缺点:(1)数据冗余/不一致(一份数据多种文件格式存储)(2)数据访问困难(需要写程序读写文件)(3)数据孤立,多文件,多格式,检索共享数据困难。(4)存在完整性问题,原子性问题,并发访问异常问题,安全性问题(就是文件的访问权限设置只能是文件级别的,粒度大,而数据库系统可以是小粒度的)

 

五:数据抽象

不同的用法需要不同层次的抽象。

物理层:描述数据实际上是怎样存储的

逻辑层:描述数据库中存储什么数据以及这些数据间存在什么关系。

视图层:应用程序能够隐藏数据类型的详细信息,也可以出于安全目的隐藏数据信息。

三层结构如下图表示:

数据库 archived 数据库原理及应用_数据_02

 

模式:

物理模式(内模式):在物理层描述数据库的设计

逻辑模式(模式):在逻辑层描述数据库的设计

 

 视图模式(外模式):在试图层描述数据库的设计

 

数据库 archived 数据库原理及应用_数据库系统_03

 

内模式对于我们是不可见的,我们一般更改的是模式和外模式。内模式是数据库自身决定的。

独立性:修改一层的结构定义不影响更高层的结构定义。

物理独立性:修改物理结构而不需要改变逻辑结构的能力。应用程序独立于数据的结构和存储

逻辑数据独立性:数据逻辑结构的改变不影响应用程序。逻辑数据独立性一般难以实现,因为应用程序严重依赖于数据的逻辑结构。