ChⅠ-数据库系统概论
数据库特点
- 数据不重复存放
- 可支持多个应用并发访问
- 数据结构独立于应用程序
- 对数据的增、删、查、改均由数据库系统管理软件进行管理和控制。
数据模型
数据模型是指描述事物对象数据特征及其结构的形式化表示,包含数据结构、数据操作、数据约束 3 个部分组成。
- 数据结构: 用于描述事物对象的静态特征,包括事物对象的数据组成、数据类型、数据性质等。
- 数据操作:用于描述事物对象的动态特征,包括数据的插入、修改、删除和查询等访问操作。
- 数据约束:用于描述数据结构中数据之间的语义联系、数据之间的制约和依存关系,以及数据动态变化的规则等。
层次数据模型
Pros: 1)层次清晰 2)结点更新容易 3)检索查询效率高
Cons: 1)结构单一 2)相同信息多次存储、数据冗余大 3)不适合于具有拓扑空间的数据组织
网状数据模型
Pros 1)容易表达数据间的复杂关系 2)冗余小
Cons 1)结构复杂、定位难 2)需要定位指针
关系数据模型
Pros
- 数据结构简单、操作灵活
- 支持关系与集合运算操作
- 支持广泛使用的 SQL 数据库操作语言标准
- 容易实现与应用程序的独立性
Cons
- 只用于结构化数据的组织与存储管理
- 支持的数据类型较简单
- 难以支持互联网广泛应用的非结构化数据和复杂数据管理
Others
其它数据模型,如对象数据模型、键值对数据模型、列式数据模型、文档数据模型、图形数据模型等
数据库系统
数据库系统(Database Systems)是一类基于数据库进行数据管理与信息服务的软件系统。
数据库系统由用户、数据库应用程序、数据库管理系统和数据库四个部分组成。
- 数据库用户(Users)是指数据库系统的使用人员。
- 数据库应用程序(Database Applications) 是一种在 DBMS 支持下对数据库中数据进行访问处理的应用程序。
- 数据库管理系统(Database Manage System,DBMS )——是一种专门用来创建数据库、管理数据库、维护数据库,并提供外部对数据库进行访问的系统软件。
- 数据库(Database)是一种依照特定数据模型组织、存储和管理数据的文件集合。
关系数据库数据内容:用户表(用户数据),系统表(元数据、索引数据、运行数据)
关系数据库对象组织
- 用户表:存储用户的应用数据
- 系统表:存储数据库系统自身数据
- 视图:通过虚拟表实现数据查询处理
- 索引:通过目录数据结构支持快速的数据查询
- 约束:对关系表及其数据施加规则
- 存储过程:在数据库内部实现特定功能程序的数据处理
- 触发器:在数据库内部实现数据操作事件触发自动执行的过程程序
数据库系统生命周期
- 需求分析
系统分析人员与用户交流,利用软件工程方法获取系统数据需求信息,并采用需求模型定义系统数据组成,及其数据字典 - 系统设计
系统设计人员根据系统功能和性能需求,对系统数据库进行设计,包括系统概念数据模型 CDM、系统逻辑数据模型 LDM 和系统物理数据模型 PDM 设计 - 系统实现
按照系统设计方案进行数据库创建与应用编程实现,主要包括 DBMS 安装部署、数据库创建、数据对象创建、应用编程实现等方面的工作。 - 系统测试
系统测试人员将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试。 - 系统运行与维护
系统运维人员在信息系统投入运行过程中,对数据库系统进行定期维护和优化,以保证数据库系统正常地、高效地运行。
数据库管理系统 DBMS 类型
- 按用途分类
- 通用 DBMS 支持公共领域数据库应用,如 SQL server
- 专用领域 DBMS 支持专用领域数据库应用,如嵌入式领域的 SQLite,
- 按用户数分类。
- 单用户 DBMS 仅支持单用户访问,如 miniSQL。
- 多用户 DBMS 可支持多用户并行访问,如 MySQL
- 按系统部署分类
- 集中式 DBMS 数据库集中部署在单一物理机器中,如 Access
- 分布式 DBMS 数据库可分布在不同位置物理机器,如 0racle Database
- 按使用场景分类
- 桌面级 DBMS 适用于微小型的信息服务应用,如 Access,SQLite 等
- 企业级 DBMS 适用于中大型的企业级应用,如 DB2,ORACLE Database ,Sybase ASE 等
- 按软件版权分类
- 产品 DBMS 数据库厂商拥有版权的数据库软件,如 SQL server 、Oracle Database 等
- 开源 DBMS 开源组织提供的数据库软件,如 MySQL,PostgreSQL 等
FAQ
NoSQL 数据库和 NewSQL 数据库有何区别?
NoSQL
NoSQL 将数据库归类为描述性数据库,如“No-SQL”。NoSQL 是一个全面的数据库类别,旨在克服 SQL 数据库产生的问题。它们被称为无模式文档,它们以文档、图形、键值和非有序方式存储数据。
Pros
- 当需要动态行为时,它们比传统系统更好地扩展。
- 这些系统针对非关系数据进行了更好的优化。
- 允许执行写入时架构操作。
Cons:
- 使用 NoSQL 构建的系统基本上是非事务性的。
- 创建的数据量巨大,不提供任何传统的数据库功能。
- 当同时执行多个事务时,它不遵循一致性。
NewSQL
NewSQL 对数据库进行分类,这些数据库是关系模型与可扩展性的进步,数据类型的灵活性的组合。这些数据库专注于 NoSQL 中不存在的功能,这提供了强大的一致性保证。这涵盖了两层数据,一层关系数据和键值存储。
Pros
- 它为传统的关系数据库引入了新的实现。
- 它汇集了 SQL 和 NoSQL 的优势。
- 在用户的类型和需求之间迁移很容易。
Cons:
- 它们提供对丰富传统系统的部分访问。
- 它可能会导致内存中体系结构出现问题,以超过数据量。
- 这种数据库的核心基础是关系系统,这使得理解变得棘手。
为什么关系数据库不适合大数据应用处理?
关系数据模型局限:只用于结构化数据的组织与存储管理 支持的数据类型较简单 难以支持互联网广泛应用的非结构化数据和复杂数据管理