计算机科学与技术系
课程论文
2014~2015 学年第 一 学期
课程 | 数据库原理与应用 |
论文题目 | 课程总结 |
学生姓名 | 邓传君 |
学号 | 1204032014 |
专业班级 | 12网工2班 |
指导教师 | 李正茂 |
一、概述
数据库是存储在一起的相关数据的集合。这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储于使用它的程序;对数据库插入新数据、修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。
通常所说的数据库系统则是指在计算机系统中引入了数据库后的系统构成,一般由数据库、数据库管理系统及其开发工具、应用系统、数据管理员和用户构成的。
在课程学习中,知本课程分为四个部分,第一部分是数据库基础知识;第二部分是利用SQL Server介绍基于客户/f服务器机制的数据库管理系统、数据库保护技术和分布式数据库;第三部分是介绍数据库系统的开发、数据库设计等;第三部分是概要介绍一下数据库技术的最新研究领域和应用领域及其发展。
在学习中,我们的课程不仅有理论课程的知识学习,还有机房的实际操作建立数据库及其相关操作。
二、课程知识总结
数据库是数据管理的工具,即长期存储在计算机内、有组织的、可共享的大量数据的集合。
第一本分从第一章到第四章。从第一章绪论里,我们了解到数据库的概念,其中有几个较为重要的知识点,即数据库系统DBS、数据库管理系统DBMS的概念以及数据库管理员DBA的职责。此外本章还介绍了数据库发展的三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
第二章介绍了数据模型和三层模式数据库。本章要求我们理解实体-联系方法,并学会绘制E-R图。此外还应掌握概念数据模型的意义和传统的三大数据模型,以及数据性和数据库三层模式结构。接着开始着重学习现在普遍使用的关系数据库。包括关系数据模型的数据结构和基本术语,关系模型的完整性约束和关系代数运算。重点是关系模式完整性的分类和功能,以及关系代数中集合运算和关系运算。最后介绍了关系数据库系统的三层模式结构。
第二部分内容从第五章到第九章。第五章系统讲述关系数据库的标准语言SQL的定义功能、查询功能、操作和控制功能。重点在于数据查询功能。另外还介绍了视图的用法和动态SQL中定义、操作和查询功能。
第六章知识点有:存储过程的创建和执行过程、修改和删除;触发器的基本概念,建立,插入和删除视图,插入、删除和更新类触发器。最后介绍了数据完整性。
第七章介绍安全性,包括安全性措施的层次、数据库管理系统的安全功能等,用户管理和角色管理,权限管理。其他的安全问题包括:数据加密、审计、统计数据库和用户定义的安全性措施。
事务管理这一章首先介绍了事务的概念、性质以及SQL对事务的支持。并发控制——干扰问题、可串行性、封锁、死锁、隔离级别、封锁与隔离级别;恢复——故障类型、备份类型、日志的概念、恢复模型、备份转储、还原。
第九章为关系数据理论:函数依赖术语和符号;函数依赖的公理系统——Amstrong公理的内容及其正确性、逻辑蕴含和闭包、公理的完备性、闭包的计算、函数依赖集的等价和最小化;规范化——1NF、2NF、3NF、BCNF;模式分解。
第十章主要介绍数据库的设计,属于第三部分的内容。完善E-R模型中的概念——弱实体,依赖关系,强制联系;数据库设计的过程主要掌握其建立的步骤。
最后几章都作为第四部分的内容,主要介绍数据库技术的最新研究领域和应用领域及其发展。
第十一章介绍面向对象数据库:新的数据库应用和新的数据库类型;面向对象的数据模型——对象与类;对象的属性、方法和状态、对象的交互和消息、类的确定和分化、封装、继承、多态;对象关系数据库与对象数据库;面向对象数据库的研究。
十二章“数据库应用的结构和开发环境”并非重点,而第十三章的内容在软件工程课程中就已经掌握,所以这两章的知识点就略过了。第十四章分布式数据库与分布式数据管理:概念;分布式数据库的分布方式;分布式数据库特点和目标——更新传播、分布式查询处理、目录表管理、分布式事务管理;SQL Server的复制及其术语、复制模型。十五章数据仓库:概念;结构;数据仓库系统;建立数据仓库系统;实现数据仓库的数据库模型;数据仓库与决策支持。
三、关系型数据库
按照数据关系模型的不同,数据库可分层次型、网状型和关系型3 种类型。其中关系型数据库是最重要的、目前应用最广泛的数据库类型。关系数据库早已成为发展的主流,几乎所有新推出的数据库管理系统产品都是关系型的。关系型数据库在计算机数据管理的发展史上是一个重要的里程碑,这种数据库具有数据结构化、最低冗余度、较高的程序与数据性、易于扩充、易于编制应用程序等优点,目前较大的信息系统都是建立在结构化数据库设计之上的。
关系型数据库通常包含客户端应用程序( Client ) 、数据库服务器( Server ) 和数据库(Database) 。SQL 是Client 端通往Server 端的桥梁,Client 用SQL 来向Server 端发送请求, Server返回Client 端要求的结果。现在比较流行的大中型关系型数据库有IBM DB2 、Oracle 、SQL Server 、SyBase 、Informix 等,常用的小型数据库有Access、Pradox 、Foxpro 等,现在个人用户比较常用的主要是基于中小型数据库MS SQL Server 和Access。
四、SQL Server语言
SQL 是结构化语言(structured query language)的缩写,由于SQL 使用方便、功能丰富、语言简洁,因此
得到了很快的应用和推广。1987 年6 月国际化组织( ISO) 把它采纳为国际标准。SQL 是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL 允许用户在高层的数据结构上工作,而不对单个记录进行操作, 可操作记录集, 所有SQL 语句接受集合作为输入,返回集合作为输出。SQL 的集合特性允许一条SQL 语句的结果作为另一条SQL 语句的输入。SQL 不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果; SQL 为许多任务提供了命令,其中包括:查询数据、在表中插入、修改和删除记录、建立、修改和删除数据对象、控制对数据和数据对象的存取。再者,以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。而且对数据库以外的领域也产生了很大影响,有不少软件产品将SQL 语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来。SQL 已成为关系数据库领域中一个主流语言。SQL 是结构化语言(structured query language)的缩写,由于SQL 使用方便、功能丰富、语言简洁,因此
得到了很快的应用和推广。1987 年6 月国际化组织( ISO) 把它采纳为国际标准。SQL 是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL 允许用户在高层的数据结构上工作,而不对单个记录进行操作, 可操作记录集, 所有SQL 语句接受集合作为输入,返回集合作为输出。SQL 的集合特性允许一条SQL 语句的结果作为另一条SQL 语句的输入。SQL 不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果; SQL 为许多任务提供了命令,其中包括:查询数据、在表中插入、修改和删除记录、建立、修改和删除数据对象、控制对数据和数据对象的存取。再者,以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。而且对数据库以外的领域也产生了很大影响,有不少软件产品将SQL 语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来。SQL 已成为关系数据库领域中一个主流语言。
最初,我们需要建立数据库,建立数据库包括三种文件,主文件(.mdf)、事务日志文件(.ldf)和次文件(.ndf)。数据定义语言,建立数据库及建立表的相关语句如下:
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
数据库有保持数据的性,所谓数据,是指存储在数据库中的数据于处理数据的所有应用程序而存在。也就是说,数据是客观实体的符号化标识,它就是一个客观存在,不会因为某一项应用的需要而改变它的结构,因此是于应用而存在着的客观实体。而某一项应用是处理数据获取信息的过程,也就是应用程序,它只能根据客观存在着的数据来设计所需要的数据处理方法,而不会去改变客观存在着的数据本身。数据库的传统定义是以一定的组织方式存储的一组相关数据的集合,主要表现为数据表的集合。
SQL Server
多用户时性能不佳,C/S结构,只支持Windows客户,可以用ADO,DAO,OLEDB,ODBC连接。
Oracle
性能最高, 保持WindowsNT下的TPC-D和TPC-C的世界记录。多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接。
SQL Server
操作简单,但只有图形界面。完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容早期产品。使用需要冒一定风险。
Oracle
较复杂, 同时提供GUI和命令行,在Windows NT和Unix下操作相同。长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。
四、学习心得
通过对数据库的学习,我明白了各行各业都离不开数据库,就算是一个小型的超市也离不开它。可见数据库这门课的广泛性,如果能够认真学好它将来必有成就。我就是抱着这种信念去学习数据库的。第一次接触数据库,第一次接触SQL语言,虽然陌生,但是可以让我从头开始学,就算没有基础的人也可以学得很好。刚开始练习SQL语言的时候,并不是很难,基本上都是按照老师的步骤来做,还很有成就感。后来学了单表查询和连接查询后,就慢慢发现越学越困难了,每个题目都要思考很久,并且每个题目基本上不止一个答案,所以必须找出最优的答案。后面的删除、插入、修改这些题目都变化蛮大的,书本上的例题根本无法满足我们,好在老师给我们提供了大量的课件,通过这些PPT,我们可以巩固课内的知识,还可以学习内容相关的知识,更好地完成老师布置的作业。如何学好数据库:
1、精讲多练,自主学习。集中精力对基础知识,基本原理和重点内容精心组织,精心讲授,引导学生建立系统的知识结构。精讲必须多练,从能力培养着眼,注重讲、练结合,保证练的比重,加强技能训练,培养学生自主学习,增强分析问题和解决问题的能力。
2、用查询时,通常一步做不出来,可以分几步做,我通常是这么做的,从我给网友回复的例子中也可以看得出。为什么要这样做?(1)有些是SQL语言的,没办法一步做出来,逼的;(2)可以检查每一步查询的结果,容易调试;(3)增加可读性,便于日后维护。
3、查询的结果用窗体显示或用报表打印,两者的技术差不多。通常改变打开窗体或报表的条件就可控制显示或打印的记录范围。另外用查询做数据源时,动态改变查询中的SQL语句,比在查询中引用窗体的控件要方便,因为SQL语句生成是在VBA中,可以先存放在字符变量中,然后再更新查询的SQL语句,这样就可以用断点来检查变量值对不对,如果在查询中引用窗体的控件,尤其是包含IIF()函数时,调试是很困难的。
4、多实践,也就是多做实验。课本上的东西虽然当时能看懂明白,但是时间长了就会忘记,那是缺乏应用的原因,而多做实验可以让我们在上课时那些不易记住的知识点应用到具体的实例中,这对记忆和应用是很有帮助的。
任何目标,只说不做到头来都会是一场空 。然而,现实是未知多变的,定出的目标计划随时都可能遭遇问题,要求有清醒的头脑。一个人,若要获得成功,必须拿出勇气,付出努力、拼搏、奋斗。成功,不相信眼泪;未来,要靠自己去打拼!实现目标的历程需要付出艰辛的汗水和不懈的追求,不要因为挫折而畏缩不前,不要因为失败而一蹶不振;要有屡败屡战的精神,要有越挫越勇的气魄;成功最终会属于你的,每天要对自己说:“我一定能成功,我一定按照目标的规划行动,坚持直到胜利的那一天。”既然选择了认准了是正确的,就要一直走下去。 在这里,这份卓越工程师规划也差不多落入尾声了,然而,我的真正行动才仅仅开始。现在我要做的是,迈出艰难的一步,朝着这个规划的目标前进,要以满腔的热情去获取最后的胜利!
在课程理论知识的讲解中,老师讲的很详细,并不是一味的运用多媒体教学,还利用板书加深了我们的理解,使我们更好的掌握这门课,对此深表对老师的感谢!
五、参考文献
[1]崔巍.数据库系统及应用[M].3版.北京:高等教育出版社,2012.
[2]Microsoft.SQL Server 2005/2008联机手册.2005/2008.
[3]杨冬青,唐世渭.数据库系统概念[M].北京:机械工业出版社,2004年.下载本文