《SQLserver数据库》课程设计范例
- 格式:docx
- 大小:27.42 KB
- 文档页数:15
SQLServer数据库管理与开发第一版课程设计一、引言SQLServer作为一种常见的关系型数据库管理系统(RDBMS),广泛应用于企业级应用中。
本文旨在为初学者提供SQLServer数据库管理与开发第一版课程设计,帮助学习者快速掌握SQLServer的基本概念、操作方法和开发技巧。
二、课程目标本课程旨在使学生掌握SQLServer的数据库管理和开发技术,包括以下内容:•SQLServer数据库的安装、配置和管理•SQLServer的基本概念、系统架构和查询语言•SQLServer数据库的备份、还原和灾备•SQLServer的常用开发技术和工具(如.NET、Visual Studio等)•SQLServer数据仓库和数据挖掘技术三、课程内容本课程总共分为十个章节,分别介绍SQLServer的基础知识、高级特性和开发技术:第一章:SQLServer的基本概念和系统架构本章介绍SQLServer的体系结构、各个组件的功能和关系,以及SQLServer的各种版本和功能区别。
第二章:SQLServer查询语言(T-SQL)本章介绍SQLServer的查询语言,包括T-SQL的基本语法、函数、操作符和关键字等,以及T-SQL在SQLServer中被广泛应用于数据查询、分析和管理等方面的实践。
第三章:SQLServer数据库的备份和还原本章介绍SQLServer数据库备份和还原的基本原理和方法,以及常见的备份策略和恢复技巧。
第四章:SQLServer数据的导入和导出本章介绍SQLServer数据的导入和导出技术,包括从多种数据源(如Excel、CSV等)导入数据到SQLServer中的方法,以及如何把SQLServer中的数据导出为其他格式的文件。
第五章:SQLServer数据库的性能优化本章介绍SQLServer数据库性能优化的方法和技巧,包括索引的创建、存储过程的优化和SQLServer执行计划的分析等。
第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的文件组。
《SQL Server 数据库设计》课程设计报告课题名称:学生管理系统__班级:_09软大1班_学号:________姓名:________完成日期:_______课程设计报告内容项目名称姓名其他参与人员本人在本项目中主要完成的工作完成任务的体会一、系统分析(一)系统的需求分析:1、系统目标:本系统将实现用计算机管理学生的学习信息的功能。
具体完成班级信息管理、学生信息管理、课程信息管理、学生选课管理等功能。
2、系统的功能需求:本系统用户分为普通用户和超级用户两类,超级用户负责系统的维护,包括对班级信息、学生信息、课程信息的录入、修改、查询、删除等。
普通用户即学生只具有自己选择课程的权限、查看课表和自己成绩的权限。
3、系统功能划分:用户通过身份验证后进入主界面。
主界面为超级用户提供6项选择:学生信息管理、课程信息管理、班级信息管理、选课、密码修改和退出系统。
普通用户有4项选择:选课、课程查询、密码修改和退出系统。
(二)系统的功能分析:A、班级信息管理:给出所有班级列表,只有超级用户可以实现增加、修改、查询、删除班级信息,维护指定班级所有学生信息,为指定班级设置必修课和选修课以及学分限制等功能。
在维护指定班级信息功能中,只有超级用户可以增加、修改、删除学生信息,查看某一学生选课情况,为学生更改口令等功能。
在指定班级必修课功能中,以课程表形式列出所有必修课信息,可以实现为一个班级增加或删除必修课的功能。
B、学生信息管理:给出所有学生的列表,超级用户可以增加、修改、删除学生信息,查看学生信息,查看某个学生选课情况,为学生修改口令等功能。
本功能与班级信息维护功能中的维护指定班级学生信息功能相似,不同是本功能是列出所有班级的所有学生信息。
C、课程管理信息:超级用户可以增加、修改、删除课程信息,查看某门课程的选课情况,查看指定课程的信息。
D、选课:以课程表的形式列出学生的选课情况,学生可以为自己选修或者退选课程,而超级用户可以为任何学生选修或者退选课程。
数据库sqlserver课程设计一、课程目标知识目标:1. 学生能理解SQL Server数据库的基本概念,掌握数据库的结构和设计原则;2. 学生能掌握SQL Server的数据查询语言(DQL),包括SELECT、WHERE、GROUP BY、ORDER BY等子句的使用;3. 学生能掌握SQL Server的数据操纵语言(DML),如INSERT、UPDATE、DELETE等命令的使用;4. 学生能理解事务处理的概念,掌握事务的使用和事务日志的作用;5. 学生了解SQL Server的安全性和权限控制,能够实施基本的数据库安全策略。
技能目标:1. 学生能够独立创建和管理SQL Server数据库,包括表、索引、视图等数据库对象;2. 学生能够编写复杂的SQL查询语句,进行数据检索和统计分析;3. 学生能够使用SQL Server Management Studio(SSMS)进行数据库管理和维护;4. 学生能够运用事务处理确保数据的一致性和完整性;5. 学生能够实施简单的数据库安全策略,保护数据不被未授权访问。
情感态度价值观目标:1. 学生通过学习SQL Server数据库课程,培养对数据库管理和信息处理的兴趣,增强信息素养;2. 学生在学习过程中,培养合作精神,学会与他人共同解决问题,提高沟通能力;3. 学生认识到数据库在现实生活中的广泛应用,增强对所学知识实用性的认识;4. 学生意识到数据安全的重要性,树立正确的信息安全观念,遵守信息道德规范。
本课程针对高年级学生,在已有计算机基础知识和编程能力的基础上,进一步深入学习SQL Server数据库的知识。
课程注重理论与实践相结合,通过案例分析和实际操作,帮助学生掌握数据库技术,提高实际应用能力。
课程目标旨在使学生具备独立设计和使用数据库系统的能力,为未来从事相关领域工作奠定基础。
二、教学内容1. SQL Server简介与安装- SQL Server的发展历程与特点- SQL Server的安装与配置2. 数据库基础知识- 数据库的概念与分类- 关系型数据库的基本理论- SQL Server数据库结构3. 数据查询语言(DQL)- SELECT语句及其子句- 聚合函数与分组查询- 子查询与联接查询4. 数据操纵语言(DML)- INSERT、UPDATE、DELETE命令- 事务处理与事务日志- 数据一致性与完整性约束5. 数据库对象- 表、索引、视图的创建与管理- 存储过程、触发器、函数的编写与应用6. SQL Server安全管理- 数据库用户与角色- 权限控制与数据加密- 备份与恢复策略7. 实践项目- 设计并实现一个简单的数据库应用系统- 数据库性能优化与维护- 数据库安全性评估与改进教学内容根据课程目标,按照由浅入深的顺序进行组织,涵盖SQL Server数据库的基本概念、操作、管理和安全策略等方面。
《SQL Server数据库技术》课程设计课程名称:课程设计(二)使用专业:软件技术专业一、课程设计的目的SQL Server数据库技术课程设计作为独立的教学环节,是软件技术专业集中实践性环节系列之一,是学习完相关课程后进行的一次全面的综合练习。
其目的在于加深对关系数据库理论和基本知识的理解,初步掌握使用各种关系数据库为后台数据库设计一个信息管理系统,综合训练学生的分析问题,设计的基本内容和方法,提高解决实际管理问题的能力,以培养学生的专项技能和职业能力。
二、课程设计内容及要求掌握数据库的设计的每个步骤,以及提交各步骤所需图表和文档。
通过使用目前流行的DBMS,建立所设计的数据库,并在此基础上实现数据库查询、连接等操作和触发器、存储器等对象设计。
1、需求分析:根据自己的选题,绘制的DFD、DD图表以及书写相关的文字说明。
2、概念结构设计:绘制所选题目详细的E-R图。
3、逻辑结构设计:将E-R图转换成等价的关系模式;按需求对关系模式进行规范化;对规范化后的模式进行评价,调整模式,使其满足性能、存储等方面要求;根据局部应用需要设计外模式。
4、物理结构设计:选定实施环境,存取方法等。
5、数据实施和维护:用DBMS建立数据库结构,加载数据,实现各种查询、链接应用程序,设计库中触发器、存储器等对象,并能对数据库做简单的维护操作。
6、用JSP 、VB、Java等编程语言设计数据库的操作界面。
7、设计小结:总结课程设计的过程、体会及建议。
8、其他:参考文献、致谢等。
三、课程设计的一般步骤课程设计大体分三个阶段:1.系统分析与数据库设计阶段1) 通过社会调查,选择一个实际数据库应用系统的软件项目。
2)进行系统需求分析和系统设计,写出系统分析和设计报告。
3)设计数据模型并进行优化,确定数据库结构、功能结构和系统安全性和完整性要求。
2.应用程序设计阶段1)完成数据库定义工作,实现系统数据的数据处理和数据录入。
2)实现应用程序的设计、编程、优化功能,实现数据安全性、数据完整性和并发控制技术等功能,并针对具体课题问题提出解决方法。
《sqlserver数据库》课程设计范例一、教学目标本课程的教学目标是使学生掌握SQL Server数据库的基本理论、操作方法和应用技巧。
通过本课程的学习,学生将能够:1.知识目标:理解数据库的基本概念、原理和SQL Server数据库的特点;掌握SQL语言的基本语法和用法,包括数据定义、数据查询、数据更新和数据控制;了解数据库设计和建立的基本步骤。
2.技能目标:能够使用SQL Server数据库管理系统进行数据库的创建、维护和管理;能够编写简单的SQL查询语句进行数据的增、删、改、查操作;能够进行数据库的安全性和完整性设置。
3.情感态度价值观目标:培养学生对数据库技术的兴趣和好奇心,提高学生的问题解决能力和创新意识;培养学生的团队协作精神和良好的编程习惯。
二、教学内容本课程的教学内容主要包括以下几个部分:1.SQL Server数据库的基本概念和特点:数据库的概念、发展历程、数据模型、SQL Server的特点。
2.SQL语言的基本语法和用法:数据定义语言(DDL)、数据查询语言(DQL)、数据更新语言(DML)、数据控制语言(DCL)。
3.数据库的创建和管理:数据库的创建、维护、备份和恢复。
4.数据的增、删、改、查操作:使用SQL语句进行数据的添加、删除、修改和查询。
5.数据库的安全性和完整性设置:用户管理、权限分配、约束设置等。
三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:讲解SQL Server数据库的基本概念、原理和SQL语言的语法。
2.案例分析法:通过实际案例让学生掌握数据库的创建、维护和管理方法。
3.实验法:让学生动手实践,进行数据库的创建、数据的增、删、改、查操作以及安全性和完整性设置。
4.讨论法:学生进行小组讨论,分享学习心得和经验,提高团队协作能力。
四、教学资源本课程所需的教学资源包括:1.教材:《SQL Server数据库教程》。
SQLServer数据库管理.开发与实践课程设计一、前言本文档是SQLServer数据库管理.开发与实践课程的设计文档。
在本课程中,我们将深入了解SQLServer数据库管理和开发的技能。
我们将探索各种关键概念、技术和技能,从基本的SQLServer数据库管理和编程技巧到高级DBA任务和编程要求。
我们将使用SQLServer数据库来创建、管理和优化各种类型的数据库和应用程序。
二、课程设计目标该课程的主要目的是使学生能够掌握SQLServer数据库的基本管理和开发技能。
在完成本课程后,学生将能够:•使用SQLServer数据库管理工具来创建和管理关系型数据库;•设计和编写SQLServer数据库的实现和管理计划;•通过了解SQLServer数据库的基本原理并运用常见的SQL查询来确定、优化和优化数据库设计;•实施数据备份和恢复政策,以确保恢复能力;•了解SQL Server数据库的复制、故障转移、性能调整和其他关键管理和开发主题。
三、课程设计内容3.1 数据库基础•数据库基本概念;•数据库管理系统简介;•数据库设计的基本流程;•数据库篇本设计范式。
3.2 SQL入门•SQL语言基础;•SQL语句的分类;•在SQLServer中执行SQL语句;•SQLServer的数据类型;•约束、程序、触发器和视图的使用。
3.3 SqlServer高级特性•SQLServer的索引和视图;•应用物理设计和规范;•SQLServer的监视和优化;•SQLServer的备份与恢复;•SQLServer的安全性和权限控制。
3.4 SqlServer高级编程•使用存储过程和触发器实现复杂的交易处理;•动态SQL和指针;•CLR的使用。
四、课程设计要求本课程设计是一个以SQLServer数据库为背景的基本数据库管理和开发项目。
学生需要执行以下任务:1.数据库设计和规划:学生需要设计一个包含必要数据表、视图、触发器、存储过程、索引和约束的SQLServer数据库。
sql sever数据库课程设计内容如下:一、课程目标知识目标:1. 熟练掌握SQL Server数据库的基本概念和原理;2. 学会使用SQL语句进行数据库的增删改查操作;3. 掌握数据库表的设计与关系维护;4. 了解数据库的安全性和事务处理。
技能目标:1. 能够独立安装和配置SQL Server数据库环境;2. 能够运用SQL语句完成常见的数据操作;3. 能够设计简单的数据库表,并进行关系维护;4. 能够对数据库进行简单的安全性和事务处理。
情感态度价值观目标:1. 培养学生对数据库技术的兴趣,提高其学习积极性;2. 培养学生良好的团队协作精神,提高沟通能力;3. 培养学生严谨、细心的学习态度,注重实际操作能力的培养;4. 增强学生的信息安全意识,注重数据保护。
课程性质:本课程为实践性较强的课程,注重学生动手能力的培养。
学生特点:学生具备一定的计算机操作基础,对数据库技术有一定了解,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,强化实践操作,使学生在掌握基本知识的基础上,提高实际操作能力。
在教学过程中,关注学生的情感态度价值观的培养,激发学生的学习兴趣,提高其综合素质。
通过本课程的学习,使学生具备一定的数据库设计与操作能力,为后续相关课程的学习打下坚实基础。
二、教学内容1. SQL Server数据库概述:介绍SQL Server的发展历程、特点和应用场景,使学生了解数据库的基本概念和SQL Server的优势。
- 教材章节:第一章 SQL Server概述2. SQL Server安装与配置:指导学生独立安装和配置SQL Server数据库环境,熟悉SQL Server Management Studio(SSMS)操作界面。
- 教材章节:第二章 SQL Server安装与配置3. SQL语句基础:讲解SQL语句的基本语法,包括SELECT、INSERT、UPDATE和DELETE等操作,使学生掌握数据库的增删改查操作。
数据库原理与应用课程设计 A 报告姓名:袁一帆学号:20121480学院 (系):管理学院专业:信息管理与信息系统班级:12级信管 1 班襄阳迈博信息科技有限公司企业考勤管理系统一、系统目标设计1系统开发的总体任务是实现企业员工考勤管理的系统化、规范化、和自动化。
2能够和人事管理系统、工资管理系统相结合,真正实现企业高效、科学、现代化的员工管理。
二、开发实际思想1尽量采用公司现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的。
2员工考勤管理系统能够和考勤机相连接,从而完成自动、高效、科学的考勤信息输入。
3系统采用模块化程序设计方法,既便与系统功能的各种组合和修该,又便于未参与开发的技术维护人员补充、维护。
系统应具备数据库维护功能,即使根据用户需求进行数据的添加、删除、修改、被分等操作。
系统需求分析1考勤管理涉及企业人事管理的多个方面,如员工职务升迁、工资发放、奖金发放、员工医疗保险发放等等。
本利自重的考勤管理系统需要完成功能主要有以下几点。
2员工考勤信息处理。
该莫完成员工考勤情况的输入、修改等操作。
如果企业内有考勤机,可以将它的输出处理后,形成考勤管理系统考勤模块的输入。
3企业缺勤类型的设定。
4 企业考勤统计。
该模块可对某个员工进行考勤情况的统计,生成统计报表。
5缺勤时间,缺勤类型对工资的影响6缺勤时间,缺勤类型对升职的影响数据字典数据项表 1名称员工编号说明每个员工拥有唯一的编号类型字符型长度4有关数据存储员工基本信息存储表 2名称员工姓名说明员工姓名类型字符型长度10有关数据存储员工基本信息存储表 3名称员工职务说明员工在公司的职务类型字符型长度10有关数据存储员工基本信息存储表 4名称员工电话说明员工保留的联系方式类型字符型长度11有关数据存储员工基本信息存储表 5名称员工所属部门说明员工在公司的所属部门类型字符型长度20有关数据存储员工基本系存储表 6名称缺勤类别说明缺勤种类类型字符型长度3有关数据存储缺勤类别存储表 7名称缺勤名称说明缺勤类别描述类型字符型长度10有关数据存储缺勤类别存储表 8名称缺勤描述说明缺勤描述长度50有关数据存储缺勤类别储存表 9名称缺勤天数说明缺勤的时长类型字符型长度3有关数据存储考勤管理存储表 10名称说明类型长度有关数据存储缺勤日期缺勤的具体时间字符型20缺勤管理存储数据结构表 11名称员工信息信息说明是考勤人员的主体数据结构,定义了公司员工的基本信息组成员工姓名;员工编号 ;员工所属部门;员工电话;员工职务表 12名称考勤信息信息说明是考勤系统的主体数据结构,定义了考勤的相关信息。
教案:SQL Server数据库教案第一章:SQL Server概述1.1 课程目标了解SQL Server的发展历程掌握SQL Server的基本概念和特点了解SQL Server的体系结构1.2 教学内容SQL Server的发展历程SQL Server的基本概念和特点SQL Server的体系结构1.3 教学方法讲授法案例分析法1.4 教学资源-PPT-案例文件1.5 教学步骤1. 介绍SQL Server的发展历程2. 讲解SQL Server的基本概念和特点3. 讲解SQL Server的体系结构第二章:SQL Server数据库的创建和管理2.1 课程目标掌握SQL Server数据库的创建和管理方法2.2 教学内容数据库的基本概念数据库的创建和管理方法2.3 教学方法讲授法案例分析法2.4 教学资源-PPT-案例文件2.5 教学步骤1. 介绍数据库的基本概念2. 讲解数据库的创建和管理方法3. 分析案例并演示操作过程第三章:SQL Server表的设计和管理3.1 课程目标掌握SQL Server表的设计和管理方法3.2 教学内容表的基本概念表的设计和管理方法3.3 教学方法讲授法案例分析法3.4 教学资源-PPT-案例文件3.5 教学步骤1. 介绍表的基本概念2. 讲解表的设计和管理方法3. 分析案例并演示操作过程第四章:SQL Server索引和约束的应用4.1 课程目标掌握SQL Server索引和约束的应用方法4.2 教学内容索引和约束的基本概念索引和约束的应用方法4.3 教学方法讲授法案例分析法4.4 教学资源-PPT-案例文件4.5 教学步骤1. 介绍索引和约束的基本概念2. 讲解索引和约束的应用方法3. 分析案例并演示操作过程第五章:SQL Server数据查询和操作5.1 课程目标掌握SQL Server数据查询和操作方法5.2 教学内容数据查询的基本概念数据查询和操作方法5.3 教学方法讲授法案例分析法5.4 教学资源-PPT-案例文件5.5 教学步骤1. 介绍数据查询的基本概念2. 讲解数据查询和操作方法3. 分析案例并演示操作过程第六章:SQL Server数据传输6.1 课程目标掌握SQL Server中数据传输的基本方法和技巧。
1 概述课题简介书店书目书种繁多,来源多样,购买者众多,图书信息、供应商信息、客户信息、销售信息庞大,不易管理。
因此,很有必要创建一个小型书店管理系统,以便于书店对图书的管理。
设计目的应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
数据库应用课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。
数据库原理软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
设计内容运用基于E-R 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发小型书店管理系统,完成小型书店管理系统的全部功能。
首先做好需求分析,并完成数据流图和数据字典。
其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。
然后就是逻辑结构设计,将E-R 图转换为计算机系统所支持的逻辑模型2 需求分析功能分析首先,建立一些基本表(尽可能满足3N),对大部分基本信息组合、存储;其次通过建立视图实现对冗余数据的有必要保留(查询并计算基本表属性得到新的作为视图属性)并实现对以下基本信息的显示。
图书信息:图书名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称;供应商名称等;供应商信息:供应商名称、地址、电话,联系人;客户信息:客户编号、名称、年龄、性别、累计购书金额等;销售信息:时间、销售名称、数量、销售单价、客户编号、客户名称、金额等。
在此基础上进行以下目标查询,由于有些查询常用且较复杂,为了简化其应用,所以将它们定义为存储过程。
查询当月书店销售金额、营业金额;(存储过程)查询某种图书库存数量;(存储过程)查询当月销量最好的图书信息;(存储过程)按供应商名称查询订购信息;(普通查询)查询购买次数超过3次的客户信息。
(普通查询)接着根据需要建立触发器、存储过程、索引,实现对数据库的优化。
最后,进行过程功能的验证。
允许具有权限者对数据库进行数据更新和查询等合法操作。
数据流图用流程图来描述处理过程与数据的关系数据流图如下:图2,1 数据流图数据字典用数据字典来描述数据数据字典如下:数据项:数据结构:概念结构设计概念结构设计的方法设计概念结构通常有四类方法:自顶向下,自底向上,逐渐扩张以及混合策略。
本系统采用的是自底向上的方法。
即首先定义全局的概念结构的框架,然后逐步细化。
根据自顶向下地进行需求分析然后再自底向上地进行概念设计。
概念结构设计的步骤第一步:抽象数据;第二步:设计局部E-R图;第三步:把各分E-R图综合成总体E-R图,消除各种冲突;第四步:对总体E-R图进行优化,消除冗余数据和冗余联系;抽象初步数据:(此处与优化后E-R图得出的实体联系属性很有可能不同)实体:图书、供应商、客户联系:图书订购关系、图书销售关系图书与供应商的关系是多对一的关系;图书与客户的关系是多对一的关系。
属性:图书的属性:图书编号、图书名称、出版社名称、作者名称、供应商名称;主码为图书编号供应商的属性:供应商名称、供应商地址、电话、联系人;主码为供应商名称客户的属性:客户编号、姓名、性别、年龄;主码为客户编号图书订购关系属性:供应商名称、图书编号、订购时间、订购单价;主码为供应商名称和图书编号图书销售关系属性:客户编号、图书编号、销售时间、销售单价;主码为客户编号和图书编号分E-R图:图书E-R图:供应商E-R图:客户E-R图:初E-R图:优化后的总E-R图:逻辑设计阶段逻辑设计阶段:将系统E-R模型转换为关系模式,并对给出的关系模式进行关系规范化处理(尽量满足3NF),得到系统全部的关系模式,并标明主键、外键此部分一律采用英文命名。
然后进行用户外模式的设计,针对中国用户,此处用中文命名。
将E——R模式转换为以下关系模式:1) book(#bname, writer_name, press_name);主键:#bname2.) everybook (# bno, #bname) ;主键:#bno外键:#bname3) supplier (#supplier_name, address, telephone, contact) ;主键:#supplier_name4) customer (#cno, cname, sex, age);主键:#cno5) book_order(#bname, #supplier_name, #order_time, order_price, order_count);主键:#bname, #supplier_name, #order_time6) book_sell(#bno, #cno, sell_time, sell_price);主键:#bno发现这六个关系模式3N都满足。
因为元组中都是不可分割的数据,且所有非主属性完全依赖其主码,且它的任何一个非主属性都不传递于任何主关键字。
用户外模式设计:基本信息视图的建立:1. 单本销售情况(图书编号,图书名称客户编号,客户名称,销售单价,销售时间);2. 同种销售情况(书名,销售数量,销售金额);3. 客户信息(客户编号,客户名称、性别,年龄,累计购书金额);4. 供应商信息(供应商名称,地址,电话,联系人);5. 图书订购信息(图书名称,供应商名称,订购时间,订购数量,订购单价,订购金额,出版社名称,作者名称);物理设计阶段物理设计阶段:为一个逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法),数据库的物理设计通常分为两步:A、确定数据库的物理结构;B、对物理结构进行时间和空间效率评价。
建立小型书店管理系统创建数据库book_shop_management--创建小型书店管理系统create database book_shop_managementon primary(name='book_shop_management',filename='d:\program files\microsoft sql server\\mssql\data\',size=10mb,maxsize=unlimited,filegrowth=10%)log on(name='book_shop_management_log',filename='d:\program files\microsoft sql server\\mssql\data\',size=1mb,maxsize=5mb,filegrowth=3%)go截图得:对各个基本表的建立(包括了各种完整性约束)建立表book--建立表bookcreate table book(#bname varchar(30)primary key,writer_name char(8),press_name char(12))建立表everybook--建立表everybookcreate table everybook(#bno char(8)primary key,#bname varchar(30)not nullconstraint fk_everybook_bname foreign key references book(#bname))建立表supplier--建立表suppliercreate table supplier(#supplier_name char(12)primary key,address varchar(50)not null,telephone char(7)not null,contact char(8)not null)建立表customer--建立表customercreate table customer(#cno char(8)primary key,cname char(8)not null,sex char(2),age int,constraint ck_customer_sex check(sex in('男','女')))建立表book_order--建立表book_ordercreate table book_order(#bname varchar(30),#supplier_name char(12),#order_time datetime,order_count int not null,order_price int not null,constraint pk_book_order primary key(#bname,#supplier_name,#order_time))建立表book_sell--建立表book_sellcreate table book_sell(#bno char(8)primary key,#cno char(8)not null,sell_time datetime,sell_price int)建立视图建立基本信息视图:建立单本销售情况视图--建立单本销售情况视图create view view_单本销售情况asselect book_sell.#bno as图书编号,#bname as图书名称, book_sell.#cno as客户编号,cname as客户名称,sell_time as销售时间,sell_price as销售单价from book_sell,customer,everybookwhere everybook.#bno=book_sell.#bnoand customer.#cno=book_sell.#cno建立同种销售情况视图--建立同种销售情况视图create view view_同种销售情况asselect图书名称as书名,count(图书编号)as销售数量,sum(销售单价)as销售金额from view_单本销售情况group by图书名称建立客户信息视图--建立客户信息情况create view view_客户信息select customer.#cno as客户编号,cname as客户名称,sex as性别,age as年龄,(select sum(sell_price)from book_sellgroup by #cno)as累计购书金额from book_sell,customerwhere book_sell.#cno=customer.#cno建立供应商视图--建立供应商视图create view view_供应商信息asselect #supplier_name as供应商名称,address as地址,telephone as电话,contact as联系人from supplier建立订购信息视图--建立订购信息视图create view view_图书订购信息asselect book_order.#bname as图书名称,#supplier_name as供应商名称,#order_time as订购时间,order_price as订购单价,order_count as订购数量,(order_price*order_count)as订购金额,press_name as出版社名称,writer_name as作者名称from book,book_orderwhere book.#bname=book_order.#bname建立存储过程某种图书库存查询存储过程create procedure sp_某种图书库存查询--@p1为要查询的图书名称@p1 varchar(30)asbeginselect订购数-销售数量as库存from(select sum(order_count)as订购数,#bname as书名from book_ordergroup by #bname)as x,view_同种销售情况where x.书名=@p1 and view_同种销售情况.书名=@p1endgo某段时间内的销售业绩查询存储过程----建立本月业绩查询存储过程-----由于不知其它信息,此处将销售金额与营业金额等同-----营业金额=营业额=成本+利润create procedure sp_查询某段时间内的业绩--@p1为起始时间,@p2为结束时间@p1 datetime,@p2 datetimeasbeginselect sum(销售单价)as销售金额from view_单本销售情况where销售时间>=@p1 and销售时间<=@p2endgo某段时间内的销售最好图书信息查询存储过程----建立某段时间内销售最好图书信息查询存储过程create procedure sp_查询某段时间内销售最好的图书信息@p1 datetime,@p2 datetimeasbeginselect #bname as图书名称,writer_name as作者名称,press_name as出版社名称from(select图书名称as书名,count(图书编号)as销售数量from view_单本销售情况where销售时间>=@p1and销售时间<=@p2group by图书名称)as x,bookwhere #bname=书名and销售数量>=all(select count(图书编号)from view_单本销售情况where销售时间>=@p1and销售时间<=@p2group by图书名称)endgo建立触发器(另外5个表也建立相应曾删改触发器,不过此处从略,详情见附件源代码)建立一个customer的操作审核表,并建立相关触发器,当向customer中插入、更新或删除记录时,生成一条操作记录插入到该操作审核表中,内容包括客户编号、客户名称、操作方式(插入/更新/删除)和操作时间----建一个操作审核表create table customer_operate(客户编号char(8)not null,客户名称char(8)not null,操作方式char(4)not null,操作时间datetime not null)----建立相关触发器create trigger trigger_customer_inserton customerfor insertasbegindeclare @p1 char(8),@p2 char(8)set @p1=(select #cno from inserted)set @p2=(select cname from inserted)print'insert:'select*from insertedinsert into customer_operate values(@p1,@p2,'插入',getdate()) endgocreate trigger trigger_customer_deleteon customerfor deleteasbegindeclare @p1 char(8),@p2 char(8)set @p1=(select #cno from deleted)set @p2=(select cname from deleted)print'deleted:'select*from deletedinsert into customer_operate values(@p1,@p2,'删除',getdate()) endgocreate trigger trigger_customer_updateon customerfor updateasbegindeclare @p1 char(8),@p2 char(8)set @p1=(select #cno from deleted)set @p2=(select cname from deleted)print'inserted:'select*from insertedprint'deleted:'select*from deletedinsert into customer_operate values(@p1,@p2,'修改',getdate()) endgo建立索引(由于数据库比较小,没有必要建立索引)实现数据库(有附件源代码和该数据库源文件)过程功能验证向基本表插入适量如下数据并显示基本表信息everybook bookSuppilier注:此处插入数据应当book在everybook 之前插入数据(外键)截图得:视图显示基本信息---用显示视图基本信息select*from view_单本销售情况select*from view_供应商信息select*from view_客户信息select*from view_同种销售信息select*from view_图书订购信息截图得:执行存储过程完成目标查询某种图书库存查询exec sp_某种图书库存查询'烈火如歌'本月业绩查询exec sp_查询某段时间内的业绩'2013-7-1','2013-7-31'本月销售最好图书信息查询exec sp_查询某段时间内销售最好的图书信息'2013-7-1','2013-7-31' 截图得:用普通查询完成目标查询(两次查询同时显示)订购超3次客户信息查询---订购超次客户信息查询select*from view_客户信息where客户编号=any(select #cno from book_sellgroup by #cnohaving count(*)>3)按供应商名称查询订购信息---按供应商名称查询订购信息select*from view_图书订购信息order by供应商名称截图得:注:数据检查得,确实没有订购超3次的客户。