Skip to content

导论

约 1080 个字 8 行代码 预计阅读时间 4 分钟

导论几乎就是名词解释,出现了一大堆概念,其实几乎就是整个学期的知识,前期不理解也没关系

内容

名词解释

  • DBMS:Database Management System 数据库管理系统
  • SQL:Structred Query Language 结构化查询语言
  • Database:A collection of interrelated data,relevant to an enterprise.
  • tuple:元组,可以指表的一行数据
  • column/field:表的一列

文件管理系统和数据库系统的对比

文件管理系统由传统的 操作系统 支持: * 当需要操作数据时需要新的写应用程序和创建新的数据文件 * 数据文件会以不同形式储存,相互之间是独立的

文件管理系统的缺点

  • 数据冗余和不一致:
  • 多种文件形式,信息会在不同文件之间重复
  • 在访问数据方面存在困难
  • 为了完成新的任务需要写新的程序
  • 数据孤立:
  • 多种文件和多种格式导致索取和分享困难
  • 完整性问题:
  • 完整性受限,比如要求账户余额大于0,这个条件会成为程序代码的一部分
  • 难以增加新的限制条件和修改已经存在的数据
  • 没有原子性的更新
  • 失败的操作可能会导致数据处于不一致的状态因为部分更新,比如转账,要求应该是么转过去了,一方减,另一方增,要么转账失败,余额不变
  • 不能够被多位用户并发访问
  • 不受控的并发访问会导致数据不一致,比如两个人同时修改一处数据
  • 安全问题:鉴权

而数据库能解决以上所有问题

数据抽象的层级

  • 物理层(Physical level):描述一条记录是如何存储的 Files
  • 逻辑层(Logical level):描述数据是如何存储在数据库中的和在更高层级的数据之间的关系(reletionship)。就有点像OOP中的一个类,一个record类有这些元素(大概是这种感觉
    //这里只是一个示例
    type student=record
                sid: integer;
                sname: string;
                gender: string;
                age: integer;
                deptno: integer;
            end;
    
  • 视图层(View level):也就是你最终看到的样式,应用程序隐藏了数据类型的细节。处于安全考虑视图也可以隐藏信息,比如员工工资

alt text

模式和实例

类似于编程语言中的类型和变量

模式(schema)是数据库中不同层的结构: * Physical schema:数据库在物理层的设计 * Logical schema:数据库在逻辑层的设计 * Subschema:视图层的模式

实例(Instance)是在某一时刻数据库中实际的内容

alt text

物理独立和逻辑独立

独立(Independence)是指在不影响上层模式的情况下修改下层模式定义的能力: * Physical Independence:在不修改 logical schema 的情况下调整 physical schema 的能力 * Logical Data Independence:保护应用程序不被数据逻辑结构的改变所影响

数据模型

Data Model is a collection of conceptual tools for describing: * data structure * data relationships * data semantics * data constraints

不同的数据模型有: * Entity-Relationship model(ER 模型) * Relational model(关系模型) * 其他模型: * object-oriented model * semi-structured data models(XML)

设计数据库的步骤

  1. 分析需求
  2. 设计 conceptual database
  3. 设计 logical database
  4. 模式完善
  5. 设计 physical database
  6. 创建和初始化数据库和设计安全系统

alt text

ER 模型

E-R model包含: * Entities(objects):有点像是一个对象,它有很多属性 * Relationships between entities

alt text

关系模型

其实就几乎是关系型数据库中的一张表的样式了

数据库语言

SQL=DDL+DML+DCL: * DDL:Definition * DML:Manipulation * DCL:Control

SQL有几种用法: * 直接在交互环境中使用 * 通过host language使用 * 在 embedded-SQL 中通过 host language 使用

数据库的用户

  • Naive user
  • Application programmer
  • Sophisticated user
  • Specialized user

数据库管理员

DBA(Database adminstrator):一维有着管理所有数据库和访问所有程序权限的特殊用户

数据库系统结构

本学期后半期的大程将围绕这个,这里只提一下( * Storage manager * Query processor

alt text

应用架构

中间件(middleware),这是两层结构和三层结构最核心的区别
alt text

单词备忘

都是PPT中出现过的词 * scalability 可扩展性 * integrity 完整性 * robustness 鲁棒性 * redundancy 冗余 * inconsistency 不一致 * integrity 完整性 * atomicity 原子性 * current 并发 * schema 模式 * analogous 类似的 * semantics 语义 * refine 完善