一个实时数据库系统的优劣,主要体现在它提供的功能是否齐备,系统性能是否优越,能否完成有效的数据存取,各种数据 *** 作、查询处理、存取方法、完整性检查,保证相关的事务管理,事务的概念、调度与并发控制、执行管理及存取控制,安全性检验。
以下是力控的系统结构图系统组成:由采集站DA、数据服务器、 WEB服务器、客户端组成,同时和关系数据库进行有效的数据交换,DCS的数据经过DA进行采集,由DA SERVER送到数据服务器,数据服务器再有效的送给其它客户端。
pSpace实时数据库服务器主要由以下几部分构成:
pSpace Server:
负责整个pSpaceTM应用系统的实时数据处理、历史数据存储、统计数据处理、数据服务请求、事件触发器管理、调度管理、资源管理、系统配置等。
pSpace Data Service:
为第三方厂家的软件访问pSpaceTM Server时提供数据服务功能,包括:OPC Server、DDE Server、ODBC Router、Base API接口等
pSpace COM SDK:
COM SDK为用户开发基于pSpaceTM Server的应用程序提供基于COM对象的编程接口。
pSpace Visual ActiveX:
是一组开放的控件,如:数据控件、文本控件、棒图控件、趋势控件等,控件可以直接访问实时数据库和关系数据库的数据。
pSpace DA Server数据采集器:
pSpaceTM DA server是数据采集站的设备通讯管理服务程序,用于系统和DCS、PLC等数据源之间的数据交换,具有自动网络通信负荷平衡功能和断线数据缓冲功能。
pSpace的Web服务器
使用IIS作为Web管理服务器,用图形客户端生成Web网页;
使用pSpace Visual ActiveX自行创建Web服务器和Web网页;
使用pSpace Webserver,用图形客户端生成Web网页;
pSpace 客户端
监控组态软件:力控Forcecontrol系列;
Microsoft Excel:采用标准EXCEL加载宏方式通过网络访问数据库;
“瘦”客户端:Microsoft Internet Explorer 50或以上版本的浏览器;
Visual ActiveX:pSpace可视化控件工具包是为建立客户端连接而提供的客户端产品;它包括一组ActiveX控件,如:数据控件、文本控件、棒图控件、趋势控件等;
二次开发工具及访问接口
标准访问接口供客户端程序调用或第三方软件访问使用,因此接口的完整性、开放性决定实时数据库二次开发的性能的优劣,pSpace访问接口及开发工具主要包括以下几种:
1)DBI API
DBI是一套实时数据库访问接口,给用户提供底层编程接口,通过它可以与客户端连接,对数据库进行数据读写,满足继线重连功能,可以获取数据库结构信息,动态控制变化数据集,DBI接口采用了快速数据访问机制,数据访问吞吐量可达到11万次/秒,可以适合过程仿真、优化控制、专家诊断等多种行业应用。
2)COM SDK
SDK是为用户开发基于pSpaceTM Server的应用程序提供基于COM对象的编程接口,用COM SDK编写的一个实例可以同时连接多个Server,也可以用COM SDK同时建立多个实例,提供面向对象的类库供用户开发应用程序,用户使用该工具编程可以提高开发效率,该工具可以在VC++,VB,VBScript,net等开发环境下使用。
3)OLE DB Provider
应用程序提供pSpace Server数据库的ADO访问接口。
4)DAI SDK
pSpace的数据源采集接口的开放工具,DAI采集接口软件都可以单独运行在一台网络结点机,并可在远程对其进行配置与监控,具备以下功能:
DAI 可以直接利用原有的力控组态软件的驱动程序;
DAI 具备断线缓存功能;另外DAInterface还要增加几个接口;
DAI 支持XML、CSV文件接口,可采集离线数据源。
实时数据库性能指标:
从实时数据库运行环境来看,实时数据库系统的除了自身的软件性能外,还取决于所使用的 *** 作系统、硬件环境等。
单台服务器容量可达12,0000点以上;
历史数据库支持unix linux windows等64位 *** 作系统;
完整的事件记录系统,所有 *** 作员的动作均被检查并记录,可作为跟踪依据;
功能强大的压缩算法:按高压缩格式保存数据,采用死区和变化率压缩,压缩比为1:30;
支持优化旋转门算法对历史数据进行压缩;
专用的磁盘存贮算法来保证对长年形成的海量历史数据的快速查询;
支持的浮点型、布尔型、字符串型、等常见数据类型及“任意”类型;
数据库吞吐量支持每秒写入/查询20,000个数据点;
支持历史数据库在线备份,多服务器并发处理;
支持数据库冗余;
IO数据采集断线重连:通讯故障能够自动恢复,I/O时间同步;自动补偿 PC 时钟偏差。
构建企业信息门户
力控pSpace可以为企业在创建基于Internet/Intranet的网络信息门户时提供完整的软件解决方案,同时支持PDA掌上终端访问力控的WEB服务器。
对pSpaceTM Server的数据进行Web管理有以下几种方式:
使用IIS作为Web管理服务器,将通用流程画面转换为Web网页,整个系统与WIN系统无缝集成,基于WEB组态的工具控件包通过相应的检索便可以进行查询,能够直接生成WEB页面;
使用组态软件创建Web服务器和Web网页然后发布;
用户使用pSpaceTM Visual ActiveX自行创建Web服务器和Web网页;
用户可以使用自己熟悉的网站开发工具如:FrontPage、Dreamweaver、ASP等创建主页,设立网站,并在网页中嵌入pSpace Visual ActiveX中的控件建立pSpaceTM Server的数据显示。
特点如下:
Web页面与过程画面的高度同步
pSpace Web Server实现了服务器端与客户端画面的高度同步, 在浏览器上可以同时浏览多个过程画面, 看到的图形界面与通用组态软件生成的过程画面效果完全相同,数据采用变化传输的方式,具有更快的运行与数据更新速度。
企业级Web服务器
pSpace Web Server专为构建企业级Web服务器而设计,具备高容量的数据吞吐能力和良好的健壮性,力控Web Server支持多达500的客户端的同时访问。
完善的安全机制
pSpace Web Server提供完善的安全管理机制。只有授权的用户才能修改过程参数。使用pSpace Web Server时,管理员尽可安心,不必担心非法或未授权的修改。
客户端
力控实时历史数据库管理系统提供了基本的客户端组态工具,开放的接口可以高级应用中的资产管理、设备诊断等管理客户端的开发,每个客户端应用软件都可以与pSpace Server运行在同一台计算机上,也可以分布式地运行在其它网络结点机上。
1)管理工具Admin
pSpace系统配置工具。包括:在线配置数据库点、采集接口、监控服务器和采集器状态,启、停远程服务等。
2)Forcecontrol组态软件
完成生产调度系统的实时监控,曲线分析、生产报表、报警、事件等。
3)Excel Add-In:Excel加载宏,完成功能包括:
查询原始数据;
查询当前数据;
利用索引点查询过滤数据;
查询数据的采样值;
查询统计值(最小值、最大值、平均值、标准方差、累计值、计数值);
显示、导入、导出标签;
导入、导出数据;
显示、导入、导出消息;
显示采集接口;
4)pBatch
批量生产工艺数据的检索和表示,可跟踪与批量生产相关的各种信息。
5)Alarm Server
报警服务器。
6)SNMP Agent:
网络管理工具,可以在线诊断网络设备。
上层应用工具
报表工具:
可以在力控®的万能报表工具中获取实时数据库的各种过程数据,完成数据的查询与计算;建立易用、灵活、强大的报表系统。
设备运行诊断工具:
生产设备运行诊断工具可以方便地了解运行设备故障事件发生的时间、地点、状态和原因,从而降低设备维护成本。
趋势组记录工具:
提供了非常丰富的趋势记录功能,实时趋势和历史趋势记录允许趋势曲线多层重叠,可以通过颜色区分好数据和坏数据,可以显示数据的采样周期、数值精度和曲线变化情况。
图形分析工具:
包括直方图、饼图、面积图等十种图形分析工具,非常方便数据的显示与比较。图形具有透明性,从而更加容易地观察到数据之间的差别。
趋势曲线放大镜:
利用趋势曲线的放大镜工具,可以放大任何时间的实时和历史曲线,非常方便地分析时间序列的数据。通过趋势曲线的滚动按钮,可以前后滚动查看趋势曲线的变化情况。
成本核算工具:
内嵌成本核算模板工具,包括核算体系(生产基本单位核算、财务核算及其报表)、预算和考核体系、信息实时查询(收率、消耗、能耗等)、成本统计报表。
质量分析工具:
提供质量分析模板工具,将生产过程的实时数据和质量点的采样数据进行比较,在线进行评估,以便生产管理人员及时掌握各个产品的质量数据。长期保存质检数据,便于质量分析。
安全性及用户管理
网络安全
在进行项目设计时,在数据采集站可进行双网卡配置以保证生产网和管理网的物理隔离,DA SERVER采集站软件设计中可以保证数据单项传输,防止管理网的干扰生产网。
用户管理
实时数据库提供了完备的安全保护机制,以保证生产过程的安全可靠,用户管理具备多个级别,并可根据级别限制对重要工艺参数的修改,以有效避免生产过程中的误 *** 作。
实时数据库提供了安全区的概念,同级别,不同安全区的数据不可以互相 *** 作,保证了数据的分布式的管理。
提供基于远程的用户管理,增加更多的用户级别及安全区,管理所有用户的远程登陆信息。
加密管理:
支持工程加密,用户可以通过加密锁自己定义工程密码,没有此加密锁任何非法用户无法侵入,保护了自己的工程结构;
*** 作事件:
可以详细的记录 *** 作事件和系统事件,方便事故追忆;
开机自动运行设置、有效的屏蔽系统键盘,可以防止非法用户入侵;
数据采集器DA SERVER
DA SERVER 是Server 与各种数据源之间的接口,DA SERVER具有自动网络通信负荷平衡功能和断线数据缓冲功能,DA SERVER可以和Server运行在同一服务器内,也可以运行在不同的前端机上,通过TCP/IP与Server通信。
DA SERVER主要有以下几种:
DA SERVER:专用的数据采集服务器,通过它中心服务器可以采集各种DCS、PLC、FCS等I/O设备的数据,DA SERVER可以集成HMI/SCADA组态软件的数据采集接口,对于已经安装运行了组态软件的SCADA工作站,通过该数据采集器可以很方便地将SCADA数据采集到Server中。
MOPC:通过该数据采集器,Server可以采集其他各种第三方的OPC Server的数据。
性能
支持通过RS232、RS422、RS485、电台、电话轮巡拨号、以太网、移动GPRS、CDMA、GSM网络等方式和设备进行通讯;
开发环境下具备在线诊断设备通讯功能,可以动态的打开、关闭设备,通讯故障后具备自动恢复功能;
支持控制设备和控制网络冗余,控制设备进行切换时,通讯会自动切换;
支持多种协议的设备挂在一条通讯链路上与DA SERVER进行通讯,方便电台等远程通讯;
支持与设备采取主从、主主、从主等多种交互机制来进行通讯,比如对MODBUS标准协议设备,支持主与从2种方式与设备通讯;
可以采集带时间戳的数据,毫秒级数据采集速率,实现历史数据向实时数据库的回插功能,可以采集记录仪、录波器数据,支持SOE,完成事件监视。
支持的设备种类
支持主流的DCS、PLC、DDC、现场总线、智能仪表等1000多种厂家设备的通讯;也可以按照用户提出的通信协议和硬件接口,在较短时间内开发新的驱动程序。
无所不在的移动通讯
所有设备的驱动程序支持通过移动GPRS、CDMA网络与控制设备进行通讯,DA SERVER节点与其远程DA SERVER节点也可以进行移动通讯;
DA SERVER移动数据服务器与远程设备的通讯为并发处理、完全透明的解决方案,消除了一般软件采用虚拟串口方式造成数据传输不稳定的隐患,有效的流量控制机制保证了远程应用中节省通讯费用;
支持设备主动通过GPRS上传数据的方式进行数据传输。
典型企业信息化应用
胜利油田油气集输公司是胜利油田从事油气集输的专业化生产企业,主要担负胜利油田原油外输、天然气生产集输及轻烃生产任务。管理着9个气田,187口气井,24座集配气站,总长240公里的天然气输气管道和220公里的输油管道,8座大中型输油站库,2座压气站和3套轻烃回收装置。所辖13个三级单位,具有点多、线长、面广、易燃易爆、高温高压的特点。
该系统对油田的原油库和压气站等身产装置进行网络信息处理。该信息系统集成了多种设备,信息集成使用了OPC、DDE、ODBC、PROFIBUS、MODBUS、RS485等多种网络采集方式进行数据处理,是一个典型的分布式采集,集中管理的大型网络信息化系统。
胜利油田原油库控制系统主要选用了SIEMENS 控制系统,在压气站中, 50万岗位使用Honeywell的S9000型号的DCS控制系统;SW64岗位是美国库伯公司的RR控制器;二次增压岗位使用日本Omron的控制器;离心机岗位是横河CS1000型号的DCS控制系统;配气岗位是美国SIXNET公司的ST-GT-1210控制器;热煤炉岗位控制系统是三菱的PLC;配电岗位设有许继的配电保护及监控系统。
pSpace在应用中有效的集成了以上系统,从监测和考核原材料及水、电、气、风的用量入手,减少能耗物耗,对优化生产过程,提高生产运行效率起到了关键的作用。
典型先进控制方案
pSpace支持与国外的各种数据库进行数据交互,比如INFOPLUS、PI、PHD等,通过pSpace SERVER可以在国内外的各种平台上进行上层应用、专家诊断、先进控制等,下面是一个电厂设备诊断的应用,pSpace SERVER通过各种接口将现有SIS系统、小神探系统、新增的断路器和各种辅机监测系统集成为一个整体,其中,状态检修系统需要的绝大部分实时数据都取自SIS系统的PI实时数据库,因此,PI数据库和力控实时数据库之间的接口是整个系统集成的关键,接口Gateway的性能将直接决定整个状态检修系统的性能。
一、数据场景 1、表结构简介 任何工具类的东西都是为了解决某个场景下的问题,比如Redis缓存系统热点数据,ClickHouse解决海量数据的实时分析,MySQL关系型数据库存储结构化数据。数据的存储则需要设计对应的表结构,清楚的表结构,有助于快速开发业务,和理解系统。表结构的设计通常从下面几个方面考虑:业务场景、设计规范、表结构、字段属性、数据管理。
2、用户场景
例如存储用户基础信息数据,通常都会下面几个相关表结构:用户信息表、单点登录表、状态管理表、支付账户表等。
用户信息表
存储用户三要素相关信息:姓名,手机号,身份z,登录密码,邮箱等。
CREATE TABLE `ms_user_center` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `user_name` varchar(20) NOT NULL COMMENT '用户名', `real_name` varchar(20) DEFAULT NULL COMMENT '真实姓名', `pass_word` varchar(32) NOT NULL COMMENT '密码', `phone` varchar(20) NOT NULL COMMENT '手机号', `email` varchar(32) DEFAULT NULL COMMENT '邮箱', `head_url` varchar(100) DEFAULT NULL COMMENT '用户头像URL', `card_id` varchar(32) DEFAULT NULL COMMENT '身份z号', `user_sex` int(1) DEFAULT '1' COMMENT '用户性别:0-女,1-男', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `state` int(1) DEFAULT '1' COMMENT '是否可用,0-不可用,1-可用', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表'; 单点登录表
用意是在多个业务系统中,用户登录一次就可以访问所有相互信任的业务子系统,是聚合业务平台常用的解决方案。
CREATE TABLE `ms_user_sso` ( `user_id` int(11) NOT NULL COMMENT '用户ID', `sso_id` varchar(32) NOT NULL COMMENT '单点信息编号ID', `sso_code` varchar(32) NOT NULL COMMENT '单点登录码,唯一核心标识', `log_ip` varchar(32) DEFAULT NULL COMMENT '登录IP地址', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `state` int(1) DEFAULT '1' COMMENT '是否可用,0-不可用,1-可用', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户单点登录表'; 状态管理表
系统用户在使用时候可能出现多个状态,例如账户冻结、密码锁定等,把状态聚合到一起,可以更加方便的管理和验证。
CREATE TABLE `ms_user_status` ( `user_id` int(11) NOT NULL COMMENT '用户ID', `account_status` int(1) DEFAULT '1' COMMENT '账户状态:0-冻结,1-未冻结', `real_name_status` int(1) DEFAULT '0' COMMENT '实名认证状态:0-未实名,1-已实名', `pay_pass_status` int(1) DEFAULT '0' COMMENT '支付密码是否设置:0-未设置,1-设置', `wallet_pass_status` int(1) DEFAULT '0' COMMENT '钱包密码是否设置:0-未设置,1-设置', `wallet_status` int(1) DEFAULT '1' COMMENT '钱包是否冻结:0-冻结,1-未冻结', `email_status` int(1) DEFAULT '0' COMMENT '邮箱状态:0-未激活,1-激活', `message_status` int(1) DEFAULT '1' COMMENT '短信提醒开启:0-未开启,1-开启', `letter_status` int(1) DEFAULT '1' COMMENT '站内信提醒开启:0-未开启,1-开启', `emailmsg_status` int(1) DEFAULT '0' COMMENT '邮件提醒开启:0-未开启,1-开启', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `state` int(1) DEFAULT '1' COMMENT '是否可用,0-不可用,1-可用', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户状态表'; 支付账户表
用户交易的核心表,存储用户相关的账户资金信息。
CREATE TABLE `ms_user_wallet` ( `wallet_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '钱包ID', `user_id` int(11) NOT NULL COMMENT '用户ID', `wallet_pwd` varchar(32) DEFAULT NULL COMMENT '钱包密码', `total_account` decimal(20,2) DEFAULT '000' COMMENT '账户总额', `usable_money` decimal(20,2) DEFAULT '000' COMMENT '可用余额', `freeze_money` decimal(20,2) DEFAULT '000' COMMENT '冻结金额', `freeze_time` datetime DEFAULT NULL COMMENT '冻结时间', `thaw_time` datetime DEFAULT NULL COMMENT '解冻时间', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `state` int(1) DEFAULT '1' COMMENT '是否可用,0-不可用,1-可用', PRIMARY KEY (`wallet_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户钱包'; 二、设计规范 1、涉及模块
通过上面几个表设计的案例,可以看到表设计关联到数据库的各个方面知识:数据类型,索引,编码,存储引擎等。表设计是一个很大的命题,不过也遵循一个基本规范:三范式。
2、三范式 基础概念
一范式
表的列的具有原子性,不可再分解,即列的信息,不能分解,关系型数据库MySQL、Oracle等自动的满足。
二范式
每个事实的数据记录只会出现一次, 不会冗余, 通常设计一个主键来实现。
三范式
要求一个表中不包含已经存在于其它表的非主键信息,例如部门和员工的信息,员工表包含部门表的主键ID,则可以关联获取相关信息,没必要在员工表保存相关信息。
优缺点对比
范式化设计
范式化结构设计通常更新快,因为冗余数据较少,表结构轻巧,也更好的写入内存中。但是查询起来涉及到关联,代价非常高,非常损耗查询性能。
反范式化设计
所有的数据都在一张表中,避免关联查询,索引的有效性更高,但是数据的冗余性极高。
建议结论
上述的两种设计方式在实际开发中都是不存在的,在实际开发中都是混合使用。比如汇总统计,缓存数据,都会基于反范式化的设计。
三、字段属性
合适的字段类型对于高性能来说非常重要,基本原则如下:简单的类型占用资源更少;在可以正确存储数据的情况下,选最小的数据类型。
1、数据类型选择 整数类型
TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,根据数据类型范围合理选择即可。
实数类型
FLOAT、DOUBLE、DECIMAL,建议资金货币相关类型使用高精度DECIMAL存储,或者把数据成倍扩大为整数,采用BIGINT存储,不过处理相对麻烦。
字符类型
CHAR、VARCHAR,长度不确定建议采用VARCHAR存储,不过VARCHAR类型需要额外开销记录字符串长度。CHAR适合存储短字符,或者定长字符串,例如MD5的加密结构。
时间类型
DATETIME、TIMESTAMP,DATETIME保存大范围的值,精度秒。TIMESTAMP以时间戳的格式,范围相对较小,效率也相对较高,所以通常情况建议使用。
MySQL的字段类型有很多种,可以根据数据特性选择合适的,这里只描述常见的几种类型。
2、基础用法 *** 作 数据类型
修改字段类型
ALTER TABLE ms_user_sso MODIFY state CHAR(1) DEFAULT '0' ; ALTER TABLE ms_user_sso MODIFY state INT(1) DEFAULT '1' COMMENT '状态:0不可用,1可用';
修改名称位置
ALTER TABLE ms_user_sso CHANGE log_ip login_ip VARCHAR(32) AFTER update_time ; 索引使用
索引类型:主键索引,普通索引,唯一索引,组合索引,全文索引。这里演示普通索引的 *** 作。MySQL的核心模块,后续详说。
添加索引
ALTER TABLE ms_user_wallet ADD INDEX user_id_index(user_id) ; CREATE INDEX state_index ON ms_user_wallet(state) ;
查看索引
SHOW INDEX FROM ms_user_wallet;
删除索引
DROP INDEX state_index ON ms_user_wallet ;
修改索引
不具有真正意义上的修改,可以把原有的索引删除之后,再次添加索引。
外键关联
用处:外键关联的作用保证多个数据表的数据一致性和完整性,建表时先有主表,后有从表;删除数据表,需要先删从表,再删主表。复杂场景不建议使用,实际开发中用的也不多。
添加外键
ALTER TABLE ms_user_wallet ADD CONSTRAINT user_id_out_key FOREIGN KEY(user_id) REFERENCES ms_user_center(id) ;
删除外键
ALTER TABLE ms_user_wallet DROP FOREIGN KEY user_id_out_key ; 四、表结构管理 1、查看结构 DESC ms_user_status ; SHOW CREATE TABLE ms_user_status ; 2、字段结构 添加字段 ALTER TABLE ms_user_status ADD `delete_time` datetime DEFAULT NULL COMMENT '删除时间' ; 删除字段 ALTER TABLE ms_user_status DROP COLUMN delete_time ; 3、修改表名 ALTER TABLE ms_user_center RENAME ms_user_info ; 4、存储引擎 存储引擎 SELECT VERSION() ; SHOW ENGINES ;
MySQL 56 支持的存储引擎有InnoDB、MyISAM、Memory、Archive、CSV、BLACKHOLE等。一般默认使用InnoDB,支持事务管理。该模块MySQL核心,后续详解。
修改引擎
数据量大的场景下,存储引擎修改是一个难度极大的 *** 作,容易会导致表的特性变动,引起各种后续反应,后续会详说。
ALTER TABLE ms_user_sso ENGINE = MyISAM ; 5、修改编码
表字符集默认使用utf8,通用,无乱码风险,汉字3字节,英文1字节,utf8mb4是utf8的超集,有存储4字节例如表情符号时使用。
查看编码 SHOW VARIABLES LIKE 'character%'; 修改编码 ALTER TABLE ms_user_sso DEFAULT CHARACTER SET utf8mb4; 五、数据管理 1、增删改查
添加数据
INSERT INTO ms_user_sso ( user_id,sso_id,sso_code,create_time,update_time,login_ip,state ) VALUES ( '1','SSO7637267','SSO78631273612', '2019-12-24 11:56:57','2019-12-24 11:57:01','127001','1' );
更新数据
UPDATE ms_user_sso SET user_id = '1',sso_id = 'SSO20191224',sso_code = 'SSO20191224', create_time = '2019-11-24 11:56:57',update_time = '2019-11-24 11:57:01', login_ip = '127001',state = '1' WHERE user_id = '1';
查询数据
一般情况下都是禁止使用 select *** 作。
SELECT user_id,sso_id,sso_code,create_time,update_time,login_ip,state FROM ms_user_sso WHERE user_id = '1';
删除数据
DELETE FROM ms_user_sso WHERE user_id = '2' ;
不带where条件,就是删除全部数据。原则上不允许该 *** 作,优化篇会详解。TRUNCATE TABLE也是清空表数据,但是占用的资源相对较少。
2、数据安全 不可逆加密
这类加密算法,多用来做数据验证 *** 作,比如常见的密码验证。
SELECT MD5('cicada')='94454b1241ad2cfbd0c44efda1b6b6ba' ; SELECT SHA('cicada')='0501746a2e4fd34e1d14015fc4d58309585edc7d'; SELECT PASSWORD('smile')='B4FB95D86DCFC3F33A3852714DC742C77504479D' ; 可逆加密
安全性要求高的系统,需要做三级等保,对数据的安全性极高,数据在存储时必须加密入库,取出时候需要解密,这些就需要可逆加密。
SELECT DECODE(ENCODE('123456','key_salt'),'key_salt') ; SELECT AES_DECRYPT(AES_ENCRYPT('cicada','salt123'),'salt123');
上述数据安全的管理,也可以基于应用系统的服务(代码)层进行处理,相对专业的流程是从数据生成源头处理,规避数据传递过程泄露,造成不必要的风险。
一、数据库系统的三级模式:外模式、模式、内模式。
1、模式(逻辑模式、概念模式):实际上是数据库数据在逻辑级上的视图。描述的是全局逻辑结构。一个数据库只要一个模式。模式是数据库的中心与关键,它独立与其他层次。设计数据库模式结构时应首先确定数据库的逻辑模式。DBMS提供模式描述性语言来严格定义模式。
2、外模式(子模式、用户模式):数据库用户能够看见和使用的局部数据的逻辑结构和特征,是数据库用户的数据视图。描述的是局部逻辑结构。是模式的一个子集。一个数据库可以有多个数据库内模式。每个用户只能看见和访问对应的外模式中的数据,数据库中的其余数据是不可见的。
是保证数据库安全性的有力措施。同一外模式也可以为用户的多个应用程序使用,但一个应用程序只能使用一个外模式。它定义在逻辑模式之上,但独立于存储模式和存储设备。当应用需求发生较大变化,相应外模式不能满足其视图要求,该外模式就应该做出相应的改变。
设计外模式的时候应充分考虑到应用的扩展性。DBMS提供子模式描述性语言来严格定义子模式。
3、内模式(存储模式):一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据库内部的表示方法。比如记录什么存储方法存储,索引按照什么方式组织。数据是否压缩存储,是否加密。数据库存储记录结构有何规定。
它依赖于全局逻辑结构,但独立于数据库的用户视图和存储设备。它将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以实现达到较好的时间与空间效率的目的。DBMS提供内模式描述性语言来严格定义内模式。
二、二级映像:
1、外模式/模式映像:数据库系统都有一个外模式/模式映像。它定义了该外模式与模式之间的对应关系。这些映像通常包含在各自外模式的描述中。
当模式改变时(增加新的关系、新的属性、改变属性的数据类型),需要数据库管理员对各个外模式/模式的映像做相应改变,也可以是外模式保持不变。应用程式是依据数据的外模式编写的。因此应用程序也不必修改,这保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
2、模式/内模式映像:模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。比如说明逻辑记录和字段在内部是如何表示。
该映像定义通常包含在模式描述中。当数据库的存储结构改变时,由数据库管理员对模式/内模式映像做相应改变。可以使模式保持不变,因此应用程序也不必改变,这就保证了数据与程序的物理独立性,简称数据的物理独立性。
扩展资料:
数据库的三级模式是数据库在三个级别 (层次)上的抽象,使用户能够逻辑地、抽象地处理数据而不必关心数据在计算机中的物理表示和存储。
实际上 ,对于一个数据库系统而言一有物理级数据库是客观存在的,它是进行数据库 *** 作的基础,概念级数据库中不过是物理数据库的一种逻辑的、抽象的描述(即模式),用户级数据库则是用户与数据库的接口,它是概念级数据库的一个子集(外模式)。
用户应用程序根据外模式进行数据 *** 作,通过外模式一模式映射,定义和建立某个外模式与模式间的对应关系,将外模式与模式联系起来,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,对应的应用程序也可保持不变;
另一方面,通过模式一内模式映射,定义建立数据的逻辑结构(模式)与存储结构(内模式)间的对应关系,当数据的存储结构发生变化时,只需改变模式一内模式映射,就能保持模式不变,因此应用程序也可以保持不变。
参考资料:
百度百科_外模式/模式映象
百度百科_模式/内模式映像
大致的讲主要是根据用户的需求,然后设计数据库的E-R模型,然后将E-R模型图转换为各种表,并对其进行数据库设计范式(范式因不同书籍有不同)的审核,然后进行数据库的实施,然后运行维护。
一句话来讲就是将用户的需求变成带有各种关系的表,以及其它的数据库结构,然后供编程使用
具体如下:
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段
(1)需求分析。
(2)概念设计。
(3)逻辑设计。
(4)物理设计。
(5)数据库实施。
(6)数据库运行和维护。
5.1.1 需求分析阶段
进行数据库设计首先必须准确了解与分析用户需求,包括数据与处理需求。需求分析是整个设计过程的基础,是最困难、最耗时的一步。作为“地基”的需求分析是否做得充分与准确,决定了在其上构建“数据库大厦”的速度与质量。需求分析做得不好,可能会导致整个数据库重新设计,因此,务必引起高度重视。
5.1.2 概念模型设计阶段
在概念设计阶段,设计人员仅从用户角度看待数据及其处理要求和约束,产生一个反映用户观点的概念模式,也称为“组织模式”。概念模式能充分反映现实世界中实体间的联系,又是各种基本数据模型的共同基础,易于向关系模型转换。这样做有以下好处:
(1)数据库设计各阶段的任务相对单一化,设计复杂程度得到降低,便于组织管理。
(2)概念模式不受特定DBMS的限制,也独立于存储安排,因而比逻辑设计得到的模式更为稳定。
(3)概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而能准确地反映用户的信息需求。
概念模型设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。如采用基于E-R模型的数据库设计方法,该阶段即将所设计的对象抽象出E-R模型;如采用用户视图法,则应设计出不同的用户视图。
5.1.3 逻辑模型设计阶段
逻辑模型设计阶段的任务是将概念模型设计阶段得到的基本E-R图,转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。如采用基于E-R模型的数据库设计方法,该阶段就是将所设计的E-R模型转换为某个DBMS所支持的数据模型;如采用用户视图法,则应进行表的规范化,列出所有的关键字以及用数据结构图描述表集合中的约束与联系,汇总各用户视图的设计结果,将所有的用户视图合成一个复杂的数据库系统。
5.1.4 数据库物理设计阶段
数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。显然,数据库的物理设计完全依赖于给定的硬件环境和数据库产品。在关系模型系统中,物理设计比较简单一些,因为文件形式是单记录类型文件,仅包含索引机制、空间大小、块的大小等内容。
物理设计可分五步完成,前三步涉及到物理结构设计,后两步涉及到约束和具体的程序设计:
(1)存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。
(2) 确定数据存放位置:可以把经常同时被访问的数据组合在一起,“记录聚簇(cluster)”技术能满足这个要求。
(3)存取方法的设计:存取路径分为主存取路径及辅存取路径,前者用于主键检索,后者用于辅助键检索。
(4)完整性和安全性考虑:设计者应在完整性、安全性、有效性和效率方面进行分析,作出权衡。
(5)程序设计:在逻辑数据库结构确定后,应用程序设计就应当随之开始。物理数据独立性的目的是消除由于物理结构的改变而引起对应用程序的修改。当物理独立性未得到保证时,可能会引发对程序的修改。
数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。
5.1.5 数据库实施阶段
根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实施阶段。实施阶段主要有三项工作。
(1)建立实际数据库结构。对描述逻辑设计和物理设计结果的程序即“源模式”,经DBMS编译成目标模式并执行后,便建立了实际的数据库结构。
(2)装入试验数据对应用程序进行调试。试验数据可以是实际数据,也可由手工生成或用随机数发生器生成。应使测试数据尽可能覆盖现实世界的各种情况。
(3)装入实际数据,进入试运行状态。测量系统的性能指标,是否符合设计目标。如果不符,则返回到前面,修改数据库的物理模型设计甚至逻辑模型设计。
5.1.6 数据库运行和维护阶段
数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有四项:
(1)维护数据库的安全性与完整性:检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。
(2)监测并改善数据库运行性能:对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施。
(3)根据用户要求对数据库现有功能进行扩充。
(4)及时改正运行中发现的系统错误。
以上就是关于实时历史数据库的实时数据库结构全部的内容,包括:实时历史数据库的实时数据库结构、数据库表结构设计,常见的数据库管理系统、数据库的三级模式和二级映像等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)