zoukankan      html  css  js  c++  java
  • [每天五分钟,备战架构师-9]数据库系统

    数据操作和使用

    日常数据库使用过程中,离不开SQL语言。Structured Query Language由Boyce和Chamberlin在1974年提出,1975-1979年BIM San Jose Research Lab的关系型数据库管理系统原型 System R实现了这种语言。SQL-86是第一个SQL标准,后续的有SQL-89、SQL-92、SQL-99。现在大部分DBMS都支持SQL,甚至一些Key-Value型的数据库都支持SQL方式进行查询。

    SQL一般包括DDL数据定义、DML数据操作、DCL数据控制(授权)几种主要的结构。

    1. 数据库设计

    本章的内容讲述设计数据库管理系统的一些思路和方法,这部分的知识有利于我们提高日常工作中数据库(表)结构设计的能力,教材中的内容对于很多细节并没有深入的介绍,如有需要可以再找相关方面的专业教材进行学习。

    也有可能是为某个应用程序设计专门的数据管理系统,例如定义数据库的存储格式(内模式)、概念模型、用户展现形式(外模式),这个系统仅仅适用于某个应用,但是具备了数据库系统的特点。

    2. 数据库设计方法

    目前的设计方法分为四类:直观设计法、规范设计法、计算机辅助设计法、自动化设计法。

    2.1 基于3NF的数据库设计方法

    S.Atre提出,基本思想是在需求分析的基础上,识别并确认数据库模式中全部属性和属性间的依赖,将它们组织成一个单一的关系模型,然后再分析模式中不符合3NF的约束条件,用投影和连接的办法将其分解,使其达到3NF条件。

    2.2 LRA方法

    LRA(Logical Record Access,逻辑记录存取)方法从用户的信息要求和处理要求出发,分为:需求分析、逻辑设计、物理设计三个阶段。

    2.3 基于实体联系的数据库设计方法

    E-R方法主要用于逻辑设计,由P.P.S.Chen于1976年提出。

    2.4 基于视图概念的数据库设计方法

    2.5 面向对象的数据库设计方法

    面向对象的数据库设计(即数据库模式)思想是用户定义数据库模式的思路,面向对象数据库管理系统则是数据库管理程序的思路。应用系统对象模型向数据库模式的影射是面向对象数据库设计的核心和关键。

    2.6 计算机辅助数据库设计方法

    这是数据库设计趋向自动化的重要步骤,基本思想是提供一个人机结合的交互式过程,帮助设计者更快更好地进行设计工作。

    2.7 敏捷数据库设计方法

    软件开发方法学-敏捷方法学在数据库设计方面的应用,提出在可控制方式下的进化设计,一个重要特点就是迭代式开发。

    3. 数据库设计的基本步骤

    在分步设计方法中,通常将数据库的设计分为需求分析、概念结构设计、逻辑结构设计和数据库物理设计四个阶段。

    3.1 需求分析

    • 确认需求、确定设计目标。
    • 分析和收集数据。包括收集用户的信息需求、处理需求、完整性、安全性需求,以及对数据库设计过程有用的其他信息。
      • 弱方法学:BSP 企业系统规划法、OOAD 面向对象的分析法。
      • 强方法学:形式化方法,包括PSL/PAS、SREM 软件需求工程法、TAGS 自动生成系统技术法。
      • 格式化方法:BIAIT 业务信息分析于集成技术、SADT 结构化分析与设计技术。
    • 整理文档

    3.2 概念结构设计

    概念结构设计的任务是在需求分析中产生的需求说明书的基础上按照一定的方法抽象成满足应用需求的用户的信息结构,即通常所称的概念模型。概念模型能够提供识别和理解系统要求的框架,为数据库提供一个说明性结构,作为设计数据库逻辑结构即逻辑模型的基础。

    概念结构的设计策略主要有自底向上、自顶向下、由里向外和混合策略。主要包括视图设计、视图集成两个阶段。

    3.3 逻辑结构设计

    数据库逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为具体机器上的DBMS产品所支持的数据模型相符合的逻辑结构。

    逻辑结构设计的步骤包括:将概念模型向一般关系模型转化、将上一步得到的结构向特定的DBMS支持下的数据模块转换、根据需求和特定DBMS特性进行调整和完善。

    3.4 设计用户子模式

    用户子模式(外模式)是用户所看到的数据库的数据逻辑结构。关系数据库的外模式由与用户有关的基表及按需要定义的视图构成。设计外模式可参照概念设计中的局部ER图。

    3.5 数据模型的优化

    优化主要从改善数据库的性能和优化存储空间着手。改善性能的方向有:减少连接运算、减小关系大小及数据量、尽量使用快照。节省空间主要的方向有:缩小每个属性占用的空间、采用假属性。

    3.6 模式的评价与改进

    对模式的评价包括设计质量评价和性能评价两部分。设计质量标准包括:可理解性、完整性、可恢复性、安全性和扩充性。性能评价因为缺少具体物理设计的数量测量标准,因此也只能进行性能估计。主要从逻辑记录存取数、传送量、物理设计算法模型等方面进行评估。

    3.7 物理结构设计

    物理结构是数据库在物理设备上的存储结构和存取方法,物理设计依赖于给定的硬件环境和数据库产品。物理设计的内容包括数据存储结构的设计、集簇的设计、存取路径的设计和确定系统配置几方面。

    评价物理结构设计所需要考虑的几个方面:

    • 查询和响应时间
    • 更新事务的开销
    • 生成报告的开销
    • 主存储空间的开销
    • 辅助存储空间的开销

    3.8 数据库应用程序设计

    数据库应用程序设计遵循软件工程的方法,通常包括选择设计方法、制定开发计划、选择系统架构、设计安全性策略等几个步骤。

    参考资料:

    1. Wiki SQL
    2. SQLServer 里面的 DDL,DML,DCL,TCL
    3. Peter Chen

    我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=31i26m1ou1gko

  • 相关阅读:
    .net调用Oracle存储过程
    Ext.Net基本讲解
    Sql Server数据库中的数据类型和c#的数据类型的映射表
    c#.net常用字符串函数 .
    Extjs & Ext.net中的一些属性
    Oracle表名做为参数 返回值
    Oracle CASE WHEN 用法介绍
    c开发策略之错误处理
    堆和栈的区别
    assert用法总结
  • 原文地址:https://www.cnblogs.com/cocowool/p/sa_database_design.html
Copyright © 2011-2022 走看看