【数据库】数据库系统考试复习整理

本文详尽梳理了数据库系统的关键概念,包括数据库的定义、特征、DBMS的功能、数据库系统的特点,深入探讨了数据视图、事务、数据独立性、关系模型、索引、SQL正则表达式、完整性约束、范式理论以及事务处理等内容,旨在帮助读者全面理解数据库系统的核心知识。
摘要由CSDN通过智能技术生成

数据库的定义

数据库(Database,简称DB)是长期储存在计算机内、有组织的可共享的大量数据集合。
数据不是依赖于处理过程的附属品,而是现实世界中独立存在的对象

数据库的特征

  • 数据按一定的数据模型组织、描述和储存
  • 可为各种用户共享
  • 冗余度较小
  • 数据独立性较高
  • 易扩展

什么是DBMS

数据库管理系统(Database Management System,简称DBMS)由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。是位于用户与操作系统之间的一层数据管理软件。

DBMS的目标

科学地组织和存储数据、高效方便地获取和维护数据。
结构

DBMS的主要功能

1、数据定义功能

  • 提供数据定义语言(DDL)
  • 定义数据库中的数据对象

2、数据操纵功能

  • 提供数据操纵语言(DML)
  • 操纵数据实现对数据库的基本操作 (查询、插入、删除和修改)

3、数据库的运行管理

  • 保证数据的安全性、完整性
  • 多用户对数据的并发使用
  • 发生故障后的系统恢复

4、数据库的建立和维护功能

  • 数据库数据批量装载
  • 数据库转储
  • 数据库的重组织
  • 性能监视等

什么是数据库系统

数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。
在不引起混淆的情况下常常把数据库系统简称为数据库。
数据库系统由数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。

数据库系统的特点

1、面向全组织的复杂的数据结构

  • 支持全企业的应用而不是某一个应用
  • 数据反映了客观事物间的本质联系,而不是着眼于面向某个应用,是有结构的数据。这是数据库系统的主要特征之一,与文件系统的根本差别。

2、数据的冗余度小,易扩充

  • 数据集中管理,数据共享,因此冗余度小
  • 节省存储空间,减少存取时间,且可避免数据之间的不相容性和不一致性

3、具有较高的数据和程序的独立性

  • 把数据库的定义和描述从应用程序中分离出去
  • 数据描述是分级的(全局逻辑、局部逻辑、存储)
  • 数据的存取由系统管理,用户不必考虑存取路径等细节,从而简化了应用程序

4、统一的数据控制功能,数据共享程度高

  • 数据的安全性控制(Security): 用户标识与鉴定,存取控制
  • 数据的完整性控制(Integrity): 完整性约束条件定义和检查
  • 并发控制(Concurrency) : 封锁

数据视图

数据库系统的一个主要目的是给用户提供数据的抽象视图,即系统隐藏关于数据存储和维护的某种细节。

数据抽象(Data Abstract)

1、物理层

  • 最低层次的抽象
  • 描述数据如何存储

2、逻辑层

  • 描述数据及数据间的关系
  • 由DBA使用

3、视图层

  • 描述整个数据库的某一部分
  • 使用户与系统交互更简单

数据抽象

实例与模式

  • 实例:特定时刻存储在数据库中的信息的集合称作数据库的一个实例

  • 模式:数据库的总体设计称作数据库模式

  • 型是对数据的结构和属性的说明 ----模式

  • 值是型的一个具体赋值 ----实例

型是相对稳定的,值是随时间不断变化的

数据库的三级模式结构

三级模式

1、物理模式(Physical Schema)
又称存储模式、内模式,是数据的物理结构及存储方式。
2、逻辑模式(Logical Schema)
所有用户的公共数据视图,是数据库全体数据的全局逻辑结构和特性的描述。
3、子模式(Sub-Schema)
用户的数据视图,是数据的局部逻辑结构,模式的子集。

两级映像

1、外模式/模式映象
定义某一个外模式和模式之间的对应关系,映象定义通常包含在各外模式中。
2、模式/内模式映象
定义数据逻辑结构与存储结构之间的对应关系。
三级模式结构

数据独立性

1、物理数据独立性
存储结构改变时,修改模式/内模式映象,使模式保持不变,从而应用程序可以保持不变,称为数据的物理独立性
2、逻辑数据独立性
当模式改变时,修改外模式/模式映象,使外模式保持不变,从而应用程序可以保持不变,称为数据的逻辑独立性

事务定义

事务是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位。

事务特性(ACID)

1、原子性(Atomicity)

  • 事务中包含的所有操作要么全做,要么全不做
  • 原子性由恢复机制实现

2、一致性(Consistency)

  • 事务的隔离执行必须保证数据库的一致性
  • 事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处于一致性状态
  • 数据库的一致性状态由用户来负责,由并发控制机制实现。如银行转帐,转帐前后两个帐户金额之和应保持不变
  • 事务运行过程中允许暂时的不一致

3、隔离性(Isolation)

  • 系统必须保证事务不受其它并发执行事务的影响
  • 对任何一对事务T1,T2,在T1看来,T2要么在T1开始之前已经结束,要么在T1完成之后再开始执行
  • 隔离性通过并发控制机制实现

4、持久性(Durability)

  • 一个事务一旦提交之后,它对数据库的影响必须是永久的
  • 系统发生故障不能改变事务的持久性
  • 持久性通过恢复机制实现

数据库总体结构

关系模型中的重要概念

1、超码(superkey)

  • 是一个或多个属性的集合,这些属性的集合可以使我们在一个关系中唯一地标识一个元组

2、候选码(Candidate Key)

  • 关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码,如关系S中的sno可作为候选码。候选码是最小的超码

3、主码(Primary Key)

  • 进行数据库设计时,从一个关系的多个候选码中选定一个作为主码,如可选定sno作为关系S的主码

4、外部码(Foreign Key)

  • 关系R中的一个属性组,它不是R的主码,但它与关系S的主码相对应,则称这个属性组为R的外部码(R和S可以是同一关系)。如S关系中的dno属性

E-R模型向关系模式的转换

1、联系转化成的表,和实体转化成的表,可以机械地按照下述原则合并:
一对一,联系归任一;多对一,联系归于多;多对多,联系自成表。

  • 二元多对一联系:
    联系转化的表可以和“多端” 实体转化成的表进行合并
  • 二元一对一联系:
    联系转化的表可以任一端实体转化成的表进行合并
    二元一对一联系不能导致相关实体转化成的表合并
  • 二元m:n联系:
    联系转化的表和实体转化的表不能进行合并
  • 多元联系:
    • 联系转化的表和实体转化的表不能进行合并
    • 即便是m:n:1,其转化的表和也不能进行合并

2、实体转化成的表,相互之间不能机械合并
3、联系转化成的表,相互之间不能机械合并

索引的定义

1、格式

create  [unique/distinct]  [cluster]  index  索引名
on  表名 (列名 [asc/desc]  [ , 列名[ asc/desc]])

# 示例:
create  cluster  index   s_sno_clu  on  S(sno)
create  unique  index   s_sno  on  S(sno)
create index   s_sname  on  S(sname)
  • unique(distinct):唯一性索引,不允许表中不同的行在索引列上取相同值。若已有相同值存在,则系统给出相关信息,不建此索引。系统并拒绝违背唯一性的插入、更新
  • cluster:聚集索引,表中元组按索引项的值排序并物理地聚集在一起。一个基本表上只能建一个聚集索引(该索引可以包含多个列)
  • asc/desc:索引表中索引值的排序次序,缺省为asc

2、索引的有关说明

  • 可以动态地定义索引,即可以随时建立和删除索引
  • 不允许用户在数据操作中指定索引,索引如何使用完全由DBMS决定
  • 应该在使用频率高的、经常用于连接的列上建索引
  • 索引实现:B+树,散列(hash)
  • 一个表上可建多个索引。索引可以提高查询效率,但索引过多耗费空间,且降低了插入、删除、更新的效率

SQL正则表达式

  • REGEXP_LIKE(匹配)
  • REGEXP_INSTR (包含)
  • REGEXP_REPLACE(替换)
  • REGEXP_SUBSTR(提取)

SQL正则表达式示例

Select * from table1
        where REGEXP_LIKE(SJHM, '^[1]{1}[35]{1}[[:digit:]]{9}$')
^ 表示开始
$ 表示结束
[]内部为匹配范围
{}里的内容表时个数,有几位
查询手机号码是以 1开头接着是35再加9位的数字 所以这么理解: 
1开头 表达式为 ^[1]{
  1} 意为 开始
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值