这个要看你想看数据库哪方面的,因为数据库所涵盖的范畴很大,比如说数据库的基本理论,简单点那你可以看一些本科教材,比如说数据库系统概论 是一个姓萨的写的,如果是想看一些具体的数据库DBMS方面的书,比如说Orecle 、SQL Server等,这样书太多了,都是工具性质的,可以选一本自己看着习惯的;再或者你想了解一些数据库方面的一些技术,比如说数据挖掘、数据仓库的话,我个人认为可以看看机械出版社出版的那些大砖头。呵呵,很多的。
理解Mysql索引的原理和数据结构有助于我们更好的使用索引以及进行SQL优化,索引是在存储引擎层面实现的,所以不同的引擎实现的索引也有一定的区别,但是在生产环境中,我们最常用的就是InnoDB引擎和B树索引,OK,那本文要讨论的重点也同样是 InnoDB引擎下的B树索引 。
我们建立一个表来进行测试,表的DDL如下所示,我们要关注的是表t_book上的主键索引id和name author publish_date三列组成的索引test_index。
Mysql中的B树索引是使用B+树实现的,关于B+树的数据结构个人认为美团点评技术博客中Mysql索引原理及慢查询优化一文中介绍的非常详实,B+树的数据结构如下图所示。
图中浅蓝色块即磁盘块,根节点磁盘块中存储17和35两个数据,其中指针P1指向小于17的数据,指针P2指向大于17小于35的数据,指针P3指向大于35的数据。显然通过B+树索引查询数据与B+树的高度有关,如上图的B+树索引查找一个叶子节点的数据只需要三次磁盘IO,对于Mysql来说三层的B+树可以索引上百万的数据,这对于查询效率的提升是巨大的。
总结起来Mysql中B树索引有以下关键特点:
Mysql中的B树索引有两种数据存储形式,一种为聚簇索引,一种为二级索引。
InnoDB一般会使用表的主键来作为聚簇索引,如果一个表没有主键(不建议这么玩)InnoDB会选用一个唯一非空索引来代替,如果没有这样的索引,InnoDB会隐式建立一个聚簇索引。聚簇的含义即是数据行和相邻的键值紧凑的存储在一起,占据一块连续的磁盘空间,因此通过聚簇索引访问数据可以有效减少随机IO,通常使用聚簇索引查找比非聚簇索引查找速度更快。以我们建立的表t_book为例,聚簇索引即为自增主键id,其B树索引数据结构可以用下图来表示。
聚簇索引有以下关键特点:
InnoDB的B树索引中除了聚簇索引,就都是二级索引了,二级索引的含义是索引的叶子节点除了存储了索引值,还存储了主键id,在使用二级索引进行查询时,查找到二级索引B树上的叶子节点后还需要去聚簇索引上去查询真实数据,但是这里有一种特殊情况,即查询所需的所有字段在二级索引中都可以获取,此时就不需要再去回表查数据了,这种情况就是索引覆盖(EXPLAIN中EXTRA列中会出现USING INDEX,本文只关注索引结构,不详细讨论索引覆盖等技术的使用,如果深入理解索引的数据结构,索引覆盖等技术也没有那么神秘)。
在我们的测试表t_book中,test_index即为二级索引,由于我们把除了主键id所有的列都作为一个联合索引,所以在这个表上的查询都可以使用索引覆盖技术,但是具体生产环境中也不建议总是采用这种做法,索引列的增加也会增大插入更新数据时的索引更新成本,具体的优化要视具体情况决策。t_book上的二级索引test_index的索引结构由下图表示。
通过以上结构,我们可以推断出二级索引的以下关键特点:
索引覆盖:
最左前缀匹配:
二级索引可以说是我们在Mysql中最常用的索引,通过理解二级索引的索引结构可以更容易理解二级索引的特性和使用。
最后聊点轻松的索引结构,哈希索引就是通过哈希表实现的索引,即通过被索引的列计算出哈希值,并指向被索引的记录。
哈希索引有如下特性:
Mysql索引原理及慢查询优化
高性能Mysql 第三版
(1)select 书名 from 图书 where 定价>20
(2)select avg(定价) 均价 from 图书
(3)update 图书 set 定价=定价95% where 出版社编号 in
(select 出版社编号 from 出版社 where 出版社名称='科学出版社' )
(4)select 书名,第一作者姓名,出版社名称 from 图书,作者,出版社,著书
where 图书图书编号=著书图书编号 and 著书作者编号=作者作者编号
and 图书出版社编号=出版社出版社编号
(5)create view 图书信息(图书编号,书名,出版社编号,定价)
as select 图书编号,书名,出版社名称,定价
from 图书,出版社 where 图书出版社编号=出版社出版社编号 and
出版社名称='人们出版社'
你的报酬表的创建肯定有错,怎么主码和外码都是职工号和工程编号。
我把上面的几个问题给你写出来了,你就模仿我写的做一下下面的问题,自己锻炼锻炼,
如果还不会的话再问我。
数据库课程设计
题目:小型超市管理系统
1、项目计划
11系统开发目的
(1)大大提高超市的运作效率;
(2)通过全面的信息采集和处理,辅助提高超市的决策水平;
(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。
12背景说明
21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。
13项目确立
针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。
14应用范围
本系统适应于各种小型的超市。
15 定义
(1)商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。
(2)交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。
(3)商品积压:在一定时期内,远无法完成销售计划的商品会造成积压。
(4)促销:在一定时期内,某些商品会按低于原价的促销价格销售。
库存告警提示:当商品的库存数量低于库存报警数量时发出提示。
(5)盘点:计算出库存、销售额、盈利等经营指标。
16 参考资料
《数据库原理及设计》 陶宏才编 清华大学出版社
《SQL Server 2000 实用教程》范立南编 清华大学出版社
《SQL Server 2000 编程员指南》李香敏编 北京希望电子出版社
《轻松搞定 SQL Server 2000 程序设计》Rebecca MRiordan编
《软件工程规范》Watts SHumphrey编 清华大学出版社
《软件工程理论与实践》 Shari Lawrence Pfleeger编 清华大学出版社
《软件需求分析》 Swapna Kishore编 机械工业出版社
《软件工程思想》 林锐编
2、逻辑分析与详细分析
21系统功能
(1)、零售前台(POS)管理系统,本系统必须具有以下功能:
商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑 *** 作水平层次的人员均能准确快速地进行商品扫描录入。
收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。 会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。
安全性:OS登陆、退出、换班与 *** 作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法 *** 作。
独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业
(2)、后台管理系统,本系统必须具备以下功能
进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。
销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。
库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。
人员管理: 员工、会员、供货商、厂商等基本信息登记管理。 员工 *** 作权限管理。 客户销售权限管理。
(3)系统结构
系统总体结构
模块子系统结构
功能描述:商品录入子系统要求能快速录入商品,因此必须支持条形码扫描。
功能描述:收银业务子系统能计算交易总额,打印交易清单,并根据会员卡打折。
功能描述:进货管理子系统可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。
功能描述:销售管理子系统可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。
功能描述:库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。
功能描述:人员管理子系统提供基本信息登记管理,员工 *** 作权限管理,客户销售权限管理的功能。
22、流程图
前台管理系统
顶层DFD图
第0层DFD图
第1层DFD图
23、户类型与职能
(1)、员工(营业员):
通过商品条形码扫描输入商品到购买清单
*** 作软件计算交易总金额
*** 作软件输出交易清单
对会员进行会员卡扫描以便打折
(2)、:超市经理
*** 作软件录入商品,供货商,厂商
*** 作软件制定进货计划
查询打印计划进货与入库记录
*** 作软件控制商品销售与否
查询打印销售情况
*** 作软件生成销售排行榜
查询库存明细记录
根据软件发出的库存告警进行入货
*** 作软件进行盘点计算
(3)、总经理:
基本信息登记管理
员工 *** 作权限管理
客户销售权限管理
24、统开发步骤
确定参与者和相关的用况
为每个用况设计过程
建立顺序图,确定每个脚本中对象的协作
创建类,确定脚本中的对象
设计, 编码, 测试, 集成类
为过程编写系统测试案例
运行测试案例,检验系统
25、系统环境需求
系统模式
本系统采用C/S模式作为开发模式
硬件环境
服务器端:
高性能的计算机一台,
普通的双绞线作为连接。
客户端: 普通的计算机或者工作站,
普通的双绞线作为连接。
软件环境
服务器端:安装SQL Server 2000的服务器版本,
安装windows 2000服务器版本,
配置了诺顿等必须的防毒软件。
客户端: 安装SQL Server2000的服务器版本,
安装了VB等可视化开发工具软件,
安装windows2000服务器版本。
26、系统安全问题
信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库, *** 作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。
系统要能重建
系统应该是可审查的
系统应能进行有效控制,抗干扰能力强
系统使用者的使用权限是可识别的
3、基于UML的建模
31语义规则
用例模型(use cases view)(用例视图)的基本组成部件是用例(use case)、角色(actor)和系统(system)。用例用于描述系统的功能,也就是从外部用户的角度观察,系统应支持哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,一个完整的系统中通常包含若干个用例,每个用例具体说明应完成的功能,代表系统的所有基本功能(集)。角色是与系统进行交互的外部实体,它可以是系统用户,也可以是其它系统或硬件设备,总之,凡是需要与系统交互的任何东西都可以称作角色。系统的边界线以内的区域(即用例的活动区域)则抽象表示系统能够实现的所有基本功能。在一个基本功能(集)已经实现的系统中,系统运转的大致过程是:外部角色先初始化用例,然后用例执行其所代表的功能,执行完后用例便给角色返回一些值,这个值可以是角色需要的来自系统中的任何东西。
UML:是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示;它不是一种可视化的程序设计语言而是一种可视化的建模语言;不是工具或知识库的规格说明而是一种建模语言规格说明是一种表示的标准;不是过程也不是方法但允许任何一种过程和方法使用它。
用例(use case):
参与者(actor):
32、UML模型
321、系统UML模型
322、子系统UML模型
(1)零售前台(POS)管理系统用例视图
(2)后台管理系统用例视图
33、系统实现图
4、超市销售系统概念设计文档
(1)、系统ER图
(2)、系统ER图说明
1) 商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;
2) 每个顾客可以购买多种商品,不同商品可由不同顾客购买;
3) 每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。
(3)、视图设计
1) 交易视图(v_Dealing)——用于查询交易情况的视图;
2) 计划进货视图(v_PlanStock)——用于查询进货计划的视图;
3) 销售视图(v_Sale)——用于查询销售明细记录的视图;
4) 入库视图(v_Stock)——用于查询入库情况的视图。
5、逻辑设计文档
(1)、系统关系模型
a) 商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)
b) 用户表(用户编号,用户名称,用户密码,用户类型)
c) 会员表(会员编号,会员卡号,累积消费金额,注册日期)
d) 销售表(销售编号,商品编号,销售数量,销售金额,销售日期)
e) 交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)
f) 进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)
g) 供货商表(供货商编号,供货商名称,供货商地址,供货商电话)
h) 厂商表(厂商编号,厂商名称,厂商地址,厂商电话)
(2)、系统数据库表结构
数据库表索引
表名 中文名
MerchInfo 商品信息表
User 用户表
Menber 会员表
Sale 销售表
Dealing 交易表
Stock 进货入库表
Provide 供货商表
Factory 厂商表
商品信息表(MerchInfo)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
MerchID int 4 P Not null 商品编号
MerchName Varchar 50 Not null 商品名称
MerchPrice Money 4 Not null 价格
MerchNum Int 4 Not null 库存数量
CautionNum Int 4 Not null 库存报警数量
PlanNum Int 4 null 计划进货数
BarCode Varchar 50 Not null 条形码
SalesProPrice Money 4 促销价格
SalesProDateS Datetime 8 促销起日期
SalesProDateE Datetime 8 促销止日期
AllowAbate Int 4 Not null 允许打折
AllowSale Int 4 Not null 允许销售
FactoryID Varchar 10 F Not null 厂商编号
ProvideID Varchar 10 F Not null 供货商编号
用户表(User)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
UserID varchar 10 P Not null 用户编号
UserName Varchar 25 Not null 用户名称
UserPW Varchar 50 Not null 用户密码
UserStyle Int 4 Not null 用户类型
会员表(Menber)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
MemberID Varchar 10 P Not null 会员编号
MemberCard Varchar 20 Not null 会员卡号
TotalCost Money 4 Not null 累积消费金额
RegDate Datetime 8 Not null 注册日期
销售表(Sale)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
SaleID Varchar 10 P Not null 销售编号
MerChID Varchar 10 F Not null 商品编号
SaleDate Datetime 8 Not null 销售日期
SaleNum Int 4 Not null 销售数量
SalePrice Money 4 Not null 销售单额
交易表(Dealing)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
DealingID Varchar 10 P Not null 交易编号
DealingPrice Money 4 Not null 交易金额
DealingDate Money 4 Not null 交易日期
MemberID Varchar 10 会员卡号
UserName Varchar 10 F Not null 用户名称
入库纪录表(Stock)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
StockID Varchar 10 P Not null 入库编号
MerchID Varchar 10 F Not null 入库商品编号
MerchNum Int 4 Not null 入库数量
MerchPrice Money 4 Not null 单额
TotalPrice Money 4 Not null 总额
StockDate Datetime 8 Datetime 入库日期
PlanDate Datetime 8 Datetime 计划进货日期
StockState Int 4 Not null 入库状态
供货商表(Provide)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
ProvideID varchar 10 P Not null 供货商编号
ProvideName Varchar 50 Not null 供货商名称
ProvideAddress Varchar 250 供货商地址
ProvidePhone Varchar 25 供货商电话
厂商表(Provide)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
FactoryID varchar 10 P Not null 厂商编号
FactoryName Varchar 50 Not null 厂商名称
FactoryAddress Varchar 250 厂商地址
FactoryPhone Varchar 25 厂商电话
6、物理设计文档
/----------创建数据库----------/
create database SuperMarketdb
on primary
(
name=SuperMarketdb,
filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdbmdf',
size=100MB,
maxsize=200MB,
filegrowth=20MB
)
log on
(
name=SuperMarketlog,
filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdbldf',
size=60MB,
maxsize=200MB,
filegrowth=20MB
)
go
/----------创建基本表----------/
use [SuperMarketdb]
go
/创建交易表/
CREATE TABLE Dealing (
DealingID int identity(1,1) Primary key ,
DealingDate datetime NOT NULL ,
DealingPrice money NOT NULL ,
UserName varchar(25) NULL ,
MemberCard varchar(20) NULL
)
GO
/创建厂商表/
CREATE TABLE Factory (
FactoryID varchar(10) Primary key ,
FactoryName varchar(50) NOT NULL ,
FactoryAddress varchar(250) NULL ,
FactoryPhone varchar(50) NULL
)
GO
/创建会员表/
CREATE TABLE Member (
MemberID varchar(10) Primary key ,
MemberCard varchar(20) NOT NULL ,
TotalCost money NOT NULL ,
RegDate datetime NOT NULL
)
GO
/创建商品信息表/
CREATE TABLE MerchInfo (
MerchID int identity(1,1) Primary key ,
MerchName varchar(50) Unique NOT NULL ,
MerchPrice money NOT NULL ,
MerchNum int NOT NULL ,
CautionNum int NOT NULL ,
PlanNum int NOT NULL ,
BarCode varchar(20) Unique NOT NULL ,
SalesProPrice money NULL ,
SalesProDateS datetime NULL ,
SalesProDateE datetime NULL ,
AllowAbate int NOT NULL ,
AllowSale int NOT NULL ,
FactoryID int NOT NULL ,
ProvideID int NOT NULL
)
GO
/创建供应商表/
CREATE TABLE Provide (
ProvideID varchar(10) Primary key ,
ProvideName varchar(50) NOT NULL ,
ProvideAddress varchar(250) NULL ,
ProvidePhone varchar(25) NULL
)
GO
/创建销售表/
CREATE TABLE Sale (
SaleID int identity(1,1) Primary key ,
MerChID int NOT NULL ,
SaleDate datetime NOT NULL ,
SaleNum int NOT NULL,
SalePrice money NOT NULL
)
GO
/创建入库表/
CREATE TABLE Stock (
StockID int identity(1,1) Primary key ,
MerchID int NOT NULL ,
MerchNum int NOT NULL ,
MerchPrice money NULL ,
TotalPrice money NULL ,
PlanDate datetime NULL ,
StockDate datetime NULL,
StockState int NOT NULL
)
GO
/创建用户表/
CREATE TABLE User (
UserID varchar(10) Primary key ,
UserName varchar(25) NOT NULL ,
UserPW varchar(50) NOT NULL ,
UserStyle int NOT NULL ,
)
GO
/----------创建表间约束----------/
/商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束/
ALTER TABLE MerchInfo ADD
CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY
(
[FactoryID]
) REFERENCES Factory (
[FactoryID]
),
CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY
(
[ProvideID]
) REFERENCES Provide (
[ProvideID]
)
GO
/销售表中商品编号与商品信息表之间的外键约束/
ALTER TABLE Sale ADD
CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY
(
[MerChID]
) REFERENCES MerchInfo (
[MerchID]
) ON DELETE CASCADE
GO
/入库表中商品编号与商品信息表之间的外键约束/
ALTER TABLE Stock ADD
CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY
(
[MerchID]
) REFERENCES MerchInfo (
[MerchID]
) ON DELETE CASCADE
GO
/----------创建索引----------/
/在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引/
CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)
GO
/在商品信息表上建立一个以商品编号为索引项的非聚集索引/
CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)
GO
/在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引/
CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)
GO
/在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引/
CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)
GO
/----------创建视图----------/
/创建用于查询交易情况的视图/
CREATE VIEW v_Dealing
AS
SELECT DealingDate as 交易日期,
UserName as 员工名称,
MemberCard as 会员卡号,
DealingPrice as 交易金额
FROM Dealing
GO
/创建用于查询进货计划的视图/
CREATE VIEW v_PlanStock
AS
SELECT StockStockID as SID,
MerchInfoMerchName as 商品名称,
MerchInfoBarCode as 条形码,
FactoryFactoryName as 厂商,
ProvideProvideName as 供货商,
StockMerchNum as 计划进货数量,
StockPlanDate as 计划进货日期
FROM Stock,MerchInfo,Provide,Factory
Where StockMerchID = MerchInfoMerchID
and ProvideProvideID=MerchInfoProvideID
and FactoryFactoryID=MerchInfoFactoryID
and StockStockState=0
GO
/创建用于查询销售明细记录的视图/
CREATE VIEW v_Sale
AS
SELECT MerchInfoMerchName as 商品名称,
MerchInfoBarCode as 条形码,
MerchInfoMerchPrice as 商品价格,
SaleSalePrice as 销售价格,
SaleSaleNum as 销售数量,
SaleSaleDate as 销售日期
FROM Sale INNER JOIN
MerchInfo ON SaleMerChID = MerchInfoMerchID
GO
/创建用于查询入库情况的视图/
CREATE VIEW v_Stock
AS
SELECT MerchInfoMerchName as 商品名称,
MerchInfoBarCode as 条形码,
FactoryFactoryName as 厂商,
ProvideProvideName as 供货商,
StockMerchPrice as 入库价格,
StockMerchNum as 入库数量,
StockTotalPrice as 入库总额,
StockStockDate as 入库日期
FROM Stock,MerchInfo,Provide,Factory
Where StockMerchID = MerchInfoMerchID
and ProvideProvideID=MerchInfoProvideID
and FactoryFactoryID=MerchInfoFactoryID
and StockStockState=1
GO
7、小结
和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本, 提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力, 提供有效的技术保障。
由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:
本系统只适合小型超市使用,不能适合中大型超市使用;
超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能;
对于以上出现的问题,我们深表歉意,如发现还有其它问题,希望老师批评指正。
数工讨论群:27955282 数工考试交流群:37263632
你们交流。
2004数据库系统工程师级大纲
一、考试说明
1考试要求
(1)掌握计算机体系结构以及各主要部件的性能和基本工作原理;
<广告>
(2)掌握 *** 作系统、程序设计语言的基础知识,了解编译程序的基本知识;
(3)熟练掌握常用数据结构和常用算法;
(4)熟悉软件工程和软件开发项目管理的基础知识;
(5)熟悉计算机网络的原理和技术;
(6)掌握数据库原理及基本理论;
(7)掌握常用的大型数据库管理系统的应用技术;
(8)掌握数据库应用系统的设计方法和开发过程;
(9)熟悉数据库系统的管理和维护方法,了解相关的安全技术;
(10)了解数据库发展趋势与新技术;
(11)掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识;
(12)了解信息化、计算机应用的基础知识;
(13)正确阅读和理解计算机领域的英文资料。
2 通过本考试的合格人员能参与应用信息系统的规划、设计、构建、运行和管理,能按照用户需求,设计、建立、运行、维护高质量的数据库和数据仓库;作为数据管理员管理信息系统中的数据资源,作为数据库管理员建立和维护核心数据库;担任数据库系统有关的技术支持,同时具备一定的网络结构设计及组网能力;具有工程师的实际工作能力和业务水平,能指导计算机技术与软件专业助理工程师(或技术员)工作。
3 本考试设置的科目包括
(1)信息系统知识,考试时间为150分钟,笔试;
(2)数据库系统设计与管理,考试时间为150分钟,笔试。
二、考试范围
考试科目1:信息系统知识
1 计算机系统知识
11 硬件知识
111 计算机体系结构和主要部件的基本工作原理
CPU和存储器的组成、性能、基本工作原理
常用I/O设备、通信设备的性能,以及基本工作原理
I/O接口的功能、类型和特点
CISC/RISC,流水线 *** 作,多处理机,并行处理
112 存储系统
虚拟存储器基本工作原理,多级存储体系
RAID类型和特性
113 安全性、可靠性与系统性能评测基础知识
诊断与容错
系统可靠性分析评价
计算机系统性能评测方法
12 数据结构与算法
121 常用数据结构
数组(静态数组、动态数组)
线性表、链表(单向链表、双向链表、循环链表)
栈和队列
树(二叉树、查找树、平衡树、遍历树、堆)、图、集合的定义、存储和 *** 作
Hash(存储位置计算、碰撞处理)
122 常用算法
排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法
算法与数据结构的关系,算法效率,算法设计,算法描述(流程图、伪代码、决策表),算法的复杂性
13 软件知识
131 *** 作系统知识
*** 作系统的类型、特征、地位、内核(中断控制)、进程、线程概念
处理机管理(状态转换、同步与互斥、信号灯、分时轮转、抢占、死锁)
存储管理(主存保护、动态连接分配、分段、分页、虚存)
设备管理(I/O控制、假脱机、磁盘调度)
文件管理(文件目录、文件的结构和组织、存取方法、存取控制、恢复处理、共享和安全)
作业管理(作业调度、作业控制语言(JCL)、多道程序设计)
汉字处理,多媒体处理,人机界面
网络 *** 作系统和嵌入式 *** 作系统基础知识
*** 作系统的配置
132 程序设计语言和语言处理程序的知识
汇编、编译、解释系统的基础知识和基本工作原理
程序设计语言的基本成分:数据、运算、控制和传输,程序调用的实现机制
各类程序设计语言的主要特点和适用情况
14 计算机网络知识
网络体系结构(网络拓扑、OSI/RM、基本的网络协议)
传输介质,传输技术,传输方法,传输控制
常用网络设备和各类通信设备
Client/Server结构、Browser/Server结构、Browser/Web/Datebase结构
LAN拓扑,存取控制,LAN的组网,LAN间连接,LAN-WAN连接
因特网基础知识及应用
网络软件
网络管理
网络性能分析
网络有关的法律、法规
2 数据库技术
21 数据库技术基础
211 数据库模型
数据库系统的三级模式(概念模式、外模式、内模式),两级映像(概念模式/外模式、外模式/内模式)
数据库模型:数据模型的组成要素,概念数据模型ER图(实体、属性、关系),逻辑数据模型(关系模型、层次模型、网络模型)
212 数据库管理系统的功能和特征
主要功能(数据库定义、数据库 *** 作、数据库控制、事务管理、用户视图)
特征(确保数据独立性、数据库存取、同时执行过程、排它控制、故障恢复、安全性、完整性)
RDB(关系数据库),OODB(面向对象数据库),ORDB(对象关系数据库),NDB(网状数据库)
几种常用Web数据库的特点
213 数据库系统体系结构
集中式数据库系统
Client/Server数据库系统
并行数据库系统
分布式数据库系统
对象关系数据库系统
22 数据 *** 作
221 关系运算
关系代数运算(并、交、差、笛卡儿积、选择、投影、连接、除)
元组演算
完整性约束
222 关系数据库标准语言(SQL)
SQL的功能与特点
用SQL进行数据定义(表、视图、索引、约束)
用SQL进行数据 *** 作(数据检索、数据插入/删除/更新、触发控制)
安全性和授权
程序中的API,嵌入SQL
23 数据库的控制功能
数据库事务管理(ACID属性)
数据库备份与恢复技术(UNDO、REDO)
并发控制
24 数据库设计基础理论
241 关系数据库设计
函数依赖
规范化(第一范式、第二范式、第三范式、BC范式、第四范式、第五范式)
模式分解及分解应遵循的原则
242 对象关系数据库设计
嵌套关系、 复杂类型,继承与引用类型
与复杂类型有关的查询
SQL中的函数与过程
对象关系
25 数据挖掘和数据仓库基础知识
数据挖掘应用和分类
关联规则、聚类
数据仓库的成分
数据仓库的模式
26 多媒体基本知识
261 多媒体技术基本概念
多媒体系统基础知识
常用多媒体文件格式
262 多媒体压缩编码技术
多媒体压缩编码技术
统计编码
预测编码
编码的国际标准
263多媒体技术应用
简单图形的绘制,图像文件的处理方法
音频和视频信息的应用
多媒体应用开发过程
27 系统性能知识
性能计算(响应时间、吞吐量、周转时间)
性能指标和性能设计
性能测试和性能评估
28 计算机应用基础知识
信息管理、数据处理、辅助设计、科学计算,人工智能等基础知识
远程通信服务及相关通信协议基础知识
3 系统开发和运行维护知识
31 软件工程、软件过程改进和软件开发项目管理知识
软件工程知识
软件开发生命周期阶段目标和任务
软件开发项目基础知识(时间管理、成本管理、质量管理、人力资源管理、风险管理等)及其常用管理工具
主要的软件开发方法(生命周期法、原型法、面向对象法、CASE)
软件开发工具与环境知识
软件质量管理基础知识
软件过程改进基础知识
软件开发过程评估、软件能力成熟度评估的基础知识
32 系统分析基础知识
系统分析的目的和任务
结构化分析方法(数据流图(DFD)和数据字典(DD),实体关系图(ERD),描述加工处理的结构化语言)
统一建模语言(UML)
系统规格说明书
33 系统设计知识
系统设计的目的和任务
结构化设计方法和工具(系统流程图、HIPO图、控制流程图)
系统总体结构设计(总体布局,设计原则,模块结构设计,数据存取设计,系统配置方案)
系统详细设计(代码设计、数据库设计、用户界面设计、处理过程设计)
系统设计说明书
34 系统实施知识
系统实施的主要任务
结构化程序设计、面向对象程序设计、可视化程序设计
程序设计语言的选择、程序设计风格
系统测试的目的、类型,系统测试方法(黑盒测试、白盒测试、灰盒测试)
测试设计和管理(错误曲线、错误排除、收敛、注入故障、测试试用例设计、系统测试报告)
系统转换基础知识
35 系统运行和维护知识
系统运行管理知识
系统维护知识
系统评价知识
4 安全性知识
安全性基本概念(网络安全、 *** 作系统安全、数据库安全)
计算机病毒的防治,计算机犯罪的防范,容灾
访问控制、防闯入、安全管理措施
加密与解密机制
风险分析、风险类型、抗风险措施和内部控制
5标准化知识
标准化意识,标准化的发展,标准出台过程
国际标准、国家标准、行业标准、企业标准基本知识
代码标准、文件格式标准、安全标准软件开发规范和文档标准
标准化机构
6信息化基础知识
信息化意识
全球信息化趋势、国家信息化战略、企业信息化战略和策略
有关的法律、法规
远程教育、电子商务、电子政务等基础知识
企业信息资源管理基础知识
7计算机专业英语
掌握计算机技术的基本词汇
能正确阅读和理解计算机领域的英文资料
考试科目2:数据库系统设计与管理
1数据库设计
11理解系统需求说明
了解用户需求、确定系统范围
确定应用系统数据库的各种关系
现有环境与新系统环境的关系
新系统中的数据项、数据字典、数据流
12 系统开发的准备
选择开发方法,准备开发环境,制订开发计划
13 设计系统功能
选择系统机构,设计各子系统的功能和接口,设计安全性策略、需求和实现方法,制定详细的工作流和数据流
14 数据库设计
141 设计数据模型
概念结构设计(设计ER模型)
逻辑结构设计(转换成DBMS所能接收的数据模型)
评审设计
142 物理结构设计
设计方法与内容
存取方法的选择
评审设计与性能预测
143 数据库实施与维护
数据加载与应用程序调试
数据库试运行
数据库运行与维护
144 数据库的保护
数据库的备份与恢复
数据库的安全性
数据库的完整性
数据库的并发控制
15 编写外部设计文档
编写系统说明书(系统配置图、各子系统关系图、系统流程图,系统功能说明、输入输出规格说明、数据规格说明、用户手册框架)
设计系统测试要求
16 设计评审
2 数据库应用系统设计
21 设计数据库应用系统结构
信息系统的架构(如Client/Server)与DBMS
多用户数据库环境(文件服务器体系结构、Client/Server体系结构)
大规模数据库和并行计算机体系结构(SMP、MPP)
中间件角色和相关工具
按构件分解,确定构件功能规格以及构件之间的接口
22 设计输入输出
屏幕界面设计,设计输入输出检查方法和检查信息
数据库交互与连接(掌握C程序设计语言,以及Java、Visual Basic、Visual C++、PowerBuilder、Delphi中任一种开发工具与数据库互连的方法(如何与数据库服务器沟通))
23 设计物理数据
分析事务在数据库上运行的频率和性能要求,确定逻辑数据组织方式、存储介质,设计索引结构和处理方式
将逻辑数据结构变换成物理数据结构,计算容量(空间代价),确定存取方法(时间效率)、系统配置(维护代价)并进行优化
24 设计安全体系
明确安全等级
数据库的登录方式
数据库访问
许可(对象许可、命令许可、授权许可的方法)
25 应用程序开发
251 应用程序开发
选择应用程序开发平台
系统实施顺序
框架开发
基础小组的程序开发
源代码控制
版本控制
252 模块划分(原则、方法、标准)
253 编写程序设计文档
模块规格说明书(功能和接口说明、程序处理逻辑的描述、输入输出数据格式的描述)
测试要求说明书(测试类型和目标,测试用例,测试方法)
254 程序设计评审
26 编写应用系统设计文档
系统配置说明、构件划分图、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、程序设计文档、文件设计文档、数据库设计文档
27 设计评审
3 数据库应用系统实施
31 整个系统的配置与管理
32 常用数据库管理系统的应用(SQL Server、Oracle、Sybase、DB2、Access或Visual Foxpro)
创建数据库
创建表、创建索引、创建视图、创建约束、创建UDDT(用户自定义类型)
创建和管理触发器
建立安全体系
33 数据库应用系统安装
拟定系统安装计划(考虑费用、客户关系、雇员关系、后勤关系和风险等因素)
拟定人力资源使用计划(组织机构安排的合理性)
直接安装(安装新系统并使系统快速进入运行状态)
并行安装(新旧系统并行运行一段时间)
阶段安装(经过一系列的步骤和阶段使新系统各部分逐步投入运行)
34 数据库应用系统测试
拟定测试目标、计划、方法与步骤
数据加载,准备测试数据
指导应用程序员进行模块测试进行验收
准备系统集成测试环境测试工具
写出数据库运行测试报告
35 培训与用户支持
4数据库系统的运行和管理
41 数据库系统的运行计划
运行策略的确定
<广告>
确定数据库系统报警对象和报警方式
数据库系统的管理计划(执行,故障/恢复,安全性,完整性,用户培训和维护)
42 数据库系统的运行和维护
新旧系统的转换
收集和分析报警数据(执行报警、故障报警、安全报警)
连续稳定的运行
数据库维护(数据库重构、安全视图的评价和验证、文档维护)
数据库系统的运行统计(收集、分析、提出改进措施)
关于运行标准和标准改进一致性的建议
数据库系统的审计
43 数据库管理
数据字典和数据仓库的管理
数据完整性维护和管理(实体完整性、参照完整性)
数据库物理结构的管理(保证数据不推迟访问)
数据库空间及碎片管理
备份和恢复(顺序、日志(审计痕迹)、检查点)
死锁管理(集中式、分布式)
并发控制(可串行性、锁机制、时间戳、优化)
数据安全性管理(加密、安全、访问控制、视图、有效性确认规则)
数据库管理员(DBA)职责
44 性能调整
SQL语句的编码检验
表设计的评价
索引的改进
物理分配的改进
设备增强
数据库性能优化
45 用户支持
用户培训
售后服务
5 SQL
51 数据库语言
数据库语言的要素
数据库语言的使用方式(交互式和嵌入式)
52 SQL概述
SQL语句的特征
SQL语句的基本成分
53 数据库定义
创建数据库(Create Datebase)、创建表(Create Table)
定义数据完整性
修改表(Alter Table)、删除表(Drop Table)
定义索引(Create Index)、删除索引(Drop Index)
定义视图(Create View)、删除视图(Drop View)、更新视图
54 数据 *** 作
Select语句的基本机构
简单查询
SQL中的选择、投影
字符串比较,涉及空值的比较
日期时间,布尔值,输出排序
多表查询
避免属性歧义
SQL中的连接、并、交、差
SQL中的元组变量
子查询
55 完整性控制与安全机制
主键(Primary Key)约束
外键(Foreign Key)约束
属性值上的约束(Null、Check、Create Domain)
全局约束(Create Assertions)
权限、授权(Grant)、销权(Revoke)
56 创建触发器(Create Trigger)
57 SQL使用方式
交互式SQL
嵌入式SQL
SQL与宿主语言接口(Declare、共享变量、游标、卷游标)
动态SQL
API
58 SQL 标准化
6 网络环境下的数据库
61 分布式数据库
611 分布式数据库的概念
分布式数据库的特点与目标
612 分布式数据库的体系结构
分布式数据库的模式结构
数据分布的策略(数据分片、分布透明性)
分布式数据库管理系统
613 分布式查询处理和优化
614 分布式事务管理
分布式数据库的恢复(故障、恢复、2段提交、3段提交)
分布式数据库的透明性(局部、分裂、复制、处理、并发、执行)
615 分布式数据库系统的应用
62 网络环境下数据库系统的设计与实施
数据的分布设计
负载均衡设计
数据库互连技术
63 面向Web的DBMS技术
三层体系结构
动态Web网页
ASP、JSP、XML的应用
7数据库的安全性
71 安全性策略的理解
数据库视图的安全性策略
数据的安全级别(最重要的、重要的、注意、选择)
72 数据库安全测量
用户访问控制(采用口令等)
程序访问控制(包含在程序中的SQL命令限制)
表的访问控制(视图机制)
控制访问的函数和 *** 作
外部存储数据的加密与解密
8 数据库发展趋势与新技术
81 面向对象数据库(OODBMS)
811 OODBMS的特征
812 面向对象数据模型
对象结构、对象类、继承与多重继承、对象标识、对象包含、对象嵌套
813 面向对象数据库语言
814 对象关系数据库系统(ORDBMS)
嵌套关系
复杂类型
继承、引用类型
与复杂类型有关的查询
函数与过程
面向对象与对象关系
ORDBMS应用领域
82 企业资源计划(ERP)和数据库
821 ERP概述
基本MRP(制造资源计划)、闭环MRP、ERP
基本原理、发展趋势
ERP设计的总体思路(一个中心、两类业务、三条干线)
822 ERP与数据库
运行数据库与ERP数据模型之间的关系
运行数据库与ERP数据库之间的关系
823 案例分析
83 决策支持系统的建立
决策支持系统的概念
数据仓库设计
数据转移技术
联机分析处理(OLAP)技术
企业决策支持解决方案
联机事务处理(OLTP)
图像数据在数据库内部的存储原理:
XML 是文本型的数据交换结构,对于字符类型的文本交换非常的方便,实际工作中我们往往需要通过 XML 将二进制格式的图形图像信息数据进行数据交换。本文从介绍 BASE64 编码的原理入手,通过采用 C 语言编写 DB2 的嵌入存储过程,实现了在数据库内存中将文本格式的文件到二进制 BLOB 字段之间的转换,并且就性能优化等提出若干建议,该设计思路和程序可以广泛的应用到图像图形数据在 XML 的存储和转换。
--------------------------------------------------------------------------------
回页首
XML 存储图形图像的基本原理
XML 作为一种非常广泛的数据交换的载体被广泛的应用到了各行各业的数据交换中。对于图形图像数据的转换,需要采用 Base64 编码将二进制格式的图形图像信息转换成文本格式再进行传输。
Base64 编码转换的思想是通过 64 个 ASCII 字符码对二进制数据进行重新编码组合,即将需要转换的数据每三个字节(24 位)为一组,再将这 24 位数据按每组 6 位进行重新划分,在每组的最高 2 位填充 0 最终成一个完整的 8 位字节。如果所要编码的数据的字节数不是 3 的整数倍,需要在最后一组数据填充 1 到 2 个字节的 0 字节。例如:我们对 ABC 进行 BASE64 的编码,ABC 的编码值:A(65), B(66), C(67)。再取二进制 A(01000001)B(01000010)C(01000011)连接起来构成 010000010100001001000011,然后按 6 位为单位分成 4 个数据块并在最高位填充两个 0 后形成 4 个字节的编码后的值(00010000)(00010100)(00001001)(00000011)。再将 4 个字节的数据转换成十进制数为(16)(20)(19)(3)。最后根据 BASE64 给出的 64 个基本字符表,查出对应的 ASCII 码字符(Q)(U)(J)(D)。这里的值实际就是数据在字符表中的索引。
BASE64 字符表:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789。
某项目的数据交换采用 XML 的为介质,XML 的结构包括个人基本信息:姓名、性别、相片等信息,其中相片信息是采用经过 BASE64 函数转换后的文本型数据,图像图形信息通过 BASE64 进行数据转换后,形成文本格式的数据类型,再将相应的数据存放到 XML 中,最终形成可供交换的文本型的 XML 数据结构。
XML 的数据结构如下所示:
<xml version=”10” encoding=”UTF-8” >
<HeadInfo>
<TotalNum>10<TotalNum>
<TransDate>2007-10-18</TransDate>
</HeadInfo>
<Data>
<Name> 张三 </Name>
<Sex> 男 </Sex>
<Photo>/9j/4AAQSkZJRgABAQAAAQABAAD</Photo>
<Data>
--------------------------------------------------------------------------------
回页首
相片数据在 DB2 嵌入式 C 程序的实现方法
该项目要求能够在 DB2 数据库中将相片数据存储为二进制 BLOB 格式。我们采用 DATASTAGE 进行 XML 数据加载,将 XML 中的姓名、性别等基本数据项加载到相应的字段,其中文本型的相片数据则加载到 CLOB 字段中,再按照 BASE64 的编码规则进行逆向转码,整个数据流程如下图所示:
图 1 相片存储流程图
用户的相片每天的更新数据为 30 万条,而且每个相片的平均大于 32KB,为了获得最佳的数据库性能,选择采用 C 存储过程的方式开发了 BASE64 的转换函数。每次函数读取存储在 CLOB 字段的文本格式数据全部存储到内存中,并且通过 decode 函数在内存中进行转码,转码后再存入数据库中。
程序的清单 1 是逐行读取 CLOB 字段,并且调用 decode 函数进行转码;程序的清单 2 是 decode 函数的关键性代码。完整的程序见源代码下载部分。
清单 1 读入 CLOB,写入 BLOB 字段
EXEC SQL BEGIN DECLARE SECTION;
SQL TYPE IS CLOB(100 K) clobResume; //CLOB 结构体变量
SQL TYPE IS BLOB(100 K) blobResume; //BLOB 结构体变量
sqlint16 bobind;
sqlint16 lobind;
sqlint16 cobind;
sqlint32 idValue;
EXEC SQL END DECLARE SECTION;
int clob2bin(void)
{
// 声明 SQLCA 结构
struct sqlca sqlca;
int charNb;
int lineNb;
long n;
n=0;
// 定义数据库游标
EXEC SQL DECLARE c1 CURSOR WITH HOLD FOR
SELECT czrkxp_a
FROM CZRK_blob for update;
EXEC SQL OPEN c1;
// 活动 CLOB 字段的信息,已经 CLOB 字段的大小
EXEC SQL FETCH c1 INTO :clobResume:cobind;
// 循环读取 CLOB 字段,并且调用 DECODE 转码函数
while (sqlcasqlcode != 100)
{
if (cobind < 0)
{
printf(“ NULL LOB indicated\n”);
}
else
{
n++;
decode(); // 文本格式到二进制流的转码函数
printf(“\nCurrent Row =%ld”,n);
// 数据写入 BLOB 字段
EXEC SQL update czrk_blob set czrkxp_blob = :blobResume
where current of c1; ;
// 提交事务
EXEC SQL COMMIT;
}
EXEC SQL FETCH c1 INTO :clobResume:cobind ;
}
// 关闭游标
EXEC SQL CLOSE c1;
EXEC SQL COMMIT;
return 0;
}
清单 2 文本文件到二进制文件的转换
void decode( void )
{
unsigned char in[4], out[3], v;
int I, len;
long j,k;
j = -1;
k=0;
// 将读入 CLOB 结构体变量的数据进行转换
while( j < clobResumelength){
for( len = 0, I = 0; I < 4 && ( j < clobResumelength ); i++ ) {
v = 0;
while((j < clobResumelength) && v == 0 ) {
j++;
v = (unsigned char) clobResumedata[j];
v = (unsigned char) ((v < 43 || v > 122) 0 : cd64[ v – 43 ]);
if( v ) {
v = (unsigned char) ((v == ‘$’) 0 : v – 61);
}
}
if( j < clobResumelength ) {
len++;
if( v ) {
in[ I ] = (unsigned char) (v – 1);
}
}
else {
in[i] = 0;
}
}
if( len ) {
decodeblock( in, out );
// 写入到 BLOB 结构体变量中
for( I = 0; I < len – 1; i++ ) {
blobResumedata[k] = out[i];
k++;
}
}
}
blobResumelength= k;
}
--------------------------------------------------------------------------------
回页首
数据的转换效率和优化建议
在 IBM P570 数据库服务器上运行,该程序的运行效率非常高,先后进行了几个数量级的测试,最终平均测试的转换效率为:每 1 万笔数据记录,转换的效率 55 秒,即 182 条 / 秒。值得注意的是,整个转换过程占用 CPU 的量并不特别大,主要的性能瓶颈在磁盘阵列中。
以后可以进一步在以下方面进行调优,确保程序转换的效率更高:
1)采用多进程调用的方式,以获得更高的并发数量;
2)采用每 10 次或者 100 次提交事务的方式,减少访问磁盘的次数;
3)将 CLOB 和 BLOB 分别放置在不同的表空间上,并且将表空间分布在在多个磁盘上,获得最佳的磁盘访问速度。
以上就是关于求关于数据库方面的书籍全部的内容,包括:求关于数据库方面的书籍、Mysql InnoDB索引原理、数据库sql题目解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)