[论文精品] SQL数据库原理论文.doc
SQL数据库原理论文目录:一、 前言1二、 数据库基本理.2 三、 SQL标准语言4四、 数据库设计11五、 数据库安全和完整性控制15六、 心得体会17七、 参考文献:18一、 前言这学期学习了数据库原理,我从中学到了很多,增长了许多计算机方面知识,开阔了眼界与思路。 数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支,是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。数据库技术如此重要,更坚定了我学习的信心。下面将我所学的主要知识简单介绍如下:共分四大块:数据库基本原理部分、SQL,即结构化查询语言、数据库设计、数据库安全和完整性控制。二、 数据库基本原理 数据库技术是应数据管理任务的需要而产生的。数据管理经历了三个阶段:人工管理阶段、文件管理阶段、数据库系统阶段。数据库系统与其他两个系统比,有许多优点:1) 数据结构化 ;2) 数据的共享性高,冗余度低,易扩充;3) 数据独立性高;4) 数据DBMS统一管理和控制。 目前,数据库已经成为现在信息系统的重要组成部分。据有数百G、数百T、甚至数百P子节的数据库已经普遍存在于科学技术、工业、农业、商业服务业和政府部门的信息系统中。 数据库技术是计算机领域中发展最快的技术之一。数据库技术的发展是沿着数据模型的中线展开的。现有的数据库系统均是基于某种数据模型的。数据模型是数据库系统的核心和基础。数据模型,通俗的讲,即为现实世界的模拟。数据模型的组成要素为:数据结构、数据操作、数据的完整性约束条件。常用的数据模型有层次模型、网状模型、关系模型、面向对象模型、对象关系模型。其中关系模型是目前最重要的一种数据模型。关系数据库系统采用的就是关系数据模型作为数据的组织方式。关系数据库是我们掌握的重点。关系数据库系统是支持关系模型的数据库系统。要想深入了解关系数据库系统首先要了解关系模型。关系模型由关系结构、关系操作集合和关系完整性约束3部分组成。关系模型的数据结构非常简单,只包含单一的数据结构关系。在用户看来,关系模型的中的数据的逻辑结构是一张扁平的二维表。关系模型的数据结构虽然简单但却能表达丰富的语义,描述出现实世界的实体以及实体之间的联系。 关系模型是建立在集合代数的基础上的。关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述。关系数据库也有型与值之分。关系数据库的型也成关系数据库模式,是对关系数据库的描述。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。 关系模型给出了关系操作的能力的说明,但不对RDBMS语言给出具体的语法要求。关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。关系的查询表达能力很强,是关系操作中最主要的部分。查询又分为:选择、投影、连接、除、并、差、交、笛卡尔积等。其中选择、投影、并、差、笛卡尔积是基本的操作。关系操作的特点实际和操作方式,即操作的对象和结果都是集合。这种操作方式也成为一次以集合的方式。 关系的完整性约束有三个:实体完整性、参照完整性和用户自定义完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变形,应该由关系系统自动支持。用户完整性适应用户需要遵循的约束条件,体现了具体领域的语义约束。三、 SQL标准语言SQL(Structured Query Language),即结构化查询语言,是关系数据库的标准语言。1986年10美国国家标准局的数据库委员会X3H2批准了SQL作为关系数据库语言的美国标准。1987年国际标准化组织也通过了这一标准。SQL标准从1986年公布以来随着数据库技术的发展不断发展,不断丰富。SQL 功 能 动 词数 据 定 义 CREATE,DROP,ALTER数 据 查 询 SELECT数 据 操 纵 INSERT,UPDATE ,DELETE数 据 控 制 GRANT,REVOKESQL之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简洁易学的语言。SQL集数据查询、数据操纵、数据定义和数据控制功能于一体。有如下特点:1) 综合统一;2) 高度过程化;3) 面向集合的操作方式;4) 以同一种语法结构提供多种使用方式;5) )语言简洁,易学易用。 SQL接近英语口语,因此容易学习,容易使用。字段数据类型: 整数数据类型:bigint,int,smallint,tinyint 精确数值类型:numeric,decimal 近似浮点数值数据类型:float,real 日期时间数据类型 :datetime,smalldatetime 字符串数据类型:char,varchar,text Unicode字符串数据类型: nchar,nvarchar,ntext 二进制数据类型:binary、varbinary、image 货币数据类型: money,smallmoney 标记数据类型: timestamp,uniqueidentifier 视图和基本表是SQL语言的主要操作对象,用户可以用SQL语言对视图和基本表进行各种操作。在用户眼中,视图和基本表都是关系表,而存储文件对用户是透明的。创建、修改和删除数据表:1 定义基本表 CREATE TABLE <表名>(<列名> <数据类型> 列级完整性约束条件 ,<列名> <数据类型> 列级完整性约束条件,<表级完整性约束条件>) 其中<表名>是所要定义的基本表的名字,必须是合法的标识符,最多可有128个字符,但本地临时表的表名(名称前有一个编号符#)最多只能包含116个字符。表名不允许重名,一个表可以由一个或多个属性(列)组成。建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。 关系模型的完整性规则:(1)实体完整性 主码(PRIMARY KEY) 语法格式: CONSTRAINT <约束名> PRIMARY KEY CLUSTERED|NONCLUSTERED(column_nameASC|DESC,n) 空值(NULL/NOT NULL) 唯一值(UNIQUE) (2)参照完整性 FOREIGN KEY约束指定某一个列或一组列作为外部键,格式如下: <列名><类型名> CONSTRAINT <约束名> FOREIGN KEY REFERENCES <被参照表名(列名)> (3)用户自定义的完整性约束规则 格式如下: CONSTRAINT <约束名> CHECK <条件> 2 修改基本表: ALTER TABLE <表名> ALTER COLUMN column_name new_data_type ( precision , scale ) COLLATE < collation_name > NULL | NOT NULL | ADD | DROP ROWGUIDCOL | ADD < column_definition >|column_name AS computed_column_expression ,.n | WITH CHECK | WITH NOCHECK ADD < table_constraint > ,.n | DROP CONSTRAINT constraint_name | COLUMN column ,.n |CHECK | NOCHECK CONSTRAINT ALL | constraint_name ,.n | ENABLE | DISABLE TRIGGER ALL | trigger_name ,.n 其中:<表名> 指定需要修改的基本表,ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约束条件或原有列,ALTER子句用于修改原有的列定义。CHECK|NOCHECKCONSTRAINT 指定启用或禁用 constraint_name。如果禁用,将来插入或更新该列时将不用该约束条件进行验证。此选项只能与 FOREIGN KEY 和 CHECK 约束一起使用。ENABLE | DISABLE TRIGGER 指定启用或禁用 trigger_name。当一个触发器被禁用时,它对表的定义依然存在;然而,当在表上执行 INSERT、UPDATE 或 DELETE 语句时,触发器中的操作将不执行,除非重新启用该触发器。3 删除基本表: DROP TABLE <表名>4. SQL的数据定义语句操 作 对 象 操 作 方 式创建 删除 修改表 CREATE TABLE DROP TABLE ALTER TABLE视图 CREATE VIEW DROP VIEW 索引 CREATE INDEX DROP INDEX数据库查询是数据库的核心操作。也是数据库学习的重点和难点。SQL提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为:SELECT ALL|DISTINCT <目标列表达式> ,<目标列表达式> FROM <表名或视图名>, <表名或视图名> WHERE <条件表达式> GROUP BY <列名1> HAVING <条件表达式> ORDER BY <列名2> ASC|DESC ;5. SQL数据查询:1) SELECT命令的格式及其含义SELECT ALL|DISTINCT<目标列表达式>,<目标列表达式>. INTO <新表名>FROM <表名或视图名>,<表名或视图名> .WHERE <条件表达式>GROUP BY <列名1> . HAVING <条件表达式>ORDER BY <列名2> ASC|DESC .2) SELECT子句的基本使用3) 分组查询4) 查询的排序5) 连接查询 等值与非等值连接查询 当连接运算符为=时,称为等值连接。使用其它运算符称为非等值连接。 自身连接 连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,这种连接称为表的自身连接。 从概念上讲DBMS执行连接操作的过程是,首先在表1中找到第一个元组,然后从头开始顺序扫描或按索引扫描表2,查找满足连接条件的元组,每找到一个元组, 就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。表2全部扫描完毕后,再到表1中找第二个元组,然后再从头开始顺序扫描或按索引扫描表2,查找满足连接条件的元组,每找到一个元组, 就将表1中的第二个元组与该元组拼接起来,形成结果表中一个元组。重复上述操作,直到表1全部元组都处理完毕为止两种连接运算 连接运算中有两种特殊情况,一种称为广义笛卡尔积连接,另一种称为自然连接。广义笛卡尔积连接是不带连接谓词的连接。两个表的广义笛卡尔积连接即是两表中元组的交叉乘积,也即其中一表中的每一元组都要与另一表中的每一元组作拼接,因此结果表往往很大。 如果是按照两个表中的相同属性进行等值连接,且目标列中去掉了重复的属性列,但保留了所有不重复的属性列,则称之为自然连接。6) 合并查询合并查询结果就是使用UNION操作符将来自不同查询的数据组合起来,形成一个具有综合信息的查询结果。UNION操作会自动将重复的数据行剔除。必须注意的是,参加合并查询结果的各子查询的使用的表结构应该相同,即各子查询的数据数目相同,对应的数据类型要相融。7) 嵌套查询 带有IN谓词的子查询 带有比较运算符的子查询 带有ANY或ALL谓词的子查询 带有EXISTS谓词的子查询 存储查询结果到表中使用SELECTINTO语句可以将查询到的结果存储到一个新建的数据库表或临时表中。四、 数据库设计1. 数据库设计概述 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求 在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数据库是信息系统的核心和基础把信息系统中大量的数据按一定的模型组织起来。提供存储、维护、检索数据的功能使信息系统可以方便、及时、准确地从数据库中获得所需的信息数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。数据库设计是信息系统开发和建设的重要组成部分。 数据库技术是信息资源开发、管理和服务的最有效手段。 使用数据库技术,可以保证系统数据的整体性、完整性和共享性。 在数据库领域内,将应用数据库的各种系统统称为数据库应用系统。 数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。2. 数据库和信息系统:从使用角度看信息系统是提供信息、辅助人们对环境进行控制和决策的系统。数据库是信息系统的核心和基础。二者之间的关系数据库将信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,信息系统各个功能模块能否很好地结合,关键在于数据库。对数据库进行合理的逻辑设计和有效的物理设计才能开发出完善、有效的信息系统,使信息系统可以方便、及时、准确地从数据库中获取信息。大型数据库的设计和开发是一项工程,应该具备多方面的技术和知识。数据库的基本知识和数据库设计技术计算机科学的基础知识程序设计方法软件工程原理和方法应用领域的相关知识3. 数据库设计的特点:1) 数据库设计应该与应用系统设计相结合数据库建设是硬件、软件和干件的结合:三分技术,七分管理,十二分基础数据;2)技术与管理的界面称之为“干件”.2) 数据库设计应该与应用系统设计相结合: 数据库的结构设计(静态) (1) 逻辑数据库设计 局部逻辑结构、全局逻辑结构 (2) 物理数据库设计 存储结构数据库的行为设计(动态) (1) 数据的装载 (2) 应用程序设计3) 结构和行为分离的设计 传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策 早期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计4. 数据库设计方法简述:1) 手工试凑法2) 规范设计法基本思想 :过程迭代和逐步求精规范设计法典型方法有:新奥尔良(New Orleans)方法( 将数据库设计分为四个阶段);需求分析(分析用户要求)概念设计(信息分析和定义)逻辑设计(设计实现)物理设计(物理数据库设计) S.B.Yao方法(将数据库设计分为五个步骤);I.R.Palmer方法(把数据库设计当成一步接一步的过程)。计算机辅助设计:ORACLE Designer 2000和SYBASE PowerDesigner.据库设计的基本步骤:1、数据库设计的准备工作;2、数据库设计的过程(六个阶段): 1)需求分析阶段; 2)概念结构设计阶段; 3)逻辑结构设计阶段; 4)数据库物理设计阶段; 5)数据库实施阶段; 6)数据库运行和维护阶段 设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。五、 数据库安全和完整性控制数据库的一大特点是数据可以共享,但数据共享必然带来数据库的安全性问题.数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一. 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。课本中讲述了三类计算机系统安全性问题:技术安全类、管理安全类和政策法律类。如何控制数据库的安全性?其常用的方法有:1)用户标识和鉴定2)存取控制;3)视图;4)审计;5)密码存储 数据库的完整性:即数据的正确性和相容性防止不合语义的数据进入数据库。 例: 学生的年龄必须是整数,取值范围为14-29;学生的性别只能是男或女;学生的学号一定是唯一的; 学生所在的系必须是学校开设的系; 一个完善的完整性控制机制应该允许用户定义各类完整性约束条件。DBMS的完整性控制机制有:1. 定义功能2. 检查功能3. 违约反应。 完整性规则用五元组表示:(D,O,A,C,P):D(Data) 约束作用的数据对象; O(Operation)触发完整性检查的数据库操作:一是当用户发出什么操作请求时需要检查该完整性规则;二是立即检查还是延迟检查;A(Assertion) 数据对象必须满足的断言或语义约束这是规则的主体; C(Condition) 选择A作用的数据对象值的谓词;P(Procedure) 违反完整性规则时触发的过程。六、 心得体会 通过本课学习令我感受深的是,在我自己看书的时候关于数据库规范化理论(1NF、2NF等)那一块自己怎么看也记不住,主要原因是自己理解不了,只能靠死记,故有些困难。减小关系模式因规范化程度过低带来的数据冗余,克服修改、删除的异常,“模式分解”是规范化的实现途径,但数据库设计实践中不能过分追求规范化程度。还有就是数据库设计过程,对于模型的转化理论也很难理解,通过您的讲解很容易就理解了,而且明白如何去做了。以上是我对数据库重点知识的理解,通过学习本课程和做实验.我学会了如何来设计数据库,如何利用语言来定义或进行相关查询.我感觉学到的不仅是知识本身,而且学到了一种技能和方法。七、 参考文献:数据库原理赢心中国考试数据库及应用课程教学探讨王子芳西南农业大学学报