第1章 概述
目录
引言
什么是数据库系统
什么是数据库
数据独立性
关系系统和其他
1.引言
对数据库可进行的一系列操作:增加、移除、检索、插入、修改、删除数据
DB:包含特殊实体的信息;DBMS:提供这样的方便有效的环境
数据库应用:银行、航空、大学、销售、制造业、人力资源等
2.什么是数据库系统
数据库系统:一个用计算机存储记录的系统
数据库系统的构成:数据、硬件、软件、用户
数据的两大特征:1.集成:至少可以消除部分文件之间的冗余;2.共享:数据库中的每项数据可以被不同的用户共享
硬件部分包含:二级存储设备如I/O设备、设备控制器、I/O通道等;硬件处理器和相应的主存
软件:数据库管理系统(DBMS):数据库管理器、数据库服务器;其他如应用发展工具等软件
用户:应用程序员、最终用户、数据库管理员(DBA)
3.什么是数据库
持久数据:与输入数据、输出数据、控制语句、工作队列等临时数据相区分
数据库:是一个持久数据的集合,这些数据用于某企业的应用系统中
企业如:制造公司、银行、医院、大学、政府部门;持久数据如生产数据、会计数据、病人数据、学生数据、计划数据
其他数据库:联机事务处理、决策支持应用、数据仓库
数据元素:实体与联系;属性
数据描述:数据和数据模型; 数据是一些给定的事实,真命题,数据库是一些真命题的集合;数据模型 是对对象、操作等的一个抽象的、自包含的逻辑定义,这些定义合起来构成了一个面向用户的抽象机
数据管理员(DA)和数据库管理员(DBA):管理层和技术层
为什么使用数据库:
优点:数据共享、减少冗余、避免不一致、提供事务支持、保持完整性、增强安全性、平衡相互冲突的请求、加强标准性
4.数据独立性
定义:应用程序不会因物理表示和访问技术的改变而改变
包含两种类型:物理数据独立性和逻辑数据独立性
数据依赖:有关物理表示的知识和访问技术直接体现在应用程序的代码中
避免应用程序依赖于数据的原因:1.不同的应用程序会从不同角度来看相同的数据;2.DBA必须有权改变物理表示和访问技术以适应变化的需要,而不必改变现有的应用程序
数据的物理表示:存储字段、存储记录、存储文件
可能要改变的各种存储表示:数字数据的表示、字符数据的表示、数字数据的单位、数据编码、数据具体化、存储记录的结构、存储文件的结构
5.关系系统及其他
数据库系统的发展:层次系统(1960s),网状系统(1970s),关系系统(1980s),对象系统,多维方法、基于逻辑的方法和XML方法等
第2章 数据库系统体系结构
目录
引言
三级体系结构
DBA
DBMS
C/S体系结构
实用程序
数据访问处理
1.引言
ANSI/SPARC:数据库管理系统研究组
2.三级体系结构
ANSI/SPARC体系结构分为三层:
内部层:存储层;外部层:用户逻辑层;概念层:公共逻辑层
外部层:
每个用户都有其自己要使用的语言,主语言:如C++、Java等,子语言:数据定义语言(DDL)、数据操纵语言(DML);紧耦合或松耦合的
外部记录和外部视图
概念层:
概念视图表示数据库的全部信息内容
概念模式是概念视图的定义,包含安全性和完整性约束
内部层:
内部视图是整个数据库的低层表示,与物理层仍然不同,并不涉及物理记录的形式,也不考虑具体设备的柱面或磁道大小
内模式是内部视图的定义
映像:
概念模式/内模式:是物理数据独立性的关键;外模式/概念模式:是逻辑数据独立性的关键
3.DBA
DBA的任务:模式定义(逻辑数据库设计)、存储结构和访问方法定义、对模式和物理组织的修改、授予用户访问数据库的权限、指定完整性约束、与用户联络、定义转储和重载机制、监控系统性能并响应不断变化的请求
4.DBMS
是处理数据库访问的软件,包含:数据定义、数据操纵和DML请求(计划或非计划的)、优化和执行、数据安全性和完整性、数据恢复和并发、数据字典、性能
文件管理器系统:并不了解记录的内部数据、很少提供或根本不支持安全性和完整性约束、很少提供或根本不支持恢复和并发控制、没有真正的数据字典的概念、提供很少的数据独立性、不具有统一性或共享性
5.C/S体系结构
服务器:DBMS本身;客户:在DBMS上运行的各种应用程序——用户编写的应用程序和厂商提供的应用程序
B/S体系结构:网络服务器、应用程序服务器、数据库服务器
6.实用程序
载入例程、卸载/重载例程、重组织例程、统计例程、分析例程
7.数据访问处理
程序提交读取请求;DBMS与之交互并分析该请求;DBMS从数据字典中访问三层模式和两个映射;DBMS向OS发送硬盘读取请求;OS向硬盘发送读取请求并获取数据存放于缓存中;数据在DBMS环境下传递到用户的工作空间中;DBMS在程序中返回一个状态词
第3章 关系系统
关系模型的三大方面:结构化:数据库中的数据对用户来说是表,并且只是表;完整性:数据库中的这些表满足一定的完整性约束;操纵性:用户可以使用用于表操作的操作符,选择、投影和连接这三种操作符尤为重要
结构化:
名词:Domain Attribute Tuple Cardinality Degree
Domain:数据类型,用户定义类型和系统定义类型
类型定义:
Type S# Possrep (char);
Type NAME Possrep (char);
Type weight Possren (rational)
类型的两种操作符:
选择子:允许用户通过给定可能表示的每个分量的值,指定或选择类型的一个值
THE_:用户可以利用它来获得类型的值的可能表示的分量
关系和关系变量(RELVARS)
关系:表的数学名词
表头:谓词(一个带参数的真值函数)或真值函数,如表EMP#是姓名为ENAME的雇员,工作在DEPT#部门,工资数额是SALARY
主体:真命题,如雇员E1名为Brown,工作在D1部门,工资数额是40K
关系变量:不同时间的不同关系,分为两种,基本关系变量:实关系变量;视图:虚关系变量,其值依赖于基本关系
目录/字典
各种模式和相应映像存储的地方,有时称为描述信息或元数据
字典是自描述的,即它包括描述字典关系变量自身的条目
关系的性质
1.无重复的元组
2.元组从上到下,没有顺序差别
3.属性由左到右,没有顺序差别
4.每个元组中对应于每个属性都只包含每个属性的一个确定的值
操作
Restrict(select):从表中获取特定的行
Project:从表中获取特定的列
Join:基于共同的列中的共同的值将两个表连接起来
all set-at-a-time:操作数和结果对应整个表
Closure property:一个操作的输出可以成为另一个操作的输入
关系数据库
包含了多种关系的数据库
企业的信息被分解成部分,其中每个关系存储了信息的一部分
例如:account存储了账户信息,depositor存储了哪个客户拥有哪个账户的信息,customer存储了关于客户的信息
表是一种逻辑结构,而不是物理结构
关系数据库遵循的信息原则:数据库全部的信息内容有一种表示方式而且只有一种,也就是表中的行列位置有明确的值。没有连接一个表到另一个表的指针
将所有的信息存储为如下格式:
bank(account-number,balance,customer-name,..)
会导致:信息的重复性(如两个客户拥有一个账户)、空值的需求(表示一个客户没有任何账户)
标准化理论(Chp.10-12)解决了如何设计关系模式的问题
形式化定义:给定集合D1,D2,...Dn,一个关系r是D1×D2×...×Dn的子集,那么一个关系是如下n元组的集合:
(a1,a2,...,an),其中ai∈Di
例如,假设
customer-name={Jones,Smith,Curry,Lindsay}
customer-street={Main,North,Park}
customer-city={Harrison,Rye,Pittsfield}
那么 r={ (Jones,Main,Harrison),(Smith,North,Rye),(Curry,North,Rye),(Lindsay,Park,Pittsfield)}
是customer-name×customer-street×customer-city上的关系
关系模式
A1,A2,...,An是属性,R(A1,A2,...,An)是关系模式
例如Customer-schema (customer-name,customer-street,customer-city)
r(R)是关系模式R上的关系
例如customer(Customer-schema)
语言:SQL、关系代数、关系演算
SQL对DDL的支持:
Create Domain、Create Table、Alter Domain、Alter Table、Drop Domain、Drop Table
第4章 SQL
目录
引言
DDL
查询的基本结构
查询例子
更多复杂的例子
插入、删除、更新
嵌入SQL
1.引言
IBM SYSTEM R SEQUEL -1974~1979
ANSI Standard SQL -1990
ISO Standard SQL -1992
SQL3 (SQL99)
现在更多类SQL语言出现
结构
视图、表、文件
V/T映像:用户定义;T/F映像:系统完成
SQL内容 <