数据库系统概率
第一章、数据库系统概述
本章要点:
1、通过理解数据库系统主要特点,初步了解数据库系统全貌。
2、了解关系、关系模型、关系数据库系统等基本概念。
3、了解数据库管理系统的组成和各部分的基本功能。
4、初步理解本章中提到的有关数据库的专业术语。
5、了解数据库系统体系结构以及数据库系统运行过程。
1。1 有关数据库的基本概念
一、数据:凡是计算机中用来描述事物的记录,都可以统称为数据。
三、数据库:数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
四、数据库管理系统:由一个互相关联的数据的集合和一组用于访问这些数据的程序组成,介于应用程序和操作系统之间的数据管理软件。
DBMS的主要功能包括:
1、数据定义 2、数据操纵 3、数据库的运行管理 4、数据库的建立和维护
五、数据库系统:包括和数据库有关的整个系统:数据库、DBMS、应用程序以及数据库管理员和用户等等。也即:
DBS = DB + DBMS + APPLICATION + DBA + USER
六、DBA的职责:
(1)决定数据库中的信息内容和结构;(2)决定数据库的存储结构和存取策略;(3)定义数据库的安全性要求和完整性约束条件;
(4)监控数据库的使用和运行;(5)数据库的改进和重组重构。
到底什么是数据库管理系统呢?你可以把数据库管理系统看成是一个仓库,在仓库里放着数据,还有一个仓库的保管员,这个保管员负责数据的搬进、整理和搬出。这样仓库、数据和保管员就组成了一个数据库管理系统,这里的仓库是“文件”,保管员是“管理软件”。仓库+数据就是数据库。
这个保管员要做的事情很多,要检查输入的数据是否合法(数据的定义问题),如何摆放最好(数据的结构问题),如何更快地找到用户所需要的数据并提取出来(数据的操纵问题),数据如何不被坏人提走(数据的安全性问题)等等。有些时候可能会有多个人来提货,为了提高效率那么就可以一次拿几张单子,顺路把需要的数据都取出来(涉及到并发控制问题)。保管员所做的这些事情就是数据库管理系统需要做的事情。
1。2 数据库管理技术的产生和发展
一、人工管理阶段特点
1、由用户管理
2、面向某一应用程序
3、无共享、冗余度极大
4、不独立、完全依赖于应用程序
5、无结构
6、由应用程序控制
二、文件系统阶段特点
1、数据冗余和不一致
2、数据访问困难
3、数据孤立
4、完整性问题
5、原子性问题
6、并发访问异常
7、安全性问题
三、数据库系统阶段特点
1、数据的整体结构化。
2、数据共享度高、冗余度小。
3、高度的物理独立性和一定的逻辑独立性
4、数据库管理系统(DBMS)对数据进行统一的管理和控制,提供数据安全性、完整性、并发控制和恢复能力。
5、为用户提供了友好的接口。
1。3 数据的模型
一、数据模型的分类
根据模型应用的不同目的,将模型分为属于两种不同层次的两类模型:
1、概念模型
概念模型也称信息模型,是按用户的观点对数据和信息建模的,主要用于数据库设计。
2、数据模型
数据模型是按计算机系统的观点对数据建模的,主要用于DBMS的实现。它主要包括层次模型、网状模型和关系模型等。
其中数据模型是数据库系统的核心和基础。
二、数据模型的组成要素
1、数据结构
数据结构是所研究的对象类型的集合,是对系统静态特性的描述。数据结构的类型有层次结构、网状结构和关系结构,分别对应三种数据模型为层次模型、网状模型和关系模型。
2、数据操作
数据操作是指对数据库各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。是对系统动态特性的描述。
3、数据的约束条件
数据的约束条件是一组完整性规则的集合。
三、概念模型
1、信息世界的基本概念
(1)实体(Entity):指客观存在并可相互区别的事物。比如学生、学生的一次选课、学生与系的关系等。
(2)属性(Attribute):指实体所具有的某一特性。若干属性可以刻画一个实体,例如部门实体可以由部门号、部门名称等属性组成。
(3)码(Key):指唯一标识实体的属性集。比如部门号是部门实体的码。
(4)域(Domain):指某一属性的取值范围。如部门名称的域为字符串集合。
(5)实体型(Entity type):指用实体名及其属性集合来抽象和刻画同类实体。如部门(部门号、部门名称)就是一个实体型。
(6)实体集(Entity set): 指同类实体的集合。如全体部门就是一个实体集。
(7)联系(Relationship):反映为实体(型)内部的联系和实体(型)之间的联系。
两个实体型之间的联系分为三类:
(1)一对一(1:1); (2)一对多(1:n); (3)多对多(m:n)
2、概念模型的表示方法(实体-联系方法)
数据库的总体概念结构可以用E-R模型中的E-R图来表示。E-R图由以下基本元素构成:
(1)矩形:代表实体集;
(2)椭圆:代表属性;
(3)菱形:代表实体间的联系集;
(4)线段:将属性与实体集相连或将实体集与联系集相连。除线段以外,每个元素上都标有它所代表的实体、属性或联系。
3、概念模型的作用:
概念模型是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员与用户进行交流的语言。
实体-联系模型属于基于对象的概念层数据模型。该模型的建立是模拟人们认识现实世界的过程,它将现实世界中的对象分为两类:实体和联系。除此之外,该模型还可以表示出数据库内容必须遵循的特定约束。例如映射的基数。
四、几种常见的数据模型
1、层次模型
满足以下二个条件的基本层次联系的集合:(1)有且只有一个结点没有双亲结点(这个结点叫根结点);(2)除根结点外的其他结点有且只有一个双亲结点。
层次模型与网状模型类似,分别用记录和链接来表示数据和数据间的联系。与网状模型不同的是:层次模型中的记录只能组织成树的集合而不能是任意图的集合。
层次模型可以看成是网状模型的特例,它们都是格式化模型。它们从体系结构、数据库语言到数据存储管理均有共同的特征。在层次模型中,记录的组织不再是一张杂乱无章的图,而是一棵"倒长"的树。
2、网状模型
满足以下二个条件的基本层次联系的集合:(1)允许一个以上的结点没有双亲结点;(2)一个结点可以有多个双亲结点。
网状模型中的数据用记录(与Pascal语言中的记录含义相同)的集合来表示,数据间的联系用链接(可看作指针)来表示。数据库中的记录可被组织成任意图的集合。
3、关系模型
关系模型用表的集合来表示数据和数据间的联系。每个表有多个列,每列有唯一的列名。在关系模型中,无论是从客观事物中抽象出的实体,还是实体之间的联系,都用单一的结构类型——关系来表示。在对关系进行各种处理之后,得到的还是关系——一张新的二维表。
1。4 数据库系统结构
一、从数据库管理系统的角度看,可分为三层,从外到内依次为外模式、模式和内模式。
1、 外模式:
外模式又称为用户模式,是数据库用户和数据库系统的接口,是数据库用户的数据视图(View),是数据库用户可以看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。
2、 模式
模式是所有数据库用户的公共数据视图,是数据库中全部数据的逻辑结构和特征的描述。
3、 内模式
内模式又称为存储模式(Storage Schema),是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。
二、为了实现三个抽象级别的联系和转换,数据库管理系统在三层结构之间提供了两层映象:外模式/模式映象和模式/内模式映象。
1、外模式/模式映象
通过外模式与模式之间的映象把描述局部逻辑结构的外模式与描述全局逻辑结构的模式联系起来。
2、模式/内模式映象
通过模式与内模式之间的映象把描述全局逻辑结构的模式与描述物理结构的内模式联系起来。
三 、三级模式结构的优点:使数据库系统中的数据能保持较高的物理独立性和逻辑独立性。
对于一个仓库来说,东西需要经常搬进搬出,但是仓库本身的结构一般不会改变,而且存放东西的架子一般也不会改变。不同的东西所需要的架子是不一样的,也可以说是它们的"模式"是不同的。在某个架子上的东西对于这个架子的"模式"来说就是"实例"。
在数据库的三级模式中,逻辑模式和物理模式之间的关系可以看作是设计与实现的关系,而逻辑模式和子模式之间的关系可以看作是全局和局部的关系。
1。5 数据库技术的研究领域
一、DBMS软件的研制
也就是说设计一个类似MS SQL Server的东东,听说国产的DBMS也有那么几个,不过我没用过,呵。
二、数据库设计
主要的研究方向是数据库设计方法学和设计工具。
三、数据库理论
主要集中于关系的规范化理论、关系数据理论等。
1。6 小结
通过这章的学习,重新加深了对数据库概念方面知识的映象,重温了数据库技术的发展过程、数据模型的发展历程和数据库的三层体系结构。并对E-R图的表现有了进一步的认识。
第二章 关系数据库 |
本章要点:
|
2.1 关系模型概述
|
第三章 關係數據庫標准語言SQL |
本章重點: |
全面掌握和熟練運用SQL的DQL、DDL、DML、DCL進行相關的數據庫操作。 |
前言 SQL發展歷程
3.1.2 SQL語言的基本概念 3.2 數據定義 3.2.1 定義、刪除與修改基本表 Create Table Employees( --建立職員表
Eno varChar(6) NOT NULL Primary Key, --主碼 Ename varchar(20) Unique, --Unique條件約束 Esex varChar(1) NOT NULL, Eage Int, Edept varChar(20) NULL, Constraint pk_Eage CHECK (Eage>=18 and Eage<=90) --建立年齡的條件約束 ) Create Table Programs( Pid varchar(8) Not Null Primary Key, Pname varchar(40) Not Null Unique, --建立unique條件約束 Pdescription varchar(80) NULL --允許為空 ) Create Table Authority( Eid varchar(6) Not NULL, Pid varchar(8) Not Null, Adefinition bit constraint df_pdefinition default (0), --默認為0 Adescription varchar(80) Null, constraint pk_auth_Eid primary key clustered(Eid,Pid), constraint fk_auth_Eid foreign key(Eid) Reference Employees(Eid) On Delete Cascade, --同步刪除 Constraint fk_auth_Pid Foreign Key(Pid) Reference Employees(Pid), )
--向Employees中增加“入職時間”列,其數據類型為日期型:
Alter Table Employees Add Ecome DateTime --將年齡的數據類型改為半字長整數: Alter Table Employees Modify Eage Smallint --刪除職員姓名必須取唯一值的約束: Alter Table Employees Drop Unique(Ename)
三、刪除基本表 Drop Table Programs
/*說明:表一旦刪除,表中的數據、此表上建立的索引和視圖都將被刪除(但有的系統會保留視圖,如Oracle)。 注意:如果此時Programs與Authority中存在關聯記錄的話,刪除programs會由於兩者間的條件約束而引起錯誤,不能成功;而*/ Drop Table Employees /*則不會引起這樣的問題,因為兩者間存在同步刪除的條件約束,所以會成功刪除Employees中的記錄並且會同步刪除Authority中的相關記錄。 */
3.2.2 建立與刪除索引 建立索引有助於查詢速度的提高。索引的種類:
普通索引:Index; 聚集索引:Clustured Index,索引項的順序與表中記錄的物理順序一致的索引組織; 唯一索引:Unique Index,索引的每一個索引值只對應唯一的數據記錄
--在Employees表的Ename列上建立一個聚集索引(SQL Server中默認在Primary Key上建立聚集索引):
Create Clustered Index EmpName ON Employees(Ename); --在Authority表中按職員號升序和子程序號子程序建立唯一索引: Create Unique Index Auth_no ON Authority(Eid ASC,Pid DESC); --刪除Employees表的EmpName索引:
Drop Index EmpName;
下文都建立在如下關係模式之上:
職員表:Employees(Eid,Ename,Esex,Eage,Edept),主碼為Sno; 子程序表:programs(Pid,Pname,PDescription),主碼為Pid; 職員權限表:Authority(Eid,Pid,ADefinition,ADescription),主碼為(Eid,Pid)。 說明: Eid:惟一標識職員表中每個職員的編號(統一6位字符),同時一個職員可有多個子程序的不同權限; Ename:職員姓名,最長20個字符; Esex:職員性別,一個字符,0表示男,1表示女; Pid:惟一標識子程序表中的每個子程序的編號(統一8位字符),同時一個子程序可以由多個職員操作; Pname:子程序名稱,最長40個字符; Pdescription:子程序描述,最長80個字符,允許為空; Eage:職員的年齡(整型,取值范圍為18到90); Edefinition:權限定義,是否有權限(為0或1,1表示有權限),默認為0; 刪除職員表中職員時同時刪除職員權限表的相關記錄。
一、建立基本表
包括:定義表(Create Table,Drop Table,Alter Table)、定義視圖(Create View,Drop View)、定義引(Create Index,Drop Index) 。 |