超市数据库系统设计
Ⅰ 数据库sql 的课程设计怎么做,要借哪些书看,求大神指教
IT行业,数据库确实是一门相当重要的课程。但是在大学里面,对待数据库原理及应用这么课程以及其课程设计的重视程度就相差很大了,各个学校要求也不一样。如果是要学好,那确实要下工夫;如果只是完成课程设计,交差了事,其实相当简单。
既然是课程设计,也算是个小小的项目,既然是项目,也就离不开需求分析、数据库设计、部署实现等环节。当然,这个小小的项目只需要前面的部分:需求和数据库设计,数据库设计是重点。
需求分析就不用多说,和所有其他项目一样,无非就是用户需求,功能需求,系统需求等,找任何一本关于需求分析的书都是可以,除了那些个空话之外,更多的是要根据设计需要进行分析。
数据库设计就比较复杂一点,首先得把数据库原理搞清楚,比如:符合什么样的范式,怎么画ER图,如何理解用例图。在设计数据库之前,有一系列的分析要做:面向对象分析,用例分析,类和对象分析等等。分析到位是数据库设计成功的重要保障。分析完成之后才是设计,比如:逻辑结构设计,关系模式设计,存取方法设计,存储结构设计,数据完整性设计,参考完整性设计,Check约束,Default约束,触发器设计,视图设计,存储过程设计,权限设计等。这些都完成了,最后一步才是写SQL代码实现这些设计,创建数据库及相关的数据表,关联,视图,触发器,存储过程等一些列的看得见的数据库参数。
上面说的比较理论,也比较笼统。我想我可以用一个简单例子告诉你我要表达的意思。例子很简单,其中很多地方都不是太好,不过或许可以给你一个直观的思路。
数据库应用课程设计报告书
网上超市管理系统
成 绩:
学 号:
姓 名:
指导教师:
20 年 月 日
目录
任务书......................................... (3)
1. 需求调查、分析................................. (4)
1.1.企业介绍.................................... (4)
1.2.需求调查及分析.............................. (5)
2. 面向对象分析和设计............................. (7)
2.1. 用例分析 (7)
2.2.类和对象设计 (12)
3. 逻辑结构设计.................................. (15)
3.1. 类和对象向关系模式转换............................................ (15)
3.2. 关系模式优化 (16)
4. 数据库物理结构设计............................ (16)
4.1. 存取方法设计 (16)
4.2. 存储结构设计 (17)
5. 数据库完整性设计.............................. (17)
5.1. 主键及唯一性索引 (17)
5.2. 参照完整性设计 (18)
5.3. Check约束 (18)
5.4. Default约束 (18)
5.5. 触发器设计 (19)
6. 数据库视图设计................................ (19)
7. 数据库存储过程设计............................ (20)
8. 权限设计...................................... (20)
9. 总结.......................................... (21)
Ⅱ 商场数据仓库ETL系统架构设计
商场数据仓库ETL系统架构设计
基于CWM的商场数据仓库ETL系统架构的编码实现拟采用java语言。之所以选择Java语言,不仅因为它是一种简单的、面向对象的、分布式的语言,并且具有平台无关性和安全性等优点,下面一起就和我来了解了解!
一、ETL 概述
ETL是数据抽取(Extract)、转换(Transform)、加载(Load)的简写,它是指:将各种异构数据源中的数据抽取出来,并将不同数据源的数据进行转换和整合,得出一致性的数据,然后加载到数据仓库中。ETL工具,是数据仓库系统的重要组成部分;是影响数据仓库系统成败的关键。
获取ETL工具有两个途径:利用现有商品化ETL工具,虽然能缩短系统的开发周期,但存在投资成本大,软件的针对性、通用性、兼容性差的问题。自行设计开发一个标准通用的ETL工具,提高ETL的实用价值,降低项目实施的成本和风险,具有重要的意义。
由于数据仓库和数据源系统在数据格式、数据模型等方面存在很大差异,客观上形成数据仓库ETL实现过程很大的难度。在ETL的工作过程中,每步都和数据仓库元数据密切相关。
按照传统的定义,元数据(Metadata)是关于数据的数据。元数据支撑了数据仓库开发应用的全过程,成为数据从数据源到数据仓库的桥梁。
数据抽取阶段,没有相应的映射规则,就无法知道需要抽取什么样的数据;在将源数据存储格式转换为目标数据存储格式时,需要知道源存储格式和目标存储格式的信息,以及相应的存储格式之间的转换规则;在数据加载阶段,需要知道目标数据仓库的数据结构和相关信息。所有这些信息,都需要元数据提供。
由此可见,ETL过程自始至终都需要元数据的支持和控制。正因为如此,要解决ETL开发中的问题,应当从相关的元数据着手。
二、关于CWM 及其提供的工作机制
CWM(Common Warehouse Metamodel 公共仓库元模型)是 国际对象管理集团OMG推出的数据仓库元数据管理规范。CWM的主要目的是在分布异构环境下,使数据仓库工具、工作平台和元数据存储库之间易于进行数据仓库元数据的交换。
CWM基于以下三个工业标准制定:
1.UML(Unified Modeling Language统一建模语言)
作为目前最为风行的建模语言,UML用于描述一般数据仓库架构的元模型。
2.MOF (Meta Object Facility 元对象工具)
MOF是OMG元模型和元数据的存储标准,用以定义存储库的结构、对外接口和交换格式的映射规则。
3.XMI (XML Metadata Interchange,XML元数据交换)
XMI是基于XML的元数据交换。定义如何用XML表示基于MOF的元数据,使元数据以XML文件流的方式进行交换。
基于上列三个标准,CWM为数据仓库工具之间共享元数据,制定了一整套关于模式、语法和语义的规范。主要包括:
(1)CWM元模型(Metamodel):描述数据仓库系统共享的元模型。它由一系列子元模型构成。
(2)CWM XML:CWM元模型的XML表示。
(3)CWM DTD:DW/BI共享元数据的交换格式。
(4)CWM IDL:DW/BI共享元数据的应用程序访问接口。
基于CWM的数据仓库元数据转换和管理模型可用图1表示。从图1不难理解,元数据库也是基于CWM标准,通过CWM元模型映射构建。CWM 以UML 的元模型为基础,针对数据仓库领域的应用,使用特定的元类、元关系,将来自各异构数据源和数据仓库各个组件中的元数据,通过CWM XML、CWM DTD、CWM IDL 三个规范,转化为XML 文档。为数据仓库元数据管理提供了满足元数据交换所需的语法和语义规范的、方便元数据交换和元数据存储的XML文件。
三、基于CWM的数据仓库ETL系统架构
1.基于CWM的ETL系统架构
在研究ETL和CWM的基础上,设计出基于CWM的数据仓库ETL过程的系统架构。
2.系统架构的结构分析
(1)ETL子系统结构
ETL子系统结构由五个模块组成。即:系统调度模块、元数据管理模块、数据抽取模块、数据转换模块和数据装载模块。其中,数据抽取模块负责将超市业务系统的原始数据进行抽取并保存到临时数据库中;数据转换模块负责对抽取出来的数据进行清洗、转换和计算汇总;数据装载模块负责将经过清洗、转换的、符合目标数据模型的数据装载到目标数据库中。以上三个模块的活动被系统调度模块统一调度,结合元数据管理模块对整个ETL过程进行统一控制,用以实现ETL各步骤的定时触发、正常执行和异常控制等过程。
(2)CWM对系统元数据的规范
整个架构以CWM元模型库为基础,通过CWM工作机制,把各个层次的元数据规范化后,存储在元数据库中,再由元数据管理模块支撑并控制整个架构的运行。
(3)建立集中式元数据库
为了便于对数据仓库的元数据进行有效管理,按照通用的元数据管理标准建立一个集中式的元数据库。在所建元数据库中,通过建立“信息模型”的方法对元数据进行分类,并建立分类存储的、通用的信息目录。把技术元数据和商业元数据存储在不同的信息目录中。便于适应不同的服务目标、不同的元数据结构的存储和管理。元数据信息目录面向数据仓库的应用程序。应用程序可以通过访问该目录,使用、存储、管理元数据;用户也可以通过该目录,对元数据进行浏览、查询和使用。整个架构,都集中在元数据的统一控制之下。
四、CWM对ETL提供的技术支持分析
1.CWM元模型结构
由于系统架构建立在CWM元模型基础之上,CWM通过对元数据的统一规范和管理,实现了对整个架构的.支持。
为了便于分析CWM对ETL子系统中各个模块的支持,图3给出了CWM元模型结构示意图。在CWM的总体结构中,可分为5个层次,由若干互不相同但又紧密相关的子元模型包构成。图中灰色部分是CWM对ETL子系统有着直接联系和支撑CWM元模型包。
2.对数据抽取模块的支持
在CWM的资源层中,五个元模型分别对五种不同的数据源进行了建模。五种数据源格式分别是:面向对象的数据格式、关系型数据格式、记录型数据格式、多维数据格式和XML数据格式。这五个元模型所描述的数据格式相当齐全,利用它们,可以把商场常用的、历史遗留的数据源都描述出来。从而得到各种不同格式的数据源的元数据,为ETL对数据源的抽取过程提供了支持。
3.对数据转换模块的支持
ETL的核心还是在于“T”这个过程,也就是转换过程。而抽取和装载一般可以作为转换的输入和输出,因此,我们重点研究了CWM对数据转换过程的支持。
在CWM分析层中,转换包对ETL过程进行了详细的描述。转换包的主要作用是:将一次转换活动的数据源和目标准数据关联起来,同时支持“黑盒”和“白盒”转换,可将一组转换组成一个逻辑单元。一次转换可以将一组源对象转换成一组目标对象。数据对象集合可以是任何模型元素,但通常是表、字段或者内存对象。
CWM管理层中的数据仓库操作包,记录了数据仓库的三个重要事件。其中的转换执行事件定义了记录转换活动结果的类。在转换完成之后,转换活动的结果可被活动执行类和步骤执行类记录。这个记录行为是对发生在数据仓库操作包中的一个内部事件、或者其他类似方式的回应,为每个转换执行记录开始、结束时间,各种进展和结果的指标。便于需要时查询。
4.对数据调度模块的支持
系统调度模块负责对ETL过程进行统一调度和异常控制,保证ETL正常运行。在CWM的管理层中,数据仓库处理包描述了数据仓库处理(实际上就是转换过程)的调度方面的信息。在数据仓库处理包中,定义了能够触发转换活动执行的一系列事件。这些事件控制了数据转换过程的调度。
5.对数据装载模块的支持
数据装载模块负责将经过清洗、转换的、符合目标数据模型的数据装载到目标数据库中。在CWM的支持下,完成了对源数据的抽取和转换,在系统元数据的控制下,把正确的数据加载到数据仓库中,就是一件极其简单的事了。
总之,CWM为ETL 提供的技术支持,为ETL各个功能模块的实现奠定了基础。为系统架构的实施提供了条件。同时,也保证了ETL子系统的通用性和可扩展性。
;Ⅲ 超市数据库维护工作有哪些
一、备份系统数据
SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢
复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都
写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人
工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。
1、备份数据库
每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出
数据库。对一般数据库系统卸出数据库周期建议为每周一次。
除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如:
·每次强制地运行了 DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出);
·每次用 sp_dboption 允许 select into/bulk 做快速拷贝,或用 SELECT INTO 命令创建一个永久性的表,
或使用了 WRITETEXT 命令。
卸出数据库的命令为:
DUMP DATABASE database_name
TO mp_device
database_name 是要卸出的数据库名称,mp_device 是卸出设备的名称。用系统过程 sp_helpdevice 可以获得
设备的信息。
下面一条命令用来卸出数据库 my_db :
DUMP DATABASE my_db
TO db_bk_dev
2、备份事务日志
如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master 数据库和小于 4M 的用户
数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用 DUMP TRAN 命令单
独备份日志。
备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。
备份事务日志的命令格式为:
DUMP TRANsaction database_name
[TO mp_device]
[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]
其中 database_name 是要备份事务的数据库名称,mp_device 是备份设备名称,仅当包含了 WITH
TRUNCATE_ONLY 或 WITH NO_LOG 子句时,才可以备份到设备。
注意:如果总是用 DUMP DATEBASE (备份数据库及其日志),而不用 DUMP TRAN ,事务日志将不会刷新,而变得
非常庞大。
对于 master 数据库和小型数据库每次运行 DUMP DATEBASE 之后应当运行 DUMP TRANsaction 命令刷新日志 。
下面一条命令备份数据库 db160 的事务日志到备份设备上:
DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY
3、备份数据库及其日志间的相互作用
在至少卸出一次数据库前,卸出事务日志是毫无意义的。下图显示了备份数据库及其日志间的关系
如果在星期二下午5:01出现非硬件故障,需要做的所有工作是装入磁带5(参见下一节:数据恢复),由于磁带5
是下午5:00刚备份的,因此只有备份和装入之间的一分钟内的数据损失。
但是,如果在星期二下午4:49失效会怎么样呢?在这种情况下,要装入磁带1(在星期五下午5:00的卸出)。然
后,依次装入磁带2,3以及4。这样,系统将恢复到星期二上午10:00点的状态,星期二的大部分工作丢失了。此
例显示了经常卸出事务的重要性。
二、万一系统失败时恢复数据库系统
如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志
备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着 WITH NO_TRUNCATE 选项的
DUMP TRANsaction 命令卸出它。
要恢复数据库按如下步骤去做:
1、如果日志存在于一个分离的设备上,用带着 NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出被毁坏的或者不
可存取的用户数据库事务日志。
2、用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。
下面的查询显示了分配给数据库 mydb 设备使用和尺寸情况:
SELECT segmap,size FROMsysusages
WHERE dbid =
( SELECT dbid FROM sysdatabases WHERE name = “mydb”)
3、检查查询的输出。在 segmap 列的 ‘3’代表数据分配,‘4’代表日志分配。size 列代表 2K 数据块的数
目。注意此信息的次序、使用和尺寸部分。例如,输出为:
segmapSize
--------------------
310240//实际尺寸为:20M
35120//实际尺寸为:10M
45120//实际尺寸为:10M
31024//实际尺寸为:2M
42048//实际尺寸为:4M
4、用 DROP DATABASE 命令删除毁坏设备上的数据库。如果系统报错,用DBCC DBREPAIR 命令的 DROPDB 选项。
5、删除数据库后,用 sp_dropdevice 删除毁坏了的设备。
6、用 DISK INIT 初始化新的数据库设备。
7、重建数据库。用 CREATE DATABASE 命令从老的 sysusages 表拷贝所有的行,并包含第一逻辑设备。
对上例,命令为:
CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10
8、用 ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空间,命令为:
ALTER DATABASE mydb ON datadev1=2
9、用 LOAD DATABASE 重新装入数据库,然后用 LOAD TRAN 装入前面卸出的日志。
LOAD DATABASE 命令语法是:
LOAD DATABASE database_name
FROM mp_device
LOAD TRANsaction 命令的语法是:
LOAD TRANsaction database_name
FROM mp_device
卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库
所有者,但不能传递。
二、产生用户信息表,并为信息表授权;
系统维护人员的另一个日常事务是为用户创建新的信息表,并为之授权。创建表以及为表授权的方法已经在讲过,
在此只将有关命令语法写出来。
·创建表的命令为:
CREATE TABLE table_name
( column_1 datatype [NULL | NOT NULL | IDENTITY],
column_2 ……
)
go
ALTER TABLE table_name
ADD PRIMARY KEY (column_list)
go
·删除表的命令格式为:
DROP TABLE table_name
go
·为表授权的命令格式为:
GRANT {ALL|permission_list}
ON table_name TO user_name
go
·收回权限的命令格式为
REVOKE {ALL|permission_list}
ON table_name FROM user_name
go
三、监视系统运行状况,及时处理系统错误;
系统管理员的另一项日常工作是监视系统运行情况。主要有以下几个方面:
1、监视当前用户以及进程的信息
使用系统过程:sp_who
说明:该命令显示当前系统所有注册用户及进程信息,如下表是某系统的信息。
---------------------------------------------------------------
2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER
SLEEP
从左向右依次显示:进程号、当前状态、注册用户名、主机名、占用块数、数据库名以及当前命令。
如果监视时发现进程总数接近最大连接数(用系统过程:sp_configure “user conn” 查看)时,应下掉不活动
或无关进程,以保证系统正常运做;另外亦可监视非法用户或用户使用不属于自己使用范围的数据库等情况。
2、监视目标占用空间情况
使用系统过程:sp_spaceused
说明:该过程显示行数、数据页数以及当前数据库中由某个目标或所有目标所占用的空间。如下表是某数据库日志
表的信息:
NameRow_totalreserveddataIndex_sizeunused
------------------------------------------------------------
SyslogsNot avail32KB32KB0KBNot avail
日常要监视的主要目标有:用户数据库、数据库日志表(syslogs)以及计费原始数据表等。如果发现占用空间过
大,对日志表要进行转储;对其他目标则应扩充空间或清楚垃圾数据。
3、监视 SQL Server 统计数字
使用系统过程:sp_monitor
说明:sp_monitor 显示SQL Server 的历史统计数字,下表是某系统的统计数字:
Last_runCurrent_runSeconds
---------------------------------------------------------------
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
---------------------------------------------------------------
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
--------------------------------------------------------
785(366)311(113)0(0)3(2)
上表依次给出该系统本次运行统计的上一次时间、本次时间、间隔秒数、CPU占用、IO占用、收发包情况、系统读
入写出情况等信息
四、保证系统数据安全,周期更改用户口令;
为保证系统数据的安全,系统管理员必须依据系统的实际情况,执行一系列的安全保障措施。其中,周期性的更改
用户口令是比较常用且十分有效的措施。
更改用户口令是通过调用系统过程sp_password 来实现的。Sp_password 的语法为:
sp_password caller_password,new_password [,loginame]
其中caller_password 是登录口令(老口令),new_password是新口令,loginame是登录名称。
Ⅳ Java超市商品计价系统需要掌握数据库那些知识
建立数据库表。
1、首先是建立数据库表。2、实现主页面。3、实现用户注册。4、实现用户登录。5、主菜单之关于。6、主菜单之商品类别管理。7、主菜单之商品管理。8、退出。
针对GUI界面写的简易计算器,实现加减乘除功能以及计算器标准型和科学型之间的转换,有兴趣可以看看Java混合计算器以及界面切换.这次写的超市管理系统,实现的功能有账户的注册、登录,超市商品类别的添加、修改和删除以及商品的添加、修改和删除的功能。用户注册之后把注册信息导入数据库。用户登录时候查询用户表,方可登录进去。商品类别和商品的增加也如注册信息一样,把信息导入商品类别表和商品表。
Ⅳ 小型超市信息管理系统的数据库应该建哪些表
基本的要包括用户表,库存表(商品信息表),台帐表。完善一点可以再加上供货商,参数等几个表
Ⅵ 超市购物系统 设计sql数据库,需要哪些字段(对超市购物不了解)需要几个表,简单点的就好
商品表
库存表
销售汇总表 ( 日期、时间、收银机、流水号、总金额)
销售明细表 ( 收银机、流水号、商品编号、商品数量)
付款方式表 ( 收银机、流水号、付款方式[现金、卡...]、付款金额 )
Ⅶ 现要设计一个超市管理系统(java web)的数据库,分别有哪些表
你说的太宽泛了吧。。表这东西能多能少,看怎么设计了。比如,用户表,员工表,商品价格表,类别表、安全级、存放信息啊、总之啊,超市那么多东西,发挥想象力吧。。