【数据库】introduction

167 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情

四个基本概念

数据(Data)

描述事物的符号记录,数据与其语义是不可分的,但也可能有多种数据解释和语义

数据库(Database)

数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享大量数据集合

功能:人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步加工处理,进一步抽取有用信息

数据库的特征:

  • 数据按一定的数据模型组织、描述和储存
  • 可为各种用户共享
  • 冗余度较小
  • 数据独立性较高
  • 易扩展

数据库管理系统(DBMS)

数据库管理系统(DBMS) 位于用户与操作系统之间的一层数据管理软件。

用途:科学地组织和存储数据、高效地获取和维护数据

主要功能:

  • 数据定义功能
    • 提供数据定义语言(DDL)
    • 定义数据库中的数据对象
  • 数据操纵功能
    • 提供数据操纵语言(DML)
    • 操纵数据实现对数据库的基本操作
    • (查询、插入、删除和修改)
  • 数据库的运行管理
    • 保证数据的安全性、完整性、
    • 多用户对数据的并发使用
    • 发生故障后的系统恢复
  • 数据库的建立和维护功能(实用程序)
    • 数据库数据批量装载
    • 数据库转储
    • 介质故障恢复
    • 数据库的重组织
    • 性能监视等

数据库系统(DBS)

数据库系统(DBS)指在计算机系统中引入数据库后的系统构成,在不引起混淆的情况下常常把数据库系统简称为数据库

数据库系统的构成:

  • 数据库
  • 数据库管理系统(及其开发工具)
  • 应用系统
  • 数据库管理员

数据视图

抽象层次

  • View level 视图层:应用程序隐藏数据类型的详细信息。 出于安全目的,视图还可以隐藏信息(如员工的工资)。
  • Logical level 逻辑层:描述存储在数据库中的数据,以及数据之间的关系
  • Physical level 物理层:描述如何存储记录(例如,客户)。

Instances and Schemas 实例和模式

实例 – 数据库在特定时间点的实际内容 例:

image.png

  • 物理数据独立性 – 在不更改逻辑架构的情况下修改物理架构的能力
  • 应用程序依赖于逻辑架构
  • 通常,应明确定义各个级别和组件之间的接口,以便某些部分的变化不会严重影响其他部分。

模式 – 数据库的逻辑结构

  • 示例:customer(customer_id、customer_name、customer_street、customer_city)
  • 物理模式:物理层的数据库设计
  • 逻辑模式:逻辑层的数据库设计

数据模型

用于描述的工具集合: 数据、 数据关系、 数据语义、 数据约束

  • 实体关系Entity-Relationship ER数据模型(主要用于数据库设计) :把某些事务建模为实体和关系的集合
  • 关系模型 :多个实体之间的关联
  • 基于对象的数据模型(面向对象和对象关系)
  • 半结构化数据模型 (XML)
  • 其他旧模型: 网络模型 分层模型

数据库语言

DDL Data Definition Language

  • 用于定义数据库架构的规范表示法(Specification notation)
  • DDL 编译器生成存储在数据字典中的一组表模板
  • 数据字典包含元数据metadata(即关于数据的数据信息):
    • 数据库架构
    • 完整性约束
      • 主键(唯一标识教师的 ID)
      • 参照完整性Referential integrity(SQL 中的参照约束)
        • 例如,任何教师元组中dept_name值都必须出现在部门关系中
    • 授权

DML Data Manipulation Language

  • 用于访问和操作按相应数据模型组织的数据的语言
    • DML 也称为查询语言
  • 两类语言
    • 过程 Procedural – 用户指定需要哪些数据以及如何获取这些数据
    • 声明性(非过程)Declarative (nonprocedural) – 用户指定需要哪些数据,而不指定如何获取这些数据
  • SQL是使用最广泛的非过程查询语言

数据库设计

设计数据库一般结构的过程:

  • 逻辑设计 – 确定数据库架构。数据库设计要求我们找到关系模式的“良好”集合。
    • 业务决策 – 我们应该在数据库中记录哪些属性?
    • 计算机科学决策 - 我们应该拥有什么样的关系模式,以及属性应该如何在各种关系模式之间分布?
  • 物理设计 – 确定数据库的物理布局

Data Storage and Querying

存储管理器是一个程序模块,它提供存储在数据库中的低级数据与提交到系统的应用程序和查询之间的接口。

存储管理器负责以下任务: 与文件管理器的交互 高效存储、检索和更新数据

相关问题: 存储访问 文件组织 索引和散列

查询过程:

  1. Parsing and translation
  2. Optimization
  3. Evaluation

image.png

Transaction Management

事务是在数据库应用程序中执行单个逻辑功能的操作的集合

事务管理组件 Transaction-management component确保数据库在系统故障(例如,电源故障和操作系统崩溃)和事务故障时保持一致(正确)状态。

并发控制管理器 Concurrency-control manager 控制并发事务之间的交互,以确保数据库的一致性。

Database Architecture

数据库系统的架构受运行数据库的基础计算机系统的影响很大: 集中 客户端-服务器 并行(多处理器) 分散式

  • Centralized
  • Client-server
  • Parallel (multi-processor)
  • Distributed

Database Users

用户通过他们希望与系统交互的方式进行区分:

  • 应用程序程序员Application programmers – 通过 DML 调用与系统交互
  • 老练的用户 Sophisticated users – 以数据库查询语言请求
  • 专门的用户 Specialized users – 编写不适合传统数据处理框架的专用数据库应用程序
  • 无经验的用户 Naïve users- 调用以前编写的应用程序同数据库交互

总体架构图

image.png