数据库原理及应用

数据库原理及应用,第1张

其他信息:

数据库顾名思义就是存储数据的仓库,数据库原理就是教你如何去有效管理那些大量的数据信息的学科,教会你创建数据库来存储数据,优化数据库字段等等,设计出一个良好的数据库对一个系统或者是一个网站这些应用来说都是极其重要的。 数据库原理及应用前景 数据库管理系统经历了30多年的发展演变,已经取得了辉煌的成就,发展成了一门内容丰富的学科,形成了总量达数百亿美元的一个软件产业。根据Gartner Dataquest公司的调查,2000年国际数据库市场销售总额达88亿美元,比1999年增长10%。根据CCID的报告,2000年的中国数据库管理系统市场销售总额达24.8亿元,比1999年增长了41.7%,占软件市场总销售额的10.8%。可见,数据库已经发展成为一个规模巨大、增长迅速的市场,前景很好。 数据库原理及应用简介 《数据库原理及应用》是计算机类相关专业的一门专业核心课程,主要系统讲授数据库系统的基础理论、基本技术和基本方法。内容包括:数据库的体系结构、数据模型和关系运算等基本概念,并结合当前流行的大型关系数据库管理系统SQL SERVER平台,通过实例讲解和演示数据库的标准语言SQL、数据库的安全性和完整性控制、事务管理与恢复技术,以及关系规范化理论和数据库的设计,为进一步从事数据库的应用开发和研究奠定坚实的基础。

《数据库原理及应用》

第1章 绪论

1.1 数据管理技术的发展

1.1.1 人工管理阶段

1.1.2 文件系统阶段

1.1.3 数据库管理阶段

1.2 数据库系统结构

1.2.1 三级模式结构

1.2.2 数据库系统的二级独立性

1.2.3 数据库系统的二级映像

1.3 数据库、数据库管理系统和数据库系统

1.3.1 数据库

1.3.2 数据库管理系统

1.3.3 数据库系统

1.4 数据库技术的发展

小结

习题

第2章 数据模型

2.1 数据模型的概念

2.1.1 数据的三个范畴

.2.1.2 数据模型的组成要素及分类

2.2 e-r模型

2.2.1 基本概念

2.2.2 e-r图设计

2.3 面向对象模型

2.3.1 对象建模的基本知识

2.3.2 类图

小结

习题

第3章 关系数据库

3.1 关系数据模型

3.1.1 关系数据模型概述

3.1.2 基本术语

3.1.3 关系的性质

3.2 关系的完整性

3.3 关系代数

3.3.1 传统的集合运算

3.3.2 专门的关系运算

3.3.3 关系代数运算的应用实例

3.3.4 关系代数的扩充 *** 作

小结

习题

第4章 结构化查询语言sql

4.1 sql概述

4.1.1 sql语言的发展

4.1.2 sql语言的特点

4.1.3 sql语言的基本概念

4.2 数据定义语句

4.2.1 基本表的定义

4.2.2 基本表的修改与删除

4.2.3 基本表的删除

4.3 查询

4.3.1 单表查询

4.3.2 连接查询

4.3.3 嵌套查询

4.3.4 集合查询

4.4 数据 *** 纵

4.4.1 插入数据

4.4.2 修改数据

4.4.3 删除数据

4.5 视图

4.5.1 视图的定义与删除

4.5.2 查询视图

4.5.3 更新视图

4.5.4 视图的作用

小结

习题

第5章 存储过程、触发器和数据完整性

5.1 sql server编程结构

5.1.1 变量

5.1.2 显示信息

5.1.3 注释语句

5.1.4 批处理

5.1.5 流程控制语句

5.2 存储过程

5.2.1 存储过程的基本概念

5.2.2 创建存储过程

5.2.3 使用sql server管理控制台执行存储过程

5.2.4 修改和删除存储过程

5.3 触发器

5.3.1 触发器的基本概念

5.3.2 创建触发器

5.3.3 修改和删除触发器

5.4数据库完整性

5.4.1 约束

5.4.2 默认值

5.4.3 规则

5.4.4 用户定义的数据完整性

小结

习题

第6章 关系数据库设计理论

6.1 问题的提出

6.2 基本概念

6.2.1 函数依赖

6.2.2 码

6.3 规范化

6.3.1 第一范式

6.3.2第二范式

6.3.3 第三范式

6.3.4 bc范式

6.3.5 多值依赖与第四范式

6.3.6 关系模式规范化

6.4 函数依赖的公理系统

6.4.1 armstrong公理系统

6.4.2 闭包

6.4.3 函数依赖集的等到价和最小化

6.5 模式分解

6.5.1 模式分解的准则

6.5.2 分解的函数依赖保持性和无损连接性

6.5.3 模式分解的算法

小结

习题

第7章 索引

7.1 索引的概念

7.1.1 聚集索引

7.1.2 非聚集索引

7.1.3 唯一索引

7.1.4 何时应该创建索引

7.1.5 系统如何访问表中的数据

7.2 sql server 2005中的索引

7.2.1 索引的结构

7.2.2 管理索引

小结

习题

第8章 数据库设计

8.1 数据库设计概述

8.2 数据库设计的过程

8.2.1 数据库设计的步骤

8.2.2 需求分析阶段

8.2.3 概念设计阶段

8.2.4 逻辑设计阶段

8.2.5 物理设计阶段

8.2.6 数据库实现阶段

8.2.7 数据库的运行与维护阶段

8.3 数据库设计实例:电网设备抢修物资管理数据库设计

8.3.1 需求分析

8.3.2 概念模型

8.3.3 逻辑模型

小结

习题

第9章 数据库安全

9.1 安全性概述

9.1.1 用户标识与鉴别

9.1.2 存取控制

9.1.3 自主存取控制方法

9.1.4 强制存取控制方法

9.1.5 视图机制

9.1.6 审计

9.1.7 数据加密

9.2 sql server的安全性

9.2.1 sql server 2005的身份验证模式

9.2.2 sql server 2005的安全机制

9.3 用户管理和角色管理

9.3.1 登录用户和数据库用户

9.3.2 用户管理

9.3.3 角色管理

9.3.4 sql server的固定角色

9.4 权限管理

9.4.1 授予权限

9.4.2 收回权限

9.4.3 禁止权限

9.5 架构

小结

习题

第10章 数据库保护

10.1 事务

10.1.1 事务的定义

10.1.2 事务的acid性质

10.1.3 事务的状态

10.2 并发控制

10.2.1 并发 *** 作与数据的不一致性

10.2.2 封锁

10.2.3 并发 *** 作的调度

10.3 数据库的恢复

10.3.1 存储器的结构

10.3.2 恢复的原则和实现方法

10.3.3 故障类型和恢复方法

10.4 sql server数据库备份与恢复

10.4.1 数据库备份方法

10.4.2 数据库恢复

小结

习题

第11章数据库技术新进展

11.1 数据仓库

11.1.1 数据仓库的概念、特点与组成

11.1.2 数据的技术

11.1.3 数据仓库的几个重要概念

11.1.4 数据仓库的结构

11.1.5 数据仓库的多维数据模型

11.1.6 数据仓库系统设计

11.1.7 数据仓库的未来

11.2 数据挖掘

11.2.1 支持数据挖掘的基础

11.2.2 数据挖掘的分析方法

11.2.3 数据挖掘常用的基本技术

11.2.4数据挖掘技术实施的步骤

11.2.5数据挖掘技术发展

11.3 数据库技术的研究及发展

11.3.1 数据库技术的研究热点

11.3.2 数据库技术的发展方向

11.4 结语

小结

习题

附录a sql server 2005的安装及使用

a.1 sql server简介

a.2 sql server 2005的安装

a.3 sql server配置管理器

a.4 启动sql server服务

a.5 使用sql server management studio管理数据库

附录b 实验

实验一 通过sql server management studio创建及管理数据库

实验二 通过sql语句创建与管理数据表

实验三 单表查询

实验四 复杂查询

实验五 视图的创建与使用

实验六 存储过程

实验七 触发器

实验八 实现数据完整性

实验九 索引及数据库安全

参考文献

SQL 当一个新表被创建之时,系统将在磁盘中分配一段以8K为单位的连续空间,当字段的值从内存写入磁盘时,就在这一既定空间随机保存,当一个8K用完的时候, SQLS指针会自动分配一个8K的空间。这里,每个8K空间被称为一个数据页(Page),又名页面或数据页面,并分配从0-7的页号,每个文件的第0页记录引导信息,叫文件头(File header);每8个数据页(64K)的组合形成扩展区(Extent),称为扩展。全部数据页的组合形成堆(Heap)。

SQLS 规定行不能跨越数据页,所以,每行记录的最大数据量只能为8K。这就是char和varchar这两种字符串类型容量要限制在8K以内的原因,存储超过 8K的数据应使用text类型,实际上,text类型的字段值不能直接录入和保存,它只是存储一个指针,指向由若干8K的文本数据页所组成的扩展区,真正的数据正是放在这些数据页中。

页面有空间页面和数据页面之分。当一个扩展区的8个数据页中既包含了空间页面又包括了数据或索引页面时,称为混合扩展(Mixed Extent),每张表都以混合扩展开始;反之,称为一致扩展专门保存数据及索引信息。表被创建之时,SQLS在混合扩展中为其分配至少一个数据页面,随着数据量的增长,SQLS可即时在混合扩展中分配出7个页面,当数据超过8个页面时,则从一致扩展中分配数据页面。

空间页面专门负责数据空间的分配和管理,包括:PFS页面(Page free space):记录一个页面是否已分配、位于混合扩展还是一致扩展以及页面上还有多少可用空间等信息;GAM页面(Global allocation map)和SGAM页面(Secodary global allocation map):用来记录空闲的扩展或含有空闲页面的混合扩展的位置。SQLS综合利用这三种类型的页面文件

在必要时为数据表创建新空间;数据页或索引页则专门保存数据及索引信息,SQLS使用4种类型的数据页面来管理表或索引:它们是IAM页、数据页、文本/图像页和索引页。

在WINDOWS 中,我们对文件执行的每一步 *** 作,在磁盘上的物理位置只有系统(system)才知道;SQL SERVER沿袭了这种工作方式,在插入数据的过程中,不但每个字段值在数据页面中的保存位置是随机的,而且每个数据页面在“堆”中的排列位置也只有系统(system)才知道。这是为什么呢?众所周知,OS 之所以能管理DISK,是因为在系统启动时首先加载了文件分配表:FAT(File Allocation Table),正是由它管理文件系统并记录对文件的一切 *** 作,系统才得以正常运行;同理,作为管理系统级的SQL

SERVER,也有这样一张类似FAT的表存在,它就是索引分布映像页:IAM(Index Allocation Map)。

IAM的存在,使SQLS对数据表的物理管理有了可能。

IAM 页从混合扩展中分配,记录了8个初始页面的位置和该扩展区的位置,每个IAM页面能管理512,000个数据页面,如

果数据量太大,SQLS也可以增加更多的IAM页,可以位于文件的任何位置。第一个IAM页被称为FirstIAM,其中记录了以

后的IAM页的位置。

数据页和文本/图像页互反,前者保存非文本/图像类型的数据,因为它们都不超过8K的容量,后者则只保存超过8K容

量的文本或图像类型数据。而索引页顾名思义,保存的是与索引结构相关的数据信息。了解页面的问题有助我们下

一步准确理解SQLS维护索引的方式,如页拆分、填充因子等。

二、索引的基本概念

什么是索引呢?索引是一种特殊类型的数据库对象,它与表有着密切的联系。

索引是为检索而存在的。如一些书籍的末尾就专门附有索引,指明了某个关键字在正文中的出现的页码位置,方便我们查找,但大多数的书籍只有目录,目录不是索引,只是书中内容的排序,并不提供真正的检索功能。可见建立索引要单独占用空间;索引也并不是必须要建立的,它们只是为更好、更快的检索和定位关键字而存在。

再进一步说,我们要在图书馆中查阅图书,该怎么办呢?图书馆的前台有很多叫做索引卡片柜的小柜子,里面分了若干的类别供我们检索图书,比如你可以用书名的笔画顺序或者拼音顺序作为查找的依据,你还可以从作者名的笔画顺序或拼音顺序去查询想要的图书,反正有许多检索方式,但有一点很明白,书库中的书并没有按照这些卡片柜中的顺序排列——虽然理论上可以这样做,事实上,所有图书的脊背上都人工的粘贴了一个特定的编号①,它们是以这个顺序在排列。索引卡片中并没有指明这本书摆放在书库中的第几个书架的第几本,仅仅指明了这个特定的编号。管理员则根据这一编号将请求的图书返回到读者手中。这是很形象的例子,以下的讲解将会反复用到它。

SQLS 在安装完成之后,安装程序会自动创建master、model、tempdb等几个特殊的系统数据库,其中master是SQLS的

主数据库,用于保存和管理其它系统数据库、用户数据库以及SQLS的系统信息,它在SQLS中的地位与WINDOWS下的注册表相当。

master中有一个名为sysindexes的系统表,专门管理索引。SQLS查询数据表的 *** 作都必须用到它,毫无疑义,它是本文主角之一。查看一张表的索引属性,可以在查询分析器中使用以下命令:select * from sysindexes where id=object_id(‘tablename’);而要查看表的索引所占空间的大小,可以使用系统存储过程命令:sp_spaceused tablename,其中参数tablename为被索引的表名。

三、平衡树

如果你通过书后的索引知道了一个关键字所在的页码,你有可能通过随机的翻寻,最终到达正确的页码。但更科学更快捷的方法是:首先把书翻到大概二分之一的位置,如果要找的页码比该页的页码小,就把书向前翻到四分之一处,否则,就把书向后翻到四分之三的地方,依此类推,把书页续分成更小的部分,直至正确的页码。这叫“两分法”,微软在官方教程MOC里另有一种说法:叫B树(B-Tree,Balance Tree),即平衡树。

一个表索引由若干页面组成,这些页面构成了一个树形结构。B 树由“根”(root)开始,称为根级节点,它通过指向另外两个页,把一个表的记录从逻辑上分成两个部分:“枝”—--非叶级节点(Non-Leaf Level);而非叶级节点又分别指向更小的部分:“叶”——叶级节点(Leaf Level)。根节点、非叶级节点和叶级节点都位于索引页中,统称为索引节点,属于索引页的范筹。这些“枝”、“叶”最终指向了具体的数据页(Page)。在根级节点和叶级节点之间的叶又叫数据中间页。

“根”(root)对应了sysindexes表的Root字段,其中记载了非叶级节点的物理位置(即指针);非叶级节点位于根

节点和叶节点之间,记载了指向叶级节点的指针;而叶级节点则最终指向数据页。这就是“平衡树”。

四、聚集索引和非聚集索引

从形式上而言,索引分为聚集索引(Clustered Indexes)和非聚集索引(NonClustered Indexes)。

聚集索引相当于书籍脊背上那个特定的编号。如果对一张表建立了聚集索引,其索引页中就包含着建立索引的列的值(下称索引键值),那么表中的记录将按照该索引键值进行排序。比如,我们如果在“姓名”这一字段上建立了聚集索引,则表中的记录将按照姓名进行排列;如果建立了聚集索引的列是数值类型的,那么记录将按照该键值的数值大小来进行排列。

非聚集索引用于指定数据的逻辑顺序,也就是说,表中的数据并没有按照索引键值指定的顺序排列,而仍然按照插入记录时的顺序存放。其索引页中包含着索引键值和它所指向该行记录在数据页中的物理位置,叫做行定位符(RID:Row ID)。好似书后面的的索引表,索引表中的顺序与实际的页码顺序也是不一致的。而且一本书也许有多个索引。比如主题索引和作者索引。

SQL Server在默认的情况下建立的索引是非聚集索引,由于非聚集索引不对表中的数据进行重组,而只是存储索引键

值并用一个指针指向数据所在的页面。一个表如果没有聚集索引时,理论上可以建立249个非聚集索引。每个非聚集索引提供访问数据的不同排序顺序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9891648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存