数据库原理与应用系列_01数据库系统概述(下)

简介: 数据库技术是专门研究如何科学地组织和存储数据,如何高效地获取和处理数据的技术。数据库(Database)即数据仓库,是数据存放的地方。

4、客户机/服务器结构的数据库系统


在主从式和分布式结构的基础上,将DBMS的功能和应用程序分开。

【1】数据库服务器:专门用于执行DBMS的功能,完成数据的管理功能。

【2】客户机:安装DBMS的应用开发工具和相关数据库应用程序。

在此结构中:

  1. DBMS和数据库存放于数据库服务器上
  2. 应用开发工具和相关数据库应用程序存放于客户机上。

【1】优点:网络运行效率大大提高,减轻服务器的负载。


5、浏览器/服务器结构的数据库系统


客户机端仅安装通用的浏览器软件。

应用服务器充当了客户机和数据库服务器的中间媒介。


六、数据库管理系统



DBMS(数据库管理系统)是对数据进行管理的大型系统软件,用户在数据库系统中的一切操作,都在DBMS当中。


1、DBMS的主要功能


【1】 数据定义功能(DDL)


数据定义语言(DDL Data Define Language)


定义数据的三级模式结构和二级映像,定义有关的约束条件。


例如:


1、定义用户口令和存取权限

2、DBMS提供的结构化查询语言,提供Create ,Drop ,Alter 等语句可分别用来建立,删除和修改数据库。


用DDL定义的各种模式需要通过相应的模式翻译程序转化为机器内部代码表示形式,保存在数据字典中。


数据字典是DBMS存取数据的依据。


CREATE TABLE VIEW INDEX SYN CLUSTER
视图 索引 同义词


create table 创建表   
alter table  修改表  
drop table 删除表  
truncate table 删除表中所有行   
create index 创建索引  
drop index  删除索引

【2】数据操纵功能(DML)

实现对数据库的基本操纵,包括检索,更新(包括修改,插入,删除)等。因此DBMS也应该包括DML的编译程序或解释程序。

1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE

【考】:狭义来说DML只包括增,删,改。而查询则是DQL数据查询语言

【3】数据查询语言(DQL)

数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:

SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>

【4】数据控制语言(DCL)

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

1) GRANT:授权。
2) ROLLBACK TO :回退到某一点。
3) COMMIT :提交。

在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。


(1) 显式提交

用COMMIT命令直接完成的提交为显式提交。其格式为:

SQL>COMMIT;

(2) 隐式提交

用SQL命令间接完成的提交为隐式提交。这些命令是:

ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

(3) 自动提交

若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,

系统将自动进行提交,这就是自动提交。其格式为:

SQL>SET AUTOCOMMIT ON;


2、数据字典(DD)


数据字典是用来描述数据库中有关信息的数据目录,包括数据库的三级模式,数据模型,用户名和用户权限等有关的用户信息,起着系统状态的目录表的作用。


3、DBMS的存储过程


(1)用户使用某种特定的数据操作语言向DBMS发出请求。

(2)DBMS接受请求,并将该请求解释转换为机器代码指令。

(3)DBMS依次检查外模式,外模式/模式映像,模式,模式/内模式映像以及存储结构定义

(4)DBMS对存储数据库执行必要的存取操作

(5)从对数据库的存取操作中接受结果

(6)对得到的结果进行必要的处理,如:格式转换等

(7)将处理的结果返回给用户


七、数据模型



【重要】:期末考必考


1、数据模型的概念及分类


  1. 数据处理的抽象与转换

首先将现实世界抽象成信息世界的概念模型,再抽象成计算机世界的数据模型。


【1】概念模型并不依赖于具体的计算机系统,不是某一个DBMS所支持的数据模型,它是计算机内部数据的抽象表示。


【2】概念模型经过抽象,转换成计算机上某一DBMS所支持的数据类型。


【3】数据模型是现实世界的两级抽象的结果。

ce1a2e80903b4316a85871ad4f46f92c.png

2. 数据模型的分类


【1】第一类模型:概念模型,也称为信息模型。


是对现实世界的事物以及其联系的第一级抽象。


【2】第二类模型:逻辑模型(或称为数据模型)和物理模型


逻辑模型属于计算机世界中的模型。


逻辑模式主要用于DBMS的实线。


比较成熟的应用在数据库系统中的逻辑模型主要包括:


层次模型

网状模型

关系模型

面向对象模型

物理模型是对数据最底层的抽象,它描述数据在磁盘或磁带上的存储方式和存取方法。


2、数据模型的组成要素


数据模型由数据结构,数据操作和数据的完整性约束三要素组成。


【1】数据结构


数据结构描述了数据库组成对象以及对象之间的联系。


数据结构描述数据库的静态属性,不同的数据库采用不同的数据结构。


数据结构有层次结构,网状结构和关系结构三种类型。


按照这三种结构命名的数据模型分别称为层次模型,网状模型和关系模型。


【2】数据操作


数据操纵描述数据库的动态属性。数据库有查询和更新两类操作。


【3】数据的完整性约束


是一组完整性规则的集合。保证数据的正确,有效,相容。


八、三个世界及其有关概念



1、现实世界


2、信息世界

  1. 信息世界及其有关概念


【1】实体:客观存在的事物


【2】属性:实体所具有的某一特性称为属性


年龄,性别是属性的型


属性的具体内容是属性的值


【3】实体型


具有相同属性的实体必然具有共同的特征


【4】实体集


同型实体的集合称为实体集


【5】码:又称主码,主键。


能唯一标识一个实体的属性或属性集称为实体的码。


【6】域:某一属性的取值范围称为该属性的域


【7】联系:分为单个实体型内部的联系和实体型之间的联系。


两个实体型之间的联系

【1】一对一联系

【2】一对多联系

【3】多对多联系


两个以上实体型之间的联系

两个以上实体型之间的联系同样存在一对一,一对多,多对多的联系。


单个实体型内部的联系

单个实体型内部的联系同样存在一对一,一对多,多对多的联系。


3、计算机世界


【1】字段:标记实体属性的命名单位。


如:学生有学号,姓名,年龄等字段


【2】记录:字段的有序集合。


如:(0001,张三,男,计算机)为一个记录


【3】文件:同一类记录的集合称为文件。文件是用来描述实体集的。


【4】关键字:能唯一标识文件中每个记录的字段或者字段集,称为记录的关键字。


九、四种数据模型



1、层次模型

层次模型用树形结构来表示各类实体以及实体间的联系。


层次模型的特点:

【1】每棵树有且仅有一个结点没有双亲结点,就是根节点

【2】根节点以外的其他结点有且仅有一个双亲结点

【3】父子结点之间的联系是一对多的联系


对于层次模型:如果删除双亲结点,则子女结点也被删除。


优点:

【1】层次模型结构简单,层次分明

【2】结点间联系简单

【3】提供了良好的数据完整性支持


缺点:

【1】不能直接表示两个以上的实体型间的复杂联系和实体型间的多对多联系

【2】对数据的插入删除限制

【3】查询子女结点必须通过双亲结点


2、网状模型

层次模型是网状模型的特例。


层次模型只能有一个根节点,根节点以外的其他结点有且仅有一个双亲结点,而网状模型中取消了层次模型的限制,允许多个结点没有双亲结点,允许一个结点可以有多个双亲结点。


特点:

【1】有一个以上的节点没有双亲结点

【2】允许结点有多个双亲结点

【3】允许两个结点之间有多种联系


3、关系模型

关系模型的数据结构是一张规范化的二维表,由表名,表头,表体三部分组成。表名即二维表的名称,表头决定了二维表的结构,表体即二维表中的数据。


每个二维表称为关系。


【1】关系与关系实例:一张表对应一个关系实例。


【2】元组:二维表中的一行即一个元组


【3】属性:二维表中的一列即一个属性


【4】域:属性的取值范围


【5】分量:元组中的一个属性值


【6】候选码:一个属性或者属性的组合,可以唯一标识一个关系元组。


一个关系当中可以有多个候选码。


全码:候选码由关系中所有的属性组成。


【7】主码:一个关系只能有一个主码,从候选码当中选的。


(学号,手机号,性别):不是候选码,因为性别是多余的,不能唯一标识,只需要一个学号即可


【8】关系模式


如:学生的关系模式:

学生(学号,姓名,性别,年龄)


【9】关系实例:二维表中的数据


4、面向对象模型


十、数据库领域的新技术



主要分为:

【1】分布式数据库

【2】数据仓库与数据挖掘技术

【3】多媒体数据库

【4】大数据技术


1、分布式数据库


  1. 定义

分布式数据库是一组结构化的数据集合,在逻辑上属于同一系统,物理上分布在计算机网络的不同节点上。


  1. 特点

【1】自治与共享

【2】冗余控制

【3】分布事务执行的复杂性

【4】数据的独立性


2、数据仓库与数据挖掘技术


联机事务处理(OLTP):online transaction processing

联机分析处理(OLAP):online analytical processing

数据仓库(DW):data warehouse


将各业务系统及其档案数据中有分析价值的海量数据集中管理,建立分析模型,从中挖掘符号规律的知识用于未来的预测与决策中。

数据挖掘(DM):data mining

从大量数据中获取有效,潜在有用的非平凡过程。


3、大数据技术


主要包括数据的采集和迁移,数据的存储和管理,数据的处理和分析,数据安全和隐私保护。



相关文章
|
6天前
|
人工智能 容灾 关系型数据库
【AI应用启航workshop】构建高可用数据库、拥抱AI智能问数
12月25日(周三)14:00-16:30参与线上闭门会,阿里云诚邀您一同开启AI应用实践之旅!
|
1月前
|
架构师 数据库
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
数据库乐观锁是必知必会的技术栈,也是大厂面试高频,十分重要,本文解析数据库乐观锁。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
|
1月前
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
1月前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
69 2
|
6天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
23 3
|
6天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
28 3
|
6天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE &#39;log_%&#39;;`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
33 2
|
19天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
138 15
|
13天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。