以下为《数据库合集系统概述》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
1.1数据库系统概述
、数据库的4个基本概念
数据 data:
数据是数据库中存储的基本对象;
定义:描述事物的符号记录称为数据;
数据是解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。
数据库 DataBase DB
数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,既有较小冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
概括地讲,数据库数据具有永久存储、有组织和可共享三个基本特点。
数据库管理系统(DataBase Management System DBMS)
数据库管理系统是位于用户和操作系统之间的一层数据管理软件。DBMS和OS一样是计算机的基础软件,也是一个大型复杂的软件系统。
主要功能:数据定义功能;数据组织、存储和管理;数据操纵功能;数据库的事务管理和运行管理;数据库的建立和维护功能;
4. 数据库系统 (DataBase System DBS)
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator DBA)组成的存储、管理、处理和维护数据的系统。
(二)、数据管理技术的产生和发展
数据管理是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。而数据的处理是指对各种数据进行收集、存储、加工和传播对一系列活动对总和。
1. 人工管理阶段 2. 文件系统阶段 3. 数据库系统阶段
从文件系统到数据库系统标志着数据管理技术的飞跃。
(三)、数据库系统的特点
1. 数据结构化
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
所谓“整体”结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。
2. 数据的共享性高、冗余度低且易扩充
数据共享可以大大减少数据冗余,节约存储空间’。数据共享还能够避免数据之间的不相容性与不一致性。
由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。
3. 数据独立性高
数据独立性是借助数据库管理数据的一个显著优点,包括物理独立性和逻辑独立性。
物理独立性:是指用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性:树枝用户的应用程序与数据库的逻辑结构是相互独立的。
4. 数据由数据库管理系统统一管理和控制
数据库管理系统提供以下数据控制功能:
数据的安全性保护:是指保护数据以防止不合法使用造成的数据泄密和破坏。
数据的完整性检查:是指数据的正确性、有效性和相容性。
并发控制
数据库恢复
综上所述,数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时并发控制,在发生故障后对数据进行恢复。
数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。
1.2 数据模型
数据模型是对现实世界数据特征的抽象;数据模型是数据库系统的核心和基础。
(一)、两类数据模型
1. 概念模型,也称信息模型,是按用户的观点
2. 逻辑模型:层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等。是按计算机的观点
人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。
(二)、概念模型
1. 信息世界中的基本概念
实体(entity):客观存在并可相互区别的事物
属性:实体所具有的某一特性
码 key:唯一标识实体的属性集
实体型:用实体名及其属性名集合来抽象和刻画同类实体
实体集:同一类型实体的集合。
联系:实体之间的联系通常是指不同实体集之间的联系;实体之间的联系有一对一、一对多和多对多等多种类型。
2. 概念模型的一种表示方法:实体-联系方法E-R模型(E-R方法)
(三)、数据模型的组成要素
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
数据结构:描述数据库的组成对象以及对象之间的联系。
数据操作:是指对数据库中各种对象(型)是我实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
数据的完整性约束条件:是一组完整性规则。
、层次模型
数据结构
满足下面两个条件的基本层次联系的集合为层次模型:
有且只有一个节点没有双亲结点,这个节点称为根节点;
根以外的其他节点有且只有一个双亲结点。
层次模型像一颗倒立的树,结点的双亲是唯一的。
数据操纵和完整性约束条件 P22
、网状模型
网状数据模型的典型代表是DBTG系统,亦称CODASYL系统。
数据结构
允许一个以上的结点无双亲;
一个结点可以有多于一个的双亲。
数据操纵和完整性约束条件 P24
、关系模型
数据结构
一些术语:
关系:一个关系对应通常说的一个表
元组:表中的一行即为一个元组
属性:表中的一列即为一个属性
码:表中的某个属性组,可以唯一确定一个元组
域(domain):是一组具有相同数据类型的值的集合。属性的取值范围来自某个域
分量:元组中的一个属性值
关系模型要求关系必须是规范化的;关系的每一个分量必须是一个不可分的数据项,也就是说不允许表中有表
数据操纵和完整性约束
关系模型的数据操纵主要包括查询、插入、删除和更新数据。
关系的完整性约束条件主要包括三大类:实体完整性、参照完整性和用户定义完整性。
关系模型中的数据操作是集合操作,操作对象和操作结果都是关系。
1.3 数据库系统的结构
(一)、数据库系统模式的概念
模式的一个具体值称为模式的一个实例。同一个模式可以有很多实例。
模式是相对稳定的,而实例时相对变动的。
、数据库系统的三级模式结构
三级模式结构是由外模式、模式和内模式三级构成。
模式
模式也称逻辑模式,是数据库全体数据的逻辑解耦和特征的描述,是所有用户的公共数据视图。
DBMS提供模式数据定义语言(模式DDL)来严格地定义模式。
外模式
也称子模式或用户模式,他是数据库用户能够看见和使用的局部数据的逻辑结构个特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
一个数据库可以有多个外模式。
DBMS提供外模式数据定义语言(外模式DDL)来严格地定义模式。
内模式
也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据早数据库内部的组织方式。
2.1 关系数据结构及形式化定义
(一)、关系
1. 域:域是一组具有相同数据类型的值的集合
2. 笛卡尔积
3. 关系
若关系中的某一属性组的值能唯一地表示一个元组,而其子集不能,则称该属性组为候选码(candidate key)
若一个关系有多个候选码,则选定一个为主码(primary key)
候选码的诸属性称为主属性,不包含在任何候选码中的属性称为非主属性。
关系可以有三种类型:基本关系、查询表和视图表。
关系模型要求关系必须时规范化的,即要求必须满足一定的的规范条件。其中最基本的一条是,关系的每一个分量必须是一个不可分的数据项。
、关系模式
关系数据库中,关系模式是型,关系是值。
关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。
2.2 关系操作
(一)、基本的关系操作
关系模型中常用的关系操作包括查询操作和insert、delete、update操作两大部分。
查询操作又可以分为select、投影(project)、连接(join)、除、并、差、交、笛卡尔积等;其中select、投影、并、差、笛卡儿积是5种基本操作。
关系操作的特点是集合操作方式,即操作的对象和结果都是集合。
、关系数据语言的分类
早期的关系操作能力通常用代数或逻辑方式来表示,称为关系代数和关系演算。
介于关系代数和关系演算之间的结构化查询语言SQL;是集查询、数据定义语言、数据操纵语言和数据控制语言(DCL)一体的关系数据语言。
2.3 关系的完整性
关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,是关系的两个不变性。
、实体完整性
实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。
说明:关系模型以主码作为唯一性标识;主码中的属性不能取空值。
、参照完整性
定义2.5:设F是基本关系R的一个或一组属性,但不是关系R的key,K是基本关系S的primary key。如果F与K相对应,则称F是R的外码(foreign key),并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。
参照完整性规则:若属性或属性组F是基本关系S的外码,它与基本关系S的主码K相对应(K和S不一定是不同的关系),则对于R中每个元组在F上的值必须:或者取空值(F的每个属性均为空值);或者等于S中某个元组的主码值。
2.4 关系代数
关系代数是一种抽象的查询语言,它用对关系的运算来表达查询;
分为传统的集合运算和专门的关系运算两类。
、传统的集合运算:并、差、交、笛卡儿积。
、专门的关系运算:选择、投影、连接、除运算等。
选择
投影:关系R上的投影是从R种选择出若干属性列组成新的关系。
连接:从两个关系的笛卡儿积中选取属性间满足一定条件的元组。
被舍弃的元组称为悬浮元组;如果吧悬浮元组也保存在结果关系中,而在其他属性上填空值(NULL),叫外连接(outer join);如果只保留左边关系中的悬浮元组就叫做左外连接(left outer join);如果只保留右边关系中的悬浮元组就叫做右外连接(right outer join).
除运算:设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。
SQL概述
、SQL的产生与发展
目前没有一个数据库系统能够支持SQL标准的所有概念和特性
、SQL的特点
SQL集数据查询、数据操纵、数据定义和数据控制功能于一体。
综合统一
数据库系统的主要功能是通过数据库支持的数据语言来实现的。
非关系模型的数据语言一般都分为:
模式数据定义语言(模式DDL);
外模式数据定义语言(外模式DDL);
数据存储有关的描述语言(DSDL);
数据操纵语言(DML)。
高度非过程化:存取路径的选择以及SQL的操作过程由系统自动完成
面向集合的操作方式
以同一种语法结构提供多种使用方式
SQL既是独立的语言,又是嵌入式语言。
语言简洁,易学易用
、SQL的基本概念
外模式包括若干视图view和部分基本表;模式包括若干基本表;内模式包括若干存储文件。
基本表是本身独立存在的表,在关系数据库管理系统中一个关系就对应一个基本表。一个或多个基本表对应一个存储文件,一个表可以带若干个索引。
视图是从一个或几个基本表导出的表。本身不独立存储在数据库中,视图是一个虚表。
3.3数据定义
SQL标准不提供修改模式定义和修改视图定义的操作。
一个关系数据库管理系统的实例中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。
(一)、模式的定义与删除
1. 定义模式
CREATE SCHEMA〈模式名〉AUTHORIZATION 〈用户名〉;
如果没有指定模式名,那么模式名隐含为用户名
用户可以在创建模式的同时在这个模式定义中进一步创建基本表、视图,定义授权。
CREATE SCHEMA〈模式名〉AUTHORIZATION 〈用户名〉[〈表定义子句〉|〈视图定义子句〉|〈授权定义子句〉];
2. 删除模式
DROP SCHEMA〈模式名〉〈CASCADE|RESTRICT〉;
CASCADE(级联),在删除模式的同时把该模式中所有的数据库对象全部删除;
RESTRICT(限制),表示如果该模式中已经第一了下属的数据库对象,表、视图等,则拒绝该删除语句等执行。
(三)、基本表的定义删除与修改
1. 定义基本表
CREATE TABLE〈表名〉(〈列名〉〈数据类型〉[列级完整性约束条件][,〈列名〉〈数据类型〉[列级完整性约束条件]]…[,〈表级完整性约束条件〉]);
如果完整性约束条件设计该表的多个属性列,则必须定义在表级上。
外码:FOREGIN KEY( )REFERENCES tablename( )
2. 数据类型
char(n),character(n) 长度为n的定长字符串
varchar(n),charactervarying(n) 最大长度为n的变长字符串
clob 字符串大对象
blob 二进制大对象
int,integer 长整数 4字节
smallint 短整数 2字节
bigint 大整数 8字节
float(n) 可选精度的浮点数,精度至少为n位数字
boolean 逻辑布尔量
date 日期,格式为YYYY-MM-DD
time 时间,格式为HH:MM:SS
3. 模式与表
每一个基本表都属于某一个模式,一个模式包含多个基本表。当定义一个基本表时一般可以有三种方法定义它所属的模式。
方法一:在表名中明显地给出模式名;
方法二:在创建模式语句中同时创建表;
方法三:设置所属的模式,这样在创建表时表名中不必给出模式名
当用户创建基本表时若没有指定模式,系统根据搜索路径来确定该对象所属的模式。 SHOW search_path;
4. 修改基本表
ALTER TABLE〈表名〉
[ADD[COLUMN]〈新列名〉〈数据类型〉[完整性约束]]
[ADD〈表级完整性约束〉]
[DROP[COLUMN]〈列名〉[CASCADE|RESTRICT]]
[DROP CONSTRAINT〈完整性约束名〉[RESTRICT|CASCADE]]
[ALTER COLUMN〈列名〉〈数据类型〉];
必须取惟一值的约束条件:UNIQUE
5. 删除基本表
DROP TABLE〈表名〉[RESTRICT|CASCADE];
默认是RESTRICT:该表的删除是有限制条件的。欲删除的基本表不能被其他表的约束所引用(如CHECK,FOREGIN KEY等约束),不能有视图、触发器,不能有存储过程或函数等。若存在这些,此表不能被删除。
CASCADE:该表的删除没有限制条件。
(三)、索引的建立和删除
1. 建立索引
CREATE[UNIQUE][CLUSTER]INDEX〈索引名〉ON〈表名〉(〈列名〉[〈次序〉][,〈列名〉[〈次序〉]]…);
次序:默认ASC升序 DESC 降序
UNIQUE表明此索引的每一个索引指只对应唯一的数据记录。
CLUSTER表示要建立的索引时聚簇索引。
2. 修改索引
ALTER INDEX〈旧索引名〉RENAME TO〈新索引名〉;
3. 删除索引:DROP INDEX〈索引名〉;
3.4数据查询
数据查询是数据库的核心操作。
(一)、单表查询
1. 选择表中的若干列
select语句中的〈目标表达式〉不仅可以使表中的属性列,也可以是表达式;还可以是字符串常量、函数等;
用户可以通过指定别名来改变查询结果的列标题P91
2. 选择表中的若干元组
DISTINCT:消除重复的行
WHERE子句常用的查询条件:
比较:>、ANY:大于子查询结果中的某个值
>ALL:大于子查询结果的所有值
带有EXISTS谓词的子查询
EXISTS代表存在量词;带有EXISTS谓词的子查询不反悔任何数据,只产生逻辑真值true或逻辑假值false。
使用了存在量词EXISTS后,若内层查询结果非空,则外层 WHERE子句返回针织,否则返回假值。P110-P111
、集合查询
集合操作主要包括并操作UNI 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。 如果与某一端实体对应关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性,
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
一个m:n联系转换为一个关系模式
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
具有相同码的关系模式可以合并。第八章:数据库编程
SQL编程技术可以有效克服SQL语言实现复杂应用方面的不足,提高应用系统和数据库管理系统间的互操作性。
8.1 嵌入式SQL
(一)、嵌入式SQL的处理过程
1. 嵌入式SQL是将SQL语句嵌入程序设计语言中,被嵌入的程序设计语言如C、C++、Java等称为宿主语言,简称主语言。
2. 在嵌入式SQL中,为了区分SQL语句与主语言语句,所有SQL语句必须家前缀。当主语言为C语言时,语法格式为: EXEC SQL 〈SQL语句〉;
如果主语言为Java,则嵌入式SQL称为SQLJ,语法格式为:#SQL〈SQL语句〉;
(二)、嵌入式SQL语句与主语言之间的通信
[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《数据库合集系统概述》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。