绪论
1.1 数据、信息与数据处理
(1) 数据(Data):是数据库中存储的基本对象;
- 定义:描述事物的符号记录,是信息的符号表示,或称载体;
- 种类:数字、文本、图形、图像、声音、视频,学生的档案记录(40951001, 王二小,男,1988,内蒙,tx1201)等。
(2) 信息:数据的内涵,是数据的语义解释。
(3)数据处理:将数据转换成信息的过程;数据管理: 是数据处理的核心。
1.2 数据管理技术的产生与发展
- 人工管理阶段(20世纪50年代中期前)
- 数据不保存
- 应用程序管理数据
- 数据不具有独立性和共享性
- 文件系统阶段(20世纪50年代后期到60年代中期)
- 数据以文件形式可以长期保存在外存储设备上
- 由文件系统管理数据( “按名访问,按记录存取 ” )
- 数据共享性差,冗余度大( 面向应用 )
- 数据独立性差
- 数据库系统阶段(20世纪60年代后期至今)
- 数据结构化, 并与程序分离
- 数据的共享性高,冗余度低,易扩充(集中存储)
- 数据独立性高
- 数据由数据库管理系统统一控制
数据库系统阶段——数据独立性高
- 物理独立性
用户的应用程序与数据库中数据相互独立。当数据的存储格式和组织方法改变时,不影响数据库的逻辑结构,从而不影响应用程序。 - 逻辑独立性
指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序不用改变。 - 数据独立性由DBMS的二级映像功能来保证。
数据库系统阶段——DBMS提供数据控制功能
(1) 数据的安全性( (Security) ) 控制
保护数据 , 以防止不合法的使用造成的数据的泄密和破坏 。
(2) 数据的完整性( (Integrity) ) 控制
将数据控制在有效范围内 , 或保证数据间满足一定的关系 。
(3) 并发( (Concurrency) ) 控制
对多用户的并发操作加以控制和协调 , 防止相互干扰 。
(4) 数据恢复( (Recovery) )
将数据库从错误状态恢复到某一已知的正确状态 。
数据库系统的发展
- 初级阶段——第一代数据库
出现了层次模型、网状模型的数据库 - 中级阶段——第二代数据库
关系型数据库和结构化查询语言 - 高级阶段——新一代数据库
“面向对象”型数据库
1.3 数据库系统的组成
数据库系统(Database System,DBS)包括以下5部分:
- 数据库
- 数据库管理系统
- 硬件系统
- 软件系统
-
人员(管理员、分析员、设计员、程序员和用户)
-
数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库的基本特征
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展
- 数据库管理系统(Database ManagementSystem ,简称DBMS)
- 管理数据库的系统软件 ,是 数据库系统的核心 。
- 位于用户与操作系统之间的一层数据管理软件。
DBMS的主要功能 - 数据定义功能(DDL)
- 数据操纵功能(DML)
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
- 数据通信
-
硬件系统
硬件系统要有足够的内存用来存放操作系统、DBMS的核心模块、数据缓存、应用程序及数据备份等。 -
软件系统
包括DBMS、支持DBMS运行的操作系统和具有数据访问接口的高级语言及其编程环境。
1.4数据模型
根据应用目的,模型分为两个层次:
- 概念模型( 信息模型)
- 按用户的观点 ,独立于计算机实现的,只用来描述和组织 所关心的信息 结构的概念数据模型, 强调语义
- 数据库设计人员和用户之间进行交流的语言
- 对应于信息世界
- 数据模型
- 按计算机系统的观点,直接面向计算机系统的,描述数据库中数据的逻辑结构的基本数据模型
- 对应于数据世界(机器世界)
- 包括逻辑模型和物理模型
概念模型(信息世界中)的基本概念
- 实体Entity :客观存在并相互区别的事物。具体的人、事、物,抽象的概念(订货)
- 属性Attribute :实体或联系的特征。学生(学号,姓名,性别)
- 码,键Key :唯一标识实体的属性或属性组
- 域Domain :属性的取值范围。性别(男,女)
- 实体型Entity Type :实体名+属性名集合
- 实体集Entity Set :同型实体的集合
- 联系Relationship: 实体与实体之间的联系
实体间的联系
实体之间的对应关系称为联系,它反映了现实世界事物之间的相互关联。
联系的类型:
- 一对一联系 记为1 :1。
- 一对多联系 记为 1:n。
-
多对多联系 记为m :n。
概念模型的表示方法
E-R图:提供了表示实体、属性和实体间联系的方法
建立E-R图的步骤
- 确定实体和实体的属性
- 确定实体和实体之间的联系及联系的类型
- 给联系和实体加上属性。
E-R模型实例
数据模型定义
- 数据模型是表示实体类型和实体间联系的模型,是机器世界对现实世界中的数据和信息 抽象、表示和处理 。
- 包括逻辑模型和物理模型。
数据模型的组成要素(三要素)
数据结构、 数据操作和 数据完整性约束
数据结构
- 数据结构的概念
- 实体及实体间联系的 表示方法,描述了系统的 静态特性.
- 数据结构描述的内容
- 对象的数据类型、内容、性质有关的对象;
- 与数据之间联系有关的对象;
数据操作
- 概念
- 对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则,是对系统 动态特性的描述。
- 数据操作的类型(2大类)
- 数据检索(查询)
- 数据更新(包括插入、删除、修改)
数据完整性约束
- 概念:完整性规则是给定的数据模型中数据及其联系所具有的 制约和依存规则。
- 作用:限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
- 四种类型:实体完整性约束、域完整性约束、参照完整性约束和用户自定义完整性约束。
最常用的数据模型
非关系模型
-
层次模型(Hierarchical Model)
层次模型是数据库系统中最早出现的数据模型;
层次数据库系统的典型代表是IBM 公司1968年 年推出的IMS(Information Management System);
层次模型用 树形结构(“ 有向树”) 来表示各类实体以及实体间的联系.
-
网状模型(Network Model)
典型代表是DBTG;
通过 有向图结构 表示实体及联系。“网”中每个结点表示一个实体( 型) ,结点之间箭头表示实体( 型);
网状数据模型可能有多个根结点,某些非根结点可能有多个父结点,适合表示实体的多对多联系。
关系模型(Relational Model)
- 1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型
- 关系数据结构:规范化的二维表(关系)
一个关系就是没有重复行和重复列的二维表,二维表的每一行在关系中称为元组,每一列在关系中称为属性。学生关系的每一行代表一个学生的记录,每一列代表学生记录的一个字段。属性个数(n)称为关系的元。
三种模型比较
1.5数据库系统结构
- 数据库系统内部的体系结构
从数据库管理系统角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构。 - 数据库系统外部的体系结构
从数据库最终用户角度看,数据库系统的结构分为:集中式结构;客户/服务器结构;浏览器/应用服务器/数据库服务器多层结构等。 - 为了有效地组织、管理数据,提高数据库的逻辑独立性和物理独立性,数据库设计的标准体系结构是3 级模式结构,即外模式 ,模式和内模式
- 对应于体系结构,用户或程序员看到或使用的数据库内容被称为视图,可把视图相应分为:
- 对应于用户的外部视图( 用户视图)
- 对应于应用程序员的 (概念视图)
-
对应于系统程序员的内部视图( 存储视图)
- 模式(Schema,也称逻辑模式,概念视图)
-- 数据库中 全体数据的逻辑结构和特征 的描述。
-- 一个数据库只有一个模式
-- 模式的地位:是数据库系统模式结构的中间层 - 外模式(External Schema)
-- 也称 子模式或用户模式;
-- 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
-- 外模式的地位:介于模式与应用之间
-- 外模式通常是模式的子集
-- 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求 - 内模式(Internal Schema)
-- 是 数据物理结构 和 存储方式
-- 是数据在数据库内部的表示方式
3级模式是对数据的三个抽象级别
2级映象在DBMS 内部实现这三个抽象层次的联系和转换 ; - 外模式\ 模式映像
-- 保证数据的逻辑独立性
-- 同一个模式可以有任意多个外模式,外模式/模式映象定义外模式与模式之间的对应关系;
-- 当模式改变时,外模式/模式映象使外模式保持不变;
-- 应用程序是依据数据的外模式编写的,从而不必修改应用程序,保证了数据与程序的逻辑独立性 - 模式\内模式映像
-- 保证数据的物理独立性。
-- 模式/内模式映象定义了数据 全局逻辑结构与 存储结构之间的对应关系。
-- 当数据库的存储结构改变了,模式/内模式映象使模式保持不变。
-- 应用程序不受影响。保证了数据与程序的物理独立性。
从数据库最终用户角度看(数据库系统外部的体系结构) ,数据库系统的结构分为:
- 集中式数据库系统
- 客户/服务器(C/S)系统结构
- 分布式数据库系统结构
- 浏览器/服务器(B/S)系统结构
关系数据库
2.1关系数据模型的基本概念
关系模型的组成(三要素)
- 关系数据结构(静态特性)
现实世界的实体以及实体间的各种联系均用关系来表示;
数据的逻辑结构----二维表 - 关系操作集合(动态特性)
插入、删除、修改、查询(选择、投影、连接、除、并、交、差) - 关系完整性约束
实体完整性、参照完整性、域完整性、用户定义完整性
1) 关系: 通常将一个无重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。
2) 元组: 二维表的每一行在关系中称为元组。描述了现实世界中的一个实体或不同实体间的一种联系。
3) 属性: 二维表的每一列在关系中称为属性,每个属性都有一个属性名,各个属性的取值称为属性值。每个属性有一定的取值范围,称为值域。
4)域 (Domain): 关系中每个属性所对应的变化范围叫做属性的变域或简称域,关系中所有属性的实际取值必须来自它对应的域。
5)分量: 一个元组在一个属性域上的取值称为该元组在此属性上的分量。
6)关系模式: 二维表的表头那一行称为关系模式,即一个关系的关系名及其全部属性名的集合。关系模式是概念模型中实体型及实体型之间联系的数据模型表示。 一般表示为:
关系名(属性名1,属性名2 , ……,属性名n)
关系模式指出了一个关系的结构;而关系则是由满足关系模式结构的元组构成的集合。关系模式是稳定的、静态的,而关系则是随时间变化的、动态的。
7) 候选码(Candidate key): 若关系中的某一属性或属性组合的值能唯一地标识一个元组,则称该属性组为候选码
在最简单的情况下,候选码只包含一个属性。
在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)
8) 主码: 若一个关系有多个候选码,则选定其中一个为主
码(Primary key)
9)主属性和非主属性
-- 主码的各个属性称为主属性(Prime attribute)。
-- 不包含在任何候选码中的属性称为非主属性Non-key attribute)
10)外码: 如果关系中某个属性或属性组合并非码,但却是另一个关系的主码,则称此属性或属性组合为本关系的外码或外键(ForeignKey)。在关系数据库中,用外码表示两个表间的联系。
2.2关系数据模型的集合论定义
笛卡尔积
- 笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。
-
基数(Cardinal number)
关系
- 笛卡尔积中的任意子集叫作在域 上的n元 关系,简称关系。
- n元关系就会有n个属性。一个关系中的每一个属性的属性名都不同,对应参与笛卡儿积运算的每个集合的名称。
- 一个属性的取值范围Di 称为该属性的域(Domain)。
基本关系的性质
关系模式
2.3 关系模型的完整性约束
数据库系统提供的监测机制,确保存储数据的规范,称为完整性约束。
- 实体完整性
实体完整性通过定义 主码 来实现的。若属性A A 是关系R R 的主属性,则A A 不能取空值且取值唯一 ;
一个关系模型中的所有 元组都是惟一 的,没有两个完全相同的元组,也就是一个二维表中没有两个完全相同行,也称为行完整性。 - 域完整性
对关系R R 中属性(列)数据的规范,也称列完整性,限制属性的 数据类型、格式、取值范围、是否允许空值 等。 - 参照完整性
参照完整性是通过定义 外 键 FK ( 存在或为空) 来建立实体间联系的。
如外键取空,则 FK 中的每个属性的分量都是空值。 - 用户定义完整性
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
2.4关系代数
笛卡尔积
选择(限制)
投影(Projection)
连接(Join )
除(Division )
SQL Server 2008 数据库基础
SQL Server 简介
- 常见数据库产品包括甲骨文公司的Oracle系统,IBM 公司的DB2 系统和Informix 系统,赛贝斯公司的Sybase ASE 系统,微软公司的Microsoft SQL Server 系统和Access 系统,以及MySQL
-
2008 年8 月,微软发布Microsoft SQL Server 2008 系统,其代码是Katmai 。该系统在 安全性、可用性、易管理性、可扩展性、商业智能 等方面有了更多的改进和提高,支持 更强大 的数据存储和应用需求。
SQL Server 2008登录
SQL Server Management Studio 简介
SQL Server 2008 数据库的创建与维护
- SQL Server 2008 数据存储结构
(1 )数据库文件- 主数据文件.mdf
- 次要数据文件 .ndf
- 日志文件 .ldf
- 数据文件结构组成
- 页
_ SQL Server最小存储数据单位
_ 一个页大小是8K - 区
_ 管理空间的基本单位
_ 8个物理上连续的页(64 KB)
_ 表被存储在区
(2)数据库文件组
(3)数据库创建
(4)数据库修改
(5)数据库删除
Transact-SQL 程序设计基础
(1 )标识符分类
(2)数据类型
(3)全局变量
(4)运算符
(5)批处理
(6)函数
(7)流程控制
关系数据库标准语言SQL
SQL 的三级模式结构
SQL 的数据定义
-
基本表定义
-
基本表的修改与删除
-
索引的建立和删除
- 查询语句
查询的基本结构包括了三个子句: SELECT、 FROM 、 WHERE。
从表中(From子句),选择满足记录选择条件(Where子句)的记录,并对他们进行分组(Group子句, Having子句表达组选择条件)、统计(统计函数)、排序(Order by 子句)和投影(Select子句) ,形成查询结果集。
-
单表无条件查询
DISTINCT 保留字的使用:可以使查询的结果中重复列值只保留一个。
查询列中含有运算的表达式。
查询列中含有字符串常量。
查询列中含有聚合函数。
-
单表有条件查询
-
分组查询和排序查询
- 多表查询
- SQL通过连接查询、笛卡尔积、并操作、交操作、差操作5种关系代数中的运算功能来实现多个数据表的查询。SQL通过连接查询、笛卡尔积、并操作、交操作、差操作5种关系代数中的运算功能来实现多个数据表的查询。
- SQL 提供在子句中列出每个关系 然后在SELECT子句和WHERE子句中引用FROM子句中的关系属性,而WHERE子句中用来连接两个关系的条件。在SELECT子句和WHERE子句中引用FROM子句中的关系属性,而WHERE子句中用来连接两个关系的条件。
-
连接查询包括等值连接、非等值连接、自身连接、内连接和外连接等值连接、非等值连接、自身连接、内连接和外连接等。
-
嵌套查询
- SQL 的数据操纵
-
插入数据
-
修改数据
-
删除数据
- 视图
- 视图是 外模式的基本单位,实际上视图是从若干个基本表或视图导出来的虚表。
- 当基本表的数据发生变化时,相应的视图数据也会随之改变。
- 视图定义后,可以被用户查询、更新,但通过视图来更新基本表中的数据要有一定的限制。
-
定义视图
-
删除视图
-
查询视图
-
更新视图
-
视图的作用
-
存储过程
-
创建执行
-
修改删除
-
查看储存
- 触发器
- 触发器是一种特殊的存储过程,在对表或视图执行,触发器是一种特殊的存储过程,在对表或视图执行 UPDATE 、 INSERT 或 DELETE 操作时自动触发执行操作时自动触发执行。
-
触发器技术是保证数据完整性的高级技术,触发器还可以用于对系统的高级监测,用于实施完整性和强制执行业务规则。
关系数据库规范化理论
关系模式的形式化定义
函数依赖的基本概念
-
函数依赖
-
码的函数依赖
关系模式的规范化
-
第 1 范式 1NF
-
第 2 范式 2NF
-
第 3 范式 3NF
-
BCNF 范式
-
多值依赖与第 4 范式