数据库系统概论(二)关系数据库,SQL概述和数据库安全性

news2024/10/6 19:21:34

作者的话

前言:总结下知识点,自己偶尔看一看。 

目录

一、关系模型概述

1.1关系数据结构及形式化定义

1.1.1域(Domain)

1.1.2笛卡尔积(Cartesian Product)

1.1.3关系(Relation)

1.2、关系模式

1.2.1定义关系模式

1.2.2关系模式与关系

1.3关系数据库

二、关系操作

三、关系的完整性

3.1 关系的三类完整性约束

四、关系代数

4.1概 述

4.2传统的集合运算

4.3专门的关系运算

五、SQL概述

5.1SQL的特点

综合统一

高度非过程化

面向集合的操作方式

以同一种语法结构提供多种使用方式

5.2SQL的组成

5.3视图的优点

六、数据库安全性

6.1数据库安全性概述

6.2用户身份鉴别

6.3存取控制

6.4数据库connect、resource、DBA角色

6.5视图机制

6.6审计


一、关系模型概述

1.1关系数据结构及形式化定义

关系模型中数据的逻辑结构是一张二维表

关系数据结构是关系数据库的基础,它是由若干个属性组成的表格,其中每个属性都有一个名字和一个数据类型。关系的描述称为关系模式(relation schema),它可以形式化地表示为 R(U,D,DOM,F),其中 R 为关系名, U 为组成该关系的属性名集合, D 为 U 中属性所来自的域, DOM 为属性向域的映像集合, F 为属性间数据的依赖关系集合

1.1.1域(Domain)

  1. 域是一组具有相同数据类型的值集合。
  2. 例如:自然数、整数等都可以是域

1.1.2笛卡尔积(Cartesian Product)

给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn ={(d1,d2,…,dn)|diDi,i=1,2,…,n}
其实就是简单的排列组合(概念太长难以理解)

(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)


(d1,d2,…,dn)中的每一个值di叫作一个分量

一个域中允许有的不同的取值个数成为基数 

在数据库中,基数(Cardinality)是指一个列中不同值的个数。

例如,如果一个表中有一个列叫做“性别”,其中有10个人的性别是男性,20个人的性别是女性,那么这个列的基数就是2。

1.1.3关系(Relation)

D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)
R:关系名
n:关系的目或度(Degree)

元组
关系中的每个元素是关系中的元组,通常用t表示。

单元关系与二元关系
当n=1时,称该关系为单元关系或一元关系
当n=2时,称该关系为二元关系

属性
关系中不同列可以对应相同的域
为了加以区分,必须对每列起一个名字,称为属性(Attribute)
n目关系必有n个属性 

候选码
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
简单的情况:候选码只包含一个属性


全码
最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码


主码
若一个关系有多个候选码,则选定其中一个为主码

三类关系包括:基本表、查询表、视图表

1.2、关系模式

1.2.1定义关系模式

关系模式是对关系的描述

通常可以简记为
R (U) 或 R (A1,A2,…,An)
R: 关系名
A1,A2,…,An : 属性名

1.2.2关系模式与关系

关系模式
对关系的描述
静态的、稳定的
关系
关系模式在某一时刻的状态或内容
动态的、随时间不断变化的

1.3关系数据库

关系数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解。在关系数据库中,表中的每一行都代表一条记录,每条记录都具有一个唯一的 ID(又被称为键),而表中的列则用于存储数据的属性

二、关系操作

关系操作是指对关系数据库进行的一些操作,包括查询操作和插入、删除、修改操作两部分。其中,查询操作中的选择、投影、并、差、笛卡尔积是5种基本操作,其他操作可以用基本操作来定义和导出

 

三、关系的完整性

3.1 关系的三类完整性约束

实体完整性
若属性A是基本关系R的主属性,则属性A不能取空值

参照完整性

1. 关系间的引用

2. 外码

外码是指一个关系中的属性集合,它的值必须在另一个关系的主键中出现过。举个例子,如果有学生表、选课表和课程表三个表,选课表中的学生编号和课程编号就是外码,它们必须在学生表和课程表的主键中出现过。

 

3. 参照完整性规则

若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值)
或者等于S中某个元组的主码值

用户自定义完整性
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求

关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能

四、关系代数

4.1概 述

4.2传统的集合运算

  1. 并 U        由属于R或属于S的元组组成
  2. 差 -     由属于R而不属于S的所有元组组成
  3. 交    ∩   由既属于R又属于S的元组组成
  4. 笛卡尔积   笛卡尔积是指两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。例如,如果X={1,2},Y={red,white},则X×Y={(1,red),(1,white),(2,red),(2,white)}。

4.3专门的关系运算

相关记号

默认库

1.选择    

2.投影   

 

3.连接   

一般连接

 

 

等值连接(equijoin) 

自然连接(Natural join)

 

外连接 如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。

左外连接 如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)

右外连接 如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。

 

 4.除运算 

 

五、SQL概述

5.1SQL的特点

综合统一

集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。

可以独立完成数据库生命周期中的全部活动

用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。

数据操作符统一

高度非过程化

SQL只要提出“做什么”,无须了解存取路径。
存取路径的选择以及SQL的操作过程由系统自动完成。

面向集合的操作方式

操作对象、查找结果可以是元组的集合
一次插入、删除、更新操作的对象可以是元组的集合

以同一种语法结构提供多种使用方式

SQL是独立的语言
能够独立地用于联机交互的使用方式

SQL又是嵌入式语言
SQL能够嵌入到高级语言(例如C,C++,Java)程序中,供程序员设计程序时使用在这里插入图片描述

5.2SQL的组成

(1)数据操作语言(The Data Manipulation Language,DML):该SQL语句允许用户提出查询,以及插入、删除和修改行。本书这章中将介绍插入、删除和修改行的DML命令。

(2)数据定义语言(The Data Definition Language DDL):该SQL语句支持表的创建、删除和修改,支持视图和索引的创建和删除。完整性约束能够定义在表上,可以是在创建表的时候,也可以是在创建表之后定义约束。

(3)数据控制语言(Data Control Language,DCL):该SQL语句的目标是管理用户对数据库对象的访问。

(4)触发器和高级完整性约束:新的SQL标准包括对触发器的支持,当对数据库的改变满足触发器的条件时,DBMS就执行触发器。

(5)嵌入式和动态SQL:嵌入式的SQL特征使得可以从宿主语言(例如C或者COBOL)中调用SQL代码。动态的SQL特征允许在运行时构建查询。

(6)客户-服务器执行和远程数据库提取:这些命令控制一个客户应用程序如何连接到一个SQL数据库服务器上,或者如何通过网络来访问数据库的数据。

(7)事管务理:各种命令允许用户显式地控制一个事务如何执行。这些命令将在后面章节中介绍。

5.3视图的优点

1、视图能够简化用户的操作
2、视图使用户能以多种角度看待统一数据
3、视图对重构数据库提供了一定程度的逻辑独立性
4、视图能够对机密数据提供安全保护
5、适当利用视图可以更清晰的表达查询

六、数据库安全性

数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。

6.1数据库安全性概述

数据库不安全因素

  • 非授权用户对数据库进行恶意存取和破坏
  • 数据库中的敏感信息泄露
  • 安全环境的脆弱性(计算机系统,网络系统的安全性)

6.2用户身份鉴别

用户标识由用户名和用户标识号组成

6.3存取控制

6.4数据库connect、resource、DBA角色

6.5视图机制

把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护

间接地实现支持存取谓词的用户权限定义

 

6.6审计

启用一个专用的审计日志将用户对数据库的所有操作记录在上面

审计员利用审计日志监控数据库中的各种行为,找出非法存取数据的人、时间和内容

C2以上安全级别的DBMS必须具有审计功能

审计功能是可选的:审计很费时间和空间 || DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能 || 审计功能主要用于安全性要求较高的部门

在这里插入图片描述

 审计事件:
服务器事件:审计数据库服务器发生的事件
系统权限:对系统拥有的结构或模式对象进行操作的审计 ,要求该操作的权限是通过系统权限获得的
语句事件:对SQL语句,如DDL、DML、DQL及DCL语句的审计
模式对象事件:对特定模式对象上进行的SELECT或DML操作的审计

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/461470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android之 WebView的使用

一 简介 1.1 WebView是用来展示网页的控件,底层是google的WebKit的引擎。 比起苹果的WebView,webkit一些不足地方: 不能支持word等文件的预览 纯标签加载,并不支持所有标签的加载 不支持文件的下载,图片的放大&#…

MATLAB连续时间信号的实现和时域基本运算(八)更新中...

1、实验目的: 1)熟悉常用连续时间信号的实现方法; 2)掌握连续时间信号的时域基本运算; 3)掌握实现基本函数及其运算的函数的使用方法; 4)加深对信号基本运算的理解。 2、实验内容&am…

Python Selenium 关键字驱动

目录 项目目录结构 action目录 config目录 exceptionpictures目录 log目录 testCases目录 testData目录 util目录 总结 之前写过一篇Java版的关键字驱动,现在来写一篇Python版本的,网上好多教程都是虎头蛇尾的不完整~ 说下思路,这边没…

十、ElasticSearch 实战 - 源码运行

一、概述 想深入理解 Elasticsearch,了解其报错机制,并有针对性的调整参数,阅读其源码是很有必要的。此外,了解优秀开源项目的代码架构,能够提高个人的代码架构能力 阅读 Elasticsearch 源码的第一步是搭建调试环境&…

C++的左值引用和右值引用

引用和指针的区别? 引用必须初始化,指针可以不初始化 定义一个指针和引用汇编指令上一样的,引用底层还是指针 引用只有一级引用,没有多级引用,而指针可以有多级指针 定义一个引用变量和指针变量,它们汇…

【c语言】函数指针详解

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

Android Framework—Service

介绍 Service是一种可以在后台执行长时间运行操作而不提供界面的应用组件。服务可以由其他应用组件启动&#xff0c;而且即使用户切换到其他应用&#xff0c;服务仍将在后台继续运行。此外&#xff0c;组件可以通过绑定到服务与之进行交互&#xff0c;甚至是执行进程之间的通信…

Unreal5 第三人称射击游戏 角色基础制作

快捷键 快捷键 ctrlE 可以快速打开相关蓝图类&#xff0c;直接在场景选中添加到场景中的对象即可。 调试蓝图 选中调试对象&#xff0c;选中需要调试的实例&#xff0c;即可查看当前角色的状态。 动画实例在运行的时候&#xff0c;也可以在右侧箭头获取当前场景已经生成的实…

Linux socket编程(二):多进程服务器

一、多进程服务器 最简单的的服务器程序执行流程为&#xff1a;创建socket → \rightarrow → 绑定监听的IP地址和端口 → \rightarrow → 监听客户端连接 → \rightarrow → 接受/发送数据。当服务端调用read阻塞等待一个客户端发来数据时&#xff0c;无法同时响应其它客户…

七、CANdelaStudio入门-Variant概念与应用

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的Variant概念与应用,欢迎各位朋友订阅、…

Redis实现互相关注功能

Redis实现互相关注功能 我们要实现关注功能&#xff0c;首先&#xff0c;我们需要得到关注的目标ID&#xff1a; PutMapping("/{id}/{isFollow}")public Result followUser(PathVariable("id") Long id,PathVariable("isFollow") Boolean isFol…

下一代大数据分布式存储技术Apache Ozone初步研究

文章目录 概述定义特性架构总体架构写数据读数据 部署安装方式安装Docker启动Docker-compose启动企业预置型(On Premise)安装 实践命令行接口Ofs (Hadoop兼容)Recon API 概述 定义 Apache Ozone 官网地址 https://ozone.apache.org/ 最新版本1.3.0 Apache Ozone 官网最新文档地…

Java线程间通信方式(2)

前文了解了线程通信方式中的Object.wait/Object.notify以及Semaphore,接下来我们继续了解其他的线程间通信方式。 CountDownLatch CountDownLatch利用一个指定的计数初始化&#xff0c;由于调用了countDown方法&#xff0c;await方法会阻塞直到当前技术为0&#xff0c;之后所…

PHP-8.2.5+IIS10 php-cgi.exe - FastCGI 进程意外退出

服务器信息&#xff1a; Windows Server 2019 Standard. Internet Information Services(Version 10.0.17763.1) PHP版本&#xff1a; PHP Version 8.2.5 php-8.2.5-nts-Win32-vs16-x64 下载地址&#xff1a;https://windows.php.net/download#php-8.2 错误信息&#xff1a; H…

【网络】-- UDP协议

目录 传输层 再谈端口号 端口号范围划分 认识知名端口号&#xff08;Well-Know Port Number&#xff09; 两个问题 netstat pidof UDP协议 UDP的特点 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 传输层 负责数据能够从发送端传输接收端。 再谈端口号 端…

【ROS】ubuntu18.04安装ROS(ROS1 Melodic)

1、添加中科大ROS源 1.1、添加源 sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ lsb_release -cs main" > /etc/apt/sources.list.d/ros-latest.list1. 2、添加公钥 sudo apt-key adv --keyserver hkp://keyser…

输入捕获实验

实验内容 用TIM5 的通道 1&#xff08;PA0&#xff09;来做输入捕获&#xff0c;捕获 PA0 上高电平的脉宽&#xff08;用 WK_UP 按键输入高电平&#xff09;&#xff0c;通过串口打印高电平脉宽时间。 输入捕获简介 输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的…

新库上线 | 全国工艺美术大师信息数据

全国工艺美术大师信息数据 一、数据简介 作为物质产品&#xff0c;工艺美术反映着一定时代、一定社会的物质的和文化的生产水平&#xff1b;作为精神产品&#xff0c;它的视觉形象&#xff08;造型、色彩、装饰&#xff09;又体现了一定时代的审美观。我国工艺美术品的制作较早…

java基础+注解笔记【狂神说java】

基础部分–总结 基础包的命名 //一般为域名倒置 page com.yang.base基础语法 类和方法 根据不同的写法–大小写的差异可以判别是类对象还是方法名 类的首字母都要大写&#xff0c;方法首字母小写可以理解为&#xff0c;类对象是class&#xff0c;方法是函数 类对象 方法 使…

浅谈在 Vue2 和 Vue3 中计算属性和侦听器的一些变化

文章目录 &#x1f4cb;前言&#x1f3af;计算属性&#x1f3af;侦听器&#x1f4dd;最后 &#x1f4cb;前言 计算属性 computed 和侦听器 watch 都是 Vue.js 框架中用来响应式更新视图的重要概念。因此无论是在哪个版本&#xff0c;它们都是不可缺少的概念&#xff0c;这篇文…