SQL_Server数据库设计的案例分析

合集下载

sqlserver实验报告

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语句。

同时,我们还学习了如何使用事务来确保数据的完整性和一致性。

数据库实验示例带答案

数据库实验示例带答案

示例1实验一实验名称:SQL语句的应用(6课时)一、实验目的通过使用SQL SERVER企业管理器建立表。

模式为人事表、客户表、销售表、销售明细表、产品表。

理解数据库模式的概念,理解主键约束、外键约束、UNIQUE约束和CHECK 约束。

通过SQL SERVER企业管理器建立表间的约束。

将得到的表生成脚本,保存。

二、实验环境是MS SQL SERVER 2000的中文客户端。

三、实验示例create table employee1(emp_no char(5) not null,constraint emp_nochk check(emp_no like '[E-F][0-9][0-9][0-9][0-9]'),emp_name char(10) not null,emp_sex char(1) not null,constraint emp_sexchk check(emp_sex in ('m','f')),emp_phone char (13) not null,constraint emp_phonechk check(emp_phone like '([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'), emp_add varchar(60) not null,emp_salary char(5) not null,constraint emp_salarychk check (emp_salary between 60000 and 80000))go四、实验内容与步骤1、建立五张表,每张表至少需要20条记录。

(1)/*员工人事表employee */(2)/*客户表customer */(3)/*销售主表sales */(4)/*销货明细表sale_item */(5)/*产品名称表product */2、建立表的同时创建表的约束。

SQL Server数据库管理 期末论文 袁瑞萍

SQL Server数据库管理 期末论文 袁瑞萍

SQL Server数据库管理课程论文(报告、案例分析)院系信息学院专业电子商务班级学生姓名学号任课教师袁瑞萍2013 年 12 月 30 日员工管理系统数据库管理与开发一、需求分析(一)系统目标设计出具有员工管理、保险管理、工资管理和考勤管理等功能的系统(二)系统功能划分及描述1、信息输入功能(1)输入员工的基本信息。

包括:员工编号、姓名、性别、出生年月、参加工作时间、所属部门、职务、职称、政治面貌、婚姻状况等基本信息。

(2)输入员工的工资信息。

包括:基本工资、岗位工资、住房补贴、津贴、工会会费、水电费、住房公积金、养老保险、奖惩。

(3)输入员工的部门信息。

包括:部门编号、部门名称、部门负责人、部门人数。

2、数据修改删除功能(1)修改和删除员工的基本信息。

当单位人员的信息发生变化,如职称的变化,工作部门变动,或调离单位等,系统应能修改员工的信息或将其从员工信息表中删除。

(2)修改和删除员工的工资信息。

员工升职加薪、工资普掉是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除。

(3)修改和删除部门信息。

当撤销一个部门时,能从部门信息表中将其删除。

而当一个部门的名称发生改变时,系统中所有该项部门的名称应一致的改变。

3、查询和统计功能(1)能够查询指定员工的基本信息。

(2)能够查询指定某个部门或全部部门的基本信息。

(3)查询某个员工的工资信息。

(4)统计、汇总指定年份企业各部门或某个部门每个月或全年工资总额,汇总各部门的人数或本单位的总人数。

(5)工资表月工资的生成功能。

生成当月所有员工或某个部门的工资记录,同时能进行员工工资的计算,即计算应发金额、应扣金额及实发金额。

二、数据库概念结构设计(一)系统概念模型图一 E-R总图图二员工基本信息图三部门实体与考勤实体E-R图图四津贴实体与月工资实体E-R图(二)详细说明1、系统涉及的实体集●部门实体集:具有属性部门号、部门名称、部长和人数●员工实体集:具有属性职工编号、姓名、性别、出生日期、参加工作日期、所属部门、职务、政治面貌、婚姻状况和电话号码●出勤实体集:职工编号、月份、缺勤天数和奖惩工资●月工资实体集:惩奖、津贴、工会会费、住房公积金、养老保险和基本工资●津贴实体集:职工编号、月份、加班天数和津贴工资2、系统涉及的联系●一个部门能有多名员工,一个员工只能属于一个部门,所以部门和员工的联系是1:M的联系●一个员工可以有多次出勤记录但一个出勤记录只对应着一个员工,所以员工和出勤的联系是1:M的联系●一个员工可以有多中津贴但一个津贴只对应着一个员工,所以员工和津贴的联系是1:M的联系●一个员工可以有多分工资但一分工资只对应着一个员工,所以员工和工资的联系是1:M的联系●一个人的出勤影响着一个人的工资,一个人的工资也因一个人的出勤变动而变动,所以出勤和工资的联系时1:1●一个人的津贴影响着一个人的工资,一个人的工资也因一个人的津贴变动而变动,所以津贴和工资的联系时1:1三、逻辑结构设计将E-R模型转换为关系模式(一)员工实体集员工(emp_no,emp_name,sex,Department_id,Emp_time,Marry,Telephon)分别表示(员工号,员工名称,性别,员工部门,入公司时间,婚姻状况,电话号码)(二)员工津贴实体集津贴(emp_no,Jiaban_month,jbtianshu,Jiaban_jiangjin)分别表示(员工号,加班时间,加班天数,加班工资)(三)考勤实体集考勤(emp_no,Kaoqin_month,queqin,Kaoqin_gongzi)分别表示(员工号,时间,缺勤天数,考勤工资)(四)工资实体集工资(Zw,Jibengongzi)分别表示(职位,基本工资)(五)员工月工资实体集员工月工资(emp_no,jbgz,jt,Kq,ygz_total,ygz_data)分别表示(员工号,基本工资,津贴,缺勤扣除,总月工资,月工资时间)(六)部门实体集部门(department_id,department_name,manager,dep_renshu)分别表示(部门号,部门名称,部长,人数)四、数据库物理结构设计(一)把关系模型转化为表结构表(1)员工基本情况表表(2)部门表(3)考勤表(4)津贴表(5)基本工资表(6)月工资五、数据库实施--创建数据库create database工资管理on(name=sales_dat,filename='D:\sql_data\sales.mdf')go--创建表create table员工(emp_no varchar(8)not null primary key,--职工编号emp_name varchar(10)not null,--姓名sex char(2)--性别check(sex='男'or sex='女'),birth_date datetime not null,--出生日期hir_date datetime not null,--参加工作时间department_id char(4)not null,--所属部门zhiwu varchar(10)not null,--职务zhengzhimm varchar(10),--政治面貌marry varchar(4),--婚姻状况telephon char(11),--电话号码constraint old check(datediff(year,birth_date,hir_date)>18) )create table部门(department_id char(4)not null primary key,--部门号department_name varchar(6)not null,--部门名称manager varchar(6),--部长dep_renshu varchar(4)--人数)create table考勤(emp_no varcher(8)not null,--职工编号kaoqin_month varchar(10)not null,--月份queqin char(2),--缺勤天数kaoqin_gongzi float,--奖惩工资constraint e_k primary key(emp_no,kaoqin_month) )create table津贴(emp_no varchar(8)not null,--职工编号jiaban_month varchar(10)not null,--月份jiabantianshu char(2),--加班天数jiaban_jiangjin float,--津贴工资constraint e_j primary key(emp_no,jiaban_month) )create table基本工资(zhiwu varchar(10)not null primary key,--职务jibengongzi float default 1500,--基本工资)create table月工资(emp_no varchar(8)not null,deparment_id char(4)not null,jibengognzi float default 1500,zhufangbutie float,--住房补贴gz_month varchar(10)not null,jiaban_jiangjin float,--奖惩kaoqin_gongzi float,--津贴gonghuihuifei float,--工会会费zhfgjjin float,--住房公积金yanglaobaoxian float,--养老保险wagecount asjibengongzi+zhufangbutie+jiaban_jiangjin+kaoqin_gongzi+gonghui huifei+zhfgjjin+yanglaobaoxianconstraint e_g primary key (emp_no,gz_month))go--插入数据insert员工values('20070101','狄一','男','1985-1-1','2007-1-1','01','部长','团员','否','1234567890') insert员工values('20070102','狄二','女','1985-1-2','2007-1-2','01','员工','党员','否','1234567891') insert部门values('01','人事部','狄一','20')insert部门values('02','财务部','狄六','10')insert考勤values('20070101','200905','0',0)insert考勤values('20070101','200906','2',-60)insert津贴values('20070101','20000905','05',15)insert津贴values('20070101','20000906','0',0)insert基本工资values('员工',1500)insert基本工资values('组长',2000)insert月工资values('20070101','01',2000,0,'20000905',0,15,0,0,0)insert月工资values('20070102','01',1500,0,'20000905',-30,0,0,0,0)go--创建、绑定默认值create default gongzi_defa as 0exec sp_bindefault gongzi_defa,'考勤.kaoqin_gongzi'exec sp_bindefault gongzi_defa,'津贴.jiaban_jiangjin'exec sp_bindefault gongzi_defa,'月工资.gonghuihuifei'exec sp_bindefault gongzi_defa,'月工资.zhfgjjin'exec sp_bindefault gongzi_defa,'月工资.yanglaobaoxian' exec sp_bindefault gongzi_defa,'月工资.zhufangbutie'六、设计和创建存储过程--创建存储过程--a.存储过程查询员工基本信息create proc ygxx2@yg_id varchar(10)asselect*from员工where emp_no=@yg_id--b.存储过程查询指定某个部门或全部部门的基本信息create proc bumen2@bumen_id2varchar(4)asselect*from部门where department_id=@bumen_id2 create proc bumenqasselect*from部门--c.存储过程查询某个员工的工资信息create proc gzxx@yg_id varchar(10)asselect*from月工资where epm_no=@yg_id--d.汇总部门月份工资create proc gzhz@dep_id varchar(4),@month_year varchar(10)asselect department_id,gz_month from月工资where department_id=@dep_id and gz_month=@month_year order by department_id,gz_month--e.汇总工资总和create proc sum_sumasselect department_name,gz_month,sum(wagecount)from部门,月工资where部门.department_id=月工资.department_idgroup by department_name,gz_month七、设计和创建函数--创建函数--a.函数查询员工基本信息create function ygxx(@yg_id varchar(10))returns tableasreturn(select*from员工where emp_no=@yg_id)--b.函数查询部门信息create function bumen(@bumen_id varchar(4))returns tableasreturn(select*from部门where department_id=@bumen_id)八、设计和创建触发器--创建触发器--a.员工表中删除一条信息,其他表相应员工信息删除create trigger em on员工for deleteasdelete from考勤where emp_no in(select emp_no from deleted) delete from津贴where emp_no in(select emp_no from deleted) delete from月工资where emp_no in(select emp_no from deleted)--b.一个部门删除,此部门中的员工信息删除create trigger bm on部门for deleteasdelete from员工where department_id in(select department_id from deleted)--c.员工职务变动,基本工资改变create trigger jbgz on员工for update,insertasdeclare@q varchar(12)declare@m varchar(12)declare@s floatselect@q=emp_no from deletedselect@m=zhiwu from insertedselect@s=jibengongzi from基本工资where zhiwu=@mupdate月工资set jibengongzi=@s where月工资.emp_no=@q九、总结(一)人员分工情况(二)收获及体会尽管完成了此次老师布置的期末大作业,但由于时间仓促,所以只满足了部分作业要求,而且并没有过多考虑到系统的技术含量,以及在后期调试过程中出现的部分问题依旧没有很好地解决。

第5章SQL Server编程接口技术案例

第5章SQL Server编程接口技术案例

2013-7-25
22
5.2.1使用Data控件访SQLServer数据库
图5-2-2 使用Data控件访问SQL Server数据库界面 2013-7-25
23
5.2.1使用Data控件访SQLServer数据库
(3)编写代码 通过调用Data控件的方法来对数据库进行操作。 ① 添加记录 Private Sub cmdAdd_Click() Data1.Recordset.AddNew End Sub ② 修改记录图5-2-2 使用Data控件访问SQL Server数 据库界面 Private Sub cmdEdit_Click() txtBorrowNo.Enabled = False Data1.Recordset.Edit End Sub
第5章SQL Server编程接口技术案例
本章重点介绍使用DAO、RDO、ADO数据访问 接口开发SQL Server数据库应用程序的思路和方 法。
配置ODBC数据源 使用Visual Basic开发DAO数据库应用程序
使用Visual Basic开发RDO数据库应用程序
使用Visual Basic开发ADO数据库应用程序
2013-7-25
10
5.1.2 创建ODBC数据源
图5-1-6 更改默认的数据库
2013-7-25
11
5.1.2 创建ODBC数据源
(6)单击【下一步】按钮,进入向导的第四 个对话框,如图5-1-7所示。单击【完成】 按钮,进入向导的最后一个对话框,如图51-8所示,单击【确定】按钮确定“图书” 数据源配置,返回ODBC数据源管理器,这时 细心的读者会发现“图书”数据源已经出现 在了ODBC数据源管理器的列表中,如图5-19所示。到此为止,SQL Server数据源“图 书”就创建完毕了。

《sql server数据库实用案例教程》实验

《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数据库案例

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 server2012数据库原理与应用案例教程

sql server2012数据库原理与应用案例教程

sql server2012数据库原理与应用案例教程1. 引言1.1 概述在当今信息化时代,数据库技术的应用越来越广泛。

作为一种关系型数据库管理系统,SQL Server2012具备强大的功能和性能优势,被广泛应用于企业的数据存储、管理和分析。

本篇文章旨在介绍SQL Server2012的数据库原理与应用案例教程,帮助读者深入了解该数据库系统并学习如何利用其进行数据库设计与管理。

1.2 文章结构本文共分为五个主要部分,每一部分都有明确的内容目标和重点。

以下是各部分的简要介绍:第二部分:SQL Server2012数据库原理与应用案例教程- 介绍数据库原理的基础知识,并重点介绍SQL Server2012的概述,包括其特点、体系结构等。

- 着重讲解数据库设计与建模的方法和技巧,在实际案例中演示如何进行数据建模。

第三部分:SQL Server2012的基本操作与语法- 深入探讨数据表的创建与管理方法,并给出实际操作演示。

- 详细介绍SELECT语句查询数据的使用方式和技巧。

- 提供更新和删除数据(DML)操作指南及相应的案例讲解。

第四部分:SQL Server2012的高级功能与技巧- 着重介绍索引和性能优化技巧,帮助读者提高数据库查询和修改的效率。

- 提供存储过程和触发器的应用案例,展示其在实际业务中的作用。

- 分享数据备份和恢复策略,并提供相关案例与经验分享。

第五部分:结论与展望- 总结回顾本文的重点内容,概括SQL Server2012数据库原理与应用案例教程的主要收获。

- 对SQL Server2012未来发展进行展望与思考,探讨其在新技术背景下的应用前景。

1.3 目的本文旨在为读者提供一个全面且系统化的学习教程,使其熟悉SQL Server2012数据库系统的原理、基本操作以及高级功能与技巧。

通过详细讲解相关知识和实际案例演示,读者将能够更好地理解和掌握SQL Server2012,并将其应用于实际工作中。

sql server schema 实例

sql server schema 实例

sql server schema 实例SQL Server Schema 实例引言:SQL Server 是一种关系型数据库管理系统(RDBMS),可以用于存储和管理大量的结构化数据。

在 SQL Server 中,Schema 是一种用于组织和管理数据库对象的方法。

本文将介绍 SQL Server Schema 的概念和实例,并详细讨论其用途和优势。

1. 什么是 Schema?在 SQL Server 中,Schema 是一种逻辑容器,用于组织和管理数据库对象,如表、视图、存储过程等。

每个数据库可以包含多个Schema,每个 Schema 可以包含多个数据库对象。

Schema 可以被用于将数据库对象进行逻辑分组,提供更好的组织和管理能力。

2. 创建 Schema在 SQL Server 中,可以使用 CREATE SCHEMA 语句来创建 Schema。

例如,以下示例创建了一个名为 "HR" 的 Schema:```CREATE SCHEMA HR;```3. Schema 的用途3.1 逻辑分组Schema 可以用于将数据库对象按照逻辑分组。

例如,在 HR Schema 中,可以包含员工表、薪水表、部门表等相关对象,从而提供更好的组织和管理能力。

3.2 权限管理Schema 可以用于控制对数据库对象的访问权限。

可以为每个Schema 分配不同的权限,从而实现更细粒度的权限控制。

例如,可以将 HR Schema 的访问权限授予 HR 部门的用户,而其他部门的用户无法访问该 Schema。

3.3 隔离和命名空间Schema 可以用于隔离不同的数据库对象,从而避免对象名称冲突。

每个 Schema 中的对象名称必须是唯一的,这样可以避免不同Schema 中的对象之间发生名称冲突。

4. Schema 的优势4.1 简化对象名称使用 Schema 可以简化对象名称的定义。

例如,如果没有使用Schema,表的名称可能会变得很长,如 "dbo.Employee",而使用Schema 后,可以简化为 "HR.Employee",使得对象名称更加清晰和易于管理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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值学号文本型8 ↑(主)姓名文本型8表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”。

而这里的“售书单”属性,很明显只能是组合属性。

从属性的取值情况可以分为单值属性或多值属性。

相关文档
最新文档