《数据库基础概述述论.ppt》由会员分享,可在线阅读,更多相关《数据库基础概述述论.ppt(55页珍藏版)》请在三一办公上搜索。
1、SQL Server 数据库原理及应用,主编:曾长军副主编:朱剑锋 刘坤 SQL Server 数据库原理及应用配套课件,第1章 数据库基础概述,1.1 数据库系统简介1.2 数据库系统的组成1.3 关系型数据库1.4 关系型数据库的设计1.5 小结,讲解提纲,1.1 数据库系统简介,什么是数据管理对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题数据管理技术的发展过程人工管理阶段(40年代中-50年代中)文件系统阶段(50年代末-60年代中)数据库系统阶段(60年代末-现在),一、人工管理,时期40年代中-50年代中产生的背景应用需求科学计算硬件水平无直接存取存储设备软件水平
2、没有操作系统处理方式批处理,人工管理(续),特点数据的管理者:应用程序,数据不保存。数据面向的对象:某一应用程序 数据的共享程度:无共享、冗余度极大数据的独立性:不独立,完全依赖于程序数据的结构化:无结构数据控制能力:应用程序自己控制,应用程序与数据的对应关系(人工管理),二、文件系统,时期50年代末-60年代中产生的背景应用需求科学计算、管理硬件水平磁盘、磁鼓软件水平有文件系统处理方式联机实时处理、批处理,文件系统(续),特点数据的管理者:文件系统,数据可长期保存数据面向的对象:某一应用程序 数据的共享程度:共享性差、冗余度大数据的结构化:记录内有结构,整体无结构数据的独立性:独立性差,数据
3、的逻辑结构 改变必须修改应用程序数据控制能力:应用程序自己控制,应用程序与数据的对应关系(文件系统),三、数据库系统,时期60年代末以来产生的背景应用背景大规模管理硬件背景大容量磁盘软件背景有数据库管理系统处理方式联机实时处理,分布处理,批处理,数据库系统(续),特点数据的管理者:DBMS数据面向的对象:现实世界数据的共享程度:共享性高数据的独立性:高度的物理独立性和一定的 逻辑独立性数据的结构化:整体结构化数据控制能力:由DBMS统一管理和控制,应用程序与数据的对应关系(数据库系统),数据库阶段信息处理方式的演变,数据的高共享性的好处,降低数据的冗余度,节省存储空间避免数据间的不一致性使系统
4、易于扩充,数据独立性,物理独立性指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。,数据结构化,整体数据的结构化是数据库的主要特征之一。数据库中实现的是数据的真正结构化数据的结构用数据模型描述,无需程序定义和解释。数据可以变长。数据的最小存取单位是数据项。,DBMS对数据的控制功能,数据的安全性(Security)保护使每个用户只能按指定方式使用和处理指定数据,保护数据以防止不合法的使用造成的数据的泄密和破坏。数据的完整性(Integrity)检
5、查将数据控制在有效的范围内,或保证数据之间满足一定的关系。,DBMS对数据的控制功能,并发(Concurrency)控制对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。数据库恢复(Recovery)将数据库从错误状态恢复到某一已知的正确状态。,1.2 数据库系统的组成,1.2.1 数据库(定义)1.2.2 数据库管理系统1.2.3 数据库系统的用户,1.2.1 数据库(定义),人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步加工处理,进一步抽取有用信息数据库的定义数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合,数据
6、库(举例),数据库(续),数据库的特征数据按一定的数据模型组织、描述和储存可为各种用户共享冗余度较小数据独立性较高易扩展,数据库的基本模型网状数据库模型层次数据库模型关系型数据库模型,数据库(续),1.2.2 数据库管理系统,什么是DBMS数据库管理系统(Database Management System,简称DBMS)数据库管理系统是指在操作系统的支持下帮助用户建立、使用和管理数据库的软件系统。通常包含数据描述语言、数据操作语言以及管理和控制程序三个组成部分。,DBMS的组成,数据描述语言(Data Description Language)用来描述数据库的结构,供用户建立数据库。数据操作
7、语言(Data Manipulation LangUage,DML)供用户对数据库进行数据的查询(数据的检索和统计等)和处理(数据的增加、删除和修改等)等操作。管理和控制程序 包括安全、通信控制和工作日志等。,1.2.3 数据库系统的用户,系统程序员负责整个数据库系统的设计工作,一举用户的需求安装数据库管理系统,建立维护数据库管理系统及相关软件的工具,涉及合适的数据库及表文件,对整个数据库存取权限作出规划。数据库管理员(DBA)支持数据库系统的专业技术人员。,应用程序员负责编写访问数据库的面向终端用户的应用程序,是用户可以 友好的使用数据库。可以使用Visual Basic、Delphi、PH
8、P、ASP、JSP等。操作员操作应用程序软件来访问数据库,利用数据库系统完成日 常工作,不关心数据库的具体格式及其维护和管理问题。,数据库系统的用户(续),1.2.4 数据库系统的网络结构,Main Frame大型数据库 大型数据库是由一台性能很强的计算机(称为主机或者数据库服务器)负责处理庞大的数据,用户通过终端机与大型主机相连,以存取数据。本地小型数据库 在用户较少、数据量不大的情况下,可使用本地小型数据库。一般是由个人建立的个人数据库。常用的DBMS有Access和Foxpro等。分布式数据库 分布式数据库就是为了解决大型数据库反应缓慢的问题而提出的,它是由多台数据库服务器组成。数据可来
9、自不同的服务器。客户机/服务器数据库 随着微机的发展,其运算速度越来越快,而且价格低廉。在利用网络将终端机(一般为微机)和数据库服务器连接后。就可以从数据库服务器中存取数据,而且部分工作可以由终端机来完成,以分散数据库服务器的负担,这样数据库服务器就不必是价格昂贵的大型主机了。这就是客户机服务器数据库网络结构。,1.3 关系型数据库,1.3.1 关系型数据库定义 1.3.2 关系型数据库与表 1.3.3 主键与外键 1.3.4 字段约束 1.3.5 数据完整性 1.3.6 表的关联,1.3.1 关系数据库定义,关系型数据库概念是由EFCodd博士提出的。1976年6月他发表了关于大型共享数据库
10、数据的关系模型的论文,在论文中他阐述了关系数据库模型及其原理,并把它用于数据库系统中。数据库系统的发展经历了三个阶段:网状数据库、层次数据库和关系数据库。而关系型数据库之所以能被广泛的应用,是因为它将每个具有相同属性的数据独立地存储在一个表中。它解决了层次型数据库的横向关联不足的缺点,也避免了网状数据库关联过于复杂的问题。关系型数据库是指一些相关的表和其他数据库对象的集合。,1.3.2 关系数据库与表,数据库是由多个表和其他数据库对象组成的。在数据库中,表是一种最基本的数据库对象,类似于电子表格,是由行和列组成的,除第一行(表头)以外,数据库表中的每一行通常称为一条记录,表中的每一列称为一个字
11、段,表头的各列给出了各个字段的名称。如下图所示。,关系数据库与表(续),1.3.3 主键与外键,关系模型要求数据库表中的每行记录都必须是惟一的,而不允许出现完全相同的记录。在设计数据库表时,可以通过定义主键(Primary Key)来保证记录(实体)的惟一性。为了惟一地标识实体的每一个实例,每个数据库表都应当有一个主键,而且只能有一主键。一个关系型数据库可能包含多个表,可以通过外键(Foreign Key)使这些表之间关联起来。如图所示的学生考试“成绩表”中有两个外键,一个是学号“student_id”,其详细信息存储在“学生表”中;另一个是课程编号“course_no”,其详细信息存储在“课
12、程表”中。在上述例子中,“成绩表”和“学生表”各有一个“学号”字段,该字段在“成绩表”中是外键,在“学生表”中则是主键,但这两个字段的数据类型以及字段宽度必须完全一样,字段的名称可以相同,也可以不相同。,主键与外键(续),1.3.4 字段约束,设计数据库表时,可对表中的一个字段或多个字段的组合设置约束条件,让SQL Server检查该字段的输入值是否符合这个约束条件。约束分为表级约束和字段级约束两种。表级约束是一个表中几个字段的约束,字段级约束则是对表中一个字段的约束。PRIMARY KEY PRIMARY KEY即前面提到的主键,用它保证表中每条记录的唯一性。设计一个数据库表时,可用一个字段
13、或多个字段(最多16个字段)的组合作为这个表的主键。用单个字段作为主键时,使用字段约束;用字段组合作为主键时,则使用表级约束。FOREIGN KEY 外键字段与其他表中的主键字段或具有唯一性的字段相对应,其值必须在所引用的表中存在,而且所引用的表必须存放在同一数据库中。,字段约束,NULL与NOT NULL 若在一个字段中允许不输入数据,则可以将该字段定义为NULL,如果在一个字段中必须输入数据,则应当将该字段定义为NOT NULL。NULL值既不等价于数值型数据中的0,也不等价于字符型数据中的空字符串。UNIQUE 如果一个字段值不允许重复,则应当对该字段添加UNIQUE约束。与主键不同的是
14、,在UNIQUE字段中允许出现NULL值,但为保持唯一性,最多只能出现一次NULL值。CHECK CHECK约束用于检查一个字段或整个表的输入值是否满足指定的检查条件。DEFAULT DEFAULT约束用于指定一个字段的默认值,当尚未在该字段中输入数据时,该字段中将自动填入这个默认值。,数据完整性,实体完整性(Entity Integrity)实体完整性用于保证数据库表中的每一条记录都是唯一的,建立主键的目的就是为了实施实体完整性。一个表中的主键不能取空值,也不能取重复的值。例如,选择“学号”字段作为“学生表”中的主键时,每一条记录中的“学号”字段值就应输入一个非空值,而且必须是各不相同的。域
15、完整性(Domain Integrity)域完整性用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内。例如,限制“成绩”字段的值是在0到100之间;在“成绩表”中“学号”字段是一个外键,该字段的值只能是“学生表”已经存在的学号,如果在该字段中输入“学生表”所没有的学号,也将破坏该字段的域完整性。,数据完整性,参照完整性(Referential Integrity)参照完整性是用于确保相关联的表间的数据保持一致。当添加、删除或修改数据库表中的记录时,可以借助于参照完整性来保证相关联的表之间的数据一致性。例如,在“学生表”中修改了某个学号,就必须在“成绩表”或其他相关联的表进行相同的修
16、改,否则其他表中的相关记录就会变成无效记录。用户自定义完整性(User-defined Integrity)这是由用户自己定义的完整性,不同于前面3种完整性,也可说是一种强制数据定义。例如,在输入学生表的记录时,应确保“学号”字段不为空(NOT NULL),否则与“学号”字段是主键矛盾。,表的关联,一对一关联(one-to-one)设在一个数据库中有A、B两个表,对于表A中的任何一条记录,表B中只能有一条记录与之对应;反过来,对于表B中的任何一条记录,表A中也只能有一条记录与之对应,则称这两个表是一对一关联的。一对多关联(one-to-many)设在一个数据库中有A、B两个表,对于表A中的任何
17、一条记录,表B中可能有多条记录与之对应;反过来,对于表B中的任何一条记录,表A中却只能有一条记录与之对应,则称这两个表是一对多的关联。多对多关联(many-to-many)设在一个数据库中有A、B两个表,对于表A中的任何一条记录,表B中可能有多条记录与之对应;反过来,对于表B中的任何一条记录,表A中也有多条记录与之对应,则称这两个表是多对多关联的。,数据联系的描述,数据联系的描述,图 多对多联系,1.4 关系型数据库设计,E-R模型1.4.2 数据库设计过程 1.4.3 关系型数据库规范化分析,E-R模型,ER模型有三个基本要素:实体:即现实世界中存在的、可以相互区别的人或事物。一个实体集合对
18、应于数据库中的一个表,一个实体则对应于表的一行,也称为一条记录。在E-R图中,实体用矩形框表示。属性:表示实体或联系的某种特征。一个属性对应于数据库表中的一列,也称为一个字段。在E-R图中,属性用椭圆表示。联系:即实体之间存在的联系。在E-R图中,联系用菱形框表示。联系的类型可以是1-1、1-n、n-m等。,例:三个实体类型:零件PART,工程项目ROJECT,零件供应商SUPPLIER。确定联系类型。PROJECT和PART之间是M:N联系,PART和SUPPLIER之间也是M:N联系,分别命名为P_P和P_S.把实体类型和联系类型组合成ER图。确定实体类型和联系类型的属性。确定实体类型的键
19、,在ER图中属于码的属性名下画一条横线。,图 ER图实例,1.4.2 数据库设计过程(一),需求分析 目的是分析系统的需求。该过程的主要任务是从数据库的所有用户那里收集对数据的需求和对数据处理的要求,并把这些需求写成用户和设计人员都能接受的说明书。概念设计 目的是将需求说明书中关于数据的需求,综合为一个统一的概念模型。首先根据单个应用的需求,画出能反映每一应用需求的局部ER模型。然后把这些ER模型图合并起来,消除冗余和可能存在的矛盾,得出系统总体的ER模型。实现设计 目的是将ER模型转换为某一特定的DBMS能够接受的逻辑模式。对关系型数据库,主要是完成表的关联和结构的设计。物理设计 目的在于确
20、定数据库的存储结构。主要任务包括:确定数据库文件和索引文件的记录格式和物理结构,选择存取方法,决定访问路径和外存储器的分配策略等。不过这些工作大部分可由 DBMS来完成,仅有一小部分工作由设计人员来完成。例如,物理设计应确定字段类型和数据库文件的长度。实际上,由于借助 DBMS,这部分工作难度比实现设计要容易得多。,1.4.3 关系数据库规范化分析,在实现设计阶段,常常使用 EF.Codd的关系规范化理论来指导关系数据库的设计。EF.Codd在1970年提出的关系型数据库设计的三条规则,通常称为三范式(Normal Form),即第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。第一范式 如果一个数据库表中的每一字段值都是单一的,则称这个数据库表属于第一范式。按照第一范式的要求,数据库表中的每个字段都应当是不可再分的。,关系数据库规范化分析(续),关系数据库规范化分析(续),第二范式 如果一个数据库表满足第一范式的要求,而且它的每个非主键字段完全依赖于主键,则称这个数据库表属于第二范式。,关系数据库规范化分析(续),关系数据库规范化分析(续),关系数据库规范化分析(续),第三范式 如果一个数据库表满足第二范式的要求,而且该表中的每一个非主键字段不传递依赖于主键,则称这个数据库表属于第三范式。,关系数据库规范化分析(续),下课了。,追求,休息一会儿。,