数据库概论笔记第一章

数据库概述

一、数据库基本概念

1.数据库系统

数据库(DB)通常包含企业信息的集合。(存在于硬盘上)

区分DB:业务是否相关

数据库管理系统(DBMS):存储和检索数据(要求方便和高效)(MySQL)

数据库系统(DBS):引入数据库后整个系统(包含DB、DBMS

DBS 包括 数据库本身的软件(数据库管理系统DBMS、操作系统OS、应用系统)、硬件、数据库管理员

2.计算机硬件

!

OS指操作系统的文件系统

3.使用数据库系统的目的

1.使用文件系统的缺点

​ a. 数据的冗余和不一致(语言不同导致无法编译)

​ b.数据访问困难(难以从数据中筛选有用的)

​ c.数据孤立(格式不同)

​ d.完整性问题(难以添加约束)

​ e.原子性问题(难以在更改过程中进行复原)

​ f.多个用户的并发访存(多个用户同时 更改数据)

​ g.安全性问题

4.数据视图

数据库系统为用户提供数据的抽象视图,隐藏了数据存储和维护的某些细节

屏蔽复杂性的三个层次:

1.物理层

​ 描述数据是怎么被存储的

2.逻辑层

​ 描述数据库中数据是怎么存储的和数据之间的关系

​ 是描述整个数据库是怎么存储数据的

3.视图层

​ 描述一部分数据库中的数据

!

Secondary Memory:二级存储器(硬盘)

5.模式schema和实例Instance

数据库的模式:数据库的总体设计

模式分为三种模式:物理模式(内模式)(1个)、逻辑模式(1个)、子模式(外模式)(里面可以有多个视图),分别对应三种层次

物理数据独立性:程序员通过逻辑模式来构造应用程序,应用程序不依赖于物理模式,即使物理模式改变,通过改变物理模式和逻辑模式之间的映射来保证逻辑模式不变

逻辑数据独立性:即使逻辑模式改变,也可以保证子模式不变

数据库的实例:特定时刻储存在数据库中信息的集合

二、数据模型

用什么样的结构组织数据

1.关系模型(Relational Model)

关系数据库基于关系数据模型,使用表来表示数据和数据间的联系。

表就是行的集合,也就是记录的集合,每个记录有多个分量,分量就叫做属性,每一列就对应属性。

每一个表就是一个关系,基于关系构建的就是关系数据模型

2.实体联系模型Entity-relationship data model(E-R模型)

数据库设计使用的模型。基于现实世界认识构成。

实体Entity:现实世界中可区别于其他对象的事情或物体。如人、梦、账户。

实体的特征称为属性Attribute,如人所在街道。

联系Relationship:实体之间的联系

实体集Entity Set:具有相同属性所有实体的集合,如某所大学的所有教师。

联系集Relationship set:相同种类所有联系的集合

图形化表示

!

矩形:实体集 椭圆:属性 菱形:实体间的联系

3.基于对象的数据模型Object-based data model

面向对象的数据模型(E-R模型扩展)

4.半结构化数据模型Semistructured data model

XML

5.其他模型

网状数据模型Network data model、层次数据模型Hierarchical data model

三、数据库语言

语言分类:过程性语言procedural(指出需要的数据和怎么得到数据)C、java、非过程性语言(声明性语言)declarative(指出需要什么数据)SQL语言

1.SQL语言(基于关系模型构建的语言):结构化查询语言,纯pure数据库语言

!

在customer表中查询id为。。的名字

a.数据库定义语言DDL:数据库从无到有或从有到无,建立数据库、表

!

把表的定义存储于数据字典里。数据字典以的形式存在,包含的数据称为元数据metadata。

元数据:关于数据的数据,包含数据库的模式database schema、完整性约束Integrity constraints、权限数据Authorization。

b.数据操纵语言DML(查询语言):数据库查询更新,可以使用现有的数据库

访问或者操纵按照某种适当数据模型组织起来的数据。

操作类型:检索数据库中的信息、插入新的信息、删除、修改信息。(增删改查)(大部分是查询操作。)

四、数据库程序语言

将SQL与其他高级语言配合时其他语言叫数组语言

1.在应用程序中访问数据库方法

1.扩展数组语言,嵌入SQL语句(特殊字符作为SQL开始),整个程序通过SQL预编译器转变为数组语言过程调用,然后数组语言再解释执行.

2.提供应用程序接口,如ODBC(微软),JDBC(Java)。

2.关系Relational数据库

基于关系模型构建。

数据和数据之间的联系通过表的集合来表示。

关系数据库包含DML和DDL(一般就是SQL语言)。

五、数据库设计(最重要逻辑设计、物理设计)

1.逻辑设计Logical design

找到最优表的模式的集合。(业务层面:需要记录哪些属性,计算机科学方面:使用什么模式、属性如何分布在模式里)

2.物理设计

决定数据库物理布局,包括文件组织形式、内部的存储结构等。

六、数据库用户

1.数据库普通用户

分为应用程序员Application programmers(通过数据操作语言调用)、老练用户Sophisticated users(用数据库查询语言研究数据)、专门用户Specialized users(编写数据库应用)、无经验用户Naive users(使用写好的应用程序)

2.数据库管理员DBA

职责

1.模式定义(数据库初始表的定义)

2.存储结构和存取方法定义

3.数据访问授权

4.定义完整性约束(条件合不合理)

5.与用户联络

6.监控性能并根据需求进行变更

七、数据库管理系统DBMS的功能

1.存储管理

数据库存储于硬盘,使用操作系统、文件系统。

存储管理器storage manager提供数据库的数据和应用程序之间的接口,将各种DML查询操作翻译为底层的文件系统命令。

1.存储管理器包括
a.权限级完整性管理器manager

数据是否满足完整性约束和检查用户的权限。

b.事务Transaction管理器

保证及时系统故障,数据库也可以保证正确

保证并发的事务执行不发生冲突

数据库应用中完成单一逻辑功能的操作集合,确保数据库处于一致性状态。

事务管理器确保意外情况数据库正常。

并发控制管理器就是控制事件并发情况。

c.文件管理器

分配磁盘存储空间

管理磁盘存储信息的数据结构

d.缓冲区管理器

将数据从磁盘取到内存中

决定哪些数据应该被缓存到磁盘中

2.存储管理器部件应该实现的数据结构
a.数据文件data file

存储数据库的数据

b.数据字典data dictionary

存储数据库的元数据和数据库的模式

data about data

c.索引indices

提供数据库的快速访问

对一列数据进行排序,排序的那个属性后面还有一个指针,指向原数据位置。

2.查询Query处理(可以在视图层次工作)

实现:数据抽象、非过程性语言(SQL)

查询处理器Query processor将SQL的语句翻译成物理层的操作序列

1.组成
1.DDL解释器interpreter

解释DDL语句,并将定义记录在字典中

2.DML编译器compiler and organizer

将查询语言的DML语句翻译成执行方案(低级指令),查询的优化

3.查询执行引擎Query evaluation engine

执行DML语句生成的执行计划

2.执行给定查询的其他方法(替代查询):

1.计算等价的表达式

2.采用不同的算法

评估中间统计结果的信息来计算表达式的代价,来找到最小的代价

计算代价取决于数据库必须维护的统计信息,通过统计信息statistical data(相当于人类的经验)来计算代价

3.查询处理步骤

1.将查询语句解析并翻译parsing and translation成查询处理器可以理解的关系代数表达式

2.系统对查询进行优化,结合统计信息尽可能选出最小查询执行代价的查询执行计划 optimization

3.查询执行引擎查询并执行evaluation

!

3.整体功能介绍

通过代码想数据发出查询请求:code -> engine

DML编译器: 数据字典查询权限信息,统计信息进行优化

文件管理和缓冲管理:访问数据和索引(也相当于一种数据)

!

4.系统的体系结构Architecture

取决于数据库运行的计算机系统。

1.集中式的Centralized
2.客户-服务器式的Client-server
3.并行Parallel

针对并行的计算体系设计的

4.分布式Distributed

地理上分离的多台计算机的

猜你喜欢

转载自blog.csdn.net/caibohan/article/details/115430592