数据库设计笔记——概述(一)

数据库

  • 数据库(DataBase,DB)是长期存储在计算机内,有组织的,可共享的数据集合。是存放数据的仓库,并且有组织,有管理。

数据库管理系统

  • 数据库管理系统(Database Management System,DBMS)位于用户与操作系统之间的一个计算机系统软件,基本功能如下:

    • 数据定义功能(语言:DDL)
    • 数据操作功能(语言:DML)
    • 数据库的运行管理功能(语言:DCL)
    • 数据库的建立和维护功能
  • 目前流行的有Oracle、Sybase、SQL Server、Access、MySQL等。

数据库系统

  • 数据库系统(Database System,DBS)包括和数据有关的整个系统,如计算机硬件,操作系统、DBMS以及在他支持下建立起来的数据库、应用程序、用户和维护人员等。

    有时也将人以外的与数据库有关的硬件和软件系统成为DBS。

数据的发展

  • 人工管理阶段:程序与数据一一对应。数据不可共享。
  • 文件系统阶段:应用程序通过存取调用数据文件、可共享。
  • 数据库系统阶段:应用程序通过DBMS调用管理DB中的数据。
  • 分布式数据可以管理阶段 :逻辑上统一,地域上分布的数据集合。

数据库的体系结构

1)站在最终用户的角度

  • 集中式体系结构

    将DBMS软件、所有用户数据和应用程序放在一台计算机(服务器)上,其余计算机作为终端通过通信线路向服务器发出数据应用请求,这种网络数据库应用系统称为集中式数据库体系结构。

  • 分布式体系结构

    将分散存储在计算机网络中的多个节点上的数据库在逻辑上统一管理。

  • CLS体系结构

    在CLS计算机网络上运行的数据库系统,这个计算机网络中,一部分计算机为Client,一部分为服务器,其关键在于功能分布,一些放在Client机上(前端)上运行,另一些在Server(后端)运行。

  • 并行体系结构

    要求尽可能并行执行所有的数据操作从而在整体上提高数据库系统的性能,是多个物理上连接在一起的CPU通过划分的任务以及通过每秒兆位级的告诉网络通信共同完成事务查询。

2) 站在DBMS的角度

  • 一般采用三级模式结构:外模式模式内模式

    • 外模式:又称子模式,是用户与数据库的接口,是应用程序可见的数据描述。
    • 模式:分为概念模式和逻辑模式,是由数据可以设计者综合所有用户数据,按照统一的观点构造的全局逻辑结构。
    • 内模式:物理模式或存储模式,它描述数据在存储介质上的安排与存储方式。

      三级模式是用指针来表示数据之间的关系,数据定义语言和数据操作语言相互独立。

  • 三级模式之间的关系是二级映射,映射用来指定映射双方进行数据转换的规则,实际上转换工作有DBMS来完成,三级模型之间的关系如下图:

DB三级模式关系

数据模型

  • 数据模型通常有数据结构数据操作完整性约束三要素组成,分别表示系统的静态特性、动态特性和数据库的正确性、相容性和有效性。

  • 数据模型就是对客观事物抽象化的表现形式,具有有三大特点:

    • 必须真实反映现实世界中的具体应用,否则就是去了意义
    • 要便于理解,使用者与设计者要去的一致看法
    • 便于使用计算机来实现处理。
  • 数据模型的分类

    • 层次模型(传统,较少使用),支持三级模式结构
    • 网状模型(传统,较少使用),支持三级模式结构
    • 关系模型(占主导地位,具有严格的数学理论)
    • 对象模型(近年来得到了一些应用)

      MySQL中,对象模型是后关系数据库技术阶段,包络面向对象数据库技术(ORDBMS)和结构化数据库技术(NOSQL)

数据库的类型

平面文件

  • 定义:只包含文本的文件,没有粗体,斜体、花体或其他特殊的字体样式,而仅仅是普通文本。可添加结构,如逗号、分隔数值或缩排。

  • 优点:非常简单并且容易理解,可以任意文本编辑器中打开平面文件并作出更改而不需要编写复杂的用户界面。

  • 缺点:对搜索数据没有帮助,并不提供聚集功能,不能按照常规的方式修改平面稳健,在文件某位添加数据或更改文件内的特殊字符,不能再中间插入或删除数据。

  • 适用场合

    • 数值较小且简单
    • 数值不经常变化
    • 希望能够使用
    • 简单的文本编辑器来更改数值
    • 希望保存以前数值的简单历史清单
    • 希望使用工具快速比较两个文件
  • 不适用场合

    • 需要通过数值执行复杂的搜索
    • 数值经常变化
    • 不希望其他人能够轻易阅读和修改数值
    • 数值是分级的

常用的存储配置信息的地方是INI文件Windows系统注册表(一种分级数据库)

关系型数据库

  • 定义:包含保存行和列的表

  • 适用情况

    • 需要在不同的表之间执行复杂的查询和连接
    • 需要执行数据有效性验证,如在其他表中检验相关行的存在
    • 需要为特定的数据段考虑任意数量的值(如比赛最后的名次)
    • 希望能够灵活地构建在开始设计项目时本没计划的新查询

电子数据表

  • 定义:以行和列的形式显示数据(Excel表)

  • 优势:允许用户创建与电子数据表中其他数据相关的公式,生成形象显示数据的图表,大隐书局,以及以文本和其他格式导入和导出数据,此外还支持相对复杂的分析工具。

    注意:在大多数作者曾开发的大型项目中,都会设法内建特别的查询工具以便用户能够定义他们自己的报表。

  • 缺点:电子数据表不支持复杂的查询,而且不能自动检查数据的完整性,因此可以轻易地录入不正确或不一致的数值。

许多应用程序都采用电子表数据作为输出形式,衙门将数据存储在一种关系或其他类型的数据库中,然后将结果转存成电子数据表格式以便用户使用。

分级数据库

  • 包括按照书性结构很自然地安排的数值,类似于文件夹(分层和分级)

XML(扩展标记语言)

  • 定义:一种用于存储分级数据的语言。

  • 优点

    • 对于存储、传输、检索分级数据而言,XML是一个很有用的工具。
    • XML文件相对简单,他使用特殊的标记为其包含的数据定义结构。
  • 缺点: XML自身并不提供任何用于构建、检索、更新、验证或以其他方式操纵数据的工具。

  • 适用场合

    • 数据自然分级的
    • 可用XML工具提供需要的特性
    • 希望获得模式文件能够提供各种有效性验证
    • 希望能够在支持XML产品中导入和导出数据
  • 不适用场合

    • 非分级
    • 需要的数据有效性验证要比模式文件能够提供的更复杂
    • 需要执行关系查询而非分级查询
    • 数据库很庞大,因此重写整个文件来更新其中的少量数据非常麻烦
    • 需要允许多个用户频繁更新数据库而互不干扰

网络数据库

  • 当使用网络文件来存储数据时,程序将完成所有的工作。文件本身不提供特殊的特性。

  • 适用场合

    • 数据本身就是一种网络形式(或近似为层次结构)
    • 需对数据执行网络运算,如查找最短路径或计算网络流
    • 不需要对数据执行复杂的查询
  • 不适用的场合

    • 数据不能表示网络
    • 需要验证数据
    • 需对数据执行查询
    • 需允许多个用户频繁地更新数据而互不干扰

对象数据库

  • 用来管理对象。他提供某种查询语法用于从数据库中检索对象,还提供一些工具来将对象的改动保存到数据库中。

  • 适用场合

    • 编程环境和体系结构支持使用对象
    • 不需要对数据执行复杂的查询
  • 不适用的场合

    • 程序需要与外部工具交互,再次采用相关数据库此类格式存储数据更为有利。
    • 需要执行复杂的查询
    • 没有使用面向对象的语言
    • 需要执行对象数据库不能提供的数据有效性验证

对象关系数据库(ORD)

  • 是一种关系数据库,他提供了用于将对象类型集成到数据中的格外特性。

  • 与关系数据库类似,她能够相对快速地执行复杂的查询。

  • 另一方面又类似于对象数据库,使用某种特殊的语法来简化对象的创建。

特殊类型的数据库

  • 面向文档的数据库
  • 演绎数据库
  • 维度(或空间)数据库
  • 时态数据库

数据库设计总结

  • 数据库设计分为:概念模型设计逻辑模型设计物理模型设计

  • 关系数据库适用的情况:

    • 需要在不同表直接执行复杂的查询
    • 需要执行数据有效性验证,如在其他表中验证相关行的存在
    • 需要为特定的数据段考虑任意数量的值
    • 希望能够灵活的构建在开始设计项目时本设计划的新查询
  • 关系数据库设计总结

    • 合三大范式(3NF)
    • DB不能处理多对多关系时,应再建关联表,来表示两表间的关系。若多对多的关系包含额外的关联数据,将字段放于关联表中。
    • 命名约定:若表中两字段包含相同的数据,则赋予两个字段相同的名称。
    • 对于同类型的表,若有相同类型的字段,应使其对应的字段名相同,这样对于编写,调用函数,非常方便
  • php操作数据库总结:
    • 关于数据的重复问题,需在代码中验证该数据在DB中是否存在,若已存在,则不能插入
    • 查询数据时,当访问细分的几个表时,需使用联合查询。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你应该知道的浮点数基础知识

本文从一个有趣而又令人意外的实验展开,介绍一些关于浮点数你应该知道的基础知识 文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢钧轶(cenalulu) 本文原文地址:http://cenalulu.github.io/linux/about…

简单模块说明(二)

简单模块说明(二) 利用linmod函数提取状态矩阵 输入输出必须以 in模块和out模块代替 状态空间法的状态向量和状态变量不唯一的。 传递函数模块 得出其是个低通滤波器 零极点增益模块 使用零极点增益来表示传递函数 PID及二阶积分模块 几…

模块说明(三)

模块说明(三) 惯性环节、超前滞后环节 一般先使用连续列出传递函数,然后通过极性法或者双线线性不变法将连续转换为离散。 实例讲解 通常是通过电子电路对其进行补偿的。 记忆模块、零阶保持器、一阶保持器 离散PID 可参考连续PID…

数据库设计笔记——MySQL基础知识(四)

概述关系型数据库——由表来存储相关的数据,MySQL,SQL Server,Oracle等都是关系型数据库;元数据:用于集成并管理数据。MySQL数据库 用户数据库:用户根据需求创建数据库系统数据库information_schema&#x…

哪些钱借了可以不还?

借钱竟然可以不还?这个估计很多人都不知道,但是在实际民间借贷中,确实是有一些借贷关系是不受法律保护的,那哪些债务还是不受法律保护的呢?(一)借款用于非法用途案例:任某在生意场上…

模块说明(四)

模块说明(四) 比较模块 判断一个矩阵是否为一个奇异矩阵,看其行列式是否为0 位设置与清零模块 位运算模块 按位运算 位提取、位移运算模块 检测模块 表查询库 表查询模块

PID控制器_Matlab/Simulink仿真

PID控制器_Matlab/Simulink仿真 Kp:比例增益;Kpe:当前误差 KI:积分增益;KI∫edt:过去误差,累计 KD:微分增益;KD*de/dt:变换趋势 PD控制是增加了一个零点 例子: simulink操作

银行停贷、涨息、排队,8月不贷只能等明年

这几天做贷款的朋友圈被这种消息刷屏了没?据深圳商报报道,目前深圳一些大银行已经出现了贷款资金余额不足的情况,甚至有的银行已经停止信用贷款的发放;业内人士认为,信贷额度紧张局面估计持续到年底。除了深圳&#xf…

如何快速把借呗额度提高到10万?

借呗是一个很好的贷款工具,快,简,省等优点深得广大网友的喜爱。但是借呗虽然好用,却受限于额度,很多人的额度都是在3万以内,能超过10万的毕竟是少数人,看到别人几十万的额度,你是不是…

Simulink模糊控制入门

Simulink模糊控制入门 第一步:在命令窗口输入 fuzzy 在命令窗口输入 :doc Implement Fuzzy PID Controller in Simulink Using Lookup Table可以找到模糊控制说明的文档 另一种设置隶属函数的方式(建议):先删除所有的FMs在添加7个就行

监管升级,央行变相加息,贷款难还在继续

近段看到很多有贷款需求的朋友已经排队很久了,但是贷款还是没有着落,而还在观望的朋友,对不起,可能贷款没你的份了,因为监管正在升级,说白了就是央行变相加息,让贷款更难。银行同业存单纳入MPA考…

集成运放笔记

集成运放笔记 1 电压传输特性 开环 u0A0d(Up-Un) 线性区 阻容耦合无法集成 电流源电路 比例电流源 微电源 以电流源为有源负载的放大电路 共射放大电路 放大电路中的反馈 基本概念和判断 反馈:输出量影响输入量 正反馈:增强了净输入量 负反馈&a…

音频特征域方法

特征域方法摘自:严勤 吕勇著《语音信号处理与识别》 特征域方法可分为鲁棒特征提取 和 特征补偿两个子类。 鲁棒特征提取:致力于寻找更加稳健的声学特征,这些特征受语音变异性的影响较小,因此测试集和训练集的声学特征可以保持较高…

linu的安装

linu的安装 基本说明 学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习。 1.先安装virtual machine 15.5 再安装Linux(CentOS 7.6/centOS8.1) 3.原理示意图 vmware15.5下载 VM安装的步骤 使用迅雷下载 …

MATLAB工具常用函数

简介MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。使用 MATLAB,可以较使用传统的编程语言(如 C、C 和 Fortran)更快地解决技术计算问题。 应用范围:包括信号和图像处理、通讯、控…

虚拟机快照

虚拟机快照 虚拟机的删除和迁移 虚拟机的克隆

这些人,建议你不要去贷款了

贷款是好事,但是贷款还不上就不是好事了,在实际的贷款中,有很多人贷款都是没有目的性,纯粹是为了获取贷款而贷款,如果你是下面这些人,建议不要去贷款了。第一种人,贷款投机的人所谓投机就是为了…

特征选择方法

概述特征选择在模式识别领域中扮演着一个极其重要的角色。 一方面,在样本有限的情况下,用大量特征来设计分类器无论是从计算开销还是从分类器性能来看都不合时宜; 另一方面,特征和分类器性能之间并不存在线性关系,当特…

安装vmtools

安装vmtools Ubuntu 16.04 下安装VMware Tools(三行命令搞定,亲测好使): 第一行命令:sudo apt-get upgrate 第二行命令:sudo apt-get install open-vm-tools-desktop -y 第三行命令:sudo rebootcd /opt/ 表示进入到op…

空间谱专题02:波束形成(Beamforming)

作者:桂。 时间:2017-08-22 10:56:45 链接:http://www.cnblogs.com/xingshansi/p/7410846.html 前言 本文主要记录常见的波束形成问题,可以说空间谱估计是波束形成基础上发展而来,在系统论述空间谱之前,有…