SQL_Server数据库设计的案例分析报告
sql server数据库课程设计报告书 (3)

第1单元数据库和表的创建一、实训目的1、了解数据库的逻辑结构、物理结构及其特点2、学会利用企业管理器对数据库进行操作3、学会利用Transact-SQL语句对数据库进行操作二、实训任务1、建立数据库,删除该数据库2、建立新数据库3、更改数据库属性4、设计表结构5、建立表,删除表6、更改表7、向表中插入数据,删除表中的数据,更改表中的数据三、实训要求1、数据库、表的创建、更改和删除要求用SQL命令和企业管理器两种方式完成2、要求数据库中至少包含两个文件组,主文件组中至少包含两个数据文件,明确规定数据库存放的物理路径,文件大小,增长方式等属性。
3、建立四张以上的用户表,字段类型要求合理、合法,为空性要求要合理。
4、每张表给出至少三十条以上记录作为后续实训数据,实验数据要求合理5、表结构要用表格的形式给出,并添加到实训内容中6、将涉及到的SQL命令拷贝到“实训内容及步骤”中7、将实训过程、结果通过截屏的方式添加到“实训内容及步骤”中,并用适当的文字进行说明四、实训内容及步骤一 1.界面方式创建数据库pxscj:2.SQL命令创建数据库pxscj:具体的T-SQL命令:create database pxscjon(name='pxscj_data',filename='c:\Program Files\Microsoft SQL Server\pxscj.mdf',size=3MB,filegrowth=1MB)log on(name='pxscj_log',filename='c:\Program Files\Microsoft SQL Server\pxscj.ldf',size=1MB,filegrowth=10%)GO3.删除数据库:drop database pxscj1GO4.在数据库pxscj中增加一个名为FGroup的文件组。
sqlserver实验报告

实验报告:SQL Server一、实验目的本次实验旨在熟悉并掌握SQL Server数据库管理系统,了解其功能特点、操作方法和应用场景。
通过实验,我们希望深入理解数据库的基本概念,掌握SQL Server的基本操作,为后续的数据库学习和应用打下坚实的基础。
二、实验内容1. 了解SQL Server版本和功能特点通过阅读教材、查阅资料,我们了解了SQL Server的不同版本及其功能特点。
目前,SQL Server最新版本是SQL Server 2008,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。
2. 安装SQL Server在实验过程中,我们按照教材的指导,成功安装了SQL Server 2008。
安装过程中,我们注意了安装选项的选择,确保安装了必要的组件和工具。
3. 创建和管理数据库在SQL Server中,我们通过对象资源管理器创建了名为“testdb”的数据库。
在创建过程中,我们设置了数据库的名称、文件路径、文件大小等参数。
同时,我们还学习了如何修改数据库的属性,如修改数据库的名称、删除数据库等。
4. 创建和管理表在“testdb”数据库中,我们创建了名为“employees”的表,用于存储员工信息。
在创建表的过程中,我们定义了表的列名、数据类型、约束等属性。
同时,我们还学习了如何修改表的属性,如添加列、删除列等。
5. 查询数据通过查询语句,我们从“employees”表中检索了所有员工的信息。
在查询过程中,我们使用了SELECT语句,并通过WHERE子句对结果进行了筛选。
同时,我们还学习了如何使用聚合函数对数据进行统计和分析。
6. 插入、更新和删除数据在“employees”表中,我们插入了新的员工信息,更新了现有员工的信息,并删除了离职的员工信息。
在插入、更新和删除数据的过程中,我们使用了INSERT、UPDATE和DELETE语句。
同时,我们还学习了如何使用事务来确保数据的完整性和一致性。
《SQL Server 数据库设计》课程设计报告示例

《SQL Server 数据库设计》课程设计报告课题名称:学生管理系统__班级:_09软大1班_学号:________姓名:________完成日期:_______课程设计报告内容项目名称姓名其他参与人员本人在本项目中主要完成的工作完成任务的体会一、系统分析(一)系统的需求分析:1、系统目标:本系统将实现用计算机管理学生的学习信息的功能。
具体完成班级信息管理、学生信息管理、课程信息管理、学生选课管理等功能。
2、系统的功能需求:本系统用户分为普通用户和超级用户两类,超级用户负责系统的维护,包括对班级信息、学生信息、课程信息的录入、修改、查询、删除等。
普通用户即学生只具有自己选择课程的权限、查看课表和自己成绩的权限。
3、系统功能划分:用户通过身份验证后进入主界面。
主界面为超级用户提供6项选择:学生信息管理、课程信息管理、班级信息管理、选课、密码修改和退出系统。
普通用户有4项选择:选课、课程查询、密码修改和退出系统。
(二)系统的功能分析:A、班级信息管理:给出所有班级列表,只有超级用户可以实现增加、修改、查询、删除班级信息,维护指定班级所有学生信息,为指定班级设置必修课和选修课以及学分限制等功能。
在维护指定班级信息功能中,只有超级用户可以增加、修改、删除学生信息,查看某一学生选课情况,为学生更改口令等功能。
在指定班级必修课功能中,以课程表形式列出所有必修课信息,可以实现为一个班级增加或删除必修课的功能。
B、学生信息管理:给出所有学生的列表,超级用户可以增加、修改、删除学生信息,查看学生信息,查看某个学生选课情况,为学生修改口令等功能。
本功能与班级信息维护功能中的维护指定班级学生信息功能相似,不同是本功能是列出所有班级的所有学生信息。
C、课程管理信息:超级用户可以增加、修改、删除课程信息,查看某门课程的选课情况,查看指定课程的信息。
D、选课:以课程表的形式列出学生的选课情况,学生可以为自己选修或者退选课程,而超级用户可以为任何学生选修或者退选课程。
SQL Server数据库的管理(实验报告)

五﹑调试和测试清单
六﹑教师批语与成绩评定
(4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL语句Create database创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息。
(5)在查询设计器中使用Transact-SQL语句Alter database修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。
打开studentsdb数据库的属性对话框在文件选项卡中的数据库文件列表中修改studentsdb数据库文件的分配的空间大小为2mb指定最大文件大小为5mb修改studentsdb数据库的日志文件的大小在每次填满时自动递增5
长沙理工大学
计算机与通信工程学院
实验报告
课程名称数据库技术与应用
实验项目名称SQL Server数据库的管理
班级
学号姓名
实验日期年月日
指导教师签字
一﹑特点;
(2)掌握使用SQL Server管理平台对数据库进行管理的方法;
(3)掌握使用Transact-SQL语句对数据库进行管理的方法。
二﹑实验平台
操作系统:Windows xp
DBMS:SQL Server 2005
(2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。
(3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据库文件的“分配的空间”大小为2MB,指定“最大文件大小”为5MB,修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。
SQLServer空间数据库应用案例报告

实验四SQL Server空间数据库应用案例一、实验学时4学时二、实验目的1. 了解SQL Server 2008 r2的空间参考系统表;2. 掌握SQL Server 2008r2的空间数据类型的使用;3. 掌握空间数据库与数据表的设计与实现4.掌握用SQL实现空间查询与分析功能的方法三、预习内容1.SQL Server 有关空间操作的教程2.教材中有关SQL语言的关于空间查询与分析的语法章节四、实验设备及数据1.安装了SQL Server 2008 r2的电脑2.教材第五章的空间数据库实例数据五、实验内容1. SQL Server 2008的空间参考系统表的介绍2空间数据类型的介绍与使用3. 空间数据库与数据表的创建与修改4. 使用SQL语句添加、删除、修改空间数据记录5. 用SQL实现空间查询和分析六、实验步骤建蓝湖数据库create table lakes(fid integer not null primary key,name varchar(64),shore geometry);create table road_segments(fid integer not null primary key,name varchar(64),alises varchar(64),num_lanes integer,centerline geometry);create table divided_routes(fid integer not null primary key,name varchar(64),roadseg1id integer references road_segments,roadseg2id integer references road_segments,position geometry);create table bridges(fid integer not null primary key,name varchar(64),roadseg1id integer references road_segments, roadseg2id integer references road_segments, position geometry);create table streams(fid integer not null primary key,name varchar(64),fromlakeid integer references lakes,tolakeid integer references lakes,centerline geometry);create table buildings(fid integer not null primary key,address varchar(64),position geometry,footprint geometry);create table poods(fid integer not null primary key,name varchar(64),type varchar(64),shores geometry);create table island(fid integer not null primary key,name varchar(64),lakeid integer references lakes,boundary geometry);create table zone(fid integer not null primary key,name varchar(64),boundary geometry);录入数据insert into lakes values(101,'蓝湖',geometry::STGeomFromText('multipolygon(((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18)))',101));insert into lakes values (0,'图片外其他湖泊',geometry::STGeomFromText('multipolygon(((62 28,76 33,83 19,58 16,62 28),(69 28,77 28,77 23,69 23,69 28)))',101));--路段insert into road_segments values(102,'路',null,2,geometry::STGeomFromText('linestring(0 18,10 21,16 23,28 26,44 31)',101));insert into road_segments values(103,'路','主街',4,geometry::STGeomFromText('linestring(44 31,56 34,70 38)',101));insert into road_segments values(104,'路',null,2,geometry::STGeomFromText('linestring(70 38,72 48 )',101));insert into road_segments values(105,'主街',null,4,geometry::STGeomFromText('linestring(70 38,84 42 )',101));insert into road_segments values(106,'绿森林边路',null,1,geometry::STGeomFromText('linestring(28 26,28 0 )',101));--组合路insert into divided_routes values(119,'路',null,4,geometry::STGeomFromText('multilinestring((10 48,10 21,10 0),(16 0,16 23,1648))',101));--桥insert into bridges values(110,'卡姆桥',102,103,geometry::STGeomFromText('point(44 31)',101));insert into streams values (111,'卡姆河',0,101,geometry::STGeomFromText('linestring(38 48,44 41,41 36,44 31, 52 18)',101)); insert into streams values (112,null,101,0,geometry::STGeomFromText('linestring(76 0,78 4, 73 9)',101));insert into buildings values (113,'主街号',geometry::STGeomFromText('point(52 30)',101),geometry::STGeomFromText('polygon((50 31, 54 31, 54 29,50 29,50 31))',101));insert into buildings values (114,'主街号',geometry::STGeomFromText('point(64 33)',101),geometry::STGeomFromText('polygon((66 34, 62 34, 62 32,66 32,66 34))',101));insert into poods values (120,null,'思道哥池塘',geometry::STGeomFromText('multipolygon(((24 44,22 42,24 40,24 44)),((26 44,26 40,28 42,26 44)))',101));insert into island values (109,'鹅岛',101,geometry::STGeomFromText('multipolygon(((67 13,67 18,59 18,59 13,67 13)))',101));--区域insert into zone values (117 ,'阿诗顿',geometry::STGeomFromText('multipolygon(((62 48,84 48,84 30,56 30,56 34,62 48)))',101));insert into zone values (118 ,'绿森林',geometry::STGeomFromText('multipolygon(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))',101));查询获得鹅岛的wkt表示select boundary.STAsText()from islandwhere name='鹅岛'查找本数据库中所有的空间表Select TABLE_NAMEFROM RMATION_SCHEMA.TABLESWhere TABLE_TYPE='BASE TABLE'判断名为路5别名为“主街”的路段的几何属性是否为空select centerline.STIsEmpty()from road_segmentswhere name='路'and aliases='主街';4蓝湖的几何结构是否是简单的select shore.STIsSimple()from lakeswhere name='蓝湖';5.获得鹅岛的边界select boundary.STAsText(),boundary.STBoundary() from island6获得鹅岛的MBR边界select boundary.STAsText(),boundary.STEnvelope() from islandwhere name='鹅岛';7.获取73号路的几何类型select cneterlines.STGeometryType()from divided_routes8 获得102路段中点的第一个点select centerline.STAsText(),centerline.STPointN(1) from road_segmentswhere fid='102'9获得卡姆桥的x,y坐标SELECT position.STX,position.STYFROM bridges WHERE name='卡姆桥';10获得路段的长度SELECT centerline.STLength()FROM road_segments WHERE fid=106;11判断鹅岛的MBR边界是否闭合SELECT boundary.STIsClosed(),boundary.STBoundary() FROM island WHERE name='鹅岛';12获得路段的起点和终点select centerline.STAsText(),centerline.STStartPoint(),centerline.STEndPoint() from road_segmentswhere fid=10213获得鹅岛的质心select boundary.STCentroid(),boundary.STAsText()from islandwhere name='鹅岛'14判断PointOnSurface函数返回鹅岛上的点是否在其边界上select boundary.STContains(boundary.STPointOnSurface())from islandwhere name='鹅岛';15获得路段的点数目select centerline.STNumPoints()from road_segmentswhere fid='102'16获得鹅岛的面积select boundary.STArea() from islandwhere name='鹅岛';17--获得蓝湖内环的数目select shore.STNumInteriorRing() from lakeswhere name='蓝湖';18判断号路的几何元素的数目select cneterlines.STNumGeometries() from divided_routeswhere name='路';19获得号路的第二个几何元素select cneterlines.STAsText()from divided_routeswhere name='路';20获得号路的长度select cneterlines.STLength() from divided_routes where name='路';。
《sql server数据库实用案例教程》实验

《sql server数据库实用案例教程》实验SQL Server数据库是一种常用的关系型数据库管理系统,可以用于存储和管理大量的结构化数据。
本实用案例教程将介绍一些常见的SQL Server数据库实例,向读者展示如何使用SQL Server数据库来解决实际的数据管理问题。
让我们考虑一个在线商城的数据库实例。
我们可以创建一个名为"Product"的表来存储产品信息,包括产品ID、产品名称、价格等字段。
另外,我们可以创建一个名为"Order"的表来存储用户订单信息,包括订单ID、用户ID、产品ID和订单数量等字段。
为了实现产品与订单之间的关联,我们可以在"Order"表中添加一个外键,将产品ID与"Product"表中的产品ID进行关联。
在这个示例中,我们可以使用SQL查询语句来实现以下功能:1. 查询某个产品的详细信息:可以使用SELECT语句来查询"Product"表中某个产品的详细信息,例如:SELECT * FROM Product WHERE ProductID = 1;这将返回产品ID为1的详细信息。
2. 插入新的产品信息:可以使用INSERT INTO语句向"Product"表中插入新的产品信息,例如:INSERT INTO Product (ProductName, Price) VALUES ('iPhone', 999);这将插入一条新的产品信息,产品名称为"iPhone",价格为999。
3. 更新产品信息:可以使用UPDATE语句来更新"Product"表中某个产品的信息,例如:UPDATE Product SET Price = 899 WHERE ProductID = 1;这将将产品ID为1的产品价格更新为899。
sqlserver数据库案例

SQL Server数据库是一种由微软公司开发的关系型数据库管理系统,广泛应用于企业级应用和大型数据管理系统中。
在实际应用场景中,SQL Server数据库的使用具有广泛性和多样性,下面将以案例的形式,结合实际应用场景,介绍SQL Server数据库的具体应用。
一、金融行业在金融行业中,SQL Server数据库被广泛应用于交易处理、资金清算、风险控制等关键业务环节。
我国某大型银行的信用卡交易系统采用SQL Server数据库作为后端存储系统,实现了大规模交易数据的高效管理和实时处理。
通过SQL Server数据库的分布式事务处理和高可用性特性,确保了交易系统的稳定运行和数据完整性,为银行客户提供了安全可靠的信用卡交易服务。
二、电商行业在电商行业中,SQL Server数据库被广泛应用于商品管理、订单处理、用户行为分析等业务场景。
某知名电商评台的商品管理系统采用SQL Server数据库作为核心存储系统,实现了数亿条商品数据的高效管理和检索。
通过SQL Server数据库的横向扩展和分区表特性,实现了商品数据的高性能存储和查询,为电商评台提供了稳定可靠的商品服务。
三、制造业在制造业中,SQL Server数据库被广泛应用于生产计划、质量管理、设备监控等关键业务环节。
某大型汽车制造企业的智能化工厂系统采用SQL Server数据库作为数据存储和分析评台,实现了实时生产数据的采集和分析。
通过SQL Server数据库的数据仓库和OLAP特性,实现了生产数据的多维分析和预测,为汽车制造企业提供了智能化生产决策支持。
以上案例充分展示了SQL Server数据库在不同行业中的广泛应用和价值体现。
作为企业级数据库管理系统,SQL Server以其稳定可靠、高性能高可用的特性,为企业级应用和大型数据管理系统提供了强大的数据支撑和服务保障。
相信随着数据技术的不断发展,SQL Server数据库在各个行业中的应用场景将会更加多样化和丰富,为企业的数字化转型和业务发展提供更多可能性。
sql server数据库课程设计报告书 (3)

第1单元数据库和表的创建一、实训目的1、了解数据库的逻辑结构、物理结构及其特点2、学会利用企业管理器对数据库进行操作3、学会利用Transact-SQL语句对数据库进行操作二、实训任务1、建立数据库,删除该数据库2、建立新数据库3、更改数据库属性4、设计表结构5、建立表,删除表6、更改表7、向表中插入数据,删除表中的数据,更改表中的数据三、实训要求1、数据库、表的创建、更改和删除要求用SQL命令和企业管理器两种方式完成2、要求数据库中至少包含两个文件组,主文件组中至少包含两个数据文件,明确规定数据库存放的物理路径,文件大小,增长方式等属性。
3、建立四张以上的用户表,字段类型要求合理、合法,为空性要求要合理。
4、每张表给出至少三十条以上记录作为后续实训数据,实验数据要求合理5、表结构要用表格的形式给出,并添加到实训内容中6、将涉及到的SQL命令拷贝到“实训内容及步骤”中7、将实训过程、结果通过截屏的方式添加到“实训内容及步骤”中,并用适当的文字进行说明四、实训内容及步骤一 1.界面方式创建数据库pxscj:2.SQL命令创建数据库pxscj:具体的T-SQL命令:create database pxscjon(name='pxscj_data',filename='c:\Program Files\Microsoft SQL Server\pxscj.mdf',size=3MB,filegrowth=1MB)log on(name='pxscj_log',filename='c:\Program Files\Microsoft SQL Server\pxscj.ldf',size=1MB,filegrowth=10%)GO3.删除数据库:drop database pxscj1GO4.在数据库pxscj中增加一个名为FGroup的文件组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库设计的案例分析一、教学管理1. 基本需求某学校设计学生教学管理系统。
学生实体包括学号、、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号和名称,一个专业属于一个学院,一个学院可以有若干个专业。
学院信息要存储学院号、学院名、院长。
教学管理还要管理课程表和学生成绩。
课程表包括课程号、课程名、学分,每门课程由一个学院开设。
学生选修的每门课程获得一个成绩。
设计该教学管理的ER模型,然后转化为关系模型。
若上面的管理系统还要管理教师教学安排,教师包括编号、、年龄、职称,一个教师只能属于一个学院,一名教师可以上若干门课程,一门课程可以有多名老师来上,每个教师所上的每门课都有一个课堂号和课时数。
试修改上题的ER 模型,将教师教学信息管理增加进去。
2. 参考设计:图一教学管理ER图由ER模型转换的关系模型是:学生(学号,,性别,生日,民族,籍贯,专业号,简历,登记照)专业(专业号,专业,专业类别,学院号)学院(学院号,学院,院长)课程(课程号,课程名,学分,学院号)成绩(学号,课程号,成绩)(题目分析:本题中有学生、专业、学院、课程四个实体。
一个学生只有一个主修专业,学生与专业有多对一的联系;一个专业只由一个学院开设,一门课程只由一个学院开设,学院与专业、学院与课程都是一对多的联系;学生与课程有多对多的联系。
在转换为关系模型时,一对多的联系都在相应的多方实体的关系中增加一个外键。
)增加教师,ER图如下。
图二有教师实体的教学管理ER图3. 物理设计基于Access的数据库结构设计如下。
指定数据库文件的名称,并为设计好的关系模型设计表结构。
数据库文件保存在“E:\教学管理\”文件夹中,数据库文件名:教学管理.MDB。
表包括:学院、专业、学生、课程、成绩单。
对应表结构如表1-2至表1-6所示。
表1-1 学院字段名类型宽度小数主键/索引参照表约束Null值学院号文本型 2 ↑(主)学院文本型16院长文本型8 √表1-2 专业字段名类型宽度小数主键/索引参照表约束Null值专业号文本型 4 ↑(主)专业文本型16专业类别文本型8 ↑学院号文本型 2 学院表1-3 学生字段名类型宽度小数主键/索参照表约束Null表1-4 课程表1-5 成绩单1. 当我们进行物理设计时,如果将全校的学生放置在一个关系(表)中,势必带来存储空间大、处理效率低的问题。
怎么解决?2. 如果管理研究生,带来的设计影响是什么?如何解决?3.在管理教师信息时,如果将教师分类:教师、研究生导师。
研究生导师存储“研究方向、学生人数”等信息,怎样设计。
附:教学管理数据库参考数据如表1-1~表1-5所示。
表1-1 学生表表1-2 学院表表1-2 专业表表1-4 课程表表1-5 成绩单二、图书销售建立某中小型书店图书销售管理信息系统的数据库。
1. 基本需求分析1)组织结构对组织结构的分析有助于分析业务围与业务流程。
书店的组织结构如图三所示。
图三书店组织结构简图其中,书库是保存图书的地方;购书/服务部负责采购计划、读者服务、图书预订等业务;售书部负责图书的销售。
财务部负责资金管理;人事部负责员工管理与业务考核。
2)业务分析对于信息处理系统来说,划分系统边界很重要,即哪些功能由计算机来完成,哪些工作在计算机外完成。
这些要通过业务分析确定。
同时,业务流程中涉及的相关数据也通过业务分析得到归类和明确。
在业务分析的基础上,确定数据流图和数据字典。
本系统主要包含以下业务容。
①进书业务。
事先采购员根据订书单采购图书。
然后将图书入库,同时登记相应的图书入库数据。
本项业务涉及的数据单据和表格有:进书单(包括进书单编号、日期、金额、经手人等)和进书单细目(一个进书单可能有若干种图书。
进书单的细目数据包括每种图书的信息、定价、进价或折扣,数量),以及书库账本(图书信息、库存数量、价格等)。
②售书业务。
售书员根据读者所购图书填写售书单(如图四所示)。
同时,修改库存信息。
本项业务涉及和产生的数据表格有:售书单(包括售书单编号、售书日期、金额、员工)、售书细目(一个售书单可能有若干种图书。
售书细目包括该次售书的书籍编号、售出数量、折扣、售出价格等),以及书库账本。
图四售书单样式③图书查询服务业务。
根据读者要求,提供本书店特定的图书及库存信息。
本项业务涉及的主要数据是书库账本。
④综合管理业务。
包括进书信息、销售信息、库存信息的查询、汇总和报表输出。
本项业务涉及所有的进书数据、销售数据和库存数据等。
3)处理的数据上面的分析将本系统的业务归纳为4项。
在业务分析的基础上,应该画出系统的数据流图。
整个系统的分层数据流图将揭示一个系统全部的数据项、数据结构、数据存储以及对数据的加工处理功能。
在此基础上就可以建立系统的数据字典。
本书不讨论数据流图和完整的数据字典规等容,仅对最后建立数据库所需要的数据进行分析说明。
在上述4项业务中涉及到的业务数据包括:进书数据、库存数据、销售数据。
在这些数据中又涉及到图书数据、员工数据等,而图书数据与有关,员工与部门有关。
因此,将所有数据进行归类分析,书店销售管理信息系统要处理的数据应该包括:企业部门信息(组成:部门编号、部门名、办公);员工信息(组成:工号、、性别、生日、职务、所属部门、薪金);信息(组成:编号、名称、地址、联系、联系人);基本图书信息(组成:图书编号、ISBN、书名、作者、、版次、出版日期、定价、图书类别、备注);进书单及细目(组成:进书单号、日期、{进书细目}、金额、业务员);售书单及细目(组成:售书单号、日期、{售书细目}、金额、业务员);书库账本(组成:图书编号、库存数量、平均进价折扣、备注)。
这些就是书店销售管理信息系统要处理的各种对象,每一种对象由括号的属性组合在一起来描述。
这些属性有的是基本数据项,有的是数据项集合(由“{、}”括起来),数据项集合要做进一步的说明。
例如,“{进书细目}”由“序号、{基本图书信息}、进价或折扣、数量”等属性组成;“{售书细目}”由“序号、图书编号、售价或折扣、数量”等属性组成。
当所有数据对象都归纳完毕,就可以编制数据字典了。
在数据字典中,要对所有这些数据项、数据项集合等的命名、取值方式和围、作用等进行明确而无异义说明。
4)处理功能分析数据字典不仅记载所有数据的详情,也要详细记载所有对数据的处理功能。
①进书业务。
当进书业务发生时,将所进图书入书库,然后存储进书单及细目数据,同时根据进书单登记图书库存数据。
当登记图书库存数据时,可能有两种情况:新图书或已有图书入库。
对于新图书,本业务要将图书的完整信息记载下来,然后记载图书进价和数量;已有图书是指同一种书。
但同一种书可能有版本方面的区别。
为简单起见,规定:“ISBN号”与“版次”相同的就是同一种书,图书编号相同。
对于已有图书,将本次进书数加到该图书的库存数中即可,但本次的进价折扣与以前库存的该书的折扣可能存在差异。
为了便于计算成本和售书收益,入库已有图书时,这里采用的方法是:将已有图书占用的资金和本次入库的资金加在一起,然后重新计算一个平均价格折扣。
因此,书库中该图书的价格折扣是当前所有库存图书占用资金除以当前库存数量后计算的折扣。
②售书业务。
根据读者所购图书的售书单存储售书单及细目数据,这是售书的业务数据。
同时,修改图书的库存信息。
③图书查询服务业务。
查询服务的输入是读者所提要求,输出是相关图书的库存信息。
为方便读者,可以针对书名、ISBN、作者、版次、提供单个或多条件组合查询。
④综合管理业务。
管理人员需要定期或不定期汇总统计或查询进书信息、销售信息、库存信息,并按照管理要求制作业务报表。
通过进书单及细目可以对进书业务进行查询、统计汇总和报表输出。
通过售书单及细目可以对售书业务进行查询、统计汇总和报表输出。
通过库存账本可以对图书库存情况进行查询、统计汇总和报表输出。
2. ER模型分析设计(1)基本实体和联系首先确定实体类别以及它们各自的属性构成,指出实体标识符,并尽量规属性名,避免同名异义或异名同义。
确定实体后,就可以分析实体之间的联系。
可以很容易确定,部门、员工、、图书、书库是不同的实体。
部门的属性:部门号、部门名、办公;员工的属性:工号、、性别、生日;部门与员工发生聘用联系。
这里规定一个员工只能在一个部门任职,它们是1:n联系。
当联系发生时,产生职务、薪金属性。
属性:编号、名称、地址、联系、联系人;图书属性:图书编号、书名、作者;与图书发生“出版”联系。
一本图书只能在一家出版。
这是1:n联系。
当联系发生时,产生ISBN、版次、出版日期、定价、图书类别、备注等属性。
由员工购进图书,所以进书业务是员工与图书发生联系的结果。
一名员工可以进多种图书,一种图书可由多个业务员购进,所以它们是m:n联系。
“进书”联系产生“进书单”属性,进书单本身又由“日期、图书细目、数量、金额”等多个属性构成,所以是多值的组合属性。
与进书业务类似,售书业务是员工将图书售给读者。
本系统不保存读者信息,所以售书是员工与图书发生联系,“售书单”是“售书”联系的属性。
当图书购进后,图书要入书库保存。
书库与图书发生“保存”联系。
这里假定图书是集中式保管,只有唯一一个书库,所以书库不需要标明属性。
书库与图书之间是1:n联系。
“保存”联系的属性有数量、存书的价格折扣、存放备注。
(2) 需要解决的问题—售书与进书以售书为例,当员工在书店售书时,员工就与图书发生“售书”联系。
由于一个员工可以售出多种图书,一种图书可以从多名员工那里售出,因此员工与图书的“售书”联系是m:n。
在实际售书时,由于一名读者可能购买多种图书,所有这些图书构成一完整的售书单,所以“售书单”是售书联系的属性,ER图如图五所示,图中略去员工和图书的实体属性。
图五图书销售联系的ER图仔细分析“售书单”属性,可以发现,售书单不是一个单一的数据,它是由多项容构成,如日期、图书种类和数量、金额等属性。
对于属性来说,无论是实体属性还是联系属性,根据属性结构特点可以分为原子属性或组合属性。
原子属性就是属性是一个不可分割的整体,例如员工的“性别”、“年龄”等。
但有些属性是由几个子属性组合起来的。
例如,对于员工“薪金”,如果要分解为“基本工资”、“岗位工资”、“业绩提成”等,则成为组合属性。
因此,有些属性到底是原子属性还是组合属性,要根据设计的规定。
象“”,我国一般是作为一个整体,但西方则分为“First Name”和“Last Name”。
而这里的“售书单”属性,很明显只能是组合属性。
从属性的取值情况可以分为单值属性或多值属性。
单值属性就是属性只有一种取值,如员工性别、生日等;而多值属性就是该属性可能有多种取值。
例如,如果允许员工兼职,则他的职务可能就不只一个值。