数据库基础
1、数据库技术的发展
1)数据:数据库系统研究和处理的对象,信息的符号表示或称载体,符号化的信息。
2)信息:具有一定含义的,经过加工的,对对策有价值的数据,数据的内涵,是数据的语义解释,语义化的数据。
3)数据处理
(1)定义:指从某些已知的数据出发,推导加工出一些新的数据。
(2)过程包含:在数据处理的具体过程中,会涉及数据的收集、存储、加工、利用、传播乃至信息输出的全过程。
4)数据管理:指对数据进行分类、组织、编码、存储、维护、检索、传送等,是数据处理的中心环节。
5)数据库:指长期存储在计算机中,有组织、可共享的数据的集合。
6)数据管理技术经历的阶段
(1)人工管理阶段---数据处理方式为批处理。
数据管理的特点:
数据不保存在计算机内,计算机主要用于科学计算。
无专门软件对数据进行管理,程序中要处理的数据由应用程序本身管理,应用程序不仅要定义数据的逻辑结构,还要设计物理结构,包括数据存取方式、输入输出方式等内容。
数据不共享。
数据不具有独立性。
(2)文件系统阶段---数据处理方式有批处理和联机实时处理。
数据管理的特点:
数据可以长期保存。
由文件系统管理数据。
文件系统的缺点:
数据冗余。
数据不一致。
数据联系弱。
数据查询困难。
(3)数据库阶段
数据管理的特点:
采用复杂的数据模型。
数据冗余度小。
数据独立性高。
为用户提供了方便的用户接口。
统一的数据控制功能。
7)数据库的组成
应用程序+计算机支持系统+数据库(DB)+数据库管理系统(DBMS)+人员
8)数据库管理系统的特点
(1)数据结构化,数据存储具有规范性。
(2)数据共享性高,但冗余度低(有冗余数据)。
(3)数据独立于程序:逻辑独立性+物理独立性
(4)统一管理和控制数据。
9)数据库管理系统的功能
(1)数据定义功能:数据定义语言(DDL)定义数据对象。
(2)数据操纵功能:数据操纵语言(DML)操纵数据,实现对数据库的基本操作。
(3)数据库的运行管理。
(4)数据库的建立和维护功能。
2、数据模型
1)模型:对现实世界事物的模型的模拟和抽象。
2)数据模型
(1)定义:一种能反映现实世界数据特征及内在联系的一种模型,是数据库系统的核心和基础。
(2)概念模型---第一层抽象:主要用于数据库设计,实体-联系模型,简称E-R模型。
(3)逻辑数据模型(结构数据模型)---第二层抽象:直接面向数据库的逻辑结构。
3)概念模型
(1)实体:客观存在的并且可以相互区别的事物称为实体。
(2)属性:实体所具有的某一特性。
(3)码:唯一标识实体的属性。
(4)域:属性的取值范围。
(5)实体集:相同实体的集合。
(6)联系:实体内部的联系表现为组成实体的各属性间的内在联系;实体之间的联系通常指不同实体集之间的联系。
(7)两个实体集之间的联系:一对一、一对多、多对多
4)结构数据模型
(1)层次模型
定义:最早出现的一种数据模型,是用树形结构表示实体及实体间联系的模型。树的结点是记录类型,每个非根结点有且只有一个父节点,上一层记录类型和下一层记录类型之间的联系是一对多的联系。
优点:结构简单,易于实现。
缺点:只支持一对多联系,不支持实体集间的多种联系,数据操纵不方便,子节点的存取只能通过父节点来进行,插入、删除复杂,父节点的删除导致子节点的删除。
(2)网状模型
定义:为有向图,可以有一个以上的结点且无父节点,至少有一个结点多于一个的父节点,节点代表实体型,有向边表示两实体型间的一对多联系。
优点:记录之间通过指针来实现,多对多联系容易实现,查询效率较高。
缺点:编写应用程序比较复杂。
(3)关系模型
定义:数据的逻辑结构是一张二维表,由行和列组成,关系模型与前两者之间最大的区别是用键导航数据,而非指针。
(4)面向对象数据模型
对象:现实中实体的模型化,每个对象有唯一的标识符,把状态和行为封装在一起。
对象的状态:该对象属性值的集合。
对象的行为:在对象状态上操作的方法集。
类:将属性集和方法集相同的所有对象组合在一起。
5)关系模型
(1)组成部分:数据结构+数据操纵+数据完整性规则。
(2)主要特征:用二维表格表示实体集。
(3)术语:
关系:对应一张表,关系对应实体集的概念,关系中不允许出现相同的元组,是一个属性数目相同的元组的集合。
元组:表中的一行,一个元组对应一个实体,次序可以任意交换,对应于记录的概念。
属性:表中的一列,对应于字段的概念,对应一个值域,可以任意交换次序。
主键:可以唯一地确定一个元组的属性或属性组。
外键:如果关系R中属性K不是主键,但它是其他关系模式的主键,则属性K在关系R中,称为外键。
域:属性的取值范围。
分量:元组中的一个属性值。
关系模式:是对关系的描述,描述为:关系名(属性1,属性2,...,属性n)。
(4)关系的规范化限制
关系的每个分量必须是一个不可再分割的数据项,不允许表中有表。
关系中每个属性必须是不可再分解的。
关系中不允许出现重复元祖。
由于关系是一个集合,不考虑元组间的顺序。
元组中属性的顺序在理论上是无序的。
(5)数据结构:所研究对象的类型的集合,对象包括:与数据类型、内容和性质有关的对象+与数据之间联系有关的对象。
(6)数据操纵:对数据库随想中各种对象的实例允许执行的操作的集合,包括操作及有关操作规则。
数据操作语言(DML)
查询语句:用于描述用户的各种检索要求,选择、投影、连接、除、并、交、差,关于查询的理论称为关系运算理论。
更新语句:用于描述用户进行插入、删除、修改等操作。
关系操作的特点:集合操作方式,即操作的对象和结果都是集合。
关系数据语言:
关系代数语言:用对关系的运算来表达查询要求,典型代表ISBL。
关系演算语言:用谓词来表达查询要求,分为元组关系演算语言和域关系演算语言。
元组变量:元组关系演算语言的谓词变元的基本对象,代表APLHA,QUEL。
域变量:域关系演算语言的谓词变元的基本对象,代表QBE。
具有关系代数和关系演算双重特点的语言:代表SQL。
关系语言的特点:语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入到高级语言中使用。
(7)完整性约束
实体完整性规则:若属性A是关系R的主属性,则属性A不能取空值,要求元组中作为主键的属性不能有空值,不仅是主键整体不能取空值,关系的所有主属性均不能取空值。
引用(参照)完整性规则:若属性F是基本关系R的外键,即F是另一基本关系S的主键,则对于R的每个元组在属性F上的取值必须如下:取空值或等于关系S中某个元组的主键值。
用户定义完整性规则
3、SQL语言
1)定义:一种通用的、功能很强的关系数据库操纵语言,用于查询、操作、定义和控制关系型数据库中的数据。
2)SQL数据库采用三级体系结构
(1)局部模式---用户模式、外模式
(2)全局模式---概念模式、逻辑模式、模式
(3)存储模式---内模式:存储方式和物理结构
3)SQL的核心主要由四个部分组成
(1)数据定于语言:SQL DDL,主要定义数据库、基本表、视图、索引等结构。
(2)数据操纵语言:SQL DML,主要对数据进行查询和更新。
(3)数据控制语言:SQL DCL,包括对基本表、视图等的授权,完整性约束规则的一些描述、事务控制等内容。
(4)嵌入式SQL语言
4)SQL的数据定义语言
(1)创建数据库:create database <数据库名>
(2)撤销数据库:drop database <数据库名>
(3)修改数据库:alter database <数据库名>
5)SQL的数据更新语言:数据的插入、删除、修改。
6)SQL的数据查询语言
(1)select<列名表>---指定希望查看的列
(2)from<列名表>---指定查询的表
(3)where<条件>---指定查询条件
(4)group by<分组列名表>---指定要分组的列
(5)having<条件>---指定分组的条件
(6)order by<排序列名表>---指定如何排序
4、数据库系统(DBS)
1)定义:采用了数据库技术的计算机系统,DBS是一个世纪可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,是数据库、硬件、软件、各类用户的集合体。
2)数据库管理系统(DBMS)
(1)DBMS目标:用户界面友好、功能完备、效率高、结构清晰、开放性。
(2)DBMS功能:数据定义功能、数据操纵功能、数据库的运行管理(安全性控制、完整性控制、并发控制、数据库恢复)。
(3)DBMS组成
数据定义语言及其翻译处理程序
数据操纵语言及其翻译解释程序
数据运行控制程序
实用程序
3)数据库系统的组成
(1)数据库(DB)
(2)硬件
(3)软件
(4)用户
最终用户
应用程序员
数据库管理人员(DBA)
职责:数据库的转换和恢复,数据库的安全性、完整性控制,数据库性能的监督、分析和改进,数据库的重组织和重改造。
系统分析员
4)DBS结构的分类
(1)集中式DBS
特点:整个数据库系统,包括应用程序、DBMS、数据都装在一台计算机上,为一个用户独占,不同机器之间不能共享。
(2)客户/服务器式DBS
服务器:网络中某个(些)结点上的计算机专门用于执行DBMS功能,称为数据库服务器。
客户机:其他节点上的计算机安装DBMS的外围开发工具,支持用户的应用。
工作原理:客户端的用户请求被传送到数据库服务器,处理后将结果返回给用户。
功能:前端部分:由应用程序组成。
后端部分:包括存取结构、查询优化、并发控制、恢复等系统程序可以完成实物处理和数据访问控制。
(3)分布式DBS
指数据库中的数据在逻辑上是一个整体,但在物理上分布在计算机网络的不同结点上,网络中的每个结点都可以独立处理本地数据库中的数据,执行局部应用,也可以同时存取和处理多个异地数据库中的数据,执行全局应用。
(4)并行式DBS
使用多个CPU和读个磁盘进行并行操作,提高数据处理和I/O速度。
两个指标:吞吐量---在给定时间间隔内能完成任务的数目。
响应时间---完成一个任务所花费的时间。